[Scummvm-git-logs] scummvm master -> eda5822c631395c25998f9ef200f9297d15fe871

djsrv dservilla at gmail.com
Mon Jul 13 16:08:53 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
eda5822c63 DIRECTOR: LINGO: Fix chunkexpr


Commit: eda5822c631395c25998f9ef200f9297d15fe871
    https://github.com/scummvm/scummvm/commit/eda5822c631395c25998f9ef200f9297d15fe871
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-13T12:08:27-04:00

Commit Message:
DIRECTOR: LINGO: Fix chunkexpr

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y
    engines/director/lingo/tests/reference.lingo


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 496de2d837..c876cd3acb 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -811,18 +811,18 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  116
+#define YYFINAL  125
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2623
+#define YYLAST   2689
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  58
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  182
+#define YYNRULES  183
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  385
+#define YYNSTATES  386
 
 #define YYMAXUTOK   341
 
@@ -886,18 +886,18 @@ static const yytype_int16 yyrline[] =
      445,   431,   475,   483,   486,   487,   489,   491,   493,   500,
      508,   509,   511,   517,   521,   525,   529,   532,   534,   535,
      536,   538,   541,   544,   548,   552,   556,   564,   570,   571,
-     572,   583,   584,   587,   590,   593,   596,   602,   602,   607,
-     610,   613,   619,   620,   621,   622,   623,   624,   625,   626,
+     572,   583,   584,   585,   588,   591,   594,   597,   603,   603,
+     608,   611,   614,   620,   621,   622,   623,   624,   625,   626,
      627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-     637,   638,   639,   640,   641,   643,   644,   645,   646,   647,
-     648,   649,   650,   652,   655,   657,   658,   659,   660,   668,
-     669,   669,   670,   670,   671,   671,   672,   675,   678,   681,
-     685,   688,   692,   695,   699,   702,   713,   714,   715,   716,
-     720,   724,   729,   730,   732,   736,   740,   744,   744,   774,
-     774,   780,   781,   781,   787,   795,   801,   801,   803,   804,
-     805,   807,   808,   809,   811,   813,   821,   822,   823,   825,
-     826,   828,   830,   831,   832,   833,   835,   836,   838,   839,
-     841,   845,   849
+     637,   638,   639,   640,   641,   642,   644,   645,   646,   647,
+     648,   649,   650,   651,   653,   656,   658,   659,   660,   661,
+     669,   670,   670,   671,   671,   672,   672,   673,   676,   679,
+     682,   686,   689,   693,   696,   700,   703,   714,   715,   716,
+     717,   721,   725,   730,   731,   733,   737,   741,   745,   745,
+     775,   775,   781,   782,   782,   788,   796,   802,   802,   804,
+     805,   806,   808,   809,   810,   812,   814,   822,   823,   824,
+     826,   827,   829,   831,   832,   833,   834,   836,   837,   839,
+     840,   842,   846,   850
 };
 #endif
 
