with flash>=7, it's loadMovie, not loadmovie
[swftools.git] / lib / action / swf5compiler.tab.c
1 /* A Bison parser, made by GNU Bison 1.875.  */
2
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35
36 /* Identify Bison output.  */
37 #define YYBISON 1
38
39 /* Skeleton name.  */
40 #define YYSKELETON_NAME "yacc.c"
41
42 /* Pure parsers.  */
43 #define YYPURE 0
44
45 /* Using locations.  */
46 #define YYLSP_NEEDED 0
47
48 /* If NAME_PREFIX is specified substitute the variables and functions
49    names.  */
50 #define yyparse swf5parse
51 #define yylex   swf5lex
52 #define yyerror swf5error
53 #define yylval  swf5lval
54 #define yychar  swf5char
55 #define yydebug swf5debug
56 #define yynerrs swf5nerrs
57
58
59 /* Tokens.  */
60 #ifndef YYTOKENTYPE
61 # define YYTOKENTYPE
62    /* Put the tokens into the symbol table, so that GDB and other debuggers
63       know about them.  */
64    enum yytokentype {
65      BREAK = 258,
66      CONTINUE = 259,
67      FUNCTION = 260,
68      ELSE = 261,
69      SWITCH = 262,
70      CASE = 263,
71      DEFAULT = 264,
72      FOR = 265,
73      IN = 266,
74      IF = 267,
75      WHILE = 268,
76      DO = 269,
77      VAR = 270,
78      NEW = 271,
79      DELETE = 272,
80      RETURN = 273,
81      END = 274,
82      WITH = 275,
83      ASM = 276,
84      EVAL = 277,
85      RANDOM = 278,
86      GETTIMER = 279,
87      LENGTH = 280,
88      CONCAT = 281,
89      SUBSTR = 282,
90      TRACE = 283,
91      INT = 284,
92      ORD = 285,
93      CHR = 286,
94      GETURL = 287,
95      GETURL1 = 288,
96      NEXTFRAME = 289,
97      PREVFRAME = 290,
98      PLAY = 291,
99      STOP = 292,
100      TOGGLEQUALITY = 293,
101      STOPSOUNDS = 294,
102      DUP = 295,
103      SWAP = 296,
104      POP = 297,
105      PUSH = 298,
106      SETREGISTER = 299,
107      CALLFUNCTION = 300,
108      CALLMETHOD = 301,
109      AND = 302,
110      OR = 303,
111      XOR = 304,
112      MODULO = 305,
113      ADD = 306,
114      LESSTHAN = 307,
115      EQUALS = 308,
116      INC = 309,
117      DEC = 310,
118      TYPEOF = 311,
119      INSTANCEOF = 312,
120      ENUMERATE = 313,
121      INITOBJECT = 314,
122      INITARRAY = 315,
123      GETMEMBER = 316,
124      SETMEMBER = 317,
125      SHIFTLEFT = 318,
126      SHIFTRIGHT = 319,
127      SHIFTRIGHT2 = 320,
128      VAREQUALS = 321,
129      OLDADD = 322,
130      SUBTRACT = 323,
131      MULTIPLY = 324,
132      DIVIDE = 325,
133      OLDEQUALS = 326,
134      OLDLESSTHAN = 327,
135      LOGICALAND = 328,
136      LOGICALOR = 329,
137      NOT = 330,
138      STRINGEQ = 331,
139      STRINGLENGTH = 332,
140      SUBSTRING = 333,
141      GETVARIABLE = 334,
142      SETVARIABLE = 335,
143      SETTARGETEXPRESSION = 336,
144      DUPLICATEMOVIECLIP = 337,
145      REMOVEMOVIECLIP = 338,
146      STRINGLESSTHAN = 339,
147      MBLENGTH = 340,
148      MBSUBSTRING = 341,
149      MBORD = 342,
150      MBCHR = 343,
151      BRANCHALWAYS = 344,
152      BRANCHIFTRUE = 345,
153      GETURL2 = 346,
154      POST = 347,
155      GET = 348,
156      LOADVARIABLES = 349,
157      LOADMOVIE = 350,
158      LOADVARIABLESNUM = 351,
159      LOADMOVIENUM = 352,
160      CALLFRAME = 353,
161      STARTDRAG = 354,
162      STOPDRAG = 355,
163      GOTOFRAME = 356,
164      SETTARGET = 357,
165      NULLVAL = 358,
166      INTEGER = 359,
167      DOUBLE = 360,
168      BOOLEAN = 361,
169      REGISTER = 362,
170      STRING = 363,
171      IDENTIFIER = 364,
172      EQ = 365,
173      LE = 366,
174      GE = 367,
175      NE = 368,
176      LAN = 369,
177      LOR = 370,
178      INCR = 371,
179      DECR = 372,
180      IEQ = 373,
181      DEQ = 374,
182      MEQ = 375,
183      SEQ = 376,
184      REQ = 377,
185      AEQ = 378,
186      OEQ = 379,
187      SHL = 380,
188      SHR = 381,
189      SHR2 = 382,
190      SHLEQ = 383,
191      SHREQ = 384,
192      SHR2EQ = 385,
193      NOELSE = 386,
194      UMINUS = 388,
195      POSTFIX = 389
196    };
197 #endif
198 #define BREAK 258
199 #define CONTINUE 259
200 #define FUNCTION 260
201 #define ELSE 261
202 #define SWITCH 262
203 #define CASE 263
204 #define DEFAULT 264
205 #define FOR 265
206 #define IN 266
207 #define IF 267
208 #define WHILE 268
209 #define DO 269
210 #define VAR 270
211 #define NEW 271
212 #define DELETE 272
213 #define RETURN 273
214 #define END 274
215 #define WITH 275
216 #define ASM 276
217 #define EVAL 277
218 #define RANDOM 278
219 #define GETTIMER 279
220 #define LENGTH 280
221 #define CONCAT 281
222 #define SUBSTR 282
223 #define TRACE 283
224 #define INT 284
225 #define ORD 285
226 #define CHR 286
227 #define GETURL 287
228 #define GETURL1 288
229 #define NEXTFRAME 289
230 #define PREVFRAME 290
231 #define PLAY 291
232 #define STOP 292
233 #define TOGGLEQUALITY 293
234 #define STOPSOUNDS 294
235 #define DUP 295
236 #define SWAP 296
237 #define POP 297
238 #define PUSH 298
239 #define SETREGISTER 299
240 #define CALLFUNCTION 300
241 #define CALLMETHOD 301
242 #define AND 302
243 #define OR 303
244 #define XOR 304
245 #define MODULO 305
246 #define ADD 306
247 #define LESSTHAN 307
248 #define EQUALS 308
249 #define INC 309
250 #define DEC 310
251 #define TYPEOF 311
252 #define INSTANCEOF 312
253 #define ENUMERATE 313
254 #define INITOBJECT 314
255 #define INITARRAY 315
256 #define GETMEMBER 316
257 #define SETMEMBER 317
258 #define SHIFTLEFT 318
259 #define SHIFTRIGHT 319
260 #define SHIFTRIGHT2 320
261 #define VAREQUALS 321
262 #define OLDADD 322
263 #define SUBTRACT 323
264 #define MULTIPLY 324
265 #define DIVIDE 325
266 #define OLDEQUALS 326
267 #define OLDLESSTHAN 327
268 #define LOGICALAND 328
269 #define LOGICALOR 329
270 #define NOT 330
271 #define STRINGEQ 331
272 #define STRINGLENGTH 332
273 #define SUBSTRING 333
274 #define GETVARIABLE 334
275 #define SETVARIABLE 335
276 #define SETTARGETEXPRESSION 336
277 #define DUPLICATEMOVIECLIP 337
278 #define REMOVEMOVIECLIP 338
279 #define STRINGLESSTHAN 339
280 #define MBLENGTH 340
281 #define MBSUBSTRING 341
282 #define MBORD 342
283 #define MBCHR 343
284 #define BRANCHALWAYS 344
285 #define BRANCHIFTRUE 345
286 #define GETURL2 346
287 #define POST 347
288 #define GET 348
289 #define LOADVARIABLES 349
290 #define LOADMOVIE 350
291 #define LOADVARIABLESNUM 351
292 #define LOADMOVIENUM 352
293 #define CALLFRAME 353
294 #define STARTDRAG 354
295 #define STOPDRAG 355
296 #define GOTOFRAME 356
297 #define SETTARGET 357
298 #define NULLVAL 358
299 #define INTEGER 359
300 #define DOUBLE 360
301 #define BOOLEAN 361
302 #define REGISTER 362
303 #define STRING 363
304 #define IDENTIFIER 364
305 #define EQ 365
306 #define LE 366
307 #define GE 367
308 #define NE 368
309 #define LAN 369
310 #define LOR 370
311 #define INCR 371
312 #define DECR 372
313 #define IEQ 373
314 #define DEQ 374
315 #define MEQ 375
316 #define SEQ 376
317 #define REQ 377
318 #define AEQ 378
319 #define OEQ 379
320 #define SHL 380
321 #define SHR 381
322 #define SHR2 382
323 #define SHLEQ 383
324 #define SHREQ 384
325 #define SHR2EQ 385
326 #define NOELSE 386
327 #define UMINUS 388
328 #define POSTFIX 389
329
330
331
332
333 /* Copy the first part of user declarations.  */
334 #line 5 "swf5compiler.y"
335
336
337 #include <time.h>
338 #include <string.h>
339 #include <stdlib.h>
340 #include "compile.h"
341 #include "action.h"
342 #include "assembler.h"
343
344 #define YYPARSE_PARAM buffer
345
346 Buffer bf, bc;
347
348
349
350 /* Enabling traces.  */
351 #ifndef YYDEBUG
352 # define YYDEBUG 0
353 #endif
354
355 /* Enabling verbose error messages.  */
356 #ifdef YYERROR_VERBOSE
357 # undef YYERROR_VERBOSE
358 # define YYERROR_VERBOSE 1
359 #else
360 # define YYERROR_VERBOSE 0
361 #endif
362
363 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
364 #line 21 "swf5compiler.y"
365 typedef union YYSTYPE {
366   Buffer action;
367   char *str;
368   SWFGetUrl2Method getURLMethod;
369   int op;
370   int intVal;
371   int len;
372   double doubleVal;
373
374   struct
375   {
376     Buffer buffer;
377     int count;
378   } exprlist;
379   struct switchcase   switchcase;
380   struct switchcases switchcases;
381   struct
382   {
383         Buffer obj, ident, memexpr;
384   } lval;
385 } YYSTYPE;
386 /* Line 191 of yacc.c.  */
387 #line 387 "swf5compiler.tab.c"
388 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
389 # define YYSTYPE_IS_DECLARED 1
390 # define YYSTYPE_IS_TRIVIAL 1
391 #endif
392
393
394
395 /* Copy the second part of user declarations.  */
396
397
398 /* Line 214 of yacc.c.  */
399 #line 399 "swf5compiler.tab.c"
400
401 #if ! defined (yyoverflow) || YYERROR_VERBOSE
402
403 /* The parser invokes alloca or malloc; define the necessary symbols.  */
404
405 # if YYSTACK_USE_ALLOCA
406 #  define YYSTACK_ALLOC alloca
407 # else
408 #  ifndef YYSTACK_USE_ALLOCA
409 #   if defined (alloca) || defined (_ALLOCA_H)
410 #    define YYSTACK_ALLOC alloca
411 #   else
412 #    ifdef __GNUC__
413 #     define YYSTACK_ALLOC __builtin_alloca
414 #    endif
415 #   endif
416 #  endif
417 # endif
418
419 # ifdef YYSTACK_ALLOC
420    /* Pacify GCC's `empty if-body' warning. */
421 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
422 # else
423 #  if defined (__STDC__) || defined (__cplusplus)
424 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
425 #   define YYSIZE_T size_t
426 #  endif
427 #  define YYSTACK_ALLOC malloc
428 #  define YYSTACK_FREE free
429 # endif
430 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
431
432
433 #if (! defined (yyoverflow) \
434      && (! defined (__cplusplus) \
435          || (YYSTYPE_IS_TRIVIAL)))
436
437 /* A type that is properly aligned for any stack member.  */
438 union yyalloc
439 {
440   short yyss;
441   YYSTYPE yyvs;
442   };
443
444 /* The size of the maximum gap between one aligned stack and the next.  */
445 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
446
447 /* The size of an array large to enough to hold all stacks, each with
448    N elements.  */
449 # define YYSTACK_BYTES(N) \
450      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
451       + YYSTACK_GAP_MAXIMUM)
452
453 /* Copy COUNT objects from FROM to TO.  The source and destination do
454    not overlap.  */
455 # ifndef YYCOPY
456 #  if 1 < __GNUC__
457 #   define YYCOPY(To, From, Count) \
458       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
459 #  else
460 #   define YYCOPY(To, From, Count)              \
461       do                                        \
462         {                                       \
463           register YYSIZE_T yyi;                \
464           for (yyi = 0; yyi < (Count); yyi++)   \
465             (To)[yyi] = (From)[yyi];            \
466         }                                       \
467       while (0)
468 #  endif
469 # endif
470
471 /* Relocate STACK from its old location to the new one.  The
472    local variables YYSIZE and YYSTACKSIZE give the old and new number of
473    elements in the stack, and YYPTR gives the new location of the
474    stack.  Advance YYPTR to a properly aligned location for the next
475    stack.  */
476 # define YYSTACK_RELOCATE(Stack)                                        \
477     do                                                                  \
478       {                                                                 \
479         YYSIZE_T yynewbytes;                                            \
480         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
481         Stack = &yyptr->Stack;                                          \
482         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
483         yyptr += yynewbytes / sizeof (*yyptr);                          \
484       }                                                                 \
485     while (0)
486
487 #endif
488
489 #if defined (__STDC__) || defined (__cplusplus)
490    typedef signed char yysigned_char;
491 #else
492    typedef short yysigned_char;
493 #endif
494
495 /* YYFINAL -- State number of the termination state. */
496 #define YYFINAL  3
497 /* YYLAST -- Last index in YYTABLE.  */
498 #define YYLAST   5253
499
500 /* YYNTOKENS -- Number of terminals. */
501 #define YYNTOKENS  159
502 /* YYNNTS -- Number of nonterminals. */
503 #define YYNNTS  57
504 /* YYNRULES -- Number of rules. */
505 #define YYNRULES  348
506 /* YYNRULES -- Number of states. */
507 #define YYNSTATES  616
508
509 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
510 #define YYUNDEFTOK  2
511 #define YYMAXUTOK   389
512
513 #define YYTRANSLATE(YYX)                                                \
514   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
515
516 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
517 static const unsigned char yytranslate[] =
518 {
519        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
520        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
521        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
522        2,     2,     2,   147,     2,     2,     2,   146,   139,     2,
523      157,   158,   144,   142,   132,   143,   151,   145,     2,     2,
524        2,     2,     2,     2,     2,     2,     2,     2,   136,   156,
525      137,   133,   138,   135,     2,     2,     2,     2,     2,     2,
526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528        2,   152,     2,   153,   141,     2,     2,     2,     2,     2,
529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
531        2,     2,     2,   154,   140,   155,   148,     2,     2,     2,
532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
536        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
537        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
538        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
539        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
545        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
546       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
547       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
548       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
549       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
550       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
551       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
552       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
553       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
554       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
555      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
556      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
557      125,   126,   127,   128,   129,   130,   131,   134,   149,   150
558 };
559
560 #if YYDEBUG
561 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
562    YYRHS.  */
563 static const unsigned short yyprhs[] =
564 {
565        0,     0,     3,     4,     7,     8,    10,    13,    15,    17,
566       19,    22,    25,    27,    31,    33,    36,    38,    40,    42,
567       44,    46,    48,    50,    58,    61,    65,    67,    71,    79,
568       85,    86,    88,    90,    98,    99,   102,   109,   114,   118,
569      120,   122,   124,   126,   128,   130,   132,   134,   136,   138,
570      140,   142,   144,   146,   148,   150,   152,   154,   156,   158,
571      160,   162,   164,   166,   168,   170,   172,   174,   176,   178,
572      180,   182,   184,   186,   188,   190,   192,   194,   196,   198,
573      200,   202,   204,   206,   208,   210,   212,   214,   216,   218,
574      220,   222,   224,   226,   228,   230,   232,   234,   236,   238,
575      240,   242,   244,   246,   248,   250,   252,   254,   256,   258,
576      260,   262,   264,   266,   268,   270,   272,   274,   275,   277,
577      281,   283,   290,   292,   296,   301,   303,   305,   307,   309,
578      310,   311,   317,   324,   335,   344,   354,   355,   357,   360,
579      363,   364,   367,   370,   373,   375,   377,   382,   385,   390,
580      396,   401,   409,   417,   425,   433,   441,   446,   453,   468,
581      472,   481,   486,   493,   497,   501,   505,   509,   513,   517,
582      522,   527,   532,   537,   542,   547,   552,   556,   561,   566,
583      571,   576,   581,   588,   597,   602,   603,   605,   609,   615,
584      622,   630,   634,   636,   640,   642,   644,   646,   648,   650,
585      652,   654,   656,   658,   660,   662,   664,   666,   668,   670,
586      672,   674,   678,   683,   685,   688,   691,   694,   698,   702,
587      706,   710,   714,   718,   722,   726,   730,   734,   738,   742,
588      746,   750,   754,   758,   762,   766,   770,   776,   780,   784,
589      786,   789,   795,   799,   801,   805,   807,   809,   811,   813,
590      816,   819,   823,   826,   828,   831,   833,   835,   837,   839,
591      841,   845,   849,   851,   852,   858,   861,   863,   865,   867,
592      870,   873,   877,   881,   883,   886,   887,   892,   894,   896,
593      898,   900,   902,   904,   906,   910,   911,   915,   917,   920,
594      922,   924,   926,   928,   930,   932,   934,   936,   938,   940,
595      942,   944,   946,   948,   950,   952,   954,   956,   958,   960,
596      962,   964,   966,   968,   970,   972,   974,   976,   978,   980,
597      982,   984,   986,   988,   990,   992,   994,   996,   998,  1000,
598     1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1018,  1020,
599     1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1039
600 };
601
602 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
603 static const short yyrhs[] =
604 {
605      160,     0,    -1,    -1,   161,   162,    -1,    -1,   163,    -1,
606      162,   163,    -1,   166,    -1,   179,    -1,   166,    -1,   164,
607      166,    -1,   154,   155,    -1,   165,    -1,   154,   164,   155,
608       -1,   156,    -1,   207,   156,    -1,   170,    -1,   185,    -1,
609      187,    -1,   188,    -1,   173,    -1,   168,    -1,   167,    -1,
610       20,   157,   202,   158,   154,   164,   155,    -1,    18,   156,
611       -1,    18,   203,   156,    -1,   207,    -1,   169,   132,   207,
612       -1,    12,   157,   202,   158,   166,     6,   166,    -1,    12,
613      157,   202,   158,   166,    -1,    -1,   202,    -1,     7,    -1,
614      172,   157,   202,   158,   154,   174,   155,    -1,    -1,   174,
615      175,    -1,     8,   202,   136,   164,     3,   156,    -1,     8,
616      202,   136,   164,    -1,     9,   136,   164,    -1,   109,    -1,
617       16,    -1,    17,    -1,    23,    -1,    24,    -1,    25,    -1,
618       26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
619       31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
620       36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
621       41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
622       46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
623       51,    -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,
624       56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
625       61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
626       66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
627       71,    -1,    72,    -1,    73,    -1,    74,    -1,    75,    -1,
628       76,    -1,    77,    -1,    78,    -1,    79,    -1,    80,    -1,
629       81,    -1,    82,    -1,    83,    -1,    99,    -1,   100,    -1,
630       84,    -1,    85,    -1,    86,    -1,    87,    -1,    88,    -1,
631       89,    -1,    90,    -1,    91,    -1,    92,    -1,    93,    -1,
632       94,    -1,    95,    -1,    -1,   176,    -1,   177,   132,   176,
633       -1,     5,    -1,   178,   176,   157,   177,   158,   166,    -1,
634      176,    -1,   202,   151,   176,    -1,   202,   152,   202,   153,
635       -1,   192,    -1,   195,    -1,    13,    -1,    14,    -1,    -1,
636       -1,   181,   157,   202,   158,   166,    -1,   182,   166,    13,
637      157,   202,   158,    -1,    10,   157,   186,   156,   171,   156,
638      186,   158,   183,   166,    -1,    10,   157,   176,    11,   180,
639      158,   184,   166,    -1,    10,   157,    15,   176,    11,   180,
640      158,   184,   166,    -1,    -1,   169,    -1,     4,   156,    -1,
641        3,   156,    -1,    -1,   132,    93,    -1,   132,    92,    -1,
642      132,   108,    -1,   104,    -1,   202,    -1,   109,   157,   193,
643      158,    -1,    17,   109,    -1,    17,   200,   151,   109,    -1,
644       17,   200,   152,   202,   153,    -1,    28,   157,   203,   158,
645       -1,    32,   157,   202,   132,   202,   189,   158,    -1,    94,
646      157,   202,   132,   202,   189,   158,    -1,    96,   157,   202,
647      132,   190,   189,   158,    -1,    95,   157,   202,   132,   202,
648      189,   158,    -1,    97,   157,   202,   132,   190,   189,   158,
649       -1,    98,   157,   202,   158,    -1,    99,   157,   202,   132,
650      202,   158,    -1,    99,   157,   202,   132,   202,   132,   202,
651      132,   202,   132,   202,   132,   202,   158,    -1,   100,   157,
652      158,    -1,    82,   157,   202,   132,   202,   132,   202,   158,
653       -1,    83,   157,   202,   158,    -1,    33,   157,   108,   132,
654      108,   158,    -1,    34,   157,   158,    -1,    35,   157,   158,
655       -1,    36,   157,   158,    -1,    37,   157,   158,    -1,    39,
656      157,   158,    -1,    38,   157,   158,    -1,   101,   157,   104,
657      158,    -1,   101,   157,   108,   158,    -1,   101,   157,   202,
658      158,    -1,   102,   157,   108,   158,    -1,   102,   157,   202,
659      158,    -1,   109,   157,   193,   158,    -1,    22,   157,   202,
660      158,    -1,    24,   157,   158,    -1,    23,   157,   202,   158,
661       -1,    25,   157,   203,   158,    -1,    29,   157,   202,   158,
662       -1,    30,   157,   202,   158,    -1,    31,   157,   202,   158,
663       -1,    26,   157,   202,   132,   202,   158,    -1,    78,   157,
664      202,   132,   202,   132,   202,   158,    -1,    56,   157,   203,
665      158,    -1,    -1,   203,    -1,   193,   132,   203,    -1,   178,
666      157,   177,   158,   166,    -1,   200,   151,   176,   157,   193,
667      158,    -1,   200,   152,   202,   153,   157,   193,   158,    -1,
668      176,   136,   203,    -1,   196,    -1,   197,   132,   196,    -1,
669      118,    -1,   121,    -1,   120,    -1,   119,    -1,   122,    -1,
670      123,    -1,   124,    -1,   134,    -1,   128,    -1,   129,    -1,
671      130,    -1,   116,    -1,   117,    -1,   201,    -1,   192,    -1,
672      195,    -1,   176,    -1,   200,   151,   176,    -1,   200,   152,
673      202,   153,    -1,   204,    -1,   143,   202,    -1,   148,   202,
674       -1,   147,   202,    -1,   202,   115,   202,    -1,   202,   114,
675      202,    -1,   202,   144,   202,    -1,   202,   145,   202,    -1,
676      202,   146,   202,    -1,   202,   142,   202,    -1,   202,   143,
677      202,    -1,   202,   139,   202,    -1,   202,   140,   202,    -1,
678      202,   141,   202,    -1,   202,   137,   202,    -1,   202,   138,
679      202,    -1,   202,   111,   202,    -1,   202,   112,   202,    -1,
680      202,   110,   202,    -1,   202,   113,   202,    -1,   202,   125,
681      202,    -1,   202,   126,   202,    -1,   202,   127,   202,    -1,
682      202,   135,   202,   136,   202,    -1,   201,   133,   203,    -1,
683      202,    57,   200,    -1,   202,    -1,    16,   176,    -1,    16,
684      176,   157,   193,   158,    -1,   152,   193,   153,    -1,   165,
685       -1,   154,   197,   155,    -1,   192,    -1,   194,    -1,   195,
686       -1,   200,    -1,   199,   201,    -1,   201,   199,    -1,   157,
687      202,   158,    -1,   143,   104,    -1,   104,    -1,   143,   105,
688       -1,   105,    -1,   106,    -1,   103,    -1,   108,    -1,   206,
689       -1,   205,   132,   206,    -1,   176,   133,   203,    -1,   176,
690       -1,    -1,    21,   154,   208,   209,   155,    -1,    15,   205,
691       -1,   191,    -1,   192,    -1,   195,    -1,   199,   201,    -1,
692      201,   199,    -1,   201,   133,   203,    -1,   201,   198,   202,
693       -1,   214,    -1,   209,   214,    -1,    -1,    20,   211,   209,
694       19,    -1,   108,    -1,   104,    -1,   105,    -1,   106,    -1,
695      103,    -1,   107,    -1,   212,    -1,   213,   132,   212,    -1,
696       -1,    43,   215,   213,    -1,   210,    -1,    44,   107,    -1,
697       45,    -1,    18,    -1,    46,    -1,    47,    -1,    48,    -1,
698       49,    -1,    50,    -1,    51,    -1,    52,    -1,    53,    -1,
699       54,    -1,    55,    -1,    56,    -1,    57,    -1,    58,    -1,
700       17,    -1,    16,    -1,    60,    -1,    59,    -1,    61,    -1,
701       62,    -1,    63,    -1,    64,    -1,    65,    -1,    15,    -1,
702       66,    -1,    67,    -1,    68,    -1,    69,    -1,    70,    -1,
703       71,    -1,    72,    -1,    73,    -1,    74,    -1,    75,    -1,
704       76,    -1,    77,    -1,    78,    -1,    29,    -1,    40,    -1,
705       41,    -1,    42,    -1,    79,    -1,    80,    -1,    81,    -1,
706       26,    -1,    82,    -1,    83,    -1,    28,    -1,    84,    -1,
707       23,    -1,    85,    -1,    30,    -1,    31,    -1,    24,    -1,
708       86,    -1,    87,    -1,    88,    -1,    89,   108,    -1,    90,
709      108,    -1
710 };
711
712 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
713 static const unsigned short yyrline[] =
714 {
715        0,   152,   152,   152,   160,   164,   165,   169,   171,   176,
716      179,   185,   189,   190,   191,   192,   193,   194,   195,   196,
717      197,   198,   199,   203,   214,   224,   236,   237,   241,   252,
718      262,   263,   267,   272,   286,   289,   297,   302,   307,   317,
719      318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
720      328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
721      338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
722      348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
723      358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
724      368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
725      378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
726      388,   389,   390,   391,   392,   393,   394,   399,   402,   407,
727      414,   419,   433,   438,   444,   449,   451,   455,   460,   466,
728      471,   475,   488,   501,   536,   569,   603,   604,   610,   621,
729      634,   636,   638,   640,   647,   654,   662,   670,   676,   683,
730      690,   694,   701,   708,   715,   722,   729,   735,   742,   753,
731      758,   766,   770,   780,   784,   788,   792,   796,   800,   804,
732      810,   817,   823,   830,   839,   846,   850,   854,   858,   862,
733      866,   870,   874,   879,   885,   894,   897,   902,   911,   924,
734      932,   941,   948,   952,   958,   959,   960,   961,   962,   963,
735      964,   965,   966,   967,   968,   972,   973,   991,  1009,  1010,
736     1015,  1022,  1028,  1037,  1039,  1044,  1049,  1053,  1062,  1072,
737     1077,  1082,  1087,  1092,  1097,  1102,  1107,  1112,  1117,  1122,
738     1128,  1133,  1137,  1142,  1146,  1150,  1154,  1164,  1191,  1199,
739     1201,  1207,  1213,  1218,  1223,  1231,  1233,  1235,  1237,  1239,
740     1284,  1329,  1332,  1336,  1340,  1344,  1348,  1352,  1356,  1363,
741     1365,  1371,  1377,  1385,  1384,  1389,  1392,  1394,  1398,  1402,
742     1441,  1480,  1501,  1546,  1547,  1552,  1551,  1559,  1562,  1565,
743     1568,  1571,  1573,  1580,  1581,  1585,  1585,  1591,  1593,  1600,
744     1602,  1604,  1606,  1608,  1610,  1612,  1614,  1616,  1618,  1620,
745     1622,  1624,  1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,
746     1642,  1644,  1646,  1648,  1650,  1654,  1655,  1656,  1657,  1658,
747     1659,  1660,  1661,  1662,  1663,  1664,  1665,  1666,  1667,  1668,
748     1669,  1670,  1671,  1672,  1673,  1674,  1675,  1676,  1677,  1678,
749     1679,  1680,  1681,  1682,  1683,  1684,  1685,  1688,  1692
750 };
751 #endif
752
753 #if YYDEBUG || YYERROR_VERBOSE
754 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
755    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
756 static const char *const yytname[] =
757 {
758   "$end", "error", "$undefined", "BREAK", "CONTINUE", "FUNCTION", "ELSE", 
759   "SWITCH", "CASE", "DEFAULT", "FOR", "IN", "IF", "WHILE", "DO", "VAR", 
760   "NEW", "DELETE", "RETURN", "END", "WITH", "ASM", "EVAL", "RANDOM", 
761   "GETTIMER", "LENGTH", "CONCAT", "SUBSTR", "TRACE", "INT", "ORD", "CHR", 
762   "GETURL", "GETURL1", "NEXTFRAME", "PREVFRAME", "PLAY", "STOP", 
763   "TOGGLEQUALITY", "STOPSOUNDS", "DUP", "SWAP", "POP", "PUSH", 
764   "SETREGISTER", "CALLFUNCTION", "CALLMETHOD", "AND", "OR", "XOR", 
765   "MODULO", "ADD", "LESSTHAN", "EQUALS", "INC", "DEC", "TYPEOF", 
766   "INSTANCEOF", "ENUMERATE", "INITOBJECT", "INITARRAY", "GETMEMBER", 
767   "SETMEMBER", "SHIFTLEFT", "SHIFTRIGHT", "SHIFTRIGHT2", "VAREQUALS", 
768   "OLDADD", "SUBTRACT", "MULTIPLY", "DIVIDE", "OLDEQUALS", "OLDLESSTHAN", 
769   "LOGICALAND", "LOGICALOR", "NOT", "STRINGEQ", "STRINGLENGTH", 
770   "SUBSTRING", "GETVARIABLE", "SETVARIABLE", "SETTARGETEXPRESSION", 
771   "DUPLICATEMOVIECLIP", "REMOVEMOVIECLIP", "STRINGLESSTHAN", "MBLENGTH", 
772   "MBSUBSTRING", "MBORD", "MBCHR", "BRANCHALWAYS", "BRANCHIFTRUE", 
773   "GETURL2", "POST", "GET", "LOADVARIABLES", "LOADMOVIE", 
774   "LOADVARIABLESNUM", "LOADMOVIENUM", "CALLFRAME", "STARTDRAG", 
775   "STOPDRAG", "GOTOFRAME", "SETTARGET", "NULLVAL", "INTEGER", "DOUBLE", 
776   "BOOLEAN", "REGISTER", "STRING", "IDENTIFIER", "\"==\"", "\"<=\"", 
777   "\">=\"", "\"!=\"", "\"&&\"", "\"||\"", "\"++\"", "\"--\"", "\"+=\"", 
778   "\"/=\"", "\"*=\"", "\"-=\"", "\"%=\"", "\"&=\"", "\"|=\"", "\"<<\"", 
779   "\">>\"", "\">>>\"", "\"<<=\"", "\">>=\"", "\">>>=\"", "NOELSE", "','", 
780   "'='", "\"^=\"", "'?'", "':'", "'<'", "'>'", "'&'", "'|'", "'^'", "'+'", 
781   "'-'", "'*'", "'/'", "'%'", "'!'", "'~'", "UMINUS", "POSTFIX", "'.'", 
782   "'['", "']'", "'{'", "'}'", "';'", "'('", "')'", "$accept", "program", 
783   "@1", "code", "anycode", "stmts", "emptybraces", "stmt", "with_stmt", 
784   "return_stmt", "assign_stmts", "if_stmt", "expr_opt", "switch_init", 
785   "switch_stmt", "switch_cases", "switch_case", "identifier", 
786   "formals_list", "function_init", "function_decl", "obj_ref", 
787   "while_init", "do_init", "for_init", "for_in_init", "iter_stmt", 
788   "assign_stmts_opt", "cont_stmt", "break_stmt", "urlmethod", "level", 
789   "void_function_call", "function_call", "expr_list", 
790   "anon_function_decl", "method_call", "objexpr", "objexpr_list", 
791   "assignop", "incdecop", "lvalue_expr", "lvalue", "expr", "expr_or_obj", 
792   "primary", "init_vars", "init_var", "assign_stmt", "@2", "opcode_list", 
793   "with", "@3", "push_item", "push_list", "opcode", "@4", 0
794 };
795 #endif
796
797 # ifdef YYPRINT
798 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
799    token YYLEX-NUM.  */
800 static const unsigned short yytoknum[] =
801 {
802        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
803      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
804      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
805      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
806      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
807      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
808      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
809      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
810      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
811      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
812      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
813      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
814      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
815      385,   386,    44,    61,   387,    63,    58,    60,    62,    38,
816      124,    94,    43,    45,    42,    47,    37,    33,   126,   388,
817      389,    46,    91,    93,   123,   125,    59,    40,    41
818 };
819 # endif
820
821 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
822 static const unsigned char yyr1[] =
823 {
824        0,   159,   161,   160,   160,   162,   162,   163,   163,   164,
825      164,   165,   166,   166,   166,   166,   166,   166,   166,   166,
826      166,   166,   166,   167,   168,   168,   169,   169,   170,   170,
827      171,   171,   172,   173,   174,   174,   175,   175,   175,   176,
828      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
829      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
830      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
831      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
832      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
833      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
834      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
835      176,   176,   176,   176,   176,   176,   176,   177,   177,   177,
836      178,   179,   180,   180,   180,   180,   180,   181,   182,   183,
837      184,   185,   185,   185,   185,   185,   186,   186,   187,   188,
838      189,   189,   189,   189,   190,   190,   191,   191,   191,   191,
839      191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
840      191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
841      191,   191,   191,   191,   192,   192,   192,   192,   192,   192,
842      192,   192,   192,   192,   192,   193,   193,   193,   194,   195,
843      195,   196,   197,   197,   198,   198,   198,   198,   198,   198,
844      198,   198,   198,   198,   198,   199,   199,   200,   200,   200,
845      201,   201,   201,   202,   202,   202,   202,   202,   202,   202,
846      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
847      202,   202,   202,   202,   202,   202,   202,   202,   202,   203,
848      203,   203,   203,   203,   203,   204,   204,   204,   204,   204,
849      204,   204,   204,   204,   204,   204,   204,   204,   204,   205,
850      205,   206,   206,   208,   207,   207,   207,   207,   207,   207,
851      207,   207,   207,   209,   209,   211,   210,   212,   212,   212,
852      212,   212,   212,   213,   213,   215,   214,   214,   214,   214,
853      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
854      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
855      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
856      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
857      214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
858      214,   214,   214,   214,   214,   214,   214,   214,   214
859 };
860
861 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
862 static const unsigned char yyr2[] =
863 {
864        0,     2,     0,     2,     0,     1,     2,     1,     1,     1,
865        2,     2,     1,     3,     1,     2,     1,     1,     1,     1,
866        1,     1,     1,     7,     2,     3,     1,     3,     7,     5,
867        0,     1,     1,     7,     0,     2,     6,     4,     3,     1,
868        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
869        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
870        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
871        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
872        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
873        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
874        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
875        1,     1,     1,     1,     1,     1,     1,     0,     1,     3,
876        1,     6,     1,     3,     4,     1,     1,     1,     1,     0,
877        0,     5,     6,    10,     8,     9,     0,     1,     2,     2,
878        0,     2,     2,     2,     1,     1,     4,     2,     4,     5,
879        4,     7,     7,     7,     7,     7,     4,     6,    14,     3,
880        8,     4,     6,     3,     3,     3,     3,     3,     3,     4,
881        4,     4,     4,     4,     4,     4,     3,     4,     4,     4,
882        4,     4,     6,     8,     4,     0,     1,     3,     5,     6,
883        7,     3,     1,     3,     1,     1,     1,     1,     1,     1,
884        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
885        1,     3,     4,     1,     2,     2,     2,     3,     3,     3,
886        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
887        3,     3,     3,     3,     3,     3,     5,     3,     3,     1,
888        2,     5,     3,     1,     3,     1,     1,     1,     1,     2,
889        2,     3,     2,     1,     2,     1,     1,     1,     1,     1,
890        3,     3,     1,     0,     5,     2,     1,     1,     1,     2,
891        2,     3,     3,     1,     2,     0,     4,     1,     1,     1,
892        1,     1,     1,     1,     3,     0,     3,     1,     2,     1,
893        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
894        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
895        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
896        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
897        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
898        1,     1,     1,     1,     1,     1,     1,     2,     2
899 };
900
901 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
902    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
903    means the default is an error.  */
904 static const unsigned short yydefact[] =
905 {
906        2,     0,     0,     1,     0,     0,   120,    32,     0,     0,
907      127,   128,     0,    40,    41,     0,     0,     0,     0,    42,
908       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
909       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
910       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
911       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
912       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
913       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
914      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
915      115,   116,     0,     0,     0,   103,   104,     0,     0,    39,
916      205,   206,     0,    14,     3,     5,    12,     7,    22,    21,
917       16,     0,    20,   210,     0,     8,     0,     0,    17,    18,
918       19,   266,   267,   268,     0,     0,   207,     0,   139,   138,
919      136,     0,    41,    42,    43,    44,    45,    47,    48,    49,
920       50,    51,    52,    53,    54,    55,    56,    57,    58,    75,
921       97,   101,   102,   115,   116,   103,   104,    39,   262,   265,
922      259,   147,   208,   209,     0,   207,    40,   257,   253,   255,
923      256,   258,    39,     0,     0,     0,   185,     0,    24,     0,
924      243,     0,   208,   246,   209,     0,   248,   207,   239,     0,
925      213,     0,   263,     0,     0,     0,     0,     0,     0,     0,
926        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
927        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
928        0,     0,     0,   185,    11,     0,     9,     6,     0,     0,
929        0,     0,   269,     0,     0,   194,   197,   196,   195,   198,
930      199,   200,   202,   203,   204,     0,   201,     0,   270,    15,
931        0,   137,   210,     0,    26,     0,     0,     0,   185,     0,
932        0,   240,   252,   254,   214,   216,   215,     0,   186,     0,
933      192,     0,     0,   117,   249,     0,   250,     0,     0,     0,
934        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
935        0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
936        0,     0,     0,   176,     0,     0,     0,     0,     0,     0,
937        0,     0,   163,   164,   165,   166,   168,   167,     0,     0,
938        0,     0,     0,     0,     0,     0,     0,     0,   159,   253,
939      258,     0,   258,     0,     0,    13,    10,     0,   117,     0,
940        0,   211,     0,   271,   272,   262,     0,     0,    30,     0,
941      261,   260,     0,    39,     0,   185,     0,   242,     0,     0,
942      244,   251,   118,     0,   237,   238,   231,   229,   230,   232,
943      218,   217,   233,   234,   235,     0,   227,   228,   224,   225,
944      226,   222,   223,   219,   220,   221,     0,   313,   305,   304,
945      290,   275,   339,   343,   334,   337,   327,   341,   342,   328,
946      329,   330,   285,     0,   289,   291,   292,   293,   294,   295,
947      296,   297,   298,   299,   300,   301,   302,   303,   307,   306,
948      308,   309,   310,   311,   312,   314,   315,   316,   317,   318,
949      319,   320,   321,   322,   323,   324,   325,   326,   331,   332,
950      333,   335,   336,   338,   340,   344,   345,   346,     0,     0,
951        0,   287,   273,   175,   177,   178,     0,   150,   179,   180,
952      181,     0,     0,   184,     0,     0,   161,     0,     0,     0,
953        0,   156,     0,   169,   170,   171,   172,   173,   146,     0,
954        0,     0,     0,   185,   212,     0,    27,   210,     0,   208,
955      209,     0,     0,    31,    29,   174,   149,     0,   187,   191,
956      193,     0,     0,     0,     0,     0,     0,   288,   347,   348,
957      264,   274,     0,   140,     0,     0,     0,   140,   140,   253,
958      140,   145,   140,     0,    34,     0,   131,     0,     0,   185,
959        0,   130,     0,     0,   136,     0,   241,   119,   188,   236,
960        0,     0,   281,   278,   279,   280,   282,   277,   283,   286,
961      182,     0,     0,   162,     0,     0,     0,     0,     0,     0,
962        0,   157,     0,   121,   132,   189,     0,   130,     0,   123,
963        0,     0,    28,    23,   276,     0,   142,   141,   143,   151,
964        0,     0,   152,   154,   153,   155,     0,     0,     0,    33,
965       35,   190,     0,   134,   124,   129,   284,   183,   160,     0,
966        0,     0,   135,     0,     0,     0,    38,   133,     0,    37,
967        0,     0,     0,   139,     0,   158
968 };
969
970 /* YYDEFGOTO[NTERM-NUM]. */
971 static const short yydefgoto[] =
972 {
973       -1,     1,     2,   104,   105,   225,   106,   226,   108,   109,
974      251,   110,   492,   111,   112,   562,   590,   113,   363,   181,
975      115,   488,   116,   117,   603,   568,   118,   253,   119,   120,
976      552,   520,   121,   182,   267,   183,   184,   270,   271,   247,
977      185,   186,   187,   188,   268,   190,   159,   160,   127,   300,
978      450,   451,   505,   548,   549,   452,   506
979 };
980
981 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
982    STATE-NUM.  */
983 #define YYPACT_NINF -496
984 static const short yypact[] =
985 {
986       17,    30,   908,  -496,  -136,  -123,  -496,  -496,  -126,  -105,
987     -496,  -496,  4178,  -496,  4003,  1907,  -101,  -120,   -88,   -80,
988      -75,   -72,   -65,  -496,   -62,   -50,   -43,   -40,   -38,   -31,
989      -30,   -28,   -27,   -25,   -24,   -21,  -496,  -496,  -496,  -496,
990     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
991     -496,  -496,   -20,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
992     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
993     -496,  -496,  -496,  -496,   -18,  -496,  -496,  -496,   -17,   -16,
994     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
995      -15,   -11,    -8,    -5,     5,     6,     7,     8,     9,    22,
996     -496,  -496,  1165,  -496,   908,  -496,  -496,  -496,  -496,  -496,
997     -496,    23,  -496,  -496,  4178,  -496,    24,  1627,  -496,  -496,
998     -496,  -496,  -125,   -97,  4091,   -78,   -58,   -57,  -496,  -496,
999     3137,  2190,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1000     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1001     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,    49,   -96,
1002     -496,   -71,  -496,  -496,   -64,  -496,  4178,  -496,  -496,  -496,
1003     -496,  -496,    27,  2326,  2190,  2190,  2051,  3002,  -496,  2190,
1004     -496,    37,  -496,  -496,  -496,  4091,   -78,   -49,  4896,   -47,
1005     -496,  2190,  -496,  2190,  2190,    -3,  2051,  2190,  2051,  2190,
1006     2190,  2190,  2190,    45,    40,    42,    47,    48,    51,    52,
1007     2051,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,
1008       53,  2462,  2598,  2051,  -496,  1319,  -496,  -496,  2190,    39,
1009     2190,   143,   -54,  4178,  2190,  -496,  -496,  -496,  -496,  -496,
1010     -496,  -496,  -496,  -496,  -496,  2051,  -496,  2190,  -496,  -496,
1011     4178,    69,   174,    46,  -496,   331,  2051,  4178,  2051,  4265,
1012     2190,    50,  -496,  -496,   146,   146,   146,  -103,  -496,    76,
1013     -496,  -113,   576,  4178,   -54,  2051,  -496,  4091,  2190,  2190,
1014     2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,
1015     2190,  2190,  2190,  2190,  2190,  2190,  2190,  2190,  -496,   750,
1016     5163,   962,   999,  -496,    55,   688,    56,  2850,  3280,  3317,
1017     4304,    86,  -496,  -496,  -496,  -496,  -496,  -496,    58,  4341,
1018     4378,  3354,  4415,  4452,  4489,  4526,  3391,  4563,  -496,    61,
1019       62,  3428,    64,  3465,  -119,  -496,  -496,  3502,  4178,  3539,
1020       68,    70,  3761,  -496,  4896,    -9,  3234,  2190,  2190,  1627,
1021     -496,  -496,  -118,  -121,  3798,  2051,  2051,  -496,  2051,  4178,
1022     -496,  -496,  -496,  -117,  -496,   -78,  4955,   192,   192,  4955,
1023     4933,  4933,    26,    26,    26,  4600,   192,   192,    32,    32,
1024       32,   -33,   -33,   146,   146,   146,    75,  -496,  -496,  -496,
1025     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1026     -496,  -496,  -496,   123,  -496,  -496,  -496,  -496,  -496,  -496,
1027     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1028     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1029     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,
1030     -496,  -496,  -496,  -496,  -496,  -496,  -496,  -496,   124,   125,
1031     2869,  -496,  -496,  -496,  -496,  -496,  2190,  -496,  -496,  -496,
1032     -496,  2190,   127,  -496,  2190,  2190,  -496,  2190,  2190,  2734,
1033     2734,  -496,  2190,  -496,  -496,  -496,  -496,  -496,   -48,    77,
1034     -114,  1627,  2190,  2051,    80,  2190,  -496,    82,    83,    88,
1035       89,  3872,    94,  4896,   236,  -496,   -61,  -111,  -496,  -496,
1036     -496,  4178,  1627,  2190,  1627,  5163,    84,  -496,  -496,  -496,
1037     -496,  -496,  3576,  4637,    96,  4674,  4711,  4637,  4637,  -110,
1038      112,  4896,   112,   289,  -496,  1627,  -496,  3613,  -109,  2051,
1039       97,  -496,  4178,  2190,  3234,  1627,  -496,  -496,  -496,  4896,
1040     1473,  5087,  -496,  -496,  -496,  -496,  -496,  -496,  -496,   120,
1041     -496,   -14,    98,  -496,  2190,  2190,    99,   101,   102,   103,
1042     2190,  -496,    -4,  -496,  -496,  -496,  -107,  -496,  1627,  -496,
1043     3835,   104,  -496,  -496,  -496,    84,  -496,  -496,  -496,  -496,
1044     3650,  3687,  -496,  -496,  -496,  -496,  4748,  2190,   128,  -496,
1045     -496,  -496,  1627,  -496,  -496,  -496,  -496,  -496,  -496,  2190,
1046     4785,  1627,  -496,  1627,  4822,  1627,  1627,  -496,  2190,  1772,
1047     4859,   109,  2190,    -1,  3724,  -496
1048 };
1049
1050 /* YYPGOTO[NTERM-NUM].  */
1051 static const short yypgoto[] =
1052 {
1053     -496,  -496,  -496,  -496,   162,  -495,    28,    44,  -496,  -496,
1054     -496,  -496,  -496,  -496,  -496,  -496,  -496,    20,   -66,     4,
1055     -496,  -211,  -496,  -496,  -496,  -289,  -496,  -254,  -496,  -496,
1056     -397,  -189,  -496,    -2,  -220,  -496,    14,   -77,  -496,  -496,
1057      141,    43,    91,   562,    38,  -496,  -496,    31,  -129,  -496,
1058     -218,  -496,  -496,  -290,  -496,  -440,  -496
1059 };
1060
1061 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1062    positive, shift that token.  If negative, reduce the rule which
1063    number is the opposite.  If zero, do what YYDEFACT says.
1064    If YYTABLE_NINF, syntax error.  */
1065 #define YYTABLE_NINF -213
1066 static const short yytable[] =
1067 {
1068      122,   254,   485,   334,   587,   588,   114,   -36,   -36,   540,
1069      511,  -148,   162,   356,   356,   501,   123,    -4,   501,   359,
1070      128,   356,  -144,   356,   277,   356,  -208,  -208,   163,   356,
1071        3,   130,   158,   129,   192,  -148,   257,  -148,   352,   478,
1072      495,   502,   360,   180,   525,   125,   107,   536,  -144,   565,
1073      357,   591,   131,   189,  -209,  -209,   191,   164,   100,   101,
1074      235,   236,   237,   238,   239,   240,   241,   100,   101,   193,
1075      242,   243,   244,   233,   234,   245,   246,   194,   576,   577,
1076      -39,   -39,   195,   277,   275,   196,   258,   259,   260,   277,
1077     -212,  -212,   197,   126,   578,   198,   529,  -207,  -207,   249,
1078      122,   511,   122,  -174,  -174,   165,   606,   199,   114,   298,
1079      609,   295,   296,   297,   200,   122,   123,   201,   123,   202,
1080      556,   557,   162,   558,   256,   559,   203,   204,   122,   205,
1081      206,   123,   207,   208,   229,   497,   209,   210,   163,   211,
1082      212,   213,   214,   124,   123,   125,   215,   125,   107,   216,
1083      252,   589,   217,   311,   -36,   303,   340,   284,   285,   286,
1084      125,   231,   218,   219,   220,   221,   222,   125,   293,   294,
1085      295,   296,   297,   125,   293,   294,   295,   296,   297,   223,
1086      228,   230,   256,   162,   258,   347,   261,   542,   543,   544,
1087      545,   546,   547,   126,   273,   126,   338,   269,   312,   163,
1088      313,   346,   348,   277,   180,   314,   315,   355,   126,   316,
1089      317,   328,   358,   455,   457,   232,   463,   486,   462,   473,
1090      474,   126,   476,   122,   180,   482,   180,   483,   125,   504,
1091      507,   524,   508,   509,   304,   514,   306,   529,   180,   123,
1092     -122,   531,   535,   124,   551,   124,  -125,  -126,   318,   277,
1093      534,   180,   575,   341,   553,   567,   579,   582,   124,   583,
1094      584,   585,   595,   528,   601,   613,   227,   248,   125,   336,
1095      345,   124,   480,   180,   530,   162,   274,   158,   592,   341,
1096      571,   522,   500,   343,   180,   596,   180,   541,   351,     0,
1097        0,   163,     0,   362,   350,     0,     0,     0,     0,     0,
1098        0,     0,     0,   180,     0,     0,     0,     0,     0,   566,
1099        0,     0,     0,   364,     0,     0,   126,   284,   285,   286,
1100      365,     0,     0,     0,     0,     0,     0,     0,   276,     0,
1101        0,   290,   291,   292,   293,   294,   295,   296,   297,     0,
1102        0,     0,     0,     0,   122,   489,   277,   122,     0,     0,
1103        0,     0,     0,     0,     0,     0,     0,     0,   362,     0,
1104      123,   490,     0,   123,     0,     0,   124,   487,   165,     0,
1105        0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1106        0,     0,     0,   180,   180,     0,   180,     0,   277,   125,
1107        0,     0,   125,   494,   498,     0,   499,     0,     0,   278,
1108      279,   280,   281,   282,   283,   254,     0,     0,     0,     0,
1109        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1110        0,   560,     0,     0,   287,     0,   288,   289,   290,   291,
1111      292,   293,   294,   295,   296,   297,     0,   126,     0,     0,
1112      126,   278,   279,   280,   281,   282,   283,   561,     0,     0,
1113        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1114        0,     0,     0,     0,     0,     0,   287,     0,   288,   289,
1115      290,   291,   292,   293,   294,   295,   296,   297,     0,   122,
1116        0,     0,     0,   489,     0,     0,     0,   124,     0,   349,
1117      124,     0,     0,     0,     0,   123,     0,     0,     0,   490,
1118      122,     0,   122,     0,     0,   487,     0,     0,     0,     0,
1119        0,   180,     0,     0,     0,     0,   123,     0,   123,     0,
1120        0,   537,     0,   122,   125,   526,     0,     0,     0,     0,
1121        0,     0,   122,   122,     0,     0,     0,     0,   122,   123,
1122        0,     0,     0,     0,     0,   125,   538,   125,   123,   123,
1123        0,     0,   569,     0,   123,     0,     0,   180,     0,     0,
1124        0,     0,     0,     0,     0,     0,   122,     0,   125,   563,
1125        0,     0,   126,     0,     0,     0,     0,   125,   125,   572,
1126        0,     0,   123,   125,   336,     0,     0,     0,     0,     0,
1127      122,     0,     0,   126,     0,   126,     0,     0,     0,   122,
1128        0,   122,     0,   122,   122,     0,   123,   122,     0,     0,
1129        0,   125,   593,     0,     0,   123,   126,   123,     0,   123,
1130      123,     0,   124,   123,     0,   126,   126,     0,     0,     0,
1131        0,   126,     0,   277,     0,   125,   602,     0,     0,     0,
1132        0,     0,     0,   124,   125,   124,   125,   607,   125,   125,
1133      336,     0,   125,   336,     0,     0,     0,     0,     0,   126,
1134        0,     0,     0,     0,     0,     0,   124,     0,     0,     0,
1135        0,     0,     0,     0,     0,   124,   124,     0,     0,     0,
1136        0,   124,     0,   126,     0,     0,   278,   279,   280,   281,
1137      282,   283,   126,   255,   126,     0,   126,   126,     0,     0,
1138      126,   284,   285,   286,     0,     0,     0,     0,     0,   124,
1139        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1140      295,   296,   297,     0,     0,     0,     0,     0,     0,     0,
1141        0,     0,     0,   124,   361,   264,   265,   266,     0,     0,
1142        0,   272,   124,     0,   124,   277,   124,   124,     0,     0,
1143      124,     0,     0,   299,     0,   301,   302,     0,     0,   305,
1144        0,   307,   308,   309,   310,     0,     0,     0,     0,     0,
1145        0,     0,     0,   319,   320,   321,   322,   323,   324,   325,
1146      326,   327,     0,   331,   333,     0,     0,     0,     0,     0,
1147      337,     0,   339,     0,     0,     0,   342,     0,   278,   279,
1148      280,   281,   282,   283,     0,     0,     0,   277,     0,   344,
1149        0,     0,     0,   284,   285,   286,     0,     0,     0,     0,
1150      456,     0,   354,   287,     0,   288,   289,   290,   291,   292,
1151      293,   294,   295,   296,   297,     0,     0,     0,     0,     0,
1152      366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
1153      376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1154      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1155        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1156        0,     0,     0,     0,     0,   287,     0,   288,   289,   290,
1157      291,   292,   293,   294,   295,   296,   297,     0,     0,     0,
1158        0,     0,     0,     0,     0,     0,     0,     0,   386,   491,
1159      493,     4,     5,     6,     0,     7,     0,     0,     8,     0,
1160        9,    10,    11,    12,    13,    14,    15,     0,    16,    17,
1161       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1162       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1163       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1164       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1165       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1166       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1167       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1168       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1169       98,     0,     0,     0,     0,     0,     0,    99,   512,   277,
1170        0,     0,     0,   513,   100,   101,   515,   516,     0,   517,
1171      518,   521,   521,     0,   523,     0,     0,     0,     0,     0,
1172        0,     0,     0,     0,   527,     0,     0,   491,     0,     0,
1173        0,     0,     0,     0,     0,     0,   277,     0,     0,     0,
1174        0,     0,   102,     0,   103,   539,     0,     0,     0,     0,
1175        0,     0,   278,   279,   280,   281,   282,   283,     0,     0,
1176        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1177        0,     0,     0,     0,     0,   570,     0,   287,     0,   288,
1178      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1179      279,   280,   281,   282,   283,     0,   580,   581,     0,     0,
1180      453,     0,   586,     0,   284,   285,   286,     0,     0,     0,
1181        0,     0,     0,     0,   287,     0,   288,   289,   290,   291,
1182      292,   293,   294,   295,   296,   297,     0,     0,     0,   600,
1183        0,     0,     0,     0,     0,     0,     0,   454,     0,     0,
1184        0,   604,     0,     0,     0,     0,     0,     0,     4,     5,
1185      610,     0,     7,     0,   614,     8,     0,     9,    10,    11,
1186       12,    13,    14,    15,     0,    16,    17,    18,    19,    20,
1187       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1188       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1189       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1190       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1191       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1192       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1193       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1194       91,    92,    93,    94,    95,    96,    97,    98,     0,     0,
1195        0,     0,     0,     0,    99,     0,     0,     0,     0,     0,
1196        0,   100,   101,     0,     0,     0,     0,     0,     0,     0,
1197        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1198        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1199        0,     0,     0,     0,     0,     0,     0,     0,     0,   102,
1200      224,   103,     4,     5,     0,     0,     7,     0,     0,     8,
1201        0,     9,    10,    11,    12,    13,    14,    15,     0,    16,
1202       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1203       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1204       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1205       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1206       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1207       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1208       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1209       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1210       97,    98,     0,     0,     0,     0,     0,     0,    99,     0,
1211        0,     0,     0,     0,     0,   100,   101,     0,     0,     0,
1212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1213        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1214        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1215        0,     0,     0,   102,   335,   103,     4,     5,     0,     0,
1216        7,     0,     0,     8,     0,     9,    10,    11,    12,    13,
1217       14,    15,     0,    16,    17,    18,    19,    20,    21,    22,
1218       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1219       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1220       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1221       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1222       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1223       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1224       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1225       93,    94,    95,    96,    97,    98,     0,     0,     0,     0,
1226        0,     0,    99,     0,     0,     0,     0,     0,     0,   100,
1227      101,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1228        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1229        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1230        0,     0,     0,     0,     0,     0,     0,   102,   573,   103,
1231        4,     5,     0,     0,     7,     0,     0,     8,     0,     9,
1232       10,    11,    12,    13,    14,    15,     0,    16,    17,    18,
1233       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1234       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1235       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1236       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1237       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1238       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1239       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1240       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1241        0,     0,     0,     0,     0,     0,    99,     0,     0,     0,
1242        0,     0,     0,   100,   101,     0,     0,     0,     0,     0,
1243        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1244        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1245        0,     0,     0,     0,     0,   611,     5,     0,     0,     7,
1246        0,   102,     8,   103,     9,    10,    11,    12,    13,    14,
1247       15,     0,    16,    17,    18,    19,    20,    21,    22,    23,
1248       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1249       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1250       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1251       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1252       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1253       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1254       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1255       94,    95,    96,    97,    98,     0,     0,     0,     0,     0,
1256        0,    99,     0,     0,     0,     0,     0,     0,   100,   101,
1257        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1258        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1259        0,     0,     6,     0,     0,     0,     0,     0,     0,     0,
1260        0,     0,     0,   166,   132,     0,   102,     0,   103,    18,
1261       19,    20,    21,    22,    23,   137,    25,    26,    27,   141,
1262      142,   143,   144,   145,   146,   147,   148,    36,    37,    38,
1263       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1264       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1265       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1266       69,    70,    71,    72,    73,    74,    75,    76,    77,   151,
1267      152,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1268       89,   153,   154,     0,     0,     0,   155,   156,     0,     0,
1269      167,   168,   169,   170,     0,   171,   172,     0,     0,     0,
1270        0,     0,     0,   100,   101,     0,     0,     0,     0,     0,
1271        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1272        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1273      173,     0,     0,     0,   174,   175,     6,     0,     0,   176,
1274        0,   177,     0,   178,   179,     0,     0,   166,   132,     0,
1275        0,     0,     0,    18,    19,    20,    21,    22,    23,   137,
1276       25,    26,    27,   141,   142,   143,   144,   145,   146,   147,
1277      148,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1278       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1279       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1280       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1281       75,    76,    77,   151,   152,    80,    81,    82,    83,    84,
1282       85,    86,    87,    88,    89,   153,   154,     0,     0,     0,
1283      155,   156,     0,     0,   167,   168,   169,   170,     0,   171,
1284      172,     0,     0,     0,     0,     0,     0,   100,   101,     0,
1285        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1286        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1287        0,     0,     0,     0,   173,     6,     0,     0,   174,   175,
1288        0,     0,     0,   176,     0,   177,    13,   132,   179,     0,
1289        0,     0,    18,    19,    20,    21,    22,    23,   137,    25,
1290       26,    27,   141,   142,   143,   144,   145,   146,   147,   148,
1291       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1292       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1293       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1294       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1295       76,    77,   151,   152,    80,    81,    82,    83,    84,    85,
1296       86,    87,    88,    89,   153,   154,     0,     0,     0,   155,
1297      156,     0,     0,   167,   168,   169,   170,     0,   171,   172,
1298        0,     0,     0,     0,     0,     0,   100,   101,     0,     0,
1299        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1300        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1301        0,     6,     0,   173,     0,     0,     0,   174,   175,     0,
1302        0,     0,    13,   132,     0,     0,     0,   179,    18,    19,
1303       20,    21,    22,    23,   137,    25,    26,    27,   141,   142,
1304      143,   144,   145,   146,   147,   148,    36,    37,    38,    39,
1305       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1306       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1307       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1308       70,    71,    72,    73,    74,    75,    76,    77,   151,   152,
1309       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1310      153,   154,     0,     0,     0,   155,   156,     0,     0,   167,
1311      262,   263,   170,     0,   171,   172,     0,     0,     0,     0,
1312        0,     0,   100,   101,     0,     0,     0,     0,     0,     0,
1313        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1314        0,     0,     0,     0,     0,     0,     0,     6,     0,   173,
1315        0,     0,     0,   174,   175,     0,     0,     0,    13,   132,
1316        0,     0,     0,   179,    18,    19,    20,    21,    22,    23,
1317      137,    25,    26,    27,   141,   142,   143,   144,   145,   146,
1318      147,   148,    36,    37,    38,    39,    40,    41,    42,    43,
1319       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1320       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1321       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1322       74,    75,    76,    77,   151,   152,    80,    81,    82,    83,
1323       84,    85,    86,    87,    88,    89,   153,   154,     0,     0,
1324        0,   155,   156,     0,     0,   167,   329,   169,   170,     0,
1325      330,   172,     0,     0,     0,     0,     0,     0,   100,   101,
1326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1327        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1328        0,     0,     0,     6,     0,   173,     0,     0,     0,   174,
1329      175,     0,     0,     0,    13,   132,     0,     0,     0,   179,
1330       18,    19,    20,    21,    22,    23,   137,    25,    26,    27,
1331      141,   142,   143,   144,   145,   146,   147,   148,    36,    37,
1332       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1333       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1334       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1335       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1336      151,   152,    80,    81,    82,    83,    84,    85,    86,    87,
1337       88,    89,   153,   154,     0,     0,     0,   155,   156,     0,
1338        0,   167,   168,   169,   170,     0,   332,   172,     0,     0,
1339        0,     0,     0,     0,   100,   101,     0,     0,     0,     0,
1340        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1341        0,     0,     0,     0,     0,     0,     0,     0,     0,     6,
1342        0,   173,     0,     0,     0,   174,   175,     0,     0,     0,
1343       13,   132,     0,     0,     0,   179,    18,    19,    20,    21,
1344       22,    23,   137,    25,    26,    27,   141,   142,   143,   144,
1345      145,   146,   147,   148,    36,    37,    38,    39,    40,    41,
1346       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1347       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1348       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1349       72,    73,    74,    75,    76,    77,   151,   152,    80,    81,
1350       82,    83,    84,    85,    86,    87,    88,    89,   153,   154,
1351        0,     0,     0,   155,   156,     0,     0,   167,   519,   169,
1352      170,     0,   171,   172,     0,     0,     0,     0,     0,     0,
1353      100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1354        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1355        0,     0,     0,     0,     0,     0,     0,   173,     0,     0,
1356        0,   174,   175,     0,   387,   388,   389,   390,     0,   391,
1357        0,   179,   392,   393,     0,   394,     0,   395,   396,   397,
1358      398,     0,     0,     0,     0,     0,     0,   277,     0,   399,
1359      400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1360      410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1361      420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
1362      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
1363      440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
1364      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1365        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1366        0,     0,     0,     0,     0,   287,     0,   288,   289,   290,
1367      291,   292,   293,   294,   295,   296,   297,     0,     0,     0,
1368        0,     0,     0,     0,     0,     0,     0,     0,   458,     0,
1369        0,     0,     0,     0,     0,     0,     0,     0,    13,   132,
1370        0,     0,     0,     0,   510,   133,   134,   135,   136,    23,
1371      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1372      147,   148,    36,    37,    38,    39,    40,    41,    42,    43,
1373       44,    45,    46,    47,    48,    49,    50,    51,   149,    53,
1374       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1375       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1376      150,    75,    76,    77,   151,   152,    80,    81,    82,    83,
1377       84,    85,    86,    87,    88,    89,   153,   154,     0,     0,
1378        0,   155,   156,     0,     0,     0,     0,     0,     0,     0,
1379        0,   157,     0,     0,     0,     0,     0,     0,     0,     0,
1380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1381        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1382        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1383        0,     0,   250,    13,    14,     0,     0,   224,    17,    18,
1384       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1385       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1386       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1387       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1388       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1389       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1390       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1391       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1392        0,     0,     0,     0,     0,     0,    99,     0,     0,    12,
1393       13,    14,     0,   100,   101,    17,    18,    19,    20,    21,
1394       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1395       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1396       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1397       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1398       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1399       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1400       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1401       92,    93,    94,    95,    96,    97,    98,   277,     0,     0,
1402        0,     0,     0,    99,     0,     0,     0,     0,     0,     0,
1403      100,   101,     0,     0,     0,     0,     0,     0,     0,     0,
1404        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1405        0,     0,     0,     0,   277,     0,     0,     0,     0,     0,
1406        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1407      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1408        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1409        0,   277,     0,     0,     0,   287,     0,   288,   289,   290,
1410      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1411      281,   282,   283,     0,     0,     0,     0,     0,   459,     0,
1412        0,     0,   284,   285,   286,     0,     0,     0,   277,     0,
1413        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1414      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1415        0,     0,     0,     0,     0,   460,     0,     0,     0,   284,
1416      285,   286,     0,     0,     0,   277,     0,     0,     0,   287,
1417        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1418      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1419        0,     0,   466,     0,     0,     0,   284,   285,   286,     0,
1420        0,     0,   277,     0,     0,     0,   287,     0,   288,   289,
1421      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1422      280,   281,   282,   283,     0,     0,     0,     0,     0,   471,
1423        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1424        0,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1425      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1426      283,     0,     0,     0,     0,     0,   475,     0,     0,     0,
1427      284,   285,   286,     0,     0,     0,   277,     0,     0,     0,
1428      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1429      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1430        0,     0,     0,   477,     0,     0,     0,   284,   285,   286,
1431        0,     0,     0,   277,     0,     0,     0,   287,     0,   288,
1432      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1433      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1434      479,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1435      277,     0,     0,     0,   287,     0,   288,   289,   290,   291,
1436      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1437      282,   283,     0,     0,     0,     0,     0,   481,     0,     0,
1438        0,   284,   285,   286,     0,     0,     0,   277,     0,     0,
1439        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1440      295,   296,   297,   278,   279,   280,   281,   282,   283,     0,
1441        0,     0,     0,     0,   550,     0,     0,     0,   284,   285,
1442      286,     0,     0,     0,   277,     0,     0,     0,   287,     0,
1443      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1444      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1445        0,   564,     0,     0,     0,   284,   285,   286,     0,     0,
1446        0,   277,     0,     0,     0,   287,     0,   288,   289,   290,
1447      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1448      281,   282,   283,     0,     0,     0,     0,     0,   597,     0,
1449        0,     0,   284,   285,   286,     0,     0,     0,   277,     0,
1450        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1451      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1452        0,     0,     0,     0,     0,   598,     0,     0,     0,   284,
1453      285,   286,     0,     0,     0,   277,     0,     0,     0,   287,
1454        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1455      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1456        0,     0,   615,     0,     0,     0,   284,   285,   286,     0,
1457        0,     0,   277,     0,     0,     0,   287,     0,   288,   289,
1458      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1459      280,   281,   282,   283,   484,     0,     0,     0,     0,     0,
1460        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1461        0,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1462      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1463      283,   496,     0,     0,     0,     0,     0,     0,     0,     0,
1464      284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
1465      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1466      296,   297,   278,   279,   280,   281,   282,   283,   594,     0,
1467        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1468        0,     0,     0,     0,     0,     0,     0,   287,     0,   288,
1469      289,   290,   291,   292,   293,   294,   295,   296,   297,    13,
1470      132,     0,     0,   532,   533,    18,    19,    20,    21,    22,
1471       23,   137,    25,    26,    27,   141,   142,   143,   144,   145,
1472      146,   147,   148,    36,    37,    38,    39,    40,    41,    42,
1473       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1474       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1475       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1476       73,    74,    75,    76,    77,   151,   152,    80,    81,    82,
1477       83,    84,    85,    86,    87,    88,    89,   153,   154,     0,
1478        0,     0,   155,   156,     0,     0,     0,    13,   132,     0,
1479        0,     0,   161,    18,    19,    20,    21,    22,    23,   137,
1480       25,    26,    27,   141,   142,   143,   144,   145,   146,   147,
1481      148,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1482       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1483       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1484       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1485       75,    76,    77,   151,   152,    80,    81,    82,    83,    84,
1486       85,    86,    87,    88,    89,   153,   154,     0,     0,     0,
1487      155,   156,     0,     0,    13,   132,     0,     0,     0,     0,
1488      172,   133,   134,   135,   136,    23,   137,   138,   139,   140,
1489      141,   142,   143,   144,   145,   146,   147,   148,    36,    37,
1490       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1491       48,    49,    50,    51,   149,    53,    54,    55,    56,    57,
1492       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1493       68,    69,    70,    71,    72,    73,   150,    75,    76,    77,
1494      151,   152,    80,    81,    82,    83,    84,    85,    86,    87,
1495       88,    89,   153,   154,     0,     0,     0,   155,   156,     0,
1496        0,    13,   132,     0,     0,     0,     0,   157,   133,   134,
1497      135,   136,    23,   137,   138,   139,   140,   141,   142,   143,
1498      144,   145,   146,   147,   148,    36,    37,    38,    39,    40,
1499       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1500       51,   149,    53,    54,    55,    56,    57,    58,    59,    60,
1501       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1502       71,    72,    73,   150,    75,    76,    77,   151,   152,    80,
1503       81,    82,    83,    84,    85,    86,    87,    88,    89,   153,
1504      154,   277,     0,     0,   155,   156,     0,     0,     0,     0,
1505        0,     0,     0,     0,   353,     0,     0,     0,     0,     0,
1506        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507        0,     0,     0,     0,     0,     0,     0,     0,   277,     0,
1508        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1509        0,     0,     0,     0,   278,   279,   280,   281,   282,   283,
1510        0,     0,     0,     0,     0,     0,     0,     0,     0,   284,
1511      285,   286,     0,     0,     0,   277,   461,     0,     0,   287,
1512        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1513      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1514        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1515        0,     0,   277,   464,     0,     0,   287,     0,   288,   289,
1516      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1517      280,   281,   282,   283,     0,     0,     0,     0,     0,     0,
1518        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1519      465,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1520      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1521      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1522      284,   285,   286,     0,     0,     0,   277,   467,     0,     0,
1523      287,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1524      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1525        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1526        0,     0,     0,   277,   468,     0,     0,   287,     0,   288,
1527      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1528      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1529        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1530      277,   469,     0,     0,   287,     0,   288,   289,   290,   291,
1531      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1532      282,   283,     0,     0,     0,     0,     0,     0,     0,     0,
1533        0,   284,   285,   286,     0,     0,     0,   277,   470,     0,
1534        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1535      295,   296,   297,   278,   279,   280,   281,   282,   283,     0,
1536        0,     0,     0,     0,     0,     0,     0,     0,   284,   285,
1537      286,     0,     0,     0,   277,   472,     0,     0,   287,     0,
1538      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1539      278,   279,   280,   281,   282,   283,     0,     0,     0,     0,
1540        0,     0,     0,     0,     0,   284,   285,   286,     0,     0,
1541        0,   277,     0,     0,     0,   287,   503,   288,   289,   290,
1542      291,   292,   293,   294,   295,   296,   297,   278,   279,   280,
1543      281,   282,   283,     0,     0,     0,     0,     0,     0,     0,
1544        0,     0,   284,   285,   286,     0,     0,     0,   277,   551,
1545        0,     0,   287,     0,   288,   289,   290,   291,   292,   293,
1546      294,   295,   296,   297,   278,   279,   280,   281,   282,   283,
1547        0,     0,     0,     0,     0,     0,     0,     0,     0,   284,
1548      285,   286,     0,     0,     0,   277,   554,     0,     0,   287,
1549        0,   288,   289,   290,   291,   292,   293,   294,   295,   296,
1550      297,   278,   279,   280,   281,   282,   283,     0,     0,     0,
1551        0,     0,     0,     0,     0,     0,   284,   285,   286,     0,
1552        0,     0,   277,   555,     0,     0,   287,     0,   288,   289,
1553      290,   291,   292,   293,   294,   295,   296,   297,   278,   279,
1554      280,   281,   282,   283,     0,     0,     0,     0,     0,     0,
1555        0,     0,     0,   284,   285,   286,     0,     0,     0,   277,
1556      599,     0,     0,   287,     0,   288,   289,   290,   291,   292,
1557      293,   294,   295,   296,   297,   278,   279,   280,   281,   282,
1558      283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1559      284,   285,   286,     0,     0,     0,   277,     0,     0,     0,
1560      287,   605,   288,   289,   290,   291,   292,   293,   294,   295,
1561      296,   297,   278,   279,   280,   281,   282,   283,     0,     0,
1562        0,     0,     0,     0,     0,     0,     0,   284,   285,   286,
1563        0,     0,     0,   277,   608,     0,     0,   287,     0,   288,
1564      289,   290,   291,   292,   293,   294,   295,   296,   297,   278,
1565      279,   280,   281,   282,   283,     0,     0,     0,     0,     0,
1566        0,     0,     0,     0,   284,   285,   286,     0,     0,     0,
1567      277,   612,     0,     0,   287,     0,   288,   289,   290,   291,
1568      292,   293,   294,   295,   296,   297,   278,   279,   280,   281,
1569      282,   283,   277,     0,     0,     0,     0,     0,     0,     0,
1570        0,   284,   285,   286,     0,     0,     0,     0,     0,     0,
1571        0,   287,     0,   288,   289,   290,   291,   292,   293,   294,
1572      295,   296,   297,   278,   279,   280,   281,     0,     0,     0,
1573        0,     0,     0,     0,     0,     0,     0,     0,   284,   285,
1574      286,     0,     0,     0,     0,     0,   279,   280,     0,     0,
1575      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1576      284,   285,   286,     0,     0,     0,     0,     0,     0,     0,
1577        0,     0,   288,   289,   290,   291,   292,   293,   294,   295,
1578      296,   297,   387,   388,   389,   390,   574,   391,     0,     0,
1579      392,   393,     0,   394,     0,   395,   396,   397,   398,     0,
1580        0,     0,     0,     0,     0,     0,     0,   399,   400,   401,
1581      402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
1582      412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
1583      422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
1584      432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
1585      442,   443,   444,   445,   446,   447,   448,   449,   387,   388,
1586      389,   390,     0,   391,     0,     0,   392,   393,     0,   394,
1587        0,   395,   396,   397,   398,     0,     0,     0,     0,     0,
1588        0,     0,     0,   399,   400,   401,   402,   403,   404,   405,
1589      406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1590      416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
1591      426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
1592      436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
1593      446,   447,   448,   449
1594 };
1595
1596 static const short yycheck[] =
1597 {
1598        2,   130,    11,   223,     8,     9,     2,     8,     9,   504,
1599      450,   132,    14,   132,   132,   132,     2,     0,   132,   132,
1600      156,   132,   132,   132,    57,   132,   151,   152,    14,   132,
1601        0,   157,    12,   156,   154,   156,   132,   158,   258,   158,
1602      158,   158,   155,    15,   158,     2,     2,   158,   158,   158,
1603      153,   158,   157,    15,   151,   152,   157,    14,   116,   117,
1604      118,   119,   120,   121,   122,   123,   124,   116,   117,   157,
1605      128,   129,   130,   151,   152,   133,   134,   157,    92,    93,
1606      151,   152,   157,    57,   133,   157,   157,   151,   152,    57,
1607      151,   152,   157,     2,   108,   157,   157,   151,   152,   156,
1608      102,   541,   104,   151,   152,    14,   601,   157,   104,   156,
1609      605,   144,   145,   146,   157,   117,   102,   157,   104,   157,
1610      517,   518,   124,   520,   133,   522,   157,   157,   130,   157,
1611      157,   117,   157,   157,   114,   355,   157,   157,   124,   157,
1612      157,   157,   157,     2,   130,   102,   157,   104,   104,   157,
1613      130,   155,   157,   108,   155,   158,    13,   125,   126,   127,
1614      117,   117,   157,   157,   157,   157,   157,   124,   142,   143,
1615      144,   145,   146,   130,   142,   143,   144,   145,   146,   157,
1616      157,   157,   133,   185,   157,    11,   166,   103,   104,   105,
1617      106,   107,   108,   102,   157,   104,   157,   177,   158,   185,
1618      158,   132,   156,    57,   176,   158,   158,   157,   117,   158,
1619      158,   158,   136,   158,   158,   124,   158,   346,   132,   158,
1620      158,   130,   158,   225,   196,   157,   198,   157,   185,   154,
1621      107,   154,   108,   108,   196,   108,   198,   157,   210,   225,
1622      158,   158,     6,   102,   132,   104,   158,   158,   210,    57,
1623      156,   223,   132,   233,   158,   158,   158,   158,   117,   158,
1624      158,   158,   158,   483,   136,   156,   104,   126,   225,   225,
1625      250,   130,   338,   245,   485,   277,   185,   257,   567,   259,
1626      534,   470,   359,   245,   256,   575,   258,   505,   257,    -1,
1627       -1,   277,    -1,   273,   256,    -1,    -1,    -1,    -1,    -1,
1628       -1,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,   529,
1629       -1,    -1,    -1,   275,    -1,    -1,   225,   125,   126,   127,
1630      277,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   187,    -1,
1631       -1,   139,   140,   141,   142,   143,   144,   145,   146,    -1,
1632       -1,    -1,    -1,    -1,   346,   347,    57,   349,    -1,    -1,
1633       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   338,    -1,
1634      346,   347,    -1,   349,    -1,    -1,   225,   347,   277,    -1,
1635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,
1636       -1,    -1,    -1,   355,   356,    -1,   358,    -1,    57,   346,
1637       -1,    -1,   349,   349,   356,    -1,   358,    -1,    -1,   110,
1638      111,   112,   113,   114,   115,   534,    -1,    -1,    -1,    -1,
1639       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
1640       -1,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
1641      141,   142,   143,   144,   145,   146,    -1,   346,    -1,    -1,
1642      349,   110,   111,   112,   113,   114,   115,   158,    -1,    -1,
1643       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
1644       -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,
1645      139,   140,   141,   142,   143,   144,   145,   146,    -1,   481,
1646       -1,    -1,    -1,   485,    -1,    -1,    -1,   346,    -1,   158,
1647      349,    -1,    -1,    -1,    -1,   481,    -1,    -1,    -1,   485,
1648      502,    -1,   504,    -1,    -1,   485,    -1,    -1,    -1,    -1,
1649       -1,   483,    -1,    -1,    -1,    -1,   502,    -1,   504,    -1,
1650       -1,   501,    -1,   525,   481,   481,    -1,    -1,    -1,    -1,
1651       -1,    -1,   534,   535,    -1,    -1,    -1,    -1,   540,   525,
1652       -1,    -1,    -1,    -1,    -1,   502,   502,   504,   534,   535,
1653       -1,    -1,   532,    -1,   540,    -1,    -1,   529,    -1,    -1,
1654       -1,    -1,    -1,    -1,    -1,    -1,   568,    -1,   525,   525,
1655       -1,    -1,   481,    -1,    -1,    -1,    -1,   534,   535,   535,
1656       -1,    -1,   568,   540,   540,    -1,    -1,    -1,    -1,    -1,
1657      592,    -1,    -1,   502,    -1,   504,    -1,    -1,    -1,   601,
1658       -1,   603,    -1,   605,   606,    -1,   592,   609,    -1,    -1,
1659       -1,   568,   568,    -1,    -1,   601,   525,   603,    -1,   605,
1660      606,    -1,   481,   609,    -1,   534,   535,    -1,    -1,    -1,
1661       -1,   540,    -1,    57,    -1,   592,   592,    -1,    -1,    -1,
1662       -1,    -1,    -1,   502,   601,   504,   603,   603,   605,   606,
1663      606,    -1,   609,   609,    -1,    -1,    -1,    -1,    -1,   568,
1664       -1,    -1,    -1,    -1,    -1,    -1,   525,    -1,    -1,    -1,
1665       -1,    -1,    -1,    -1,    -1,   534,   535,    -1,    -1,    -1,
1666       -1,   540,    -1,   592,    -1,    -1,   110,   111,   112,   113,
1667      114,   115,   601,   131,   603,    -1,   605,   606,    -1,    -1,
1668      609,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,   568,
1669       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
1670      144,   145,   146,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1671       -1,    -1,    -1,   592,   158,   173,   174,   175,    -1,    -1,
1672       -1,   179,   601,    -1,   603,    57,   605,   606,    -1,    -1,
1673      609,    -1,    -1,   191,    -1,   193,   194,    -1,    -1,   197,
1674       -1,   199,   200,   201,   202,    -1,    -1,    -1,    -1,    -1,
1675       -1,    -1,    -1,   211,   212,   213,   214,   215,   216,   217,
1676      218,   219,    -1,   221,   222,    -1,    -1,    -1,    -1,    -1,
1677      228,    -1,   230,    -1,    -1,    -1,   234,    -1,   110,   111,
1678      112,   113,   114,   115,    -1,    -1,    -1,    57,    -1,   247,
1679       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    -1,
1680      132,    -1,   260,   135,    -1,   137,   138,   139,   140,   141,
1681      142,   143,   144,   145,   146,    -1,    -1,    -1,    -1,    -1,
1682      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1683      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1684      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
1685       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
1686       -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
1687      140,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
1688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,   347,
1689      348,     3,     4,     5,    -1,     7,    -1,    -1,    10,    -1,
1690       12,    13,    14,    15,    16,    17,    18,    -1,    20,    21,
1691       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1692       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1693       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1694       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1695       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1696       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1697       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1698       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1699      102,    -1,    -1,    -1,    -1,    -1,    -1,   109,   456,    57,
1700       -1,    -1,    -1,   461,   116,   117,   464,   465,    -1,   467,
1701      468,   469,   470,    -1,   472,    -1,    -1,    -1,    -1,    -1,
1702       -1,    -1,    -1,    -1,   482,    -1,    -1,   485,    -1,    -1,
1703       -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,
1704       -1,    -1,   154,    -1,   156,   503,    -1,    -1,    -1,    -1,
1705       -1,    -1,   110,   111,   112,   113,   114,   115,    -1,    -1,
1706       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
1707       -1,    -1,    -1,    -1,    -1,   533,    -1,   135,    -1,   137,
1708      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
1709      111,   112,   113,   114,   115,    -1,   554,   555,    -1,    -1,
1710      158,    -1,   560,    -1,   125,   126,   127,    -1,    -1,    -1,
1711       -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
1712      141,   142,   143,   144,   145,   146,    -1,    -1,    -1,   587,
1713       -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,
1714       -1,   599,    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,
1715      608,    -1,     7,    -1,   612,    10,    -1,    12,    13,    14,
1716       15,    16,    17,    18,    -1,    20,    21,    22,    23,    24,
1717       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1718       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1719       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1720       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1721       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1722       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1723       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1724       95,    96,    97,    98,    99,   100,   101,   102,    -1,    -1,
1725       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
1726       -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1727       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1729       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,
1730      155,   156,     3,     4,    -1,    -1,     7,    -1,    -1,    10,
1731       -1,    12,    13,    14,    15,    16,    17,    18,    -1,    20,
1732       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1733       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1734       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1735       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1736       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1737       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1738       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1739       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1740      101,   102,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
1741       -1,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,    -1,
1742       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1744       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1745       -1,    -1,    -1,   154,   155,   156,     3,     4,    -1,    -1,
1746        7,    -1,    -1,    10,    -1,    12,    13,    14,    15,    16,
1747       17,    18,    -1,    20,    21,    22,    23,    24,    25,    26,
1748       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1749       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1750       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1751       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1752       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1753       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1754       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1755       97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
1756       -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,
1757      117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1758       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1760       -1,    -1,    -1,    -1,    -1,    -1,    -1,   154,   155,   156,
1761        3,     4,    -1,    -1,     7,    -1,    -1,    10,    -1,    12,
1762       13,    14,    15,    16,    17,    18,    -1,    20,    21,    22,
1763       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1764       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1765       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1766       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1767       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1768       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1769       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1770       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1771       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
1772       -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,
1773       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1775       -1,    -1,    -1,    -1,    -1,     3,     4,    -1,    -1,     7,
1776       -1,   154,    10,   156,    12,    13,    14,    15,    16,    17,
1777       18,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
1778       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1779       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1780       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1781       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1782       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1783       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1784       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1785       98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,    -1,
1786       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
1787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1789       -1,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1790       -1,    -1,    -1,    16,    17,    -1,   154,    -1,   156,    22,
1791       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1792       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1793       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1794       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1795       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1796       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1797       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1798       93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,    -1,
1799      103,   104,   105,   106,    -1,   108,   109,    -1,    -1,    -1,
1800       -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,
1801       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1802       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1803      143,    -1,    -1,    -1,   147,   148,     5,    -1,    -1,   152,
1804       -1,   154,    -1,   156,   157,    -1,    -1,    16,    17,    -1,
1805       -1,    -1,    -1,    22,    23,    24,    25,    26,    27,    28,
1806       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1807       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1808       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1809       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1810       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1811       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1812       89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
1813       99,   100,    -1,    -1,   103,   104,   105,   106,    -1,   108,
1814      109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,    -1,
1815       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1816       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1817       -1,    -1,    -1,    -1,   143,     5,    -1,    -1,   147,   148,
1818       -1,    -1,    -1,   152,    -1,   154,    16,    17,   157,    -1,
1819       -1,    -1,    22,    23,    24,    25,    26,    27,    28,    29,
1820       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1821       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1822       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1823       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1824       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1825       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1826       90,    91,    92,    93,    94,    95,    -1,    -1,    -1,    99,
1827      100,    -1,    -1,   103,   104,   105,   106,    -1,   108,   109,
1828       -1,    -1,    -1,    -1,    -1,    -1,   116,   117,    -1,    -1,
1829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1830       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1831       -1,     5,    -1,   143,    -1,    -1,    -1,   147,   148,    -1,
1832       -1,    -1,    16,    17,    -1,    -1,    -1,   157,    22,    23,
1833       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1834       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1835       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1836       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1837       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1838       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1839       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1840       94,    95,    -1,    -1,    -1,    99,   100,    -1,    -1,   103,
1841      104,   105,   106,    -1,   108,   109,    -1,    -1,    -1,    -1,
1842       -1,    -1,   116,   117,    -1,    -1,    -1,    -1,    -1,    -1,
1843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1844       -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,   143,
1845       -1,    -1,    -1,   147,   148,    -1,    -1,    -1,    16,    17,
1846       -1,    -1,    -1,   157,    22,    23,    24,    25,    26,    27,
1847       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1848       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1849       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1850       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1851       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1852       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1853       88,    89,    90,    91,    92,    93,    94,    95,    -1,    -1,
1854       -1,    99,   100,    -1,    -1,   103,   104,   105,   106,    -1,
1855      108,   109,    -1,    -1,    -1,    -1,    -1,    -1,   116,   117,
1856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1858       -1,    -1,    -1,     5,    -1,   143,    -1,    -1,    -1,   147,
1859      148,    -1,    -1,    -1,    16,    17,    -1,    -1,    -1,   157,
1860       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1861       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1862       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1863       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1864       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1865       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1866       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1867       92,    93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,
1868       -1,   103,   104,   105,   106,    -1,   108,   109,    -1,    -1,
1869       -1,    -1,    -1,    -1,   116,   117,    -1,    -1,    -1,    -1,
1870       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1871       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
1872       -1,   143,    -1,    -1,    -1,   147,   148,    -1,    -1,    -1,
1873       16,    17,    -1,    -1,    -1,   157,    22,    23,    24,    25,
1874       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1875       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1876       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1877       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1878       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1879       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1880       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1881       -1,    -1,    -1,    99,   100,    -1,    -1,   103,   104,   105,
1882      106,    -1,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,
1883      116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1884       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1885       -1,    -1,    -1,    -1,    -1,    -1,    -1,   143,    -1,    -1,
1886       -1,   147,   148,    -1,    15,    16,    17,    18,    -1,    20,
1887       -1,   157,    23,    24,    -1,    26,    -1,    28,    29,    30,
1888       31,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    40,
1889       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1890       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1891       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1892       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1893       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1894      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
1895       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
1896       -1,    -1,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
1897      140,   141,   142,   143,   144,   145,   146,    -1,    -1,    -1,
1898       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   158,    -1,
1899       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    16,    17,
1900       -1,    -1,    -1,    -1,   155,    23,    24,    25,    26,    27,
1901       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1902       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1903       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1904       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1905       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1906       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1907       88,    89,    90,    91,    92,    93,    94,    95,    -1,    -1,
1908       -1,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1909       -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1910       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1912       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913       -1,    -1,    15,    16,    17,    -1,    -1,   155,    21,    22,
1914       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1915       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1916       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1917       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1918       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1919       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1920       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1921       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1922       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    15,
1923       16,    17,    -1,   116,   117,    21,    22,    23,    24,    25,
1924       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1925       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1926       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1927       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1928       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1929       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1930       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1931       96,    97,    98,    99,   100,   101,   102,    57,    -1,    -1,
1932       -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,    -1,
1933      116,   117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1934       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1935       -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    -1,
1936       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1937      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
1938       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
1939       -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
1940      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
1941      113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,
1942       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,
1943       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
1944      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
1945       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,
1946      126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,
1947       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1948      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
1949       -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,
1950       -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,
1951      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
1952      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,
1953       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
1954       -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
1955      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
1956      115,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,
1957      125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,
1958      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
1959      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
1960       -1,    -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,
1961       -1,    -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,
1962      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
1963      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
1964      158,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
1965       57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
1966      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
1967      114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,
1968       -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,
1969       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
1970      144,   145,   146,   110,   111,   112,   113,   114,   115,    -1,
1971       -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,   126,
1972      127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,    -1,
1973      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1974      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
1975       -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
1976       -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
1977      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
1978      113,   114,   115,    -1,    -1,    -1,    -1,    -1,   158,    -1,
1979       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,    -1,
1980       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
1981      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
1982       -1,    -1,    -1,    -1,    -1,   158,    -1,    -1,    -1,   125,
1983      126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,   135,
1984       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1985      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
1986       -1,    -1,   158,    -1,    -1,    -1,   125,   126,   127,    -1,
1987       -1,    -1,    57,    -1,    -1,    -1,   135,    -1,   137,   138,
1988      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
1989      112,   113,   114,   115,   153,    -1,    -1,    -1,    -1,    -1,
1990       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
1991       -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
1992      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
1993      115,   153,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1994      125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1995      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
1996      145,   146,   110,   111,   112,   113,   114,   115,   153,    -1,
1997       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
1998       -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,   137,
1999      138,   139,   140,   141,   142,   143,   144,   145,   146,    16,
2000       17,    -1,    -1,   151,   152,    22,    23,    24,    25,    26,
2001       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2002       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2003       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2004       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2005       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2006       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2007       87,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
2008       -1,    -1,    99,   100,    -1,    -1,    -1,    16,    17,    -1,
2009       -1,    -1,   109,    22,    23,    24,    25,    26,    27,    28,
2010       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2011       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2012       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2013       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2014       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2015       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2016       89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
2017       99,   100,    -1,    -1,    16,    17,    -1,    -1,    -1,    -1,
2018      109,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2019       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2020       42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2021       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2022       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2023       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2024       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2025       92,    93,    94,    95,    -1,    -1,    -1,    99,   100,    -1,
2026       -1,    16,    17,    -1,    -1,    -1,    -1,   109,    23,    24,
2027       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2028       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2029       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2030       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2031       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2032       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2033       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2034       95,    57,    -1,    -1,    99,   100,    -1,    -1,    -1,    -1,
2035       -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,    -1,
2036       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2037       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
2038       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2039       -1,    -1,    -1,    -1,   110,   111,   112,   113,   114,   115,
2040       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,
2041      126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,
2042       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2043      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2044       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
2045       -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,   138,
2046      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2047      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
2048       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2049      132,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2050      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2051      115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2052      125,   126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,
2053      135,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2054      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
2055       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
2056       -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,
2057      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
2058      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
2059       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
2060       57,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
2061      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
2062      114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2063       -1,   125,   126,   127,    -1,    -1,    -1,    57,   132,    -1,
2064       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2065      144,   145,   146,   110,   111,   112,   113,   114,   115,    -1,
2066       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,
2067      127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,
2068      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2069      110,   111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,
2070       -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,
2071       -1,    57,    -1,    -1,    -1,   135,   136,   137,   138,   139,
2072      140,   141,   142,   143,   144,   145,   146,   110,   111,   112,
2073      113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2074       -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,   132,
2075       -1,    -1,   135,    -1,   137,   138,   139,   140,   141,   142,
2076      143,   144,   145,   146,   110,   111,   112,   113,   114,   115,
2077       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,
2078      126,   127,    -1,    -1,    -1,    57,   132,    -1,    -1,   135,
2079       -1,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2080      146,   110,   111,   112,   113,   114,   115,    -1,    -1,    -1,
2081       -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,    -1,
2082       -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,   138,
2083      139,   140,   141,   142,   143,   144,   145,   146,   110,   111,
2084      112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
2085       -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,    57,
2086      132,    -1,    -1,   135,    -1,   137,   138,   139,   140,   141,
2087      142,   143,   144,   145,   146,   110,   111,   112,   113,   114,
2088      115,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2089      125,   126,   127,    -1,    -1,    -1,    57,    -1,    -1,    -1,
2090      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2091      145,   146,   110,   111,   112,   113,   114,   115,    -1,    -1,
2092       -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,   127,
2093       -1,    -1,    -1,    57,   132,    -1,    -1,   135,    -1,   137,
2094      138,   139,   140,   141,   142,   143,   144,   145,   146,   110,
2095      111,   112,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,
2096       -1,    -1,    -1,    -1,   125,   126,   127,    -1,    -1,    -1,
2097       57,   132,    -1,    -1,   135,    -1,   137,   138,   139,   140,
2098      141,   142,   143,   144,   145,   146,   110,   111,   112,   113,
2099      114,   115,    57,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2100       -1,   125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,
2101       -1,   135,    -1,   137,   138,   139,   140,   141,   142,   143,
2102      144,   145,   146,   110,   111,   112,   113,    -1,    -1,    -1,
2103       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,
2104      127,    -1,    -1,    -1,    -1,    -1,   111,   112,    -1,    -1,
2105      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2106      125,   126,   127,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2107       -1,    -1,   137,   138,   139,   140,   141,   142,   143,   144,
2108      145,   146,    15,    16,    17,    18,    19,    20,    -1,    -1,
2109       23,    24,    -1,    26,    -1,    28,    29,    30,    31,    -1,
2110       -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
2111       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2112       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2113       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2114       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2115       83,    84,    85,    86,    87,    88,    89,    90,    15,    16,
2116       17,    18,    -1,    20,    -1,    -1,    23,    24,    -1,    26,
2117       -1,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
2118       -1,    -1,    -1,    40,    41,    42,    43,    44,    45,    46,
2119       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2120       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2121       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2122       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2123       87,    88,    89,    90
2124 };
2125
2126 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2127    symbol of state STATE-NUM.  */
2128 static const unsigned char yystos[] =
2129 {
2130        0,   160,   161,     0,     3,     4,     5,     7,    10,    12,
2131       13,    14,    15,    16,    17,    18,    20,    21,    22,    23,
2132       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2133       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
2134       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
2135       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
2136       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
2137       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
2138       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
2139       94,    95,    96,    97,    98,    99,   100,   101,   102,   109,
2140      116,   117,   154,   156,   162,   163,   165,   166,   167,   168,
2141      170,   172,   173,   176,   178,   179,   181,   182,   185,   187,
2142      188,   191,   192,   195,   199,   200,   201,   207,   156,   156,
2143      157,   157,    17,    23,    24,    25,    26,    28,    29,    30,
2144       31,    32,    33,    34,    35,    36,    37,    38,    39,    56,
2145       78,    82,    83,    94,    95,    99,   100,   109,   176,   205,
2146      206,   109,   192,   195,   200,   201,    16,   103,   104,   105,
2147      106,   108,   109,   143,   147,   148,   152,   154,   156,   157,
2148      165,   178,   192,   194,   195,   199,   200,   201,   202,   203,
2149      204,   157,   154,   157,   157,   157,   157,   157,   157,   157,
2150      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
2151      157,   157,   157,   157,   157,   157,   157,   157,   157,   157,
2152      157,   157,   157,   157,   155,   164,   166,   163,   157,   176,
2153      157,   166,   201,   151,   152,   118,   119,   120,   121,   122,
2154      123,   124,   128,   129,   130,   133,   134,   198,   199,   156,
2155       15,   169,   176,   186,   207,   202,   133,   132,   157,   151,
2156      152,   176,   104,   105,   202,   202,   202,   193,   203,   176,
2157      196,   197,   202,   157,   201,   133,   199,    57,   110,   111,
2158      112,   113,   114,   115,   125,   126,   127,   135,   137,   138,
2159      139,   140,   141,   142,   143,   144,   145,   146,   156,   202,
2160      208,   202,   202,   158,   203,   202,   203,   202,   202,   202,
2161      202,   108,   158,   158,   158,   158,   158,   158,   203,   202,
2162      202,   202,   202,   202,   202,   202,   202,   202,   158,   104,
2163      108,   202,   108,   202,   193,   155,   166,   202,   157,   202,
2164       13,   176,   202,   203,   202,   176,   132,    11,   156,   158,
2165      203,   206,   193,   109,   202,   157,   132,   153,   136,   132,
2166      155,   158,   176,   177,   203,   200,   202,   202,   202,   202,
2167      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
2168      202,   202,   202,   202,   202,   202,   158,    15,    16,    17,
2169       18,    20,    23,    24,    26,    28,    29,    30,    31,    40,
2170       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2171       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2172       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2173       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2174       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2175      209,   210,   214,   158,   158,   158,   132,   158,   158,   158,
2176      158,   132,   132,   158,   132,   132,   158,   132,   132,   132,
2177      132,   158,   132,   158,   158,   158,   158,   158,   158,   158,
2178      177,   158,   157,   157,   153,    11,   207,   176,   180,   192,
2179      195,   202,   171,   202,   166,   158,   153,   193,   203,   203,
2180      196,   132,   158,   136,   154,   211,   215,   107,   108,   108,
2181      155,   214,   202,   202,   108,   202,   202,   202,   202,   104,
2182      190,   202,   190,   202,   154,   158,   166,   202,   193,   157,
2183      180,   158,   151,   152,   156,     6,   158,   176,   166,   202,
2184      164,   209,   103,   104,   105,   106,   107,   108,   212,   213,
2185      158,   132,   189,   158,   132,   132,   189,   189,   189,   189,
2186      132,   158,   174,   166,   158,   158,   193,   158,   184,   176,
2187      202,   186,   166,   155,    19,   132,    92,    93,   108,   158,
2188      202,   202,   158,   158,   158,   158,   202,     8,     9,   155,
2189      175,   158,   184,   166,   153,   158,   212,   158,   158,   132,
2190      202,   136,   166,   183,   202,   136,   164,   166,   132,   164,
2191      202,     3,   132,   156,   202,   158
2192 };
2193
2194 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
2195 # define YYSIZE_T __SIZE_TYPE__
2196 #endif
2197 #if ! defined (YYSIZE_T) && defined (size_t)
2198 # define YYSIZE_T size_t
2199 #endif
2200 #if ! defined (YYSIZE_T)
2201 # if defined (__STDC__) || defined (__cplusplus)
2202 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
2203 #  define YYSIZE_T size_t
2204 # endif
2205 #endif
2206 #if ! defined (YYSIZE_T)
2207 # define YYSIZE_T unsigned int
2208 #endif
2209
2210 #define yyerrok         (yyerrstatus = 0)
2211 #define yyclearin       (yychar = YYEMPTY)
2212 #define YYEMPTY         (-2)
2213 #define YYEOF           0
2214
2215 #define YYACCEPT        goto yyacceptlab
2216 #define YYABORT         goto yyabortlab
2217 #define YYERROR         goto yyerrlab1
2218
2219
2220 /* Like YYERROR except do call yyerror.  This remains here temporarily
2221    to ease the transition to the new meaning of YYERROR, for GCC.
2222    Once GCC version 2 has supplanted version 1, this can go.  */
2223
2224 #define YYFAIL          goto yyerrlab
2225
2226 #define YYRECOVERING()  (!!yyerrstatus)
2227
2228 #define YYBACKUP(Token, Value)                                  \
2229 do                                                              \
2230   if (yychar == YYEMPTY && yylen == 1)                          \
2231     {                                                           \
2232       yychar = (Token);                                         \
2233       yylval = (Value);                                         \
2234       yytoken = YYTRANSLATE (yychar);                           \
2235       YYPOPSTACK;                                               \
2236       goto yybackup;                                            \
2237     }                                                           \
2238   else                                                          \
2239     {                                                           \
2240       yyerror ("syntax error: cannot back up");\
2241       YYERROR;                                                  \
2242     }                                                           \
2243 while (0)
2244
2245 #define YYTERROR        1
2246 #define YYERRCODE       256
2247
2248 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
2249    are run).  */
2250
2251 #ifndef YYLLOC_DEFAULT
2252 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
2253   Current.first_line   = Rhs[1].first_line;      \
2254   Current.first_column = Rhs[1].first_column;    \
2255   Current.last_line    = Rhs[N].last_line;       \
2256   Current.last_column  = Rhs[N].last_column;
2257 #endif
2258
2259 /* YYLEX -- calling `yylex' with the right arguments.  */
2260
2261 #ifdef YYLEX_PARAM
2262 # define YYLEX yylex (YYLEX_PARAM)
2263 #else
2264 # define YYLEX yylex ()
2265 #endif
2266
2267 /* Enable debugging if requested.  */
2268 #if YYDEBUG
2269
2270 # ifndef YYFPRINTF
2271 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2272 #  define YYFPRINTF fprintf
2273 # endif
2274
2275 # define YYDPRINTF(Args)                        \
2276 do {                                            \
2277   if (yydebug)                                  \
2278     YYFPRINTF Args;                             \
2279 } while (0)
2280
2281 # define YYDSYMPRINT(Args)                      \
2282 do {                                            \
2283   if (yydebug)                                  \
2284     yysymprint Args;                            \
2285 } while (0)
2286
2287 # define YYDSYMPRINTF(Title, Token, Value, Location)            \
2288 do {                                                            \
2289   if (yydebug)                                                  \
2290     {                                                           \
2291       YYFPRINTF (stderr, "%s ", Title);                         \
2292       yysymprint (stderr,                                       \
2293                   Token, Value);        \
2294       YYFPRINTF (stderr, "\n");                                 \
2295     }                                                           \
2296 } while (0)
2297
2298 /*------------------------------------------------------------------.
2299 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2300 | TOP (cinluded).                                                   |
2301 `------------------------------------------------------------------*/
2302
2303 #if defined (__STDC__) || defined (__cplusplus)
2304 static void
2305 yy_stack_print (short *bottom, short *top)
2306 #else
2307 static void
2308 yy_stack_print (bottom, top)
2309     short *bottom;
2310     short *top;
2311 #endif
2312 {
2313   YYFPRINTF (stderr, "Stack now");
2314   for (/* Nothing. */; bottom <= top; ++bottom)
2315     YYFPRINTF (stderr, " %d", *bottom);
2316   YYFPRINTF (stderr, "\n");
2317 }
2318
2319 # define YY_STACK_PRINT(Bottom, Top)                            \
2320 do {                                                            \
2321   if (yydebug)                                                  \
2322     yy_stack_print ((Bottom), (Top));                           \
2323 } while (0)
2324
2325
2326 /*------------------------------------------------.
2327 | Report that the YYRULE is going to be reduced.  |
2328 `------------------------------------------------*/
2329
2330 #if defined (__STDC__) || defined (__cplusplus)
2331 static void
2332 yy_reduce_print (int yyrule)
2333 #else
2334 static void
2335 yy_reduce_print (yyrule)
2336     int yyrule;
2337 #endif
2338 {
2339   int yyi;
2340   unsigned int yylineno = yyrline[yyrule];
2341   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
2342              yyrule - 1, yylineno);
2343   /* Print the symbols being reduced, and their result.  */
2344   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
2345     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
2346   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
2347 }
2348
2349 # define YY_REDUCE_PRINT(Rule)          \
2350 do {                                    \
2351   if (yydebug)                          \
2352     yy_reduce_print (Rule);             \
2353 } while (0)
2354
2355 /* Nonzero means print parse trace.  It is left uninitialized so that
2356    multiple parsers can coexist.  */
2357 int yydebug;
2358 #else /* !YYDEBUG */
2359 # define YYDPRINTF(Args)
2360 # define YYDSYMPRINT(Args)
2361 # define YYDSYMPRINTF(Title, Token, Value, Location)
2362 # define YY_STACK_PRINT(Bottom, Top)
2363 # define YY_REDUCE_PRINT(Rule)
2364 #endif /* !YYDEBUG */
2365
2366
2367 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2368 #ifndef YYINITDEPTH
2369 # define YYINITDEPTH 200
2370 #endif
2371
2372 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2373    if the built-in stack extension method is used).
2374
2375    Do not make this value too large; the results are undefined if
2376    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2377    evaluated with infinite-precision integer arithmetic.  */
2378
2379 #if YYMAXDEPTH == 0
2380 # undef YYMAXDEPTH
2381 #endif
2382
2383 #ifndef YYMAXDEPTH
2384 # define YYMAXDEPTH 10000
2385 #endif
2386
2387 \f
2388
2389 #if YYERROR_VERBOSE
2390
2391 # ifndef yystrlen
2392 #  if defined (__GLIBC__) && defined (_STRING_H)
2393 #   define yystrlen strlen
2394 #  else
2395 /* Return the length of YYSTR.  */
2396 static YYSIZE_T
2397 #   if defined (__STDC__) || defined (__cplusplus)
2398 yystrlen (const char *yystr)
2399 #   else
2400 yystrlen (yystr)
2401      const char *yystr;
2402 #   endif
2403 {
2404   register const char *yys = yystr;
2405
2406   while (*yys++ != '\0')
2407     continue;
2408
2409   return yys - yystr - 1;
2410 }
2411 #  endif
2412 # endif
2413
2414 # ifndef yystpcpy
2415 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2416 #   define yystpcpy stpcpy
2417 #  else
2418 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2419    YYDEST.  */
2420 static char *
2421 #   if defined (__STDC__) || defined (__cplusplus)
2422 yystpcpy (char *yydest, const char *yysrc)
2423 #   else
2424 yystpcpy (yydest, yysrc)
2425      char *yydest;
2426      const char *yysrc;
2427 #   endif
2428 {
2429   register char *yyd = yydest;
2430   register const char *yys = yysrc;
2431
2432   while ((*yyd++ = *yys++) != '\0')
2433     continue;
2434
2435   return yyd - 1;
2436 }
2437 #  endif
2438 # endif
2439
2440 #endif /* !YYERROR_VERBOSE */
2441
2442 \f
2443
2444 #if YYDEBUG
2445 /*--------------------------------.
2446 | Print this symbol on YYOUTPUT.  |
2447 `--------------------------------*/
2448
2449 #if defined (__STDC__) || defined (__cplusplus)
2450 static void
2451 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
2452 #else
2453 static void
2454 yysymprint (yyoutput, yytype, yyvaluep)
2455     FILE *yyoutput;
2456     int yytype;
2457     YYSTYPE *yyvaluep;
2458 #endif
2459 {
2460   /* Pacify ``unused variable'' warnings.  */
2461   (void) yyvaluep;
2462
2463   if (yytype < YYNTOKENS)
2464     {
2465       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2466 # ifdef YYPRINT
2467       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2468 # endif
2469     }
2470   else
2471     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2472
2473   switch (yytype)
2474     {
2475       default:
2476         break;
2477     }
2478   YYFPRINTF (yyoutput, ")");
2479 }
2480
2481 #endif /* ! YYDEBUG */
2482 /*-----------------------------------------------.
2483 | Release the memory associated to this symbol.  |
2484 `-----------------------------------------------*/
2485
2486 #if defined (__STDC__) || defined (__cplusplus)
2487 static void
2488 yydestruct (int yytype, YYSTYPE *yyvaluep)
2489 #else
2490 static void
2491 yydestruct (yytype, yyvaluep)
2492     int yytype;
2493     YYSTYPE *yyvaluep;
2494 #endif
2495 {
2496   /* Pacify ``unused variable'' warnings.  */
2497   (void) yyvaluep;
2498
2499   switch (yytype)
2500     {
2501
2502       default:
2503         break;
2504     }
2505 }
2506 \f
2507
2508 /* Prevent warnings from -Wmissing-prototypes.  */
2509
2510 #ifdef YYPARSE_PARAM
2511 # if defined (__STDC__) || defined (__cplusplus)
2512 int yyparse (void *YYPARSE_PARAM);
2513 # else
2514 int yyparse ();
2515 # endif
2516 #else /* ! YYPARSE_PARAM */
2517 #if defined (__STDC__) || defined (__cplusplus)
2518 int yyparse (void);
2519 #else
2520 int yyparse ();
2521 #endif
2522 #endif /* ! YYPARSE_PARAM */
2523
2524
2525
2526 /* The lookahead symbol.  */
2527 int yychar;
2528
2529 /* The semantic value of the lookahead symbol.  */
2530 YYSTYPE yylval;
2531
2532 /* Number of syntax errors so far.  */
2533 int yynerrs;
2534
2535
2536
2537 /*----------.
2538 | yyparse.  |
2539 `----------*/
2540
2541 #ifdef YYPARSE_PARAM
2542 # if defined (__STDC__) || defined (__cplusplus)
2543 int yyparse (void *YYPARSE_PARAM)
2544 # else
2545 int yyparse (YYPARSE_PARAM)
2546   void *YYPARSE_PARAM;
2547 # endif
2548 #else /* ! YYPARSE_PARAM */
2549 #if defined (__STDC__) || defined (__cplusplus)
2550 int
2551 yyparse (void)
2552 #else
2553 int
2554 yyparse ()
2555
2556 #endif
2557 #endif
2558 {
2559   
2560   register int yystate;
2561   register int yyn;
2562   int yyresult;
2563   /* Number of tokens to shift before error messages enabled.  */
2564   int yyerrstatus;
2565   /* Lookahead token as an internal (translated) token number.  */
2566   int yytoken = 0;
2567
2568   /* Three stacks and their tools:
2569      `yyss': related to states,
2570      `yyvs': related to semantic values,
2571      `yyls': related to locations.
2572
2573      Refer to the stacks thru separate pointers, to allow yyoverflow
2574      to reallocate them elsewhere.  */
2575
2576   /* The state stack.  */
2577   short yyssa[YYINITDEPTH];
2578   short *yyss = yyssa;
2579   register short *yyssp;
2580
2581   /* The semantic value stack.  */
2582   YYSTYPE yyvsa[YYINITDEPTH];
2583   YYSTYPE *yyvs = yyvsa;
2584   register YYSTYPE *yyvsp;
2585
2586
2587
2588 #define YYPOPSTACK   (yyvsp--, yyssp--)
2589
2590   YYSIZE_T yystacksize = YYINITDEPTH;
2591
2592   /* The variables used to return semantic value and location from the
2593      action routines.  */
2594   YYSTYPE yyval;
2595
2596
2597   /* When reducing, the number of symbols on the RHS of the reduced
2598      rule.  */
2599   int yylen;
2600
2601   YYDPRINTF ((stderr, "Starting parse\n"));
2602
2603   yystate = 0;
2604   yyerrstatus = 0;
2605   yynerrs = 0;
2606   yychar = YYEMPTY;             /* Cause a token to be read.  */
2607
2608   /* Initialize stack pointers.
2609      Waste one element of value and location stack
2610      so that they stay on the same level as the state stack.
2611      The wasted elements are never initialized.  */
2612
2613   yyssp = yyss;
2614   yyvsp = yyvs;
2615
2616   goto yysetstate;
2617
2618 /*------------------------------------------------------------.
2619 | yynewstate -- Push a new state, which is found in yystate.  |
2620 `------------------------------------------------------------*/
2621  yynewstate:
2622   /* In all cases, when you get here, the value and location stacks
2623      have just been pushed. so pushing a state here evens the stacks.
2624      */
2625   yyssp++;
2626
2627  yysetstate:
2628   *yyssp = yystate;
2629
2630   if (yyss + yystacksize - 1 <= yyssp)
2631     {
2632       /* Get the current used size of the three stacks, in elements.  */
2633       YYSIZE_T yysize = yyssp - yyss + 1;
2634
2635 #ifdef yyoverflow
2636       {
2637         /* Give user a chance to reallocate the stack. Use copies of
2638            these so that the &'s don't force the real ones into
2639            memory.  */
2640         YYSTYPE *yyvs1 = yyvs;
2641         short *yyss1 = yyss;
2642
2643
2644         /* Each stack pointer address is followed by the size of the
2645            data in use in that stack, in bytes.  This used to be a
2646            conditional around just the two extra args, but that might
2647            be undefined if yyoverflow is a macro.  */
2648         yyoverflow ("parser stack overflow",
2649                     &yyss1, yysize * sizeof (*yyssp),
2650                     &yyvs1, yysize * sizeof (*yyvsp),
2651
2652                     &yystacksize);
2653
2654         yyss = yyss1;
2655         yyvs = yyvs1;
2656       }
2657 #else /* no yyoverflow */
2658 # ifndef YYSTACK_RELOCATE
2659       goto yyoverflowlab;
2660 # else
2661       /* Extend the stack our own way.  */
2662       if (YYMAXDEPTH <= yystacksize)
2663         goto yyoverflowlab;
2664       yystacksize *= 2;
2665       if (YYMAXDEPTH < yystacksize)
2666         yystacksize = YYMAXDEPTH;
2667
2668       {
2669         short *yyss1 = yyss;
2670         union yyalloc *yyptr =
2671           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2672         if (! yyptr)
2673           goto yyoverflowlab;
2674         YYSTACK_RELOCATE (yyss);
2675         YYSTACK_RELOCATE (yyvs);
2676
2677 #  undef YYSTACK_RELOCATE
2678         if (yyss1 != yyssa)
2679           YYSTACK_FREE (yyss1);
2680       }
2681 # endif
2682 #endif /* no yyoverflow */
2683
2684       yyssp = yyss + yysize - 1;
2685       yyvsp = yyvs + yysize - 1;
2686
2687
2688       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2689                   (unsigned long int) yystacksize));
2690
2691       if (yyss + yystacksize - 1 <= yyssp)
2692         YYABORT;
2693     }
2694
2695   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2696
2697   goto yybackup;
2698
2699 /*-----------.
2700 | yybackup.  |
2701 `-----------*/
2702 yybackup:
2703
2704 /* Do appropriate processing given the current state.  */
2705 /* Read a lookahead token if we need one and don't already have one.  */
2706 /* yyresume: */
2707
2708   /* First try to decide what to do without reference to lookahead token.  */
2709
2710   yyn = yypact[yystate];
2711   if (yyn == YYPACT_NINF)
2712     goto yydefault;
2713
2714   /* Not known => get a lookahead token if don't already have one.  */
2715
2716   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2717   if (yychar == YYEMPTY)
2718     {
2719       YYDPRINTF ((stderr, "Reading a token: "));
2720       yychar = YYLEX;
2721     }
2722
2723   if (yychar <= YYEOF)
2724     {
2725       yychar = yytoken = YYEOF;
2726       YYDPRINTF ((stderr, "Now at end of input.\n"));
2727     }
2728   else
2729     {
2730       yytoken = YYTRANSLATE (yychar);
2731       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
2732     }
2733
2734   /* If the proper action on seeing token YYTOKEN is to reduce or to
2735      detect an error, take that action.  */
2736   yyn += yytoken;
2737   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2738     goto yydefault;
2739   yyn = yytable[yyn];
2740   if (yyn <= 0)
2741     {
2742       if (yyn == 0 || yyn == YYTABLE_NINF)
2743         goto yyerrlab;
2744       yyn = -yyn;
2745       goto yyreduce;
2746     }
2747
2748   if (yyn == YYFINAL)
2749     YYACCEPT;
2750
2751   /* Shift the lookahead token.  */
2752   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
2753
2754   /* Discard the token being shifted unless it is eof.  */
2755   if (yychar != YYEOF)
2756     yychar = YYEMPTY;
2757
2758   *++yyvsp = yylval;
2759
2760
2761   /* Count tokens shifted since error; after three, turn off error
2762      status.  */
2763   if (yyerrstatus)
2764     yyerrstatus--;
2765
2766   yystate = yyn;
2767   goto yynewstate;
2768
2769
2770 /*-----------------------------------------------------------.
2771 | yydefault -- do the default action for the current state.  |
2772 `-----------------------------------------------------------*/
2773 yydefault:
2774   yyn = yydefact[yystate];
2775   if (yyn == 0)
2776     goto yyerrlab;
2777   goto yyreduce;
2778
2779
2780 /*-----------------------------.
2781 | yyreduce -- Do a reduction.  |
2782 `-----------------------------*/
2783 yyreduce:
2784   /* yyn is the number of a rule to reduce with.  */
2785   yylen = yyr2[yyn];
2786
2787   /* If YYLEN is nonzero, implement the default value of the action:
2788      `$$ = $1'.
2789
2790      Otherwise, the following line sets YYVAL to garbage.
2791      This behavior is undocumented and Bison
2792      users should not rely upon it.  Assigning to YYVAL
2793      unconditionally makes the parser a bit smaller, and it avoids a
2794      GCC warning that YYVAL may be used uninitialized.  */
2795   yyval = yyvsp[1-yylen];
2796
2797
2798   YY_REDUCE_PRINT (yyn);
2799   switch (yyn)
2800     {
2801         case 2:
2802 #line 152 "swf5compiler.y"
2803     { bf = newBuffer();
2804                 bc = newBuffer();
2805         ;}
2806     break;
2807
2808   case 3:
2809 #line 155 "swf5compiler.y"
2810     { Buffer b = newBuffer();
2811                   bufferWriteConstants(b);
2812                   bufferConcat(b, bf);
2813                   bufferConcat(b, bc);
2814                   *((Buffer *)buffer) = b; ;}
2815     break;
2816
2817   case 4:
2818 #line 160 "swf5compiler.y"
2819     { Buffer b = newBuffer(); *((Buffer *)buffer) = b; ;}
2820     break;
2821
2822   case 7:
2823 #line 170 "swf5compiler.y"
2824     { bufferConcat(bc, yyvsp[0].action); ;}
2825     break;
2826
2827   case 8:
2828 #line 172 "swf5compiler.y"
2829     { bufferConcat(bf, yyvsp[0].action); ;}
2830     break;
2831
2832   case 9:
2833 #line 177 "swf5compiler.y"
2834     { yyval.action = yyvsp[0].action; ;}
2835     break;
2836
2837   case 10:
2838 #line 180 "swf5compiler.y"
2839     { yyval.action = yyvsp[-1].action;
2840                   bufferConcat(yyval.action, yyvsp[0].action); ;}
2841     break;
2842
2843   case 11:
2844 #line 185 "swf5compiler.y"
2845     { ;}
2846     break;
2847
2848   case 12:
2849 #line 189 "swf5compiler.y"
2850     { yyval.action = NULL; ;}
2851     break;
2852
2853   case 13:
2854 #line 190 "swf5compiler.y"
2855     { yyval.action = yyvsp[-1].action; ;}
2856     break;
2857
2858   case 14:
2859 #line 191 "swf5compiler.y"
2860     { yyval.action = NULL; ;}
2861     break;
2862
2863   case 15:
2864 #line 192 "swf5compiler.y"
2865     { yyval.action = yyvsp[-1].action; ;}
2866     break;
2867
2868   case 23:
2869 #line 204 "swf5compiler.y"
2870     { yyval.action = yyvsp[-4].action;
2871                   bufferWriteOp(yyval.action, SWFACTION_WITH);
2872                   bufferWriteS16(yyval.action, 2);
2873                   bufferWriteS16(yyval.action, bufferLength(yyvsp[-1].action));
2874                   bufferConcat(yyval.action, yyvsp[-1].action); ;}
2875     break;
2876
2877   case 24:
2878 #line 215 "swf5compiler.y"
2879     { int tmp = chkctx(CTX_FUNCTION);
2880                   if(tmp < 0)
2881                         swf5error("return outside function");
2882                   yyval.action = newBuffer();
2883                   while(--tmp >= 0)
2884                         bufferWriteOp(yyval.action, SWFACTION_POP);
2885                   bufferWriteNull(yyval.action);
2886                   bufferWriteOp(yyval.action, SWFACTION_RETURN); ;}
2887     break;
2888
2889   case 25:
2890 #line 225 "swf5compiler.y"
2891     { int tmp = chkctx(CTX_FUNCTION);
2892                   if(tmp < 0)
2893                         swf5error("return outside function");
2894                   yyval.action = newBuffer();
2895                   while(--tmp >= 0)
2896                         bufferWriteOp(yyval.action, SWFACTION_POP);
2897                   bufferConcat(yyval.action, yyvsp[-1].action);
2898                   bufferWriteOp(yyval.action, SWFACTION_RETURN); ;}
2899     break;
2900
2901   case 27:
2902 #line 237 "swf5compiler.y"
2903     { bufferConcat(yyvsp[-2].action, yyvsp[0].action); ;}
2904     break;
2905
2906   case 28:
2907 #line 242 "swf5compiler.y"
2908     { yyval.action = yyvsp[-4].action;
2909                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
2910                   bufferWriteS16(yyval.action, 2);
2911                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
2912                   bufferConcat(yyval.action, yyvsp[0].action);
2913                   bufferWriteOp(yyval.action, SWFACTION_BRANCHALWAYS);
2914                   bufferWriteS16(yyval.action, 2);
2915                   bufferWriteS16(yyval.action, bufferLength(yyvsp[-2].action));
2916                   bufferConcat(yyval.action, yyvsp[-2].action); ;}
2917     break;
2918
2919   case 29:
2920 #line 253 "swf5compiler.y"
2921     { yyval.action = yyvsp[-2].action;
2922                   bufferWriteOp(yyval.action, SWFACTION_LOGICALNOT);
2923                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
2924                   bufferWriteS16(yyval.action, 2);
2925                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action));
2926                   bufferConcat(yyval.action, yyvsp[0].action); ;}
2927     break;
2928
2929   case 30:
2930 #line 262 "swf5compiler.y"
2931     { yyval.action = NULL; ;}
2932     break;
2933
2934   case 31:
2935 #line 263 "swf5compiler.y"
2936     { yyval.action = yyvsp[0].action; ;}
2937     break;
2938
2939   case 32:
2940 #line 268 "swf5compiler.y"
2941     { addctx(CTX_SWITCH); ;}
2942     break;
2943
2944   case 33:
2945 #line 274 "swf5compiler.y"
2946     { yyval.action = yyvsp[-4].action;
2947                   bufferResolveSwitch(yyval.action, &yyvsp[-1].switchcases);
2948                   bufferResolveJumps(yyval.action);
2949                   bufferWriteOp(yyval.action, SWFACTION_POP);
2950                   delctx(CTX_SWITCH);
2951  /* FIXME: continue in switch continues surrounding loop, if any */
2952         ;}
2953     break;
2954
2955   case 34:
2956 #line 286 "swf5compiler.y"
2957     { yyval.switchcases.count = 0;
2958                   yyval.switchcases.list = 0; ;}
2959     break;
2960
2961   case 35:
2962 #line 290 "swf5compiler.y"
2963     { yyval.switchcases = yyvsp[-1].switchcases;
2964                   yyval.switchcases.list = (struct switchcase*) realloc(yyval.switchcases.list, (yyval.switchcases.count+1) * sizeof(struct switchcase));
2965                   yyval.switchcases.list[yyval.switchcases.count] = yyvsp[0].switchcase;
2966                   yyval.switchcases.count++; ;}
2967     break;
2968
2969   case 36:
2970 #line 298 "swf5compiler.y"
2971     { yyval.switchcase.cond = yyvsp[-4].action;
2972                   yyval.switchcase.action = yyvsp[-2].action;
2973                   yyval.switchcase.isbreak = 1; ;}
2974     break;
2975
2976   case 37:
2977 #line 303 "swf5compiler.y"
2978     { yyval.switchcase.cond = yyvsp[-2].action;
2979                   yyval.switchcase.action = yyvsp[0].action;
2980                   yyval.switchcase.isbreak = 0; ;}
2981     break;
2982
2983   case 38:
2984 #line 308 "swf5compiler.y"
2985     { yyval.switchcase.cond = NULL;
2986                   yyval.switchcase.action = yyvsp[0].action;
2987                   yyval.switchcase.isbreak = 0; ;}
2988     break;
2989
2990   case 40:
2991 #line 318 "swf5compiler.y"
2992     { yyval.str = strdup("new"); ;}
2993     break;
2994
2995   case 41:
2996 #line 319 "swf5compiler.y"
2997     { yyval.str = strdup("delete"); ;}
2998     break;
2999
3000   case 42:
3001 #line 320 "swf5compiler.y"
3002     { yyval.str = strdup("random"); ;}
3003     break;
3004
3005   case 43:
3006 #line 321 "swf5compiler.y"
3007     { yyval.str = strdup("getTimer"); ;}
3008     break;
3009
3010   case 44:
3011 #line 322 "swf5compiler.y"
3012     { yyval.str = strdup("length"); ;}
3013     break;
3014
3015   case 45:
3016 #line 323 "swf5compiler.y"
3017     { yyval.str = strdup("concat"); ;}
3018     break;
3019
3020   case 46:
3021 #line 324 "swf5compiler.y"
3022     { yyval.str = strdup("substr"); ;}
3023     break;
3024
3025   case 47:
3026 #line 325 "swf5compiler.y"
3027     { yyval.str = strdup("trace"); ;}
3028     break;
3029
3030   case 48:
3031 #line 326 "swf5compiler.y"
3032     { yyval.str = strdup("int"); ;}
3033     break;
3034
3035   case 49:
3036 #line 327 "swf5compiler.y"
3037     { yyval.str = strdup("ord"); ;}
3038     break;
3039
3040   case 50:
3041 #line 328 "swf5compiler.y"
3042     { yyval.str = strdup("chr"); ;}
3043     break;
3044
3045   case 51:
3046 #line 329 "swf5compiler.y"
3047     { yyval.str = strdup("getURL"); ;}
3048     break;
3049
3050   case 52:
3051 #line 330 "swf5compiler.y"
3052     { yyval.str = strdup("getURL1"); ;}
3053     break;
3054
3055   case 53:
3056 #line 331 "swf5compiler.y"
3057     { yyval.str = strdup("nextFrame"); ;}
3058     break;
3059
3060   case 54:
3061 #line 332 "swf5compiler.y"
3062     { yyval.str = strdup("prevFrame"); ;}
3063     break;
3064
3065   case 55:
3066 #line 333 "swf5compiler.y"
3067     { yyval.str = strdup("play"); ;}
3068     break;
3069
3070   case 56:
3071 #line 334 "swf5compiler.y"
3072     { yyval.str = strdup("stop"); ;}
3073     break;
3074
3075   case 57:
3076 #line 335 "swf5compiler.y"
3077     { yyval.str = strdup("toggleQuality"); ;}
3078     break;
3079
3080   case 58:
3081 #line 336 "swf5compiler.y"
3082     { yyval.str = strdup("stopSounds"); ;}
3083     break;
3084
3085   case 59:
3086 #line 337 "swf5compiler.y"
3087     { yyval.str = strdup("dup"); ;}
3088     break;
3089
3090   case 60:
3091 #line 338 "swf5compiler.y"
3092     { yyval.str = strdup("swap"); ;}
3093     break;
3094
3095   case 61:
3096 #line 339 "swf5compiler.y"
3097     { yyval.str = strdup("pop"); ;}
3098     break;
3099
3100   case 62:
3101 #line 340 "swf5compiler.y"
3102     { yyval.str = strdup("push"); ;}
3103     break;
3104
3105   case 63:
3106 #line 341 "swf5compiler.y"
3107     { yyval.str = strdup("setRegister"); ;}
3108     break;
3109
3110   case 64:
3111 #line 342 "swf5compiler.y"
3112     { yyval.str = strdup("callFunction"); ;}
3113     break;
3114
3115   case 65:
3116 #line 343 "swf5compiler.y"
3117     { yyval.str = strdup("callMethod"); ;}
3118     break;
3119
3120   case 66:
3121 #line 344 "swf5compiler.y"
3122     { yyval.str = strdup("and"); ;}
3123     break;
3124
3125   case 67:
3126 #line 345 "swf5compiler.y"
3127     { yyval.str = strdup("or"); ;}
3128     break;
3129
3130   case 68:
3131 #line 346 "swf5compiler.y"
3132     { yyval.str = strdup("xor"); ;}
3133     break;
3134
3135   case 69:
3136 #line 347 "swf5compiler.y"
3137     { yyval.str = strdup("modulo"); ;}
3138     break;
3139
3140   case 70:
3141 #line 348 "swf5compiler.y"
3142     { yyval.str = strdup("add"); ;}
3143     break;
3144
3145   case 71:
3146 #line 349 "swf5compiler.y"
3147     { yyval.str = strdup("lessThan"); ;}
3148     break;
3149
3150   case 72:
3151 #line 350 "swf5compiler.y"
3152     { yyval.str = strdup("equals"); ;}
3153     break;
3154
3155   case 73:
3156 #line 351 "swf5compiler.y"
3157     { yyval.str = strdup("inc"); ;}
3158     break;
3159
3160   case 74:
3161 #line 352 "swf5compiler.y"
3162     { yyval.str = strdup("dec"); ;}
3163     break;
3164
3165   case 75:
3166 #line 353 "swf5compiler.y"
3167     { yyval.str = strdup("typeof"); ;}
3168     break;
3169
3170   case 76:
3171 #line 354 "swf5compiler.y"
3172     { yyval.str = strdup("instanceof"); ;}
3173     break;
3174
3175   case 77:
3176 #line 355 "swf5compiler.y"
3177     { yyval.str = strdup("enumerate"); ;}
3178     break;
3179
3180   case 78:
3181 #line 356 "swf5compiler.y"
3182     { yyval.str = strdup("initobject"); ;}
3183     break;
3184
3185   case 79:
3186 #line 357 "swf5compiler.y"
3187     { yyval.str = strdup("initarray"); ;}
3188     break;
3189
3190   case 80:
3191 #line 358 "swf5compiler.y"
3192     { yyval.str = strdup("getmember"); ;}
3193     break;
3194
3195   case 81:
3196 #line 359 "swf5compiler.y"
3197     { yyval.str = strdup("setmember"); ;}
3198     break;
3199
3200   case 82:
3201 #line 360 "swf5compiler.y"
3202     { yyval.str = strdup("shiftleft"); ;}
3203     break;
3204
3205   case 83:
3206 #line 361 "swf5compiler.y"
3207     { yyval.str = strdup("shiftright"); ;}
3208     break;
3209
3210   case 84:
3211 #line 362 "swf5compiler.y"
3212     { yyval.str = strdup("shiftright2"); ;}
3213     break;
3214
3215   case 85:
3216 #line 363 "swf5compiler.y"
3217     { yyval.str = strdup("varequals"); ;}
3218     break;
3219
3220   case 86:
3221 #line 364 "swf5compiler.y"
3222     { yyval.str = strdup("oldAdd"); ;}
3223     break;
3224
3225   case 87:
3226 #line 365 "swf5compiler.y"
3227     { yyval.str = strdup("subtract"); ;}
3228     break;
3229
3230   case 88:
3231 #line 366 "swf5compiler.y"
3232     { yyval.str = strdup("multiply"); ;}
3233     break;
3234
3235   case 89:
3236 #line 367 "swf5compiler.y"
3237     { yyval.str = strdup("divide"); ;}
3238     break;
3239
3240   case 90:
3241 #line 368 "swf5compiler.y"
3242     { yyval.str = strdup("oldequals"); ;}
3243     break;
3244
3245   case 91:
3246 #line 369 "swf5compiler.y"
3247     { yyval.str = strdup("oldlessthan"); ;}
3248     break;
3249
3250   case 92:
3251 #line 370 "swf5compiler.y"
3252     { yyval.str = strdup("logicaland"); ;}
3253     break;
3254
3255   case 93:
3256 #line 371 "swf5compiler.y"
3257     { yyval.str = strdup("logicalor"); ;}
3258     break;
3259
3260   case 94:
3261 #line 372 "swf5compiler.y"
3262     { yyval.str = strdup("not"); ;}
3263     break;
3264
3265   case 95:
3266 #line 373 "swf5compiler.y"
3267     { yyval.str = strdup("stringeq"); ;}
3268     break;
3269
3270   case 96:
3271 #line 374 "swf5compiler.y"
3272     { yyval.str = strdup("stringlength"); ;}
3273     break;
3274
3275   case 97:
3276 #line 375 "swf5compiler.y"
3277     { yyval.str = strdup("substring"); ;}
3278     break;
3279
3280   case 98:
3281 #line 376 "swf5compiler.y"
3282     { yyval.str = strdup("getvariable"); ;}
3283     break;
3284
3285   case 99:
3286 #line 377 "swf5compiler.y"
3287     { yyval.str = strdup("setvariable"); ;}
3288     break;
3289
3290   case 100:
3291 #line 378 "swf5compiler.y"
3292     { yyval.str = strdup("settargetexpression"); ;}
3293     break;
3294
3295   case 101:
3296 #line 379 "swf5compiler.y"
3297     { yyval.str = strdup("duplicatemovieclip"); ;}
3298     break;
3299
3300   case 102:
3301 #line 380 "swf5compiler.y"
3302     { yyval.str = strdup("removemovieclip"); ;}
3303     break;
3304
3305   case 103:
3306 #line 381 "swf5compiler.y"
3307     { yyval.str = strdup("startdrag"); ;}
3308     break;
3309
3310   case 104:
3311 #line 382 "swf5compiler.y"
3312     { yyval.str = strdup("stopdrag"); ;}
3313     break;
3314
3315   case 105:
3316 #line 383 "swf5compiler.y"
3317     { yyval.str = strdup("stringlessthan"); ;}
3318     break;
3319
3320   case 106:
3321 #line 384 "swf5compiler.y"
3322     { yyval.str = strdup("mblength"); ;}
3323     break;
3324
3325   case 107:
3326 #line 385 "swf5compiler.y"
3327     { yyval.str = strdup("mbsubstring"); ;}
3328     break;
3329
3330   case 108:
3331 #line 386 "swf5compiler.y"
3332     { yyval.str = strdup("mbord"); ;}
3333     break;
3334
3335   case 109:
3336 #line 387 "swf5compiler.y"
3337     { yyval.str = strdup("mbchr"); ;}
3338     break;
3339
3340   case 110:
3341 #line 388 "swf5compiler.y"
3342     { yyval.str = strdup("branchalways"); ;}
3343     break;
3344
3345   case 111:
3346 #line 389 "swf5compiler.y"
3347     { yyval.str = strdup("branchiftrue"); ;}
3348     break;
3349
3350   case 112:
3351 #line 390 "swf5compiler.y"
3352     { yyval.str = strdup("getURL2"); ;}
3353     break;
3354
3355   case 113:
3356 #line 391 "swf5compiler.y"
3357     { yyval.str = strdup("post"); ;}
3358     break;
3359
3360   case 114:
3361 #line 392 "swf5compiler.y"
3362     { yyval.str = strdup("get"); ;}
3363     break;
3364
3365   case 115:
3366 #line 393 "swf5compiler.y"
3367     { yyval.str = strdup("loadvariables"); ;}
3368     break;
3369
3370   case 116:
3371 #line 394 "swf5compiler.y"
3372     { yyval.str = strdup("loadMovie"); ;}
3373     break;
3374
3375   case 117:
3376 #line 399 "swf5compiler.y"
3377     { yyval.exprlist.buffer = newBuffer();
3378                   yyval.exprlist.count = 0; ;}
3379     break;
3380
3381   case 118:
3382 #line 403 "swf5compiler.y"
3383     { yyval.exprlist.buffer = newBuffer();
3384                   bufferWriteHardString(yyval.exprlist.buffer, (byte*)yyvsp[0].str, strlen(yyvsp[0].str)+1);
3385                   yyval.exprlist.count = 1; ;}
3386     break;
3387
3388   case 119:
3389 #line 408 "swf5compiler.y"
3390     { yyval.exprlist = yyvsp[-2].exprlist;
3391                   bufferWriteHardString(yyval.exprlist.buffer, (byte*)yyvsp[0].str, strlen(yyvsp[0].str)+1);
3392                   ++yyval.exprlist.count; ;}
3393     break;
3394
3395   case 120:
3396 #line 415 "swf5compiler.y"
3397     { addctx(CTX_FUNCTION); ;}
3398     break;
3399
3400   case 121:
3401 #line 420 "swf5compiler.y"
3402     { yyval.action = newBuffer();
3403                   bufferWriteOp(yyval.action, SWFACTION_DEFINEFUNCTION);
3404                   bufferWriteS16(yyval.action, strlen(yyvsp[-4].str) +
3405                                      bufferLength(yyvsp[-2].exprlist.buffer) + 5);
3406                   bufferWriteHardString(yyval.action, (byte*) yyvsp[-4].str, strlen(yyvsp[-4].str)+1);
3407                   bufferWriteS16(yyval.action, yyvsp[-2].exprlist.count);
3408                   bufferConcat(yyval.action, yyvsp[-2].exprlist.buffer);
3409                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action));
3410                   bufferConcat(yyval.action, yyvsp[0].action);
3411                   delctx(CTX_FUNCTION); ;}
3412     break;
3413
3414   case 122:
3415 #line 434 "swf5compiler.y"
3416     { yyval.action = newBuffer();
3417                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
3418                   free(yyvsp[0].str); ;}
3419     break;
3420
3421   case 123:
3422 #line 439 "swf5compiler.y"
3423     { yyval.action = yyvsp[-2].action;
3424                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
3425                   bufferWriteOp(yyval.action, SWFACTION_GETMEMBER);
3426                   free(yyvsp[0].str); ;}
3427     break;
3428
3429   case 124:
3430 #line 445 "swf5compiler.y"
3431     { yyval.action = yyvsp[-3].action;
3432                   bufferConcat(yyval.action, yyvsp[-1].action);
3433                   bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); ;}
3434     break;
3435
3436   case 127:
3437 #line 456 "swf5compiler.y"
3438     { addctx(CTX_LOOP); ;}
3439     break;
3440
3441   case 128:
3442 #line 461 "swf5compiler.y"
3443     { addctx(CTX_LOOP); ;}
3444     break;
3445
3446   case 129:
3447 #line 466 "swf5compiler.y"
3448     { addctx(CTX_LOOP); ;}
3449     break;
3450
3451   case 130:
3452 #line 471 "swf5compiler.y"
3453     { addctx(CTX_FOR_IN); ;}
3454     break;
3455
3456   case 131:
3457 #line 476 "swf5compiler.y"
3458     { yyval.action = yyvsp[-2].action;
3459                   bufferWriteOp(yyval.action, SWFACTION_LOGICALNOT);
3460                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
3461                   bufferWriteS16(yyval.action, 2);
3462                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+5);
3463                   bufferConcat(yyval.action, yyvsp[0].action);
3464                   bufferWriteOp(yyval.action, SWFACTION_BRANCHALWAYS);
3465                   bufferWriteS16(yyval.action, 2);
3466                   bufferWriteS16(yyval.action, -(bufferLength(yyval.action)+2));
3467                   bufferResolveJumps(yyval.action);
3468                   delctx(CTX_LOOP); ;}
3469     break;
3470
3471   case 132:
3472 #line 489 "swf5compiler.y"
3473     { if(yyvsp[-4].action)
3474                         {       yyval.action = yyvsp[-4].action;
3475                                 bufferConcat(yyval.action, yyvsp[-1].action);
3476                         }
3477                         else
3478                                 yyval.action = yyvsp[-1].action;
3479                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
3480                   bufferWriteS16(yyval.action, 2);
3481                   bufferWriteS16(yyval.action, -(bufferLength(yyval.action)+2));
3482                   bufferResolveJumps(yyval.action);
3483                   delctx(CTX_LOOP); ;}
3484     break;
3485
3486   case 133:
3487 #line 502 "swf5compiler.y"
3488     {
3489                   if(yyvsp[-7].action)
3490                     yyval.action = yyvsp[-7].action;
3491                   else
3492                     yyval.action = newBuffer();
3493
3494                   if(yyvsp[-3].action)
3495                   {
3496                     bufferWriteOp(yyval.action, SWFACTION_BRANCHALWAYS);
3497                     bufferWriteS16(yyval.action, 2);
3498                     bufferWriteS16(yyval.action, bufferLength(yyvsp[-3].action));
3499                   }
3500                   else
3501                     yyvsp[-3].action = newBuffer();
3502
3503                   if(yyvsp[-5].action)
3504                   {
3505                     bufferConcat(yyvsp[-3].action, yyvsp[-5].action);
3506                     bufferWriteOp(yyvsp[-3].action, SWFACTION_LOGICALNOT);
3507                     bufferWriteOp(yyvsp[-3].action, SWFACTION_BRANCHIFTRUE);
3508                     bufferWriteS16(yyvsp[-3].action, 2);
3509                     bufferWriteS16(yyvsp[-3].action, bufferLength(yyvsp[0].action)+5);
3510                   }
3511
3512                   bufferConcat(yyvsp[-3].action, yyvsp[0].action);
3513                   bufferWriteOp(yyvsp[-3].action, SWFACTION_BRANCHALWAYS);
3514                   bufferWriteS16(yyvsp[-3].action, 2);
3515                   bufferWriteS16(yyvsp[-3].action, -(bufferLength(yyvsp[-3].action)+2));
3516                   bufferResolveJumps(yyvsp[-3].action);
3517
3518                   bufferConcat(yyval.action, yyvsp[-3].action);
3519                                   delctx(CTX_LOOP);
3520                 ;}
3521     break;
3522
3523   case 134:
3524 #line 537 "swf5compiler.y"
3525     { Buffer b2, b3;
3526                   int tmp;
3527
3528                   yyval.action = yyvsp[-3].action;
3529                   bufferWriteOp(yyval.action, SWFACTION_ENUMERATE);     
3530
3531                   b2 = newBuffer();
3532                   bufferWriteSetRegister(b2, 0);
3533                   bufferWriteOp(b2, SWFACTION_PUSHDATA);
3534                   bufferWriteS16(b2, 1);
3535                   bufferWriteU8(b2, 2);
3536                   bufferWriteOp(b2, SWFACTION_NEWEQUALS);
3537                   bufferWriteOp(b2, SWFACTION_BRANCHIFTRUE);
3538                   bufferWriteS16(b2, 2);
3539
3540                   b3 = newBuffer();
3541 /* basically a lvalue could be used here rather than an ident !!! */
3542 /* probably by using reg1 for the test rather than reg0 */
3543                   bufferWriteString(b3, yyvsp[-5].str, strlen(yyvsp[-5].str)+1);
3544                   bufferWriteRegister(b3, 0);
3545                   bufferWriteOp(b3, SWFACTION_SETVARIABLE);
3546                   bufferConcat(b3, yyvsp[0].action);
3547                   bufferWriteS16(b2, bufferLength(b3) + 5);
3548                   tmp = bufferLength(b2) + bufferLength(b3) + 5;
3549                   bufferConcat(yyval.action, b2);
3550                   bufferWriteOp(b3, SWFACTION_BRANCHALWAYS);
3551                   bufferWriteS16(b3, 2);
3552                   bufferWriteS16(b3, -tmp);
3553                   bufferResolveJumps(b3);
3554                   bufferConcat(yyval.action, b3);
3555                   delctx(CTX_FOR_IN); ;}
3556     break;
3557
3558   case 135:
3559 #line 570 "swf5compiler.y"
3560     { Buffer b2, b3;
3561                   int tmp;
3562
3563                   yyval.action = yyvsp[-3].action;
3564                   bufferWriteOp(yyval.action, SWFACTION_ENUMERATE);     
3565
3566                   b2 = newBuffer();
3567                   bufferWriteSetRegister(b2, 0);
3568                   bufferWriteOp(b2, SWFACTION_PUSHDATA);
3569                   bufferWriteS16(b2, 1);
3570                   bufferWriteU8(b2, 2);
3571                   bufferWriteOp(b2, SWFACTION_NEWEQUALS);
3572                   bufferWriteOp(b2, SWFACTION_BRANCHIFTRUE);
3573                   bufferWriteS16(b2, 2);
3574                   // add size later
3575
3576                   b3 = newBuffer();
3577                   bufferWriteString(b3, yyvsp[-5].str, strlen(yyvsp[-5].str)+1);
3578                   bufferWriteRegister(b3, 0);
3579                   bufferWriteOp(b3, SWFACTION_VAREQUALS);
3580                   bufferConcat(b3, yyvsp[0].action);
3581                   bufferWriteS16(b2, bufferLength(b3) + 5);
3582                   tmp = bufferLength(b2) + bufferLength(b3) + 5;
3583                   bufferConcat(yyval.action, b2);
3584                   bufferWriteOp(b3, SWFACTION_BRANCHALWAYS);
3585                   bufferWriteS16(b3, 2);
3586                   bufferWriteS16(b3, -tmp);
3587                   bufferResolveJumps(b3);
3588                   bufferConcat(yyval.action, b3);
3589                   delctx(CTX_FOR_IN); ;}
3590     break;
3591
3592   case 136:
3593 #line 603 "swf5compiler.y"
3594     { yyval.action = NULL; ;}
3595     break;
3596
3597   case 138:
3598 #line 611 "swf5compiler.y"
3599     { if(chkctx(CTX_CONTINUE) < 0)
3600                         swf5error("continue outside loop");
3601                   yyval.action = newBuffer();
3602                   bufferWriteOp(yyval.action, SWFACTION_BRANCHALWAYS);
3603                   bufferWriteS16(yyval.action, 2);
3604                   bufferWriteS16(yyval.action, MAGIC_CONTINUE_NUMBER); ;}
3605     break;
3606
3607   case 139:
3608 #line 622 "swf5compiler.y"
3609     { int tmp = chkctx(CTX_BREAK);
3610                   if(tmp < 0)
3611                         swf5error("break outside switch / loop");
3612                   yyval.action = newBuffer();
3613                   if(tmp)       /* break out of a for .. in */
3614                         bufferWriteOp(yyval.action, SWFACTION_POP);
3615                   bufferWriteOp(yyval.action, SWFACTION_BRANCHALWAYS);
3616                   bufferWriteS16(yyval.action, 2);
3617                   bufferWriteS16(yyval.action, MAGIC_BREAK_NUMBER); ;}
3618     break;
3619
3620   case 140:
3621 #line 634 "swf5compiler.y"
3622     { yyval.getURLMethod = GETURL_METHOD_NOSEND; ;}
3623     break;
3624
3625   case 141:
3626 #line 636 "swf5compiler.y"
3627     { yyval.getURLMethod = GETURL_METHOD_GET; ;}
3628     break;
3629
3630   case 142:
3631 #line 638 "swf5compiler.y"
3632     { yyval.getURLMethod = GETURL_METHOD_POST; ;}
3633     break;
3634
3635   case 143:
3636 #line 640 "swf5compiler.y"
3637     { if(strcmp(yyvsp[0].str, "GET") == 0)
3638                                     yyval.getURLMethod = GETURL_METHOD_GET;
3639                                   else if(strcmp(yyvsp[0].str, "POST") == 0)
3640                                     yyval.getURLMethod = GETURL_METHOD_POST; ;}
3641     break;
3642
3643   case 144:
3644 #line 648 "swf5compiler.y"
3645     { char *lvlstring = (char*) malloc(12*sizeof(char));
3646                   sprintf(lvlstring, "_level%d", yyvsp[0].intVal);
3647                   yyval.action = newBuffer();
3648                   bufferWriteString(yyval.action, lvlstring, strlen(lvlstring)+1);
3649                   free(lvlstring); ;}
3650     break;
3651
3652   case 145:
3653 #line 655 "swf5compiler.y"
3654     { yyval.action = newBuffer();
3655                   bufferWriteString(yyval.action, "_level", 7);
3656                   bufferConcat(yyval.action, yyvsp[0].action);
3657                   bufferWriteOp(yyval.action, SWFACTION_STRINGCONCAT); ;}
3658     break;
3659
3660   case 146:
3661 #line 663 "swf5compiler.y"
3662     { yyval.action = yyvsp[-1].exprlist.buffer;
3663                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
3664                   bufferWriteString(yyval.action, yyvsp[-3].str, strlen(yyvsp[-3].str)+1);
3665                   bufferWriteOp(yyval.action, SWFACTION_CALLFUNCTION);
3666                   bufferWriteOp(yyval.action, SWFACTION_POP);
3667                   free(yyvsp[-3].str); ;}
3668     break;
3669
3670   case 147:
3671 #line 671 "swf5compiler.y"
3672     { yyval.action = newBuffer();
3673                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
3674                   free(yyvsp[0].str);
3675                   bufferWriteOp(yyval.action, SWFACTION_DELETE); ;}
3676     break;
3677
3678   case 148:
3679 #line 677 "swf5compiler.y"
3680     { yyval.action = yyvsp[-2].action;
3681                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
3682                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
3683                   free(yyvsp[0].str);
3684                   bufferWriteOp(yyval.action, SWFACTION_DELETEVAR); ;}
3685     break;
3686
3687   case 149:
3688 #line 684 "swf5compiler.y"
3689     { yyval.action = yyvsp[-3].action;
3690                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
3691                   bufferConcat(yyval.action, yyvsp[-1].action);
3692                   // bufferWriteOp($$, SWFACTION_GETVARIABLE);
3693                   bufferWriteOp(yyval.action, SWFACTION_DELETEVAR); ;}
3694     break;
3695
3696   case 150:
3697 #line 691 "swf5compiler.y"
3698     { yyval.action = yyvsp[-1].action;
3699                   bufferWriteOp(yyval.action, SWFACTION_TRACE); ;}
3700     break;
3701
3702   case 151:
3703 #line 695 "swf5compiler.y"
3704     { yyval.action = yyvsp[-4].action;
3705                   bufferConcat(yyval.action, yyvsp[-2].action);
3706                   bufferWriteOp(yyval.action, SWFACTION_GETURL2);
3707                   bufferWriteS16(yyval.action, 1);
3708                   bufferWriteU8(yyval.action, yyvsp[-1].getURLMethod); ;}
3709     break;
3710
3711   case 152:
3712 #line 702 "swf5compiler.y"
3713     { yyval.action = yyvsp[-4].action;
3714                   bufferConcat(yyval.action, yyvsp[-2].action);
3715                   bufferWriteOp(yyval.action, SWFACTION_GETURL2);
3716                   bufferWriteS16(yyval.action, 1);
3717                   bufferWriteU8(yyval.action, 0xc0+yyvsp[-1].getURLMethod); ;}
3718     break;
3719
3720   case 153:
3721 #line 709 "swf5compiler.y"
3722     { yyval.action = yyvsp[-4].action;
3723                   bufferConcat(yyval.action, yyvsp[-2].action);
3724                   bufferWriteOp(yyval.action, SWFACTION_GETURL2);
3725                   bufferWriteS16(yyval.action, 1);
3726                   bufferWriteU8(yyval.action, 0x80+yyvsp[-1].getURLMethod); ;}
3727     break;
3728
3729   case 154:
3730 #line 716 "swf5compiler.y"
3731     { yyval.action = yyvsp[-4].action;
3732                   bufferConcat(yyval.action, yyvsp[-2].action);
3733                   bufferWriteOp(yyval.action, SWFACTION_GETURL2);
3734                   bufferWriteS16(yyval.action, 1);
3735                   bufferWriteU8(yyval.action, 0x40+yyvsp[-1].getURLMethod); ;}
3736     break;
3737
3738   case 155:
3739 #line 723 "swf5compiler.y"
3740     { yyval.action = yyvsp[-4].action;
3741                   bufferConcat(yyval.action, yyvsp[-2].action);
3742                   bufferWriteOp(yyval.action, SWFACTION_GETURL2);
3743                   bufferWriteS16(yyval.action, 1);
3744                   bufferWriteU8(yyval.action, yyvsp[-1].getURLMethod); ;}
3745     break;
3746
3747   case 156:
3748 #line 730 "swf5compiler.y"
3749     { yyval.action = yyvsp[-1].action;
3750                   bufferWriteOp(yyval.action, SWFACTION_CALLFRAME);
3751                   bufferWriteS16(yyval.action, 0); ;}
3752     break;
3753
3754   case 157:
3755 #line 736 "swf5compiler.y"
3756     { yyval.action = newBuffer();
3757                   bufferWriteString(yyval.action, "0", 2); /* no constraint */
3758                   bufferConcat(yyval.action, yyvsp[-1].action);
3759                   bufferConcat(yyval.action, yyvsp[-3].action);
3760                   bufferWriteOp(yyval.action, SWFACTION_STARTDRAGMOVIE); ;}
3761     break;
3762
3763   case 158:
3764 #line 743 "swf5compiler.y"
3765     { yyval.action = newBuffer();
3766                   bufferConcat(yyval.action, yyvsp[-7].action);
3767                   bufferConcat(yyval.action, yyvsp[-3].action);
3768                   bufferConcat(yyval.action, yyvsp[-5].action);
3769                   bufferConcat(yyval.action, yyvsp[-1].action);
3770                   bufferWriteString(yyval.action, "1", 2); /* has constraint */
3771                   bufferConcat(yyval.action, yyvsp[-9].action);
3772                   bufferConcat(yyval.action, yyvsp[-11].action);
3773                   bufferWriteOp(yyval.action, SWFACTION_STARTDRAGMOVIE); ;}
3774     break;
3775
3776   case 159:
3777 #line 754 "swf5compiler.y"
3778     { yyval.action = newBuffer();
3779                   bufferWriteOp(yyval.action, SWFACTION_STOPDRAGMOVIE); ;}
3780     break;
3781
3782   case 160:
3783 #line 759 "swf5compiler.y"
3784     { yyval.action = yyvsp[-5].action;
3785                   bufferConcat(yyval.action, yyvsp[-3].action);
3786                   bufferConcat(yyval.action, yyvsp[-1].action);
3787                   bufferWriteInt(yyval.action, 16384); /* magic number */
3788                   bufferWriteOp(yyval.action, SWFACTION_ADD);
3789                   bufferWriteOp(yyval.action, SWFACTION_DUPLICATECLIP); ;}
3790     break;
3791
3792   case 161:
3793 #line 767 "swf5compiler.y"
3794     { yyval.action = yyvsp[-1].action;
3795                   bufferWriteOp(yyval.action, SWFACTION_REMOVECLIP); ;}
3796     break;
3797
3798   case 162:
3799 #line 771 "swf5compiler.y"
3800     { yyval.action = newBuffer();
3801                   bufferWriteOp(yyval.action, SWFACTION_GETURL);
3802                   bufferWriteS16(yyval.action, strlen(yyvsp[-3].str) + strlen(yyvsp[-1].str) + 2);
3803                   bufferWriteHardString(yyval.action, (byte*)yyvsp[-3].str, strlen(yyvsp[-3].str));
3804                   bufferWriteU8(yyval.action, 0);
3805                   bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str));
3806                   bufferWriteU8(yyval.action, 0); ;}
3807     break;
3808
3809   case 163:
3810 #line 781 "swf5compiler.y"
3811     { yyval.action = newBuffer();
3812                   bufferWriteOp(yyval.action, SWFACTION_NEXTFRAME); ;}
3813     break;
3814
3815   case 164:
3816 #line 785 "swf5compiler.y"
3817     { yyval.action = newBuffer();
3818                   bufferWriteOp(yyval.action, SWFACTION_PREVFRAME); ;}
3819     break;
3820
3821   case 165:
3822 #line 789 "swf5compiler.y"
3823     { yyval.action = newBuffer();
3824                   bufferWriteOp(yyval.action, SWFACTION_PLAY); ;}
3825     break;
3826
3827   case 166:
3828 #line 793 "swf5compiler.y"
3829     { yyval.action = newBuffer();
3830                   bufferWriteOp(yyval.action, SWFACTION_STOP); ;}
3831     break;
3832
3833   case 167:
3834 #line 797 "swf5compiler.y"
3835     { yyval.action = newBuffer();
3836                   bufferWriteOp(yyval.action, SWFACTION_STOPSOUNDS); ;}
3837     break;
3838
3839   case 168:
3840 #line 801 "swf5compiler.y"
3841     { yyval.action = newBuffer();
3842                   bufferWriteOp(yyval.action, SWFACTION_TOGGLEQUALITY); ;}
3843     break;
3844
3845   case 169:
3846 #line 805 "swf5compiler.y"
3847     { yyval.action = newBuffer();
3848                   bufferWriteOp(yyval.action, SWFACTION_GOTOFRAME);
3849                   bufferWriteS16(yyval.action, 2);
3850                   bufferWriteS16(yyval.action, yyvsp[-1].intVal); ;}
3851     break;
3852
3853   case 170:
3854 #line 811 "swf5compiler.y"
3855     { yyval.action = newBuffer();
3856                   bufferWriteOp(yyval.action, SWFACTION_GOTOLABEL);
3857                   bufferWriteS16(yyval.action, strlen(yyvsp[-1].str)+1);
3858                   bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
3859                   free(yyvsp[-1].str); ;}
3860     break;
3861
3862   case 171:
3863 #line 818 "swf5compiler.y"
3864     { yyval.action = yyvsp[-1].action;
3865                   bufferWriteOp(yyval.action, SWFACTION_GOTOEXPRESSION);
3866                   bufferWriteS16(yyval.action, 1);
3867                   bufferWriteU8(yyval.action, 0); ;}
3868     break;
3869
3870   case 172:
3871 #line 824 "swf5compiler.y"
3872     { yyval.action = newBuffer();
3873                   bufferWriteOp(yyval.action, SWFACTION_SETTARGET);
3874                   bufferWriteS16(yyval.action, strlen(yyvsp[-1].str)+1);
3875                   bufferWriteHardString(yyval.action, (byte*)yyvsp[-1].str, strlen(yyvsp[-1].str)+1);
3876                   free(yyvsp[-1].str); ;}
3877     break;
3878
3879   case 173:
3880 #line 831 "swf5compiler.y"
3881     { yyval.action = yyvsp[-1].action;
3882                   bufferWriteOp(yyval.action, SWFACTION_SETTARGETEXPRESSION); ;}
3883     break;
3884
3885   case 174:
3886 #line 840 "swf5compiler.y"
3887     { yyval.action = yyvsp[-1].exprlist.buffer;
3888                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
3889                   bufferWriteString(yyval.action, yyvsp[-3].str, strlen(yyvsp[-3].str)+1);
3890                   bufferWriteOp(yyval.action, SWFACTION_CALLFUNCTION);
3891                   free(yyvsp[-3].str); ;}
3892     break;
3893
3894   case 175:
3895 #line 847 "swf5compiler.y"
3896     { yyval.action = yyvsp[-1].action;
3897                   bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE); ;}
3898     break;
3899
3900   case 176:
3901 #line 851 "swf5compiler.y"
3902     { yyval.action = newBuffer();
3903                   bufferWriteOp(yyval.action, SWFACTION_GETTIMER); ;}
3904     break;
3905
3906   case 177:
3907 #line 855 "swf5compiler.y"
3908     { yyval.action = yyvsp[-1].action;
3909                   bufferWriteOp(yyval.action, SWFACTION_RANDOM); ;}
3910     break;
3911
3912   case 178:
3913 #line 859 "swf5compiler.y"
3914     { yyval.action = yyvsp[-1].action;
3915                   bufferWriteOp(yyval.action, SWFACTION_STRINGLENGTH); ;}
3916     break;
3917
3918   case 179:
3919 #line 863 "swf5compiler.y"
3920     { yyval.action = yyvsp[-1].action;
3921                   bufferWriteOp(yyval.action, SWFACTION_INT); ;}
3922     break;
3923
3924   case 180:
3925 #line 867 "swf5compiler.y"
3926     { yyval.action = yyvsp[-1].action;
3927                   bufferWriteOp(yyval.action, SWFACTION_ORD); ;}
3928     break;
3929
3930   case 181:
3931 #line 871 "swf5compiler.y"
3932     { yyval.action = yyvsp[-1].action;
3933                   bufferWriteOp(yyval.action, SWFACTION_CHR); ;}
3934     break;
3935
3936   case 182:
3937 #line 875 "swf5compiler.y"
3938     { yyval.action = yyvsp[-3].action;
3939                   bufferConcat(yyval.action, yyvsp[-1].action);
3940                   bufferWriteOp(yyval.action, SWFACTION_STRINGCONCAT); ;}
3941     break;
3942
3943   case 183:
3944 #line 880 "swf5compiler.y"
3945     { yyval.action = yyvsp[-5].action;
3946                   bufferConcat(yyval.action, yyvsp[-3].action);
3947                   bufferConcat(yyval.action, yyvsp[-1].action);
3948                   bufferWriteOp(yyval.action, SWFACTION_SUBSTRING); ;}
3949     break;
3950
3951   case 184:
3952 #line 886 "swf5compiler.y"
3953     { yyval.action = yyvsp[-1].action;
3954                   bufferWriteOp(yyval.action, SWFACTION_TYPEOF); ;}
3955     break;
3956
3957   case 185:
3958 #line 894 "swf5compiler.y"
3959     { yyval.exprlist.buffer = newBuffer();
3960                   yyval.exprlist.count = 0; ;}
3961     break;
3962
3963   case 186:
3964 #line 898 "swf5compiler.y"
3965     { yyval.exprlist.buffer = yyvsp[0].action;
3966                   yyval.exprlist.count = 1; ;}
3967     break;
3968
3969   case 187:
3970 #line 903 "swf5compiler.y"
3971     { Buffer tmp = newBuffer();
3972                   bufferConcat(tmp, yyvsp[0].action);
3973                   bufferConcat(tmp, yyval.exprlist.buffer);
3974                   yyval.exprlist.buffer = tmp;
3975                   ++yyval.exprlist.count;  ;}
3976     break;
3977
3978   case 188:
3979 #line 912 "swf5compiler.y"
3980     { yyval.action = newBuffer();
3981                   bufferWriteOp(yyval.action, SWFACTION_DEFINEFUNCTION);
3982                   bufferWriteS16(yyval.action, bufferLength(yyvsp[-2].exprlist.buffer) + 5);
3983                   bufferWriteU8(yyval.action, 0); /* empty function name */
3984                   bufferWriteS16(yyval.action, yyvsp[-2].exprlist.count);
3985                   bufferConcat(yyval.action, yyvsp[-2].exprlist.buffer);
3986                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action));
3987                   bufferConcat(yyval.action, yyvsp[0].action);
3988                   delctx(CTX_FUNCTION); ;}
3989     break;
3990
3991   case 189:
3992 #line 925 "swf5compiler.y"
3993     { yyval.action = yyvsp[-1].exprlist.buffer;
3994                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
3995                   bufferConcat(yyval.action, yyvsp[-5].action);
3996                   bufferWriteString(yyval.action, yyvsp[-3].str, strlen(yyvsp[-3].str)+1);
3997                   bufferWriteOp(yyval.action, SWFACTION_CALLMETHOD);
3998                   free(yyvsp[-3].str); ;}
3999     break;
4000
4001   case 190:
4002 #line 933 "swf5compiler.y"
4003     { yyval.action = yyvsp[-1].exprlist.buffer;
4004                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
4005                   bufferConcat(yyval.action, yyvsp[-6].action);
4006                   bufferConcat(yyval.action, yyvsp[-4].action);
4007                   bufferWriteOp(yyval.action, SWFACTION_CALLMETHOD); ;}
4008     break;
4009
4010   case 191:
4011 #line 942 "swf5compiler.y"
4012     { yyval.action = newBuffer();
4013                   bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
4014                   bufferConcat(yyval.action, yyvsp[0].action); ;}
4015     break;
4016
4017   case 192:
4018 #line 949 "swf5compiler.y"
4019     { yyval.exprlist.buffer = yyvsp[0].action;
4020                   yyval.exprlist.count = 1; ;}
4021     break;
4022
4023   case 193:
4024 #line 953 "swf5compiler.y"
4025     { bufferConcat(yyval.exprlist.buffer, yyvsp[0].action);
4026                   ++yyval.exprlist.count;  ;}
4027     break;
4028
4029   case 194:
4030 #line 958 "swf5compiler.y"
4031     { yyval.op = SWFACTION_NEWADD; ;}
4032     break;
4033
4034   case 195:
4035 #line 959 "swf5compiler.y"
4036     { yyval.op = SWFACTION_SUBTRACT; ;}
4037     break;
4038
4039   case 196:
4040 #line 960 "swf5compiler.y"
4041     { yyval.op = SWFACTION_MULTIPLY; ;}
4042     break;
4043
4044   case 197:
4045 #line 961 "swf5compiler.y"
4046     { yyval.op = SWFACTION_DIVIDE; ;}
4047     break;
4048
4049   case 198:
4050 #line 962 "swf5compiler.y"
4051     { yyval.op = SWFACTION_MODULO; ;}
4052     break;
4053
4054   case 199:
4055 #line 963 "swf5compiler.y"
4056     { yyval.op = SWFACTION_BITWISEAND; ;}
4057     break;
4058
4059   case 200:
4060 #line 964 "swf5compiler.y"
4061     { yyval.op = SWFACTION_BITWISEOR; ;}
4062     break;
4063
4064   case 201:
4065 #line 965 "swf5compiler.y"
4066     { yyval.op = SWFACTION_BITWISEXOR; ;}
4067     break;
4068
4069   case 202:
4070 #line 966 "swf5compiler.y"
4071     { yyval.op = SWFACTION_SHIFTLEFT; ;}
4072     break;
4073
4074   case 203:
4075 #line 967 "swf5compiler.y"
4076     { yyval.op = SWFACTION_SHIFTRIGHT; ;}
4077     break;
4078
4079   case 204:
4080 #line 968 "swf5compiler.y"
4081     { yyval.op = SWFACTION_SHIFTRIGHT2; ;}
4082     break;
4083
4084   case 205:
4085 #line 972 "swf5compiler.y"
4086     { yyval.op = SWFACTION_INCREMENT; ;}
4087     break;
4088
4089   case 206:
4090 #line 973 "swf5compiler.y"
4091     { yyval.op = SWFACTION_DECREMENT; ;}
4092     break;
4093
4094   case 207:
4095 #line 992 "swf5compiler.y"
4096     { if(yyvsp[0].lval.obj)
4097                   {
4098                     yyval.action = yyvsp[0].lval.obj;
4099
4100                     if(yyvsp[0].lval.ident)
4101                       bufferConcat(yyval.action, yyvsp[0].lval.ident);
4102                     else
4103                       bufferConcat(yyval.action, yyvsp[0].lval.memexpr);
4104
4105                     bufferWriteOp(yyval.action, SWFACTION_GETMEMBER);
4106                   }
4107                   else
4108                   {
4109                     yyval.action = yyvsp[0].lval.ident;
4110                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4111                   }
4112                 ;}
4113     break;
4114
4115   case 210:
4116 #line 1016 "swf5compiler.y"
4117     { yyval.lval.ident = newBuffer();
4118                   bufferWriteString(yyval.lval.ident, yyvsp[0].str, strlen(yyvsp[0].str)+1);
4119                   free(yyvsp[0].str);
4120                   yyval.lval.obj = 0;
4121                   yyval.lval.memexpr = 0; ;}
4122     break;
4123
4124   case 211:
4125 #line 1023 "swf5compiler.y"
4126     { yyval.lval.obj = yyvsp[-2].action;
4127                   yyval.lval.ident = newBuffer();
4128                   bufferWriteString(yyval.lval.ident, yyvsp[0].str, strlen(yyvsp[0].str)+1);
4129                   yyval.lval.memexpr = 0; ;}
4130     break;
4131
4132   case 212:
4133 #line 1029 "swf5compiler.y"
4134     { yyval.lval.obj = yyvsp[-3].action;
4135                   yyval.lval.memexpr = yyvsp[-1].action;
4136                   yyval.lval.ident = 0; ;}
4137     break;
4138
4139   case 214:
4140 #line 1040 "swf5compiler.y"
4141     { yyval.action = yyvsp[0].action;
4142                   bufferWriteInt(yyvsp[0].action, -1);
4143                   bufferWriteOp(yyvsp[0].action, SWFACTION_MULTIPLY); ;}
4144     break;
4145
4146   case 215:
4147 #line 1045 "swf5compiler.y"
4148     { yyval.action = yyvsp[0].action;
4149                   bufferWriteInt(yyvsp[0].action, 0xffffffff);
4150                   bufferWriteOp(yyvsp[0].action, SWFACTION_BITWISEXOR); ;}
4151     break;
4152
4153   case 216:
4154 #line 1050 "swf5compiler.y"
4155     { yyval.action = yyvsp[0].action;
4156                   bufferWriteOp(yyvsp[0].action, SWFACTION_LOGICALNOT); ;}
4157     break;
4158
4159   case 217:
4160 #line 1054 "swf5compiler.y"
4161     { yyval.action = yyvsp[-2].action;
4162                   bufferWriteOp(yyval.action, SWFACTION_DUP);
4163                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
4164                   bufferWriteS16(yyval.action, 2);
4165                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+1);
4166                   bufferWriteOp(yyval.action, SWFACTION_POP);
4167                   bufferConcat(yyval.action, yyvsp[0].action); ;}
4168     break;
4169
4170   case 218:
4171 #line 1063 "swf5compiler.y"
4172     { yyval.action = yyvsp[-2].action;
4173                   bufferWriteOp(yyval.action, SWFACTION_DUP);
4174                   bufferWriteOp(yyval.action, SWFACTION_LOGICALNOT);
4175                   bufferWriteOp(yyval.action, SWFACTION_BRANCHIFTRUE);
4176                   bufferWriteS16(yyval.action, 2);
4177                   bufferWriteS16(yyval.action, bufferLength(yyvsp[0].action)+1);
4178                   bufferWriteOp(yyval.action, SWFACTION_POP);
4179                   bufferConcat(yyval.action, yyvsp[0].action); ;}
4180     break;
4181
4182   case 219:
4183 #line 1073 "swf5compiler.y"
4184     { yyval.action = yyvsp[-2].action;
4185                   bufferConcat(yyval.action, yyvsp[0].action);
4186                   bufferWriteOp(yyval.action, SWFACTION_MULTIPLY); ;}
4187     break;
4188
4189   case 220:
4190 #line 1078 "swf5compiler.y"
4191     { yyval.action = yyvsp[-2].action;
4192                   bufferConcat(yyval.action, yyvsp[0].action);
4193                   bufferWriteOp(yyval.action, SWFACTION_DIVIDE); ;}
4194     break;
4195
4196   case 221:
4197 #line 1083 "swf5compiler.y"
4198     { yyval.action = yyvsp[-2].action;
4199                   bufferConcat(yyval.action, yyvsp[0].action);
4200                   bufferWriteOp(yyval.action, SWFACTION_MODULO); ;}
4201     break;
4202
4203   case 222:
4204 #line 1088 "swf5compiler.y"
4205     { yyval.action = yyvsp[-2].action;
4206                   bufferConcat(yyval.action, yyvsp[0].action);
4207                   bufferWriteOp(yyval.action, SWFACTION_NEWADD); ;}
4208     break;
4209
4210   case 223:
4211 #line 1093 "swf5compiler.y"
4212     { yyval.action = yyvsp[-2].action;
4213                   bufferConcat(yyval.action, yyvsp[0].action);
4214                   bufferWriteOp(yyval.action, SWFACTION_SUBTRACT); ;}
4215     break;
4216
4217   case 224:
4218 #line 1098 "swf5compiler.y"
4219     { yyval.action = yyvsp[-2].action;
4220                   bufferConcat(yyval.action, yyvsp[0].action);
4221                   bufferWriteOp(yyval.action, SWFACTION_BITWISEAND); ;}
4222     break;
4223
4224   case 225:
4225 #line 1103 "swf5compiler.y"
4226     { yyval.action = yyvsp[-2].action;
4227                   bufferConcat(yyval.action, yyvsp[0].action);
4228                   bufferWriteOp(yyval.action, SWFACTION_BITWISEOR); ;}
4229     break;
4230
4231   case 226:
4232 #line 1108 "swf5compiler.y"
4233     { yyval.action = yyvsp[-2].action;
4234                   bufferConcat(yyval.action, yyvsp[0].action);
4235                   bufferWriteOp(yyval.action, SWFACTION_BITWISEXOR); ;}
4236     break;
4237
4238   case 227:
4239 #line 1113 "swf5compiler.y"
4240     { yyval.action = yyvsp[-2].action;
4241                   bufferConcat(yyval.action, yyvsp[0].action);
4242                   bufferWriteOp(yyval.action, SWFACTION_NEWLESSTHAN); ;}
4243     break;
4244
4245   case 228:
4246 #line 1118 "swf5compiler.y"
4247     { yyval.action = yyvsp[0].action;
4248                   bufferConcat(yyval.action, yyvsp[-2].action);
4249                   bufferWriteOp(yyval.action, SWFACTION_NEWLESSTHAN); ;}
4250     break;
4251
4252   case 229:
4253 #line 1123 "swf5compiler.y"
4254     { yyval.action = yyvsp[0].action;
4255                   bufferConcat(yyval.action, yyvsp[-2].action);
4256                   bufferWriteOp(yyval.action, SWFACTION_NEWLESSTHAN);
4257                   bufferWriteOp(yyval.action, SWFACTION_LOGICALNOT); ;}
4258     break;
4259
4260   case 230:
4261 #line 1129 "swf5compiler.y"
4262     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4263                   bufferWriteOp(yyvsp[-2].action, SWFACTION_NEWLESSTHAN);
4264                   bufferWriteOp(yyvsp[-2].action, SWFACTION_LOGICALNOT); ;}
4265     break;
4266
4267   case 231:
4268 #line 1134 "swf5compiler.y"
4269     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4270                   bufferWriteOp(yyvsp[-2].action, SWFACTION_NEWEQUALS); ;}
4271     break;
4272
4273   case 232:
4274 #line 1138 "swf5compiler.y"
4275     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4276                   bufferWriteOp(yyvsp[-2].action, SWFACTION_NEWEQUALS);
4277                   bufferWriteOp(yyvsp[-2].action, SWFACTION_LOGICALNOT); ;}
4278     break;
4279
4280   case 233:
4281 #line 1143 "swf5compiler.y"
4282     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4283                   bufferWriteOp(yyvsp[-2].action, SWFACTION_SHIFTLEFT); ;}
4284     break;
4285
4286   case 234:
4287 #line 1147 "swf5compiler.y"
4288     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4289                   bufferWriteOp(yyvsp[-2].action, SWFACTION_SHIFTRIGHT); ;}
4290     break;
4291
4292   case 235:
4293 #line 1151 "swf5compiler.y"
4294     { bufferConcat(yyvsp[-2].action, yyvsp[0].action);
4295                   bufferWriteOp(yyvsp[-2].action, SWFACTION_SHIFTRIGHT2); ;}
4296     break;
4297
4298   case 236:
4299 #line 1155 "swf5compiler.y"
4300     { bufferWriteOp(yyvsp[-4].action, SWFACTION_BRANCHIFTRUE);
4301                   bufferWriteS16(yyvsp[-4].action, 2);
4302                   bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[0].action)+5);
4303                   bufferConcat(yyvsp[-4].action, yyvsp[0].action);
4304                   bufferWriteOp(yyvsp[-4].action, SWFACTION_BRANCHALWAYS);
4305                   bufferWriteS16(yyvsp[-4].action, 2);
4306                   bufferWriteS16(yyvsp[-4].action, bufferLength(yyvsp[-2].action));
4307                   bufferConcat(yyvsp[-4].action, yyvsp[-2].action); ;}
4308     break;
4309
4310   case 237:
4311 #line 1165 "swf5compiler.y"
4312     { if(yyvsp[-2].lval.obj) /* obj[memexpr] or obj.ident */
4313                   {
4314                     yyval.action = yyvsp[-2].lval.obj;
4315
4316                     if(yyvsp[-2].lval.ident)
4317                       bufferConcat(yyval.action, yyvsp[-2].lval.ident);
4318                     else
4319                       bufferConcat(yyval.action, yyvsp[-2].lval.memexpr);
4320
4321                     bufferConcat(yyval.action, yyvsp[0].action);
4322                     bufferWriteSetRegister(yyval.action, 0);
4323                     bufferWriteOp(yyval.action, SWFACTION_SETMEMBER);
4324                     bufferWriteRegister(yyval.action, 0);
4325                   }
4326                   else /* just ident */
4327                   {
4328                     yyval.action = yyvsp[0].action;
4329                     bufferWriteOp(yyval.action, SWFACTION_DUP);
4330                     bufferConcat(yyval.action, yyvsp[-2].lval.ident);
4331                     bufferWriteOp(yyval.action, SWFACTION_SWAP);
4332                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4333                   }
4334 /* tricky case missing here: lvalue ASSIGN expr */
4335 /* like in x = y += z; */
4336                 ;}
4337     break;
4338
4339   case 238:
4340 #line 1192 "swf5compiler.y"
4341     { yyval.action = yyvsp[-2].action;
4342                   bufferConcat(yyval.action, yyvsp[0].action);
4343                   bufferWriteOp(yyval.action, SWFACTION_INSTANCEOF); ;}
4344     break;
4345
4346   case 240:
4347 #line 1202 "swf5compiler.y"
4348     { yyval.action = newBuffer();
4349                   bufferWriteInt(yyval.action, 0);
4350                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
4351                   bufferWriteOp(yyval.action, SWFACTION_NEW); ;}
4352     break;
4353
4354   case 241:
4355 #line 1208 "swf5compiler.y"
4356     { yyval.action = yyvsp[-1].exprlist.buffer;
4357                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
4358                   bufferWriteString(yyval.action, yyvsp[-3].str, strlen(yyvsp[-3].str)+1);
4359                   bufferWriteOp(yyval.action, SWFACTION_NEW); ;}
4360     break;
4361
4362   case 242:
4363 #line 1214 "swf5compiler.y"
4364     { yyval.action = yyvsp[-1].exprlist.buffer;
4365                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
4366                   bufferWriteOp(yyval.action, SWFACTION_INITARRAY); ;}
4367     break;
4368
4369   case 243:
4370 #line 1219 "swf5compiler.y"
4371     { yyval.action = newBuffer();
4372                   bufferWriteInt(yyval.action, 0);
4373                   bufferWriteOp(yyval.action, SWFACTION_INITOBJECT); ;}
4374     break;
4375
4376   case 244:
4377 #line 1224 "swf5compiler.y"
4378     { yyval.action = yyvsp[-1].exprlist.buffer;
4379                   bufferWriteInt(yyval.action, yyvsp[-1].exprlist.count);
4380                   bufferWriteOp(yyval.action, SWFACTION_INITOBJECT); ;}
4381     break;
4382
4383   case 249:
4384 #line 1240 "swf5compiler.y"
4385     { if(yyvsp[0].lval.obj)
4386                   {
4387                     if(yyvsp[0].lval.ident)     // expr . identifier
4388                     {
4389                       yyval.action = yyvsp[0].lval.obj;
4390                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, a */
4391                       bufferWriteBuffer(yyval.action, yyvsp[0].lval.ident);        /* a, a, i */
4392                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a */
4393                       bufferConcat(yyval.action, yyvsp[0].lval.ident);             /* a, i, a, i */
4394                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER);
4395                       bufferWriteOp(yyval.action, yyvsp[-1].op);
4396                       bufferWriteSetRegister(yyval.action, 0);
4397                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4398                       bufferWriteRegister(yyval.action, 0);           /* a.i+1 */
4399                     }
4400                     else        // expr [ expr ]
4401                     {
4402                       yyval.action = yyvsp[0].lval.memexpr;                           /* i */
4403                       bufferConcat(yyval.action, yyvsp[0].lval.obj);                  /* i, a */
4404                       bufferWriteSetRegister(yyval.action, 0);  /* ($2.memexpr can use reg0) */
4405                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i */
4406                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, i, i */
4407                       bufferWriteRegister(yyval.action, 0);           /* a, i, i, a */
4408                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a, i */
4409                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, i, a[i] */
4410                       bufferWriteOp(yyval.action, yyvsp[-1].op);                      /* a, i, a[i]+1 */
4411                       bufferWriteSetRegister(yyval.action, 0);
4412                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4413                       bufferWriteRegister(yyval.action, 0);           /* a[i]+1 */
4414                     }
4415                   }
4416                   else  // identifier
4417                   {
4418                     yyval.action = newBuffer();
4419                     bufferWriteBuffer(yyval.action, yyvsp[0].lval.ident);
4420                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4421                     bufferWriteOp(yyval.action, yyvsp[-1].op);
4422                     bufferWriteOp(yyval.action, SWFACTION_DUP);
4423                     bufferConcat(yyval.action, yyvsp[0].lval.ident);
4424                     bufferWriteOp(yyval.action, SWFACTION_SWAP);
4425                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4426                   }
4427                 ;}
4428     break;
4429
4430   case 250:
4431 #line 1285 "swf5compiler.y"
4432     { if(yyvsp[-1].lval.obj)
4433                   {
4434                     if(yyvsp[-1].lval.ident)
4435                     {
4436                       yyval.action = yyvsp[-1].lval.obj;                              /* a */
4437                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, a */
4438                       bufferWriteBuffer(yyval.action, yyvsp[-1].lval.ident);        /* a, a, i */
4439                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, a.i */
4440                       bufferWriteSetRegister(yyval.action, 0);
4441                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a.i, a */
4442                       bufferConcat(yyval.action, yyvsp[-1].lval.ident);             /* a.i, a, i */
4443                       bufferWriteRegister(yyval.action, 0);             /* a.i, a, i, a.i */
4444                       bufferWriteOp(yyval.action, yyvsp[0].op);               /* a.i, a, i, a.i+1 */
4445                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER);
4446                     }
4447                     else
4448                     {
4449                       yyval.action = yyvsp[-1].lval.memexpr;
4450                       bufferConcat(yyval.action, yyvsp[-1].lval.obj);               /* i, a */
4451                       bufferWriteSetRegister(yyval.action, 0);
4452                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i */
4453                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, i, i */
4454                       bufferWriteRegister(yyval.action, 0);             /* a, i, i, a */
4455                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a, i */
4456                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, i, a[i] */
4457                       bufferWriteSetRegister(yyval.action, 0);
4458                       bufferWriteOp(yyval.action, yyvsp[0].op);               /* a, i, a[i]+1 */
4459                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER);
4460                       bufferWriteRegister(yyval.action, 0);             /* a[i] */
4461                     }
4462                   }
4463                   else
4464                   {
4465                     yyval.action = newBuffer();
4466                     bufferWriteBuffer(yyval.action, yyvsp[-1].lval.ident);
4467                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4468                     bufferWriteOp(yyval.action, SWFACTION_DUP);
4469                     bufferWriteOp(yyval.action, yyvsp[0].op);
4470                     bufferConcat(yyval.action, yyvsp[-1].lval.ident);
4471                     bufferWriteOp(yyval.action, SWFACTION_SWAP);
4472                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4473                   }
4474                 ;}
4475     break;
4476
4477   case 251:
4478 #line 1330 "swf5compiler.y"
4479     { yyval.action = yyvsp[-1].action; ;}
4480     break;
4481
4482   case 252:
4483 #line 1333 "swf5compiler.y"
4484     { yyval.action = newBuffer();
4485                   bufferWriteInt(yyval.action, -yyvsp[0].intVal); ;}
4486     break;
4487
4488   case 253:
4489 #line 1337 "swf5compiler.y"
4490     { yyval.action = newBuffer();
4491                   bufferWriteInt(yyval.action, yyvsp[0].intVal); ;}
4492     break;
4493
4494   case 254:
4495 #line 1341 "swf5compiler.y"
4496     { yyval.action = newBuffer();
4497                   bufferWriteDouble(yyval.action, -yyvsp[0].doubleVal); ;}
4498     break;
4499
4500   case 255:
4501 #line 1345 "swf5compiler.y"
4502     { yyval.action = newBuffer();
4503                   bufferWriteDouble(yyval.action, yyvsp[0].doubleVal); ;}
4504     break;
4505
4506   case 256:
4507 #line 1349 "swf5compiler.y"
4508     { yyval.action = newBuffer();
4509                   bufferWriteBoolean(yyval.action, yyvsp[0].intVal); ;}
4510     break;
4511
4512   case 257:
4513 #line 1353 "swf5compiler.y"
4514     { yyval.action = newBuffer();
4515                   bufferWriteNull(yyval.action); ;}
4516     break;
4517
4518   case 258:
4519 #line 1357 "swf5compiler.y"
4520     { yyval.action = newBuffer();
4521                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
4522                   free(yyvsp[0].str); ;}
4523     break;
4524
4525   case 260:
4526 #line 1366 "swf5compiler.y"
4527     { yyval.action = yyvsp[-2].action;
4528                   bufferConcat(yyval.action, yyvsp[0].action); ;}
4529     break;
4530
4531   case 261:
4532 #line 1372 "swf5compiler.y"
4533     { yyval.action = newBuffer();
4534                   bufferWriteString(yyval.action, yyvsp[-2].str, strlen(yyvsp[-2].str)+1);
4535                   bufferConcat(yyval.action, yyvsp[0].action);
4536                   bufferWriteOp(yyval.action, SWFACTION_VAREQUALS); ;}
4537     break;
4538
4539   case 262:
4540 #line 1378 "swf5compiler.y"
4541     { yyval.action = newBuffer();
4542                   bufferWriteString(yyval.action, yyvsp[0].str, strlen(yyvsp[0].str)+1);
4543                   bufferWriteOp(yyval.action, SWFACTION_VAR); ;}
4544     break;
4545
4546   case 263:
4547 #line 1385 "swf5compiler.y"
4548     { asmBuffer = newBuffer(); ;}
4549     break;
4550
4551   case 264:
4552 #line 1387 "swf5compiler.y"
4553     { yyval.action = asmBuffer; ;}
4554     break;
4555
4556   case 265:
4557 #line 1390 "swf5compiler.y"
4558     { yyval.action = yyvsp[0].action; ;}
4559     break;
4560
4561   case 267:
4562 #line 1395 "swf5compiler.y"
4563     { yyval.action = yyvsp[0].action;
4564                   bufferWriteOp(yyval.action, SWFACTION_POP); ;}
4565     break;
4566
4567   case 268:
4568 #line 1399 "swf5compiler.y"
4569     { yyval.action = yyvsp[0].action;
4570                   bufferWriteOp(yyval.action, SWFACTION_POP); ;}
4571     break;
4572
4573   case 269:
4574 #line 1403 "swf5compiler.y"
4575     { if(yyvsp[0].lval.obj)
4576                   {
4577                     if(yyvsp[0].lval.ident)
4578                     {
4579                       yyval.action = yyvsp[0].lval.obj;                       /* a */
4580                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, a */
4581                       bufferWriteBuffer(yyval.action, yyvsp[0].lval.ident);           /* a, a, i */
4582                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, a.i */
4583                       bufferWriteOp(yyval.action, yyvsp[-1].op);                      /* a, a.i+1 */
4584                       bufferConcat(yyval.action, yyvsp[0].lval.ident);        /* a, a.i+1, i */
4585                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a.i+1 */
4586                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4587                     }
4588                     else
4589                     {
4590                       /* weird contortions so that $2.memexpr can use reg 0 */
4591                       yyval.action = yyvsp[0].lval.memexpr;                           /* i */
4592                       bufferConcat(yyval.action, yyvsp[0].lval.obj);                  /* i, a */
4593                       bufferWriteSetRegister(yyval.action, 0);
4594                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i */
4595                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, i, i */
4596                       bufferWriteRegister(yyval.action, 0);           /* a, i, i, a */
4597                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a, i */
4598                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, i, a[i] */
4599                       bufferWriteOp(yyval.action, yyvsp[-1].op);                      /* a, i, a[i]+1 */
4600                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4601                     }
4602                   }
4603                   else
4604                   {
4605                     yyval.action = yyvsp[0].lval.ident;
4606                     bufferWriteOp(yyval.action, SWFACTION_DUP);
4607                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4608                     bufferWriteOp(yyval.action, yyvsp[-1].op);
4609                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4610                   }
4611                 ;}
4612     break;
4613
4614   case 270:
4615 #line 1442 "swf5compiler.y"
4616     { if(yyvsp[-1].lval.obj)
4617                   {
4618                     if(yyvsp[-1].lval.ident)
4619                     {
4620                       yyval.action = yyvsp[-1].lval.obj;                              /* a */
4621                       bufferWriteOp(yyval.action, SWFACTION_DUP);       /* a, a */
4622                       bufferWriteBuffer(yyval.action, yyvsp[-1].lval.ident);          /* a, a, i */
4623                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, a.i */
4624                       bufferWriteOp(yyval.action, yyvsp[0].op);                  /* a, a.i+1 */
4625                       bufferConcat(yyval.action, yyvsp[-1].lval.ident);             /* a, a.i+1, i */
4626                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a.i+1 */
4627                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a.i = a.i+1 */
4628                     }
4629                     else
4630                     {
4631                       /* weird contortions so that $1.memexpr can use reg 0 */
4632                       yyval.action = yyvsp[-1].lval.memexpr;    /* i */
4633                       bufferConcat(yyval.action, yyvsp[-1].lval.obj);                 /* i, a */
4634                       bufferWriteSetRegister(yyval.action, 0);
4635                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i */
4636                       bufferWriteOp(yyval.action, SWFACTION_DUP);       /* a, i, i */
4637                       bufferWriteRegister(yyval.action, 0);             /* a, i, i, a */
4638                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a, i */
4639                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, i, a[i] */
4640                       bufferWriteOp(yyval.action, yyvsp[0].op);                  /* a, i, a[i]+1 */
4641                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a[i] = a[i]+1 */
4642                     }
4643                   }
4644                   else
4645                   {
4646                     yyval.action = yyvsp[-1].lval.ident;
4647                     bufferWriteOp(yyval.action, SWFACTION_DUP); 
4648                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4649                     bufferWriteOp(yyval.action, yyvsp[0].op);
4650                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4651                   }
4652                 ;}
4653     break;
4654
4655   case 271:
4656 #line 1481 "swf5compiler.y"
4657     { if(yyvsp[-2].lval.obj)
4658                   {
4659                     yyval.action = yyvsp[-2].lval.obj;
4660
4661                     if(yyvsp[-2].lval.ident)
4662                       bufferConcat(yyval.action, yyvsp[-2].lval.ident);
4663                     else
4664                       bufferConcat(yyval.action, yyvsp[-2].lval.memexpr);
4665
4666                     bufferConcat(yyval.action, yyvsp[0].action);
4667                     bufferWriteOp(yyval.action, SWFACTION_SETMEMBER);
4668                   }
4669                   else
4670                   {
4671                     yyval.action = yyvsp[-2].lval.ident;
4672                     bufferConcat(yyval.action, yyvsp[0].action);
4673                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4674                   }
4675                 ;}
4676     break;
4677
4678   case 272:
4679 #line 1502 "swf5compiler.y"
4680     { if(yyvsp[-2].lval.obj)
4681                   {
4682                     if(yyvsp[-2].lval.ident)
4683                     {
4684                       yyval.action = yyvsp[-2].lval.obj;                              /* a */
4685                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, a */
4686                       bufferWriteBuffer(yyval.action, yyvsp[-2].lval.ident);          /* a, a, i */
4687                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, a.i */
4688                       bufferConcat(yyval.action, yyvsp[0].action);                    /* a, a.i, v */
4689                       bufferWriteOp(yyval.action, yyvsp[-1].op);                      /* a, a.i+v */
4690                       bufferConcat(yyval.action, yyvsp[-2].lval.ident);       /* a, a.i+v, i */
4691                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a.i+v */
4692                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a.i = a.i+v */
4693                     }
4694                     else
4695                     {
4696                       yyval.action = yyvsp[-2].lval.memexpr;                          /* i */
4697                       bufferConcat(yyval.action, yyvsp[-2].lval.obj);                 /* i, a */
4698                       bufferWriteSetRegister(yyval.action, 0);
4699                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i */
4700                       bufferWriteOp(yyval.action, SWFACTION_DUP);             /* a, i, i */
4701                       bufferWriteRegister(yyval.action, 0);           /* a, i, i, a */
4702                       bufferWriteOp(yyval.action, SWFACTION_SWAP);      /* a, i, a, i */
4703                       bufferWriteOp(yyval.action, SWFACTION_GETMEMBER); /* a, i, a[i] */
4704                       bufferConcat(yyval.action, yyvsp[0].action);                    /* a, i, a[i], v */
4705                       bufferWriteOp(yyval.action, yyvsp[-1].op);                      /* a, i, a[i]+v */
4706                       bufferWriteOp(yyval.action, SWFACTION_SETMEMBER); /* a[i] = a[i]+v */
4707                     }
4708                   }
4709                   else
4710                   {
4711                     yyval.action = yyvsp[-2].lval.ident;
4712                     bufferWriteOp(yyval.action, SWFACTION_DUP);
4713                     bufferWriteOp(yyval.action, SWFACTION_GETVARIABLE);
4714                     bufferConcat(yyval.action, yyvsp[0].action);
4715                     bufferWriteOp(yyval.action, yyvsp[-1].op);
4716                     bufferWriteOp(yyval.action, SWFACTION_SETVARIABLE);
4717                   }
4718                 ;}
4719     break;
4720
4721   case 274:
4722 #line 1547 "swf5compiler.y"
4723     { yyval.len = yyvsp[-1].len + yyvsp[0].len; ;}
4724     break;
4725
4726   case 275:
4727 #line 1552 "swf5compiler.y"
4728     { yyval.len = bufferWriteOp(asmBuffer,
4729                                                      SWFACTION_WITH); ;}
4730     break;
4731
4732   case 276:
4733 #line 1554 "swf5compiler.y"
4734     { yyval.len = yyvsp[-2].len + yyvsp[-1].len;
4735                                   bufferPatchLength(asmBuffer, yyvsp[-1].len); ;}
4736     break;
4737
4738   case 277:
4739 #line 1559 "swf5compiler.y"
4740     { yyval.len = bufferWriteConstantString(asmBuffer,(byte*) yyvsp[0].str,
4741                                                                  strlen(yyvsp[0].str)+1); ;}
4742     break;
4743
4744   case 278:
4745 #line 1562 "swf5compiler.y"
4746     { bufferWriteU8(asmBuffer, PUSH_INT);
4747                                   yyval.len = bufferWriteInt(asmBuffer, yyvsp[0].intVal)+1; ;}
4748     break;
4749
4750   case 279:
4751 #line 1565 "swf5compiler.y"
4752     { bufferWriteU8(asmBuffer, PUSH_DOUBLE);
4753                                   yyval.len = bufferWriteDouble(asmBuffer, yyvsp[0].doubleVal)+1; ;}
4754     break;
4755
4756   case 280:
4757 #line 1568 "swf5compiler.y"
4758     { bufferWriteU8(asmBuffer, PUSH_BOOLEAN);
4759                                   yyval.len = bufferWriteU8(asmBuffer, yyvsp[0].intVal)+1; ;}
4760     break;
4761
4762   case 281:
4763 #line 1571 "swf5compiler.y"
4764     { yyval.len = bufferWriteU8(asmBuffer, PUSH_NULL); ;}
4765     break;
4766
4767   case 282:
4768 #line 1573 "swf5compiler.y"
4769     { bufferWriteU8(asmBuffer, PUSH_REGISTER);
4770                                   yyval.len = bufferWriteU8(asmBuffer,
4771                                                      (char)atoi(yyvsp[0].str))+1; ;}
4772     break;
4773
4774   case 283:
4775 #line 1580 "swf5compiler.y"
4776     { yyval.len = yyvsp[0].len; ;}
4777     break;
4778
4779   case 284:
4780 #line 1581 "swf5compiler.y"
4781     { yyval.len += yyvsp[0].len; ;}
4782     break;
4783
4784   case 285:
4785 #line 1585 "swf5compiler.y"
4786     { yyval.len = bufferWriteOp(asmBuffer,
4787                                                      SWFACTION_PUSHDATA);
4788                                   yyval.len += bufferWriteS16(asmBuffer, 0); ;}
4789     break;
4790
4791   case 286:
4792 #line 1588 "swf5compiler.y"
4793     { yyval.len = yyvsp[-1].len + yyvsp[0].len;
4794                                   bufferPatchLength(asmBuffer, yyvsp[0].len); ;}
4795     break;
4796
4797   case 288:
4798 #line 1594 "swf5compiler.y"
4799     { yyval.len = bufferWriteOp(asmBuffer, 
4800                                                      SWFACTION_SETREGISTER);
4801                                   yyval.len += bufferWriteS16(asmBuffer, 1);
4802                                   yyval.len += bufferWriteU8(asmBuffer,
4803                                                       (char)atoi(yyvsp[0].str)); ;}
4804     break;
4805
4806   case 289:
4807 #line 1600 "swf5compiler.y"
4808     { yyval.len = bufferWriteOp(asmBuffer,
4809                                                      SWFACTION_CALLFUNCTION); ;}
4810     break;
4811
4812   case 290:
4813 #line 1602 "swf5compiler.y"
4814     { yyval.len = bufferWriteOp(asmBuffer,
4815                                                      SWFACTION_RETURN); ;}
4816     break;
4817
4818   case 291:
4819 #line 1604 "swf5compiler.y"
4820     { yyval.len = bufferWriteOp(asmBuffer, 
4821                                                      SWFACTION_CALLMETHOD); ;}
4822     break;
4823
4824   case 292:
4825 #line 1606 "swf5compiler.y"
4826     { yyval.len = bufferWriteOp(asmBuffer, 
4827                                                      SWFACTION_BITWISEAND); ;}
4828     break;
4829
4830   case 293:
4831 #line 1608 "swf5compiler.y"
4832     { yyval.len = bufferWriteOp(asmBuffer, 
4833                                                      SWFACTION_BITWISEOR); ;}
4834     break;
4835
4836   case 294:
4837 #line 1610 "swf5compiler.y"
4838     { yyval.len = bufferWriteOp(asmBuffer, 
4839                                                      SWFACTION_BITWISEXOR); ;}
4840     break;
4841
4842   case 295:
4843 #line 1612 "swf5compiler.y"
4844     { yyval.len = bufferWriteOp(asmBuffer, 
4845                                                      SWFACTION_MODULO); ;}
4846     break;
4847
4848   case 296:
4849 #line 1614 "swf5compiler.y"
4850     { yyval.len = bufferWriteOp(asmBuffer, 
4851                                                      SWFACTION_NEWADD); ;}
4852     break;
4853
4854   case 297:
4855 #line 1616 "swf5compiler.y"
4856     { yyval.len = bufferWriteOp(asmBuffer, 
4857                                                      SWFACTION_NEWLESSTHAN); ;}
4858     break;
4859
4860   case 298:
4861 #line 1618 "swf5compiler.y"
4862     { yyval.len = bufferWriteOp(asmBuffer, 
4863                                                      SWFACTION_NEWEQUALS); ;}
4864     break;
4865
4866   case 299:
4867 #line 1620 "swf5compiler.y"
4868     { yyval.len = bufferWriteOp(asmBuffer, 
4869                                                      SWFACTION_INCREMENT); ;}
4870     break;
4871
4872   case 300:
4873 #line 1622 "swf5compiler.y"
4874     { yyval.len = bufferWriteOp(asmBuffer, 
4875                                                      SWFACTION_DECREMENT); ;}
4876     break;
4877
4878   case 301:
4879 #line 1624 "swf5compiler.y"
4880     { yyval.len = bufferWriteOp(asmBuffer, 
4881                                                      SWFACTION_TYPEOF); ;}
4882     break;
4883
4884   case 302:
4885 #line 1626 "swf5compiler.y"
4886     { yyval.len = bufferWriteOp(asmBuffer, 
4887                                                      SWFACTION_INSTANCEOF); ;}
4888     break;
4889
4890   case 303:
4891 #line 1628 "swf5compiler.y"
4892     { yyval.len = bufferWriteOp(asmBuffer, 
4893                                                      SWFACTION_ENUMERATE); ;}
4894     break;
4895
4896   case 304:
4897 #line 1630 "swf5compiler.y"
4898     { yyval.len = bufferWriteOp(asmBuffer, 
4899                                                      SWFACTION_DELETE); ;}
4900     break;
4901
4902   case 305:
4903 #line 1632 "swf5compiler.y"
4904     { yyval.len = bufferWriteOp(asmBuffer, 
4905                                                      SWFACTION_NEW); ;}
4906     break;
4907
4908   case 306:
4909 #line 1634 "swf5compiler.y"
4910     { yyval.len = bufferWriteOp(asmBuffer, 
4911                                                      SWFACTION_INITARRAY); ;}
4912     break;
4913
4914   case 307:
4915 #line 1636 "swf5compiler.y"
4916     { yyval.len = bufferWriteOp(asmBuffer, 
4917                                                      SWFACTION_INITOBJECT); ;}
4918     break;
4919
4920   case 308:
4921 #line 1638 "swf5compiler.y"
4922     { yyval.len = bufferWriteOp(asmBuffer, 
4923                                                      SWFACTION_GETMEMBER); ;}
4924     break;
4925
4926   case 309:
4927 #line 1640 "swf5compiler.y"
4928     { yyval.len = bufferWriteOp(asmBuffer, 
4929                                                      SWFACTION_SETMEMBER); ;}
4930     break;
4931
4932   case 310:
4933 #line 1642 "swf5compiler.y"
4934     { yyval.len = bufferWriteOp(asmBuffer, 
4935                                                      SWFACTION_SHIFTLEFT); ;}
4936     break;
4937
4938   case 311:
4939 #line 1644 "swf5compiler.y"
4940     { yyval.len = bufferWriteOp(asmBuffer, 
4941                                                      SWFACTION_SHIFTRIGHT); ;}
4942     break;
4943
4944   case 312:
4945 #line 1646 "swf5compiler.y"
4946     { yyval.len = bufferWriteOp(asmBuffer, 
4947                                                      SWFACTION_SHIFTRIGHT2); ;}
4948     break;
4949
4950   case 313:
4951 #line 1648 "swf5compiler.y"
4952     { yyval.len = bufferWriteOp(asmBuffer, 
4953                                                      SWFACTION_VAR); ;}
4954     break;
4955
4956   case 314:
4957 #line 1650 "swf5compiler.y"
4958     { yyval.len = bufferWriteOp(asmBuffer, 
4959                                                      SWFACTION_VAREQUALS); ;}
4960     break;
4961
4962   case 315:
4963 #line 1654 "swf5compiler.y"
4964     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_ADD); ;}
4965     break;
4966
4967   case 316:
4968 #line 1655 "swf5compiler.y"
4969     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_SUBTRACT); ;}
4970     break;
4971
4972   case 317:
4973 #line 1656 "swf5compiler.y"
4974     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_MULTIPLY); ;}
4975     break;
4976
4977   case 318:
4978 #line 1657 "swf5compiler.y"
4979     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_DIVIDE); ;}
4980     break;
4981
4982   case 319:
4983 #line 1658 "swf5compiler.y"
4984     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_EQUAL); ;}
4985     break;
4986
4987   case 320:
4988 #line 1659 "swf5compiler.y"
4989     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_LESSTHAN); ;}
4990     break;
4991
4992   case 321:
4993 #line 1660 "swf5compiler.y"
4994     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_LOGICALAND); ;}
4995     break;
4996
4997   case 322:
4998 #line 1661 "swf5compiler.y"
4999     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_LOGICALOR); ;}
5000     break;
5001
5002   case 323:
5003 #line 1662 "swf5compiler.y"
5004     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_LOGICALNOT); ;}
5005     break;
5006
5007   case 324:
5008 #line 1663 "swf5compiler.y"
5009     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_STRINGEQ); ;}
5010     break;
5011
5012   case 325:
5013 #line 1664 "swf5compiler.y"
5014     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_STRINGLENGTH); ;}
5015     break;
5016
5017   case 326:
5018 #line 1665 "swf5compiler.y"
5019     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_SUBSTRING); ;}
5020     break;
5021
5022   case 327:
5023 #line 1666 "swf5compiler.y"
5024     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_INT); ;}
5025     break;
5026
5027   case 328:
5028 #line 1667 "swf5compiler.y"
5029     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_DUP); ;}
5030     break;
5031
5032   case 329:
5033 #line 1668 "swf5compiler.y"
5034     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_SWAP); ;}
5035     break;
5036
5037   case 330:
5038 #line 1669 "swf5compiler.y"
5039     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_POP); ;}
5040     break;
5041
5042   case 331:
5043 #line 1670 "swf5compiler.y"
5044     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_GETVARIABLE); ;}
5045     break;
5046
5047   case 332:
5048 #line 1671 "swf5compiler.y"
5049     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_SETVARIABLE); ;}
5050     break;
5051
5052   case 333:
5053 #line 1672 "swf5compiler.y"
5054     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_SETTARGETEXPRESSION); ;}
5055     break;
5056
5057   case 334:
5058 #line 1673 "swf5compiler.y"
5059     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_STRINGCONCAT); ;}
5060     break;
5061
5062   case 335:
5063 #line 1674 "swf5compiler.y"
5064     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_DUPLICATECLIP); ;}
5065     break;
5066
5067   case 336:
5068 #line 1675 "swf5compiler.y"
5069     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_REMOVECLIP); ;}
5070     break;
5071
5072   case 337:
5073 #line 1676 "swf5compiler.y"
5074     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_TRACE); ;}
5075     break;
5076
5077   case 338:
5078 #line 1677 "swf5compiler.y"
5079     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_STRINGCOMPARE); ;}
5080     break;
5081
5082   case 339:
5083 #line 1678 "swf5compiler.y"
5084     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_RANDOM); ;}
5085     break;
5086
5087   case 340:
5088 #line 1679 "swf5compiler.y"
5089     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_MBLENGTH); ;}
5090     break;
5091
5092   case 341:
5093 #line 1680 "swf5compiler.y"
5094     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_ORD); ;}
5095     break;
5096
5097   case 342:
5098 #line 1681 "swf5compiler.y"
5099     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_CHR); ;}
5100     break;
5101
5102   case 343:
5103 #line 1682 "swf5compiler.y"
5104     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_GETTIMER); ;}
5105     break;
5106
5107   case 344:
5108 #line 1683 "swf5compiler.y"
5109     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_MBSUBSTRING); ;}
5110     break;
5111
5112   case 345:
5113 #line 1684 "swf5compiler.y"
5114     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_MBORD); ;}
5115     break;
5116
5117   case 346:
5118 #line 1685 "swf5compiler.y"
5119     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_MBCHR); ;}
5120     break;
5121
5122   case 347:
5123 #line 1688 "swf5compiler.y"
5124     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_BRANCHALWAYS);
5125                                   yyval.len += bufferWriteS16(asmBuffer, 2);
5126                                   yyval.len += bufferBranchTarget(asmBuffer, yyvsp[0].str); ;}
5127     break;
5128
5129   case 348:
5130 #line 1692 "swf5compiler.y"
5131     { yyval.len = bufferWriteOp(asmBuffer, SWFACTION_BRANCHIFTRUE);
5132                                   yyval.len += bufferWriteS16(asmBuffer, 2);
5133                                   yyval.len += bufferBranchTarget(asmBuffer, yyvsp[0].str); ;}
5134     break;
5135
5136
5137     }
5138
5139 /* Line 999 of yacc.c.  */
5140 #line 5140 "swf5compiler.tab.c"
5141 \f
5142   yyvsp -= yylen;
5143   yyssp -= yylen;
5144
5145
5146   YY_STACK_PRINT (yyss, yyssp);
5147
5148   *++yyvsp = yyval;
5149
5150
5151   /* Now `shift' the result of the reduction.  Determine what state
5152      that goes to, based on the state we popped back to and the rule
5153      number reduced by.  */
5154
5155   yyn = yyr1[yyn];
5156
5157   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
5158   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5159     yystate = yytable[yystate];
5160   else
5161     yystate = yydefgoto[yyn - YYNTOKENS];
5162
5163   goto yynewstate;
5164
5165
5166 /*------------------------------------.
5167 | yyerrlab -- here on detecting error |
5168 `------------------------------------*/
5169 yyerrlab:
5170   /* If not already recovering from an error, report this error.  */
5171   if (!yyerrstatus)
5172     {
5173       ++yynerrs;
5174 #if YYERROR_VERBOSE
5175       yyn = yypact[yystate];
5176
5177       if (YYPACT_NINF < yyn && yyn < YYLAST)
5178         {
5179           YYSIZE_T yysize = 0;
5180           int yytype = YYTRANSLATE (yychar);
5181           char *yymsg;
5182           int yyx, yycount;
5183
5184           yycount = 0;
5185           /* Start YYX at -YYN if negative to avoid negative indexes in
5186              YYCHECK.  */
5187           for (yyx = yyn < 0 ? -yyn : 0;
5188                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
5189             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
5190               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
5191           yysize += yystrlen ("syntax error, unexpected ") + 1;
5192           yysize += yystrlen (yytname[yytype]);
5193           yymsg = (char *) YYSTACK_ALLOC (yysize);
5194           if (yymsg != 0)
5195             {
5196               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
5197               yyp = yystpcpy (yyp, yytname[yytype]);
5198
5199               if (yycount < 5)
5200                 {
5201                   yycount = 0;
5202                   for (yyx = yyn < 0 ? -yyn : 0;
5203                        yyx < (int) (sizeof (yytname) / sizeof (char *));
5204                        yyx++)
5205                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
5206                       {
5207                         const char *yyq = ! yycount ? ", expecting " : " or ";
5208                         yyp = yystpcpy (yyp, yyq);
5209                         yyp = yystpcpy (yyp, yytname[yyx]);
5210                         yycount++;
5211                       }
5212                 }
5213               yyerror (yymsg);
5214               YYSTACK_FREE (yymsg);
5215             }
5216           else
5217             yyerror ("syntax error; also virtual memory exhausted");
5218         }
5219       else
5220 #endif /* YYERROR_VERBOSE */
5221         yyerror ("syntax error");
5222     }
5223
5224
5225
5226   if (yyerrstatus == 3)
5227     {
5228       /* If just tried and failed to reuse lookahead token after an
5229          error, discard it.  */
5230
5231       /* Return failure if at end of input.  */
5232       if (yychar == YYEOF)
5233         {
5234           /* Pop the error token.  */
5235           YYPOPSTACK;
5236           /* Pop the rest of the stack.  */
5237           while (yyss < yyssp)
5238             {
5239               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
5240               yydestruct (yystos[*yyssp], yyvsp);
5241               YYPOPSTACK;
5242             }
5243           YYABORT;
5244         }
5245
5246       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
5247       yydestruct (yytoken, &yylval);
5248       yychar = YYEMPTY;
5249
5250     }
5251
5252   /* Else will try to reuse lookahead token after shifting the error
5253      token.  */
5254   goto yyerrlab1;
5255
5256
5257 /*----------------------------------------------------.
5258 | yyerrlab1 -- error raised explicitly by an action.  |
5259 `----------------------------------------------------*/
5260 yyerrlab1:
5261   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
5262
5263   for (;;)
5264     {
5265       yyn = yypact[yystate];
5266       if (yyn != YYPACT_NINF)
5267         {
5268           yyn += YYTERROR;
5269           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
5270             {
5271               yyn = yytable[yyn];
5272               if (0 < yyn)
5273                 break;
5274             }
5275         }
5276
5277       /* Pop the current state because it cannot handle the error token.  */
5278       if (yyssp == yyss)
5279         YYABORT;
5280
5281       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
5282       yydestruct (yystos[yystate], yyvsp);
5283       yyvsp--;
5284       yystate = *--yyssp;
5285
5286       YY_STACK_PRINT (yyss, yyssp);
5287     }
5288
5289   if (yyn == YYFINAL)
5290     YYACCEPT;
5291
5292   YYDPRINTF ((stderr, "Shifting error token, "));
5293
5294   *++yyvsp = yylval;
5295
5296
5297   yystate = yyn;
5298   goto yynewstate;
5299
5300
5301 /*-------------------------------------.
5302 | yyacceptlab -- YYACCEPT comes here.  |
5303 `-------------------------------------*/
5304 yyacceptlab:
5305   yyresult = 0;
5306   goto yyreturn;
5307
5308 /*-----------------------------------.
5309 | yyabortlab -- YYABORT comes here.  |
5310 `-----------------------------------*/
5311 yyabortlab:
5312   yyresult = 1;
5313   goto yyreturn;
5314
5315 #ifndef yyoverflow
5316 /*----------------------------------------------.
5317 | yyoverflowlab -- parser overflow comes here.  |
5318 `----------------------------------------------*/
5319 yyoverflowlab:
5320   yyerror ("parser stack overflow");
5321   yyresult = 2;
5322   /* Fall through.  */
5323 #endif
5324
5325 yyreturn:
5326 #ifndef yyoverflow
5327   if (yyss != yyssa)
5328     YYSTACK_FREE (yyss);
5329 #endif
5330   return yyresult;
5331 }
5332
5333
5334 #line 1697 "swf5compiler.y"
5335
5336
5337