Better ambigous comments handling.


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@915 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c
index 8fabc24..6cc0cb9 100644
--- a/libasn1parser/asn1p_l.c
+++ b/libasn1parser/asn1p_l.c
@@ -312,245 +312,249 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 130
-#define YY_END_OF_BUFFER 131
-static yyconst short int yy_acclist[1259] =
+#define YY_NUM_RULES 133
+#define YY_END_OF_BUFFER 134
+static yyconst short int yy_acclist[1263] =
     {   0,
-      131,  129,  130,  124,  129,  130,  124,  130,  127,  129,
-      130,   15,  129,  130,  127,  129,  130,  129,  130,  127,
-      129,  130,  129,  130,  127,  129,  130,  129,  130,   29,
-      129,  130,   28,  129,  130,  127,  129,  130,  129,  130,
-      116,  117,  129,  130,  116,  117,  129,  130,  116,  117,
-      129,  130,  116,  117,  129,  130,  116,  117,  129,  130,
-      116,  117,  129,  130,  116,  117,  129,  130,  116,  117,
-      129,  130,  116,  117,  129,  130,  116,  117,  129,  130,
-      116,  117,  129,  130,  116,  117,  129,  130,  116,  117,
-      129,  130,  116,  117,  129,  130,  116,  117,  129,  130,
+      134,  132,  133,  127,  132,  133,  127,  133,  130,  132,
+      133,   18,  132,  133,  130,  132,  133,  132,  133,  130,
+      132,  133,  132,  133,  130,  132,  133,  132,  133,   32,
+      132,  133,   31,  132,  133,  130,  132,  133,  132,  133,
+      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
+      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,
+      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
+      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,
+      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
+      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,
 
-      116,  117,  129,  130,  116,  117,  129,  130,  116,  117,
-      129,  130,  116,  117,  129,  130,  115,  129,  130,  127,
-      129,  130,    5,  129,  130,    2,  130,    2,  129,  130,
-        4,  129,  130,    7,    9,  129,  130,    7,  130,    9,
-      129,  130,    9,  129,  130,   17,  129,  130,   17,  130,
-       18,  129,  130,   12,  129,  130,   12,  130,   14,  129,
-      130,   14,  129,  130,   10,  129,  130,   11,  129,  130,
-       21,   23,  129,  130,   23,  129,  130,   24,  130,   21,
-       22,   23,  129,  130,   21,   22,   23,  129,  130,  121,
-      129,  130,  122,  129,  130,  122,  130,  129,  130,  123,
+      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
+      132,  133,  119,  120,  132,  133,  118,  132,  133,  130,
+      132,  133,    8,  132,  133,    5,  133,    5,  132,  133,
+        7,  132,  133,    7,  132,  133,   10,   12,  132,  133,
+       10,  133,   12,  132,  133,   12,  132,  133,   20,  132,
+      133,   20,  133,   21,  132,  133,   15,  132,  133,   15,
+      133,   17,  132,  133,   17,  132,  133,   13,  132,  133,
+       14,  132,  133,   24,   26,  132,  133,   26,  132,  133,
+       27,  133,   24,   25,   26,  132,  133,   24,   25,   26,
+      132,  133,  124,  132,  133,  125,  132,  133,  125,  133,
 
-      129,  130,  124,   15,   15,  113,  114,    1,   27,  120,
-        6,   28,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  117,  116,  117,  116,  117,  116,
-      117,  116,  117,   39,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  117,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  117,  116,  117,  116,  117,   84,  116,  117,
-      116,  117,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  117,  116,  117,  116,  117,  116,  117,  116,  117,
+      132,  133,  126,  132,  133,  127,   18,   18,  116,  117,
+        4,   30,  123,    9,   31,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,   42,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  120,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  120,  119,  120,  119,  120,
+       87,  119,  120,  119,  120,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,  120,  119,  120,  119,  120,  119,
 
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      117,  116,  117,  116,  117,  117,  117,  116,  117,  115,
-        5,    3,    8,   17,   16,   12,   21,   21,   22,   21,
-       22,  121,  122,  128,  113,  114,   27,  119,  118,  116,
-      117,   31,  116,  117,   32,  116,  117,  116,  117,  116,
-      117,  116,  117,   36,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,   53,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  117,  117,  116,  117,  116,  117,  116,  117,  116,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  120,  119,  120,  119,  120,  120,  120,
+      119,  120,  118,    8,    6,    6,   11,   20,   19,   15,
+       24,   24,   25,   24,   25,  124,  125,  131,  116,  117,
+       30,  122,  121,  119,  120,  120,  119,  120,   34,  119,
+      120,   35,  119,  120,  119,  120,  119,  120,  119,  120,
+       39,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,   56,  119,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  120,  120,
 
-      117,  116,  117,  116,  117,  116,  117,   76,  116,  117,
-       77,  116,  117,  116,  117,  117,  116,  117,  116,  117,
-      116,  117,  117,  116,  117,   87,  116,  117,  116,  117,
-      116,  117,  116,  117,  117,  116,  117,  116,  117,  116,
-      117,   95,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  117,  116,
-      117,  116,  117,  116,  117,  117,  117,  117,  116,  117,
-       13,   21,   22,   20,   21,   22,   26,   25,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,   79,  119,  120,   80,  119,  120,
+      119,  120,  120,  119,  120,  119,  120,  119,  120,  120,
+      119,  120,   90,  119,  120,  119,  120,  119,  120,  119,
+      120,  120,  119,  120,  119,  120,  119,  120,   98,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  120,  119,  120,  119,  120,
+      119,  120,  120,  120,  120,  119,  120,  118,    3,   16,
+       24,   25,   23,   24,   25,  116,  117,   29,   28,    2,
+        1,  119,  120,  119,  120,  119,  120,  119,  120,  119,
 
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,   61,  116,  117,  117,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,   79,  116,  117,  117,  116,
-      117,  116,  117,  116,  117,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  117,   92,  116,  117,  116,  117,
-      116,  117,   96,  116,  117,  116,  117,  116,  117,  116,
-      117,  100,  116,  117,  102,  116,  117,  116,  117,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,   64,  119,  120,  120,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,   82,  119,
+      120,  120,  119,  120,  119,  120,  119,  120,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  120,   95,  119,
+      120,  119,  120,  119,  120,   99,  119,  120,  119,  120,
+      119,  120,  119,  120,  103,  119,  120,  105,  119,  120,
 
-      117,  117,  117,  112,  116,  117,   21,   22,  116,  117,
-      116,  117,  116,  117,   35,  116,  117,  117,  116,  117,
-      116,  117,  116,  117,   42,  116,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  116,  117,   60,  116,  117,  117,  117,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,  116,  117,  117,
-      116,  117,   83,  116,  117,  116,  117,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  117,  116,  117,  116,
+      119,  120,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  120,  120,  120,  115,  119,  120,    3,
+       24,   25,  119,  120,  119,  120,  119,  120,   38,  119,
+      120,  120,  119,  120,  119,  120,  119,  120,   45,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,   63,  119,  120,
+      120,  120,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  120,  119,  120,   86,  119,  120,  119,
 
-      117,  116,  117,  116,  117,  117,  116,  117,  117,  104,
-      116,  117,  116,  117,  116,  117,  117,  116,  117,  117,
-      117,  117,  125,   21,   22,   30,  116,  117,  116,  117,
-      116,  117,  117,  116,  117,  116,  117,   41,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-       55,  116,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  117,  117,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  116,  117,  117,   81,  116,  117,
+      120,  120,  119,  120,  119,  120,  119,  120,  120,  119,
+      120,  119,  120,  119,  120,  119,  120,  120,  120,  107,
+      119,  120,  119,  120,  119,  120,  120,  119,  120,  120,
+      120,  120,  128,   24,   25,   33,  119,  120,  119,  120,
+      119,  120,  120,  119,  120,  119,  120,   44,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+       58,  119,  120,  119,  120,  119,  120,  119,  120,  119,
+      120,  120,  120,  120,  119,  120,  119,  120,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
 
-      116,  117,  117,  116,  117,  116,  117,  116,  117,  116,
-      117,  117,  116,  117,  116,  117,   97,  116,  117,   98,
-      116,  117,  117,  116,  117,  117,  105,  116,  117,  116,
-      117,  117,  117,  117,  117,  117,   21,   22,  116,  117,
-      116,  117,  117,   38,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,   47,  116,  117,   48,  116,  117,
-      116,  117,  116,  117,   51,  116,  117,  116,  117,  116,
-      117,  116,  117,   57,  116,  117,  116,  117,  116,  117,
-      117,  117,  117,  116,  117,  116,  117,   68,  116,  117,
-       69,  116,  117,  116,  117,  116,  117,  116,  117,   73,
+      119,  120,  119,  120,  120,   84,  119,  120,  119,  120,
+      120,  119,  120,  119,  120,  119,  120,  119,  120,  120,
+      119,  120,  119,  120,  100,  119,  120,  101,  119,  120,
+      120,  119,  120,  120,  108,  119,  120,  119,  120,  120,
+      120,  120,  120,  120,   24,   25,  119,  120,  119,  120,
+      120,   41,  119,  120,  119,  120,  119,  120,  119,  120,
+      119,  120,   50,  119,  120,   51,  119,  120,  119,  120,
+      119,  120,   54,  119,  120,  119,  120,  119,  120,  119,
+      120,   60,  119,  120,  119,  120,  119,  120,  120,  120,
+      120,  119,  120,  119,  120,   71,  119,  120,   72,  119,
 
-      116,  117,  116,  117,  116,  117,  116,  117,  117,  116,
-      117,  117,   86,  116,  117,  116,  117,   89,  116,  117,
-       91,  116,  117,  117,  116,  117,  116,  117,  117,  116,
-      117,  117,  116,  117,  108,  117,  117,  117,  117,  117,
-       21,   22,  116,  117,  116,  117,  117,  116,  117,  116,
-      117,  116,  117,  116,  117,  116,  117,   50,  116,  117,
-      116,  117,  116,  117,   56,  116,  117,  116,  117,   59,
-      116,  117,  117,  117,  117,  117,  116,  117,   67,  116,
-      117,   70,  116,  117,   71,  116,  117,  116,  117,  116,
-      117,  117,  116,  117,  117,   85,  116,  117,  117,  116,
+      120,  119,  120,  119,  120,  119,  120,   76,  119,  120,
+      119,  120,  119,  120,  119,  120,  120,  119,  120,  120,
+       89,  119,  120,  119,  120,   92,  119,  120,   94,  119,
+      120,  120,  119,  120,  119,  120,  120,  119,  120,  120,
+      119,  120,  111,  120,  120,  120,  120,  120,   24,   25,
+      119,  120,  119,  120,  120,  119,  120,  119,  120,  119,
+      120,  119,  120,  119,  120,   53,  119,  120,  119,  120,
+      119,  120,   59,  119,  120,  119,  120,   62,  119,  120,
+      120,  120,  120,  120,  119,  120,   70,  119,  120,   73,
+      119,  120,   74,  119,  120,  119,  120,  119,  120,  120,
 
-      117,  117,  116,  117,   94,  116,  117,  117,  116,  117,
-      117,  116,  117,  117,  117,  117,  117,   21,   22,  116,
-      117,   34,  116,  117,   37,  117,   40,  116,  117,   43,
-      116,  117,  116,  117,  116,  117,  116,  117,  116,  117,
-      116,  117,  116,  117,  117,  117,  117,   65,  117,  116,
-      117,  116,  117,  116,  117,  117,  116,  117,  117,  117,
-      116,  117,  117,  116,  117,   99,  117,  116,  117,  117,
-      106,  116,  117,  117,  117,  117,  117,  126,   21,  116,
-      117,   44,  116,  117,  116,  117,   46,  116,  117,  116,
-      117,  116,  117,   54,  116,  117,  116,  117,  117,  117,
+      119,  120,  120,   88,  119,  120,  120,  119,  120,  120,
+      119,  120,   97,  119,  120,  120,  119,  120,  120,  119,
+      120,  120,  120,  120,  120,   24,   25,  119,  120,   37,
+      119,  120,   40,  120,   43,  119,  120,   46,  119,  120,
+      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
+      120,  120,  120,   68,  120,  119,  120,  119,  120,  119,
+      120,  120,  119,  120,  120,  120,  119,  120,  120,  102,
+      120,  119,  120,  120,  109,  119,  120,  120,  120,  120,
+      120,  129,   24,  119,  120,   47,  119,  120,  119,  120,
+       49,  119,  120,  119,  120,  119,  120,   57,  119,  120,
 
-      117,   66,  116,  117,  116,  117,  116,  117,  117,  116,
-      117,  117,  117,  116,  117,  117,  116,  117,  116,  117,
-      117,  109,  117,  117,  117,  117,   21,   33,  116,  117,
-       45,  116,  117,   49,  116,  117,  116,  117,  116,  117,
-      117,  117,  117,  116,  117,  116,  117,  117,  116,  117,
-      117,  117,  116,  117,  117,  116,  117,  116,  117,  117,
-      117,  117,  117,   21,  116,  117,  116,  117,  117,  117,
-      117,   72,  116,  117,   74,  116,  117,   75,  117,  116,
-      117,  117,  117,  116,  117,  117,   93,  116,  117,  116,
-      117,  117,  117,  117,  117,   21,  116,  117,   58,  116,
+      119,  120,  120,  120,  120,   69,  119,  120,  119,  120,
+      119,  120,  120,  119,  120,  120,  120,  119,  120,  120,
+      119,  120,  119,  120,  120,  112,  120,  120,  120,  120,
+       24,   36,  119,  120,   48,  119,  120,   52,  119,  120,
+      119,  120,  119,  120,  120,  120,  120,  119,  120,  119,
+      120,  120,  119,  120,  120,  120,  119,  120,  120,  119,
+      120,  119,  120,  120,  120,  120,  120,   24,  119,  120,
+      119,  120,  120,  120,  120,   75,  119,  120,   77,  119,
+      120,   78,  120,  119,  120,  120,  120,  119,  120,  120,
+       96,  119,  120,  119,  120,  120,  120,  120,  120,   24,
 
-      117,   63,  117,  117,   64,  117,  116,  117,   80,  117,
-      117,   88,  116,  117,  117,  116,  117,  101,  117,  117,
-      117,  111,  117,   21,  116,  117,  117,   78,  116,  117,
-      117,  117,  116,  117,  117,  110,  117,   21,  116,  117,
-       62,  117,  117,   90,  117,  103,  116,  117,  107,  117,
-       21,   52,  116,  117,   82,  117,   19,   21
+      119,  120,   61,  119,  120,   66,  120,  120,   67,  120,
+      119,  120,   83,  120,  120,   91,  119,  120,  120,  119,
+      120,  104,  120,  120,  120,  114,  120,   24,  119,  120,
+      120,   81,  119,  120,  120,  120,  119,  120,  120,  113,
+      120,   24,  119,  120,   65,  120,  120,   93,  120,  106,
+      119,  120,  110,  120,   24,   55,  119,  120,   85,  120,
+       22,   24
     } ;
 
-static yyconst short int yy_accept[690] =
+static yyconst short int yy_accept[710] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
-       15,   18,   20,   23,   25,   28,   30,   33,   36,   39,
-       41,   45,   49,   53,   57,   61,   65,   69,   73,   77,
-       81,   85,   89,   93,   97,  101,  105,  109,  113,  117,
-      120,  123,  126,  128,  131,  134,  138,  140,  143,  146,
-      149,  151,  154,  157,  159,  162,  165,  168,  171,  175,
-      178,  180,  185,  190,  193,  196,  198,  200,  203,  203,
-      204,  205,  206,  206,  207,  207,  208,  208,  208,  209,
-      210,  211,  212,  213,  213,  215,  217,  219,  221,  223,
+        1,    1,    1,    1,    1,    1,    1,    2,    4,    7,
+        9,   12,   15,   18,   20,   23,   25,   28,   30,   33,
+       36,   39,   41,   45,   49,   53,   57,   61,   65,   69,
+       73,   77,   81,   85,   89,   93,   97,  101,  105,  109,
+      113,  117,  120,  123,  126,  128,  131,  134,  137,  141,
+      143,  146,  149,  152,  154,  157,  160,  162,  165,  168,
+      171,  174,  178,  181,  183,  188,  193,  196,  199,  201,
+      203,  206,  206,  207,  208,  209,  209,  210,  210,  211,
+      211,  211,  212,  213,  214,  215,  216,  216,  216,  218,
 
-      225,  226,  228,  230,  232,  234,  237,  239,  241,  243,
-      245,  247,  249,  251,  253,  255,  256,  257,  259,  261,
-      263,  265,  267,  269,  271,  273,  274,  276,  278,  281,
-      283,  284,  286,  288,  290,  292,  293,  295,  297,  299,
-      301,  303,  305,  307,  309,  311,  312,  314,  316,  317,
-      318,  320,  321,  321,  321,  321,  322,  323,  324,  325,
-      326,  327,  327,  328,  330,  332,  333,  334,  335,  335,
-      336,  337,  337,  337,  338,  339,  340,  342,  345,  348,
-      350,  352,  354,  357,  359,  361,  363,  365,  367,  369,
-      371,  373,  375,  377,  380,  382,  384,  386,  388,  390,
+      220,  222,  224,  226,  228,  229,  231,  233,  235,  237,
+      240,  242,  244,  246,  248,  250,  252,  254,  256,  258,
+      259,  260,  262,  264,  266,  268,  270,  272,  274,  276,
+      277,  279,  281,  284,  286,  287,  289,  291,  293,  295,
+      296,  298,  300,  302,  304,  306,  308,  310,  312,  314,
+      315,  317,  319,  320,  321,  323,  323,  324,  324,  324,
+      324,  325,  326,  327,  328,  329,  330,  331,  331,  332,
+      334,  336,  337,  338,  339,  339,  339,  340,  340,  341,
+      341,  341,  341,  342,  343,  344,  346,  347,  349,  352,
+      355,  357,  359,  359,  361,  364,  366,  368,  370,  372,
 
-      392,  393,  394,  396,  398,  400,  402,  404,  406,  408,
-      411,  414,  416,  417,  419,  421,  423,  424,  426,  429,
-      431,  433,  435,  436,  438,  440,  442,  445,  447,  449,
-      451,  453,  455,  457,  459,  460,  462,  464,  466,  467,
-      468,  469,  471,  471,  471,  472,  474,  477,  477,  478,
-      479,  481,  483,  485,  487,  489,  491,  493,  495,  497,
-      499,  501,  503,  505,  507,  509,  511,  513,  515,  517,
-      519,  521,  523,  526,  527,  528,  530,  532,  534,  536,
-      538,  540,  542,  544,  546,  549,  550,  552,  554,  556,
-      557,  559,  561,  563,  565,  566,  569,  571,  573,  576,
+      374,  376,  378,  380,  382,  384,  387,  389,  391,  393,
+      395,  397,  399,  400,  401,  403,  405,  407,  409,  411,
+      413,  415,  418,  421,  423,  424,  426,  428,  430,  431,
+      433,  436,  438,  440,  442,  443,  445,  447,  449,  452,
+      454,  456,  458,  460,  462,  464,  466,  467,  469,  471,
+      473,  474,  475,  476,  478,  479,  479,  479,  480,  481,
+      483,  486,  486,  487,  488,  489,  490,  491,  492,  492,
+      494,  496,  498,  500,  502,  504,  506,  508,  510,  512,
+      514,  516,  518,  520,  522,  524,  526,  528,  530,  532,
+      534,  536,  539,  540,  541,  543,  545,  547,  549,  551,
 
-      578,  580,  582,  585,  588,  590,  591,  593,  595,  597,
-      599,  601,  602,  603,  604,  607,  607,  607,  607,  607,
-      609,  611,  613,  615,  618,  619,  621,  623,  625,  628,
-      630,  632,  634,  636,  638,  640,  642,  644,  646,  648,
-      650,  652,  654,  657,  658,  659,  660,  662,  664,  666,
-      668,  670,  672,  674,  676,  678,  680,  681,  683,  686,
-      688,  689,  691,  693,  695,  697,  698,  700,  702,  704,
-      706,  707,  709,  710,  713,  715,  717,  718,  720,  721,
-      722,  723,  723,  723,  724,  726,  729,  731,  733,  734,
-      736,  738,  741,  743,  745,  747,  749,  751,  753,  755,
+      553,  555,  557,  559,  562,  563,  565,  567,  569,  570,
+      572,  574,  576,  578,  579,  582,  584,  586,  589,  591,
+      593,  595,  598,  601,  603,  604,  606,  608,  610,  612,
+      614,  615,  616,  617,  620,  620,  620,  620,  620,  621,
+      623,  625,  627,  629,  632,  633,  635,  637,  639,  642,
+      644,  646,  648,  650,  652,  654,  656,  658,  660,  662,
+      664,  666,  668,  671,  672,  673,  674,  676,  678,  680,
+      682,  684,  686,  688,  690,  692,  694,  695,  697,  700,
+      702,  703,  705,  705,  707,  709,  710,  712,  714,  716,
+      718,  719,  719,  720,  723,  725,  727,  728,  730,  731,
 
-      757,  759,  761,  764,  766,  768,  770,  772,  773,  774,
-      775,  777,  779,  781,  783,  785,  787,  789,  791,  793,
-      795,  797,  798,  801,  803,  804,  806,  808,  810,  812,
-      813,  815,  817,  820,  823,  824,  826,  827,  830,  832,
-      833,  834,  835,  836,  837,  837,  837,  839,  841,  843,
-      844,  847,  849,  851,  853,  855,  858,  861,  863,  865,
-      868,  870,  872,  874,  877,  879,  881,  882,  883,  884,
-      886,  888,  891,  894,  896,  898,  900,  903,  905,  907,
-      909,  910,  912,  913,  916,  918,  921,  924,  925,  927,
-      929,  930,  932,  933,  935,  937,  938,  939,  940,  941,
+      732,  733,  733,  733,  734,  736,  739,  741,  743,  744,
+      746,  748,  751,  753,  755,  757,  759,  761,  763,  765,
+      767,  769,  771,  774,  776,  778,  780,  782,  783,  784,
+      785,  787,  789,  791,  793,  795,  797,  799,  801,  803,
+      805,  805,  806,  809,  811,  812,  814,  816,  818,  820,
+      821,  823,  825,  828,  831,  832,  834,  835,  838,  840,
+      841,  842,  843,  844,  845,  845,  845,  847,  849,  851,
+      852,  855,  857,  859,  861,  863,  866,  869,  871,  873,
+      876,  878,  880,  882,  885,  887,  889,  890,  891,  892,
+      894,  896,  899,  902,  904,  906,  908,  911,  913,  915,
 
-      941,  943,  945,  947,  948,  950,  952,  954,  956,  958,
-      961,  963,  965,  968,  970,  973,  974,  975,  976,  977,
-      979,  982,  985,  988,  990,  992,  993,  995,  996,  999,
-     1000, 1002, 1003, 1005, 1008, 1009, 1011, 1012, 1014, 1015,
-     1016, 1017, 1018, 1018, 1018, 1020, 1022, 1025, 1027, 1030,
-     1033, 1035, 1037, 1039, 1041, 1043, 1045, 1046, 1047, 1048,
-     1050, 1052, 1054, 1056, 1057, 1059, 1060, 1061, 1063, 1064,
-     1066, 1068, 1070, 1071, 1074, 1075, 1076, 1077, 1078, 1078,
-     1079, 1080, 1082, 1085, 1087, 1090, 1092, 1094, 1097, 1099,
-     1100, 1101, 1102, 1105, 1107, 1109, 1110, 1112, 1113, 1114,
+      917,  918,  920,  921,  924,  926,  929,  932,  933,  935,
+      937,  938,  940,  941,  943,  945,  946,  947,  948,  949,
+      949,  951,  953,  955,  956,  958,  960,  962,  964,  966,
+      969,  971,  973,  976,  978,  981,  982,  983,  984,  985,
+      987,  990,  993,  996,  998, 1000, 1001, 1003, 1004, 1007,
+     1008, 1010, 1011, 1013, 1016, 1017, 1019, 1020, 1022, 1023,
+     1024, 1025, 1026, 1026, 1026, 1028, 1030, 1033, 1035, 1038,
+     1041, 1043, 1045, 1047, 1047, 1049, 1051, 1052, 1053, 1054,
+     1056, 1058, 1060, 1062, 1063, 1065, 1066, 1067, 1069, 1070,
+     1070, 1072, 1074, 1075, 1078, 1079, 1080, 1081, 1082, 1082,
 
-     1116, 1117, 1119, 1121, 1122, 1124, 1125, 1126, 1127, 1128,
-     1131, 1134, 1137, 1139, 1141, 1142, 1143, 1144, 1146, 1148,
-     1149, 1151, 1152, 1153, 1155, 1156, 1158, 1160, 1161, 1162,
-     1163, 1164, 1165, 1167, 1169, 1170, 1171, 1172, 1175, 1178,
-     1180, 1182, 1183, 1184, 1186, 1187, 1190, 1192, 1193, 1194,
-     1195, 1196, 1197, 1199, 1202, 1204, 1205, 1207, 1209, 1211,
-     1212, 1215, 1216, 1218, 1220, 1221, 1222, 1224, 1225, 1227,
-     1228, 1231, 1232, 1233, 1235, 1236, 1238, 1239, 1241, 1243,
-     1244, 1246, 1249, 1251, 1252, 1255, 1257, 1259, 1259
+     1083, 1084, 1086, 1089, 1091, 1094, 1096, 1098, 1101, 1103,
+     1104, 1105, 1106, 1109, 1111, 1113, 1114, 1116, 1117, 1118,
+     1120, 1121, 1123, 1125, 1126, 1128, 1129, 1130, 1131, 1132,
+     1135, 1138, 1141, 1143, 1145, 1146, 1147, 1148, 1150, 1152,
+     1153, 1155, 1156, 1157, 1159, 1160, 1162, 1164, 1165, 1166,
+     1167, 1168, 1169, 1171, 1173, 1174, 1175, 1176, 1179, 1182,
+     1184, 1186, 1187, 1188, 1190, 1191, 1194, 1196, 1197, 1198,
+     1199, 1200, 1201, 1203, 1206, 1208, 1209, 1211, 1213, 1215,
+     1216, 1219, 1220, 1222, 1224, 1225, 1226, 1228, 1229, 1231,
+     1232, 1235, 1236, 1237, 1239, 1240, 1242, 1243, 1245, 1247,
+
+     1248, 1250, 1253, 1255, 1256, 1259, 1261, 1263, 1263
     } ;
 
 static yyconst int yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