@@ -961,12 +961,12 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-319)
+#define YYPACT_NINF (-360)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-173)
+#define YYTABLE_NINF (-174)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -975,45 +975,45 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     894,   -50,  -319,  -319,    55,  -319,   720,   341,   442,   -11,
-     623,  -319,  -319,  -319,  -319,  -319,    18,  -319,  1890,  -319,
-    -319,  -319,    24,  2074,   -17,   190,    73,    79,  2110,  1926,
-    -319,  2110,  2110,  2110,  -319,  -319,  2110,  2110,  2110,   535,
-     107,    17,  -319,  -319,  -319,  -319,  2110,  -319,  2517,  -319,
-    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,    37,
-    2074,  1982,  2517,    45,  1982,    45,  1982,    45,    55,  2018,
-    2517,    47,   807,  -319,  -319,   113,  2110,  -319,   108,  -319,
-    2131,  -319,   132,  -319,   142,   508,   145,  -319,   -47,    55,
-      55,   -42,   -12,   124,  -319,  2434,  2131,  -319,   156,  -319,
-    2484,  1792,   162,   170,  -319,  -319,  2447,   -37,    96,    97,
-    -319,  2517,   100,   114,   115,  -319,  -319,   894,  2517,  2110,
-    2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,  2110,
-    2110,  2110,  2110,  2110,  2110,  2110,   180,  2018,   508,  2447,
-     -45,  2110,    13,    40,  -319,   -78,    69,  2110,    45,   180,
-    -319,   116,  2517,  2110,  -319,  -319,    55,    11,   110,   118,
-     -29,  2110,  2110,  2110,    38,   163,  2110,  2110,  2110,  2110,
-    2110,  2110,  -319,  -319,   117,  2110,  2110,  -319,  -319,  -319,
-     119,  -319,  -319,  2110,  2110,  2110,  -319,  2110,   123,  -319,
-     159,   112,   112,   112,   112,  2530,  2530,  -319,   -44,   112,
-     112,   112,   112,   -44,    -3,    -3,  -319,  -319,  -319,   -15,
-    -319,  2517,  -319,  -319,  -319,  -319,  -319,  2517,     0,   192,
-    2517,   180,   184,    55,  -319,  2110,  2110,  2110,  2110,  -319,
-    -319,  -319,  -319,  -319,  -319,  2110,  2110,  2517,  2517,   112,
-    2110,  2110,   205,  2517,   112,  2517,   112,  2517,  2517,   206,
-    2517,  2517,  1810,  -319,   207,  2517,  2517,  2517,  2517,   135,
-      96,    97,  -319,  -319,  -319,   211,  2110,  -319,  -319,     8,
-    2110,  -319,  2164,  2197,  2230,  2263,  2517,   244,  -319,  2517,
-     112,    55,  -319,  -319,  1311,  -319,  1227,  -319,  -319,    76,
-    -319,  -319,  2517,  2110,  2110,  2110,  2110,  2110,  2110,  2110,
-    2110,  -319,  -319,  -319,  -319,    41,  -319,  -319,  -319,   152,
-    -319,   978,  -319,  1061,  -319,  2517,  2296,  2517,  2329,  2517,
-    2362,  2517,  2395,  -319,  -319,  -319,  1394,  2110,  2110,  -319,
-      43,   213,  1144,  2110,  2110,  2110,  2110,  -319,   187,   209,
-     160,  2517,   112,  -319,  2110,  -319,   157,  -319,   146,  2517,
-    2517,  2517,  2517,  -319,  2110,   193,  -319,  1477,  2517,  -319,
-     221,  -319,  2517,  2110,   164,   197,  -319,  -319,  -319,  2517,
-    -319,  -319,  1561,  -319,  -319,  1227,  -319,  -319,  -319,  -319,
-    1644,  -319,  -319,  1727,  -319
+     891,   -88,  -360,  -360,    52,  -360,   717,   338,   439,    27,
+     620,  -360,  -360,  -360,  -360,  -360,    47,  -360,  1887,  -360,
+    -360,  -360,    71,  2045,   -37,    69,    50,    56,  2125,   237,
+    -360,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  -360,  -360,
+    2125,  2125,  2125,   532,   119,    54,  -360,  -360,  -360,  -360,
+    2125,  -360,  2583,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,    51,  2045,  1923,  2583,    79,  1923,
+      79,  1923,    79,    52,  2009,  2583,    90,   804,  -360,  -360,
+     171,  2125,  -360,   154,  -360,  2164,  -360,   174,  -360,   175,
+     505,   176,  -360,   -11,    52,    52,    -5,    14,   152,  -360,
+    2500,  2164,  -360,   189,  -360,  2197,  2230,  2263,  2296,  2550,
+    2461,   190,   191,  -360,  -360,  2513,   -85,   117,   118,  -360,
+    2583,   120,   123,   124,  -360,  -360,   891,  2583,  2125,  2125,
+    2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,
+    2125,  2125,  2125,  2125,  2125,   197,  2009,   505,  2513,   -48,
+    2125,    48,    65,  -360,    45,    70,  2125,    79,   197,  -360,
+     126,  2583,  2125,  -360,  -360,    52,    17,    84,   131,     9,
+    2125,  2125,  2125,    36,   178,  2125,  2125,  2125,  2125,  2125,
+    2125,  -360,  -360,   128,  2125,  2125,  2125,  2125,  2125,  2125,
+    2125,  2125,  2125,  2125,  -360,  -360,  -360,   129,  -360,  -360,
+    2125,  2125,  2125,  -360,  2125,    85,  -360,   177,   121,   121,
+     121,   121,  2596,  2596,  -360,   -36,   121,   121,   121,   121,
+     -36,   -47,   -47,  -360,  -360,  -360,    18,  -360,  2583,  -360,
+    -360,  -360,  -360,  -360,  2583,    20,   202,  2583,   197,   187,
+      52,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  2125,  2125,
+    2583,  2583,   121,  2125,  2125,   205,  2583,   121,  2583,   121,
+    2583,  2583,   206,  2583,  2329,  2583,  2362,  2583,  2395,  2583,
+    2428,  2583,  2583,  1807,  -360,   207,  2583,  2583,  2583,  2583,
+     133,   117,   118,  -360,  -360,  -360,   209,  2125,  -360,  -360,
+      22,  2125,  -360,  2583,  2098,  -360,  2583,   121,    52,  -360,
+    2125,  2125,  2125,  2125,  -360,  1308,  -360,  1224,  -360,  -360,
+      93,  -360,  -360,  2583,  -360,  -360,  -360,  -360,    37,  2583,
+    2583,  2583,  2583,  -360,  -360,  -360,   153,  -360,   975,  -360,
+    1058,  -360,  -360,  -360,  -360,  1391,  2125,  2125,  -360,    26,
+     214,  1141,  -360,   188,   210,   160,  2583,   121,  -360,  2125,
+    -360,   165,  -360,   155,  -360,  2125,   199,  -360,  1474,  2583,
+    -360,   231,  -360,  2583,  2125,   181,   215,  -360,  -360,  -360,
+    2583,  -360,  -360,  1558,  -360,  -360,  1224,  -360,  -360,  -360,
+    -360,  1641,  -360,  -360,  1724,  -360
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1022,66 +1022,66 @@ static const yytype_int16 yypact[] =
 static const yytype_uint8 yydefact[] =
 {
        0,     0,    61,    66,     0,    62,     0,     0,     0,     0,
-       0,    64,    63,   147,   152,    81,   119,   120,     0,   136,
-      56,   149,     0,     0,     0,     0,     0,     0,     0,     0,
-     124,     0,     0,     0,   122,   156,     0,     0,     0,     0,
-       0,     2,    82,    27,     6,    28,     0,    71,    25,    26,
-     116,   117,     5,    57,    24,    69,    70,    65,    67,    65,
-       0,     0,   167,   127,     0,    73,     0,    75,     0,     0,
-     169,   165,     0,    57,   118,     0,     0,   137,     0,   138,
-     139,   141,     0,    42,     0,   115,     0,    57,     0,     0,
-       0,     0,     0,     0,   151,   129,   144,   146,     0,    96,
-       0,     0,     0,     0,   101,   102,     0,    65,    64,    63,
-     173,   176,     0,   175,   174,   178,     1,     0,    53,     0,
+       0,    64,    63,   148,   153,    82,   120,   121,     0,   137,
+      56,   150,     0,     0,     0,     0,     0,     0,     0,     0,
+     125,     0,     0,     0,     0,     0,     0,     0,   123,   157,
+       0,     0,     0,     0,     0,     2,    83,    27,     6,    28,
+       0,    71,    25,    72,    26,   117,   118,     5,    57,    24,
+      69,    70,    65,    67,    65,     0,     0,   168,   128,     0,
+      74,     0,    76,     0,     0,   170,   166,     0,    57,   119,
+       0,     0,   138,     0,   139,   140,   142,     0,    42,     0,
+     116,     0,    57,     0,     0,     0,     0,     0,     0,   152,
+     130,   145,   147,     0,    97,     0,     0,     0,     0,     0,
+       0,     0,     0,   102,   103,     0,    65,    64,    63,   174,
+     177,     0,   176,   175,   179,     1,     0,    53,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   158,     0,     0,   167,
-       0,     0,     0,     0,    80,    65,     0,     0,   148,   158,
-     130,   121,   143,     0,   140,    57,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   159,     0,     0,   168,     0,
+       0,     0,     0,    81,    65,     0,     0,   149,   159,   131,
+     122,   144,     0,   141,    57,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   145,   134,   125,     0,     0,    47,    47,   132,
-     123,   157,    68,     0,     0,     0,   171,     0,     0,     3,
-       0,    92,    93,    90,    91,    94,    95,    87,    98,    99,
-     100,    89,    88,    97,    83,    84,    85,    86,   159,     0,
-     126,   168,    72,    74,    76,    77,    79,   170,     0,     0,
-     142,   158,     0,     0,     7,     0,     0,     0,     0,   114,
-       8,    10,    11,    12,    13,     0,     0,    53,    17,    15,
-       0,     0,     0,    16,    14,    22,    23,    43,   128,     0,
-     103,   104,     0,    58,     0,   182,   181,   180,   177,     0,
-       0,     0,   179,    58,   164,     0,     0,   164,   131,     0,
-       0,   113,     0,     0,     0,     0,    38,    30,    46,    18,
-      19,     0,   135,    57,     0,   133,     0,    58,   160,     0,
-      58,   164,     9,     0,     0,     0,     0,     0,     0,     0,
-       0,    57,    55,    55,    58,     0,    45,    59,    60,     0,
-      50,     0,    78,     0,    58,   105,     0,   107,     0,   109,
-       0,   111,     0,    39,    31,    35,     0,     0,     0,    44,
-      57,   161,     0,     0,     0,     0,     0,    53,     0,     0,
-       0,    20,    21,    58,     0,    51,     0,   162,   154,   106,
-     108,   110,   112,    40,     0,     0,    29,     0,    53,    48,
-       0,    46,    32,     0,     0,     0,   163,    58,    53,    36,
-      49,    58,     0,    46,    53,     0,    41,    58,    46,    52,
-       0,    58,    33,     0,    37
+       0,   146,   135,   126,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    47,    47,   133,   124,   158,    68,
+       0,     0,     0,   172,     0,     0,     3,     0,    93,    94,
+      91,    92,    95,    96,    88,    99,   100,   101,    90,    89,
+      98,    84,    85,    86,    87,   160,     0,   127,   169,    73,
+      75,    77,    78,    80,   171,     0,     0,   143,   159,     0,
+       0,     7,   115,     8,    10,    11,    12,    13,     0,     0,
+      53,    17,    15,     0,     0,     0,    16,    14,    22,    23,
+      43,   129,     0,   106,     0,   108,     0,   110,     0,   112,
+       0,   104,   105,     0,    58,     0,   183,   182,   181,   178,
+       0,     0,     0,   180,    58,   165,     0,     0,   165,   132,
+       0,     0,   114,    38,    30,    46,    18,    19,     0,   136,
+       0,     0,     0,     0,    57,     0,   134,     0,    58,   161,
+       0,    58,   165,     9,    57,    55,    55,    58,     0,   107,
+     109,   111,   113,    45,    59,    60,     0,    50,     0,    79,
+       0,    58,    39,    31,    35,     0,     0,     0,    44,    57,
+     162,     0,    53,     0,     0,     0,    20,    21,    58,     0,
+      51,     0,   163,   155,    40,     0,     0,    29,     0,    53,
+      48,     0,    46,    32,     0,     0,     0,   164,    58,    53,
+      36,    49,    58,     0,    46,    53,     0,    41,    58,    46,
+      52,     0,    58,    33,     0,    37
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -319,   133,  -319,  -319,    -1,    15,  -319,  -319,  -319,  -319,
-    -319,  -319,  -319,  -319,  -319,  -311,    75,  -319,  -319,  -319,
-    -228,  -318,   -49,  -319,   -59,  -115,     3,    -6,  -319,  -319,
-      32,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,   -19,
-    -319,  -319,  -319,  -319,  -319,  -319,  -319,  -146,  -319,  -262,
-    -319,    36,    -9,  -319,  -319,  -319,  -319,    67
+    -360,   142,  -360,  -360,    -4,    13,  -360,  -360,  -360,  -360,
+    -360,  -360,  -360,  -360,  -360,  -359,    64,  -360,  -360,  -360,
+    -166,  -329,   -44,  -360,   -68,   -28,    10,    -6,  -360,   -14,
+     -61,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,   -21,
+    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -153,  -360,  -279,
+    -360,    32,   -13,  -360,  -360,  -360,  -360,    68
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    40,    41,    42,    43,   308,   302,   338,   368,   303,
-     339,   374,   301,   337,   361,   304,   252,    45,   330,   345,
-     190,   310,   324,    46,   136,   284,    47,    48,   266,   229,
-     230,    49,    75,   102,    98,   151,   180,   174,    50,    81,
-      51,    72,    52,    82,    73,    53,   103,   209,   348,   287,
-      54,   146,    71,    55,   112,   113,   114,   115
+      -1,    44,    45,    46,    47,   325,   315,   343,   369,   316,
+     344,   375,   314,   342,   362,   317,   273,    49,   339,   350,
+     207,   327,   333,    50,   145,   305,    51,    52,   287,    53,
+     243,    54,    80,   111,   103,   160,   197,   183,    55,    86,
+      56,    77,    57,    87,    78,    58,   112,   226,   353,   308,
+      59,   155,    76,    60,   121,   122,   123,   124
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1089,379 +1089,393 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      62,    62,    62,   218,    70,   290,   162,    58,   340,   278,
-      97,   166,    80,   235,   149,    44,   163,    85,   137,   214,
-     215,   167,    95,    96,   125,    99,   100,   101,   161,   314,
-     104,   105,   106,   111,   236,   223,    68,   224,    86,    87,
-     118,   168,    63,    65,    67,    56,   132,   133,   134,   135,
-     367,   169,   210,   141,   138,   139,     1,   379,   139,   137,
-     139,   154,   377,   139,   183,   125,    62,   381,    74,     2,
-     152,   144,     3,     4,    83,   269,     5,   172,   343,   344,
-     264,    57,    11,   265,    12,   225,   226,   227,   228,   134,
-     135,   240,   164,   165,   327,   267,   221,   140,   265,    93,
-     142,   241,   143,   291,   328,    94,   265,   116,   148,   353,
-     212,   141,   117,   191,   192,   193,   194,   195,   196,   197,
-     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-     365,    62,    44,   137,   223,   211,   231,   213,   141,   150,
-     373,   217,   223,   141,   233,   147,   378,   220,   286,   259,
-     260,    38,   261,   153,    39,   237,   238,   239,   155,   222,
-     243,   244,   245,   246,   247,   248,   216,   141,   156,   250,
-     251,   160,   311,   312,   147,   313,   170,   255,   256,   257,
-     125,   258,   173,   126,   225,   226,   227,   228,   179,   326,
-     232,   234,   225,   226,   227,   228,   181,   184,   185,   332,
-     186,   131,   132,   133,   134,   135,   208,    88,    89,    90,
-     242,   263,   187,   188,   219,   249,    91,   254,   268,   272,
-     273,   274,   275,    92,   306,   309,   271,   270,   357,   276,
-     277,   281,   282,   285,   279,   280,   183,   288,   329,   347,
-     354,   359,   323,   355,   360,   356,   363,   366,   370,   371,
-     189,   283,   372,   253,   325,   262,   375,   289,     0,     0,
-      70,     0,   380,     0,   292,     0,   383,     0,     0,     0,
-       0,   346,     0,     0,     0,     0,     0,     0,   -34,     0,
-       0,     0,     0,     0,   305,     0,     0,   315,   316,   317,
-     318,   319,   320,   321,   322,     0,     0,     0,   364,     0,
-       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
-     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
-       0,   341,   342,     0,     0,     0,     0,   349,   350,   351,
-     352,   129,   130,   131,   132,   133,   134,   135,   358,     0,
-       0,  -166,     1,     0,     0,     0,     0,     0,   362,     0,
-       0,     0,     0,     0,     0,     2,     0,   369,     3,     4,
-       0,     0,     5,  -166,     7,     8,     9,    59,    11,     0,
-      12,  -166,  -166,     0,    15,  -166,  -166,  -166,  -166,  -166,
-    -166,  -166,  -166,     0,  -166,     0,  -166,  -166,  -166,     0,
-      60,  -166,    25,  -166,  -166,  -166,  -166,     0,     0,  -166,
-    -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,    31,  -166,
-    -166,  -166,  -166,  -166,  -166,     0,     0,     0,     0,    32,
-    -166,  -166,  -166,  -166,     0,  -166,  -166,  -166,  -166,  -166,
-    -166,    36,    37,  -166,  -166,     0,  -166,    64,  -166,  -166,
-      39,  -166,  -166,     1,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     2,     0,     0,     3,
-       4,     0,     0,     5,  -166,     7,     8,     9,    59,    11,
-       0,    12,  -166,  -166,     0,    15,  -166,  -166,  -166,  -166,
-    -166,  -166,  -166,  -166,     0,  -166,     0,  -166,  -166,  -166,
-       0,    60,  -166,    25,  -166,  -166,  -166,  -166,     0,     0,
-    -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,  -166,    31,
-    -166,  -166,  -166,  -166,  -166,  -166,     0,     0,     0,     0,
-      32,  -166,  -166,  -166,  -166,     0,  -166,  -166,  -166,  -166,
-    -166,  -166,    36,    37,  -166,  -166,     1,  -166,    66,  -166,
-    -166,    39,  -166,     0,     0,     0,     0,     0,     0,     2,
-       0,   157,     3,     4,     0,     0,     5,     0,     7,     8,
-       9,   107,   108,     0,   109,     0,     0,     0,    15,   119,
-     120,   121,   122,   123,   124,     0,   125,   158,   159,   126,
-     127,   128,     0,     0,    60,     0,    25,     0,     0,     0,
-       0,     0,     0,     0,     0,   129,   130,   131,   132,   133,
-     134,   135,    31,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   -65,     1,    36,    37,     0,     0,     0,
-       0,    38,     0,     0,    39,  -172,   110,     2,     0,     0,
-       3,     4,     0,     0,     5,   -65,     7,     8,     9,    59,
-      11,     0,    12,   -65,   -65,     0,    15,     0,   -65,   -65,
-     -65,   -65,   -65,   -65,   -65,     0,     0,     0,     0,   -65,
-       0,     0,    60,   -65,    25,     0,     0,   -65,     0,     0,
-       0,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,   -65,
-      31,   -65,     0,     0,   -65,   -65,   -65,     0,     0,     0,
-       0,    32,     0,     0,   -65,   -65,     0,   -65,   -65,   -65,
-     -65,   -65,   -65,    36,    37,   -65,   -65,     0,   -65,    69,
-    -166,     1,    39,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     2,     0,     0,     3,     4,     0,
-       0,     5,  -166,     7,     8,     9,    59,    11,     0,    12,
-    -166,  -166,     0,    15,     0,  -166,  -166,  -166,  -166,  -166,
-    -166,  -166,     0,     0,     0,     0,  -166,     0,     0,    60,
-    -166,    25,     0,     0,  -166,     0,     0,     0,  -166,  -166,
-    -166,     0,     0,     0,     0,     0,     0,    31,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
-       0,  -166,  -166,     0,  -166,  -166,  -166,  -166,     1,     0,
-      36,    37,     0,     0,     0,  -166,    61,     0,  -166,    39,
-       0,     2,     0,     0,     3,     4,     0,     0,     5,  -166,
-       7,     8,     9,    59,    11,     0,    12,  -166,  -166,     0,
-      15,     0,  -166,  -166,  -166,  -166,  -166,  -166,  -166,     0,
-       0,     0,     0,  -166,     0,     0,    60,  -166,    25,     0,
-       0,  -166,     0,     0,     0,  -166,  -166,  -166,     0,     0,
+      67,    67,    67,   368,    75,   235,   345,    61,   102,   311,
+     158,   146,    85,    48,    63,   378,   200,    90,    91,    92,
+     382,   134,   100,   101,   170,   104,   105,   106,   107,   108,
+     109,   110,   134,   331,   113,   114,   115,   120,    68,    70,
+      72,   240,   171,   241,   127,   143,   144,   380,   175,   227,
+     150,   248,   172,     1,   141,   142,   143,   144,   176,   147,
+     148,   348,   349,   148,   163,   148,     2,   177,   148,     3,
+       4,    67,   249,     5,    73,   161,    98,   178,    62,    11,
+     181,    12,    99,   153,   295,   290,    93,    94,    95,   253,
+     336,    32,    33,    34,    35,    96,   238,    79,   149,   254,
+     337,   151,    97,   152,   173,   174,   245,   247,   240,   157,
+     244,   280,   281,   285,   282,   288,   286,   312,   286,   125,
+     286,    88,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   221,   222,   223,   224,    48,
+      67,   146,   231,   232,   228,   229,   150,   146,    42,   126,
+     234,    43,   242,   242,   242,   240,   237,   246,    32,    33,
+      34,    35,   230,   150,   250,   251,   252,   233,   150,   256,
+     257,   258,   259,   260,   261,   239,   354,   150,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   156,   134,
+     329,   156,   135,   366,   276,   277,   278,   159,   279,   162,
+     164,   165,   169,   374,   179,    32,    33,    34,    35,   379,
+     140,   141,   142,   143,   144,   182,   196,   198,   201,   202,
+     203,   204,   205,   225,   236,   255,   262,   275,   289,   284,
+     291,   298,   299,   306,   200,   309,   323,   326,     1,   338,
+     352,   355,   293,   294,   356,   357,   332,   296,   297,   360,
+     292,     2,   364,   361,     3,     4,   307,   367,     5,   274,
+       7,     8,     9,    64,    11,   371,    12,   372,   206,   304,
+      15,   351,   334,   283,   310,     0,     0,     0,     0,     0,
+     328,    75,    81,   330,    83,   313,    65,     0,    25,   335,
+     365,     0,     0,     0,   319,   320,   321,   322,     0,     0,
+       0,     0,     0,   341,    31,     0,     0,     0,   318,     0,
+       0,    32,    33,    34,    35,    36,     0,     0,     0,     0,
+     358,     0,     0,     0,     0,     0,     0,    40,    41,     0,
+     346,   347,     0,    42,     0,     0,    43,     0,  -167,     1,
+     373,     0,     0,   359,   376,     0,     0,     0,     0,   363,
+     381,     0,     2,     0,   384,     3,     4,     0,   370,     5,
+    -167,     7,     8,     9,    64,    11,     0,    12,  -167,  -167,
+       0,    15,  -167,  -167,  -167,  -167,  -167,  -167,  -167,  -167,
+       0,  -167,     0,  -167,  -167,  -167,     0,    65,  -167,    25,
+    -167,  -167,  -167,  -167,     0,     0,  -167,  -167,  -167,  -167,
+    -167,  -167,  -167,  -167,  -167,    31,  -167,  -167,  -167,  -167,
+    -167,  -167,    32,    33,    34,    35,    36,  -167,  -167,  -167,
+    -167,     0,  -167,  -167,  -167,  -167,  -167,  -167,    40,    41,
+    -167,  -167,     0,  -167,    69,  -167,  -167,    43,  -167,  -167,
+       1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     2,     0,     0,     3,     4,     0,     0,
+       5,  -167,     7,     8,     9,    64,    11,     0,    12,  -167,
+    -167,     0,    15,  -167,  -167,  -167,  -167,  -167,  -167,  -167,
+    -167,     0,  -167,     0,  -167,  -167,  -167,     0,    65,  -167,
+      25,  -167,  -167,  -167,  -167,     0,     0,  -167,  -167,  -167,
+    -167,  -167,  -167,  -167,  -167,  -167,    31,  -167,  -167,  -167,
+    -167,  -167,  -167,    32,    33,    34,    35,    36,  -167,  -167,
+    -167,  -167,     0,  -167,  -167,  -167,  -167,  -167,  -167,    40,
+      41,  -167,  -167,     1,  -167,    71,  -167,  -167,    43,  -167,
+       0,     0,     0,     0,     0,     0,     2,     0,   166,     3,
+       4,     0,     0,     5,     0,     7,     8,     9,   116,   117,
+       0,   118,     0,     0,     0,    15,   128,   129,   130,   131,
+     132,   133,     0,   134,   167,   168,   135,   136,   137,     0,
+       0,    65,     0,    25,     0,     0,     0,     0,     0,     0,
+       0,     0,   138,   139,   140,   141,   142,   143,   144,    31,
+       0,     0,     0,     0,     0,     0,    32,    33,    34,    35,
+      36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     -65,     1,    40,    41,     0,     0,     0,     0,    42,     0,
+       0,    43,  -173,   119,     2,     0,     0,     3,     4,     0,
+       0,     5,   -65,     7,     8,     9,    64,    11,     0,    12,
+     -65,   -65,     0,    15,     0,   -65,   -65,   -65,   -65,   -65,
+     -65,   -65,     0,     0,     0,     0,   -65,     0,     0,    65,
+     -65,    25,     0,     0,   -65,     0,     0,     0,   -65,   -65,
+     -65,   -65,   -65,   -65,   -65,   -65,   -65,    31,   -65,     0,
+       0,   -65,   -65,   -65,    32,    33,    34,    35,    36,     0,
+       0,   -65,   -65,     0,   -65,   -65,   -65,   -65,   -65,   -65,
+      40,    41,   -65,   -65,     0,   -65,    74,  -167,     1,    43,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     2,     0,     0,     3,     4,     0,     0,     5,  -167,
+       7,     8,     9,    64,    11,     0,    12,  -167,  -167,     0,
+      15,     0,  -167,  -167,  -167,  -167,  -167,  -167,  -167,     0,
+       0,     0,     0,  -167,     0,     0,    65,  -167,    25,     0,
+       0,  -167,     0,     0,     0,  -167,  -167,  -167,     0,     0,
        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,  -166,  -166,
-       0,  -166,  -166,  -166,    -4,     1,     0,    36,    37,     0,
-       0,     0,  -166,    38,     0,  -166,    39,     0,     2,     0,
-       0,     3,     4,     0,     0,     5,     6,     7,     8,     9,
-      10,    11,     0,    12,     0,    13,    14,    15,     0,     0,
-       0,    16,    17,    18,    19,    20,     0,     0,    21,     0,
-      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
-       0,    27,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    32,     0,     0,    33,    34,    35,  -155,     1,
-       0,     0,     0,     0,    36,    37,     0,     0,     0,    -4,
-      38,     0,     2,    39,     0,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,   331,    13,
+       0,    32,    33,    34,    35,    36,     0,     0,  -167,  -167,
+       0,  -167,  -167,  -167,  -167,     1,     0,    40,    41,     0,
+       0,     0,  -167,    66,     0,  -167,    43,     0,     2,     0,
+       0,     3,     4,     0,     0,     5,  -167,     7,     8,     9,
+      64,    11,     0,    12,  -167,  -167,     0,    15,     0,  -167,
+    -167,  -167,  -167,  -167,  -167,  -167,     0,     0,     0,     0,
+    -167,     0,     0,    65,  -167,    25,     0,     0,  -167,     0,
+       0,     0,  -167,  -167,  -167,     0,     0,     0,     0,     0,
+       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
+      34,    35,    36,     0,     0,  -167,  -167,     0,  -167,  -167,
+    -167,    -4,     1,     0,    40,    41,     0,     0,     0,  -167,
+      42,     0,  -167,    43,     0,     2,     0,     0,     3,     4,
+       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
+      12,     0,    13,    14,    15,     0,     0,     0,    16,    17,
+      18,    19,    20,     0,     0,    21,     0,    22,     0,     0,
+      23,    24,    25,     0,     0,    26,     0,     0,    27,    28,
+      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
+       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
+       0,     0,    37,    38,    39,  -156,     1,     0,     0,     0,
+       0,    40,    41,     0,     0,     0,    -4,    42,     0,     2,
+      43,     0,     3,     4,     0,     0,     5,     6,     7,     8,
+       9,    10,    11,     0,    12,   340,    13,     0,    15,     0,
+       0,     0,    16,    17,    18,    19,    20,     0,     0,     0,
+       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
+       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
+       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
+      33,    34,    35,    36,     0,     0,    37,    38,  -154,     1,
+       0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
+     324,    42,     2,     0,    43,     3,     4,     0,     0,     5,
+       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
        0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
        0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
        0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
        0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    32,     0,     0,    33,
-      34,  -153,     1,     0,     0,     0,     0,     0,    36,    37,
-       0,     0,     0,   307,    38,     2,     0,    39,     3,     4,
+       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
+      38,  -151,     1,     0,     0,     0,     0,     0,    40,    41,
+       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
        0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
       12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
       18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
       23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
       29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
-       0,     0,    33,    34,  -150,     1,     0,     0,     0,     0,
-       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
-      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
-      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
-       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
+       0,     0,    37,    38,     0,     1,     0,     0,     0,     0,
+       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
+      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,     0,   -54,
+     -54,    16,    17,    18,    19,    20,     0,     0,     0,     0,
       22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    32,     0,     0,    33,    34,     0,     1,     0,
-       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
-      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
-       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
-      15,     0,   -54,   -54,    16,    17,    18,    19,    20,     0,
-       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
-       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
-       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
-       0,   -54,     1,     0,     0,     0,     0,    36,    37,     0,
-       0,     0,   307,    38,     0,     2,    39,     0,     3,     4,
+       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
+      34,    35,    36,     0,     0,    37,    38,     0,   -54,     1,
+       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
+      42,     0,     2,    43,     0,     3,     4,     0,     0,     5,
+       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
+       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
+       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
+       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
+       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
+       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
+      38,     0,     1,     0,   -57,     0,     0,     0,    40,    41,
+       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
        0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
       12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
       18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
       23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
       29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
-       0,     0,    33,    34,     0,     1,     0,   -57,     0,     0,
-       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
-      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
+       0,     0,    37,    38,     0,     1,   -54,     0,     0,     0,
+       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
+      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
       10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
        0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
       22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    32,     0,     0,    33,    34,     0,     1,   -54,
-       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
-      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
-       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
-      15,     0,     0,     0,    16,    17,    18,    19,    20,     0,
-       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
-       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
-       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
-       0,   -57,     1,     0,     0,     0,     0,    36,    37,     0,
-       0,     0,   307,    38,     0,     2,    39,     0,     3,     4,
+       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
+      34,    35,    36,     0,     0,    37,    38,     0,   -57,     1,
+       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
+      42,     0,     2,    43,     0,     3,     4,     0,     0,     5,
+       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
+       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
+       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
+       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
+       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
+       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
+      38,     0,     1,   377,     0,     0,     0,     0,    40,    41,
+       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
        0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
       12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
       18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
       23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
       29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    32,
-       0,     0,    33,    34,     0,     1,   376,     0,     0,     0,
-       0,    36,    37,     0,     0,     0,   307,    38,     2,     0,
-      39,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
+       0,     0,    37,    38,     0,     1,   383,     0,     0,     0,
+       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
+      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
       10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
        0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
       22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
        0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    32,     0,     0,    33,    34,     0,     1,   382,
-       0,     0,     0,     0,    36,    37,     0,     0,     0,   307,
-      38,     2,     0,    39,     3,     4,     0,     0,     5,     6,
+       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
+      34,    35,    36,     0,     0,    37,    38,     0,     1,   385,
+       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
+      42,     2,     0,    43,     3,     4,     0,     0,     5,     6,
        7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
-      15,     0,     0,     0,    16,    17,    18,    19,    20,     0,
-       0,     0,     0,    22,     0,     0,    23,    24,    25,     0,
-       0,    26,     0,     0,     0,    28,    29,    30,     0,     0,
+      15,     0,     0,     0,    16,    17,    18,    19,     0,     0,
+       0,     0,     0,     0,     0,     0,    23,     0,    25,     0,
+       0,     0,     0,     0,     0,    28,    29,    30,     0,     0,
        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,    33,    34,
-       0,     1,   384,     0,     0,     0,     0,    36,    37,     0,
-       0,     0,   307,    38,     2,     0,    39,     3,     4,     0,
-       0,     5,     6,     7,     8,     9,    10,    11,     0,    12,
-       0,    13,     0,    15,     0,   177,     0,    16,    17,    18,
-      19,     0,     0,   119,   120,   121,   122,   123,   124,    23,
-     125,    25,     0,   126,   127,   128,     0,     0,    28,    29,
-      30,     0,     0,     0,     0,     0,     0,    31,     0,   129,
-     130,   131,   132,   133,   134,   135,     0,   178,    32,     0,
-       0,     1,    34,     0,     0,     0,     0,     0,     0,     0,
-      36,    37,     0,     0,     2,     0,    38,     3,     4,    39,
-       0,     5,     0,     7,     8,     9,    59,    11,     0,    12,
-       0,     0,     0,    15,     0,     0,     0,     1,     0,     0,
-       0,     0,     0,     0,     0,    76,    77,    78,    79,    60,
-       2,    25,     0,     3,     4,     0,     0,     5,     0,     7,
-       8,     9,    59,    11,     0,    12,     0,    31,     0,    15,
-       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
-       0,    76,     0,    78,     0,    60,     0,    25,     0,     0,
-      36,    37,     0,     1,     0,     0,    38,     0,     0,    39,
-       0,     0,     0,    31,     0,     0,     2,     0,     0,     3,
-       4,     0,     0,     5,    32,     7,     8,     9,    59,    11,
-       0,    12,     0,     0,     0,    15,    36,    37,     0,     1,
-       0,     0,    38,     0,     0,    39,     0,     0,     0,     0,
-       0,    60,     2,    25,     0,     3,     4,     0,     0,     5,
-       0,     7,     8,     9,   145,    11,     0,    12,     0,    31,
-       0,    15,     0,     0,     0,     0,     0,     0,     0,     0,
-      32,     0,     0,     0,     0,     0,     0,    60,     0,    25,
-       0,     0,    36,    37,     0,     1,     0,     0,    38,  -166,
-    -166,    39,     0,     0,     0,    31,     0,     0,     2,     0,
-       0,     3,     4,     0,    84,     5,    32,     7,     8,     9,
-      59,    11,     0,    12,     0,     0,     0,    15,    36,    37,
-       0,     1,     0,     0,    38,  -166,  -166,    39,     0,     0,
-       0,     0,     0,    60,     2,    25,     0,     3,     4,     0,
-       0,     5,     0,     7,     8,     9,    59,    11,     0,    12,
-       0,    31,     0,    15,     0,     0,     0,     0,     0,     0,
-       0,     0,    32,     0,     0,     0,     0,     0,     0,    60,
-       0,    25,     0,     0,    36,    37,     0,     0,     0,     0,
-      38,     0,     0,    39,     0,     0,    76,    31,    78,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    32,     0,
-       0,     0,   119,   120,   121,   122,   123,   124,     0,   125,
-      36,    37,   126,   127,   128,     0,    38,     0,     0,    39,
-       0,   293,     0,     0,     0,     0,     0,   294,   129,   130,
-     131,   132,   133,   134,   135,   119,   120,   121,   122,   123,
-     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
-       0,     0,     0,     0,   295,     0,     0,     0,     0,     0,
-     296,   129,   130,   131,   132,   133,   134,   135,   119,   120,
-     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
-     128,     0,     0,     0,     0,     0,     0,   297,     0,     0,
-       0,     0,     0,   298,   129,   130,   131,   132,   133,   134,
-     135,   119,   120,   121,   122,   123,   124,     0,   125,     0,
-       0,   126,   127,   128,     0,     0,     0,     0,     0,     0,
-     299,     0,     0,     0,     0,     0,   300,   129,   130,   131,
-     132,   133,   134,   135,   119,   120,   121,   122,   123,   124,
-       0,   125,     0,     0,   126,   127,   128,     0,     0,     0,
-       0,     0,     0,   333,     0,     0,     0,     0,     0,     0,
-     129,   130,   131,   132,   133,   134,   135,   119,   120,   121,
-     122,   123,   124,     0,   125,     0,     0,   126,   127,   128,
-       0,     0,     0,     0,     0,     0,   334,     0,     0,     0,
-       0,     0,     0,   129,   130,   131,   132,   133,   134,   135,
-     119,   120,   121,   122,   123,   124,     0,   125,     0,     0,
-     126,   127,   128,     0,     0,     0,     0,     0,     0,   335,
-       0,     0,     0,     0,     0,     0,   129,   130,   131,   132,
-     133,   134,   135,   119,   120,   121,   122,   123,   124,     0,
-     125,     0,     0,   126,   127,   128,     0,     0,     0,     0,
-       0,     0,   336,     0,     0,     0,     0,     0,     0,   129,
-     130,   131,   132,   133,   134,   135,   119,   120,   121,   122,
-     123,   124,     0,   125,     0,     0,   126,   127,   128,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   129,   130,   131,   132,   133,   134,   135,   171,
-       0,     0,     0,     0,     0,   119,   120,   121,   122,   123,
-     124,     0,   125,     0,     0,   126,   127,   128,   119,   120,
-     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,     0,     0,
-       0,     0,     0,     0,   129,   130,   131,   132,   133,   134,
-     135,     0,     0,     0,   182,   119,   120,   121,   122,   123,
-     124,     0,   125,     0,     0,   126,   127,   128,     0,     0,
-       0,     0,     0,   175,   176,     0,     0,     0,     0,     0,
-       0,   129,   130,   131,   132,   133,   134,   135,   119,   120,
-     121,   122,   123,   124,     0,   125,     0,     0,   126,   127,
-     128,   119,   120,   121,   122,     0,     0,     0,   125,     0,
-       0,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,     0,     0,     0,     0,     0,     0,   129,   130,   131,
-     132,   133,   134,   135
+       0,    32,    33,    34,    35,    36,     0,     0,     1,    38,
+       0,     0,     0,     0,     0,     0,     0,    40,    41,     0,
+       0,     2,     0,    42,     3,     4,    43,     0,     5,     0,
+       7,     8,     9,    64,    11,     0,    12,     0,     0,     0,
+      15,     0,     0,     0,     1,     0,     0,     0,     0,     0,
+       0,     0,    81,    82,    83,    84,    65,     2,    25,     0,
+       3,     4,     0,     0,     5,     0,     7,     8,     9,    64,
+      11,     0,    12,     0,    31,     0,    15,     0,     0,     0,
+       0,    32,    33,    34,    35,    36,     0,     0,     0,     0,
+       0,     0,    65,     0,    25,     0,     0,    40,    41,     0,
+       0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
+      31,     0,     0,     0,     0,     0,     0,    32,    33,    34,
+      35,    36,     0,     0,     0,     0,     0,     0,     0,     0,
+       1,     0,     0,    40,    41,     0,     0,     0,     0,    42,
+    -167,  -167,    43,     2,     0,     0,     3,     4,     0,     0,
+       5,     0,     7,     8,     9,   154,    11,     0,    12,     0,
+       0,     0,    15,     0,     0,     0,     1,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    65,     2,
+      25,     0,     3,     4,     0,    89,     5,     0,     7,     8,
+       9,    64,    11,     0,    12,     0,    31,     0,    15,     0,
+       0,     0,     0,    32,    33,    34,    35,    36,     0,     0,
+       0,     0,     0,     0,    65,     0,    25,     0,     0,    40,
+      41,     0,     0,     0,     0,    42,  -167,  -167,    43,     0,
+       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
+      33,    34,    35,    36,     0,     0,     1,     0,     0,     0,
+       0,     0,   -34,     0,     0,    40,    41,     0,     0,     2,
+       0,    42,     3,     4,    43,     0,     5,     0,     7,     8,
+       9,    64,    11,     0,    12,     0,     0,     0,    15,   128,
+     129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
+     136,   137,     0,     0,    65,     0,    25,     0,     0,     0,
+       0,     0,     0,     0,     0,   138,   139,   140,   141,   142,
+     143,   144,    31,     0,     0,     0,     0,     0,     0,    32,
+      33,    34,    35,    36,     0,     0,     0,     0,     0,    81,
+       0,    83,     0,     0,     0,    40,    41,     0,     0,     0,
+       0,    42,     0,     0,    43,   128,   129,   130,   131,   132,
+     133,     0,   134,     0,     0,   135,   136,   137,     0,     0,
+       0,     0,     0,     0,   184,     0,     0,     0,     0,     0,
+     185,   138,   139,   140,   141,   142,   143,   144,   128,   129,
+     130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
+     137,     0,     0,     0,     0,     0,     0,   186,     0,     0,
+       0,     0,     0,   187,   138,   139,   140,   141,   142,   143,
+     144,   128,   129,   130,   131,   132,   133,     0,   134,     0,
+       0,   135,   136,   137,     0,     0,     0,     0,     0,     0,
+     188,     0,     0,     0,     0,     0,   189,   138,   139,   140,
+     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
+       0,     0,     0,   190,     0,     0,     0,     0,     0,   191,
+     138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
+     131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
+       0,     0,     0,     0,     0,     0,   300,     0,     0,     0,
+       0,     0,     0,   138,   139,   140,   141,   142,   143,   144,
+     128,   129,   130,   131,   132,   133,     0,   134,     0,     0,
+     135,   136,   137,     0,     0,     0,     0,     0,     0,   301,
+       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
+     142,   143,   144,   128,   129,   130,   131,   132,   133,     0,
+     134,     0,     0,   135,   136,   137,     0,     0,     0,     0,
+       0,     0,   302,     0,     0,     0,     0,     0,     0,   138,
+     139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
+     132,   133,     0,   134,     0,     0,   135,   136,   137,     0,
+       0,     0,     0,     0,     0,   303,     0,     0,     0,     0,
+       0,     0,   138,   139,   140,   141,   142,   143,   144,   128,
+     129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
+     136,   137,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   194,   138,   139,   140,   141,   142,
+     143,   144,   128,   129,   130,   131,   132,   133,     0,   134,
+       0,     0,   135,   136,   137,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   138,   139,
+     140,   141,   142,   143,   144,   180,   195,     0,     0,     0,
+       0,   128,   129,   130,   131,   132,   133,     0,   134,     0,
+       0,   135,   136,   137,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,     0,     0,     0,     0,     0,     0,
+     138,   139,   140,   141,   142,   143,   144,     0,     0,     0,
+     199,   128,   129,   130,   131,   132,   133,     0,   134,     0,
+       0,   135,   136,   137,     0,     0,     0,     0,     0,   192,
+     193,     0,     0,     0,     0,     0,     0,   138,   139,   140,
+     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,   128,   129,   130,
+     131,     0,     0,     0,   134,     0,     0,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,     0,     0,     0,
+       0,     0,     0,   138,   139,   140,   141,   142,   143,   144
 };
 
 static const yytype_int16 yycheck[] =
 {
-       6,     7,     8,   149,    10,   267,    53,     4,   326,   237,
-      29,    53,    18,    42,    73,     0,    63,    23,    96,    97,
-      98,    63,    28,    29,    68,    31,    32,    33,    87,   291,
-      36,    37,    38,    39,    63,    24,    47,    26,    55,    56,
-      46,    53,     6,     7,     8,    95,    90,    91,    92,    93,
-     361,    63,    97,    98,    60,    61,     1,   375,    64,    96,
-      66,    80,   373,    69,   101,    68,    72,   378,    50,    14,
-      76,    68,    17,    18,    50,   221,    21,    96,    35,    36,
-      95,    26,    27,    98,    29,    74,    75,    76,    77,    92,
-      93,    53,    89,    90,    53,    95,   155,    61,    98,    26,
-      64,    63,    66,    95,    63,    26,    98,     0,    72,   337,
-      97,    98,    95,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     358,   137,   117,    96,    24,   141,    26,    97,    98,    26,
-     368,   147,    24,    98,    26,    98,   374,   153,   263,    26,
-      27,    96,    29,    45,    99,   161,   162,   163,    26,   156,
-     166,   167,   168,   169,   170,   171,    97,    98,    26,   175,
-     176,    26,   287,    97,    98,   290,    52,   183,   184,   185,
-      68,   187,    26,    71,    74,    75,    76,    77,    26,   304,
-     158,   159,    74,    75,    76,    77,    26,   101,   101,   314,
-     100,    89,    90,    91,    92,    93,    26,    17,    18,    19,
-      47,    52,    98,    98,    98,    98,    26,    98,    26,   225,
-     226,   227,   228,    33,   283,   284,   223,    43,   343,   235,
-     236,    26,    26,    26,   240,   241,   101,    26,    86,    26,
-      53,    84,   301,    34,    98,    85,    53,    26,    84,    52,
-     117,   252,   367,   178,   303,   188,   371,   266,    -1,    -1,
-     266,    -1,   377,    -1,   270,    -1,   381,    -1,    -1,    -1,
-      -1,   330,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
-      -1,    -1,    -1,    -1,   281,    -1,    -1,   293,   294,   295,
-     296,   297,   298,   299,   300,    -1,    -1,    -1,   357,    -1,
-      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
-      66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
-      -1,   327,   328,    -1,    -1,    -1,    -1,   333,   334,   335,
-     336,    87,    88,    89,    90,    91,    92,    93,   344,    -1,
-      -1,     0,     1,    -1,    -1,    -1,    -1,    -1,   354,    -1,
-      -1,    -1,    -1,    -1,    -1,    14,    -1,   363,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    -1,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    -1,    43,    -1,    45,    46,    47,    -1,
-      49,    50,    51,    52,    53,    54,    55,    -1,    -1,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,    78,
-      79,    80,    81,    82,    -1,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    -1,    95,    96,    97,    98,
-      99,   100,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    30,    31,    -1,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    -1,    43,    -1,    45,    46,    47,
-      -1,    49,    50,    51,    52,    53,    54,    55,    -1,    -1,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    -1,    -1,    -1,    -1,
-      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,     1,    95,    96,    97,
-      98,    99,   100,    -1,    -1,    -1,    -1,    -1,    -1,    14,
-      -1,    43,    17,    18,    -1,    -1,    21,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,    61,
-      62,    63,    64,    65,    66,    -1,    68,    69,    70,    71,
-      72,    73,    -1,    -1,    49,    -1,    51,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,
-      92,    93,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,     0,     1,    90,    91,    -1,    -1,    -1,
-      -1,    96,    -1,    -1,    99,   100,   101,    14,    -1,    -1,
-      17,    18,    -1,    -1,    21,    22,    23,    24,    25,    26,
-      27,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
-      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
-      -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
-      -1,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
-      -1,    78,    -1,    -1,    81,    82,    -1,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    -1,    95,    96,
-       0,     1,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    14,    -1,    -1,    17,    18,    -1,
+       6,     7,     8,   362,    10,   158,   335,    95,    29,   288,
+      78,    96,    18,     0,     4,   374,   101,    23,    55,    56,
+     379,    68,    28,    29,    92,    31,    32,    33,    34,    35,
+      36,    37,    68,   312,    40,    41,    42,    43,     6,     7,
+       8,    24,    53,    26,    50,    92,    93,   376,    53,    97,
+      98,    42,    63,     1,    90,    91,    92,    93,    63,    65,
+      66,    35,    36,    69,    85,    71,    14,    53,    74,    17,
+      18,    77,    63,    21,    47,    81,    26,    63,    26,    27,
+     101,    29,    26,    73,   250,   238,    17,    18,    19,    53,
+      53,    74,    75,    76,    77,    26,   164,    50,    66,    63,
+      63,    69,    33,    71,    94,    95,   167,   168,    24,    77,
+      26,    26,    27,    95,    29,    95,    98,    95,    98,     0,
+      98,    50,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   126,
+     146,    96,    97,    98,   150,    97,    98,    96,    96,    95,
+     156,    99,   166,   167,   168,    24,   162,    26,    74,    75,
+      76,    77,    97,    98,   170,   171,   172,    97,    98,   175,
+     176,   177,   178,   179,   180,   165,   342,    98,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,    98,    68,
+      97,    98,    71,   359,   200,   201,   202,    26,   204,    45,
+      26,    26,    26,   369,    52,    74,    75,    76,    77,   375,
+      89,    90,    91,    92,    93,    26,    26,    26,   101,   101,
+     100,    98,    98,    26,    98,    47,    98,    98,    26,    52,
+      43,    26,    26,    26,   101,    26,   304,   305,     1,    86,
+      26,    53,   248,   249,    34,    85,   314,   253,   254,    84,
+     240,    14,    53,    98,    17,    18,   284,    26,    21,   195,
+      23,    24,    25,    26,    27,    84,    29,    52,   126,   273,
+      33,   339,   316,   205,   287,    -1,    -1,    -1,    -1,    -1,
+     308,   287,    45,   311,    47,   291,    49,    -1,    51,   317,
+     358,    -1,    -1,    -1,   300,   301,   302,   303,    -1,    -1,
+      -1,    -1,    -1,   331,    67,    -1,    -1,    -1,   298,    -1,
+      -1,    74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,
+     348,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
+     336,   337,    -1,    96,    -1,    -1,    99,    -1,     0,     1,
+     368,    -1,    -1,   349,   372,    -1,    -1,    -1,    -1,   355,
+     378,    -1,    14,    -1,   382,    17,    18,    -1,   364,    21,
+      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
+      -1,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      -1,    43,    -1,    45,    46,    47,    -1,    49,    50,    51,
+      52,    53,    54,    55,    -1,    -1,    58,    59,    60,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    -1,    95,    96,    97,    98,    99,   100,     0,
+       1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    14,    -1,    -1,    17,    18,    -1,    -1,
+      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
+      31,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    -1,    43,    -1,    45,    46,    47,    -1,    49,    50,
+      51,    52,    53,    54,    55,    -1,    -1,    58,    59,    60,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,     1,    95,    96,    97,    98,    99,   100,
+      -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,    43,    17,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      -1,    29,    -1,    -1,    -1,    33,    61,    62,    63,    64,
+      65,    66,    -1,    68,    69,    70,    71,    72,    73,    -1,
+      -1,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    87,    88,    89,    90,    91,    92,    93,    67,
+      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
+      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       0,     1,    90,    91,    -1,    -1,    -1,    -1,    96,    -1,
+      -1,    99,   100,   101,    14,    -1,    -1,    17,    18,    -1,
       -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
       30,    31,    -1,    33,    -1,    35,    36,    37,    38,    39,
       40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,
       50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
-      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
-      -1,    81,    82,    -1,    84,    85,    86,     0,     1,    -1,
-      90,    91,    -1,    -1,    -1,    95,    96,    -1,    98,    99,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
+      -1,    71,    72,    73,    74,    75,    76,    77,    78,    -1,
+      -1,    81,    82,    -1,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    -1,    95,    96,     0,     1,    99,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,
       23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
       33,    -1,    35,    36,    37,    38,    39,    40,    41,    -1,
       -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
       -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
+      -1,    74,    75,    76,    77,    78,    -1,    -1,    81,    82,
       -1,    84,    85,    86,     0,     1,    -1,    90,    91,    -1,
       -1,    -1,    95,    96,    -1,    98,    99,    -1,    14,    -1,
       -1,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    31,    32,    33,    -1,    -1,
-      -1,    37,    38,    39,    40,    41,    -1,    -1,    44,    -1,
+      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    35,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
       46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    57,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,    81,    82,    83,     0,     1,
-      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
+      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
+      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,    85,
+      86,     0,     1,    -1,    90,    91,    -1,    -1,    -1,    95,
+      96,    -1,    98,    99,    -1,    14,    -1,    -1,    17,    18,
+      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    31,    32,    33,    -1,    -1,    -1,    37,    38,
+      39,    40,    41,    -1,    -1,    44,    -1,    46,    -1,    -1,
+      49,    50,    51,    -1,    -1,    54,    -1,    -1,    57,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
+      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
+      -1,    -1,    81,    82,    83,     0,     1,    -1,    -1,    -1,
+      -1,    90,    91,    -1,    -1,    -1,    95,    96,    -1,    14,
+      99,    -1,    17,    18,    -1,    -1,    21,    22,    23,    24,
+      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1,
+      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,
+      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
+      -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
+      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
+      75,    76,    77,    78,    -1,    -1,    81,    82,     0,     1,
+      -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
+      95,    96,    14,    -1,    99,    17,    18,    -1,    -1,    21,
+      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
       -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
       -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
       -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,
+      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
       82,     0,     1,    -1,    -1,    -1,    -1,    -1,    90,    91,
       -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
       -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
@@ -1469,57 +1483,57 @@ static const yytype_int16 yycheck[] =
       39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
       49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
       59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
-      -1,    -1,    81,    82,     0,     1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
+      -1,    -1,    81,    82,    -1,     1,    -1,    -1,    -1,    -1,
       -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
       99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
-      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    35,
+      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
       46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
       -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    -1,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
+      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,     1,
       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-      33,    -1,    35,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
-      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
-      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
-      -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,    -1,
-      -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,    18,
+      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
+      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
+      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
+      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
+      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
+      82,    -1,     1,    -1,    86,    -1,    -1,    -1,    90,    91,
+      -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
       -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
       29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
       39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
       49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
       59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
-      -1,    -1,    81,    82,    -1,     1,    -1,    86,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
+      -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,    -1,
       -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
       99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
       26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
       -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
       46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
       -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    85,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
+      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,     1,
       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-      33,    -1,    -1,    -1,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
-      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
-      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
-      -1,    84,     1,    -1,    -1,    -1,    -1,    90,    91,    -1,
-      -1,    -1,    95,    96,    -1,    14,    99,    -1,    17,    18,
+      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
+      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
+      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
+      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
+      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
+      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
+      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
+      82,    -1,     1,    85,    -1,    -1,    -1,    -1,    90,    91,
+      -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
       -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
       29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
       39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
       49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
       59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,
+      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
       -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,    -1,
       -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
       99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
@@ -1527,58 +1541,50 @@ static const yytype_int16 yycheck[] =
       -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
       46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
       -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,    81,    82,    -1,     1,    85,
+      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
+      76,    77,    78,    -1,    -1,    81,    82,    -1,     1,    85,
       -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
       96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
       23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-      33,    -1,    -1,    -1,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
-      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      33,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    51,    -1,
+      -1,    -1,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    81,    82,
-      -1,     1,    85,    -1,    -1,    -1,    -1,    90,    91,    -1,
-      -1,    -1,    95,    96,    14,    -1,    99,    17,    18,    -1,
-      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
-      -1,    31,    -1,    33,    -1,    53,    -1,    37,    38,    39,
-      40,    -1,    -1,    61,    62,    63,    64,    65,    66,    49,
-      68,    51,    -1,    71,    72,    73,    -1,    -1,    58,    59,
-      60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    87,
-      88,    89,    90,    91,    92,    93,    -1,    95,    78,    -1,
-      -1,     1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      90,    91,    -1,    -1,    14,    -1,    96,    17,    18,    99,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      -1,    -1,    -1,    33,    -1,    -1,    -1,     1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    45,    46,    47,    48,    49,
-      14,    51,    -1,    17,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    -1,    29,    -1,    67,    -1,    33,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
-      -1,    45,    -1,    47,    -1,    49,    -1,    51,    -1,    -1,
-      90,    91,    -1,     1,    -1,    -1,    96,    -1,    -1,    99,
-      -1,    -1,    -1,    67,    -1,    -1,    14,    -1,    -1,    17,
-      18,    -1,    -1,    21,    78,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    -1,    -1,    33,    90,    91,    -1,     1,
-      -1,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
-      -1,    49,    14,    51,    -1,    17,    18,    -1,    -1,    21,
-      -1,    23,    24,    25,    26,    27,    -1,    29,    -1,    67,
-      -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      78,    -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    51,
-      -1,    -1,    90,    91,    -1,     1,    -1,    -1,    96,    97,
-      98,    99,    -1,    -1,    -1,    67,    -1,    -1,    14,    -1,
-      -1,    17,    18,    -1,    20,    21,    78,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    -1,    -1,    33,    90,    91,
-      -1,     1,    -1,    -1,    96,    97,    98,    99,    -1,    -1,
-      -1,    -1,    -1,    49,    14,    51,    -1,    17,    18,    -1,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      -1,    67,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    78,    -1,    -1,    -1,    -1,    -1,    -1,    49,
-      -1,    51,    -1,    -1,    90,    91,    -1,    -1,    -1,    -1,
-      96,    -1,    -1,    99,    -1,    -1,    45,    67,    47,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    -1,
-      -1,    -1,    61,    62,    63,    64,    65,    66,    -1,    68,
-      90,    91,    71,    72,    73,    -1,    96,    -1,    -1,    99,
-      -1,    47,    -1,    -1,    -1,    -1,    -1,    53,    87,    88,
-      89,    90,    91,    92,    93,    61,    62,    63,    64,    65,
+      -1,    74,    75,    76,    77,    78,    -1,    -1,     1,    82,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
+      -1,    14,    -1,    96,    17,    18,    99,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    -1,    29,    -1,    -1,    -1,
+      33,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    45,    46,    47,    48,    49,    14,    51,    -1,
+      17,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    -1,    29,    -1,    67,    -1,    33,    -1,    -1,    -1,
+      -1,    74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,
+      -1,    -1,    49,    -1,    51,    -1,    -1,    90,    91,    -1,
+      -1,    -1,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,
+      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,
+      77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+       1,    -1,    -1,    90,    91,    -1,    -1,    -1,    -1,    96,
+      97,    98,    99,    14,    -1,    -1,    17,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    -1,    29,    -1,
+      -1,    -1,    33,    -1,    -1,    -1,     1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    14,
+      51,    -1,    17,    18,    -1,    20,    21,    -1,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    67,    -1,    33,    -1,
+      -1,    -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,
+      -1,    -1,    -1,    -1,    49,    -1,    51,    -1,    -1,    90,
+      91,    -1,    -1,    -1,    -1,    96,    97,    98,    99,    -1,
+      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
+      75,    76,    77,    78,    -1,    -1,     1,    -1,    -1,    -1,
+      -1,    -1,    34,    -1,    -1,    90,    91,    -1,    -1,    14,
+      -1,    96,    17,    18,    99,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,    61,
+      62,    63,    64,    65,    66,    -1,    68,    -1,    -1,    71,
+      72,    73,    -1,    -1,    49,    -1,    51,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,
+      92,    93,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
+      75,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    45,
+      -1,    47,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
+      -1,    96,    -1,    -1,    99,    61,    62,    63,    64,    65,
       66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
       -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
       53,    87,    88,    89,    90,    91,    92,    93,    61,    62,
@@ -1590,7 +1596,7 @@ static const yytype_int16 yycheck[] =
       47,    -1,    -1,    -1,    -1,    -1,    53,    87,    88,    89,
       90,    91,    92,    93,    61,    62,    63,    64,    65,    66,
       -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
-      -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    53,
       87,    88,    89,    90,    91,    92,    93,    61,    62,    63,
       64,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
       -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,
@@ -1603,22 +1609,28 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    87,
       88,    89,    90,    91,    92,    93,    61,    62,    63,    64,
       65,    66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    87,    88,    89,    90,    91,    92,    93,    55,
-      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
-      66,    -1,    68,    -1,    -1,    71,    72,    73,    61,    62,
-      63,    64,    65,    66,    -1,    68,    -1,    -1,    71,    72,
-      73,    87,    88,    89,    90,    91,    92,    93,    -1,    -1,
-      -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,    92,
-      93,    -1,    -1,    -1,    97,    61,    62,    63,    64,    65,
-      66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
-      -1,    -1,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
-      -1,    87,    88,    89,    90,    91,    92,    93,    61,    62,
-      63,    64,    65,    66,    -1,    68,    -1,    -1,    71,    72,
-      73,    61,    62,    63,    64,    -1,    -1,    -1,    68,    -1,
-      -1,    71,    72,    73,    87,    88,    89,    90,    91,    92,
-      93,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
-      90,    91,    92,    93
+      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
+      -1,    -1,    87,    88,    89,    90,    91,    92,    93,    61,
+      62,    63,    64,    65,    66,    -1,    68,    -1,    -1,    71,
+      72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    53,    87,    88,    89,    90,    91,
+      92,    93,    61,    62,    63,    64,    65,    66,    -1,    68,
+      -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,
+      89,    90,    91,    92,    93,    55,    95,    -1,    -1,    -1,
+      -1,    61,    62,    63,    64,    65,    66,    -1,    68,    -1,
+      -1,    71,    72,    73,    61,    62,    63,    64,    65,    66,
+      -1,    68,    -1,    -1,    71,    72,    73,    87,    88,    89,
+      90,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
+      87,    88,    89,    90,    91,    92,    93,    -1,    -1,    -1,
+      97,    61,    62,    63,    64,    65,    66,    -1,    68,    -1,
+      -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
+      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
+      90,    91,    92,    93,    61,    62,    63,    64,    65,    66,
+      -1,    68,    -1,    -1,    71,    72,    73,    61,    62,    63,
+      64,    -1,    -1,    -1,    68,    -1,    -1,    71,    72,    73,
+      87,    88,    89,    90,    91,    92,    93,    -1,    -1,    -1,
+      -1,    -1,    -1,    87,    88,    89,    90,    91,    92,    93
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1628,42 +1640,42 @@ static const yytype_uint8 yystos[] =
        0,     1,    14,    17,    18,    21,    22,    23,    24,    25,
       26,    27,    29,    31,    32,    33,    37,    38,    39,    40,
       41,    44,    46,    49,    50,    51,    54,    57,    58,    59,
-      60,    67,    78,    81,    82,    83,    90,    91,    96,    99,
-     103,   104,   105,   106,   107,   119,   125,   128,   129,   133,
-     140,   142,   144,   147,   152,   155,    95,    26,   128,    26,
-      49,    96,   129,   153,    96,   153,    96,   153,    47,    96,
-     129,   154,   143,   146,    50,   134,    45,    46,    47,    48,
-     129,   141,   145,    50,    20,   129,    55,    56,    17,    18,
-      19,    26,    33,    26,    26,   129,   129,   141,   136,   129,
-     129,   129,   135,   148,   129,   129,   129,    26,    27,    29,
-     101,   129,   156,   157,   158,   159,     0,    95,   129,    61,
-      62,    63,    64,    65,    66,    68,    71,    72,    73,    87,
-      88,    89,    90,    91,    92,    93,   126,    96,   129,   129,
-     153,    98,   153,   153,   128,    26,   153,    98,   153,   126,
-      26,   137,   129,    45,   141,    26,    26,    43,    69,    70,
-      26,   126,    53,    63,   128,   128,    53,    63,    53,    63,
-      52,    55,   141,    26,   139,    79,    80,    53,    95,    26,
-     138,    26,    97,   101,   101,   101,   100,    98,    98,   103,
-     122,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,    26,   149,
-      97,   129,    97,    97,    97,    98,    97,   129,   149,    98,
-     129,   126,   128,    24,    26,    74,    75,    76,    77,   131,
-     132,    26,   132,    26,   132,    42,    63,   129,   129,   129,
-      53,    63,    47,   129,   129,   129,   129,   129,   129,    98,
-     129,   129,   118,   118,    98,   129,   129,   129,   129,    26,
-      27,    29,   159,    52,    95,    98,   130,    95,    26,   149,
-      43,   128,   129,   129,   129,   129,   129,   129,   122,   129,
-     129,    26,    26,   106,   127,    26,   127,   151,    26,   154,
-     151,    95,   129,    47,    53,    47,    53,    47,    53,    47,
-      53,   114,   108,   111,   117,   128,   126,    95,   107,   126,
-     123,   127,    97,   127,   151,   129,   129,   129,   129,   129,
-     129,   129,   129,   126,   124,   124,   127,    53,    63,    86,
-     120,    30,   127,    47,    47,    47,    47,   115,   109,   112,
-     123,   129,   129,    35,    36,   121,   126,    26,   150,   129,
-     129,   129,   129,   122,    53,    34,    85,   127,   129,    84,
-      98,   116,   129,    53,   126,   122,    26,   117,   110,   129,
-      84,    52,   127,   122,   113,   127,    85,   117,   122,   123,
-     127,   117,    85,   127,    85
+      60,    67,    74,    75,    76,    77,    78,    81,    82,    83,
+      90,    91,    96,    99,   103,   104,   105,   106,   107,   119,
+     125,   128,   129,   131,   133,   140,   142,   144,   147,   152,
+     155,    95,    26,   128,    26,    49,    96,   129,   153,    96,
+     153,    96,   153,    47,    96,   129,   154,   143,   146,    50,
+     134,    45,    46,    47,    48,   129,   141,   145,    50,    20,
+     129,    55,    56,    17,    18,    19,    26,    33,    26,    26,
+     129,   129,   141,   136,   129,   129,   129,   129,   129,   129,
+     129,   135,   148,   129,   129,   129,    26,    27,    29,   101,
+     129,   156,   157,   158,   159,     0,    95,   129,    61,    62,
+      63,    64,    65,    66,    68,    71,    72,    73,    87,    88,
+      89,    90,    91,    92,    93,   126,    96,   129,   129,   153,
+      98,   153,   153,   128,    26,   153,    98,   153,   126,    26,
+     137,   129,    45,   141,    26,    26,    43,    69,    70,    26,
+     126,    53,    63,   128,   128,    53,    63,    53,    63,    52,
+      55,   141,    26,   139,    47,    53,    47,    53,    47,    53,
+      47,    53,    79,    80,    53,    95,    26,   138,    26,    97,
+     101,   101,   101,   100,    98,    98,   103,   122,   129,   129,
+     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
+     129,   129,   129,   129,   129,    26,   149,    97,   129,    97,
+      97,    97,    98,    97,   129,   149,    98,   129,   126,   128,
+      24,    26,   131,   132,    26,   132,    26,   132,    42,    63,
+     129,   129,   129,    53,    63,    47,   129,   129,   129,   129,
+     129,   129,    98,   129,   129,   129,   129,   129,   129,   129,
+     129,   129,   129,   118,   118,    98,   129,   129,   129,   129,
+      26,    27,    29,   159,    52,    95,    98,   130,    95,    26,
+     149,    43,   128,   129,   129,   122,   129,   129,    26,    26,
+      47,    47,    47,    47,   106,   127,    26,   127,   151,    26,
+     154,   151,    95,   129,   114,   108,   111,   117,   128,   129,
+     129,   129,   129,   126,    95,   107,   126,   123,   127,    97,
+     127,   151,   126,   124,   124,   127,    53,    63,    86,   120,
+      30,   127,   115,   109,   112,   123,   129,   129,    35,    36,
+     121,   126,    26,   150,   122,    53,    34,    85,   127,   129,
+      84,    98,   116,   129,    53,   126,   122,    26,   117,   110,
+     129,    84,    52,   127,   122,   113,   127,    85,   117,   122,
+     123,   127,   117,    85,   127,    85
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1676,18 +1688,18 @@ static const yytype_uint8 yyr1[] =
      116,   107,   107,   107,   107,   107,   117,   118,   119,   119,
      120,   120,   121,   122,   123,   124,   125,   126,   127,   127,
      127,   128,   128,   128,   128,   128,   128,   128,   128,   128,
-     128,   129,   129,   129,   129,   129,   129,   130,   129,   129,
+     128,   129,   129,   129,   129,   129,   129,   129,   130,   129,
      129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
      129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   131,   131,   131,   131,   131,
-     131,   131,   131,   132,   132,   133,   133,   133,   133,   133,
-     134,   133,   135,   133,   136,   133,   133,   133,   133,   133,
-     137,   137,   138,   138,   139,   139,   140,   140,   140,   140,
-     140,   140,   141,   141,   142,   142,   142,   143,   142,   145,
-     144,   144,   146,   144,   144,   144,   148,   147,   149,   149,
-     149,   150,   150,   150,   151,   152,   153,   153,   153,   154,
-     154,   155,   156,   156,   156,   156,   157,   157,   158,   158,
-     159,   159,   159
+     129,   129,   129,   129,   129,   129,   131,   131,   131,   131,
+     131,   131,   131,   131,   132,   132,   133,   133,   133,   133,
+     133,   134,   133,   135,   133,   136,   133,   133,   133,   133,
+     133,   137,   137,   138,   138,   139,   139,   140,   140,   140,
+     140,   140,   140,   141,   141,   142,   142,   142,   143,   142,
+     145,   144,   144,   146,   144,   144,   144,   148,   147,   149,
+     149,   149,   150,   150,   150,   151,   152,   153,   153,   153,
+     154,   154,   155,   156,   156,   156,   156,   157,   157,   158,
+     158,   159,   159,   159
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1700,18 +1712,18 @@ static const yytype_int8 yyr2[] =
        0,    13,     2,     4,     7,     6,     0,     0,     9,    11,
        0,     2,     6,     0,     0,     0,     1,     0,     0,     2,
        2,     1,     1,     1,     1,     1,     1,     2,     3,     1,
-       2,     1,     4,     2,     4,     2,     4,     0,     7,     4,
-       3,     1,     1,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     2,     3,     3,     3,
-       3,     2,     2,     4,     4,     4,     6,     4,     6,     4,
-       6,     4,     6,     2,     1,     2,     1,     1,     2,     1,
-       0,     3,     0,     3,     0,     3,     4,     2,     4,     2,
-       1,     3,     1,     3,     1,     3,     1,     2,     2,     2,
-       3,     2,     3,     2,     2,     3,     2,     0,     3,     0,
-       8,     2,     0,     7,     8,     6,     0,     3,     0,     1,
-       3,     0,     1,     3,     0,     2,     0,     1,     3,     1,
-       3,     3,     0,     1,     1,     1,     1,     3,     1,     3,
-       3,     3,     3
+       2,     1,     1,     4,     2,     4,     2,     4,     0,     7,
+       4,     3,     1,     1,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     2,     3,     3,
+       3,     3,     2,     2,     4,     4,     4,     6,     4,     6,
+       4,     6,     4,     6,     2,     1,     2,     1,     1,     2,
+       1,     0,     3,     0,     3,     0,     3,     4,     2,     4,
+       2,     1,     3,     1,     3,     1,     3,     1,     2,     2,
+       2,     3,     2,     3,     2,     2,     3,     2,     0,     3,
+       0,     8,     2,     0,     7,     8,     6,     0,     3,     0,
+       1,     3,     0,     1,     3,     0,     2,     0,     1,     3,
+       1,     3,     3,     0,     1,     1,     1,     1,     3,     1,
+       3,     3,     3,     3
 };
 
 
