Sync to Wine-20050310:
Jon Griffiths <jon_p_griffiths@yahoo.com>
- Documentation spelling fixes.
Alexandre Julliard <julliard@winehq.org>
- Allow specifying extended control styles also in standard dialogs
  (reported by Michael Lin).
- Avoid spaces before preprocessor directives, that's not portable.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Modified: trunk/reactos/tools/wrc/newstruc.c
Modified: trunk/reactos/tools/wrc/parser.y
Modified: trunk/reactos/tools/wrc/y.tab.c

Modified: trunk/reactos/tools/wrc/newstruc.c
--- trunk/reactos/tools/wrc/newstruc.c	2005-03-14 10:44:46 UTC (rev 14055)
+++ trunk/reactos/tools/wrc/newstruc.c	2005-03-14 11:01:02 UTC (rev 14056)
@@ -679,8 +679,8 @@
  * The "LIST" tag may occur several times and may encapsulate different
  * tags. The `steps' is the number of "icon" tags found (actually the
  * number of steps specified in the aniheader_t structure). The "seq "uence
- * tag can be ommitted, in which case the sequence is equal to the sequence
- * of "icon"s found in the file. Also "rate" may be ommitted, in which case
+ * tag can be omitted, in which case the sequence is equal to the sequence
+ * of "icon"s found in the file. Also "rate" may be omitted, in which case
  * the default from the aniheader_t structure is used.
  *
  * An animated cursor puts `.cur' formatted files into each "icon" tag,

Modified: trunk/reactos/tools/wrc/parser.y
--- trunk/reactos/tools/wrc/parser.y	2005-03-14 10:44:46 UTC (rev 14055)
+++ trunk/reactos/tools/wrc/parser.y	2005-03-14 11:01:02 UTC (rev 14056)
@@ -352,7 +352,6 @@
 %type <dginit>  dlginit
 %type <styles>  optional_style_pair
 %type <num>	any_num
-%type <style>   optional_style
 %type <style>   style
 %type <str>	filename
 
@@ -458,7 +457,7 @@
 	 * for tNL. However, byacc already generates an error upon reading
 	 * the token instead of keeping it as a lookahead. The reason
 	 * lies in the lack of a $default transition in the "expr : xpr . "
-	 * state (currently state 25). It is probably ommitted because tNL
+	 * state (currently state 25). It is probably omitted because tNL
 	 * is a non-terminal and the state contains 2 s/r conflicts. The
 	 * state enumerates all possible transitions instead of using a
 	 * $default transition.
@@ -735,11 +734,11 @@
 
 /* ------------------------------ UserType ------------------------------ */
 userres	: usertype loadmemopts file_raw		{
-		#ifdef WORDS_BIGENDIAN
+#ifdef WORDS_BIGENDIAN
 			if(pedantic && byteorder != WRC_BO_LITTLE)
-		#else
+#else
 			if(pedantic && byteorder == WRC_BO_BIG)
-		#endif
+#endif
 				yywarning("Byteordering is not little-endian and type cannot be interpreted");
 			$$ = new_user($1, $3, $2);
 		}
@@ -889,7 +888,7 @@
 	;
 
 lab_ctrl