-        4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
+        4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    2,    5,    6,    1,    1,    1,    7,    8,    9,
-        9,   10,    1,   11,   12,   13,   14,   15,   16,   17,
-       17,   18,   19,   20,   17,   21,   22,   23,   24,   25,
-       26,    1,    1,    9,   27,   28,   29,   30,   31,   32,
-       33,   34,   35,   36,   37,   38,   39,   40,   41,   42,
-       43,   44,   45,   46,   47,   48,   49,   50,   51,   52,
-        9,    1,   53,   54,    1,    1,   55,   56,   57,   58,
+        1,    2,    6,    7,    1,    1,    1,    8,    9,   10,
+       10,   11,    1,   12,   13,   14,   15,   16,   17,   18,
+       18,   19,   20,   21,   18,   22,   23,   24,   25,   26,
+       27,    1,    1,   10,   28,   29,   30,   31,   32,   33,
+       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
+       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
+       10,    1,   54,   55,    1,    1,   56,   57,   58,   59,
 
-       59,   60,   61,   62,   63,   64,   60,   65,   66,   67,
-       68,   69,   60,   70,   71,   72,   73,   74,   60,   75,
-       60,   76,   77,   78,   79,    1,    1,    1,    1,    1,
+       60,   61,   62,   63,   64,   65,   61,   66,   67,   68,
+       69,   70,   61,   71,   72,   73,   74,   75,   61,   76,
+       61,   77,   78,   79,   80,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -567,1227 +571,1150 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[80] =
+static yyconst int yy_meta[81] =
     {   0,
-        1,    2,    3,    3,    1,    4,    5,    6,    1,    1,
-        7,    8,    1,    1,    9,    9,    9,    9,    9,    9,
-        9,    9,   10,    1,    1,   10,   11,   11,   11,   11,
-       11,   11,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,    1,    1,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,   12,   12,   12,   13,    1,   14
-    } ;
-
-static yyconst short int yy_base[709] =
-    {   0,
-        0,    0,   77,   79,   82,   83,   81,   92,   85,   91,
-      170,  249,  120,  126,  852,  843,   97,  117,  837,  835,
-      321,  132, 4544,  133,  828,   94, 4544,  170,  814, 4544,
-      386,  178,  193,  239,  250,  266,  277,  118,  293,  436,
-      437,  453,  459,  474,  480,  497,  500,  515,  523,    0,
-      569,    0, 4544, 4544,  822, 4544, 4544,  811,  814,    0,
-        0,  803,    0,    0,  784, 4544, 4544, 4544,    0, 4544,
-     4544,  591,  669,    0,  135,  140,  107, 4544,  800,  208,
-        0,  797,  791,    0,  174,    0,  604,  784, 4544,  606,
-      778, 4544,  614,  764,  609,  610,  625,  659,  626,  658,
-
-        0,  674,  687,  690,  698,  713,  716,  734,  731,  747,
-      755,  770,  776,  773,  791,  721,  731,  802,  808,  819,
-      825,  836,  847,  853,  864,  718,  877,  880,  893,  901,
-      718,  904,  917,  928,  941,  717,  957,  963,  974,  980,
-      991,  997, 1008, 1014, 1025,  712, 1031, 1047,  705,   32,
-     1046,    0, 1093, 1105, 1117,    0, 4544, 4544,    0, 4544,
-        0,  741,    0,  726,  236,    0,  234, 4544,  753,    0,
-        0,   78,  730, 1083, 4544, 4544, 1112, 1113, 1128, 1129,
-     1144, 1152, 1155, 1168, 1176, 1184, 1192, 1205, 1213, 1216,
-     1237, 1238, 1253, 1259, 1270, 1276, 1287, 1293, 1304, 1315,
-
-      693,  681, 1328, 1336, 1339, 1354, 1357, 1360, 1385, 1382,
-     1388, 1403,  690, 1406, 1421, 1427,  689, 1438, 1449, 1455,
-     1466, 1477,  679, 1488, 1494, 1505, 1511, 1526, 1527, 1542,
-     1553, 1559, 1574, 1580,  683, 1591, 1602, 1615,  661,  672,
-      661, 1618, 1664, 1672, 4544,   69,  680,  666, 4544, 4544,
-     1631, 1667, 1673, 1688, 1689, 1706, 1705, 1722, 1728, 1739,
-     1750, 1766, 1763, 1774, 1787, 1790, 1805, 1811, 1822, 1828,
-     1839, 1854, 1860,  647,  651, 1871, 1877, 1892, 1893, 1908,
-     1914, 1929, 1942, 1950, 1958,  641, 1973, 1976, 1989,  651,
-     1997, 2012, 2015, 2033,  631, 2030, 2036, 2053, 2059, 2070,
-
-     2076, 2087, 2093, 2104, 2110,  619, 2125, 2126, 2143, 2142,
-     2159,  631,  621,  632, 2160, 2206,  824, 2214, 2226,   86,
-     2211, 2226, 2232, 2243,  615, 2249, 2264, 2267, 2275, 2288,
-     2296, 2304, 2317, 2325, 2338, 2346, 2354, 2362, 2377, 2383,
-     2394, 2400, 2415,  629,  608,  592, 2416, 2436, 2433, 2454,
-     2453, 2469, 2475, 2486, 2492, 2507,  598, 2510, 2513, 2530,
-      588, 2531, 2546, 2552, 2563,  604, 2576, 2579, 2587, 2600,
-      588, 2611,  587, 2617, 2632, 2633,  577, 2648,  572,  569,
-      575,  239, 2681, 4544,   78, 2666, 2683, 2686,  576, 2689,
-     2706, 2707, 2727, 2733, 2744, 2750, 2765, 2771, 2788, 2794,
-
-     2805, 2811, 2822, 2828, 2839, 2845, 2861,  553,  556,  548,
-     2862, 2877, 2883, 2894, 2900, 2915, 2921, 2932, 2947, 2953,
-     2964,  553, 2975, 2981,  565, 2992, 2998, 3009, 3022,  538,
-     3030, 3045, 3048, 3051,  530, 3066,  508, 3069, 3072,  523,
-      511,  509,  520,  518, 3118, 3130,  536, 3115, 3128,  508,
-     3131, 3146, 3152, 3163, 3169, 3180, 3186, 3197, 3208, 3214,
-     3225, 3231, 3242, 3253, 3259, 3270,  159,  529,  502, 3276,
-     3287, 3298, 3304, 3315, 3321, 3336, 3337, 3352, 3358, 3369,
-      523, 3375,  507, 3386, 3397, 3403, 3414,  499, 3420, 3435,
-      493, 3441,  514, 3457,    0,  491,  497,  475,  504, 3490,
-
-      126, 3485, 3486,  475, 3501, 3509, 3512, 3525, 3533, 3541,
-     3554, 3562, 3570, 3578, 3586,  458,  447,  447,  452, 3599,
-     3607, 3610, 3623, 3631, 3634,  437, 3647,  432, 3655,  427,
-     3663,  437, 3676, 3679,  433, 3687,  420, 3700,  423,  423,
-      435,  401, 3733,  466,  190, 3718, 3729,    0, 3735, 3746,
-     3752, 3767, 3768, 3783, 3789, 3800,  402,  408,  396,    0,
-     3806, 3817, 3828,  377, 3834,  369,  355, 3845,  366, 3856,
-        0, 3862,  340, 3873,  348,  355,  327,  304,  530, 4544,
-      317, 3879, 3890, 3901, 3907, 3918, 3929, 3940, 3946,  281,
-      285,  279, 3957, 3963, 3974,  274, 3980,  276,  267, 3991,
-
-      262, 3997, 4008,  267,    0,  253,  252,  253,  273, 4014,
-     4025, 4031, 4042, 4048,  245,  265,  242, 4059, 4065,  246,
-     4080,  234,  236, 4083,  228, 4086, 4103,  229,  225,  228,
-      220,  245, 4106, 4109,  223,  220,  221, 4126, 4127,    0,
-     4142,  210,  200, 4143,  205, 4158, 4164,  203,  183,  178,
-      183,  193, 4175, 4186,    0,  166,    0, 4192,    0,  154,
-     4207,  148, 4210,    0,  147,  147,    0,  163, 4218,  141,
-     4233,  101,  106, 4234,  102,    0,  116, 4249,    0,   62,
-        0, 4255,    0,   69, 4266,    0,    0, 4544, 4313, 4327,
-     4341, 4355, 4369, 4383, 4397, 4410, 4414, 4426, 4440, 4454,
-
-     4466, 4478, 4490, 4495, 4500, 4505, 4516, 4529
-    } ;
-
-static yyconst short int yy_def[709] =
-    {   0,
-      688,    1,  689,  689,  690,  690,  691,  691,  692,  692,
-      693,  693,  694,  694,  688,  688,  688,  688,  688,  695,
-      688,  696,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,  697,
-      688,  698,  688,  688,  688,  688,  688,  688,  688,  699,
-      699,  688,  700,  700,  688,  688,  688,  688,  701,  688,
-      688,  702,  702,  703,  688,  688,   21,  688,  688,  688,
-      695,  695,  688,  704,  688,  705,  696,  696,  688,  688,
-      688,  688,  688,  688,   31,   31,   31,   31,   31,   31,
-
-      706,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,  706,  706,   31,   31,   31,
-       31,   31,   31,   31,   31,  706,   31,   31,   31,   31,
-      706,   31,   31,   31,   31,  706,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,  706,   31,   31,  706,  706,
-       31,  697,  688,  688,  688,  698,  688,  688,  699,  688,
-      700,  688,  701,   73,   73,  703,  688,  688,  688,  704,
-      705,  688,  688,  688,  688,  688,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-
-      706,  706,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,  706,   31,   31,   31,  706,   31,   31,   31,
-       31,   31,  706,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,  706,   31,   31,   31,  706,  706,
-      706,   31,  688,  688,  688,   73,   73,  688,  688,  688,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,  706,  706,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,  706,   31,   31,   31,  706,
-       31,   31,   31,   31,  706,   31,   31,   31,   31,   31,
-
-       31,   31,   31,   31,   31,  706,   31,   31,   31,   31,
-       31,  706,  706,  706,   31,  688,  707,  688,  688,   73,
-       31,   31,   31,   31,  706,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,  706,  706,  706,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,  706,   31,   31,   31,
-      706,   31,   31,   31,   31,  706,   31,   31,   31,   31,
-      706,   31,  706,   31,   31,   31,  706,   31,  706,  706,
-      706,  688,  688,  688,   73,   31,   31,   31,  706,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-
-       31,   31,   31,   31,   31,   31,   31,  706,  706,  706,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,  706,   31,   31,  706,   31,   31,   31,   31,  706,
-       31,   31,   31,   31,  706,   31,  706,   31,   31,  706,
-      706,  706,  706,  706,  688,  688,   73,   31,   31,  706,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,  706,  706,  706,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-      706,   31,  706,   31,   31,   31,   31,  706,   31,   31,
-      706,   31,  706,   31,  706,  706,  706,  706,  706,  688,
-
-       73,   31,   31,  706,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,  706,  706,  706,  706,   31,
-       31,   31,   31,   31,   31,  706,   31,  706,   31,  706,
-       31,  706,   31,   31,  706,   31,  706,   31,  706,  706,
-      706,  706,  688,  708,   73,   31,   31,  706,   31,   31,
-       31,   31,   31,   31,   31,   31,  706,  706,  706,  706,
-       31,   31,   31,  706,   31,  706,  706,   31,  706,   31,
-      706,   31,  706,   31,  706,  706,  706,  706,  688,  688,
-      701,   31,   31,   31,   31,   31,   31,   31,   31,  706,
-      706,  706,   31,   31,   31,  706,   31,  706,  706,   31,
-
-      706,   31,   31,  706,  706,  706,  706,  706,  701,   31,
-       31,   31,   31,   31,  706,  706,  706,   31,   31,  706,
-       31,  706,  706,   31,  706,   31,   31,  706,  706,  706,
-      706,  701,   31,   31,  706,  706,  706,   31,   31,  706,
-       31,  706,  706,   31,  706,   31,   31,  706,  706,  706,
-      706,  701,   31,   31,  706,  706,  706,   31,  706,  706,
-       31,  706,   31,  706,  706,  706,  706,  701,   31,  706,
-       31,  706,  706,   31,  706,  706,  701,   31,  706,  706,
-      706,   31,  706,  701,   31,  706,  701,    0,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-
-      688,  688,  688,  688,  688,  688,  688,  688
-    } ;
-
-static yyconst short int yy_nxt[4624] =
-    {   0,
-       16,   17,   18,   17,   19,   20,   21,   22,   23,   16,
-       23,   24,   25,   26,   27,   28,   28,   28,   28,   28,
-       28,   28,   29,   19,   30,   30,   31,   32,   33,   34,
-       35,   36,   37,   38,   39,   38,   38,   38,   40,   41,
-       42,   43,   38,   44,   45,   46,   47,   48,   49,   38,
-       38,   38,   19,   19,   50,   50,   50,   50,   50,   50,
-       50,   50,   50,   50,   50,   50,   50,   50,   50,   50,
-       50,   50,   50,   50,   50,   50,   51,   19,   23,   53,
-       54,   53,   54,   61,   57,   57,   62,   64,   55,  240,
-       55,   58,   58,   64,   61,   59,   59,   62,   80,   80,
-
-       80,   79,  241,   92,   79,  249,  687,   65,  164,  320,
-       66,  250,  447,   65,  688,  385,   66,  164,   80,   80,
-       80,   75,   76,   75,   79,  164,   77,   75,   76,   75,
-      688,  686,   77,   87,   87,   87,  167,  167,  167,   79,
-       79,  167,  167,  167,   89,   95,   87,   87,   90,   90,
-       90,   90,   90,   90,   90,   95,  684,   95,  545,   95,
-      688,   67,  683,   68,   95,  164,  681,   67,  680,   68,
-       69,   70,   71,   70,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,   69,   93,   93,   93,   93,   93,   93,
-       93,   93,   69,   69,   69,   69,   30,   83,   78,  679,
-
-       73,  581,   30,  516,   78,   95,  677,  676,  102,   80,
-       80,   80,  103,  675,  673,   95,  104,   95,  105,   95,
-       95,  517,   69,   69,   95,  672,  107,   85,  106,  164,
-      108,  670,   95,  109,   95,  167,  167,  167,  668,   95,
-      382,  382,  382,  667,  666,  665,   70,   69,   70,   69,
-       70,   71,   70,   69,   69,   69,   69,   69,   69,   69,
-       69,   69,   69,  664,  246,  247,   95,  662,  660,  110,
-      659,   69,   69,   69,   69,  164,   95,   95,   95,   73,
-       95,  657,  656,  655,  652,   95,  651,   95,  111,  112,
-      650,   95,  114,   95,  649,  648,   95,  645,  643,  113,
-
-      642,   69,   69,   95,   95,   95,  640,   95,  637,  115,
-      636,  635,   95,  632,   95,  631,   95,  384,   95,  118,
-       95,  630,  119,   95,  629,   70,   69,   70,   79,  628,
-       95,  120,  121,  625,   95,  116,  623,  122,  622,   95,
-      620,  617,  616,  615,   83,  609,  117,   84,   84,   84,
-       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
-       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
-       84,   84,   84,  608,   85,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
-       86,   86,   86,   86,   86,   86,   86,   95,  607,  606,
-
-       95,   95,   95,   95,   95,   95,   95,   95,  605,  604,
-      601,  599,   95,   96,   95,   95,   95,   95,   95,   95,
-       95,   95,   95,   97,   95,   98,   95,   99,   95,   95,
-       95,   95,  100,   95,   95,   95,   95,   95,  598,  596,
-      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-      101,  101,  101,  101,  101,  101,  101,  101,  101,  101,
-      101,  101,  123,   95,   95,  592,  591,  579,  579,  579,
-      124,  590,  578,   95,   95,   95,   95,   95,   95,  577,
-      127,  128,   95,  125,  129,  132,   95,  576,  133,  575,
-       95,  573,   95,  571,  130,  569,  134,  567,   95,   95,
-
-       95,   95,  135,  566,  137,   95,  564,   95,  131,  126,
-      138,   95,  560,   95,  139,   95,  142,   95,  559,   95,
-       95,   95,  558,  143,   95,  140,   95,   95,  136,  557,
-      141,  579,  579,  579,   95,  548,   95,   95,   95,  147,
-      144,   95,   95,   95,  580,  148,   95,  145,  542,  541,
-       95,  540,   95,  539,   95,  146,   95,  151,  537,  535,
-       95,   95,   95,  532,   95,  530,  149,  528,  519,   95,
-      153,  153,  153,  518,  504,  501,  499,  150,  498,  497,
-      496,  495,  493,  154,  154,  154,  154,  154,  154,  155,
-      155,  163,  491,  488,  483,  163,  163,  163,  163,  163,
-
-      163,  163,  163,  163,  163,   87,   87,   87,  580,  481,
-      469,  172,  468,  163,  163,  163,  163,  467,   87,   87,
-      174,  174,  174,  174,  174,  174,  174,  174,   93,   93,
-       93,   93,   93,   93,   93,   93,   95,   95,  450,  444,
-      443,  442,  440,  163,  163,  437,   95,   95,   95,   95,
-       95,   95,   95,   95,  177,   95,   95,  435,  430,  425,
-      422,  410,  178,   95,   95,   95,   95,  180,  163,  163,
-      409,   95,   95,  163,  163,  163,  163,  163,  163,  163,
-      163,  163,  163,  408,  389,   95,   95,  381,  380,  379,
-      373,  163,  163,  163,  163,   95,   95,   95,   95,   95,
-
-       95,   95,  366,  181,   95,   95,  182,  361,  165,  179,
-      357,   95,  345,   95,   95,   95,  344,   95,  168,  164,
-       95,  163,  163,  314,   95,   95,   95,   95,   95,   95,
-      313,  184,  183,   95,  312,   95,   95,   95,  185,   95,
-       95,  306,  186,   95,   95,  295,  163,  290,  286,  275,
-       95,  274,   95,   95,   95,   95,  187,   95,   95,   95,
-      188,   95,   95,  250,  248,  164,  245,  239,   95,  189,
-      190,   95,   95,   95,   95,   95,  235,   95,  191,  223,
-       95,  217,  192,  213,   95,  202,   95,  201,   95,  176,
-      175,  173,   95,   95,   95,  169,   95,   95,  193,  194,
-
-       95,   95,  168,   95,  196,  168,  162,   95,  160,   95,
-      199,   95,   95,   95,   95,   95,  195,  197,   95,   95,
-      203,  198,   95,   92,  158,  382,  382,  382,   95,   95,
-       95,  200,   95,  157,  383,   95,   94,   95,  204,   95,
-       91,   95,   82,   95,   79,   95,   95,   95,   95,   95,
-       79,  688,   95,  206,   95,  688,   95,  688,   95,  688,
-      205,  688,   95,   95,   95,   95,   95,  688,  688,  207,
-      208,   95,  688,   95,   95,   95,  209,   95,  688,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,  211,   95,   95,  688,  210,  688,  688,   95,
-
-      688,  212,  384,   95,   95,   95,  688,   95,  688,  688,
-       95,  688,  214,  688,   95,  688,   95,   95,   95,   95,
-       95,   95,  688,   95,  688,  215,   95,  688,   95,  688,
-       95,   95,   95,  688,   95,  688,  688,  688,   95,   95,
-       95,   95,   95,   95,   95,   95,  216,   95,  688,  218,
-       95,  688,  688,  688,   95,   95,   95,  688,   95,  688,
-      688,  688,  688,   95,  219,   95,  688,   95,   95,   95,
-      688,  221,  688,  688,  220,  222,  688,  688,   95,  688,
-       95,  688,   95,  224,   95,  688,  688,   95,  688,  688,
-       95,  688,  688,  688,  225,  688,   95,  688,   95,  688,
-
-       95,   95,   95,   95,   95,  226,  688,   95,  227,   95,
-      688,   95,  231,   95,  688,   95,  688,   95,   95,   95,
-       95,   95,  688,  229,   95,  228,   95,  688,   95,  688,
-      230,  688,   95,  688,   95,   95,   95,   95,   95,  688,
-      232,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  688,   95,  688,
-      233,  688,   95,  688,   95,  236,  234,  688,   95,  688,
-       95,   95,   95,   95,   95,  237,  688,   95,  238,  688,
-      688,  688,  688,   95,   95,   95,   95,   95,   95,  688,
-      688,  242,   95,   95,  153,  153,  153,  174,  174,  174,
-
-      174,  174,  174,  174,  174,  688,  688,  154,  154,  154,
-      154,  154,  154,  155,  155,  243,  688,  688,  688,  155,
-      155,  155,  155,  155,  155,  155,  155,  244,  688,  688,
-      688,  155,  155,  155,  155,  155,  155,  155,  155,   95,
-       95,  688,  251,  688,  688,  688,  688,  688,  688,   95,
-       95,   95,   95,   95,   95,   95,   95,  688,   95,   95,
-      688,  688,  688,  688,  688,   95,  252,   95,   95,   95,
-       95,   95,  688,  688,   95,   95,  688,  688,  688,   95,
-      688,   95,   95,   95,  253,   95,  254,  688,  688,   95,
-       95,   95,   95,   95,   95,   95,   95,  688,   95,  688,
-
-      688,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,  255,  256,   95,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,  688,   95,  258,  257,  688,   95,
-       95,   95,   95,   95,  688,  688,  688,  688,   95,  688,
-       95,  688,   95,   95,   95,  688,   95,  688,  688,  259,
-       95,   95,   95,   95,  260,   95,  688,   95,  688,   95,
-      261,  262,   95,  263,   95,   95,  688,  688,  265,  688,
-      688,  264,  688,  688,   95,   95,   95,   95,   95,   95,
-       95,  688,  688,   95,   95,  688,   95,  688,  688,  688,
-       95,  688,   95,  266,   95,  688,   95,   95,   95,   95,
-
-       95,  688,  688,   95,  688,   95,  268,   95,  267,   95,
-      688,   95,  688,   95,   95,   95,   95,   95,  688,  688,
-       95,  688,   95,  271,  269,  688,   95,  270,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,  688,  688,   95,
-      688,   95,   95,   95,  688,   95,  688,  688,  272,  688,
-       95,  688,   95,  273,   95,   95,   95,  688,  688,  688,
-      688,   95,  688,   95,  688,   95,   95,   95,  688,   95,
-      688,  688,  276,   95,   95,  277,  278,   95,   95,  279,
-       95,   95,   95,  688,   95,   95,  688,   95,  688,  688,
-      282,  280,  688,   95,   95,   95,   95,   95,   95,   95,
-
-       95,   95,  281,   95,  283,  688,   95,  688,  688,   95,
-      688,  688,   95,  688,  688,   95,  688,  688,  688,   95,
-      688,   95,   95,   95,   95,   95,   95,   95,   95,   95,
-       95,   95,  688,   95,  284,  688,  287,  688,  688,  688,
-      285,  688,   95,   95,   95,   95,  688,   95,   95,   95,
-      688,  288,   95,  688,   95,  688,  688,  688,   95,  688,
-       95,  289,   95,  688,   95,   95,   95,   95,   95,  688,
-      688,  688,  688,   95,  688,   95,   95,   95,  688,   95,
-      688,  688,   95,  291,   95,  688,   95,  688,   95,  688,
-       95,  688,   95,   95,   95,   95,   95,  688,  688,  292,
-
-      688,   95,  688,   95,   95,   95,  688,   95,  688,  688,
-      293,  688,   95,  688,   95,   95,   95,  688,   95,  688,
-      297,   95,  688,   95,  294,  296,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  688,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,  298,   95,   95,   95,  688,  299,   95,  688,  688,
-      688,  300,  688,   95,   95,   95,   95,   95,   95,   95,
-      688,  688,   95,   95,  688,  688,  688,  688,  688,   95,
-       95,   95,  688,   95,  688,  688,   95,  301,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  302,   95,   95,
-
-       95,   95,  688,  303,  304,   95,  688,   95,  688,  688,
-      305,   95,  688,   95,  688,   95,  688,   95,   95,   95,
-       95,   95,  688,  688,  688,  688,   95,  688,   95,   95,
-       95,  307,   95,  308,  688,  311,  688,   95,  309,   95,
-      688,   95,   95,   95,  688,   95,  688,  310,   95,  688,
-      688,  315,   95,  688,   95,   95,   95,   95,   95,   95,
-      688,   95,  688,  688,   95,  316,  316,  316,   95,  688,
-      321,  688,   95,  318,  318,  318,  688,   95,  317,  317,
-      317,  317,  317,  317,  317,  317,  319,  319,  319,  319,
-      319,  319,  319,  319,   95,  688,  688,  688,  688,  688,
-
-       95,  322,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,  323,   95,   95,   95,   95,   95,  688,  688,   95,
-      688,  688,  688,  688,  688,   95,   95,  324,   95,   95,
-       95,  327,   95,   95,   95,   95,  326,  688,  688,  688,
-      688,  688,   95,   95,   95,   95,   95,   95,  688,   95,
-      328,   95,   95,  688,  688,   95,  688,  688,  688,   95,
-      325,   95,  688,   95,  688,   95,   95,   95,   95,   95,
-      688,  688,  329,  688,   95,  688,   95,   95,   95,  330,
-       95,  688,  688,  688,  688,   95,  688,   95,  688,   95,
-       95,   95,  332,   95,  688,  331,   95,  688,  688,  688,
-
-       95,   95,   95,   95,   95,   95,  688,   95,  688,  333,
-      688,   95,   95,  334,   95,   95,  335,   95,  688,  336,
-       95,  688,  688,  688,   95,  688,   95,   95,   95,   95,
-      688,   95,   95,   95,  688,  337,   95,  688,   95,  688,
-      688,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,  338,  688,  688,   95,  339,   95,  688,   95,
-      688,   95,  688,   95,  688,   95,   95,   95,   95,   95,
-      688,  340,  688,  688,   95,  688,   95,  688,  341,  688,
-       95,   95,  342,  688,  343,   95,  688,   95,  688,  688,
-      688,   95,  688,   95,  688,   95,  688,   95,   95,   95,
-
-       95,   95,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,   95,   95,   95,
-       95,  688,  347,   95,  688,  688,  348,  688,  688,   95,
-       95,   95,   95,   95,   95,   95,  349,  688,   95,   95,
-      351,   95,  346,  688,  688,   95,  688,   95,  688,   95,
-      688,   95,  688,   95,  350,   95,   95,  352,  688,  355,
-       95,  353,  688,  688,  688,  688,   95,  688,   95,   95,
-       95,  688,  354,  688,  688,   95,  688,   95,  688,   95,
-      688,   95,  688,   95,  688,   95,  688,   95,   95,   95,
-      688,   95,  688,  688,  356,   95,   95,   95,  688,   95,
-
-       95,  358,  688,   95,   95,  688,  688,  688,  688,  688,
-       95,  688,   95,   95,   95,   95,   95,   95,  688,   95,
-      688,  359,   95,  363,   95,  688,   95,  362,   95,  360,
-       95,  688,  688,  688,   95,   95,   95,  688,   95,   95,
-      688,  688,   95,   95,  688,  364,  688,  688,  688,   95,
-      688,   95,   95,   95,   95,  688,   95,   95,   95,  365,
-       95,   95,  688,   95,  688,  688,  688,   95,  688,   95,
-       95,   95,   95,   95,   95,   95,   95,   95,  688,   95,
-       95,  367,   95,  368,  688,  688,   95,  688,  688,  688,
-       95,  688,   95,  688,   95,  688,   95,   95,   95,   95,
-
-       95,  688,  370,   95,  688,   95,  688,   95,  688,  369,
-      688,   95,  688,   95,   95,   95,   95,   95,  688,  688,
-       95,  372,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,   95,  688,   95,
-      688,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-       95,   95,   95,   95,  688,  688,   95,  688,  371,  688,
-      688,  688,   95,   95,  374,   95,   95,   95,  688,   95,
-       95,   95,  375,  376,  688,  688,  688,  688,  688,   95,
-       95,   95,   95,   95,   95,  688,   95,   95,   95,   95,
-      688,  688,  688,  688,  688,  688,   95,   95,   95,   95,
-
-       95,   95,  688,  378,  377,   95,   95,  316,  316,  316,
-      688,  688,  688,  688,  688,  318,  318,  318,  688,  688,
-      317,  317,  317,  317,  317,  317,  317,  317,  319,  319,
-      319,  319,  319,  319,  319,  319,  383,  688,   95,  688,
-      319,  319,  319,  319,  319,  319,  319,  319,   95,  688,
-       95,  688,   95,   95,  387,  688,  386,   95,  388,   95,
-      688,  688,  688,   95,  688,   95,  688,   95,  688,   95,
-       95,   95,   95,   95,  688,  390,   95,  688,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,  391,  688,   95,   95,  688,  392,  688,  688,
-
-      688,   95,   95,   95,   95,   95,   95,  688,   95,  688,
-       95,  688,   95,   95,   95,   95,   95,  688,  688,  688,
-      688,   95,  688,   95,  688,   95,  688,  393,  688,   95,
-      688,   95,  688,   95,   95,   95,  688,   95,  395,  394,
-      688,   95,   95,   95,   95,   95,  688,  688,  688,  688,
-       95,  688,   95,  688,  396,  397,   95,  688,   95,  398,
-      688,  688,   95,   95,   95,   95,   95,  399,  688,  688,
-      688,   95,  688,   95,  688,   95,  400,   95,  688,   95,
-      401,   95,  688,   95,   95,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,  688,   95,  688,  402,  688,   95,
-
-       95,   95,  688,   95,   95,  404,  688,  403,   95,  688,
-       95,  688,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,   95,  405,   95,
-      688,   95,  688,   95,  688,   95,  688,   95,  406,  407,
-       95,   95,   95,   95,  688,  688,   95,  688,  688,  688,
-      411,  688,   95,   95,   95,   95,   95,   95,  688,  688,
-       95,   95,   95,   95,  412,  688,  413,  688,  688,  688,
-       95,  688,   95,   95,   95,   95,  688,   95,  414,   95,
-       95,   95,   95,  415,  688,  688,  688,  688,  688,  688,
-       95,   95,  416,   95,   95,   95,   95,  688,  688,   95,
-
-       95,  688,   95,  688,  688,  418,   95,  688,   95,  688,
-       95,  420,   95,   95,   95,  417,   95,  688,  421,   95,
-      688,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-      419,   95,   95,   95,   95,  688,  688,   95,   95,  688,
-       95,  688,  688,  688,   95,  688,   95,   95,   95,   95,
-       95,   95,   95,   95,   95,  423,   95,   95,   95,   95,
-      688,  688,  688,  688,  688,  688,  688,   95,   95,  424,
-       95,   95,   95,   95,  426,  688,   95,   95,  688,   95,
-      427,  688,  688,   95,  688,   95,  688,   95,  688,   95,
-       95,  428,   95,   95,  688,  688,  688,  688,   95,  688,
-
-       95,  688,   95,   95,   95,  688,   95,  688,  429,   95,
-      431,  688,  688,   95,   95,   95,   95,   95,  432,  433,
-       95,  688,   95,  688,   95,   95,   95,   95,   95,  688,
-      688,  688,  688,   95,  688,  688,  688,   95,   95,   95,
-      688,   95,  688,  688,   95,  436,   95,  688,   95,  434,
-       95,  688,   95,  688,   95,  688,   95,   95,   95,   95,
-       95,  688,  438,   95,  688,  688,  688,  688,  688,   95,
-       95,   95,   95,   95,   95,   95,  439,  688,   95,   95,
-      688,  688,  445,  445,  445,   95,  688,   95,  688,   95,
-      688,  688,  688,   95,   95,  446,  446,  446,  446,  446,
-
-      446,  446,  446,   95,  688,   95,  688,   95,  688,  448,
-       95,  688,   95,   95,  688,  688,   95,  688,  688,  441,
-       95,  688,   95,   95,   95,   95,   95,   95,  451,   95,
-       95,  449,   95,   95,   95,   95,  688,  688,  688,  688,
-      688,  688,  688,   95,   95,   95,   95,   95,   95,  688,
-      688,  452,   95,   95,   95,  688,  688,  453,  688,  454,
-       95,  688,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,   95,  688,   95,
-      688,   95,  688,  455,  688,   95,  688,   95,  688,   95,
-       95,   95,   95,  688,  457,  456,   95,  688,   95,  688,
-
-      688,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,  688,  688,   95,  458,   95,  459,  688,
-      688,   95,  688,  460,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  462,   95,  688,
-       95,  688,   95,  688,  461,  688,   95,  688,   95,   95,
-       95,   95,   95,  688,  688,   95,  688,   95,  688,   95,
-      688,   95,  463,   95,  688,   95,   95,   95,   95,   95,
-      688,  688,   95,  688,   95,  688,   95,  688,   95,  465,
-       95,  688,   95,  464,   95,   95,   95,  466,   95,   95,
-      688,   95,  688,  470,  688,  688,  688,  688,   95,   95,
-
-       95,   95,   95,   95,   95,  688,  688,   95,   95,  688,
-       95,  471,  472,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,   95,  688,   95,
-      474,   95,  688,   95,  688,   95,  688,   95,  473,   95,
-       95,   95,   95,  475,  688,  688,   95,  688,   95,  476,
-      688,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,   95,  688,  688,  688,  688,   95,  688,   95,
-      688,   95,  688,   95,   95,  477,  688,  478,   95,  688,
-       95,  688,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,  479,  480,   95,
-
-      688,   95,   95,   95,  688,   95,  688,  482,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,   95,  688,  688,   95,  688,   95,  688,   95,
-      688,  484,  688,   95,  688,   95,   95,  485,   95,   95,
-      688,  688,  688,  688,   95,  688,   95,  688,   95,   95,
-       95,  688,  487,  688,  486,   95,  688,   95,  688,   95,
-      688,   95,  688,   95,  688,  688,  688,   95,   95,   95,
-      688,   95,   95,  490,  688,   95,   95,  489,   95,  688,
-      688,  688,   95,  688,   95,   95,   95,   95,   95,   95,
-       95,   95,   95,   95,   95,  492,   95,   95,  688,   95,
-
-      688,  688,  688,   95,  688,   95,   95,   95,   95,   95,
-       95,   95,   95,   95,  688,   95,  494,  688,   95,  445,
-      445,  445,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  446,  446,  446,  446,  446,  446,  446,  446,
-      500,  688,   95,  688,  446,  446,  446,  446,  446,  446,
-      446,  446,   95,  688,   95,   95,   95,  688,   95,  688,
-      502,   95,  503,  688,  688,   95,  688,   95,   95,   95,
-       95,  688,   95,   95,   95,  688,  505,   95,  688,   95,
-      688,  688,  688,   95,  688,   95,  688,   95,  688,   95,
-       95,  506,   95,   95,  688,  688,   95,  507,   95,  688,
-
-       95,  688,   95,  508,   95,  688,   95,   95,   95,   95,
-       95,  688,  688,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,  688,   95,   95,   95,   95,   95,  688,  688,
-      688,  509,   95,  688,   95,   95,   95,  510,   95,  688,
-      688,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  511,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,   95,  688,  688,  688,  512,   95,  688,   95,
-       95,   95,  688,   95,  688,  688,  514,  513,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,   95,   95,   95,
-
-       95,  688,  688,   95,  688,   95,  688,  515,  688,   95,
-      520,   95,  688,   95,   95,   95,   95,   95,  688,  688,
-      688,  688,   95,  688,   95,   95,   95,  688,   95,  688,
-      688,   95,  521,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  688,   95,  688,
-       95,  523,   95,  688,   95,  688,   95,  688,   95,  522,
-       95,   95,   95,   95,   95,  688,  688,   95,  688,  688,
-      688,  688,  688,   95,   95,   95,   95,   95,   95,   95,
-      525,  524,   95,   95,  688,   95,  688,  688,  688,   95,
-      688,   95,  688,   95,  688,   95,   95,   95,   95,   95,
-
-      688,  688,   95,  688,   95,  688,   95,  688,  527,  688,
-       95,  688,  529,   95,   95,   95,   95,  688,  688,  688,
-      688,   95,  688,   95,   95,   95,  688,   95,  531,  526,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,   95,   95,  688,  688,   95,  688,   95,
-      533,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-       95,   95,   95,  688,  688,  534,   95,  688,   95,  688,
-      688,  536,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,   95,   95,  538,   95,  688,  688,   95,  688,  688,
-      688,  543,  543,  543,   95,  688,   95,  688,   95,  688,
-
-      688,  688,  688,   95,  544,  544,  544,  544,  544,  544,
-      544,  544,   95,   95,  547,  688,  688,  688,  688,  546,
-      688,  688,   95,   95,   95,   95,   95,   95,   95,  688,
-      688,   95,   95,  688,  688,  688,   95,  688,   95,   95,
-       95,  688,   95,  688,  549,  688,   95,   95,   95,   95,
-       95,  551,   95,   95,  550,   95,  688,  688,   95,  688,
-       95,  688,   95,  688,  552,  554,   95,  688,   95,  688,
-       95,   95,   95,  553,   95,  688,  688,  688,   95,   95,
-       95,   95,   95,  688,  688,  688,  688,   95,  688,   95,
-      688,   95,  555,   95,  688,   95,  688,   95,  688,   95,
-
-       95,   95,  688,   95,  688,   95,  688,   95,   95,   95,
-      688,   95,  556,   95,  688,   95,   95,   95,  688,   95,
-      688,  688,  688,   95,   95,   95,   95,   95,  688,  561,
-      688,  688,   95,  688,   95,  688,   95,   95,   95,  688,
-       95,  688,  688,  688,   95,   95,   95,   95,   95,   95,
-       95,   95,  688,   95,  688,  688,   95,  688,   95,  688,
-       95,   95,   95,  688,   95,  562,  688,  688,   95,   95,
-       95,   95,   95,   95,   95,   95,  688,   95,  565,  563,
-       95,  688,   95,  688,   95,  688,   95,  570,   95,  688,
-       95,  688,   95,   95,   95,  688,   95,  568,  688,  688,
-
-       95,   95,   95,   95,   95,  688,   95,  688,  688,   95,
-      688,  688,  688,   95,   95,   95,   95,   95,   95,  688,
-       95,  688,   95,  688,   95,   95,  572,   95,   95,  688,
-      688,  688,  688,   95,  543,  543,  543,  574,  688,   95,
-      688,   95,  688,  688,  688,   95,   95,  544,  544,  544,
-      544,  544,  544,  544,  544,   95,   95,   95,  582,   95,
-      688,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-       95,  688,   95,   95,   95,   95,   95,  688,  688,   95,
-      688,   95,  584,   95,  688,   95,  688,   95,  688,   95,
-      583,   95,   95,   95,   95,   95,  688,  688,   95,  585,
-
-      688,  688,  688,  688,   95,   95,   95,  586,   95,   95,
-       95,  587,  688,   95,   95,  688,   95,  688,  588,  688,
-       95,  688,   95,  688,   95,  688,   95,   95,   95,   95,
-       95,  688,  688,   95,  688,   95,  688,  589,  688,   95,
-      688,   95,  688,   95,   95,   95,   95,   95,  688,  593,
-      688,  688,   95,  688,   95,   95,   95,  594,   95,  688,
-      688,   95,  595,   95,  688,   95,  688,   95,  597,   95,
-      688,   95,   95,   95,   95,   95,  688,  688,  688,  688,
-       95,  688,   95,   95,  600,  688,   95,  688,  688,   95,
-      688,   95,  688,   95,  688,   95,  602,   95,  688,   95,
-
-       95,   95,   95,   95,  688,  688,   95,  603,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,   95,  610,   95,
-       95,  688,  688,  688,  688,   95,  688,   95,   95,   95,
-      611,   95,  688,  688,   95,  688,   95,  688,   95,  688,
-       95,  688,   95,  688,   95,   95,   95,   95,   95,  688,
-      688,  688,  688,   95,  688,   95,   95,   95,  688,   95,
-      688,  688,  612,  688,   95,  688,   95,   95,   95,  613,
-       95,  688,  688,   95,  688,   95,  688,   95,  688,   95,
-      614,   95,  688,   95,   95,   95,   95,   95,  688,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,  688,
-
-       95,   95,  618,   95,   95,  688,  688,   95,  688,   95,
-      688,   95,  688,   95,  619,   95,  688,   95,   95,  621,
-       95,   95,  688,  688,   95,  624,   95,  688,   95,  688,
-       95,  626,   95,  688,   95,   95,   95,   95,   95,  688,
-      688,   95,  627,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,   95,  688,  688,   95,  688,
-       95,  688,   95,  688,   95,  688,   95,  688,   95,   95,
-       95,   95,   95,  688,  688,   95,  688,   95,  688,   95,
-      688,  633,  688,   95,  688,   95,   95,   95,   95,   95,
-      688,  688,   95,  634,   95,  688,   95,  688,   95,  688,
-
-       95,  688,   95,  638,  639,   95,   95,   95,  688,  688,
-       95,   95,  688,   95,  641,  646,  688,   95,  688,   95,
-       95,   95,   95,   95,   95,   95,   95,   95,  644,   95,
-       95,  688,   95,   95,  647,  688,   95,  688,  688,  688,
-       95,  688,   95,   95,   95,   95,   95,   95,   95,   95,
-       95,  653,   95,   95,   95,   95,  688,  688,  688,  654,
-      688,  688,  688,   95,   95,   95,   95,   95,   95,   95,
-       95,  688,   95,   95,  688,  688,  688,  688,  688,   95,
-       95,   95,   95,   95,   95,   95,  688,  658,   95,   95,
-      688,   95,  688,  661,  688,   95,  688,   95,  663,   95,
-
-      688,   95,   95,   95,   95,   95,  688,  688,  688,  688,
-       95,  688,   95,   95,   95,  688,   95,  688,  669,   95,
-      688,   95,  688,   95,  688,   95,  688,   95,  688,   95,
-      688,   95,   95,   95,   95,  688,  688,   95,   95,  688,
-      674,  688,  671,  688,   95,   95,   95,   95,   95,   95,
-      688,   95,  688,   95,  688,   95,   95,   95,  678,   95,
-       95,   95,  688,  688,   95,  688,  688,  688,  688,  688,
-       95,   95,   95,   95,   95,   95,   95,  682,  688,   95,
-       95,  688,   95,  688,  688,  688,  685,  688,   95,  688,
-       95,  688,   95,   95,   95,   95,   95,  688,  688,  688,
-
-      688,   95,  688,   95,  688,   95,  688,   95,  688,  688,
-      688,  688,   95,   52,   52,   52,   52,   52,   52,   52,
-       52,   52,   52,   52,   52,   52,   52,   56,   56,   56,
-       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
-       56,   60,   60,   60,   60,   60,   60,   60,   60,   60,
-       60,   60,   60,   60,   60,   63,   63,   63,   63,   63,
-       63,   63,   63,   63,   63,   63,   63,   63,   63,   72,
-       72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
-       72,   72,   72,   74,   74,   74,   74,   74,   74,   74,
-       74,   74,   74,   74,   74,   74,   74,   81,   81,   81,
-
-      688,   81,   81,   81,   81,   81,   81,   81,   81,   81,
-       81,   88,   88,  688,  688,   88,  688,  688,   88,  688,
-       88,  152,  152,  688,  152,  152,  156,  156,  688,  156,
-      156,  156,  156,  688,  156,  156,  156,  156,  156,  156,
-      159,  159,  159,  688,  159,  159,  159,  159,  159,  159,
-      159,  159,  159,  159,  161,  161,  161,  161,  161,  161,
-      161,  161,  161,  688,  161,  161,  163,  688,  688,  163,
-      163,  163,  163,  163,  163,  163,  163,  163,  164,  688,
-      688,  164,  164,  164,  164,  164,  164,  164,  164,  164,
-      166,  688,  688,  166,  688,  166,  166,  166,  166,  166,
-
-      166,  166,  170,  170,  688,  170,  170,  171,  171,  688,
-      171,  171,  101,  101,  688,  101,  101,  317,  317,  688,
-      688,  688,  317,  688,  317,  688,  688,  688,  688,  317,
-      544,  544,  688,  688,  688,  688,  688,  544,  688,  688,
-      688,  688,  544,   15,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688
-    } ;
-
-static yyconst short int yy_chk[4624] =
-    {   0,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
-        3,    4,    4,    7,    5,    6,    7,    9,    3,  150,
-        4,    5,    6,   10,    8,    5,    6,    8,   17,   17,
-
-       17,   26,  150,   26,   17,  172,  684,    9,  246,  246,
-        9,  172,  385,   10,   77,  320,   10,  385,   18,   18,
-       18,   13,   13,   13,   18,  320,   13,   14,   14,   14,
-       77,  680,   14,   22,   22,   22,   75,   75,   75,   22,
-       24,   76,   76,   76,   24,   38,   22,   22,   24,   24,
-       24,   24,   24,   24,   24,   38,  677,   38,  501,   38,
-       77,    9,  675,    9,   38,  501,  673,   10,  672,   10,
+        1,    2,    3,    3,    3,    1,    4,    5,    6,    1,
+        1,    1,    7,    1,    1,    8,    8,    8,    8,    8,
+        8,    8,    8,    9,    1,    1,    9,   10,   10,   10,
+       10,   10,   10,   11,   11,   11,   11,   11,   11,   11,
        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
-       11,   11,   11,   11,   28,   28,   28,   28,   28,   28,
-       28,   28,   11,   11,   11,   11,   13,   85,   13,  670,
+       11,   11,   11,    1,    1,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
+       11,   11,   11,   11,   11,   11,   11,   12,    1,   12
+    } ;
 