@@ -1985,73 +1997,73 @@ yydestruct (const char *yymsg,
     case 22: /* BLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1989 "engines/director/lingo/lingo-gr.cpp"
+#line 2001 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* FBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1995 "engines/director/lingo/lingo-gr.cpp"
+#line 2007 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* RBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 2013 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* THEFBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2019 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* ID  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2025 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* STRING  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 2031 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* HANDLER  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 2037 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 29: /* SYMBOL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2031 "engines/director/lingo/lingo-gr.cpp"
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 30: /* ENDCLAUSE  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2037 "engines/director/lingo/lingo-gr.cpp"
+#line 2049 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 31: /* tPLAYACCEL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 32: /* tMETHOD  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 2061 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 147: /* on  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2055 "engines/director/lingo/lingo-gr.cpp"
+#line 2067 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2338,7 +2350,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2342 "engines/director/lingo/lingo-gr.cpp"
+#line 2354 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -2346,7 +2358,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2350 "engines/director/lingo/lingo-gr.cpp"
+#line 2362 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -2362,7 +2374,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-4].e)[1]);
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2366 "engines/director/lingo/lingo-gr.cpp"
+#line 2378 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
@@ -2374,7 +2386,7 @@ yyreduce:
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
@@ -2382,7 +2394,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2386 "engines/director/lingo/lingo-gr.cpp"
+#line 2398 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2394,7 +2406,7 @@ yyreduce:
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2398 "engines/director/lingo/lingo-gr.cpp"
+#line 2410 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2402,7 +2414,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2406 "engines/director/lingo/lingo-gr.cpp"
+#line 2418 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2414,7 +2426,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2418 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2426,7 +2438,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+#line 2442 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2438,7 +2450,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2442 "engines/director/lingo/lingo-gr.cpp"
+#line 2454 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2450,7 +2462,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2454 "engines/director/lingo/lingo-gr.cpp"
+#line 2466 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2461,7 +2473,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2465 "engines/director/lingo/lingo-gr.cpp"
+#line 2477 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 19:
@@ -2472,7 +2484,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2476 "engines/director/lingo/lingo-gr.cpp"
+#line 2488 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 20:
@@ -2488,7 +2500,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2504 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 21:
@@ -2504,7 +2516,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2508 "engines/director/lingo/lingo-gr.cpp"
+#line 2520 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 22:
@@ -2516,7 +2528,7 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2520 "engines/director/lingo/lingo-gr.cpp"
+#line 2532 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 23:
@@ -2528,7 +2540,7 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2532 "engines/director/lingo/lingo-gr.cpp"
+#line 2544 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29:
@@ -2540,7 +2552,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		(*g_lingo->_currentAssembly)[(yyvsp[-1].code)] = start;	/* looping back */
 		endRepeat((yyvsp[-1].code) + 1, (yyvsp[-6].code));	}