-	: tSTRING opt_comma expr ',' expr ',' expr ',' expr ',' expr optional_style {
+	: tSTRING opt_comma expr ',' expr ',' expr ',' expr ',' expr optional_style_pair {
 		$$=new_control();
 		$$->title = new_name_id();
 		$$->title->type = name_str;
@@ -901,14 +900,20 @@
 		$$->height = $11;
 		if($12)
 		{
-			$$->style = $12;
+			$$->style = $12->style;
 			$$->gotstyle = TRUE;
+			if ($12->exstyle)
+			{
+			    $$->exstyle = $12->exstyle;
+			    $$->gotexstyle = TRUE;
+			}
+			free($12);
 		}
 		}
 	;
 
 ctrl_desc
-	: expr ',' expr ',' expr ',' expr ',' expr optional_style {
+	: expr ',' expr ',' expr ',' expr ',' expr optional_style_pair {
 		$$ = new_control();
 		$$->id = $1;
 		$$->x = $3;
@@ -917,8 +922,14 @@
 		$$->height = $9;
 		if($10)
 		{
-			$$->style = $10;
+			$$->style = $10->style;
 			$$->gotstyle = TRUE;
+			if ($10->exstyle)
+			{
+			    $$->exstyle = $10->exstyle;
+			    $$->gotexstyle = TRUE;
+			}
+			free($10);
 		}
 		}
 	;
@@ -982,11 +993,6 @@
 	;
 
 /* ------------------------------ style flags ------------------------------ */
-optional_style		/* Abbused once to get optional ExStyle */
-	: /* Empty */	{ $$ = NULL; }
-	| ',' style	{ $$ = $2; }
-	;
-
 optional_style_pair
 	: /* Empty */		{ $$ = NULL; }
 	| ',' style		{ $$ = new_style_pair($2, 0); }

Modified: trunk/reactos/tools/wrc/y.tab.c
--- trunk/reactos/tools/wrc/y.tab.c	2005-03-14 10:44:46 UTC (rev 14055)
+++ trunk/reactos/tools/wrc/y.tab.c	2005-03-14 11:01:02 UTC (rev 14056)
@@ -634,16 +634,16 @@
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  3
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   674
+#define YYLAST   661
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  96
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  83
+#define YYNNTS  82
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  258
+#define YYNRULES  256
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  570
+#define YYNSTATES  568
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -706,158 +706,158 @@
      202,   205,   206,   210,   214,   218,   222,   226,   230,   234,
      238,   242,   246,   250,   254,   258,   262,   266,   270,   274,
      285,   298,   309,   310,   315,   322,   331,   349,   365,   370,
-     371,   374,   375,   378,   383,   387,   391,   393,   396,   398,
-     400,   415,   416,   420,   424,   428,   431,   434,   438,   442,
-     445,   448,   451,   452,   456,   460,   464,   468,   472,   476,
-     480,   484,   488,   492,   496,   500,   504,   508,   512,   516,
-     520,   531,   551,   568,   583,   596,   597,   599,   600,   603,
-     613,   614,   617,   622,   626,   627,   634,   638,   644,   645,
-     649,   653,   657,   661,   665,   669,   674,   678,   679,   684,
-     688,   694,   695,   698,   704,   711,   712,   715,   720,   727,
-     736,   741,   745,   746,   751,   752,   754,   761,   762,   772,
-     782,   786,   790,   794,   798,   802,   803,   806,   812,   813,
-     816,   818,   823,   828,   830,   834,   844,   845,   849,   852,
-     853,   856,   859,   861,   863,   865,   867,   869,   871,   873,
-     874,   877,   880,   883,   888,   891,   894,   899,   901,   903,
-     906,   908,   911,   913,   917,   921,   926,   930,   935,   939,
-     941,   943,   944,   946,   948,   952,   956,   960,   964,   968,
-     972,   976,   979,   982,   985,   989,   991,   994,   996
+     371,   374,   379,   383,   387,   389,   392,   394,   396,   411,
+     412,   416,   420,   424,   427,   430,   434,   438,   441,   444,
+     447,   448,   452,   456,   460,   464,   468,   472,   476,   480,
+     484,   488,   492,   496,   500,   504,   508,   512,   516,   527,
+     547,   564,   579,   592,   593,   595,   596,   599,   609,   610,
+     613,   618,   622,   623,   630,   634,   640,   641,   645,   649,
+     653,   657,   661,   665,   670,   674,   675,   680,   684,   690,
+     691,   694,   700,   707,   708,   711,   716,   723,   732,   737,
+     741,   742,   747,   748,   750,   757,   758,   768,   778,   782,
+     786,   790,   794,   798,   799,   802,   808,   809,   812,   814,
+     819,   824,   826,   830,   840,   841,   845,   848,   849,   852,
+     855,   857,   859,   861,   863,   865,   867,   869,   870,   873,
+     876,   879,   884,   887,   890,   895,   897,   899,   902,   904,
+     907,   909,   913,   917,   922,   926,   931,   935,   937,   939,
+     940,   942,   944,   948,   952,   956,   960,   964,   968,   972,
+     975,   978,   981,   985,   987,   990,   992
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
       97,     0,    -1,    98,    -1,    -1,    98,    99,    -1,    98,
-       3,    -1,   176,   101,   104,    -1,     7,   101,   104,    -1,
-     152,    -1,    -1,    64,   100,   176,    93,   176,    -1,    -1,
-     176,    -1,     7,    -1,   102,    -1,     6,    -1,   116,    -1,
-     106,    -1,   107,    -1,   121,    -1,   133,    -1,   113,    -1,
-     109,    -1,   110,    -1,   108,    -1,   143,    -1,   147,    -1,
-     111,    -1,   112,    -1,   163,    -1,   114,    -1,   156,    -1,
-       8,    -1,     7,    -1,     6,    -1,    11,   165,   174,    -1,
-      12,   165,   174,    -1,    23,   165,   174,    -1,    21,   165,
-     174,    -1,    22,   165,   174,    -1,    17,   165,   174,    -1,
-      18,   165,   174,    -1,    82,   165,   174,    -1,   115,   165,
-     174,    -1,     4,    -1,     7,    -1,    10,   165,   168,    80,
-     117,    81,    -1,    -1,   117,     6,    93,   176,   118,    -1,
-     117,   176,    93,   176,   118,    -1,    -1,    93,   119,    -1,
+       3,    -1,   175,   101,   104,    -1,     7,   101,   104,    -1,
+     151,    -1,    -1,    64,   100,   175,    93,   175,    -1,    -1,
+     175,    -1,     7,    -1,   102,    -1,     6,    -1,   116,    -1,
+     106,    -1,   107,    -1,   121,    -1,   132,    -1,   113,    -1,
+     109,    -1,   110,    -1,   108,    -1,   142,    -1,   146,    -1,
+     111,    -1,   112,    -1,   162,    -1,   114,    -1,   155,    -1,
+       8,    -1,     7,    -1,     6,    -1,    11,   164,   173,    -1,
+      12,   164,   173,    -1,    23,   164,   173,    -1,    21,   164,
+     173,    -1,    22,   164,   173,    -1,    17,   164,   173,    -1,
+      18,   164,   173,    -1,    82,   164,   173,    -1,   115,   164,
+     173,    -1,     4,    -1,     7,    -1,    10,   164,   167,    80,
+     117,    81,    -1,    -1,   117,     6,    93,   175,   118,    -1,
+     117,   175,    93,   175,   118,    -1,    -1,    93,   119,    -1,
      120,    -1,   119,    93,   120,    -1,    50,    -1,    43,    -1,
-      36,    -1,    44,    -1,    45,    -1,    46,    -1,    13,   165,
-     176,    93,   176,    93,   176,    93,   176,   122,    80,   123,
-      81,    -1,    -1,   122,    62,   131,    -1,   122,    61,   131,
+      36,    -1,    44,    -1,    45,    -1,    46,    -1,    13,   164,
+     175,    93,   175,    93,   175,    93,   175,   122,    80,   123,
+      81,    -1,    -1,   122,    62,   130,    -1,   122,    61,   130,
       -1,   122,    59,     6,    -1,   122,   128,    -1,   122,    58,
-     103,    -1,   122,    15,   102,    -1,   122,   169,    -1,   122,
-     170,    -1,   122,   171,    -1,    -1,   123,    36,   127,    -1,
+     103,    -1,   122,    15,   102,    -1,   122,   168,    -1,   122,
+     169,    -1,   122,   170,    -1,    -1,   123,    36,   127,    -1,
      123,    37,   125,    -1,   123,    34,   125,    -1,   123,    33,
      125,    -1,   123,    35,   125,    -1,   123,    27,   124,    -1,
      123,    28,   124,    -1,   123,    32,   124,    -1,   123,    29,
      124,    -1,   123,    30,   124,    -1,   123,    24,   124,    -1,
      123,    31,   124,    -1,   123,    25,   124,    -1,   123,    26,
      124,    -1,   123,    40,   124,    -1,   123,    39,   124,    -1,
-     123,    38,   124,    -1,   123,    23,   103,   155,   176,    93,
-     176,    93,   176,   126,    -1,     6,   155,   176,    93,   176,
-      93,   176,    93,   176,    93,   176,   129,    -1,   176,    93,
-     176,    93,   176,    93,   176,    93,   176,   129,    -1,    -1,
-      93,   176,    93,   176,    -1,    93,   176,    93,   176,    93,
-     131,    -1,    93,   176,    93,   176,    93,   131,    93,   131,
-      -1,   103,   155,   176,    93,   132,    93,   131,    93,   176,
-      93,   176,    93,   176,    93,   176,    93,   131,    -1,   103,
-     155,   176,    93,   132,    93,   131,    93,   176,    93,   176,
-      93,   176,    93,   176,    -1,    21,   176,    93,     6,    -1,
-      -1,    93,   131,    -1,    -1,    93,   131,    -1,    93,   131,
-      93,   131,    -1,   131,    83,   131,    -1,    94,   131,    95,
-      -1,   178,    -1,    91,   178,    -1,   176,    -1,     6,    -1,
-      14,   165,   176,    93,   176,    93,   176,    93,   176,   140,
-     134,    80,   135,    81,    -1,    -1,   134,    62,   131,    -1,
-     134,    61,   131,    -1,   134,    59,     6,    -1,   134,   128,
-      -1,   134,   141,    -1,   134,    58,   103,    -1,   134,    15,
-     102,    -1,   134,   169,    -1,   134,   170,    -1,   134,   171,
-      -1,    -1,   135,    36,   136,    -1,   135,    37,   138,    -1,
-     135,    34,   138,    -1,   135,    33,   138,    -1,   135,    35,
-     138,    -1,   135,    27,   137,    -1,   135,    28,   137,    -1,
-     135,    32,   137,    -1,   135,    29,   137,    -1,   135,    30,
-     137,    -1,   135,    24,   137,    -1,   135,    31,   137,    -1,
-     135,    25,   137,    -1,   135,    26,   137,    -1,   135,    40,
-     137,    -1,   135,    39,   137,    -1,   135,    38,   137,    -1,
-     135,    23,   103,   155,   176,    93,   176,    93,   176,   126,
-      -1,   103,   155,   176,    93,   132,    93,   131,    93,   176,
-      93,   176,    93,   176,    93,   176,    93,   131,   140,   139,
-      -1,   103,   155,   176,    93,   132,    93,   131,    93,   176,
-      93,   176,    93,   176,    93,   176,   139,    -1,     6,   155,
-     176,    93,   176,    93,   176,    93,   176,    93,   176,   130,
-     140,   139,    -1,   176,    93,   176,    93,   176,    93,   176,
-      93,   176,   130,   140,   139,    -1,    -1,   172,    -1,    -1,
-      93,   176,    -1,    21,   176,    93,     6,    93,   176,    93,
-     176,   142,    -1,    -1,    93,   176,    -1,    15,   165,   168,
-     144,    -1,    80,   145,    81,    -1,    -1,   145,    74,     6,
-     155,   176,   146,    -1,   145,    74,    76,    -1,   145,    75,
-       6,   146,   144,    -1,    -1,    93,    48,   146,    -1,    93,
-      47,   146,    -1,    93,    77,   146,    -1,    93,    49,   146,
-      -1,    93,    72,   146,    -1,    93,    73,   146,    -1,    16,
-     165,   168,   148,    -1,    80,   149,    81,    -1,    -1,   149,
-      74,     6,   150,    -1,   149,    74,    76,    -1,   149,    75,
-       6,   151,   148,    -1,    -1,    93,   176,    -1,    93,   175,
-      93,   175,   146,    -1,    93,   175,    93,   175,    93,   176,
-      -1,    -1,    93,   176,    -1,    93,   175,    93,   176,    -1,
-      93,   175,    93,   175,    93,   176,    -1,    93,   175,    93,
-     175,    93,   175,    93,   176,    -1,   153,    80,   154,    81,
-      -1,    20,   165,   168,    -1,    -1,   154,   176,   155,     6,
-      -1,    -1,    93,    -1,    19,   165,   157,    80,   158,    81,
-      -1,    -1,   157,    65,   176,    93,   176,    93,   176,    93,
-     176,    -1,   157,    66,   176,    93,   176,    93,   176,    93,
-     176,    -1,   157,    70,   176,    -1,   157,    67,   176,    -1,
-     157,    68,   176,    -1,   157,    69,   176,    -1,   157,    71,
-     176,    -1,    -1,   158,   159,    -1,    41,     6,    80,   160,
-      81,    -1,    -1,   160,   161,    -1,   159,    -1,    42,     6,
-      93,     6,    -1,    42,     6,    93,   162,    -1,   176,    -1,
-     162,    93,   176,    -1,    78,   165,   176,    93,   176,   168,
-      80,   164,    81,    -1,    -1,   164,    79,   176,    -1,   164,
-      76,    -1,    -1,   165,   166,    -1,   165,   167,    -1,    55,
-      -1,    57,    -1,    53,    -1,    51,    -1,    54,    -1,    56,
-      -1,    52,    -1,    -1,   168,   169,    -1,   168,   170,    -1,
-     168,   171,    -1,    64,   176,    93,   176,    -1,    60,   176,
-      -1,    63,   176,    -1,   168,    80,   173,    81,    -1,     9,
-      -1,     4,    -1,    87,     4,    -1,     5,    -1,    87,     5,
-      -1,     6,    -1,   173,   155,     9,    -1,   173,   155,     4,
-      -1,   173,   155,    87,     4,    -1,   173,   155,     5,    -1,
-     173,   155,    87,     5,    -1,   173,   155,     6,    -1,   105,
-      -1,   172,    -1,    -1,   176,    -1,   177,    -1,   177,    86,
-     177,    -1,   177,    87,   177,    -1,   177,    83,   177,    -1,
-     177,    85,   177,    -1,   177,    88,   177,    -1,   177,    89,
-     177,    -1,   177,    84,   177,    -1,    90,   177,    -1,    87,
-     177,    -1,    86,   177,    -1,    94,   177,    95,    -1,   178,
-      -1,    91,   178,    -1,     4,    -1,     5,    -1
+     123,    38,   124,    -1,   123,    23,   103,   154,   175,    93,
+     175,    93,   175,   126,    -1,     6,   154,   175,    93,   175,
+      93,   175,    93,   175,    93,   175,   129,    -1,   175,    93,
+     175,    93,   175,    93,   175,    93,   175,   129,    -1,    -1,
+      93,   175,    93,   175,    -1,    93,   175,    93,   175,    93,
+     130,    -1,    93,   175,    93,   175,    93,   130,    93,   130,
+      -1,   103,   154,   175,    93,   131,    93,   130,    93,   175,
+      93,   175,    93,   175,    93,   175,    93,   130,    -1,   103,
+     154,   175,    93,   131,    93,   130,    93,   175,    93,   175,
+      93,   175,    93,   175,    -1,    21,   175,    93,     6,    -1,
+      -1,    93,   130,    -1,    93,   130,    93,   130,    -1,   130,
+      83,   130,    -1,    94,   130,    95,    -1,   177,    -1,    91,
+     177,    -1,   175,    -1,     6,    -1,    14,   164,   175,    93,
+     175,    93,   175,    93,   175,   139,   133,    80,   134,    81,
+      -1,    -1,   133,    62,   130,    -1,   133,    61,   130,    -1,
+     133,    59,     6,    -1,   133,   128,    -1,   133,   140,    -1,
+     133,    58,   103,    -1,   133,    15,   102,    -1,   133,   168,
+      -1,   133,   169,    -1,   133,   170,    -1,    -1,   134,    36,
+     135,    -1,   134,    37,   137,    -1,   134,    34,   137,    -1,
+     134,    33,   137,    -1,   134,    35,   137,    -1,   134,    27,
+     136,    -1,   134,    28,   136,    -1,   134,    32,   136,    -1,
+     134,    29,   136,    -1,   134,    30,   136,    -1,   134,    24,
+     136,    -1,   134,    31,   136,    -1,   134,    25,   136,    -1,
+     134,    26,   136,    -1,   134,    40,   136,    -1,   134,    39,
+     136,    -1,   134,    38,   136,    -1,   134,    23,   103,   154,
+     175,    93,   175,    93,   175,   126,    -1,   103,   154,   175,
+      93,   131,    93,   130,    93,   175,    93,   175,    93,   175,
+      93,   175,    93,   130,   139,   138,    -1,   103,   154,   175,
+      93,   131,    93,   130,    93,   175,    93,   175,    93,   175,
+      93,   175,   138,    -1,     6,   154,   175,    93,   175,    93,
+     175,    93,   175,    93,   175,   129,   139,   138,    -1,   175,
+      93,   175,    93,   175,    93,   175,    93,   175,   129,   139,
+     138,    -1,    -1,   171,    -1,    -1,    93,   175,    -1,    21,
+     175,    93,     6,    93,   175,    93,   175,   141,    -1,    -1,
+      93,   175,    -1,    15,   164,   167,   143,    -1,    80,   144,
+      81,    -1,    -1,   144,    74,     6,   154,   175,   145,    -1,
+     144,    74,    76,    -1,   144,    75,     6,   145,   143,    -1,
+      -1,    93,    48,   145,    -1,    93,    47,   145,    -1,    93,
+      77,   145,    -1,    93,    49,   145,    -1,    93,    72,   145,
+      -1,    93,    73,   145,    -1,    16,   164,   167,   147,    -1,
+      80,   148,    81,    -1,    -1,   148,    74,     6,   149,    -1,
+     148,    74,    76,    -1,   148,    75,     6,   150,   147,    -1,
+      -1,    93,   175,    -1,    93,   174,    93,   174,   145,    -1,
+      93,   174,    93,   174,    93,   175,    -1,    -1,    93,   175,
+      -1,    93,   174,    93,   175,    -1,    93,   174,    93,   174,
+      93,   175,    -1,    93,   174,    93,   174,    93,   174,    93,
+     175,    -1,   152,    80,   153,    81,    -1,    20,   164,   167,
+      -1,    -1,   153,   175,   154,     6,    -1,    -1,    93,    -1,
+      19,   164,   156,    80,   157,    81,    -1,    -1,   156,    65,
+     175,    93,   175,    93,   175,    93,   175,    -1,   156,    66,
+     175,    93,   175,    93,   175,    93,   175,    -1,   156,    70,
+     175,    -1,   156,    67,   175,    -1,   156,    68,   175,    -1,
+     156,    69,   175,    -1,   156,    71,   175,    -1,    -1,   157,
+     158,    -1,    41,     6,    80,   159,    81,    -1,    -1,   159,
+     160,    -1,   158,    -1,    42,     6,    93,     6,    -1,    42,
+       6,    93,   161,    -1,   175,    -1,   161,    93,   175,    -1,
+      78,   164,   175,    93,   175,   167,    80,   163,    81,    -1,
+      -1,   163,    79,   175,    -1,   163,    76,    -1,    -1,   164,
+     165,    -1,   164,   166,    -1,    55,    -1,    57,    -1,    53,
+      -1,    51,    -1,    54,    -1,    56,    -1,    52,    -1,    -1,
+     167,   168,    -1,   167,   169,    -1,   167,   170,    -1,    64,
+     175,    93,   175,    -1,    60,   175,    -1,    63,   175,    -1,
+     167,    80,   172,    81,    -1,     9,    -1,     4,    -1,    87,
+       4,    -1,     5,    -1,    87,     5,    -1,     6,    -1,   172,
+     154,     9,    -1,   172,   154,     4,    -1,   172,   154,    87,
+       4,    -1,   172,   154,     5,    -1,   172,   154,    87,     5,
+      -1,   172,   154,     6,    -1,   105,    -1,   171,    -1,    -1,
+     175,    -1,   176,    -1,   176,    86,   176,    -1,   176,    87,
+     176,    -1,   176,    83,   176,    -1,   176,    85,   176,    -1,
+     176,    88,   176,    -1,   176,    89,   176,    -1,   176,    84,
+     176,    -1,    90,   176,    -1,    87,   176,    -1,    86,   176,
+      -1,    94,   176,    95,    -1,   177,    -1,    91,   177,    -1,
+       4,    -1,     5,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short yyrline[] =
 {
-       0,   362,   362,   396,   397,   467,   473,   485,   495,   503,
-     503,   547,   553,   560,   570,   571,   580,   581,   582,   606,
-     607,   613,   614,   615,   616,   640,   641,   647,   648,   649,
-     650,   651,   655,   656,   657,   661,   665,   681,   703,   713,
-     721,   729,   733,   737,   748,   753,   762,   786,   787,   788,
-     797,   798,   801,   802,   805,   806,   807,   808,   809,   810,
-     815,   850,   851,   852,   853,   854,   855,   856,   857,   858,
-     859,   862,   863,   864,   865,   866,   867,   868,   869,   870,
-     871,   873,   874,   875,   876,   877,   878,   879,   880,   882,
-     892,   911,   927,   929,   934,   941,   952,   966,   981,   986,
-     987,   991,   992,   993,   997,   998,   999,  1000,  1004,  1009,
-    1017,  1061,  1062,  1063,  1064,  1065,  1066,  1067,  1068,  1069,
-    1070,  1071,  1074,  1075,  1076,  1077,  1078,  1079,  1080,  1081,
-    1082,  1083,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,
-    1094,  1104,  1129,  1145,  1173,  1196,  1197,  1200,  1201,  1205,
-    1212,  1213,  1217,  1240,  1244,  1245,  1254,  1260,  1279,  1280,
-    1281,  1282,  1283,  1284,  1285,  1289,  1314,  1318,  1319,  1335,
-    1341,  1361,  1362,  1366,  1374,  1385,  1386,  1390,  1396,  1404,
-    1424,  1465,  1476,  1477,  1510,  1512,  1517,  1533,  1534,  1544,
-    1554,  1561,  1568,  1575,  1582,  1592,  1593,  1602,  1610,  1611,
-    1620,  1625,  1631,  1640,  1641,  1645,  1671,  1672,  1677,  1686,
-    1687,  1697,  1712,  1713,  1714,  1715,  1718,  1719,  1720,  1724,
-    1725,  1733,  1741,  1759,  1766,  1770,  1774,  1789,  1790,  1791,
-    1792,  1793,  1794,  1795,  1796,  1797,  1798,  1799,  1800,  1804,
-    1805,  1812,  1813,  1817,  1820,  1821,  1822,  1823,  1824,  1825,
-    1826,  1827,  1828,  1829,  1830,  1831,  1832,  1835,  1836
+       0,   361,   361,   395,   396,   466,   472,   484,   494,   502,
+     502,   546,   552,   559,   569,   570,   579,   580,   581,   605,
+     606,   612,   613,   614,   615,   639,   640,   646,   647,   648,
+     649,   650,   654,   655,   656,   660,   664,   680,   702,   712,
+     720,   728,   732,   736,   747,   752,   761,   785,   786,   787,
+     796,   797,   800,   801,   804,   805,   806,   807,   808,   809,
+     814,   849,   850,   851,   852,   853,   854,   855,   856,   857,
+     858,   861,   862,   863,   864,   865,   866,   867,   868,   869,
+     870,   872,   873,   874,   875,   876,   877,   878,   879,   881,
+     891,   916,   938,   940,   945,   952,   963,   977,   992,   997,
+     998,   999,  1003,  1004,  1005,  1006,  1010,  1015,  1023,  1067,
+    1068,  1069,  1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,
+    1080,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089,
+    1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1100,  1110,
+    1135,  1151,  1179,  1202,  1203,  1206,  1207,  1211,  1218,  1219,
+    1223,  1246,  1250,  1251,  1260,  1266,  1285,  1286,  1287,  1288,
+    1289,  1290,  1291,  1295,  1320,  1324,  1325,  1341,  1347,  1367,
+    1368,  1372,  1380,  1391,  1392,  1396,  1402,  1410,  1430,  1471,
+    1482,  1483,  1516,  1518,  1523,  1539,  1540,  1550,  1560,  1567,
+    1574,  1581,  1588,  1598,  1599,  1608,  1616,  1617,  1626,  1631,
+    1637,  1646,  1647,  1651,  1677,  1678,  1683,  1692,  1693,  1703,
+    1718,  1719,  1720,  1721,  1724,  1725,  1726,  1730,  1731,  1739,
+    1747,  1765,  1772,  1776,  1780,  1795,  1796,  1797,  1798,  1799,
+    1800,  1801,  1802,  1803,  1804,  1805,  1806,  1810,  1811,  1818,
+    1819,  1823,  1826,  1827,  1828,  1829,  1830,  1831,  1832,  1833,
+    1834,  1835,  1836,  1837,  1838,  1841,  1842
 };
 #endif
 
@@ -887,16 +887,16 @@
   "bitmap", "cursor", "icon", "font", "fontdir", "messagetable", "rcdata", 
   "dlginit", "userres", "usertype", "accelerators", "events", "acc_opt", 
   "accs", "acc", "dialog", "dlg_attributes", "ctrls", "lab_ctrl", 
-  "ctrl_desc", "iconinfo", "gen_ctrl", "opt_font", "optional_style", 
-  "optional_style_pair", "style", "ctlclass", "dialogex", "dlgex_attribs", 
-  "exctrls", "gen_exctrl", "lab_exctrl", "exctrl_desc", "opt_data", 
-  "helpid", "opt_exfont", "opt_expr", "menu", "menu_body", 
-  "item_definitions", "item_options", "menuex", "menuex_body", 
-  "itemex_definitions", "itemex_options", "itemex_p_options", 
-  "stringtable", "stt_head", "strings", "opt_comma", "versioninfo", 
-  "fix_version", "ver_blocks", "ver_block", "ver_values", "ver_value", 
-  "ver_words", "toolbar", "toolbar_items", "loadmemopts", "lamo", "lama", 
-  "opt_lvc", "opt_language", "opt_characts", "opt_version", "raw_data", 
+  "ctrl_desc", "iconinfo", "gen_ctrl", "opt_font", "optional_style_pair", 
+  "style", "ctlclass", "dialogex", "dlgex_attribs", "exctrls", 
+  "gen_exctrl", "lab_exctrl", "exctrl_desc", "opt_data", "helpid", 
+  "opt_exfont", "opt_expr", "menu", "menu_body", "item_definitions", 
+  "item_options", "menuex", "menuex_body", "itemex_definitions", 
+  "itemex_options", "itemex_p_options", "stringtable", "stt_head", 
+  "strings", "opt_comma", "versioninfo", "fix_version", "ver_blocks", 
+  "ver_block", "ver_values", "ver_value", "ver_words", "toolbar", 
+  "toolbar_items", "loadmemopts", "lamo", "lama", "opt_lvc", 
+  "opt_language", "opt_characts", "opt_version", "raw_data", 
   "raw_elements", "file_raw", "e_expr", "expr", "xpr", "any_num", 0
 };
 #endif
@@ -932,22 +932,22 @@
      122,   123,   123,   123,   123,   123,   123,   123,   123,   123,
      123,   123,   123,   123,   123,   123,   123,   123,   123,   123,
      124,   125,   126,   126,   126,   126,   127,   127,   128,   129,
-     129,   130,   130,   130,   131,   131,   131,   131,   132,   132,
-     133,   134,   134,   134,   134,   134,   134,   134,   134,   134,
-     134,   134,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,
-     135,   136,   136,   137,   138,   139,   139,   140,   140,   141,
-     142,   142,   143,   144,   145,   145,   145,   145,   146,   146,
-     146,   146,   146,   146,   146,   147,   148,   149,   149,   149,
-     149,   150,   150,   150,   150,   151,   151,   151,   151,   151,
-     152,   153,   154,   154,   155,   155,   156,   157,   157,   157,
-     157,   157,   157,   157,   157,   158,   158,   159,   160,   160,
-     161,   161,   161,   162,   162,   163,   164,   164,   164,   165,
-     165,   165,   166,   166,   166,   166,   167,   167,   167,   168,
-     168,   168,   168,   169,   170,   171,   172,   173,   173,   173,
-     173,   173,   173,   173,   173,   173,   173,   173,   173,   174,
-     174,   175,   175,   176,   177,   177,   177,   177,   177,   177,
-     177,   177,   177,   177,   177,   177,   177,   178,   178
+     129,   129,   130,   130,   130,   130,   131,   131,   132,   133,
+     133,   133,   133,   133,   133,   133,   133,   133,   133,   133,
+     134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
+     134,   134,   134,   134,   134,   134,   134,   134,   134,   135,
+     135,   136,   137,   138,   138,   139,   139,   140,   141,   141,
+     142,   143,   144,   144,   144,   144,   145,   145,   145,   145,
+     145,   145,   145,   146,   147,   148,   148,   148,   148,   149,
+     149,   149,   149,   150,   150,   150,   150,   150,   151,   152,
+     153,   153,   154,   154,   155,   156,   156,   156,   156,   156,
+     156,   156,   156,   157,   157,   158,   159,   159,   160,   160,
+     160,   161,   161,   162,   163,   163,   163,   164,   164,   164,
+     165,   165,   165,   165,   166,   166,   166,   167,   167,   167,
+     167,   168,   169,   170,   171,   172,   172,   172,   172,   172,
+     172,   172,   172,   172,   172,   172,   172,   173,   173,   174,
+     174,   175,   176,   176,   176,   176,   176,   176,   176,   176,
+     176,   176,   176,   176,   176,   177,   177
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -963,22 +963,22 @@
        2,     0,     3,     3,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,    10,
       12,    10,     0,     4,     6,     8,    17,    15,     4,     0,
-       2,     0,     2,     4,     3,     3,     1,     2,     1,     1,
-      14,     0,     3,     3,     3,     2,     2,     3,     3,     2,
-       2,     2,     0,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-      10,    19,    16,    14,    12,     0,     1,     0,     2,     9,
-       0,     2,     4,     3,     0,     6,     3,     5,     0,     3,
-       3,     3,     3,     3,     3,     4,     3,     0,     4,     3,
-       5,     0,     2,     5,     6,     0,     2,     4,     6,     8,
-       4,     3,     0,     4,     0,     1,     6,     0,     9,     9,
-       3,     3,     3,     3,     3,     0,     2,     5,     0,     2,
-       1,     4,     4,     1,     3,     9,     0,     3,     2,     0,
-       2,     2,     1,     1,     1,     1,     1,     1,     1,     0,
-       2,     2,     2,     4,     2,     2,     4,     1,     1,     2,
-       1,     2,     1,     3,     3,     4,     3,     4,     3,     1,
-       1,     0,     1,     1,     3,     3,     3,     3,     3,     3,
-       3,     2,     2,     2,     3,     1,     2,     1,     1
+       2,     4,     3,     3,     1,     2,     1,     1,    14,     0,
+       3,     3,     3,     2,     2,     3,     3,     2,     2,     2,
+       0,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,    10,    19,
+      16,    14,    12,     0,     1,     0,     2,     9,     0,     2,
+       4,     3,     0,     6,     3,     5,     0,     3,     3,     3,
+       3,     3,     3,     4,     3,     0,     4,     3,     5,     0,
+       2,     5,     6,     0,     2,     4,     6,     8,     4,     3,
+       0,     4,     0,     1,     6,     0,     9,     9,     3,     3,
+       3,     3,     3,     0,     2,     5,     0,     2,     1,     4,
+       4,     1,     3,     9,     0,     3,     2,     0,     2,     2,
+       1,     1,     1,     1,     1,     1,     1,     0,     2,     2,
+       2,     4,     2,     2,     4,     1,     1,     2,     1,     2,
+       1,     3,     3,     4,     3,     4,     3,     1,     1,     0,
+       1,     1,     3,     3,     3,     3,     3,     3,     3,     2,
+       2,     2,     3,     1,     2,     1,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -986,63 +986,63 @@
    means the default is an error.  */
 static const unsigned short yydefact[] =
 {
-       3,     0,     2,     1,     5,   257,   258,    11,   209,     9,
-       0,     0,     0,     0,     0,     4,     8,     0,    11,   243,
-     255,     0,   219,     0,   253,   252,   251,   256,     0,   182,
+       3,     0,     2,     1,     5,   255,   256,    11,   207,     9,
+       0,     0,     0,     0,     0,     4,     8,     0,    11,   241,
+     253,     0,   217,     0,   251,   250,   249,   254,     0,   180,
        0,     0,     0,     0,     0,     0,     0,     0,    44,    45,
-     209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
-     209,   209,   209,   209,   209,     7,    17,    18,    24,    22,
-      23,    27,    28,    21,    30,   209,    16,    19,    20,    25,
-      26,    31,    29,   215,   218,   214,   216,   212,   217,   213,
-     210,   211,   181,     0,   254,     0,     6,   246,   250,   247,
-     244,   245,   248,   249,   219,   219,   219,     0,     0,   219,
-     219,   219,   219,   187,   219,   219,   219,     0,   219,   219,
-       0,     0,     0,   220,   221,   222,     0,   180,   184,     0,
-      34,    33,    32,   239,     0,   240,    35,    36,     0,     0,
+     207,   207,   207,   207,   207,   207,   207,   207,   207,   207,
+     207,   207,   207,   207,   207,     7,    17,    18,    24,    22,
+      23,    27,    28,    21,    30,   207,    16,    19,    20,    25,
+      26,    31,    29,   213,   216,   212,   214,   210,   215,   211,
+     208,   209,   179,     0,   252,     0,     6,   244,   248,   245,
+     242,   243,   246,   247,   217,   217,   217,     0,     0,   217,
+     217,   217,   217,   185,   217,   217,   217,     0,   217,   217,
+       0,     0,     0,   218,   219,   220,     0,   178,   182,     0,
+      34,    33,    32,   237,     0,   238,    35,    36,     0,     0,
        0,     0,    40,    41,     0,    38,    39,    37,     0,    42,
-      43,   224,   225,     0,    10,   185,     0,    47,     0,     0,
-       0,   154,   152,   167,   165,     0,     0,     0,     0,     0,
-       0,     0,   195,     0,     0,   183,     0,   228,   230,   232,
-     227,     0,   184,     0,     0,     0,     0,     0,     0,   191,
-     192,   193,   190,   194,     0,   219,   223,     0,    46,     0,
-     229,   231,   226,     0,     0,     0,     0,     0,   153,     0,
-       0,   166,     0,     0,     0,   186,   196,     0,     0,     0,
-     234,   236,   238,   233,     0,     0,     0,   184,   156,   158,
-     171,   169,   175,     0,     0,     0,   206,    50,    50,   235,
-     237,     0,     0,     0,     0,     0,   241,   168,   241,     0,
-       0,     0,   198,     0,     0,    48,    49,    61,   147,   158,
-     158,   158,   158,   158,   158,   158,   157,     0,   172,     0,
-     176,   170,     0,     0,     0,   208,     0,   205,    56,    55,
-      57,    58,    59,    54,    51,    52,     0,     0,   111,   155,
-     160,   159,   162,   163,   164,   161,   241,   241,     0,     0,
-       0,   197,   200,   199,   207,     0,     0,     0,     0,     0,
-       0,     0,    71,    65,    68,    69,    70,   148,     0,   158,
-     242,     0,   177,   188,   189,     0,    53,    13,    67,    12,
-       0,    15,    14,    66,    64,     0,     0,    63,   106,    62,
-       0,     0,     0,     0,     0,     0,     0,   122,   115,   116,
-     119,   120,   121,     0,   173,   241,     0,     0,   107,     0,
+      43,   222,   223,     0,    10,   183,     0,    47,     0,     0,
+       0,   152,   150,   165,   163,     0,     0,     0,     0,     0,
+       0,     0,   193,     0,     0,   181,     0,   226,   228,   230,
+     225,     0,   182,     0,     0,     0,     0,     0,     0,   189,
+     190,   191,   188,   192,     0,   217,   221,     0,    46,     0,
+     227,   229,   224,     0,     0,     0,     0,     0,   151,     0,
+       0,   164,     0,     0,     0,   184,   194,     0,     0,     0,
+     232,   234,   236,   231,     0,     0,     0,   182,   154,   156,
+     169,   167,   173,     0,     0,     0,   204,    50,    50,   233,
+     235,     0,     0,     0,     0,     0,   239,   166,   239,     0,
+       0,     0,   196,     0,     0,    48,    49,    61,   145,   156,
+     156,   156,   156,   156,   156,   156,   155,     0,   170,     0,
+     174,   168,     0,     0,     0,   206,     0,   203,    56,    55,
+      57,    58,    59,    54,    51,    52,     0,     0,   109,   153,
+     158,   157,   160,   161,   162,   159,   239,   239,     0,     0,
+       0,   195,   198,   197,   205,     0,     0,     0,     0,     0,
+       0,     0,    71,    65,    68,    69,    70,   146,     0,   156,
+     240,     0,   175,   186,   187,     0,    53,    13,    67,    12,
+       0,    15,    14,    66,    64,     0,     0,    63,   104,    62,
+       0,     0,     0,     0,     0,     0,     0,   120,   113,   114,
+     117,   118,   119,     0,   171,   239,     0,     0,   105,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    60,
-     118,     0,   117,   114,   113,   112,     0,   174,     0,   178,
-     201,   202,   203,    98,   105,   104,   184,   184,    82,    84,
+     116,     0,   115,   112,   111,   110,     0,   172,     0,   176,
+     199,   200,   201,    98,   103,   102,   182,   182,    82,    84,
       85,    77,    78,    80,    81,    83,    79,    75,     0,    74,
-      76,   184,    72,    73,    88,    87,    86,     0,     0,     0,
+      76,   182,    72,    73,    88,    87,    86,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   110,     0,     0,     0,
-       0,     0,     0,    98,   184,   184,   133,   135,   136,   128,
-     129,   131,   132,   134,   130,   126,     0,   125,   127,   184,
-     123,   124,   139,   138,   137,   179,   204,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   108,     0,     0,     0,
+       0,     0,     0,    98,   182,   182,   131,   133,   134,   126,
+     127,   129,   130,   132,   128,   124,     0,   123,   125,   182,
+     121,   122,   137,   136,   135,   177,   202,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   109,     0,
-     108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     150,     0,     0,     0,     0,    92,     0,     0,     0,     0,
-     149,     0,     0,     0,     0,     0,    89,     0,     0,     0,
-     151,    92,     0,     0,     0,     0,     0,    99,     0,   140,
-       0,     0,     0,     0,     0,     0,    91,     0,     0,   101,
-       0,    93,    99,   100,     0,     0,     0,   147,     0,     0,
-      90,     0,   101,   102,   145,     0,    94,     0,   147,     0,
-     144,   146,     0,     0,     0,   145,   103,     0,    95,    97,
-     143,     0,     0,   145,    96,     0,   142,   147,   145,   141
+       0,     0,     0,     0,     0,     0,     0,     0,   107,     0,
+     106,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     148,     0,     0,     0,     0,    92,     0,     0,     0,     0,
+     147,     0,     0,     0,     0,     0,    89,     0,     0,     0,
+     149,    92,     0,     0,     0,     0,     0,    99,     0,   138,
+       0,     0,     0,     0,     0,     0,    91,     0,     0,    99,
+       0,    93,    99,   100,     0,     0,   145,     0,     0,    90,
+       0,     0,    99,   143,     0,    94,   101,     0,   145,   142,
+     144,     0,     0,     0,   143,     0,    95,    97,   141,     0,
+       0,   143,    96,     0,   140,   145,   143,   139
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
@@ -1051,239 +1051,237 @@
       -1,     1,     2,    15,    23,    21,   322,   323,    55,   123,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,   166,   245,   274,   275,    67,   276,   330,   388,   397,
-     506,   402,   303,   526,   537,   327,   479,    68,   308,   376,
-     450,   436,   445,   550,   278,   339,   500,    69,   152,   175,
-     235,    70,   154,   176,   237,   239,    16,    17,    85,   146,
-      71,   134,   184,   206,   264,   293,   381,    72,   243,    22,
-      80,    81,   124,   113,   114,   115,   125,   172,   126,   257,
-     319,    19,    20
+     506,   402,   303,   526,   327,   479,    68,   308,   376,   450,
+     436,   445,   549,   278,   339,   500,    69,   152,   175,   235,
+      70,   154,   176,   237,   239,    16,    17,    85,   146,    71,
+     134,   184,   206,   264,   293,   381,    72,   243,    22,    80,
+      81,   124,   113,   114,   115,   125,   172,   126,   257,   319,
+      19,    20
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -492
+#define YYPACT_NINF -524
 static const short yypact[] =
 {
-    -492,    13,     3,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-     238,   238,   238,    64,   238,  -492,  -492,   -56,  -492,   405,
-    -492,   363,   617,   238,  -492,  -492,  -492,  -492,   556,  -492,
-     363,   238,   238,   238,   238,   238,   238,   238,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-    -492,  -492,   -45,   -53,  -492,    82,  -492,   232,   368,   309,
-     134,   134,  -492,  -492,   617,   282,   282,    80,    80,   617,
-     617,   282,   282,   617,   282,   282,   282,    80,   282,   282,
-     238,   238,   238,  -492,  -492,  -492,   238,  -492,   -44,   -38,
-    -492,  -492,  -492,  -492,    18,  -492,  -492,  -492,   -23,    11,
-     199,   289,  -492,  -492,   407,  -492,  -492,  -492,    34,  -492,
-    -492,  -492,  -492,    95,  -492,  -492,    67,  -492,    41,   238,
-     238,  -492,  -492,  -492,  -492,   238,   238,   238,   238,   238,
-     238,   238,  -492,   238,   238,  -492,    26,  -492,  -492,  -492,
-    -492,   241,   -52,    97,   103,   128,   175,   112,   115,  -492,
-    -492,  -492,  -492,  -492,   -27,  -492,  -492,   121,  -492,   123,
-    -492,  -492,  -492,    57,   238,   238,    -5,    86,  -492,    -1,
-     109,  -492,   238,   238,   139,  -492,  -492,   359,   238,   238,
-    -492,  -492,  -492,  -492,   278,   131,   144,   -44,  -492,   148,
-     161,  -492,   174,   181,   185,   192,  -492,   198,   198,  -492,
-    -492,   238,   238,   238,   204,   214,   238,  -492,   238,   218,
-     238,   238,  -492,   179,   498,  -492,  -492,  -492,   211,   148,
-     148,   148,   148,   148,   148,   148,  -492,   217,   220,   233,
-     220,  -492,   234,   247,   -30,  -492,   238,  -492,  -492,  -492,
-    -492,  -492,  -492,  -492,   253,  -492,   330,   238,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,   238,   238,   238,   238,
-     169,  -492,  -492,  -492,  -492,   498,   206,   238,    32,   293,
-      12,    12,  -492,  -492,  -492,  -492,  -492,  -492,   341,   261,
-    -492,   271,   220,  -492,  -492,   272,  -492,  -492,  -492,  -492,
-     273,  -492,  -492,  -492,  -492,    64,    12,   231,  -492,   231,
-     565,   206,   238,    32,   297,    12,    12,  -492,  -492,  -492,
-    -492,  -492,  -492,    52,  -492,   238,   215,   362,  -492,    -7,
-      12,    32,   365,   365,   365,   365,   365,   365,   365,   365,
-     365,   238,   238,   238,    32,   238,   365,   365,   365,  -492,
-    -492,   290,  -492,  -492,   231,   231,   583,  -492,   294,   220,
-    -492,   313,  -492,  -492,  -492,  -492,   -44,   -44,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,   314,  -492,
-    -492,   -44,  -492,  -492,  -492,  -492,  -492,   402,    32,   403,
-     403,   403,   403,   403,   403,   403,   403,   403,   238,   238,
-     238,    32,   238,   403,   403,   403,  -492,   238,   238,   238,
-     238,   238,   238,   321,   -44,   -44,  -492,  -492,  -492,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,   331,  -492,  -492,   -44,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,   338,   347,   349,
-     350,   238,   238,   238,   238,   238,   238,   238,   238,   221,
-     351,   353,   354,   356,   357,   376,   377,   378,  -492,   409,
-    -492,   238,   238,   238,   238,   221,   238,   238,   238,    12,
-     415,   422,   430,   431,   434,   435,   436,   437,    47,   238,
-    -492,   238,   238,   238,    12,   238,  -492,   238,   238,   238,
-    -492,   435,   438,   439,    58,   442,   444,   445,   447,  -492,
-     238,   238,   238,   238,   238,    12,  -492,   238,   452,   453,
-     456,   458,   445,   231,   460,   238,    12,   211,   238,    12,
-    -492,   238,   453,    94,   388,   461,    96,   462,   211,    12,
-    -492,  -492,   238,    12,   238,   388,   231,   463,   231,   464,
-    -492,   238,    12,   135,   231,    12,  -492,   111,   388,  -492
+    -524,    22,     3,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+     222,   222,   222,   288,   222,  -524,  -524,   -56,  -524,   387,
+    -524,   361,   459,   222,  -524,  -524,  -524,  -524,   407,  -524,
+     361,   222,   222,   222,   222,   222,   222,   222,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+    -524,  -524,   341,   -67,  -524,    82,  -524,   442,   455,   335,
+     229,   229,  -524,  -524,   459,   343,   343,    80,    80,   459,
+     459,   343,   343,   459,   343,   343,   343,    80,   343,   343,
+     222,   222,   222,  -524,  -524,  -524,   222,  -524,   -44,   -45,
+    -524,  -524,  -524,  -524,    18,  -524,  -524,  -524,   -24,   -16,
+     187,   192,  -524,  -524,   258,  -524,  -524,  -524,    11,  -524,
+    -524,  -524,  -524,    28,  -524,  -524,    85,  -524,    41,   222,
+     222,  -524,  -524,  -524,  -524,   222,   222,   222,   222,   222,
+     222,   222,  -524,   222,   222,  -524,    26,  -524,  -524,  -524,
+    -524,   388,   -52,    56,    59,   283,   328,    91,    93,  -524,
+    -524,  -524,  -524,  -524,   -27,  -524,  -524,   109,  -524,   111,
+    -524,  -524,  -524,    57,   222,   222,    -5,   139,  -524,    -1,
+     169,  -524,   222,   222,   207,  -524,  -524,   198,   222,   222,
+    -524,  -524,  -524,  -524,   436,   132,   135,   -44,  -524,   147,
+     160,  -524,   164,   166,   170,    -7,  -524,   188,   188,  -524,
+    -524,   222,   222,   222,   242,     8,   222,  -524,   222,    35,
+     222,   222,  -524,   -11,   199,  -524,  -524,  -524,   212,   147,
+     147,   147,   147,   147,   147,   147,  -524,   246,   247,   254,
+     247,  -524,   259,   261,   -30,  -524,   222,  -524,  -524,  -524,
+    -524,  -524,  -524,  -524,   269,  -524,   273,   222,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,   222,   222,   222,   222,
+     270,  -524,  -524,  -524,  -524,   199,   183,   222,    32,   316,
+      12,    12,  -524,  -524,  -524,  -524,  -524,  -524,   327,   313,
+    -524,   315,   247,  -524,  -524,   320,  -524,  -524,  -524,  -524,
+     322,  -524,  -524,  -524,  -524,   288,    12,   298,  -524,   298,
+     561,   183,   222,    32,   413,    12,    12,  -524,  -524,  -524,
+    -524,  -524,  -524,    52,  -524,   222,   210,   432,  -524,   -19,
+      12,    32,   462,   462,   462,   462,   462,   462,   462,   462,
+     462,   222,   222,   222,    32,   222,   462,   462,   462,  -524,
+    -524,   349,  -524,  -524,   298,   298,   579,  -524,   384,   247,
+    -524,   385,  -524,  -524,  -524,  -524,   -44,   -44,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,   394,  -524,
+    -524,   -44,  -524,  -524,  -524,  -524,  -524,   482,    32,   483,
+     483,   483,   483,   483,   483,   483,   483,   483,   222,   222,
+     222,    32,   222,   483,   483,   483,  -524,   222,   222,   222,
+     222,   222,   222,   405,   -44,   -44,  -524,  -524,  -524,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,   411,  -524,  -524,   -44,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,   415,   424,   430,
+     439,   222,   222,   222,   222,   222,   222,   222,   222,   216,
+     441,   443,   444,   445,   453,   460,   461,   463,  -524,   466,
+    -524,   222,   222,   222,   222,   216,   222,   222,   222,    12,
+     476,   477,   478,   480,   484,   485,   486,   488,     9,   222,
+    -524,   222,   222,   222,    12,   222,  -524,   222,   222,   222,
+    -524,   485,   489,   527,    58,   536,   537,   538,   539,  -524,
+     222,   222,   222,   222,   222,    12,  -524,   222,   540,   538,
+     544,   546,   538,    67,   547,   222,   212,   222,    12,  -524,
+      12,   222,   538,   219,   548,   106,   298,   552,   212,  -524,
+    -524,   222,    12,   222,   219,   556,   298,   559,  -524,   222,
+      12,   131,   298,    12,  -524,   126,   219,  -524
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-    -492,  -492,  -492,  -492,  -492,   440,  -276,  -173,   465,  -492,
-    -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,  -492,
-    -492,  -492,   268,  -492,   203,  -492,  -492,  -492,   210,   -94,
-      49,  -492,   254,    40,    31,  -292,    89,  -492,  -492,  -492,
-    -492,   242,  -270,  -491,  -446,  -492,  -492,  -492,   344,  -492,
-     -69,  -492,   342,  -492,  -492,  -492,  -492,  -492,  -492,  -169,
-    -492,  -492,  -492,   316,  -492,  -492,  -492,  -492,  -492,   584,
-    -492,  -492,   -20,  -249,  -248,  -243,  -213,  -492,   408,  -234,
-      -2,   401,    22
+    -524,  -524,  -524,  -524,  -524,   534,  -276,  -110,   525,  -524,
+    -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,  -524,
+    -524,  -524,   425,  -524,   359,  -524,  -524,  -524,   208,     4,
+     144,  -524,   348,  -402,  -292,   172,  -524,  -524,  -524,  -524,
+     211,   128,  -356,  -523,  -524,  -524,  -524,   423,  -524,   -72,
+    -524,   420,  -524,  -524,  -524,  -524,  -524,  -524,  -169,  -524,
+    -524,  -524,   397,  -524,  -524,  -524,  -524,  -524,   404,  -524,
+    -524,   -20,  -249,  -248,  -236,  -358,  -524,   542,  -234,    -2,
+     400,    20
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -243
+#define YYTABLE_NINF -241
 static const short yytable[] =
 {
       18,   217,    82,   193,   259,   220,     4,     5,     6,   329,
-       7,   204,   290,     3,   204,   110,     5,     6,   111,   112,
-     318,    83,   110,     8,    29,   111,   112,   304,   305,   192,
-       5,     6,   187,   306,   349,    27,     5,     6,   321,   317,
-     116,   145,   147,   374,   375,   167,   168,   169,   233,   145,
+       7,   204,   290,   543,   204,   110,     5,     6,   111,   112,
+     318,    83,     3,     8,    29,   554,   116,   304,   305,   192,
+       5,     6,   187,    27,   349,   147,     5,     6,   321,   317,
+     306,   145,   566,   374,   375,   167,   168,   169,   233,   145,
      170,   291,   309,   311,   205,   370,     5,     6,   385,   340,
-     341,   210,   211,   212,   560,   342,   213,     9,     5,     6,
-     149,   218,   566,   165,   119,   221,   350,   569,   110,   130,
-     131,   111,   112,   118,     5,     6,     5,     6,   384,    10,
-      11,   544,   219,    12,    13,   128,   129,    14,   148,   250,
-     251,   252,   555,   325,   150,   138,   326,   188,   141,   142,
-     143,   378,    10,    11,   144,   222,    12,    13,    10,    11,
-      14,   568,    12,    13,   253,   254,    14,   163,   171,   255,
-     350,    73,    74,    75,    76,    77,    78,    79,    10,    11,
-     509,   350,    12,    13,   214,   225,    14,   173,   174,   447,
-     448,   522,   451,   177,   178,   179,   180,   181,   182,   183,
-     372,   185,   186,   117,   189,   207,    10,    11,    10,    11,
-      12,    13,    12,    13,    14,   315,    14,   350,   386,   350,
-     279,   280,   281,   282,   283,   284,   285,   549,   164,   553,
-     194,   401,   215,   216,   350,  -219,   195,   498,  -219,  -219,
-     223,   224,   196,   197,   277,   202,   227,   228,   203,   198,
-       5,     6,   514,   317,   208,  -219,   209,   429,   430,     5,
-       6,   380,    36,    37,   231,     5,     6,   478,   565,   247,
-     248,   249,   432,   533,   258,   434,   260,   232,   262,   263,
-     344,   234,     5,     6,   543,   190,   191,   546,   449,   199,
-     200,   250,   251,   252,   236,   265,   201,   556,   266,   110,
-     267,   558,   111,   112,   294,   462,   463,   238,   399,   400,
-     564,   403,   242,   567,   240,   307,   253,   254,   241,   151,
-     465,   255,   229,   230,   310,   312,   313,   314,   120,   121,
-     122,   244,    10,    11,   151,   320,    12,    13,   153,   324,
-      14,    10,    11,   373,   277,    12,    13,    10,    11,    14,
-     286,    12,    13,  -242,   350,    14,    32,    33,    34,    35,
-      36,    37,   328,   328,    10,    11,   287,   288,    12,    13,
-     371,   551,    14,    73,    74,    75,    76,    77,    78,    79,
-     289,   377,   551,   379,   382,   296,   295,   348,   328,   110,
-     551,   297,   111,   112,   343,   551,   331,   328,   328,   398,
-     398,   398,   332,   398,   345,   346,   347,    38,   383,   153,
-      39,   387,   328,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,   407,    50,    51,    52,   427,   298,   299,
-     110,   300,   301,   111,   112,    34,    35,    36,    37,   333,
-     334,   110,   335,   336,   111,   112,   428,   431,   433,   435,
-     302,    24,    25,    26,   461,    28,   446,   446,   446,   110,
-     446,   337,   111,   112,   464,   455,   456,   457,   458,   459,
-     460,   466,    87,    88,    89,    90,    91,    92,    93,   226,
-     467,    53,   468,   469,   481,    54,   482,   483,  -219,   484,
-     485,  -219,  -219,    33,    34,    35,    36,    37,    30,   470,
-     471,   472,   473,   474,   475,   476,   477,   480,  -219,   486,
-     487,   488,   155,   156,   157,   158,   159,   160,   161,   490,
-     491,   492,   493,   480,   495,   496,   497,   162,    31,    32,
-      33,    34,    35,    36,    37,    86,   246,   510,   316,   511,
-     512,   513,   489,   515,   127,   516,   517,   518,   499,   132,
-     133,   328,   135,   136,   137,   501,   139,   140,   528,   529,
-     530,   531,   532,   502,   503,   534,   328,   504,   505,   507,
-     508,   520,   521,   542,   268,   523,   545,   524,   525,   547,
-     527,   269,   270,   271,   272,   535,   536,   328,   273,   538,
-     557,   539,   559,   541,   552,   554,   561,   562,   328,   563,
-     519,   328,   338,   389,   390,   391,   392,   393,   394,   395,
-     396,   328,   540,   548,   494,   328,   404,   405,   406,   256,
-     292,   261,     0,     0,   328,     0,     0,   328,   351,   352,
-     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
-     363,   364,   365,   366,   367,   368,   408,   409,   410,   411,
-     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
-     422,   423,   424,   425,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,    31,
-      32,    33,    34,    35,    36,    37,   369,     0,     0,   109,
-       0,    84,   437,   438,   439,   440,   441,   442,   443,   444,
-       0,     0,     0,     0,   426,   452,   453,   454,    73,    74,
-      75,    76,    77,    78,    79
+     341,   210,   211,   212,   350,   265,   213,     9,   266,   149,
+     267,   218,   342,   242,   119,   221,   384,   150,   110,   130,
+     131,   111,   112,   118,     5,     6,     5,     6,   151,    10,
+      11,   165,   350,    12,    13,   128,   129,    14,   148,   250,
+     251,   252,   509,   325,   163,   138,   326,   188,   141,   142,
+     143,   378,    10,    11,   144,   153,    12,    13,    10,    11,
+      14,   164,    12,    13,   253,   254,    14,   536,   171,   255,
+     539,    73,    74,    75,    76,    77,    78,    79,    10,    11,
+     548,   350,    12,    13,   214,   219,    14,   173,   174,   194,
+     350,   522,   195,   177,   178,   179,   180,   181,   182,   183,
+     540,   185,   186,   117,   189,   207,    10,    11,    10,    11,
+      12,    13,    12,    13,    14,   222,    14,   279,   280,   281,
+     282,   283,   284,   285,   202,   550,   203,     5,     6,   350,
+     317,  -217,   215,   216,  -217,  -217,   550,   498,   558,   552,
+     223,   224,   208,   550,   209,   564,   227,   228,   550,   350,
+     567,  -217,   514,   225,     5,     6,   380,   429,   430,   277,
+       5,     6,   478,   372,   563,   231,     5,     6,   232,   247,
+     248,   249,   432,   533,   258,   268,   260,   344,   262,   263,
+     234,   386,   269,   270,   271,   272,   545,   110,   546,   273,
+     111,   112,   110,   236,   401,   111,   112,   238,   110,   240,
+     556,   111,   112,   241,   294,   462,   463,   151,   562,    10,
+      11,   565,   153,    12,    13,   307,   315,    14,   226,  -217,
+     465,   244,  -217,  -217,   310,   312,   313,   314,   296,   250,
+     251,   252,     5,     6,   297,   320,    10,    11,   434,  -217,
+      12,    13,    10,    11,    14,   277,    12,    13,    10,    11,
+      14,   449,    12,    13,   253,   254,    14,    36,    37,   255,
+     328,   328,   324,   155,   156,   157,   158,   159,   160,   161,
+     371,   298,   299,   110,   300,   301,   111,   112,   162,   286,
+    -240,   377,   331,   379,   382,   348,   328,   287,   332,   120,
+     121,   122,   288,   302,   289,   328,   328,   196,   197,   398,
+     398,   398,   295,   398,   198,    38,   399,   400,    39,   403,
+     328,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,   350,    50,    51,    52,   333,   334,   110,   335,   336,
+     111,   112,   190,   191,    73,    74,    75,    76,    77,    78,
+      79,   110,   199,   200,   111,   112,   343,   337,   345,   201,
+      24,    25,    26,   346,    28,   347,   446,   446,   446,   373,
+     446,    34,    35,    36,    37,   455,   456,   457,   458,   459,
+     460,    87,    88,    89,    90,    91,    92,    93,   383,    53,
+     229,   230,   407,    54,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   470,
+     471,   472,   473,   474,   475,   476,   477,   480,   387,   109,
+      31,    32,    33,    34,    35,    36,    37,   427,   428,   490,
+     491,   492,   493,   480,   495,   496,   497,   431,   433,   435,
+      31,    32,    33,    34,    35,    36,    37,   510,   461,   511,
+     512,   513,    84,   515,   464,   516,   517,   518,   466,   328,
+      73,    74,    75,    76,    77,    78,    79,   467,   528,   529,
+     530,   531,   532,   468,   328,   534,    32,    33,    34,    35,
+      36,    37,   469,   542,   481,   544,   482,   483,   484,   547,
+      33,    34,    35,    36,    37,   328,   485,   447,   448,   555,
+     451,   557,    30,   486,   487,    86,   488,   561,   328,   489,
+     328,   389,   390,   391,   392,   393,   394,   395,   396,   499,
+     501,   502,   328,   503,   404,   405,   406,   504,   505,   507,
+     328,   508,   520,   328,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   408,   409,   410,   411,   412,   413,   414,   415,
+     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
+     521,   437,   438,   439,   440,   441,   442,   443,   444,   523,
+     524,   525,   527,   535,   452,   453,   454,   537,   127,   538,
+     541,   551,   369,   132,   133,   553,   135,   136,   137,   559,
+     139,   140,   560,   246,   316,   519,   338,   494,   256,   261,
+     426,   292
 };
 
-static const short yycheck[] =
+static const unsigned short yycheck[] =
 {
        2,     6,    22,   172,   238,     6,     3,     4,     5,   301,
-       7,    41,    42,     0,    41,    60,     4,     5,    63,    64,
-     296,    23,    60,    20,    80,    63,    64,   276,   276,    81,
-       4,     5,     6,   276,   326,    13,     4,     5,     6,     7,
-      93,    93,    80,   335,   336,     4,     5,     6,   217,    93,
+       7,    41,    42,   536,    41,    60,     4,     5,    63,    64,
+     296,    23,     0,    20,    80,   548,    93,   276,   276,    81,
+       4,     5,     6,    13,   326,    80,     4,     5,     6,     7,
+     276,    93,   565,   335,   336,     4,     5,     6,   217,    93,
        9,    81,   286,   287,    81,   331,     4,     5,   350,   308,
-     308,     4,     5,     6,   555,   308,     9,    64,     4,     5,
-      93,    76,   563,     6,    94,    76,    83,   568,    60,    99,
-     100,    63,    64,    85,     4,     5,     4,     5,    95,    86,
-      87,   537,     6,    90,    91,    97,    98,    94,    80,    47,
-      48,    49,   548,    91,    93,   107,    94,    81,   110,   111,
-     112,   345,    86,    87,   116,     6,    90,    91,    86,    87,
-      94,   567,    90,    91,    72,    73,    94,    93,    87,    77,
-      83,    51,    52,    53,    54,    55,    56,    57,    86,    87,
-      93,    83,    90,    91,    87,     6,    94,   149,   150,   419,
-     420,    93,   422,   155,   156,   157,   158,   159,   160,   161,
-     333,   163,   164,    81,   166,   185,    86,    87,    86,    87,
-      90,    91,    90,    91,    94,     6,    94,    83,   351,    83,
-     249,   250,   251,   252,   253,   254,   255,    93,    93,    93,
-      93,   364,   194,   195,    83,    60,    93,   489,    63,    64,
-     202,   203,    74,    75,    93,    93,   208,   209,    93,    81,
-       4,     5,   504,     7,    93,    80,    93,   386,   387,     4,
-       5,     6,    88,    89,    93,     4,     5,     6,    93,   231,
-     232,   233,   401,   525,   236,   408,   238,    93,   240,   241,
-     309,    93,     4,     5,   536,     4,     5,   539,   421,    74,
-      75,    47,    48,    49,    93,    76,    81,   549,    79,    60,
-      81,   553,    63,    64,   266,   434,   435,    93,   362,   363,
-     562,   365,    80,   565,    93,   277,    72,    73,    93,    80,
-     449,    77,     4,     5,   286,   287,   288,   289,     6,     7,
-       8,    93,    86,    87,    80,   297,    90,    91,    80,     6,
-      94,    86,    87,     6,    93,    90,    91,    86,    87,    94,
-      93,    90,    91,    93,    83,    94,    84,    85,    86,    87,
-      88,    89,   300,   301,    86,    87,    93,    93,    90,    91,
-     332,   544,    94,    51,    52,    53,    54,    55,    56,    57,
-      93,   343,   555,   345,   346,    15,    93,   325,   326,    60,
-     563,    21,    63,    64,    93,   568,    15,   335,   336,   361,
-     362,   363,    21,   365,    93,    93,    93,     4,     6,    80,
-       7,     6,   350,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    93,    21,    22,    23,    93,    58,    59,
-      60,    61,    62,    63,    64,    86,    87,    88,    89,    58,
[truncated at 1000 lines; 2218 more skipped]