-       11,  545,   14,  467,   14,   32,  668,  666,   32,   80,
-       80,   80,   32,  665,  662,   32,   32,   32,   32,   32,
-       33,  467,   11,   11,   32,  660,   33,   85,   32,  545,
-       33,  656,   33,   33,   33,  167,  167,  167,  652,   33,
-      382,  382,  382,  651,  650,  649,   11,   11,   11,   12,
-       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
-       12,   12,   12,  648,  165,  165,   34,  645,  643,   34,
-      642,   12,   12,   12,   12,  165,   34,   35,   34,   12,
-       34,  637,  636,  635,  632,   34,  631,   35,   35,   35,
-      630,   35,   36,   36,  629,  628,   35,  625,  623,   35,
+static yyconst short int yy_base[737] =
+    {   0,
+        0,    0,   78,   81,   84,   95,   90,   92,   89,   99,
+       87,  101,  181,  261,  119,  131, 1569, 1559,  138,  146,
+     1557, 1553,  333,  154, 4166,  155, 1546,  101, 4166,  198,
+     1535, 4166,  398,  198,  255,  263,  204,  279,  447,  183,
+      304,  453,  280,  469,  491,  492,  509,  525,  540,  543,
+      561, 1545,  608,    0, 4166, 4166, 1544, 1538, 4166, 4166,
+     1532, 1534,    0,    0, 1537,    0,    0, 1519, 4166, 4166,
+     4166,    0, 4166, 4166,  631,  710,    0,  113,  127,  223,
+     4166, 1534,  198,    0, 1531, 1528, 1516,  155, 1514,  645,
+     1517, 1512,  598, 1509, 4166,  647, 1493,  734,  648,  649,
 
-      622,   12,   12,   36,   37,   36,  620,   36,  617,   36,
-      616,  615,   36,  609,   37,  608,   37,  382,   37,   39,
-       39,  607,   39,   37,  606,   12,   12,   12,   21,  604,
-       39,   39,   39,  601,   39,   37,  599,   39,  598,   39,
-      596,  592,  591,  590,   21,  581,   37,   21,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,  578,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
-       21,   21,   21,   21,   21,   21,   21,   31,  577,  576,
+      664,  700,  665,  699, 1495,  715,  728,  731,  739,  783,
+      786,  804,  801,  817,  825,  840,  846,  843,  861,  185,
+       96,  872,  878,  889,  895,  906,  917,  923,  934,  156,
+      947,  950,  963,  971,  191,  974,  987,  998, 1011,  215,
+     1027, 1033, 1044, 1050, 1061, 1067, 1078, 1084, 1095,  100,
+     1101, 1117,  216,  241, 1116,    0, 1493,    0, 1150, 1162,
+        0, 4166, 1492, 4166,    0, 4166,    0, 1477,    0, 1461,
+      295,    0,  420, 4166, 1488,    0, 1486,    0, 1485,   91,
+     1461,  141, 1170, 4166, 4166, 1181, 1480, 1166, 1167, 1182,
+     1183, 1230, 1467, 1238, 1241, 1254, 1262, 1270, 1278, 1291,
 
-       31,   31,   31,   31,   31,   31,   31,   31,  575,  573,
-      569,  567,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,  566,  564,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
-       31,   31,   40,   40,   41,  559,  558,  544,  544,  544,
-       40,  557,  542,   40,   41,   40,   41,   40,   41,  541,
-       42,   42,   40,   41,   42,   43,   43,  540,   43,  539,
-       42,  537,   42,  535,   42,  532,   43,  530,   43,   42,
+     1299, 1302, 1323, 1324, 1339, 1345, 1356, 1362, 1373, 1379,
+     1390, 1401,  229,  212, 1414, 1422, 1425, 1440, 1443, 1446,
+     1471, 1468, 1474, 1489,  245, 1492, 1507, 1513,  270, 1524,
+     1535, 1541, 1552, 1563,  244, 1574, 1580, 1591, 1597, 1612,
+     1613, 1628, 1639, 1645, 1660, 1666,  278, 1677, 1688, 1701,
+      338,  286,  439, 1704, 1463,  475,  511, 1461, 4166,   96,
+     1430, 1405, 1445, 1443, 4166, 4166, 4166, 4166,  480, 1712,
+     1725, 1736, 1742, 1753, 1759, 1775, 1776, 1791, 1799, 1807,
+     1823, 1820, 1831, 1844, 1847, 1862, 1868, 1879, 1885, 1896,
+     1911, 1917,  288,  268, 1928, 1934, 1949, 1950, 1965, 1971,
 
-       43,   44,   43,  528,   44,   43,  526,   45,   42,   41,
-       45,   44,  519,   44,   45,   44,   46,   45,  518,   45,
-       44,   45,  517,   46,   46,   45,   45,   47,   43,  516,
-       45,  579,  579,  579,   46,  504,   46,   47,   46,   47,
-       46,   47,   48,   46,  544,   47,   47,   46,  499,  498,
-       49,  497,   48,  496,   48,   46,   48,   49,  493,  491,
-       49,   48,   49,  488,   49,  483,   47,  481,  469,   49,
-       51,   51,   51,  468,  450,  447,  444,   48,  443,  442,
-      441,  440,  437,   51,   51,   51,   51,   51,   51,   51,
-       51,   72,  435,  430,  425,   72,   72,   72,   72,   72,
+     1986, 1999, 2007, 2015,  316, 2030, 2033, 2046,  297, 2054,
+     2069, 2072, 2090,  264, 2087, 2093, 2110, 2116, 2127, 2133,
+     2144, 2150, 2161, 2167,  471, 2182, 2183, 2200, 2199, 2216,
+      440,  343,  492, 2217,  590,  670,  631, 2254, 1439,  456,
+     2239, 2254, 2260, 2271,  496, 2277, 2292, 2295, 2303, 2316,
+     2324, 2332, 2345, 2353, 2366, 2374, 2382, 2390, 2405, 2411,
+     2422, 2428, 2443,  106,  478,  530, 2444, 2464, 2461, 2482,
+     2481, 2497, 2503, 2514, 2520, 2535,  491, 2538, 2541, 2558,
+      498, 2559,  321, 2574, 2580,  304, 2595, 2596, 2611, 2612,
+      534,  493,  514, 2627, 2633, 2644,  585, 2655,  552,  586,
 
-       72,   72,   72,   72,   72,   87,   87,   87,  579,  422,
-      410,   87,  409,   72,   72,   72,   72,  408,   87,   87,
-       90,   90,   90,   90,   90,   90,   90,   90,   93,   93,
-       93,   93,   93,   93,   93,   93,   95,   96,  389,  381,
-      380,  379,  377,   72,   72,  373,   95,   96,   95,   96,
-       95,   96,   97,   99,   96,   95,   96,  371,  366,  361,
-      357,  346,   97,   99,   97,   99,   97,   99,   72,   73,
-      345,   97,   99,   73,   73,   73,   73,   73,   73,   73,
-       73,   73,   73,  344,  325,  100,   98,  314,  313,  312,
-      306,   73,   73,   73,   73,  100,   98,  100,   98,  100,
+      510,  697,  728, 4166,  312, 2661, 2677, 2683,  663, 2694,
+     2700, 2711, 2717, 2733, 2734, 2749, 2760, 2766, 2783, 2789,
+     2800, 2806, 2817, 2823, 2834, 2840, 2856,  512,  538,  702,
+     2857, 2872, 2878, 2889, 2895, 2910, 2916, 2927, 2942, 2948,
+      524,  545, 2959, 2975,  640, 2972, 1407, 2983, 2996,  696,
+     3004, 3019, 3022, 3025,  749, 1414,  238, 3040, 3043,  515,
+      609,  701,  546,  638,  781, 3078, 1398, 3063, 3076,  748,
+     3079, 3094, 3100, 3111, 3117, 3128, 3134, 3145, 3156, 3162,
+     3173, 3179, 3190, 3201, 3207, 3218,  775,  713,  806, 3224,
+     3235, 3246, 3252, 3263, 3269, 3284, 3285, 3300, 3306, 1396,
 
-       98,  102,  295,  100,  100,   98,  102,  290,   73,   98,
-      286,  102,  275,  102,  103,  102,  274,  104,  248,  247,
-      102,   73,   73,  241,  103,  105,  103,  104,  103,  104,
-      240,  104,  103,  103,  239,  105,  104,  105,  105,  105,
-      106,  235,  107,  107,  105,  223,   73,  217,  213,  202,
-      106,  201,  106,  107,  106,  107,  107,  107,  109,  106,
-      108,  108,  107,  173,  169,  164,  162,  149,  109,  109,
-      109,  108,  109,  108,  110,  108,  146,  109,  110,  136,
-      108,  131,  111,  126,  110,  117,  110,  116,  110,   94,
-       91,   88,  111,  110,  111,   83,  111,  112,  112,  112,
+      805, 3317,  807, 3323, 1402, 3334, 3345,  840, 3351, 3366,
+      810, 1394,  849, 3372, 1410,  835,  824,  822,  850, 1029,
+      119, 3383, 3398,  846, 3404, 3415, 3426, 3432, 3443, 3449,
+     3464, 3467, 3475, 3488, 3491,  804,  668,  884,  899, 3506,
+     3512, 3523, 3529, 3540, 3546,  901, 1380,  910, 3557,  844,
+     1370,  909, 3577, 3574,  916, 1348,  914, 3580,  926,  942,
+      961,  972, 1149, 1214,  892, 3595, 3601, 1370, 3612, 3618,
+     3633, 3634, 3649,  550, 3655, 3666,  938,  988,  954, 1362,
+     3672, 3683, 3694, 1007, 1333,  967,  986, 1305,  983, 1011,
+     1331, 1286,  992, 3700, 1052, 1036, 1038, 1045, 1320, 4166,
 
-      114,  111,   82,  113,  113,   79,   65,  112,   62,  112,
-      114,  112,  114,  113,  114,  113,  112,  113,  115,  114,
-      118,  113,  113,   59,   58,  317,  317,  317,  115,  118,
-      115,  115,  115,   55,  317,  119,   29,  115,  119,  118,
-       25,  118,   20,  118,   19,  119,  120,  119,  118,  119,
-       16,   15,  121,  121,  119,    0,  120,    0,  120,    0,
-      120,    0,  121,  122,  121,  120,  121,    0,    0,  121,
-      121,  121,    0,  122,  123,  122,  122,  122,    0,    0,
-      124,    0,  122,    0,  123,    0,  123,    0,  123,    0,
-      124,  125,  124,  123,  124,    0,  123,    0,    0,  124,
+     1299, 3711, 3717, 3732, 3733, 3748, 1254, 3749, 3764, 1054,
+     1010, 1065, 3770, 3781, 3792, 1073, 1251, 1075, 1051, 1230,
+     1047, 1228, 1193, 1135, 1215, 1088, 1162, 1163, 1159, 3798,
+     3809, 3815, 1159, 3826, 1164, 1081, 1200, 3837, 3843, 1223,
+     1161, 1207, 1248, 1088, 1189, 1102, 1098, 1222, 1191, 1252,
+     1293, 1064, 1056, 3858, 1274, 1263, 1295, 3859, 3874, 1048,
+     1010, 1345, 1029,  929, 1291,    0,  934, 1347, 1360, 1322,
+     1363,  912,  908, 3875,  937, 1221,  931,  888,  918, 1190,
+        0, 1364,  829,  842, 1366, 1385,  825,  791,  713, 1357,
+        0, 1285, 1415,  639, 1433,  670,  637,  621,  576, 1379,
 
-        0,  125,  317,  125,  127,  125,    0,  128,    0,    0,
-      125,    0,  127,    0,  127,    0,  127,  128,  127,  128,
-      129,  128,    0,  127,    0,  128,  128,    0,  130,    0,
-      129,  132,  129,    0,  129,    0,    0,    0,  130,  129,
-      130,  132,  130,  132,  133,  132,  130,  130,    0,  132,
-      132,    0,    0,    0,  133,  134,  133,    0,  133,    0,
-        0,    0,    0,  133,  133,  134,    0,  134,  135,  134,
-        0,  135,    0,    0,  134,  135,    0,    0,  135,    0,
-      135,    0,  135,  137,  137,    0,    0,  135,    0,    0,
-      138,    0,    0,    0,  137,    0,  137,    0,  137,    0,
+      336,    0,  236,  122,    0,  132,    0, 4166, 3923, 3935,
+     3947, 3959, 3971, 3983, 3995, 4006, 4010, 4021, 4033, 4045,
+     4056, 4067, 4078, 4083, 4088, 4092, 4097, 4101, 4105, 4109,
+     4120, 4126, 4136, 4143, 4150, 4157
+    } ;
 