-#line 2544 "engines/director/lingo/lingo-gr.cpp"
+#line 2556 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30:
@@ -2548,20 +2560,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2564 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31:
 #line 368 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2571 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32:
 #line 371 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_le); }
-#line 2565 "engines/director/lingo/lingo-gr.cpp"
+#line 2577 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33:
@@ -2586,7 +2598,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2590 "engines/director/lingo/lingo-gr.cpp"
+#line 2602 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34:
@@ -2594,20 +2606,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2598 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35:
 #line 402 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2605 "engines/director/lingo/lingo-gr.cpp"
+#line 2617 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36:
 #line 405 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_ge); }
-#line 2611 "engines/director/lingo/lingo-gr.cpp"
+#line 2623 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37:
@@ -2632,7 +2644,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2648 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38:
@@ -2643,7 +2655,7 @@ yyreduce:
 				  g_lingo->codeFunc(&count, 1);
 				  g_lingo->code1(LC::c_intpush);	// start counter
 				  g_lingo->codeInt(1); }
-#line 2647 "engines/director/lingo/lingo-gr.cpp"
+#line 2659 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39:
@@ -2653,7 +2665,7 @@ yyreduce:
 				  g_lingo->code1(LC::c_stackpeek);	// get array size
 				  g_lingo->codeInt(2);
 				  g_lingo->code1(LC::c_le); }
-#line 2657 "engines/director/lingo/lingo-gr.cpp"
+#line 2669 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40:
@@ -2668,7 +2680,7 @@ yyreduce:
 				  g_lingo->codeString((yyvsp[-6].s)->c_str());
 				  mVar((yyvsp[-6].s), globalCheck());
 				  g_lingo->code1(LC::c_assign); }
-#line 2672 "engines/director/lingo/lingo-gr.cpp"
+#line 2684 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41:
@@ -2692,7 +2704,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[jump + 1] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		endRepeat(end2, nextPos); }
-#line 2696 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42:
@@ -2705,7 +2717,7 @@ yyreduce:
 		} else {
 			warning("# LINGO: next repeat not inside repeat block");
 		} }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2721 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43:
@@ -2713,31 +2725,31 @@ yyreduce:
                               {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44:
 #line 486 "engines/director/lingo/lingo-gr.y"
                                                           { g_lingo->code1(LC::c_telldone); }
-#line 2723 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45:
 #line 487 "engines/director/lingo/lingo-gr.y"
                                                     { g_lingo->code1(LC::c_telldone); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46:
 #line 489 "engines/director/lingo/lingo-gr.y"
                                 { startRepeat(); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47:
 #line 491 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_tell); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48:
@@ -2749,7 +2761,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-6].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end3;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49:
@@ -2761,7 +2773,7 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-8].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-5].code)] = end;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52:
@@ -2771,7 +2783,7 @@ yyreduce:
 		WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = else1;	/* end, if cond fails */
 		g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53:
@@ -2779,7 +2791,7 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jumpifz, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2783 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 54:
@@ -2787,7 +2799,7 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jump, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55:
@@ -2795,26 +2807,26 @@ yyreduce:
                                         {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56:
 #line 529 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeLabel(0); }
-#line 2806 "engines/director/lingo/lingo-gr.cpp"
+#line 2818 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 57:
 #line 532 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2812 "engines/director/lingo/lingo-gr.cpp"
+#line 2824 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58:
 #line 534 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2818 "engines/director/lingo/lingo-gr.cpp"
+#line 2830 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61:
@@ -2822,7 +2834,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2826 "engines/director/lingo/lingo-gr.cpp"
+#line 2838 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62:
@@ -2830,7 +2842,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2834 "engines/director/lingo/lingo-gr.cpp"
+#line 2846 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 63:
@@ -2839,7 +2851,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2843 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64:
@@ -2848,7 +2860,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2852 "engines/director/lingo/lingo-gr.cpp"
+#line 2864 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 65:
@@ -2857,7 +2869,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2861 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 66:
@@ -2870,7 +2882,7 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2874 "engines/director/lingo/lingo-gr.cpp"
+#line 2886 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67:
@@ -2881,13 +2893,13 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2885 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68:
 #line 570 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2891 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70:
@@ -2902,296 +2914,296 @@ yyreduce:
 			yyerrok;
 		}
 	}