-      138,  139,  138,  137,  138,  138,    0,  140,  138,  138,
-        0,  139,  142,  139,    0,  139,    0,  140,  141,  140,
-      139,  140,    0,  140,  142,  139,  140,    0,  141,    0,
-      141,    0,  141,    0,  142,  143,  142,  141,  142,    0,
-      143,  144,    0,  142,    0,  143,    0,  143,    0,  143,
-        0,  144,  145,  144,  143,  144,    0,    0,  147,    0,
-      144,    0,  145,    0,  145,  147,  145,    0,  147,    0,
-      147,  145,  147,  151,  148,  148,    0,  147,  148,    0,
-        0,    0,    0,  151,  148,  151,  148,  151,  148,    0,
-        0,  151,  151,  148,  153,  153,  153,  174,  174,  174,
+static yyconst short int yy_def[737] =
+    {   0,
+      708,    1,  709,  709,  709,  709,  710,  710,  711,  711,
+      712,  712,  713,  713,  714,  714,  708,  708,  708,  708,
+      708,  715,  708,  716,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,  717,  708,  718,  708,  708,  708,  708,  708,  708,
+      708,  708,  719,  719,  708,  720,  720,  708,  708,  708,
+      708,  721,  708,  708,  722,  722,  723,  708,  708,   23,
+      708,  708,  708,  715,  715,  708,  724,  708,  725,  716,
+      716,  708,  708,  708,  708,  708,  708,  726,   33,   33,
 
-      174,  174,  174,  174,  174,    0,    0,  153,  153,  153,
-      153,  153,  153,  153,  153,  154,    0,    0,    0,  154,
-      154,  154,  154,  154,  154,  154,  154,  155,    0,    0,
-        0,  155,  155,  155,  155,  155,  155,  155,  155,  177,
-      178,    0,  177,    0,    0,    0,    0,    0,    0,  177,
-      178,  177,  178,  177,  178,  179,  180,    0,  177,  178,
-        0,    0,    0,    0,    0,  179,  180,  179,  180,  179,
-      180,  181,    0,    0,  179,  180,    0,    0,    0,  182,
-        0,  181,  183,  181,  181,  181,  182,    0,    0,  182,
-      181,  182,  183,  182,  183,  184,  183,    0,  182,    0,
+       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,  727,
+      727,   33,   33,   33,   33,   33,   33,   33,   33,  727,
+       33,   33,   33,   33,  727,   33,   33,   33,   33,  727,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,  727,
+       33,   33,  727,  727,   33,  728,  717,   53,  708,  708,
+      718,  708,  708,  708,  719,  708,  720,  708,  721,   76,
+       76,  723,  708,  708,  708,  729,  724,  730,  725,  708,
+      708,  731,  708,  708,  708,  726,  732,   33,   33,   33,
+       33,   33,  732,   33,   33,   33,   33,   33,   33,   33,
 
-        0,  183,    0,  185,    0,  184,    0,  184,    0,  184,
-        0,  186,  184,  185,  184,  185,    0,  185,    0,  187,
-        0,  186,  185,  186,    0,  186,  187,  186,    0,  187,
-      186,  187,  188,  187,    0,    0,    0,    0,  187,    0,
-      189,    0,  188,  190,  188,    0,  188,    0,    0,  188,
-      189,  188,  189,  190,  189,  190,    0,  190,    0,  189,
-      190,  190,  190,  191,  191,  192,    0,    0,  192,    0,
-        0,  191,    0,    0,  191,  192,  191,  192,  191,  192,
-      193,    0,    0,  191,  192,    0,  194,    0,    0,    0,
-      193,    0,  193,  193,  193,    0,  194,  195,  194,  193,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,  727,  727,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,  727,   33,   33,   33,  727,   33,
+       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,  727,   33,   33,   33,
+      727,  727,  727,   33,  728,  733,  734,  708,  708,   76,
+       76,  708,  729,  730,  708,  708,  708,  708,  731,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,  727,  727,   33,   33,   33,   33,   33,   33,
 
-      194,    0,    0,  196,    0,  194,  196,  195,  195,  195,
-        0,  195,    0,  196,  197,  196,  195,  196,    0,    0,
-      198,    0,  196,  198,  197,    0,  197,  197,  197,    0,
-      198,  199,  198,  197,  198,    0,    0,    0,    0,  198,
-        0,  199,  200,  199,    0,  199,    0,    0,  199,    0,
-      199,    0,  200,  200,  200,  203,  200,    0,    0,    0,
-        0,  200,    0,  204,    0,  203,  205,  203,    0,  203,
-        0,    0,  203,  204,  203,  204,  205,  204,  205,  205,
-      205,  206,  204,    0,  207,  205,    0,  208,    0,    0,
-      208,  206,    0,  206,  207,  206,  207,  208,  207,  208,
+       33,   33,   33,   33,  727,   33,   33,   33,  727,   33,
+       33,   33,   33,  727,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
+      727,  727,  727,   33,  733,  733,  734,  708,  708,   76,
+       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,  727,  727,  727,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,  727,   33,   33,   33,
+      727,   33,  186,   33,   33,  727,   33,   33,   33,   33,
+      727,  186,  727,   33,   33,   33,  727,   33,  727,  727,
 
-      206,  208,  207,  207,  209,    0,  208,    0,    0,  210,
-        0,    0,  209,    0,    0,  211,    0,    0,    0,  210,
-        0,  210,  209,  210,  209,  211,  209,  211,  210,  211,
-      212,  209,    0,  214,  211,    0,  214,    0,    0,    0,
-      212,    0,  212,  214,  212,  214,    0,  214,  215,  212,
-        0,  215,  214,    0,  216,    0,    0,    0,  215,    0,
-      215,  216,  215,    0,  216,  218,  216,  215,  216,    0,
-        0,    0,    0,  216,    0,  218,  219,  218,    0,  218,
-        0,    0,  220,  218,  218,    0,  219,    0,  219,    0,
-      219,    0,  220,  221,  220,  219,  220,    0,    0,  220,
+      727,  708,  735,  708,   76,   33,   33,   33,  727,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,  727,  727,  727,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+      186,  727,   33,   33,  727,   33,  186,   33,   33,  727,
+       33,   33,   33,   33,  727,  186,  727,   33,   33,  727,
+      727,  727,  727,  727,  735,  708,   76,   33,   33,  727,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,  727,  727,  727,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,  186,
 
-        0,  220,    0,  221,  222,  221,    0,  221,    0,    0,
-      221,    0,  221,    0,  222,  224,  222,    0,  222,    0,
-      225,  225,    0,  222,  222,  224,    0,  224,    0,  224,
-        0,  225,  226,  225,  224,  225,    0,    0,  227,    0,
-      225,    0,  226,    0,  226,    0,  226,    0,  227,    0,
-      227,  226,  227,  228,  229,    0,  228,  227,    0,    0,
-        0,  229,    0,  228,  229,  228,  229,  228,  229,  230,
-        0,    0,  228,  229,    0,    0,    0,    0,    0,  230,
-      231,  230,    0,  230,    0,    0,  232,  230,  230,    0,
-      231,    0,  231,    0,  231,    0,  232,  231,  232,  231,
+      727,   33,  727,   33,  186,   33,   33,  727,   33,   33,
+      727,  186,  727,   33,  727,  727,  727,  727,  727,  736,
+       76,   33,   33,  727,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,  727,  727,  727,  727,   33,
+       33,   33,   33,   33,   33,  727,  186,  727,   33,  727,
+      186,  727,   33,   33,  727,  186,  727,   33,  727,  727,
+      727,  727,  736,  736,   76,   33,   33,  727,   33,   33,
+       33,   33,   33,  186,   33,   33,  727,  727,  727,  727,
+       33,   33,   33,  727,  186,  727,  727,  186,  727,  186,
+      727,  186,  727,   33,  727,  727,  727,  727,  708,  708,
 
-      232,  233,    0,  232,  233,  232,    0,  234,    0,    0,
-      234,  233,    0,  233,    0,  233,    0,  234,  236,  234,
-      233,  234,    0,    0,    0,    0,  234,    0,  236,  237,
-      236,  236,  236,  236,    0,  238,    0,  236,  236,  237,
-        0,  237,  238,  237,    0,  242,    0,  237,  237,    0,
-        0,  242,  238,    0,  238,  242,  238,  242,  251,  242,
-        0,  238,    0,    0,  242,  243,  243,  243,  251,    0,
-      251,    0,  251,  244,  244,  244,    0,  251,  243,  243,
-      243,  243,  243,  243,  243,  243,  244,  244,  244,  244,
-      244,  244,  244,  244,  252,    0,    0,    0,    0,    0,
+      721,   33,   33,   33,   33,   33,  186,   33,   33,  727,
+      727,  727,   33,   33,   33,  727,  186,  727,  727,  186,
+      727,  186,  186,  727,  727,  727,  727,  727,  721,   33,
+       33,   33,  186,   33,  727,  727,  727,   33,   33,  727,
+      186,  727,  727,  186,  727,  186,  186,  727,  727,  727,
+      727,  721,  186,   33,  727,  727,  727,   33,   33,  727,
+      186,  727,  727,  186,  727,  186,  186,  727,  727,  727,
+      727,  721,  186,   33,  727,  727,  727,  186,  727,  727,
+      186,  727,  186,  727,  727,  727,  727,  721,  186,  727,
+      186,  727,  727,  186,  727,  727,  721,  186,  727,  727,
 
-      253,  252,    0,    0,  252,    0,  252,    0,  252,    0,
-      253,  253,  253,  252,  253,  254,  255,    0,    0,  253,
-        0,    0,    0,    0,    0,  254,  255,  254,  255,  254,
-      255,  257,  257,  256,  254,  255,  256,    0,    0,    0,
-        0,    0,  257,  256,  257,  256,  257,  256,    0,  258,
-      258,  257,  256,    0,    0,  259,    0,    0,    0,  258,
-      255,  258,    0,  258,    0,  259,  260,  259,  258,  259,
-        0,    0,  259,    0,  259,    0,  260,  261,  260,  260,
-      260,    0,    0,    0,    0,  260,    0,  261,    0,  261,
-      263,  261,  262,  262,    0,  261,  261,    0,    0,    0,
+      727,  186,  727,  721,  186,  727,  721,    0,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708
+    } ;
 