-#line 2906 "engines/director/lingo/lingo-gr.cpp"
+#line 2918 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71:
 #line 583 "engines/director/lingo/lingo-gr.y"
                  { (yyval.code) = (yyvsp[0].code); }
-#line 2912 "engines/director/lingo/lingo-gr.cpp"
+#line 2924 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 72:
-#line 584 "engines/director/lingo/lingo-gr.y"
+  case 73:
+#line 585 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2920 "engines/director/lingo/lingo-gr.cpp"
+#line 2932 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 73:
-#line 587 "engines/director/lingo/lingo-gr.y"
+  case 74:
+#line 588 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2928 "engines/director/lingo/lingo-gr.cpp"
+#line 2940 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 74:
-#line 590 "engines/director/lingo/lingo-gr.y"
+  case 75:
+#line 591 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2936 "engines/director/lingo/lingo-gr.cpp"
+#line 2948 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 75:
-#line 593 "engines/director/lingo/lingo-gr.y"
+  case 76:
+#line 594 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2944 "engines/director/lingo/lingo-gr.cpp"
+#line 2956 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 76:
-#line 596 "engines/director/lingo/lingo-gr.y"
+  case 77:
+#line 597 "engines/director/lingo/lingo-gr.y"
                                       {
 			g_lingo->code1(LC::c_lazyeval);
 			g_lingo->codeString((yyvsp[-1].s)->c_str());
 			g_lingo->codeFunc((yyvsp[-3].s), 1);
 			delete (yyvsp[-3].s);
 			delete (yyvsp[-1].s); }
-#line 2955 "engines/director/lingo/lingo-gr.cpp"
+#line 2967 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 77:
-#line 602 "engines/director/lingo/lingo-gr.y"
+  case 78:
+#line 603 "engines/director/lingo/lingo-gr.y"
                                       { g_lingo->code1(LC::c_lazyeval); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2973 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 78:
-#line 603 "engines/director/lingo/lingo-gr.y"
+  case 79:
+#line 604 "engines/director/lingo/lingo-gr.y"
                                                     {
 			g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
 			delete (yyvsp[-6].s);
 			delete (yyvsp[-4].s); }
-#line 2970 "engines/director/lingo/lingo-gr.cpp"
+#line 2982 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 79:
-#line 607 "engines/director/lingo/lingo-gr.y"
+  case 80:
+#line 608 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2978 "engines/director/lingo/lingo-gr.cpp"
+#line 2990 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 80:
-#line 610 "engines/director/lingo/lingo-gr.y"
+  case 81:
+#line 611 "engines/director/lingo/lingo-gr.y"
                                         {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
 		delete (yyvsp[-2].s); }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 2998 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 81:
-#line 613 "engines/director/lingo/lingo-gr.y"
+  case 82:
+#line 614 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_objectproppush);
 		g_lingo->codeString((yyvsp[0].objectprop).obj->c_str());
 		g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
 		delete (yyvsp[0].objectprop).obj;
 		delete (yyvsp[0].objectprop).prop; }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 83:
-#line 620 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_add); }
-#line 3003 "engines/director/lingo/lingo-gr.cpp"
+#line 3009 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 84:
 #line 621 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_sub); }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_add); }
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85:
 #line 622 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_mul); }
-#line 3015 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_sub); }
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86:
 #line 623 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_div); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_mul); }
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87:
 #line 624 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_mod); }
-#line 3027 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_div); }
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88:
 #line 625 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_gt); }
-#line 3033 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_mod); }
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89:
 #line 626 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_lt); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_gt); }
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90:
 #line 627 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_eq); }
-#line 3045 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_lt); }
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91:
 #line 628 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_neq); }
-#line 3051 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_eq); }
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92:
 #line 629 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_ge); }
-#line 3057 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_neq); }
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93:
 #line 630 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_le); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_ge); }
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94:
 #line 631 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_and); }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_le); }
+#line 3075 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95:
 #line 632 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_or); }
-#line 3075 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_and); }
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96:
 #line 633 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_not); }
-#line 3081 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_or); }
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97:
 #line 634 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_ampersand); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_not); }
+#line 3093 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 98:
 #line 635 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_concat); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_ampersand); }
+#line 3099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 99:
 #line 636 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_contains); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_concat); }
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 100:
 #line 637 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_starts); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_contains); }
+#line 3111 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101:
 #line 638 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = (yyvsp[0].code); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_starts); }
+#line 3117 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 102:
 #line 639 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.code) = (yyvsp[0].code); }
+#line 3123 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 103:
 #line 640 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_intersects); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 104:
 #line 641 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_within); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_intersects); }
+#line 3135 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 105:
-#line 643 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_charOf); }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+#line 642 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_within); }
+#line 3141 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 106:
 #line 644 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_charToOf); }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_charOf); }
+#line 3147 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 107:
 #line 645 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_itemOf); }
-#line 3147 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_charToOf); }
+#line 3153 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 108:
 #line 646 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_itemToOf); }
-#line 3153 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_itemOf); }
+#line 3159 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 109:
 #line 647 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_lineOf); }
-#line 3159 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_itemToOf); }
+#line 3165 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 110:
 #line 648 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_lineToOf); }
-#line 3165 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_lineOf); }
+#line 3171 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 111:
 #line 649 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_wordOf); }
-#line 3171 "engines/director/lingo/lingo-gr.cpp"
+                                        { g_lingo->code1(LC::c_lineToOf); }
+#line 3177 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 112:
 #line 650 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_wordToOf); }
-#line 3177 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_wordOf); }
+#line 3183 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 113:
-#line 652 "engines/director/lingo/lingo-gr.y"
+#line 651 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_wordToOf); }
+#line 3189 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 114:
+#line 653 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 3185 "engines/director/lingo/lingo-gr.cpp"
+#line 3197 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 115:
-#line 657 "engines/director/lingo/lingo-gr.y"
+  case 116:
+#line 658 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_printtop); }
-#line 3191 "engines/director/lingo/lingo-gr.cpp"
+#line 3203 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 118:
-#line 660 "engines/director/lingo/lingo-gr.y"
+  case 119:
+#line 661 "engines/director/lingo/lingo-gr.y"
                                                 {
 		if (g_lingo->_repeatStack.size()) {
 			g_lingo->code2(LC::c_jump, 0);
@@ -3200,258 +3212,258 @@ yyreduce:
 		} else {
 			warning("# LINGO: exit repeat not inside repeat block");
 		} }