-      263,  264,  263,  262,  263,  262,    0,  262,    0,  263,
-        0,  264,  262,  264,  265,  264,  265,  266,    0,  266,
-      264,    0,    0,    0,  265,    0,  265,  266,  265,  266,
-        0,  266,  267,  265,    0,  267,  266,    0,  268,    0,
-        0,    0,  267,    0,  267,    0,  267,    0,  268,  269,
-      268,  267,  268,    0,    0,  270,  269,  268,    0,  269,
-        0,  269,    0,  269,    0,  270,  271,  270,  269,  270,
-        0,  270,    0,    0,  270,    0,  271,    0,  271,    0,
-      271,  272,  271,    0,  272,  271,    0,  273,    0,    0,
-        0,  272,    0,  272,    0,  272,    0,  273,  276,  273,
+static yyconst short int yy_nxt[4247] =
+    {   0,
+       18,   19,   20,   19,   19,   21,   22,   23,   24,   25,
+       18,   25,   26,   27,   28,   29,   30,   30,   30,   30,
+       30,   30,   30,   31,   21,   32,   32,   33,   34,   35,
+       36,   37,   38,   39,   40,   41,   40,   40,   40,   42,
+       43,   44,   45,   40,   46,   47,   48,   49,   50,   51,
+       40,   40,   40,   21,   21,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
+       52,   52,   52,   52,   52,   52,   52,   53,   21,   25,
+       55,   56,   56,   55,   56,   56,   55,   56,   56,   67,
+       57,   64,   60,   57,   60,   65,   58,   55,   56,   56,
 
-      272,  273,    0,    0,  277,    0,  273,    0,  276,    0,
-      276,    0,  276,    0,  277,    0,  277,  276,  277,  278,
-      279,    0,  277,  277,    0,    0,  278,    0,    0,  278,
-      279,  278,  279,  278,  279,  280,  279,    0,  278,  279,
-      281,  281,  276,    0,    0,  280,    0,  280,    0,  280,
-        0,  281,    0,  281,  280,  281,  282,  281,    0,  283,
-      281,  282,    0,    0,    0,    0,  282,    0,  282,  283,
-      282,    0,  282,    0,    0,  282,    0,  284,    0,  283,
-        0,  283,    0,  283,    0,  285,    0,  284,  283,  284,
-        0,  284,    0,    0,  284,  285,  284,  285,    0,  285,
+       61,   64,   61,   67,   62,   65,   62,   58,  193,   82,
+       68,   95,  193,   69,  173,  173,  173,  173,  193,  265,
+       78,   79,   78,   78,   68,  266,   80,   69,  173,  173,
+      173,  173,   78,   79,   78,   78,  170,  340,   80,   83,
+       83,   83,   83,  268,  193,  268,   82,   83,   83,   83,
+       83,  214,  565,  269,   82,   90,   90,   90,   90,  170,
+      707,  428,   82,   82,   70,  247,   71,   92,  193,   90,
+       90,   93,   93,   93,   93,   93,   93,   93,   70,   86,
+       71,   72,   73,   74,   73,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,   32,  193,   81,   83,
 
-      287,  287,    0,  288,  285,    0,    0,    0,    0,    0,
-      287,    0,  287,  288,  287,  288,  289,  288,    0,  287,
-        0,  288,  288,  292,  291,    0,  289,  291,  289,  289,
-      289,    0,    0,    0,  291,  289,  291,    0,  291,  292,
-        0,    0,  293,  291,    0,  293,    0,    0,    0,  292,
-        0,  292,  293,  292,  293,    0,  293,  296,  292,  294,
-      294,  293,    0,  297,    0,    0,    0,  296,    0,  296,
-      294,  296,  294,  297,  294,  297,  296,  297,    0,  294,
-      298,  297,  297,  298,    0,    0,  299,    0,    0,    0,
-      298,    0,  298,    0,  298,    0,  299,  300,  299,  298,
+       83,   83,   83,  193,   72,   72,   72,   72,   32,   88,
+       81,   99,   76,   96,   96,   96,   96,   96,   96,   96,
+       96,   99,  225,   99,  193,   99,   99,  193,  193,  106,
+       99,  708,   99,  107,   72,   72,   99,  108,   99,  109,
+       99,  193,   99,  115,  116,   99,   99,  708,  193,  110,
+      193,   99,  213,  193,  117,  229,  193,  193,   73,   72,
+       73,   72,   73,   74,   73,   73,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   72,  193,  708,  235,  251,
+      193,  294,  193,   99,   72,   72,   72,   72,  293,  111,
+      193,   99,   76,  112,  114,   99,  113,   99,  193,  252,
 
-      299,    0,  301,  301,    0,  299,    0,  300,    0,  300,
-        0,  300,    0,  301,  302,  301,  300,  301,    0,    0,
-      303,  305,  301,    0,  302,    0,  302,    0,  302,    0,
-      303,  304,  303,  302,  303,    0,    0,  305,    0,  303,
-        0,  304,    0,  304,    0,  304,    0,  305,    0,  305,
-      304,  305,  307,  308,    0,    0,  305,    0,  302,    0,
-        0,    0,  307,  308,  307,  308,  307,  308,    0,  310,
-      309,  307,  308,  309,    0,    0,    0,    0,    0,  310,
-      309,  310,  309,  310,  309,    0,  311,  315,  310,  309,
-        0,    0,    0,    0,    0,    0,  311,  315,  311,  315,
+      193,   99,   99,   99,  305,   99,  118,   99,   99,  193,
+       99,  314,  253,  513,   72,   72,  193,   99,   99,   99,
+       99,   99,   99,  119,  260,  261,   99,  129,  193,  309,
+      365,  122,   99,  708,  123,  170,  386,  325,   73,   72,
+       73,   82,   99,  124,  125,  332,   99,  467,  193,  126,
+      193,   99,  170,  130,  381,  193,  447,   86,  364,  450,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,
+       87,   87,   87,   87,   87,   87,  377,   88,   89,   89,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
 
-      311,  315,    0,  311,  310,  311,  315,  316,  316,  316,
-        0,    0,    0,    0,    0,  318,  318,  318,    0,    0,
-      316,  316,  316,  316,  316,  316,  316,  316,  318,  318,
-      318,  318,  318,  318,  318,  318,  319,    0,  321,    0,
-      319,  319,  319,  319,  319,  319,  319,  319,  321,    0,
-      321,    0,  321,  322,  322,    0,  321,  321,  323,  323,
-        0,    0,    0,  322,    0,  322,    0,  322,    0,  323,
-      324,  323,  322,  323,    0,  326,  326,    0,  323,    0,
-      324,    0,  324,    0,  324,    0,  326,    0,  326,  324,
-      326,  327,  327,    0,  328,  326,    0,  328,    0,    0,
+       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       98,  400,  331,   99,   99,   99,   99,   99,   99,   99,
+       99,  173,  173,  173,  173,   99,  100,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,  101,   99,  102,   99,
+      103,   99,   99,   99,   99,  104,   99,   99,   99,   99,
+       99,  193,  193,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  105,  105,  105,  105,   99,  335,  335,  335,  335,
+      127,   99,  268,  193,  268,   99,  405,   99,  128,   99,
+      193,   99,  269,   99,   99,   99,  170,  131,  132,  399,
 
-        0,  327,  329,  327,  328,  327,  328,    0,  328,    0,
-      327,    0,  329,  328,  329,  330,  329,    0,    0,    0,
-        0,  329,    0,  331,    0,  330,    0,  330,    0,  330,
-        0,  332,    0,  331,  330,  331,    0,  331,  332,  331,
-        0,  332,  331,  332,  333,  332,    0,    0,    0,    0,
-      332,    0,  334,    0,  333,  334,  333,    0,  333,  334,
-        0,    0,  334,  333,  334,  335,  334,  335,    0,    0,
-        0,  334,    0,  336,    0,  335,  336,  335,    0,  335,
-      336,  337,    0,  336,  335,  336,    0,  336,    0,  338,
-        0,  337,  336,  337,    0,  337,    0,  337,    0,  338,
+       99,  133,  333,  193,  193,  708,  120,   99,  193,   99,
+      193,  134,  337,  337,  337,  337,   99,  121,  136,   99,
+       99,  137,  193,  141,  193,  135,  193,  193,  456,  138,
+       99,   99,   99,   99,   99,  139,  708,   99,   99,   99,
+      142,  429,  193,  393,  143,  146,  193,   99,  401,   99,
+      193,   99,  147,   99,  442,  144,   99,  193,  193,  500,
+      145,  140,  708,   99,  193,   99,  409,   99,   99,  148,
+      445,   99,   99,  457,  515,  464,  149,  487,   99,  607,
+      151,   99,   99,   99,  150,   99,  152,   99,  193,   99,
+       99,  335,  335,  335,  335,  488,  155,  193,  193,   99,
 
-      337,  338,    0,  338,  339,  339,    0,  338,  338,    0,
-      340,    0,    0,    0,  339,    0,  339,    0,  339,    0,
-      340,  341,  340,  339,  340,    0,    0,  342,  340,  340,
-        0,  341,    0,  341,    0,  341,    0,  342,  341,  342,
-      341,  342,  343,  347,    0,    0,  342,    0,    0,    0,
-      347,    0,  343,  347,  343,  347,  343,  347,    0,    0,
-      349,  343,  347,  348,  348,    0,  348,    0,    0,    0,
-      349,    0,  349,  348,  349,  348,    0,  348,  349,  349,
-      351,  350,  348,  350,    0,    0,    0,    0,    0,    0,
-      351,  350,  351,  350,  351,  350,  352,    0,    0,  351,
+      430,   99,  501,   99,  455,  518,  154,  153,   99,  158,
+      158,  158,  158,  183,  183,  183,  183,  183,  183,  183,
+      183,  193,  462,  159,  159,  159,  159,  159,  159,  160,
+      160,  169,  337,  337,  337,  337,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  169,   90,   90,   90,   90,
+      193,  460,  193,  180,  169,  169,  169,  169,  463,  705,
+       90,   90,   96,   96,   96,   96,   96,   96,   96,   96,
+      503,  402,  402,  402,  402,  193,   99,   99,  704,  516,
+      193,  403,  193,  702,  169,  169,   99,   99,   99,   99,
+       99,   99,   99,   99,  188,   99,   99,  519,  402,  402,
 
-      350,    0,  353,    0,    0,  353,  352,    0,  352,    0,
-      352,  355,  353,  354,  353,  352,  353,    0,  356,  355,
-        0,  353,    0,  354,    0,  354,    0,  354,    0,  355,
-      354,  355,  354,  355,  356,    0,    0,  358,  355,    0,
-      359,    0,    0,    0,  356,    0,  356,  358,  356,  358,
-      359,  358,  359,  356,  359,  358,  358,  360,  362,  359,
-        0,    0,    0,    0,    0,    0,    0,  360,  362,  360,
-      362,  360,  362,  363,  362,    0,  360,  362,    0,  364,
-      363,    0,    0,  363,    0,  363,    0,  363,    0,  364,
-      365,  364,  363,  364,    0,    0,    0,    0,  364,    0,
+      402,  402,  189,   99,   99,   99,   99,  191,  193,  169,
+      169,   99,   99,  193,  193,  169,  169,  169,  169,  169,
+      169,  169,  169,  169,  169,  193,  470,   99,   99,  465,
+      465,  465,  465,  169,  169,  169,  169,   99,   99,   99,
+       99,   99,   99,   99,  578,  192,   99,   99,  194,  404,
+      171,  190,  508,   99,  698,   99,   99,   99,  538,   99,
+      193,  193,   99,  169,  169,  489,   99,   99,   99,   99,
+       99,   99,  517,  196,  195,   99,  404,   99,   99,   99,
+      197,   99,  465,  465,  465,  465,   99,  193,  169,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
 
-      365,    0,  365,  367,  365,    0,  368,    0,  365,  365,
-      367,    0,    0,  367,  369,  367,  368,  367,  368,  369,
-      368,    0,  367,    0,  369,  368,  369,  370,  369,    0,
-        0,    0,    0,  369,    0,    0,    0,  370,  372,  370,
-        0,  370,    0,    0,  374,  372,  370,    0,  372,  370,
-      372,    0,  372,    0,  374,    0,  374,  372,  374,  375,
-      376,    0,  375,  374,    0,    0,    0,    0,    0,  375,
-      376,  375,  376,  375,  376,  378,  376,    0,  375,  376,
-        0,    0,  383,  383,  383,  378,    0,  378,    0,  378,
-        0,    0,    0,  386,  378,  383,  383,  383,  383,  383,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,   99,  511,  198,   99,  524,  193,  193,  193,  193,
+      536,   99,  193,   99,   99,   99,   99,  199,   99,   99,
+       99,  200,   99,   99,  193,  697,  193,  193,  537,   99,
+      201,  202,   99,   99,   99,   99,   99,  193,   99,  203,
+      548,   99,  193,  204,  193,   99,  193,   99,  193,   99,
+      694,  193,  193,   99,   99,   99,  550,   99,   99,  205,
+      206,   99,   99,  539,   99,  208,  577,  555,   99,  560,
+       99,  211,   99,   99,   99,   99,   99,  207,  209,   99,
+       99,  215,  210,   99,  557,  562,  193,  561,  559,   99,
 
-      383,  383,  383,  386,    0,  386,    0,  386,    0,  387,
-      387,    0,  386,  388,    0,    0,  390,    0,    0,  378,
-      387,    0,  387,  388,  387,  388,  390,  388,  390,  387,
-      390,  388,  388,  391,  392,  390,    0,    0,    0,    0,
-        0,    0,    0,  391,  392,  391,  392,  391,  392,    0,
-        0,  391,  391,  392,  393,    0,    0,  393,    0,  394,
-      394,    0,    0,    0,  393,    0,  393,    0,  393,    0,
-      394,  395,  394,  393,  394,    0,    0,  396,    0,  394,
-        0,  395,    0,  395,    0,  395,    0,  396,    0,  396,
-      395,  396,  397,    0,  397,  396,  396,    0,  398,    0,
+       99,   99,  212,   99,  601,  552,   99,  568,   99,  216,
+       99,  193,   99,  193,   99,  587,   99,   99,   99,   99,
+       99,  193,  193,   99,  218,   99,  193,   99,  193,   99,
+      193,  217,  170,   99,   99,   99,   99,   99,  193,  691,
+      219,  220,   99,  193,   99,   99,   99,  221,   99,  193,
+      193,   99,  689,   99,  193,   99,  579,   99,  688,   99,
+      580,   99,   99,  223,   99,   99,  193,  222,  589,  683,
+       99,  584,  224,  193,   99,   99,   99,  591,   99,  193,
+      681,   99,  586,  226,  193,   99,  593,   99,   99,   99,
+       99,   99,   99,  595,   99,  193,  227,   99,  193,   99,
 
-        0,    0,  397,    0,  397,    0,  397,    0,  398,    0,
-      398,  397,  398,    0,    0,  399,  398,  398,  399,    0,
-        0,  400,    0,  400,    0,  399,    0,  399,    0,  399,
-        0,  400,  401,  400,  399,  400,    0,  402,  402,    0,
-      400,    0,  401,    0,  401,    0,  401,    0,  402,  403,
-      402,  401,  402,    0,    0,  404,    0,  402,    0,  403,
-        0,  403,  404,  403,    0,  404,  405,  404,  403,  404,
-        0,    0,  406,    0,  404,    0,  405,    0,  405,  406,
-      405,    0,  406,  405,  406,  405,  406,  407,  407,  411,
-        0,  406,    0,  411,    0,    0,    0,    0,  407,  411,
+      193,   99,   99,   99,  193,   99,  597,  596,  610,   99,
+       99,   99,   99,   99,   99,   99,   99,  228,   99,  193,
+      230,   99,  193,  708,  612,   99,   99,   99,  621,   99,
+      563,  563,  563,  563,   99,  231,   99,  618,   99,   99,
+       99,  193,  233,  619,  598,  232,  234,  611,  193,   99,
+      193,   99,  622,   99,  236,   99,  678,  193,   99,  193,
+      193,   99,  624,  193,  193,  237,  193,   99,  636,   99,
+      616,   99,   99,   99,   99,   99,  238,  193,   99,  239,
+       99,  626,   99,  243,   99,  193,   99,  193,   99,   99,
+       99,   99,   99,  193,  241,   99,  240,   99,  680,   99,
 
-      407,  411,  407,  411,  412,    0,    0,  407,  411,    0,
-      413,  412,  413,    0,  412,    0,  412,    0,  412,    0,
-      413,  414,  413,  412,  413,    0,    0,  415,    0,  413,
-      415,  414,    0,  414,    0,  414,    0,  415,  414,  415,
-      414,  415,  416,  416,    0,    0,  415,    0,  417,  417,
-        0,    0,  416,    0,  416,    0,  416,    0,  417,  418,
-      417,  416,  417,    0,    0,    0,    0,  417,    0,  418,
-        0,  418,    0,  418,  419,  418,    0,  419,  418,    0,
-      420,    0,    0,    0,  419,    0,  419,    0,  419,    0,
-      420,  421,  420,  419,  420,    0,    0,  420,  421,  420,
+      193,  242,  673,   99,  672,   99,   99,   99,   99,   99,
+      627,  244,   99,  625,   99,  628,   99,  635,   99,  645,
+       99,  643,   99,   99,   99,   99,   99,  656,  637,   99,
+      667,  245,  666,   99,  664,   99,  248,  246,  642,   99,
+      640,   99,   99,   99,   99,   99,  249,  193,   99,  250,
+      563,  563,  563,  563,   99,   99,   99,   99,   99,   99,
+      649,  256,  254,   99,   99,  160,  160,  160,  160,  160,
+      160,  160,  160,  257,  193,  193,  193,  160,  160,  160,
+      160,  160,  160,  160,  160,  183,  183,  183,  183,  183,
+      183,  183,  183,   98,   99,   99,  661,  270,  648,  653,
 
-        0,  421,  423,  421,    0,  421,    0,  424,  424,    0,
-      421,    0,  423,    0,  423,    0,  423,    0,  424,  426,
-      424,  423,  424,    0,    0,  427,    0,  424,    0,  426,
-        0,  426,    0,  426,    0,  427,  428,  427,  426,  427,
-        0,    0,    0,    0,  427,    0,  428,    0,  428,  429,
-      428,    0,  429,    0,  428,  428,    0,  431,    0,  429,
-        0,  429,    0,  429,    0,    0,    0,  431,  429,  431,
-        0,  431,  432,  432,    0,  433,  431,  431,  434,    0,
-        0,    0,  432,    0,  432,  433,  432,  433,  434,  433,
-      434,  432,  434,  436,  433,  436,  438,  434,    0,  439,
+      652,  193,  193,  193,   99,   99,   99,   99,   99,   99,
+       99,   99,  193,   99,   99,  599,  599,  599,  599,  193,
+       99,  271,   99,   99,   99,   99,  651,  193,  647,   99,
+       99,  655,  650,  193,  193,  193,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,   99,  665,
+      193,  669,  692,  646,  193,  644,   99,  657,   99,   99,
+       99,  272,   99,  273,  662,  193,   99,   99,   99,   99,
+       99,   99,   99,   99,  660,   99,  193,  690,   99,  668,
+       99,  641,   99,  600,   99,  633,   99,  193,   99,  274,
 
-        0,    0,    0,  436,    0,  436,  438,  436,  438,  439,
-      438,  439,  436,  439,    0,  438,  439,    0,  439,  445,
-      445,  445,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  445,  445,  445,  445,  445,  445,  445,  445,
-      446,    0,  448,    0,  446,  446,  446,  446,  446,  446,
-      446,  446,  448,    0,  448,  449,  448,    0,  451,    0,
-      448,  448,  449,    0,    0,  449,    0,  449,  451,  449,
-      451,    0,  451,  452,  449,    0,  452,  451,    0,  453,
-        0,    0,    0,  452,    0,  452,    0,  452,    0,  453,
-      454,  453,  452,  453,    0,    0,  455,  454,  453,    0,
+      275,   99,   99,  193,   99,  193,   99,  193,   99,   99,
+       99,  663,   99,  277,  276,  670,   99,   99,   99,   99,
+       99,  599,  599,  599,  599,   99,  676,   99,  629,   99,
+       99,   99,  623,   99,  193,  675,  278,   99,   99,   99,
+       99,  279,   99,  193,   99,  620,   99,  280,  281,   99,
+      282,   99,   99,  700,  682,  284,  677,  193,  283,  193,
+      671,   99,   99,   99,   99,   99,   99,   99,  617,  193,
+       99,   99,  193,   99,  193,  193,  193,   99,  193,   99,
+      285,   99,  193,   99,   99,   99,   99,   99,  592,  686,
+       99,  193,   99,  287,   99,  286,   99,  193,   99,  600,
 
-      454,    0,  454,  455,  454,    0,  455,  456,  455,  454,
-      455,    0,    0,  457,    0,  455,    0,  456,    0,  456,
-        0,  456,    0,  457,  458,  457,  456,  457,    0,    0,
-        0,  458,  457,    0,  458,  459,  458,  459,  458,    0,
-        0,  460,    0,  458,    0,  459,    0,  459,    0,  459,
-        0,  460,  461,  460,  459,  460,    0,  461,  462,    0,
-      460,    0,  461,    0,  461,    0,  461,    0,  462,  463,
-      462,  461,  462,    0,    0,    0,  462,  462,    0,  463,
-      464,  463,    0,  463,    0,    0,  465,  463,  463,    0,
-      464,    0,  464,    0,  464,    0,  465,  466,  465,  464,
+       99,   99,   99,   99,   99,  588,  679,   99,  684,   99,
+      290,  288,  585,   99,  289,   99,  699,   99,   99,   99,
+       99,   99,  193,  685,  687,  556,   99,  193,   99,   99,
+       99,  693,   99,  695,  551,  291,  547,   99,  521,   99,
+      292,   99,   99,   99,  512,  193,  696,  505,   99,  706,
+       99,  339,   99,   99,   99,  178,   99,  176,  174,  295,
+       99,   99,  296,  297,   99,   99,  298,   99,   99,   99,
+      170,   99,   99,  339,   99,  156,  701,  301,  299,  708,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,  300,
+       99,  302,  193,   99,  703,  266,   99,  178,  176,   99,
 
-      465,    0,    0,  470,    0,  465,    0,  466,    0,  466,
-      470,  466,    0,  470,  471,  470,  466,  470,    0,    0,
-        0,    0,  470,    0,  471,  472,  471,    0,  471,    0,
-        0,  473,  471,  471,    0,  472,    0,  472,    0,  472,
-        0,  473,  474,  473,  472,  473,    0,    0,  475,    0,
-      473,  475,  474,    0,  474,    0,  474,    0,  475,  474,
-      475,  474,  475,  476,  477,    0,    0,  475,    0,    0,
-        0,    0,    0,  476,  477,  476,  477,  476,  477,  478,
-      478,  476,  476,  477,    0,  479,    0,    0,    0,  478,
-        0,  478,    0,  478,    0,  479,  480,  479,  478,  479,
+      262,  170,   99,  259,  258,  156,   99,  193,   99,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,  185,
+       99,  303,  184,  306,  182,  181,  178,  304,  176,   99,
+       99,   99,   99,  175,   99,   99,   99,  174,  307,   99,
+      174,   99,  168,  166,   95,   99,  164,   99,  308,   99,
+      163,   99,   99,   99,   99,   99,  162,  156,   97,   94,
+       99,   85,   99,   99,   99,   82,   99,   82,  708,   99,
+      310,   99,  708,   99,  708,   99,  708,   99,  708,   99,
+       99,   99,   99,   99,  708,  708,  311,  708,   99,  708,
+       99,   99,   99,  708,   99,  708,  708,  312,  708,   99,
 
-        0,    0,  482,    0,  479,    0,  480,    0,  480,    0,
-      480,    0,  482,  484,  482,  480,  482,    0,    0,    0,
-        0,  482,    0,  484,  485,  484,    0,  484,  485,  479,
-      486,    0,  484,    0,  485,    0,  485,    0,  485,    0,
-      486,  487,  486,  485,  486,    0,    0,  489,    0,  486,
-      489,  487,    0,  487,    0,  487,    0,  489,    0,  489,
-      487,  489,  490,    0,    0,  490,  489,    0,  492,    0,
-        0,  492,  490,    0,  490,    0,  490,    0,  492,    0,
-      492,  490,  492,  494,  494,    0,    0,  492,    0,    0,
-        0,  500,  500,  500,  494,    0,  494,    0,  494,    0,
+      708,   99,   99,   99,  708,   99,  708,  316,   99,  708,
+       99,  313,  315,  708,   99,  708,   99,  708,   99,   99,
+       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,  317,   99,
+       99,   99,  708,  318,   99,  708,  708,  708,  319,  708,
+       99,   99,   99,   99,   99,   99,   99,  708,  708,   99,
+       99,  708,  708,  708,  708,  708,   99,   99,   99,  708,
+       99,  708,  708,   99,  320,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,  321,   99,   99,   99,   99,  708,
+      322,  323,   99,  708,   99,  708,  708,  324,   99,  708,
 
-        0,    0,    0,  494,  500,  500,  500,  500,  500,  500,
-      500,  500,  502,  503,  503,    0,    0,    0,    0,  502,
-        0,    0,  502,  503,  502,  503,  502,  503,  505,    0,
-        0,  502,  503,    0,    0,    0,  506,    0,  505,  507,
-      505,    0,  505,    0,  505,    0,  506,  505,  506,  507,
-      506,  507,  508,  507,  506,  506,    0,    0,  507,    0,
-      509,    0,  508,    0,  508,  511,  508,    0,  510,    0,
-      509,  508,  509,  509,  509,    0,    0,    0,  510,  509,
-      510,  511,  510,    0,    0,    0,    0,  510,    0,  512,
-        0,  511,  512,  511,    0,  511,    0,  513,    0,  512,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      708,  708,  708,   99,  708,   99,   99,   99,  326,   99,
+      327,  708,  330,  708,   99,  328,   99,  708,   99,   99,
+       99,  708,   99,  708,  329,   99,  708,  708,  334,   99,
+       99,   99,   99,   99,   99,  708,   99,  708,   99,  708,
+       99,   99,  341,   99,   99,  708,  708,  708,  708,   99,
+      342,  708,  708,   99,   99,   99,  708,   99,  708,  708,
+       99,  708,   99,  708,   99,  343,   99,  708,   99,  708,
+       99,   99,  344,   99,   99,  708,  708,   99,  708,   99,
+      346,   99,  708,   99,  708,   99,  708,   99,  708,   99,
 
-      511,  512,    0,  512,    0,  514,    0,  513,  512,  513,
-        0,  513,  514,  515,    0,  514,  513,  514,    0,  514,
-        0,    0,    0,  515,  514,  515,  520,  515,    0,  520,
-        0,    0,  515,    0,  521,    0,  520,  522,  520,    0,
-      520,    0,    0,    0,  521,  520,  521,  522,  521,  522,
-      523,  522,    0,  521,    0,    0,  522,    0,  524,    0,
-      523,  525,  523,    0,  523,  524,    0,    0,  524,  523,
-      524,  525,  524,  525,  527,  525,    0,  524,  527,  525,
-      525,    0,  529,    0,  527,    0,  527,  533,  527,    0,
-      531,    0,  529,  527,  529,    0,  529,  531,    0,    0,
+       99,   99,  347,   99,   99,  348,   99,  708,  708,  708,
+      708,  708,  708,   99,   99,   99,   99,   99,   99,   99,
+      708,  708,   99,   99,  708,  345,  708,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,  349,   99,   99,   99,
+      350,   99,  708,  708,  708,   99,   99,   99,   99,   99,
+      352,   99,  708,  351,   99,  708,  708,  708,   99,   99,
+       99,   99,   99,   99,  708,   99,  708,  353,  708,   99,
+       99,  354,   99,   99,  355,   99,  708,  356,   99,  708,
+      708,  708,   99,  708,   99,   99,   99,   99,  708,   99,
+       99,   99,  708,  357,   99,  708,   99,  708,  708,  708,
 
-      531,  529,  531,  533,  531,    0,  534,    0,    0,  531,
-        0,    0,    0,  533,  536,  533,  534,  533,  534,    0,
-      534,    0,  533,    0,  536,  534,  536,  538,  536,    0,
-        0,    0,    0,  536,  543,  543,  543,  538,    0,  538,
-        0,  538,    0,    0,    0,  546,  538,  543,  543,  543,
-      543,  543,  543,  543,  543,  546,  547,  546,  546,  546,
-        0,    0,  549,    0,  546,    0,  547,    0,  547,    0,
-      547,    0,  549,  550,  549,  547,  549,    0,    0,  551,
-        0,  549,  551,  550,    0,  550,    0,  550,    0,  551,
-      550,  551,  550,  551,  552,  553,    0,    0,  551,  552,
+       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
+      358,  708,  708,   99,  359,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,   99,   99,   99,   99,  708,  360,
+      708,  708,   99,  708,   99,  708,  361,  708,   99,   99,
+      362,  708,  363,   99,  708,   99,  708,  708,  708,   99,
+      708,   99,  708,   99,  708,   99,   99,   99,   99,   99,
+      708,  708,   99,  708,   99,  708,   99,  708,   99,  708,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      367,   99,  708,  708,  368,  708,  708,   99,   99,   99,
+       99,   99,   99,   99,  369,  708,   99,   99,  371,   99,
 
-        0,    0,    0,    0,  552,  553,  552,  553,  552,  553,
-      554,  554,    0,  552,  553,    0,  555,    0,  555,    0,
-      554,    0,  554,    0,  554,    0,  555,  556,  555,  554,
-      555,    0,    0,  561,    0,  555,    0,  556,    0,  556,
-        0,  556,    0,  561,  562,  561,  556,  561,    0,  561,
-        0,    0,  561,    0,  562,  563,  562,  562,  562,    0,
-        0,  565,  563,  562,    0,  563,    0,  563,  565,  563,
-        0,  565,  568,  565,  563,  565,    0,    0,    0,    0,
-      565,    0,  568,  570,  568,    0,  568,    0,    0,  572,
-        0,  568,    0,  570,    0,  570,  570,  570,    0,  572,
+      366,  708,  708,   99,  708,   99,  708,   99,  708,   99,
+      708,   99,  370,   99,   99,  372,  708,  375,   99,  373,
+      708,  708,  708,  708,   99,  708,   99,   99,   99,  708,
+      374,  708,  708,   99,  708,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,   99,   99,  708,   99,
+      708,  708,  376,   99,   99,   99,  708,   99,   99,  378,
+      708,   99,   99,  708,  708,  708,  708,  708,   99,  708,
+       99,   99,   99,   99,   99,   99,  708,   99,  708,  379,
+       99,  383,   99,  708,   99,  382,   99,  380,   99,  708,
+      708,  708,   99,   99,   99,  708,   99,   99,  708,  708,
 
-      574,  572,  570,  572,    0,    0,  582,  572,  572,    0,
-      574,    0,  574,    0,  574,    0,  582,  583,  582,  574,
-      582,    0,    0,    0,    0,  582,    0,  583,  584,  583,
-      584,  583,    0,    0,  585,    0,  583,    0,  584,    0,
-      584,    0,  584,    0,  585,  586,  585,  584,  585,    0,
-        0,    0,    0,  585,    0,  586,  587,  586,    0,  586,
-        0,    0,  586,    0,  586,    0,  587,  588,  587,  587,
-      587,    0,    0,  589,    0,  587,    0,  588,    0,  588,
-      589,  588,    0,  589,  593,  589,  588,  589,    0,    0,
-      594,    0,  589,    0,  593,    0,  593,    0,  593,    0,
+       99,   99,  708,  384,  708,  708,  708,   99,  708,   99,
+       99,   99,   99,  708,   99,   99,   99,  385,   99,   99,
+      708,   99,  708,  708,  708,   99,  708,   99,   99,   99,
+       99,   99,   99,   99,   99,   99,  708,   99,   99,  387,
+       99,  388,  708,  708,   99,  708,  708,  708,   99,  708,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      390,   99,  708,   99,  708,   99,  708,  389,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  708,   99,  392,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
+       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,
 
-      594,  595,  594,  593,  594,    0,    0,  597,    0,  594,
-        0,  595,    0,  595,  595,  595,    0,  597,  600,  597,
-      595,  597,    0,    0,  602,  600,  597,    0,  600,    0,
-      600,  602,  600,    0,  602,  603,  602,  600,  602,    0,
-        0,  610,  603,  602,    0,  603,    0,  603,    0,  603,
-        0,  610,  611,  610,  603,  610,    0,    0,  612,    0,
-      610,    0,  611,    0,  611,    0,  611,    0,  612,  613,
-      612,  611,  612,    0,    0,  614,    0,  612,    0,  613,
-        0,  613,    0,  613,    0,  614,  618,  614,  613,  614,
-        0,    0,  619,  614,  614,    0,  618,    0,  618,    0,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,   99,  708,  708,   99,  708,  391,  708,  708,  708,
+       99,   99,  394,   99,   99,   99,  708,   99,   99,   99,
+      395,  396,  708,  708,  708,  708,  708,   99,   99,   99,
+       99,   99,   99,  708,   99,   99,   99,   99,  708,  708,
+      708,  708,  708,  708,   99,   99,   99,   99,   99,   99,
+      708,  398,  397,   99,   99,  403,  708,   99,  708,  338,
+      338,  338,  338,  338,  338,  338,  338,   99,  708,   99,
+      708,   99,   99,  407,  708,  406,   99,  408,   99,  708,
+      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,
 
-      618,    0,  619,  618,  619,  618,  619,  621,    0,    0,
-      624,  619,    0,  626,  621,  626,    0,  621,    0,  621,
-      624,  621,  624,  626,  624,  626,  621,  626,  624,  624,
-      627,    0,  626,  633,  627,    0,  634,    0,    0,    0,
-      627,    0,  627,  633,  627,  633,  634,  633,  634,  627,
-      634,  633,  633,  638,  639,  634,    0,    0,    0,  634,
-        0,    0,    0,  638,  639,  638,  639,  638,  639,  641,
-      644,    0,  638,  639,    0,    0,    0,    0,    0,  641,
-      644,  641,  644,  641,  644,  646,    0,  641,  641,  644,
-        0,  647,    0,  644,    0,  646,    0,  646,  647,  646,
+       99,   99,   99,  708,  410,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,  411,  708,   99,   99,  708,  412,  708,  708,  708,
+       99,   99,   99,   99,   99,   99,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
+       99,  708,   99,  708,   99,  708,  413,  708,   99,  708,
+       99,  708,   99,   99,   99,  708,   99,  415,  414,  708,
+       99,   99,   99,   99,   99,  708,  708,  708,  708,   99,
+      708,   99,  708,  416,  417,   99,  708,   99,  418,  708,
+      708,   99,   99,   99,   99,   99,  419,  708,  708,  708,
 
-        0,  647,  653,  647,  646,  647,    0,    0,    0,    0,
-      647,    0,  653,  654,  653,    0,  653,    0,  653,  658,
-        0,  653,    0,  654,    0,  654,    0,  654,    0,  658,
-        0,  658,  654,  658,  661,    0,    0,  663,  658,    0,
-      663,    0,  658,    0,  661,  669,  661,  663,  661,  663,
-        0,  663,    0,  661,    0,  669,  663,  669,  669,  669,
-      671,  674,    0,    0,  669,    0,    0,    0,    0,    0,
-      671,  674,  671,  674,  671,  674,  678,  674,    0,  671,
-      674,    0,  682,    0,    0,    0,  678,    0,  678,    0,
-      678,    0,  682,  685,  682,  678,  682,    0,    0,    0,
+       99,  708,   99,  708,   99,  420,   99,  708,   99,  421,
+       99,  708,   99,   99,   99,  708,   99,  708,   99,  708,
+       99,   99,   99,  708,   99,  708,  422,  708,   99,   99,
+       99,  708,   99,   99,  424,  708,  423,   99,  708,   99,
+      708,  708,  708,   99,  708,   99,  708,   99,  708,   99,
+       99,   99,   99,   99,  708,  708,   99,  425,   99,  708,
+       99,  708,   99,  708,   99,  708,   99,  426,  427,   99,
+       99,   99,   99,  708,  708,   99,  708,  708,  708,  431,
+      708,   99,   99,   99,   99,   99,   99,  708,  708,   99,
+       99,   99,   99,  432,  708,  433,  708,  708,  708,   99,
 
-        0,  682,    0,  685,    0,  685,    0,  685,    0,    0,
-        0,    0,  685,  689,  689,  689,  689,  689,  689,  689,
-      689,  689,  689,  689,  689,  689,  689,  690,  690,  690,
-      690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
-      690,  691,  691,  691,  691,  691,  691,  691,  691,  691,
-      691,  691,  691,  691,  691,  692,  692,  692,  692,  692,
-      692,  692,  692,  692,  692,  692,  692,  692,  692,  693,
-      693,  693,  693,  693,  693,  693,  693,  693,  693,  693,
-      693,  693,  693,  694,  694,  694,  694,  694,  694,  694,
-      694,  694,  694,  694,  694,  694,  694,  695,  695,  695,
+      708,   99,   99,   99,   99,  708,   99,  434,   99,   99,
+       99,   99,  435,  708,  708,  708,  708,  708,  708,   99,
+       99,  436,   99,   99,   99,   99,  708,  708,   99,   99,
+      708,   99,  708,  708,  438,   99,  708,   99,  708,   99,
+      440,   99,   99,   99,  437,   99,  708,  441,   99,  708,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,  439,
+       99,   99,   99,   99,  708,  708,   99,   99,  708,   99,
+      708,  708,  708,   99,  708,   99,   99,   99,   99,   99,
+       99,   99,   99,   99,  443,   99,   99,   99,   99,  708,
+      708,  708,  708,  708,  708,  708,   99,   99,  444,   99,
 
-        0,  695,  695,  695,  695,  695,  695,  695,  695,  695,
-      695,  696,  696,    0,    0,  696,    0,    0,  696,    0,
-      696,  697,  697,    0,  697,  697,  698,  698,    0,  698,
-      698,  698,  698,    0,  698,  698,  698,  698,  698,  698,
-      699,  699,  699,    0,  699,  699,  699,  699,  699,  699,
-      699,  699,  699,  699,  700,  700,  700,  700,  700,  700,
-      700,  700,  700,    0,  700,  700,  701,    0,    0,  701,
-      701,  701,  701,  701,  701,  701,  701,  701,  702,    0,
-        0,  702,  702,  702,  702,  702,  702,  702,  702,  702,
-      703,    0,    0,  703,    0,  703,  703,  703,  703,  703,
+       99,   99,   99,  446,  708,   99,   99,  708,   99,  708,
+      708,  708,   99,  708,  448,  708,   99,  708,   99,  708,
+       99,   99,   99,   99,   99,  708,  449,   99,  708,  708,
+      451,  708,  708,   99,   99,   99,  452,   99,   99,   99,
+       99,  708,   99,   99,  453,  708,  708,  708,  708,   99,
+       99,   99,   99,   99,   99,   99,  708,  708,   99,   99,
+      708,   99,  454,  708,  458,   99,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
+       99,  708,   99,   99,   99,  708,   99,  708,  459,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,  708,   99,
 
-      703,  703,  704,  704,    0,  704,  704,  705,  705,    0,
-      705,  705,  706,  706,    0,  706,  706,  707,  707,    0,
-        0,    0,  707,    0,  707,    0,    0,    0,    0,  707,
-      708,  708,    0,    0,    0,    0,    0,  708,    0,    0,
-        0,    0,  708,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
+      708,   99,   99,   99,  468,   99,  708,  708,   99,  708,
+      708,   99,  708,  708,  708,   99,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  461,   99,  469,
+       99,  708,   99,  708,  471,  708,   99,  708,   99,   99,
+       99,   99,   99,  708,  708,   99,  472,   99,  473,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+      474,   99,   99,  708,   99,  708,  708,  708,  708,  708,
+      708,   99,   99,   99,  475,   99,   99,   99,  708,  708,
+       99,   99,  708,  708,  708,  708,  708,   99,   99,   99,
+      477,   99,  708,  708,   99,  476,   99,  708,   99,  708,
 
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
-      688,  688,  688
+       99,  708,   99,  708,   99,  708,   99,   99,   99,  708,
+      708,   99,  478,   99,  479,  708,  708,   99,  708,  480,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,   99,  708,  482,   99,  708,   99,  708,   99,  708,
+      481,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      708,   99,  708,   99,  708,   99,  708,   99,  483,   99,
+      708,   99,   99,   99,   99,   99,  708,  708,   99,  708,
+       99,  708,   99,  708,   99,  485,   99,  708,   99,  484,
+       99,   99,   99,  486,   99,   99,  708,   99,  708,  490,
+      708,  708,  708,  708,   99,   99,   99,   99,   99,   99,
+
+       99,  708,  708,   99,   99,  708,   99,  491,  492,  708,
+       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
+       99,  708,  708,   99,  708,   99,  494,   99,  708,   99,
+      708,   99,  708,   99,  493,   99,   99,   99,   99,  495,
+      708,  708,   99,  708,   99,  496,  708,  708,   99,  708,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      708,  708,  708,   99,  708,   99,  708,   99,  708,   99,
+       99,  497,  708,  498,   99,  708,   99,  708,  708,  708,
+       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
+       99,  708,  708,  499,  708,   99,  708,   99,  708,   99,
+
+       99,   99,  502,   99,  708,  708,   99,  708,  708,  708,
+       99,   99,  504,   99,   99,   99,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  507,  708,  506,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,  708,
+      708,  708,   99,   99,   99,  708,   99,   99,  510,  708,
+       99,   99,  509,   99,  708,  708,  708,   99,  708,   99,
+       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
+      708,   99,   99,  708,  708,  708,  708,  708,   99,  708,
+       99,   99,   99,   99,  708,   99,  708,   99,  514,  520,
+       99,   99,  708,  466,  466,  466,  466,  466,  466,  466,
+
+      466,   99,  708,   99,   99,   99,  708,   99,  708,  522,
+       99,  523,  708,  708,   99,  708,   99,   99,   99,   99,
+      708,   99,   99,   99,  708,  525,   99,  708,   99,  708,
+      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,
+      526,   99,   99,  708,  708,   99,  527,   99,  708,   99,
+      708,   99,  528,   99,  708,   99,   99,   99,   99,   99,
+      708,  708,   99,  708,   99,  708,   99,  708,   99,  708,
+       99,  708,   99,   99,   99,   99,   99,  708,  708,  708,
+      529,   99,  708,   99,   99,   99,  530,   99,  708,  708,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,  708,
+
+       99,   99,   99,   99,   99,  708,  531,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,   99,  708,  708,  708,  532,   99,  708,   99,   99,
+       99,  708,   99,  708,  708,  534,  533,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,   99,   99,   99,   99,
+      708,  708,   99,  708,   99,  708,  535,  708,   99,  540,
+       99,  708,   99,   99,   99,   99,   99,  708,  708,  708,
+      708,   99,  708,   99,   99,   99,  708,   99,  708,  708,
+       99,  541,   99,  708,   99,  708,   99,  708,   99,  708,
+       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,
+
+      543,   99,  708,   99,  708,   99,  708,   99,  542,   99,
+       99,   99,   99,   99,  708,  708,   99,  708,  708,  708,
+      708,  708,   99,   99,   99,   99,   99,   99,   99,  545,
+      544,   99,   99,  708,   99,  708,  708,  708,   99,  708,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
+      708,   99,  708,   99,  708,  549,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
+       99,  708,   99,   99,   99,  708,   99,  708,  546,   99,
+      708,   99,  553,   99,  708,   99,  708,   99,  708,   99,
+      708,   99,   99,   99,   99,  708,  708,  554,   99,  558,
+
+       99,  708,  708,  708,   99,  708,   99,  708,   99,  708,
+       99,   99,   99,   99,   99,  708,  708,  708,  566,   99,
+      708,   99,  708,   99,  708,   99,   99,  567,  708,  708,
+       99,  708,   99,  708,  708,  708,   99,  708,   99,  708,
+       99,  708,   99,   99,   99,   99,   99,  708,  569,  708,
+      708,   99,  708,   99,   99,   99,  708,   99,  708,  708,
+       99,  570,   99,  708,   99,  708,  571,  708,   99,  708,
+       99,   99,  572,   99,   99,  708,  574,   99,  708,   99,
+      708,   99,  708,   99,  573,   99,  708,   99,  708,   99,
+       99,   99,   99,  708,  708,   99,   99,  708,  575,  708,
+
+      708,  708,   99,   99,   99,   99,   99,   99,  708,   99,
+      708,   99,  708,   99,   99,   99,   99,   99,  708,   99,
+      708,  708,   99,  576,  708,  708,   99,  708,   99,   99,
+       99,   99,  708,   99,   99,   99,  708,  581,   99,  708,
+       99,  708,  708,  708,   99,  708,   99,  708,   99,  708,
+       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,
+      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,   99,  708,  708,   99,  582,   99,  708,   99,  708,
+       99,  708,   99,  708,   99,   99,   99,   99,   99,  590,
+      708,  708,  583,   99,  708,   99,  708,   99,  708,   99,
+
+      708,  708,   99,  708,   99,   99,  708,  708,   99,  708,
+      708,  708,   99,  708,   99,   99,   99,   99,  594,   99,
+       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,
+      708,  708,  708,   99,  708,   99,  602,   99,  708,   99,
+       99,   99,   99,   99,  708,  708,   99,  708,   99,  708,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
+       99,   99,   99,  603,  604,   99,  708,  605,  708,  708,
+      708,   99,   99,   99,   99,   99,   99,   99,  708,  708,
+       99,   99,  708,   99,  708,  608,  708,   99,  708,  606,
+      708,   99,  708,   99,   99,   99,   99,   99,  708,  708,
+
+       99,  708,   99,  708,  609,  708,   99,  708,   99,  708,
+       99,   99,   99,   99,   99,  708,  613,  708,  708,   99,
+      708,   99,   99,   99,  614,   99,  708,  708,   99,  615,
+       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
+       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,
+      708,  630,  708,   99,  708,   99,  708,   99,   99,   99,
+       99,   99,  631,  708,   99,  708,  708,  708,  708,  708,
+       99,   99,   99,   99,   99,   99,   99,   99,  708,   99,
+       99,  708,  708,  708,  708,  708,   99,   99,   99,   99,
+       99,   99,   99,  632,  708,   99,   99,  708,   99,  634,
+
+      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,
+       99,   99,   99,  708,  708,  708,  708,   99,  708,   99,
+       99,  638,  708,   99,  708,  708,   99,  708,   99,  708,
+       99,  708,   99,  639,   99,  708,   99,   99,   99,   99,
+       99,  708,  708,   99,  708,   99,  708,   99,  708,   99,
+      708,   99,  708,   99,   99,   99,   99,   99,  708,  708,
+      708,  708,   99,  708,   99,   99,   99,  708,   99,  708,
+      708,   99,  654,   99,  708,   99,  708,   99,  708,   99,
+      708,   99,  658,  659,   99,   99,   99,   99,  708,  708,
+       99,  708,  708,  708,  708,  708,   99,   99,   99,   99,
+
+       99,   99,   99,   99,  708,   99,   99,  708,  708,  674,
+      708,  708,   99,   99,   99,   99,   99,   99,  708,  708,
+      708,   99,   99,   54,   54,   54,   54,   54,   54,   54,
+       54,   54,   54,   54,   54,   59,   59,   59,   59,   59,
+       59,   59,   59,   59,   59,   59,   59,   63,   63,   63,
+       63,   63,   63,   63,   63,   63,   63,   63,   63,   66,
+       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
+       66,   75,   75,   75,   75,   75,   75,   75,   75,   75,
+       75,   75,   75,   77,   77,   77,   77,   77,   77,   77,
+       77,   77,   77,   77,   77,   84,   84,   84,  708,   84,
+
+       84,   84,   84,   84,   84,   84,   84,   91,   91,  708,
+      708,   91,  708,   91,  708,   91,  157,  157,  708,  157,
+      157,  161,  161,  708,  161,  161,  161,  708,  161,  161,
+      161,  161,  161,  165,  165,  165,  708,  165,  165,  165,
+      165,  165,  165,  165,  165,  167,  167,  167,  167,  167,
+      167,  167,  167,  708,  167,  167,  169,  708,  708,  169,
+      169,  169,  169,  169,  169,  169,  169,  170,  708,  708,
+      170,  170,  170,  170,  170,  170,  170,  170,  172,  708,
+      708,  172,  708,  172,  172,  172,  172,  172,  172,  177,
+      177,  708,  177,  177,  179,  179,  708,  179,  179,  186,
+
+      708,  186,  186,  105,  105,  708,  105,  105,  255,  708,
+      255,  255,  263,  708,  263,  263,  264,  708,  264,  264,
+      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
+      267,  267,  187,  187,  708,  187,  187,  336,  336,  708,
+      708,  708,  708,  336,  338,  338,  708,  708,  708,  708,
+      338,  466,  466,  708,  708,  708,  708,  466,  564,  564,
+      708,  708,  708,  708,  564,   17,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708
+    } ;
+
+static yyconst short int yy_chk[4247] =
+    {   0,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        3,    3,    3,    4,    4,    4,    5,    5,    5,   11,
+        3,    9,    7,    4,    8,    9,    5,    6,    6,    6,
+
+        7,   10,    8,   12,    7,   10,    8,    6,  121,   28,
+       11,   28,  150,   11,   78,   78,   78,   78,  364,  180,
+       15,   15,   15,   15,   12,  180,   15,   12,   79,   79,
+       79,   79,   16,   16,   16,   16,  260,  260,   16,   19,
+       19,   19,   19,  182,  706,  182,   19,   20,   20,   20,
+       20,  121,  521,  182,   20,   24,   24,   24,   24,  521,
+      704,  364,   24,   26,   11,  150,   11,   26,  130,   24,
+       24,   26,   26,   26,   26,   26,   26,   26,   12,   88,
+       12,   13,   13,   13,   13,   13,   13,   13,   13,   13,
+       13,   13,   13,   13,   13,   13,   15,  120,   15,   83,
+
+       83,   83,   83,  135,   13,   13,   13,   13,   16,   88,
+       16,   40,   13,   30,   30,   30,   30,   30,   30,   30,
+       30,   40,  130,   40,  214,   40,   34,  140,  153,   34,
+       40,   80,   37,   34,   13,   13,   34,   34,   34,   34,
+       34,  213,   37,   37,   37,   34,   37,   80,  703,   34,
+      457,   37,  120,  154,   37,  135,  235,  225,   13,   13,
+       13,   14,   14,   14,   14,   14,   14,   14,   14,   14,
+       14,   14,   14,   14,   14,   14,  314,   80,  140,  153,
+      294,  214,  229,   35,   14,   14,   14,   14,  213,   35,
+      247,   36,   14,   35,   36,   35,   35,   35,  252,  154,
+
+      293,   36,   35,   36,  225,   36,   38,   38,   43,  309,
+       36,  235,  154,  457,   14,   14,  386,   38,   43,   38,
+       43,   38,   43,   38,  171,  171,   38,   43,  305,  229,
+      294,   41,   41,  383,   41,  171,  314,  247,   14,   14,
+       14,   23,   41,   41,   41,  252,   41,  405,  701,   41,
+      251,   41,  405,   43,  309,  332,  383,   23,  293,  386,
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
+       23,   23,   23,   23,   23,   23,  305,   23,   23,   23,
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
+
+       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
+       33,  332,  251,   33,   33,   33,   33,   33,   33,   33,
+       33,  173,  173,  173,  173,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,  253,  331,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
+       33,   33,   33,   33,   33,   39,  256,  256,  256,  256,
+       42,   42,  269,  325,  269,   39,  340,   39,   42,   39,
+      365,   42,  269,   42,   39,   42,  340,   44,   44,  331,
+
+       42,   44,  253,  377,  333,  392,   39,   44,  345,   44,
+      381,   44,  257,  257,  257,  257,   44,   39,   45,   45,
+       46,   45,  401,   46,  428,   44,  393,  460,  392,   45,
+       46,   45,   46,   45,   46,   45,  441,   47,   45,   46,
+       47,  365,  366,  325,   47,   48,  391,   47,  333,   47,
+      429,   47,   48,   48,  377,   47,   47,  442,  463,  441,
+       47,   45,  574,   48,  399,   48,  345,   48,   49,   48,
+      381,   50,   48,  393,  460,  401,   48,  428,   49,  574,
+       49,   50,   49,   50,   48,   50,   49,   49,  699,   51,
+       50,  335,  335,  335,  335,  429,   51,  397,  400,   51,
+
+      366,   51,  442,   51,  391,  463,   50,   49,   51,   53,
+       53,   53,   53,   93,   93,   93,   93,   93,   93,   93,
+       93,  461,  399,   53,   53,   53,   53,   53,   53,   53,
+       53,   75,  337,  337,  337,  337,   75,   75,   75,   75,
+       75,   75,   75,   75,   75,   75,   90,   90,   90,   90,
+      464,  397,  445,   90,   75,   75,   75,   75,  400,  698,
+       90,   90,   96,   96,   96,   96,   96,   96,   96,   96,
+      445,  336,  336,  336,  336,  409,   99,  100,  697,  461,
+      537,  336,  696,  694,   75,   75,   99,  100,   99,  100,
+       99,  100,  101,  103,  100,   99,  100,  464,  402,  402,
+
+      402,  402,  101,  103,  101,  103,  101,  103,  450,   75,
+       76,  101,  103,  462,  430,   76,   76,   76,   76,   76,
+       76,   76,   76,   76,   76,  488,  409,  104,  102,  403,
+      403,  403,  403,   76,   76,   76,   76,  104,  102,  104,
+      102,  104,  102,  106,  537,  104,  104,  102,  106,  336,
+       76,  102,  450,  106,  689,  106,  107,  106,  488,  108,
+      470,  455,  106,   76,   76,  430,  107,  109,  107,  108,
+      107,  108,  462,  108,  107,  107,  402,  109,  108,  109,
+      109,  109,  465,  465,  465,  465,  109,  487,   76,   98,
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+
+       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
+       98,  110,  455,  111,  111,  470,  536,  501,  489,  503,
+      487,  110,  511,  110,  111,  110,  111,  111,  111,  113,
+      110,  112,  112,  111,  518,  688,  517,  687,  487,  113,
+      113,  113,  112,  113,  112,  114,  112,  516,  113,  114,
+      501,  112,  508,  115,  684,  114,  550,  114,  524,  114,
+      683,  513,  519,  115,  114,  115,  503,  115,  116,  116,
+      116,  118,  115,  489,  117,  117,  536,  511,  116,  517,
+      116,  118,  116,  118,  117,  118,  117,  116,  117,  119,
+      118,  122,  117,  117,  513,  519,  538,  518,  516,  119,
+
+      122,  119,  119,  119,  565,  508,  123,  524,  119,  123,
+      122,  539,  122,  546,  122,  550,  123,  124,  123,  122,
+      123,  552,  548,  125,  125,  123,  557,  124,  555,  124,
+      679,  124,  565,  125,  126,  125,  124,  125,  559,  678,
+      125,  125,  125,  677,  126,  127,  126,  126,  126,  675,
+      577,  128,  673,  126,  560,  127,  538,  127,  672,  127,
+      539,  128,  129,  128,  127,  128,  579,  127,  552,  667,
+      128,  546,  129,  561,  129,  131,  129,  555,  132,  586,
+      664,  129,  548,  131,  562,  131,  557,  131,  132,  131,
+      132,  133,  132,  559,  131,  589,  132,  132,  587,  134,
+
+      578,  133,  136,  133,  593,  133,  561,  560,  577,  134,
+      133,  134,  136,  134,  136,  137,  136,  134,  134,  584,
+      136,  136,  611,  590,  579,  137,  138,  137,  589,  137,
+      520,  520,  520,  520,  137,  137,  138,  586,  138,  139,
+      138,  663,  139,  587,  562,  138,  139,  578,  596,  139,
+      597,  139,  590,  139,  141,  141,  661,  598,  139,  621,
+      660,  142,  593,  619,  595,  141,  610,  141,  611,  141,
+      584,  142,  143,  142,  141,  142,  142,  612,  144,  142,
+      142,  596,  143,  146,  143,  616,  143,  618,  144,  145,
+      144,  143,  144,  636,  144,  146,  143,  144,  663,  145,
+
+      626,  145,  653,  145,  652,  146,  147,  146,  145,  146,
+      597,  147,  148,  595,  146,  598,  147,  610,  147,  621,
+      147,  619,  148,  149,  148,  147,  148,  636,  612,  151,
+      647,  148,  646,  149,  644,  149,  151,  149,  618,  151,
+      616,  151,  149,  151,  155,  152,  152,  624,  151,  152,
+      563,  563,  563,  563,  155,  152,  155,  152,  155,  152,
+      626,  159,  155,  155,  152,  159,  159,  159,  159,  159,
+      159,  159,  159,  160,  627,  628,  635,  160,  160,  160,
+      160,  160,  160,  160,  160,  183,  183,  183,  183,  183,
+      183,  183,  183,  186,  188,  189,  641,  188,  624,  633,
+
+      629,  645,  680,  649,  188,  189,  188,  189,  188,  189,
+      190,  191,  637,  188,  189,  564,  564,  564,  564,  642,
+      190,  191,  190,  191,  190,  191,  628,  625,  623,  190,
+      191,  635,  627,  676,  648,  640,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  186,  192,  645,
+      643,  649,  680,  622,  650,  620,  194,  637,  192,  195,
+      192,  192,  192,  194,  642,  656,  194,  192,  194,  195,
+      194,  195,  196,  195,  640,  194,  655,  676,  195,  648,
+      197,  617,  196,  564,  196,  607,  196,  692,  198,  196,
+
+      197,  196,  197,  665,  197,  651,  199,  657,  198,  197,
+      198,  643,  198,  199,  198,  650,  199,  198,  199,  200,
+      199,  599,  599,  599,  599,  199,  656,  201,  601,  200,
+      202,  200,  592,  200,  670,  655,  200,  201,  200,  201,
+      202,  201,  202,  591,  202,  588,  201,  202,  202,  202,
+      203,  203,  204,  692,  665,  204,  657,  662,  203,  668,
+      651,  203,  204,  203,  204,  203,  204,  205,  585,  690,
+      203,  204,  669,  206,  580,  671,  682,  205,  685,  205,
+      205,  205,  568,  206,  207,  206,  205,  206,  556,  670,
+      208,  700,  206,  208,  207,  207,  207,  686,  207,  599,
+
+      208,  209,  208,  207,  208,  551,  662,  210,  668,  208,
+      210,  209,  547,  209,  209,  209,  690,  210,  211,  210,
+      209,  210,  515,  669,  671,  512,  210,  693,  211,  212,
+      211,  682,  211,  685,  505,  211,  500,  211,  467,  212,
+      212,  212,  215,  212,  456,  695,  686,  447,  212,  700,
+      216,  339,  215,  217,  215,  264,  215,  263,  262,  215,
+      216,  215,  216,  217,  216,  217,  217,  217,  218,  216,
+      261,  219,  217,  258,  220,  255,  693,  220,  218,  193,
+      218,  219,  218,  219,  220,  219,  220,  218,  220,  219,
+      219,  221,  187,  220,  695,  181,  222,  179,  177,  221,
+
+      175,  170,  223,  168,  163,  157,  222,  105,  222,  221,
+      222,  221,  223,  221,  223,  222,  223,  224,  221,   97,
+      226,  223,   94,  226,   92,   91,   89,  224,   87,  224,
+      226,  224,  226,   86,  226,  227,  224,   85,  227,  226,
+       82,  228,   68,   65,   62,  227,   61,  227,  228,  227,
+       58,  228,  230,  228,  227,  228,   57,   52,   31,   27,
+      228,   22,  230,  231,  230,   21,  230,   18,   17,  232,
+      230,  230,    0,  231,    0,  231,    0,  231,    0,  232,
+      233,  232,  231,  232,    0,    0,  232,    0,  232,    0,
+      233,  234,  233,    0,  233,    0,    0,  233,    0,  233,
+
+        0,  234,  236,  234,    0,  234,    0,  237,  237,    0,
+      234,  234,  236,    0,  236,    0,  236,    0,  237,  238,
+      237,  236,  237,    0,    0,  239,    0,  237,    0,  238,
+        0,  238,    0,  238,    0,  239,    0,  239,  238,  239,
+      240,  241,    0,  240,  239,    0,    0,    0,  241,    0,
+      240,  241,  240,  241,  240,  241,  242,    0,    0,  240,
+      241,    0,    0,    0,    0,    0,  242,  243,  242,    0,
+      242,    0,    0,  244,  242,  242,    0,  243,    0,  243,
+        0,  243,    0,  244,  243,  244,  243,  244,  245,    0,
+      244,  245,  244,    0,  246,    0,    0,  246,  245,    0,
+
+      245,    0,  245,    0,  246,  248,  246,  245,  246,    0,
+        0,    0,    0,  246,    0,  248,  249,  248,  248,  248,
+      248,    0,  250,    0,  248,  248,  249,    0,  249,  250,
+      249,    0,  254,    0,  249,  249,    0,    0,  254,  250,
+      270,  250,  254,  250,  254,    0,  254,    0,  250,    0,
+      270,  254,  270,  271,  270,    0,    0,    0,    0,  270,
+      271,    0,    0,  271,  272,  271,    0,  271,    0,    0,
+      273,    0,  271,    0,  272,  272,  272,    0,  272,    0,
+      273,  274,  273,  272,  273,    0,    0,  275,    0,  273,
+      275,  274,    0,  274,    0,  274,    0,  275,    0,  275,
+
+      274,  275,  276,  276,  277,  277,  275,    0,    0,    0,
+        0,    0,    0,  276,  277,  276,  277,  276,  277,  278,
+        0,    0,  276,  277,    0,  274,    0,  279,    0,  278,
+        0,  278,    0,  278,    0,  280,  278,  279,  278,  279,
+      279,  279,    0,    0,    0,  280,  279,  280,  282,  280,
+      281,  281,    0,  280,  280,    0,    0,    0,  282,  283,
+      282,  281,  282,  281,    0,  281,    0,  282,    0,  283,
+      281,  283,  284,  283,  284,  285,    0,  285,  283,    0,
+        0,    0,  284,    0,  284,  285,  284,  285,    0,  285,
+      286,  284,    0,  286,  285,    0,  287,    0,    0,    0,
+
+      286,    0,  286,    0,  286,    0,  287,  288,  287,  286,
+      287,    0,    0,  289,  288,  287,    0,  288,    0,  288,
+        0,  288,    0,  289,  290,  289,  288,  289,    0,  289,
+        0,    0,  289,    0,  290,    0,  290,    0,  290,  291,
+      290,    0,  291,  290,    0,  292,    0,    0,    0,  291,
+        0,  291,    0,  291,    0,  292,  295,  292,  291,  292,
+        0,    0,  296,    0,  292,    0,  295,    0,  295,    0,
+      295,    0,  296,    0,  296,  295,  296,  297,  298,    0,
+      296,  296,    0,    0,  297,    0,    0,  297,  298,  297,
+      298,  297,  298,  299,  298,    0,  297,  298,  300,  300,
+
+      295,    0,    0,  299,    0,  299,    0,  299,    0,  300,
+        0,  300,  299,  300,  301,  300,    0,  302,  300,  301,
+        0,    0,    0,    0,  301,    0,  301,  302,  301,    0,
+      301,    0,    0,  301,    0,  303,    0,  302,    0,  302,
+        0,  302,    0,  304,    0,  303,  302,  303,    0,  303,
+        0,    0,  303,  304,  303,  304,    0,  304,  306,  306,
+        0,  307,  304,    0,    0,    0,    0,    0,  306,    0,
+      306,  307,  306,  307,  308,  307,    0,  306,    0,  307,
+      307,  311,  310,    0,  308,  310,  308,  308,  308,    0,
+        0,    0,  310,  308,  310,    0,  310,  311,    0,    0,
+
+      312,  310,    0,  312,    0,    0,    0,  311,    0,  311,
+      312,  311,  312,    0,  312,  315,  311,  313,  313,  312,
+        0,  316,    0,    0,    0,  315,    0,  315,  313,  315,
+      313,  316,  313,  316,  315,  316,    0,  313,  317,  316,
+      316,  317,    0,    0,  318,    0,    0,    0,  317,    0,
+      317,    0,  317,    0,  318,  319,  318,  317,  318,    0,
+      320,  320,    0,  318,    0,  319,    0,  319,    0,  319,
+        0,  320,  321,  320,  319,  320,    0,    0,  322,  324,
+      320,    0,  321,    0,  321,    0,  321,    0,  322,  323,
+      322,  321,  322,    0,    0,  324,    0,  322,    0,  323,
+
+        0,  323,    0,  323,    0,  324,    0,  324,  323,  324,
+      326,  327,    0,    0,  324,    0,  321,    0,    0,    0,
+      326,  327,  326,  327,  326,  327,    0,  329,  328,  326,
+      327,  328,    0,    0,    0,    0,    0,  329,  328,  329,
+      328,  329,  328,    0,  330,  334,  329,  328,    0,    0,
+        0,    0,    0,    0,  330,  334,  330,  334,  330,  334,
+        0,  330,  329,  330,  334,  338,    0,  341,    0,  338,
+      338,  338,  338,  338,  338,  338,  338,  341,    0,  341,
+        0,  341,  342,  342,    0,  341,  341,  343,  343,    0,
+        0,    0,  342,    0,  342,    0,  342,    0,  343,  344,
+
+      343,  342,  343,    0,  346,  346,    0,  343,    0,  344,
+        0,  344,    0,  344,    0,  346,    0,  346,  344,  346,
+      347,  347,    0,  348,  346,    0,  348,    0,    0,    0,
+      347,  349,  347,  348,  347,  348,    0,  348,    0,  347,
+        0,  349,  348,  349,  350,  349,    0,    0,    0,    0,
+      349,    0,  351,    0,  350,    0,  350,    0,  350,    0,
+      352,    0,  351,  350,  351,    0,  351,  352,  351,    0,
+      352,  351,  352,  353,  352,    0,    0,    0,    0,  352,
+        0,  354,    0,  353,  354,  353,    0,  353,  354,    0,
+        0,  354,  353,  354,  355,  354,  355,    0,    0,    0,
+
+      354,    0,  356,    0,  355,  356,  355,    0,  355,  356,
+      357,    0,  356,  355,  356,    0,  356,    0,  358,    0,
+      357,  356,  357,    0,  357,    0,  357,    0,  358,  357,
+      358,    0,  358,  359,  359,    0,  358,  358,    0,  360,
+        0,    0,    0,  359,    0,  359,    0,  359,    0,  360,
+      361,  360,  359,  360,    0,    0,  362,  360,  360,    0,
+      361,    0,  361,    0,  361,    0,  362,  361,  362,  361,
+      362,  363,  367,    0,    0,  362,    0,    0,    0,  367,
+        0,  363,  367,  363,  367,  363,  367,    0,    0,  369,
+      363,  367,  368,  368,    0,  368,    0,    0,    0,  369,
+
+        0,  369,  368,  369,  368,    0,  368,  369,  369,  371,
+      370,  368,  370,    0,    0,    0,    0,    0,    0,  371,
+      370,  371,  370,  371,  370,  372,    0,    0,  371,  370,
+        0,  373,    0,    0,  373,  372,    0,  372,    0,  372,
+      375,  373,  374,  373,  372,  373,    0,  376,  375,    0,
+      373,    0,  374,    0,  374,    0,  374,    0,  375,  374,
+      375,  374,  375,  376,    0,    0,  378,  375,    0,  379,
+        0,    0,    0,  376,    0,  376,  378,  376,  378,  379,
+      378,  379,  376,  379,  378,  378,  380,  382,  379,    0,
+        0,    0,    0,    0,    0,    0,  380,  382,  380,  382,
+
+      380,  382,  384,  382,    0,  380,  382,    0,  385,    0,
+        0,    0,  384,    0,  384,    0,  384,    0,  385,    0,
+      385,  384,  385,  387,  388,    0,  385,  385,    0,    0,
+      387,    0,    0,  387,  388,  387,  388,  387,  388,  389,
+      390,    0,  387,  388,  389,    0,    0,    0,    0,  389,
+      390,  389,  390,  389,  390,  394,    0,    0,  389,  390,
+        0,  395,  390,    0,  395,  394,    0,  394,    0,  394,
+        0,  395,  396,  395,  394,  395,    0,    0,    0,    0,
+      395,    0,  396,  398,  396,    0,  396,    0,  396,  406,
+        0,  396,    0,  398,    0,  398,    0,  398,    0,  406,
+
+        0,  406,  398,  406,  407,  407,    0,    0,  406,    0,
+        0,  408,    0,    0,    0,  407,    0,  407,    0,  407,
+        0,  408,  410,  408,  407,  408,    0,  398,  411,  408,
+      408,    0,  410,    0,  410,    0,  410,    0,  411,  412,
+      411,  410,  411,    0,    0,  413,  411,  411,  413,  412,
+        0,  412,    0,  412,    0,  413,    0,  413,  412,  413,
+      414,  414,  415,    0,  413,    0,    0,    0,    0,    0,
+        0,  414,  415,  414,  415,  414,  415,  416,    0,    0,
+      414,  415,    0,    0,    0,    0,    0,  416,  417,  416,
+      417,  416,    0,    0,  418,  416,  416,    0,  417,    0,
+
+      417,    0,  417,    0,  418,    0,  418,  417,  418,    0,
+        0,  419,  418,  418,  419,    0,    0,  420,    0,  420,
+        0,  419,    0,  419,    0,  419,    0,  420,  421,  420,
+      419,  420,    0,  422,  422,    0,  420,    0,  421,    0,
+      421,    0,  421,    0,  422,  423,  422,  421,  422,    0,
+        0,  424,    0,  422,    0,  423,    0,  423,  424,  423,
+        0,  424,  425,  424,  423,  424,    0,    0,  426,    0,
+      424,    0,  425,    0,  425,  426,  425,    0,  426,  425,
+      426,  425,  426,  427,  427,  431,    0,  426,    0,  431,
+        0,    0,    0,    0,  427,  431,  427,  431,  427,  431,
+
+      432,    0,    0,  427,  431,    0,  433,  432,  433,    0,
+      432,    0,  432,    0,  432,    0,  433,  434,  433,  432,
+      433,    0,    0,  435,    0,  433,  435,  434,    0,  434,
+        0,  434,    0,  435,  434,  435,  434,  435,  436,  436,
+        0,    0,  435,    0,  437,  437,    0,    0,  436,    0,
+      436,    0,  436,    0,  437,  438,  437,  436,  437,    0,
+        0,    0,    0,  437,    0,  438,    0,  438,    0,  438,
+      439,  438,    0,  439,  438,    0,  440,    0,    0,    0,
+      439,    0,  439,    0,  439,    0,  440,  443,  440,  439,
+      440,    0,    0,  440,    0,  440,    0,  443,    0,  443,
+
+      446,  443,  444,  444,    0,    0,  443,    0,    0,    0,
+      446,  448,  446,  444,  446,  444,    0,  444,    0,  446,
+        0,  448,  444,  448,  449,  448,    0,  449,    0,  448,
+      448,    0,  451,    0,  449,    0,  449,    0,  449,    0,
+        0,    0,  451,  449,  451,    0,  451,  452,  452,    0,
+      453,  451,  451,  454,    0,    0,    0,  452,    0,  452,
+      453,  452,  453,  454,  453,  454,  452,  454,  458,  453,
+        0,  459,  454,    0,    0,    0,    0,    0,  458,    0,
+      458,  459,  458,  459,    0,  459,    0,  458,  459,  466,
+      459,  468,    0,  466,  466,  466,  466,  466,  466,  466,
+
+      466,  468,    0,  468,  469,  468,    0,  471,    0,  468,
+      468,  469,    0,    0,  469,    0,  469,  471,  469,  471,
+        0,  471,  472,  469,    0,  472,  471,    0,  473,    0,
+        0,    0,  472,    0,  472,    0,  472,    0,  473,  474,
+      473,  472,  473,    0,    0,  475,  474,  473,    0,  474,
+        0,  474,  475,  474,    0,  475,  476,  475,  474,  475,
+        0,    0,  477,    0,  475,    0,  476,    0,  476,    0,
+      476,    0,  477,  478,  477,  476,  477,    0,    0,    0,
+      478,  477,    0,  478,  479,  478,  479,  478,    0,    0,
+      480,    0,  478,    0,  479,    0,  479,    0,  479,    0,
+
+      480,  481,  480,  479,  480,    0,  481,  482,    0,  480,
+        0,  481,    0,  481,    0,  481,    0,  482,  483,  482,
+      481,  482,    0,    0,    0,  482,  482,    0,  483,  484,
+      483,    0,  483,    0,    0,  485,  483,  483,    0,  484,
+        0,  484,    0,  484,    0,  485,  486,  485,  484,  485,
+        0,    0,  490,    0,  485,    0,  486,    0,  486,  490,
+      486,    0,  490,  491,  490,  486,  490,    0,    0,    0,
+        0,  490,    0,  491,  492,  491,    0,  491,    0,    0,
+      493,  491,  491,    0,  492,    0,  492,    0,  492,    0,
+      493,  494,  493,  492,  493,    0,    0,  495,    0,  493,
+
+      495,  494,    0,  494,    0,  494,    0,  495,  494,  495,
+      494,  495,  496,  497,    0,    0,  495,    0,    0,    0,
+        0,    0,  496,  497,  496,  497,  496,  497,  498,  498,
+      496,  496,  497,    0,  499,    0,    0,    0,  498,    0,
+      498,    0,  498,    0,  499,  502,  499,  498,  499,    0,
+        0,  504,    0,  499,    0,  502,    0,  502,    0,  502,
+        0,  504,  506,  504,  502,  504,    0,    0,    0,    0,
+      504,    0,  506,  507,  506,    0,  506,    0,  499,  509,
+        0,  506,  509,  507,    0,  507,    0,  507,    0,  509,
+        0,  509,  507,  509,  510,    0,    0,  510,  509,  514,
+
+      514,    0,    0,    0,  510,    0,  510,    0,  510,    0,
+      514,  522,  514,  510,  514,    0,    0,    0,  522,  514,
+        0,  522,    0,  522,    0,  522,  523,  523,    0,    0,
+      522,    0,  525,    0,    0,    0,  523,    0,  523,    0,
+      523,    0,  525,  526,  525,  523,  525,    0,  525,    0,
+        0,  525,    0,  526,  527,  526,    0,  526,    0,    0,
+      528,  526,  526,    0,  527,    0,  527,    0,  527,    0,
+      528,  529,  528,  527,  528,    0,  531,  530,    0,  528,
+        0,  529,    0,  529,  529,  529,    0,  530,    0,  530,
+      529,  530,  531,    0,    0,  532,  530,    0,  532,    0,
+
+        0,    0,  531,  533,  531,  532,  531,  532,    0,  532,
+        0,  531,    0,  533,  532,  533,  534,  533,    0,  535,
+        0,    0,  533,  534,    0,    0,  534,    0,  534,  535,
+      534,  535,    0,  535,  540,  534,    0,  540,  535,    0,
+      541,    0,    0,    0,  540,    0,  540,    0,  540,    0,
+      541,  542,  541,  540,  541,    0,    0,  543,    0,  541,
+        0,  542,    0,  542,    0,  542,    0,  543,  544,  543,
+      542,  543,    0,    0,  545,  544,  543,    0,  544,    0,
+      544,    0,  544,    0,  545,  549,  545,  544,  545,  553,
+        0,    0,  545,  545,    0,  549,    0,  549,    0,  549,
+
+        0,    0,  554,    0,  549,  553,    0,    0,  558,    0,
+        0,    0,  554,    0,  554,  553,  554,  553,  558,  553,
+      558,  554,  558,  566,  553,    0,    0,  558,    0,  567,
+        0,    0,    0,  566,    0,  566,  566,  566,    0,  567,
+      569,  567,  566,  567,    0,    0,  570,    0,  567,    0,
+      569,    0,  569,    0,  569,    0,  570,    0,  570,  569,
+      570,  571,  572,  570,  571,  570,    0,  572,    0,    0,
+        0,  571,  572,  571,  572,  571,  572,  573,    0,    0,
+      571,  572,    0,  575,    0,  575,    0,  573,    0,  573,
+        0,  573,    0,  575,  576,  575,  573,  575,    0,    0,
+
+      581,    0,  575,    0,  576,    0,  576,    0,  576,    0,
+      581,  582,  581,  576,  581,    0,  581,    0,    0,  581,
+        0,  582,  583,  582,  582,  582,    0,    0,  594,  583,
+      582,    0,  583,    0,  583,    0,  583,    0,  594,  602,
+      594,  583,  594,    0,    0,  603,    0,  594,    0,  602,
+        0,  602,    0,  602,    0,  603,    0,  603,  602,  603,
+      604,  605,  604,    0,  603,    0,    0,    0,    0,    0,
+      604,  605,  604,  605,  604,  605,  606,  608,    0,  604,
+      605,    0,    0,    0,    0,    0,  606,  608,  606,  608,
+      606,  608,  609,  606,    0,  606,  608,    0,  613,  609,
+
+        0,    0,  609,    0,  609,    0,  609,    0,  613,  614,
+      613,  609,  613,    0,    0,    0,    0,  613,    0,  614,
+      615,  614,    0,  614,    0,    0,  630,    0,  614,    0,
+      615,    0,  615,  615,  615,    0,  630,  631,  630,  615,
+      630,    0,    0,  632,    0,  630,    0,  631,    0,  631,
+        0,  631,    0,  632,  634,  632,  631,  632,    0,    0,
+        0,    0,  632,    0,  634,  638,  634,    0,  634,    0,
+        0,  639,  634,  634,    0,  638,    0,  638,    0,  638,
+        0,  639,  638,  639,  638,  639,  654,  658,    0,    0,
+      639,    0,    0,    0,    0,    0,  654,  658,  654,  658,
+
+      654,  658,  659,  674,    0,  654,  658,    0,    0,  654,
+        0,    0,  659,  674,  659,  674,  659,  674,    0,    0,
+        0,  659,  674,  709,  709,  709,  709,  709,  709,  709,
+      709,  709,  709,  709,  709,  710,  710,  710,  710,  710,
+      710,  710,  710,  710,  710,  710,  710,  711,  711,  711,
+      711,  711,  711,  711,  711,  711,  711,  711,  711,  712,
+      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
+      712,  713,  713,  713,  713,  713,  713,  713,  713,  713,
+      713,  713,  713,  714,  714,  714,  714,  714,  714,  714,
+      714,  714,  714,  714,  714,  715,  715,  715,    0,  715,
+
+      715,  715,  715,  715,  715,  715,  715,  716,  716,    0,
+        0,  716,    0,  716,    0,  716,  717,  717,    0,  717,
+      717,  718,  718,    0,  718,  718,  718,    0,  718,  718,
+      718,  718,  718,  719,  719,  719,    0,  719,  719,  719,
+      719,  719,  719,  719,  719,  720,  720,  720,  720,  720,
+      720,  720,  720,    0,  720,  720,  721,    0,    0,  721,
+      721,  721,  721,  721,  721,  721,  721,  722,    0,    0,
+      722,  722,  722,  722,  722,  722,  722,  722,  723,    0,
+        0,  723,    0,  723,  723,  723,  723,  723,  723,  724,
+      724,    0,  724,  724,  725,  725,    0,  725,  725,  726,
+
+        0,  726,  726,  727,  727,    0,  727,  727,  728,    0,
+      728,  728,  729,    0,  729,  729,  730,    0,  730,  730,
+      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
+      731,  731,  732,  732,    0,  732,  732,  733,  733,    0,
+        0,    0,    0,  733,  734,  734,    0,    0,    0,    0,
+      734,  735,  735,    0,    0,    0,    0,  735,  736,  736,
+        0,    0,    0,    0,  736,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
+      708,  708,  708,  708,  708,  708
     } ;
 
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static yyconst short int yy_rule_linenum[130] =
+static yyconst short int yy_rule_linenum[133] =
     {   0,
-      103,  106,  108,  109,  110,  113,  115,  116,  117,  129,
-      136,  143,  149,  158,  166,  174,  175,  177,  196,  202,
-      203,  204,  205,  206,  209,  215,  222,  229,  236,  243,
-      247,  248,  256,  257,  258,  259,  260,  265,  266,  267,
-      268,  269,  270,  271,  272,  273,  274,  275,  284,  285,
-      286,  287,  288,  289,  290,  291,  292,  293,  294,  295,
-      296,  297,  298,  299,  300,  301,  302,  303,  304,  305,
-      306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
-      316,  317,  318,  319,  320,  321,  322,  323,  324,  325,
-      326,  327,  328,  329,  330,  331,  332,  333,  334,  335,
+       92,   93,   95,   98,  101,  103,  104,  105,  108,  110,
+      111,  112,  124,  131,  138,  144,  153,  161,  169,  170,
+      172,  191,  197,  198,  199,  200,  201,  204,  210,  217,
+      224,  231,  238,  242,  243,  251,  252,  253,  254,  255,
+      260,  261,  262,  263,  264,  265,  266,  267,  268,  269,
+      270,  279,  280,  281,  282,  283,  284,  285,  286,  287,
+      288,  289,  290,  291,  292,  293,  294,  295,  296,  297,
+      298,  299,  300,  301,  302,  303,  304,  305,  306,  307,
+      308,  309,  310,  311,  312,  313,  314,  315,  316,  317,
+      318,  319,  320,  321,  322,  323,  324,  325,  326,  327,
 
-      336,  337,  338,  339,  340,  341,  342,  347,  348,  353,
-      354,  355,  358,  364,  371,  380,  391,  397,  399,  400,
-      404,  410,  416,  424,  427,  452,  496,  498,  509
+      328,  329,  330,  331,  332,  333,  334,  335,  336,  337,
+      342,  343,  348,  349,  350,  353,  358,  364,  372,  382,
+      387,  389,  390,  394,  400,  406,  414,  417,  442,  486,
+      488,  499
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -1831,7 +1758,6 @@
 int asn1p_lexer_pedantic_1990 = 0;
 int asn1p_lexer_types_year = 0;
 int asn1p_lexer_constructs_year = 0;
-static int _check_dashes(char *ptr);
 static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
 
 /*
@@ -1852,17 +1778,6 @@
 	|| (lyr && lyr  > asn1p_lexer_constructs_year))
 
 /*
- * Make sure that the label is compliant with the naming rules.
- */
-#define	CHECK_DASHES	do {				\
-	if(_check_dashes(yytext)) {			\
-		fprintf(stderr,				\
-		"%s: Identifier format invalid: "	\
-		"Improper dash location\n", yytext);	\
-		return -1;				\
-	} } while(0)
-
-/*
  * Append quoted string.
  */
 #define	QAPPEND(text, tlen)	do {				\
@@ -1889,19 +1804,21 @@
 /* Controlled from within application */
 #define dash_comment 1
 
-#define cpp_comment 2
+#define idash_comment 2
 
-#define quoted 3
+#define cpp_comment 3
 
-#define opaque 4
+#define quoted 4
 
-#define encoding_control 5
+#define opaque 5
 
-#define with_syntax 6
+#define encoding_control 6
+
+#define with_syntax 7
 
 /* Newline */
 /* White-space */
-#line 1905 "asn1p_l.c"
+#line 1822 "asn1p_l.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -2052,10 +1969,10 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
 
-#line 101 "asn1p_l.l"
+#line 90 "asn1p_l.l"
 
 
-#line 2059 "asn1p_l.c"
+#line 1976 "asn1p_l.c"
 
 	if ( yy_init )
 		{
@@ -2103,14 +2020,14 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 689 )
+				if ( yy_current_state >= 709 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 4544 );
+		while ( yy_base[yy_current_state] != 4166 );
 
 yy_find_action:
 		yy_current_state = *--yy_state_ptr;
@@ -2147,13 +2064,13 @@
 			{
 			if ( yy_act == 0 )
 				fprintf( stderr, "--scanner backing up\n" );
-			else if ( yy_act < 130 )
+			else if ( yy_act < 133 )
 				fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
 				         yy_rule_linenum[yy_act], yytext );