-#line 3204 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 119:
-#line 668 "engines/director/lingo/lingo-gr.y"
-                                                        { g_lingo->code1(LC::c_procret); }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 120:
-#line 669 "engines/director/lingo/lingo-gr.y"
-                                                        { inArgs(); }
 #line 3216 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 121:
+  case 120:
 #line 669 "engines/director/lingo/lingo-gr.y"
-                                                                                 { inLast(); }
+                                                        { g_lingo->code1(LC::c_procret); }
 #line 3222 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 122:
+  case 121:
 #line 670 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
 #line 3228 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 123:
+  case 122:
 #line 670 "engines/director/lingo/lingo-gr.y"
-                                                                                   { inLast(); }
+                                                                                 { inLast(); }
 #line 3234 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 124:
+  case 123:
 #line 671 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
 #line 3240 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 125:
+  case 124:
 #line 671 "engines/director/lingo/lingo-gr.y"
                                                                                    { inLast(); }
 #line 3246 "engines/director/lingo/lingo-gr.cpp"
     break;
 
+  case 125:
+#line 672 "engines/director/lingo/lingo-gr.y"
+                                                        { inArgs(); }
+#line 3252 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
   case 126:
 #line 672 "engines/director/lingo/lingo-gr.y"
+                                                                                   { inLast(); }
+#line 3258 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 127:
+#line 673 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 3254 "engines/director/lingo/lingo-gr.cpp"
+#line 3266 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 127:
-#line 675 "engines/director/lingo/lingo-gr.y"
+  case 128:
+#line 676 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 3262 "engines/director/lingo/lingo-gr.cpp"
+#line 3274 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 128:
-#line 678 "engines/director/lingo/lingo-gr.y"
+  case 129:
+#line 679 "engines/director/lingo/lingo-gr.y"
                                         {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 2); }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 3282 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 129:
-#line 681 "engines/director/lingo/lingo-gr.y"
+  case 130:
+#line 682 "engines/director/lingo/lingo-gr.y"
                                                 {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 1); }
-#line 3278 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 130:
-#line 685 "engines/director/lingo/lingo-gr.y"
+  case 131:
+#line 686 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3286 "engines/director/lingo/lingo-gr.cpp"
+#line 3298 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131:
-#line 688 "engines/director/lingo/lingo-gr.y"
+  case 132:
+#line 689 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3306 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132:
-#line 692 "engines/director/lingo/lingo-gr.y"
+  case 133:
+#line 693 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3302 "engines/director/lingo/lingo-gr.cpp"
+#line 3314 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133:
-#line 695 "engines/director/lingo/lingo-gr.y"
+  case 134:
+#line 696 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3310 "engines/director/lingo/lingo-gr.cpp"
+#line 3322 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134:
-#line 699 "engines/director/lingo/lingo-gr.y"
+  case 135:
+#line 700 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3330 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 135:
-#line 702 "engines/director/lingo/lingo-gr.y"
+  case 136:
+#line 703 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3326 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 136:
-#line 713 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_gotoloop); }
-#line 3332 "engines/director/lingo/lingo-gr.cpp"
+#line 3338 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 137:
 #line 714 "engines/director/lingo/lingo-gr.y"
-                                                        { g_lingo->code1(LC::c_gotonext); }
-#line 3338 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_gotoloop); }
+#line 3344 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 138:
 #line 715 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_gotoprevious); }
-#line 3344 "engines/director/lingo/lingo-gr.cpp"
+                                                        { g_lingo->code1(LC::c_gotonext); }
+#line 3350 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 139:
 #line 716 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_gotoprevious); }
+#line 3356 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 140:
+#line 717 "engines/director/lingo/lingo-gr.y"
                                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3365 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140:
-#line 720 "engines/director/lingo/lingo-gr.y"
+  case 141:
+#line 721 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3362 "engines/director/lingo/lingo-gr.cpp"
+#line 3374 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 141:
-#line 724 "engines/director/lingo/lingo-gr.y"
+  case 142:
+#line 725 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3383 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 144:
-#line 732 "engines/director/lingo/lingo-gr.y"
+  case 145:
+#line 733 "engines/director/lingo/lingo-gr.y"
                                         { // "play #done" is also caught by this
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3380 "engines/director/lingo/lingo-gr.cpp"
+#line 3392 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145:
-#line 736 "engines/director/lingo/lingo-gr.y"
+  case 146:
+#line 737 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3389 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 146:
-#line 740 "engines/director/lingo/lingo-gr.y"
+  case 147:
+#line 741 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3398 "engines/director/lingo/lingo-gr.cpp"
+#line 3410 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 147:
-#line 744 "engines/director/lingo/lingo-gr.y"
+  case 148:
+#line 745 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3404 "engines/director/lingo/lingo-gr.cpp"
+#line 3416 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148:
-#line 744 "engines/director/lingo/lingo-gr.y"
+  case 149:
+#line 745 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3413 "engines/director/lingo/lingo-gr.cpp"
+#line 3425 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149:
-#line 774 "engines/director/lingo/lingo-gr.y"
+  case 150:
+#line 775 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3419 "engines/director/lingo/lingo-gr.cpp"
+#line 3431 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150:
-#line 775 "engines/director/lingo/lingo-gr.y"
+  case 151:
+#line 776 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3429 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 151:
-#line 780 "engines/director/lingo/lingo-gr.y"
-                        { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3435 "engines/director/lingo/lingo-gr.cpp"
+#line 3441 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 152:
 #line 781 "engines/director/lingo/lingo-gr.y"
-                  { startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
-#line 3441 "engines/director/lingo/lingo-gr.cpp"
+                        { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
+#line 3447 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 153:
 #line 782 "engines/director/lingo/lingo-gr.y"
+                  { startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
+#line 3453 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 154:
+#line 783 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3451 "engines/director/lingo/lingo-gr.cpp"
+#line 3463 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154:
-#line 787 "engines/director/lingo/lingo-gr.y"
+  case 155:
+#line 788 "engines/director/lingo/lingo-gr.y"
                                                                    {	// D3
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
@@ -3460,69 +3472,69 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3464 "engines/director/lingo/lingo-gr.cpp"
+#line 3476 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 155:
-#line 795 "engines/director/lingo/lingo-gr.y"
+  case 156:
+#line 796 "engines/director/lingo/lingo-gr.y"
                                                {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3474 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 156:
-#line 801 "engines/director/lingo/lingo-gr.y"
-         { startDef(); }
-#line 3480 "engines/director/lingo/lingo-gr.cpp"
+#line 3486 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 157:
-#line 801 "engines/director/lingo/lingo-gr.y"
-                                { (yyval.s) = (yyvsp[0].s); }
-#line 3486 "engines/director/lingo/lingo-gr.cpp"
+#line 802 "engines/director/lingo/lingo-gr.y"
+         { startDef(); }
+#line 3492 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 158:
-#line 803 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = 0; }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 802 "engines/director/lingo/lingo-gr.y"
+                                { (yyval.s) = (yyvsp[0].s); }
+#line 3498 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 159:
 #line 804 "engines/director/lingo/lingo-gr.y"
-                                                        { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3498 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.narg) = 0; }
+#line 3504 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 160:
 #line 805 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3504 "engines/director/lingo/lingo-gr.cpp"
+                                                        { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 162:
-#line 808 "engines/director/lingo/lingo-gr.y"
-                                                        { delete (yyvsp[0].s); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+  case 161:
+#line 806 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
+#line 3516 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 163:
 #line 809 "engines/director/lingo/lingo-gr.y"
-                                                { delete (yyvsp[0].s); }
-#line 3516 "engines/director/lingo/lingo-gr.cpp"
+                                                        { delete (yyvsp[0].s); }
+#line 3522 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 164:
-#line 811 "engines/director/lingo/lingo-gr.y"
-                                        { inDef(); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 810 "engines/director/lingo/lingo-gr.y"
+                                                { delete (yyvsp[0].s); }
+#line 3528 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 165:
-#line 813 "engines/director/lingo/lingo-gr.y"
+#line 812 "engines/director/lingo/lingo-gr.y"
+                                        { inDef(); }
+#line 3534 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 166:
+#line 814 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_call);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
@@ -3530,122 +3542,122 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3534 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 166:
-#line 821 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = 0; }
-#line 3540 "engines/director/lingo/lingo-gr.cpp"
+#line 3546 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 167:
 #line 822 "engines/director/lingo/lingo-gr.y"
-                                                        { (yyval.narg) = 1; }
-#line 3546 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.narg) = 0; }
+#line 3552 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 168:
 #line 823 "engines/director/lingo/lingo-gr.y"
-                                                { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+                                                        { (yyval.narg) = 1; }
+#line 3558 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 169:
-#line 825 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = 1; }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 824 "engines/director/lingo/lingo-gr.y"
+                                                { (yyval.narg) = (yyvsp[-2].narg) + 1; }
+#line 3564 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 170:
 #line 826 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.narg) = 1; }
+#line 3570 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 171:
-#line 828 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = (yyvsp[-1].code); }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 827 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
+#line 3576 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 172:
-#line 830 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 829 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.code) = (yyvsp[-1].code); }
+#line 3582 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 173:
 #line 831 "engines/director/lingo/lingo-gr.y"
-                                                        { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
+#line 3588 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 174:
 #line 832 "engines/director/lingo/lingo-gr.y"
-                         { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3588 "engines/director/lingo/lingo-gr.cpp"
+                                                        { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
+#line 3594 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 175:
 #line 833 "engines/director/lingo/lingo-gr.y"
-                     { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3594 "engines/director/lingo/lingo-gr.cpp"
+                         { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
+#line 3600 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 176:
-#line 835 "engines/director/lingo/lingo-gr.y"
-                                                { (yyval.narg) = 1; }
-#line 3600 "engines/director/lingo/lingo-gr.cpp"
+#line 834 "engines/director/lingo/lingo-gr.y"
+                     { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
+#line 3606 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 177:
 #line 836 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3606 "engines/director/lingo/lingo-gr.cpp"
+                                                { (yyval.narg) = 1; }
+#line 3612 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 178:
-#line 838 "engines/director/lingo/lingo-gr.y"
-                                                { (yyval.narg) = 1; }
-#line 3612 "engines/director/lingo/lingo-gr.cpp"
+#line 837 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
+#line 3618 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 179:
 #line 839 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+                                                { (yyval.narg) = 1; }
+#line 3624 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 180:
-#line 841 "engines/director/lingo/lingo-gr.y"
+#line 840 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.narg) = (yyvsp[-2].narg) + 1; }
+#line 3630 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 181:
+#line 842 "engines/director/lingo/lingo-gr.y"
                           {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3639 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 181:
-#line 845 "engines/director/lingo/lingo-gr.y"
+  case 182:
+#line 846 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3636 "engines/director/lingo/lingo-gr.cpp"
+#line 3648 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 182:
-#line 849 "engines/director/lingo/lingo-gr.y"
+  case 183:
+#line 850 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3657 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3649 "engines/director/lingo/lingo-gr.cpp"
+#line 3661 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -3844,7 +3856,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 855 "engines/director/lingo/lingo-gr.y"
+#line 856 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index d0139708ef..82596ef7a0 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -581,6 +581,7 @@ simpleexpr: INT		{
 	}
 
 expr: simpleexpr { $$ = $simpleexpr; }
+	| chunkexpr
 	| FBLTIN '(' arglist ')' {
 		g_lingo->codeFunc($FBLTIN, $arglist);
 		delete $FBLTIN; }
diff --git a/engines/director/lingo/tests/reference.lingo b/engines/director/lingo/tests/reference.lingo
index d67212e239..77ed656337 100644
--- a/engines/director/lingo/tests/reference.lingo
+++ b/engines/director/lingo/tests/reference.lingo
@@ -12,6 +12,7 @@ put "asdf" into field 1
 -- the property of reference
 put the text of cast "castname"
 put the visible of window "windowname"
+put line 1 to 5 of field the number of cast "MasterList" into field the number of cast "InventoryList"
 
 -- user-defined handlers/factories w/ reference name
 -- (mainly to test grammar, so no factory definition)




More information about the Scummvm-git-logs mailing list