-			else if ( yy_act == 130 )
+			else if ( yy_act == 133 )
 				fprintf( stderr, "--accepting default rule (\"%s\")\n",
 				         yytext );
-			else if ( yy_act == 131 )
+			else if ( yy_act == 134 )
 				fprintf( stderr, "--(end of buffer or a NUL)\n" );
 			else
 				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@ -2162,51 +2079,74 @@
 		switch ( yy_act )
 	{ /* beginning of action switch */
 case 1:
+*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
+yy_c_buf_p = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up yytext again */
 YY_RULE_SETUP
-#line 103 "asn1p_l.l"
+#line 92 "asn1p_l.l"
+/* Immediately terminated long comment */
+	YY_BREAK
+case 2:
+*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
+yy_c_buf_p = yy_cp -= 1;
+YY_DO_BEFORE_ACTION; /* set up yytext again */
+YY_RULE_SETUP
+#line 93 "asn1p_l.l"
+yy_push_state(idash_comment);	/* Incorrect, but acceptable */
+	YY_BREAK
+
+case 3:
+YY_RULE_SETUP
+#line 95 "asn1p_l.l"
+yy_pop_state(); /* Acceptable end of comment */
+	YY_BREAK
+
+case 4:
+YY_RULE_SETUP
+#line 98 "asn1p_l.l"
 yy_push_state(dash_comment);
 	YY_BREAK
 
-case 2:
+case 5:
 YY_RULE_SETUP
-#line 106 "asn1p_l.l"
+#line 101 "asn1p_l.l"
 yy_pop_state();
 	YY_BREAK
-case 3:
+case 6:
 YY_RULE_SETUP
-#line 108 "asn1p_l.l"
+#line 103 "asn1p_l.l"
 yy_pop_state();	/* End of comment */
 	YY_BREAK
-case 4:
+case 7:
 YY_RULE_SETUP
-#line 109 "asn1p_l.l"
+#line 104 "asn1p_l.l"
 /* Eat single dash */
 	YY_BREAK
-case 5:
+case 8:
+YY_RULE_SETUP
+#line 105 "asn1p_l.l"
+/* Eat */
+	YY_BREAK
+
+case 9:
+YY_RULE_SETUP
+#line 108 "asn1p_l.l"
+yy_push_state(cpp_comment);
+	YY_BREAK
+
+case 10:
 YY_RULE_SETUP
 #line 110 "asn1p_l.l"
 /* Eat */
 	YY_BREAK
-
-case 6:
+case 11:
 YY_RULE_SETUP
-#line 113 "asn1p_l.l"
-yy_push_state(cpp_comment);
-	YY_BREAK
-
-case 7:
-YY_RULE_SETUP
-#line 115 "asn1p_l.l"
-/* Eat */
-	YY_BREAK
-case 8:
-YY_RULE_SETUP
-#line 116 "asn1p_l.l"
+#line 111 "asn1p_l.l"
 yy_pop_state();
 	YY_BREAK
-case 9:
+case 12:
 YY_RULE_SETUP
-#line 117 "asn1p_l.l"
+#line 112 "asn1p_l.l"
 /* Eat */
 	YY_BREAK
 
@@ -2217,9 +2157,9 @@
 	 * everything for later processing.
 	 */
 
-case 10:
+case 13:
 YY_RULE_SETUP
-#line 129 "asn1p_l.l"
+#line 124 "asn1p_l.l"
 {
 			yy_push_state(opaque);
 			asn1p_lval.tv_opaque.buf = strdup(yytext);
@@ -2227,9 +2167,9 @@
 			return TOK_opaque;
 		}
 	YY_BREAK
-case 11:
+case 14:
 YY_RULE_SETUP
-#line 136 "asn1p_l.l"
+#line 131 "asn1p_l.l"
 {
 			yy_pop_state();
 			asn1p_lval.tv_opaque.buf = strdup(yytext);
@@ -2237,18 +2177,18 @@
 			return TOK_opaque;
 		}
 	YY_BREAK
-case 12:
+case 15:
 YY_RULE_SETUP
-#line 143 "asn1p_l.l"
+#line 138 "asn1p_l.l"
 {
 			asn1p_lval.tv_opaque.buf = strdup(yytext);
 			asn1p_lval.tv_opaque.len = yyleng;
 			return TOK_opaque;
 		}
 	YY_BREAK
-case 13:
+case 16:
 YY_RULE_SETUP
-#line 149 "asn1p_l.l"
+#line 144 "asn1p_l.l"
 {
 			fprintf(stderr,
 				"ASN.1 Parser syncronization failure: "
@@ -2258,9 +2198,9 @@
 			return -1;
 		}
 	YY_BREAK
-case 14:
+case 17:
 YY_RULE_SETUP
-#line 158 "asn1p_l.l"
+#line 153 "asn1p_l.l"
 {
 			asn1p_lval.tv_opaque.buf = strdup(yytext);
 			asn1p_lval.tv_opaque.len = yyleng;
@@ -2268,9 +2208,9 @@
 		}
 	YY_BREAK
 
-case 15:
+case 18:
 YY_RULE_SETUP
-#line 166 "asn1p_l.l"
+#line 161 "asn1p_l.l"
 {
 			asn1p_lval.tv_opaque.buf = 0;
 			asn1p_lval.tv_opaque.len = 0;
@@ -2279,19 +2219,19 @@
 		}
 	YY_BREAK
 
-case 16:
+case 19:
 YY_RULE_SETUP
-#line 174 "asn1p_l.l"
+#line 169 "asn1p_l.l"
 { QAPPEND(yytext, yyleng-1); }	/* Add a single quote */
 	YY_BREAK
-case 17:
+case 20:
 YY_RULE_SETUP
-#line 175 "asn1p_l.l"
+#line 170 "asn1p_l.l"
 { QAPPEND(yytext, yyleng); }
 	YY_BREAK
-case 18:
+case 21:
 YY_RULE_SETUP
-#line 177 "asn1p_l.l"
+#line 172 "asn1p_l.l"
 {
 			yy_pop_state();
 			/* Do not append last quote:
@@ -2310,9 +2250,9 @@
 	YY_BREAK
 
 
-case 19:
+case 22:
 YY_RULE_SETUP
-#line 196 "asn1p_l.l"
+#line 191 "asn1p_l.l"
 {
 			const char *s = "ENCODING-CONTROL";
 			const char *p = s + sizeof("ENCODING-CONTROL") - 2;
@@ -2320,53 +2260,53 @@
 			yy_pop_state();
 		}
 	YY_BREAK
-case 20:
-YY_RULE_SETUP
-#line 202 "asn1p_l.l"
-unput('D'); unput('N'); unput('E'); yy_pop_state();
-	YY_BREAK
-case 21:
-YY_RULE_SETUP
-#line 203 "asn1p_l.l"
-
-	YY_BREAK
-case 22:
-YY_RULE_SETUP
-#line 204 "asn1p_l.l"
-
-	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 205 "asn1p_l.l"
-/* Eat everything else */
+#line 197 "asn1p_l.l"
+unput('D'); unput('N'); unput('E'); yy_pop_state();
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 206 "asn1p_l.l"
+#line 198 "asn1p_l.l"
+
+	YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 199 "asn1p_l.l"
+
+	YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 200 "asn1p_l.l"
+/* Eat everything else */
+	YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 201 "asn1p_l.l"
 
 	YY_BREAK
 
-case 25:
+case 28:
 YY_RULE_SETUP
-#line 209 "asn1p_l.l"
+#line 204 "asn1p_l.l"
 {
 		/* " \t\r\n" weren't allowed in ASN.1:1990. */
 		asn1p_lval.tv_str = yytext;
 		return TOK_hstring;
 	}
 	YY_BREAK
-case 26:
+case 29:
 YY_RULE_SETUP
-#line 215 "asn1p_l.l"
+#line 210 "asn1p_l.l"
 {
 		/* " \t\r\n" weren't allowed in ASN.1:1990. */
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_bstring;
 	}
 	YY_BREAK
-case 27:
+case 30:
 YY_RULE_SETUP
-#line 222 "asn1p_l.l"
+#line 217 "asn1p_l.l"
 {
 		asn1p_lval.a_int = asn1p_atoi(yytext);
 		if(errno == ERANGE)
@@ -2374,9 +2314,9 @@
 		return TOK_number_negative;
 	}
 	YY_BREAK
-case 28:
+case 31:
 YY_RULE_SETUP
-#line 229 "asn1p_l.l"
+#line 224 "asn1p_l.l"
 {
 		asn1p_lval.a_int = asn1p_atoi(yytext);
 		if(errno == ERANGE)
@@ -2384,9 +2324,9 @@
 		return TOK_number;
 	}
 	YY_BREAK
-case 29:
+case 32:
 YY_RULE_SETUP
-#line 236 "asn1p_l.l"
+#line 231 "asn1p_l.l"
 {
 		asn1p_lval.a_int = asn1p_atoi(yytext);
 		if(errno == ERANGE)
@@ -2394,22 +2334,22 @@
 		return TOK_number;
 	}
 	YY_BREAK
-case 30:
+case 33:
 YY_RULE_SETUP
-#line 243 "asn1p_l.l"
+#line 238 "asn1p_l.l"
 return TOK_ABSENT;
 	YY_BREAK
 /*
 ABSTRACT-SYNTAX		return TOK_ABSTRACT_SYNTAX;
 	*/
-case 31:
+case 34:
 YY_RULE_SETUP
-#line 247 "asn1p_l.l"
+#line 242 "asn1p_l.l"
 return TOK_ALL;
 	YY_BREAK
-case 32:
+case 35:
 YY_RULE_SETUP
-#line 248 "asn1p_l.l"
+#line 243 "asn1p_l.l"
 {
 				/* Appeared in 1990, removed in 1997 */
 				if(TYPE_LIFETIME(1990, 1997))
@@ -2419,88 +2359,88 @@
 				REJECT;
 			}
 	YY_BREAK
-case 33:
-YY_RULE_SETUP
-#line 256 "asn1p_l.l"
-return TOK_APPLICATION;
-	YY_BREAK
-case 34:
-YY_RULE_SETUP
-#line 257 "asn1p_l.l"
-return TOK_AUTOMATIC;
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 258 "asn1p_l.l"
-return TOK_BEGIN;
-	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 259 "asn1p_l.l"
-return TOK_BIT;
+#line 251 "asn1p_l.l"
+return TOK_APPLICATION;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 260 "asn1p_l.l"
+#line 252 "asn1p_l.l"
+return TOK_AUTOMATIC;
+	YY_BREAK
+case 38:
+YY_RULE_SETUP
+#line 253 "asn1p_l.l"
+return TOK_BEGIN;
+	YY_BREAK
+case 39:
+YY_RULE_SETUP
+#line 254 "asn1p_l.l"
+return TOK_BIT;
+	YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 255 "asn1p_l.l"
 {
 				if(TYPE_LIFETIME(1994, 0))
 					return TOK_BMPString;
 				REJECT;
 			}
 	YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 265 "asn1p_l.l"
-return TOK_BOOLEAN;
-	YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 266 "asn1p_l.l"
-return TOK_BY;
-	YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 267 "asn1p_l.l"
-return TOK_CHARACTER;
-	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 268 "asn1p_l.l"
-return TOK_CHOICE;
+#line 260 "asn1p_l.l"
+return TOK_BOOLEAN;
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 269 "asn1p_l.l"
-return TOK_CLASS;
+#line 261 "asn1p_l.l"
+return TOK_BY;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 270 "asn1p_l.l"
-return TOK_COMPONENT;
+#line 262 "asn1p_l.l"
+return TOK_CHARACTER;
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 271 "asn1p_l.l"
-return TOK_COMPONENTS;
+#line 263 "asn1p_l.l"
+return TOK_CHOICE;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 272 "asn1p_l.l"
-return TOK_CONSTRAINED;
+#line 264 "asn1p_l.l"
+return TOK_CLASS;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 273 "asn1p_l.l"
-return TOK_CONTAINING;
+#line 265 "asn1p_l.l"
+return TOK_COMPONENT;
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 274 "asn1p_l.l"
-return TOK_DEFAULT;
+#line 266 "asn1p_l.l"
+return TOK_COMPONENTS;
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 275 "asn1p_l.l"
+#line 267 "asn1p_l.l"
+return TOK_CONSTRAINED;
+	YY_BREAK
+case 49:
+YY_RULE_SETUP
+#line 268 "asn1p_l.l"
+return TOK_CONTAINING;
+	YY_BREAK
+case 50:
+YY_RULE_SETUP
+#line 269 "asn1p_l.l"
+return TOK_DEFAULT;
+	YY_BREAK
+case 51:
+YY_RULE_SETUP
+#line 270 "asn1p_l.l"
 {
 				/* Appeared in 1990, removed in 1997 */
 				if(TYPE_LIFETIME(1990, 1997))
@@ -2511,357 +2451,354 @@
 				REJECT;
 			}
 	YY_BREAK
-case 49:
-YY_RULE_SETUP
-#line 284 "asn1p_l.l"
-return TOK_DEFINITIONS;
-	YY_BREAK
-case 50:
-YY_RULE_SETUP
-#line 285 "asn1p_l.l"
-return TOK_EMBEDDED;
-	YY_BREAK
-case 51:
-YY_RULE_SETUP
-#line 286 "asn1p_l.l"
-return TOK_ENCODED;
-	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 287 "asn1p_l.l"
-return TOK_ENCODING_CONTROL;
+#line 279 "asn1p_l.l"
+return TOK_DEFINITIONS;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 288 "asn1p_l.l"
-return TOK_END;
+#line 280 "asn1p_l.l"
+return TOK_EMBEDDED;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 289 "asn1p_l.l"
-return TOK_ENUMERATED;
+#line 281 "asn1p_l.l"
+return TOK_ENCODED;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 290 "asn1p_l.l"
-return TOK_EXCEPT;
+#line 282 "asn1p_l.l"
+return TOK_ENCODING_CONTROL;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 291 "asn1p_l.l"
-return TOK_EXPLICIT;
+#line 283 "asn1p_l.l"
+return TOK_END;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 292 "asn1p_l.l"
-return TOK_EXPORTS;
+#line 284 "asn1p_l.l"
+return TOK_ENUMERATED;
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 293 "asn1p_l.l"
-return TOK_EXTENSIBILITY;
+#line 285 "asn1p_l.l"
+return TOK_EXCEPT;
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 294 "asn1p_l.l"
-return TOK_EXTERNAL;
+#line 286 "asn1p_l.l"
+return TOK_EXPLICIT;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 295 "asn1p_l.l"
-return TOK_FALSE;
+#line 287 "asn1p_l.l"
+return TOK_EXPORTS;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 296 "asn1p_l.l"
-return TOK_FROM;
+#line 288 "asn1p_l.l"
+return TOK_EXTENSIBILITY;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 297 "asn1p_l.l"
-return TOK_GeneralizedTime;
+#line 289 "asn1p_l.l"
+return TOK_EXTERNAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 298 "asn1p_l.l"
-return TOK_GeneralString;
+#line 290 "asn1p_l.l"
+return TOK_FALSE;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 299 "asn1p_l.l"
-return TOK_GraphicString;
+#line 291 "asn1p_l.l"
+return TOK_FROM;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 300 "asn1p_l.l"
-return TOK_IA5String;
+#line 292 "asn1p_l.l"
+return TOK_GeneralizedTime;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 301 "asn1p_l.l"
-return TOK_IDENTIFIER;
+#line 293 "asn1p_l.l"
+return TOK_GeneralString;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 302 "asn1p_l.l"
-return TOK_IMPLICIT;
+#line 294 "asn1p_l.l"
+return TOK_GraphicString;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 303 "asn1p_l.l"
-return TOK_IMPLIED;
+#line 295 "asn1p_l.l"
+return TOK_IA5String;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 304 "asn1p_l.l"
-return TOK_IMPORTS;
+#line 296 "asn1p_l.l"
+return TOK_IDENTIFIER;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 305 "asn1p_l.l"
-return TOK_INCLUDES;
+#line 297 "asn1p_l.l"
+return TOK_IMPLICIT;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 306 "asn1p_l.l"
-return TOK_INSTANCE;
+#line 298 "asn1p_l.l"
+return TOK_IMPLIED;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 307 "asn1p_l.l"
-return TOK_INSTRUCTIONS;
+#line 299 "asn1p_l.l"
+return TOK_IMPORTS;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 308 "asn1p_l.l"
-return TOK_INTEGER;
+#line 300 "asn1p_l.l"
+return TOK_INCLUDES;
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 309 "asn1p_l.l"
-return TOK_INTERSECTION;
+#line 301 "asn1p_l.l"
+return TOK_INSTANCE;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 310 "asn1p_l.l"
-return TOK_ISO646String;
+#line 302 "asn1p_l.l"
+return TOK_INSTRUCTIONS;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 311 "asn1p_l.l"
-return TOK_MAX;
+#line 303 "asn1p_l.l"
+return TOK_INTEGER;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 312 "asn1p_l.l"
-return TOK_MIN;
+#line 304 "asn1p_l.l"
+return TOK_INTERSECTION;
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 313 "asn1p_l.l"
-return TOK_MINUS_INFINITY;
+#line 305 "asn1p_l.l"
+return TOK_ISO646String;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 314 "asn1p_l.l"
-return TOK_NULL;
+#line 306 "asn1p_l.l"
+return TOK_MAX;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 315 "asn1p_l.l"
-return TOK_NumericString;
+#line 307 "asn1p_l.l"
+return TOK_MIN;
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 316 "asn1p_l.l"
-return TOK_OBJECT;
+#line 308 "asn1p_l.l"
+return TOK_MINUS_INFINITY;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 317 "asn1p_l.l"
-return TOK_ObjectDescriptor;
+#line 309 "asn1p_l.l"
+return TOK_NULL;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 318 "asn1p_l.l"
-return TOK_OCTET;
+#line 310 "asn1p_l.l"
+return TOK_NumericString;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 319 "asn1p_l.l"
-return TOK_OF;
+#line 311 "asn1p_l.l"
+return TOK_OBJECT;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 320 "asn1p_l.l"
-return TOK_OPTIONAL;
+#line 312 "asn1p_l.l"
+return TOK_ObjectDescriptor;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 321 "asn1p_l.l"
-return TOK_PATTERN;
+#line 313 "asn1p_l.l"
+return TOK_OCTET;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 322 "asn1p_l.l"
-return TOK_PDV;
+#line 314 "asn1p_l.l"
+return TOK_OF;
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 323 "asn1p_l.l"
-return TOK_PLUS_INFINITY;
+#line 315 "asn1p_l.l"
+return TOK_OPTIONAL;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 324 "asn1p_l.l"
-return TOK_PRESENT;
+#line 316 "asn1p_l.l"
+return TOK_PATTERN;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 325 "asn1p_l.l"
-return TOK_PrintableString;
+#line 317 "asn1p_l.l"
+return TOK_PDV;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 326 "asn1p_l.l"
-return TOK_PRIVATE;
+#line 318 "asn1p_l.l"
+return TOK_PLUS_INFINITY;
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 327 "asn1p_l.l"
-return TOK_REAL;
+#line 319 "asn1p_l.l"
+return TOK_PRESENT;
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 328 "asn1p_l.l"
-return TOK_RELATIVE_OID;
+#line 320 "asn1p_l.l"
+return TOK_PrintableString;
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 329 "asn1p_l.l"
-return TOK_SEQUENCE;
+#line 321 "asn1p_l.l"
+return TOK_PRIVATE;
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 330 "asn1p_l.l"
-return TOK_SET;
+#line 322 "asn1p_l.l"
+return TOK_REAL;
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 331 "asn1p_l.l"
-return TOK_SIZE;
+#line 323 "asn1p_l.l"
+return TOK_RELATIVE_OID;
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 332 "asn1p_l.l"
-return TOK_STRING;
+#line 324 "asn1p_l.l"
+return TOK_SEQUENCE;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 333 "asn1p_l.l"
-return TOK_SYNTAX;
+#line 325 "asn1p_l.l"
+return TOK_SET;
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 334 "asn1p_l.l"
-return TOK_T61String;
+#line 326 "asn1p_l.l"
+return TOK_SIZE;
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 335 "asn1p_l.l"
-return TOK_TAGS;
+#line 327 "asn1p_l.l"
+return TOK_STRING;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 336 "asn1p_l.l"
-return TOK_TeletexString;
+#line 328 "asn1p_l.l"
+return TOK_SYNTAX;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 337 "asn1p_l.l"
-return TOK_TRUE;
+#line 329 "asn1p_l.l"
+return TOK_T61String;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 338 "asn1p_l.l"
-return TOK_TYPE_IDENTIFIER;
+#line 330 "asn1p_l.l"
+return TOK_TAGS;
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 339 "asn1p_l.l"
-return TOK_UNION;
+#line 331 "asn1p_l.l"
+return TOK_TeletexString;
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 340 "asn1p_l.l"
-return TOK_UNIQUE;
+#line 332 "asn1p_l.l"
+return TOK_TRUE;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 341 "asn1p_l.l"
-return TOK_UNIVERSAL;
+#line 333 "asn1p_l.l"
+return TOK_TYPE_IDENTIFIER;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 342 "asn1p_l.l"
+#line 334 "asn1p_l.l"
+return TOK_UNION;
+	YY_BREAK
+case 108:
+YY_RULE_SETUP
+#line 335 "asn1p_l.l"
+return TOK_UNIQUE;
+	YY_BREAK
+case 109:
+YY_RULE_SETUP
+#line 336 "asn1p_l.l"
+return TOK_UNIVERSAL;
+	YY_BREAK
+case 110:
+YY_RULE_SETUP
+#line 337 "asn1p_l.l"
 {
 				if(TYPE_LIFETIME(1994, 0))
 					return TOK_UniversalString;
 				REJECT;
 			}
 	YY_BREAK
-case 108:
+case 111:
 YY_RULE_SETUP
-#line 347 "asn1p_l.l"
+#line 342 "asn1p_l.l"
 return TOK_UTCTime;
 	YY_BREAK
-case 109:
+case 112:
 YY_RULE_SETUP
-#line 348 "asn1p_l.l"
+#line 343 "asn1p_l.l"
 {
 				if(TYPE_LIFETIME(1994, 0))
 					return TOK_UTF8String;
 				REJECT;
 			}
 	YY_BREAK
-case 110:
-YY_RULE_SETUP
-#line 353 "asn1p_l.l"
-return TOK_VideotexString;
-	YY_BREAK
-case 111:
-YY_RULE_SETUP
-#line 354 "asn1p_l.l"
-return TOK_VisibleString;
-	YY_BREAK
-case 112:
-YY_RULE_SETUP
-#line 355 "asn1p_l.l"
-return TOK_WITH;
-	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 358 "asn1p_l.l"
+#line 348 "asn1p_l.l"
+return TOK_VideotexString;
+	YY_BREAK
+case 114:
+YY_RULE_SETUP
+#line 349 "asn1p_l.l"
+return TOK_VisibleString;
+	YY_BREAK
+case 115:
+YY_RULE_SETUP
+#line 350 "asn1p_l.l"
+return TOK_WITH;
+	YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 353 "asn1p_l.l"
 {
-		CHECK_DASHES;
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_typefieldreference;
 	}
 	YY_BREAK
-case 114:
+case 117:
 YY_RULE_SETUP
-#line 364 "asn1p_l.l"
+#line 358 "asn1p_l.l"
 {
-		CHECK_DASHES;
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_valuefieldreference;
 	}
 	YY_BREAK
-case 115:
+case 118:
 YY_RULE_SETUP
-#line 371 "asn1p_l.l"
+#line 364 "asn1p_l.l"
 {
-		CHECK_DASHES;
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_identifier;
 	}
@@ -2869,11 +2806,10 @@
 /*
 	 * objectclassreference
 	 */
-case 116:
+case 119:
 YY_RULE_SETUP
-#line 380 "asn1p_l.l"
+#line 372 "asn1p_l.l"
 {
-		CHECK_DASHES;
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_capitalreference;
 	}
@@ -2883,66 +2819,65 @@
 	 * NOTE: TOK_objectclassreference must be combined
 	 * with this token to produce true typereference.
 	 */
-case 117:
+case 120:
 YY_RULE_SETUP
-#line 391 "asn1p_l.l"
+#line 382 "asn1p_l.l"
 {
-		CHECK_DASHES;
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_typereference;
 	}
 	YY_BREAK
-case 118:
-YY_RULE_SETUP
-#line 397 "asn1p_l.l"
-return TOK_PPEQ;
-	YY_BREAK
-case 119:
-YY_RULE_SETUP
-#line 399 "asn1p_l.l"
-return TOK_ThreeDots;
-	YY_BREAK
-case 120:
-YY_RULE_SETUP
-#line 400 "asn1p_l.l"
-return TOK_TwoDots;
-	YY_BREAK
-
 case 121:
 YY_RULE_SETUP
-#line 404 "asn1p_l.l"
-{
-			asn1p_lval.tv_opaque.buf = strdup(yytext);
-			asn1p_lval.tv_opaque.len = yyleng;
-			return TOK_opaque;
-			}
+#line 387 "asn1p_l.l"
+return TOK_PPEQ;
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 410 "asn1p_l.l"
+#line 389 "asn1p_l.l"
+return TOK_ThreeDots;
+	YY_BREAK
+case 123:
+YY_RULE_SETUP
+#line 390 "asn1p_l.l"
+return TOK_TwoDots;
+	YY_BREAK
+
+case 124:
+YY_RULE_SETUP
+#line 394 "asn1p_l.l"
 {
 			asn1p_lval.tv_opaque.buf = strdup(yytext);
 			asn1p_lval.tv_opaque.len = yyleng;
 			return TOK_opaque;
 			}
 	YY_BREAK
-case 123:
+case 125:
 YY_RULE_SETUP
-#line 416 "asn1p_l.l"
+#line 400 "asn1p_l.l"
+{
+			asn1p_lval.tv_opaque.buf = strdup(yytext);
+			asn1p_lval.tv_opaque.len = yyleng;
+			return TOK_opaque;
+			}
+	YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 406 "asn1p_l.l"
 {
 				yy_pop_state();
 				return '}';
 			}
 	YY_BREAK
 
-case 124:
+case 127:
 YY_RULE_SETUP
-#line 424 "asn1p_l.l"
+#line 414 "asn1p_l.l"
 /* Ignore whitespace */
 	YY_BREAK
-case 125:
+case 128:
 YY_RULE_SETUP
-#line 427 "asn1p_l.l"
+#line 417 "asn1p_l.l"
 {
 		asn1c_integer_t v1 = -1, v2 = -1;
 		char *p;
@@ -2968,9 +2903,9 @@
 		return TOK_tuple;
 	}
 	YY_BREAK
-case 126:
+case 129:
 YY_RULE_SETUP
-#line 452 "asn1p_l.l"
+#line 442 "asn1p_l.l"
 {
 		asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
 		char *p;
@@ -3014,14 +2949,14 @@
 		return TOK_quadruple;
 	}
 	YY_BREAK
-case 127:
+case 130:
 YY_RULE_SETUP
-#line 496 "asn1p_l.l"
+#line 486 "asn1p_l.l"
 return yytext[0];
 	YY_BREAK
-case 128:
+case 131:
 YY_RULE_SETUP
-#line 498 "asn1p_l.l"
+#line 488 "asn1p_l.l"
 {
 		if(TYPE_LIFETIME(1994, 0))
 			fprintf(stderr, "ERROR: ");
@@ -3033,9 +2968,9 @@
 			return -1;
 	}
 	YY_BREAK
-case 129:
+case 132:
 YY_RULE_SETUP
-#line 509 "asn1p_l.l"
+#line 499 "asn1p_l.l"
 {
 		fprintf(stderr,
 			"Unexpected token at line %d: \"%s\"\n",
@@ -3051,24 +2986,25 @@
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(dash_comment):
+case YY_STATE_EOF(idash_comment):
 case YY_STATE_EOF(cpp_comment):
 case YY_STATE_EOF(quoted):
 case YY_STATE_EOF(opaque):
 case YY_STATE_EOF(encoding_control):
 case YY_STATE_EOF(with_syntax):
-#line 522 "asn1p_l.l"
+#line 512 "asn1p_l.l"
 {
 		while(YYSTATE != INITIAL)
 			yy_pop_state();
 		yyterminate();
 	}
 	YY_BREAK
-case 130:
+case 133:
 YY_RULE_SETUP
-#line 529 "asn1p_l.l"
+#line 519 "asn1p_l.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 3072 "asn1p_l.c"
+#line 3008 "asn1p_l.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -3355,7 +3291,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 689 )
+			if ( yy_current_state >= 709 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3385,11 +3321,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 689 )
+		if ( yy_current_state >= 709 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 688);
+	yy_is_jam = (yy_current_state == 708);
 	if ( ! yy_is_jam )
 		*yy_state_ptr++ = yy_current_state;
 
@@ -3950,7 +3886,7 @@
 	return 0;
 	}
 #endif
-#line 529 "asn1p_l.l"
+#line 519 "asn1p_l.l"
 
 
 /*
@@ -3968,38 +3904,6 @@
 	yy_push_state(encoding_control);
 }
 
-/*
- * Check that a token does not end with dash and does not contain
- * several dashes in succession.
- * "Name", "Type-Id", "T-y-p-e-i-d" are OK
- * "end-", "vustom--value" are INVALID
- */
-static int
-_check_dashes(char *ptr) {
-	int prev_dash = 0;
-
-	assert(*ptr != '-');
-
-	for(;; ptr++) {
-		switch(*ptr) {
-		case '-':
-			if(prev_dash++)	/* No double dashes */
-				return -1;
-			continue;
-		case '\0':
-			if(prev_dash)	/* No dashes at the end */
-				return -1;
-			break;
-		default:
-			prev_dash = 0;
-			continue;
-		}
-		break;
-	}
-
-	return 0;
-}
-
 static asn1c_integer_t
 asn1p_atoi(char *ptr) {
 	asn1c_integer_t value;
diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l
index b370104..04a5504 100644
--- a/libasn1parser/asn1p_l.l
+++ b/libasn1parser/asn1p_l.l
@@ -23,7 +23,6 @@
 int asn1p_lexer_pedantic_1990 = 0;
 int asn1p_lexer_types_year = 0;
 int asn1p_lexer_constructs_year = 0;
-static int _check_dashes(char *ptr);
 static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
 
 /*
@@ -44,17 +43,6 @@
 	|| (lyr && lyr  > asn1p_lexer_constructs_year))
 
 /*
- * Make sure that the label is compliant with the naming rules.
- */
-#define	CHECK_DASHES	do {				\
-	if(_check_dashes(yytext)) {			\
-		fprintf(stderr,				\
-		"%s: Identifier format invalid: "	\
-		"Improper dash location\n", yytext);	\
-		return -1;				\
-	} } while(0)
-
-/*
  * Append quoted string.
  */
 #define	QAPPEND(text, tlen)	do {				\
@@ -87,6 +75,7 @@
 %pointer
 
 %x dash_comment
+%x idash_comment
 %x cpp_comment
 %x quoted
 %x opaque
@@ -100,16 +89,22 @@
 
 %%
 
-"--"		yy_push_state(dash_comment);
-<dash_comment>{
+-{3,}/[\r\n]	/* Immediately terminated long comment */
+-{3,}/[^-\r\n]	yy_push_state(idash_comment);	/* Incorrect, but acceptable */
+<idash_comment>{
+	-{3,}	yy_pop_state(); /* Acceptable end of comment */
+}
+
+--		yy_push_state(dash_comment);
+<dash_comment,idash_comment>{
 
 	{NL}	yy_pop_state();
 
 	--	yy_pop_state();	/* End of comment */
 	-	/* Eat single dash */
 	[^\r\v\f\n-]+	/* Eat */
-
 }
+
 <INITIAL,cpp_comment>"/*"		yy_push_state(cpp_comment);
 <cpp_comment>{
 	[^*/]	/* Eat */
@@ -355,21 +350,18 @@
 WITH			return TOK_WITH;
 
 
-<INITIAL,with_syntax>&[A-Z][A-Za-z0-9-]*	{
-		CHECK_DASHES;
+<INITIAL,with_syntax>&[A-Z][A-Za-z0-9]*([-][A-Za-z0-9]+)*	{
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_typefieldreference;
 	}
 
-<INITIAL,with_syntax>&[a-z][a-zA-Z0-9-]*	{
-		CHECK_DASHES;
+<INITIAL,with_syntax>&[a-z][a-zA-Z0-9]*([-][a-zA-Z0-9]+)*	{
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_valuefieldreference;
 	}
 
 
-[a-z][a-zA-Z0-9-]*	{
-		CHECK_DASHES;
+[a-z][a-zA-Z0-9]*([-][a-zA-Z0-9]+)*	{
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_identifier;
 	}
@@ -377,8 +369,7 @@
 	/*
 	 * objectclassreference
 	 */
-[A-Z][A-Z0-9-]*	{
-		CHECK_DASHES;
+[A-Z][A-Z0-9]*([-][A-Z0-9]+)*	{
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_capitalreference;
 	}
@@ -388,8 +379,7 @@
 	 * NOTE: TOK_objectclassreference must be combined
 	 * with this token to produce true typereference.
 	 */
-[A-Z][A-Za-z0-9-]*	{
-		CHECK_DASHES;
+[A-Z][A-Za-z0-9]*([-][A-Za-z0-9]+)*	{
 		asn1p_lval.tv_str = strdup(yytext);
 		return TOK_typereference;
 	}
@@ -543,38 +533,6 @@
 	yy_push_state(encoding_control);
 }
 
-/*
- * Check that a token does not end with dash and does not contain
- * several dashes in succession.
- * "Name", "Type-Id", "T-y-p-e-i-d" are OK
- * "end-", "vustom--value" are INVALID
- */
-static int
-_check_dashes(char *ptr) {
-	int prev_dash = 0;
-
-	assert(*ptr != '-');
-
-	for(;; ptr++) {
-		switch(*ptr) {
-		case '-':
-			if(prev_dash++)	/* No double dashes */
-				return -1;
-			continue;
-		case '\0':
-			if(prev_dash)	/* No dashes at the end */
-				return -1;
-			break;
-		default:
-			prev_dash = 0;
-			continue;
-		}
-		break;
-	}
-
-	return 0;
-}
-
 static asn1c_integer_t
 asn1p_atoi(char *ptr) {
 	asn1c_integer_t value;