diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index fc4e5ff9997b5389aeacf411d5e1320fc6255822..b9421f588776146082cff39235d97364fbd01d8b 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -161,7 +161,7 @@
 #define	tMINUSMINUS	411
 
 #line 1 "Gmsh.y"
- /* $Id: Gmsh.tab.cpp,v 1.19 2000-12-06 22:36:44 geuzaine Exp $ */
+ /* $Id: Gmsh.tab.cpp,v 1.20 2000-12-06 23:01:55 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -197,7 +197,7 @@ static fpos_t         yyposImbricatedLoopsTab[MAX_OPEN_FILES];
 static int            LoopControlVariablesTab[MAX_OPEN_FILES][3];
 static char           yynameTab[MAX_OPEN_FILES][NAME_STR_L];
 static char           tmpstring[NAME_STR_L];
-static Symbol         TheSymbol;
+static Symbol         TheSymbol, *pSymbol;
 static Surface       *STL_Surf;
 static Shape          TheShape;
 static int            i,j,k,flag,RecursionLevel=0,ImbricatedLoop = 0;
@@ -238,7 +238,7 @@ typedef union {
 
 
 
-#define	YYFINAL		1412
+#define	YYFINAL		1437
 #define	YYFLAG		-32768
 #define	YYNTBASE	174
 
@@ -304,23 +304,24 @@ static const short yyprhs[] = {     0,
    686,   688,   692,   693,   713,   715,   719,   720,   740,   742,
    746,   747,   773,   775,   779,   780,   806,   808,   812,   813,
    839,   841,   845,   846,   878,   880,   884,   885,   917,   919,
-   923,   924,   956,   961,   969,   978,   991,   998,  1004,  1012,
-  1020,  1033,  1041,  1051,  1069,  1077,  1086,  1095,  1103,  1115,
-  1121,  1130,  1140,  1149,  1172,  1193,  1202,  1211,  1217,  1226,
-  1234,  1243,  1249,  1261,  1267,  1277,  1279,  1281,  1283,  1284,
-  1287,  1292,  1297,  1301,  1305,  1308,  1312,  1319,  1328,  1330,
-  1339,  1352,  1361,  1374,  1383,  1396,  1408,  1424,  1426,  1429,
-  1439,  1442,  1449,  1459,  1469,  1478,  1487,  1496,  1503,  1508,
-  1511,  1512,  1515,  1517,  1524,  1531,  1538,  1545,  1552,  1559,
-  1565,  1571,  1578,  1587,  1588,  1591,  1593,  1595,  1597,  1599,
-  1601,  1603,  1605,  1609,  1612,  1615,  1618,  1622,  1626,  1630,
-  1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1666,  1670,
-  1674,  1680,  1685,  1690,  1695,  1700,  1705,  1710,  1715,  1720,
-  1725,  1730,  1737,  1742,  1747,  1752,  1757,  1762,  1767,  1774,
-  1781,  1788,  1790,  1792,  1794,  1798,  1803,  1808,  1812,  1818,
-  1820,  1823,  1826,  1830,  1834,  1846,  1856,  1864,  1872,  1873,
-  1877,  1879,  1883,  1884,  1888,  1892,  1894,  1898,  1899,  1901,
-  1905,  1907,  1909,  1913,  1917,  1927,  1935,  1941,  1943
+   923,   924,   956,   961,   966,   971,   976,   981,   986,   991,
+   999,  1008,  1021,  1028,  1034,  1042,  1050,  1063,  1071,  1081,
+  1099,  1107,  1116,  1125,  1133,  1145,  1151,  1160,  1170,  1179,
+  1202,  1223,  1232,  1241,  1247,  1256,  1264,  1273,  1279,  1291,
+  1297,  1307,  1309,  1311,  1313,  1314,  1317,  1322,  1327,  1331,
+  1335,  1338,  1342,  1349,  1358,  1360,  1369,  1382,  1391,  1404,
+  1413,  1426,  1438,  1454,  1456,  1459,  1469,  1472,  1479,  1489,
+  1499,  1508,  1517,  1526,  1533,  1538,  1541,  1542,  1545,  1547,
+  1554,  1561,  1568,  1575,  1582,  1589,  1595,  1601,  1608,  1615,
+  1622,  1631,  1632,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
+  1649,  1653,  1656,  1659,  1662,  1666,  1670,  1674,  1678,  1682,
+  1686,  1690,  1694,  1698,  1702,  1706,  1710,  1714,  1718,  1724,
+  1729,  1734,  1739,  1744,  1749,  1754,  1759,  1764,  1769,  1774,
+  1781,  1786,  1791,  1796,  1801,  1806,  1811,  1818,  1825,  1832,
+  1834,  1836,  1838,  1842,  1847,  1852,  1856,  1862,  1864,  1867,
+  1870,  1874,  1878,  1890,  1900,  1908,  1916,  1920,  1921,  1925,
+  1927,  1931,  1932,  1936,  1940,  1942,  1946,  1947,  1949,  1953,
+  1955,  1957,  1961,  1965,  1975,  1983,  1989,  1991
 };
 
 static const short yyrhs[] = {   176,
@@ -420,6 +421,9 @@ static const short yyrhs[] = {   176,
    169,   242,   169,   242,   169,   242,   169,   242,   169,   242,
    169,   242,   169,   242,   169,   242,   169,   242,   170,   221,
    171,   219,   172,     6,     0,     4,     7,   242,     6,     0,
+     4,   143,   242,     6,     0,     4,   144,   242,     6,     0,
+     4,   166,   242,     6,     0,     4,   144,   242,     6,     0,
+     4,   145,   242,     6,     0,     4,   146,   242,     6,     0,
     31,   168,   242,   170,     7,   245,     6,     0,    46,    31,
    168,   242,   170,     7,   251,     6,     0,    63,    31,   251,
      7,   171,   242,   169,   242,   169,   242,   172,     6,     0,
@@ -481,44 +485,46 @@ static const short yyrhs[] = {   176,
    144,   242,     6,     0,     4,   173,     4,   145,   242,     6,
      0,     4,   173,     4,   146,   242,     6,     0,     4,   173,
      4,   166,     6,     0,     4,   173,     4,   167,     6,     0,
-     4,   173,     4,     7,   245,     6,     0,     4,   173,    83,
-   173,     4,     7,   253,     6,     0,     0,   239,   240,     0,
-   238,     0,    93,     0,    94,     0,    95,     0,    96,     0,
-    97,     0,   243,     0,   168,   242,   170,     0,   158,   242,
-     0,   157,   242,     0,   164,   242,     0,   242,   158,   242,
-     0,   242,   157,   242,     0,   242,   159,   242,     0,   242,
-   160,   242,     0,   242,   161,   242,     0,   242,   165,   242,
-     0,   242,   153,   242,     0,   242,   154,   242,     0,   242,
-   155,   242,     0,   242,   156,   242,     0,   242,   151,   242,
-     0,   242,   150,   242,     0,   242,   148,   242,     0,   242,
-   149,   242,     0,   242,   147,   242,     8,   242,     0,    10,
-   168,   242,   170,     0,    11,   168,   242,   170,     0,    12,
-   168,   242,   170,     0,    13,   168,   242,   170,     0,    14,
-   168,   242,   170,     0,    15,   168,   242,   170,     0,    16,
-   168,   242,   170,     0,    17,   168,   242,   170,     0,    18,
-   168,   242,   170,     0,    19,   168,   242,   170,     0,    20,
-   168,   242,   169,   242,   170,     0,    21,   168,   242,   170,
-     0,    22,   168,   242,   170,     0,    23,   168,   242,   170,
-     0,    24,   168,   242,   170,     0,    25,   168,   242,   170,
-     0,    26,   168,   242,   170,     0,    27,   168,   242,   169,
-   242,   170,     0,    28,   168,   242,   169,   242,   170,     0,
-    29,   168,   242,   169,   242,   170,     0,     3,     0,     9,
-     0,     4,     0,     4,   173,     4,     0,     4,   173,     4,
-   166,     0,     4,   173,     4,   167,     0,   242,     8,   242,
-     0,   242,     8,   242,     8,   242,     0,   246,     0,   158,
-   245,     0,   157,   245,     0,   245,   158,   245,     0,   245,
-   157,   245,     0,   171,   242,   169,   242,   169,   242,   169,
-   242,   169,   242,   172,     0,   171,   242,   169,   242,   169,
-   242,   169,   242,   172,     0,   171,   242,   169,   242,   169,
-   242,   172,     0,   168,   242,   169,   242,   169,   242,   170,
-     0,     0,   168,   248,   170,     0,     5,     0,   248,   169,
-     5,     0,     0,   171,   250,   172,     0,   168,   250,   170,
-     0,   251,     0,   250,   169,   251,     0,     0,   242,     0,
-   171,   252,   172,     0,   242,     0,   244,     0,   252,   169,
-   242,     0,   252,   169,   244,     0,   171,   242,   169,   242,
-   169,   242,   169,   242,   172,     0,   171,   242,   169,   242,
-   169,   242,   172,     0,   171,     4,   169,   242,   172,     0,
-     4,     0,     4,   173,    83,   173,     4,     0
+     4,   173,     4,     7,   245,     6,     0,     4,   173,     4,
+   143,   245,     6,     0,     4,   173,     4,   144,   245,     6,
+     0,     4,   173,    83,   173,     4,     7,   253,     6,     0,
+     0,   239,   240,     0,   238,     0,    93,     0,    94,     0,
+    95,     0,    96,     0,    97,     0,   243,     0,   168,   242,
+   170,     0,   158,   242,     0,   157,   242,     0,   164,   242,
+     0,   242,   158,   242,     0,   242,   157,   242,     0,   242,
+   159,   242,     0,   242,   160,   242,     0,   242,   161,   242,
+     0,   242,   165,   242,     0,   242,   153,   242,     0,   242,
+   154,   242,     0,   242,   155,   242,     0,   242,   156,   242,
+     0,   242,   151,   242,     0,   242,   150,   242,     0,   242,
+   148,   242,     0,   242,   149,   242,     0,   242,   147,   242,
+     8,   242,     0,    10,   168,   242,   170,     0,    11,   168,
+   242,   170,     0,    12,   168,   242,   170,     0,    13,   168,
+   242,   170,     0,    14,   168,   242,   170,     0,    15,   168,
+   242,   170,     0,    16,   168,   242,   170,     0,    17,   168,
+   242,   170,     0,    18,   168,   242,   170,     0,    19,   168,
+   242,   170,     0,    20,   168,   242,   169,   242,   170,     0,
+    21,   168,   242,   170,     0,    22,   168,   242,   170,     0,
+    23,   168,   242,   170,     0,    24,   168,   242,   170,     0,
+    25,   168,   242,   170,     0,    26,   168,   242,   170,     0,
+    27,   168,   242,   169,   242,   170,     0,    28,   168,   242,
+   169,   242,   170,     0,    29,   168,   242,   169,   242,   170,
+     0,     3,     0,     9,     0,     4,     0,     4,   173,     4,
+     0,     4,   173,     4,   166,     0,     4,   173,     4,   167,
+     0,   242,     8,   242,     0,   242,     8,   242,     8,   242,
+     0,   246,     0,   158,   245,     0,   157,   245,     0,   245,
+   158,   245,     0,   245,   157,   245,     0,   171,   242,   169,
+   242,   169,   242,   169,   242,   169,   242,   172,     0,   171,
+   242,   169,   242,   169,   242,   169,   242,   172,     0,   171,
+   242,   169,   242,   169,   242,   172,     0,   168,   242,   169,
+   242,   169,   242,   170,     0,     4,   173,     4,     0,     0,
+   168,   248,   170,     0,     5,     0,   248,   169,     5,     0,
+     0,   171,   250,   172,     0,   168,   250,   170,     0,   251,
+     0,   250,   169,   251,     0,     0,   242,     0,   171,   252,
+   172,     0,   242,     0,   244,     0,   252,   169,   242,     0,
+   252,   169,   244,     0,   171,   242,   169,   242,   169,   242,
+   169,   242,   172,     0,   171,   242,   169,   242,   169,   242,
+   172,     0,   171,     4,   169,   242,   172,     0,     4,     0,
+     4,   173,    83,   173,     4,     0
 };
 
 #endif
@@ -538,23 +544,24 @@ static const short yyrline[] = { 0,
    503,   506,   510,   518,   524,   527,   531,   539,   545,   548,
    552,   564,   570,   573,   577,   589,   595,   598,   602,   614,
    620,   623,   627,   640,   646,   649,   653,   666,   672,   675,
-   679,   692,   704,   718,   729,   735,   754,   765,   773,   779,
-   785,   804,   810,   826,   833,   839,   845,   851,   857,   876,
-   888,   894,   913,   934,   942,   948,   954,   960,   972,   978,
-   984,   996,  1002,  1007,  1012,  1019,  1021,  1022,  1025,  1030,
-  1041,  1059,  1074,  1102,  1133,  1137,  1149,  1164,  1177,  1215,
-  1221,  1227,  1231,  1235,  1239,  1243,  1248,  1255,  1259,  1264,
-  1282,  1292,  1310,  1327,  1344,  1365,  1385,  1405,  1422,  1446,
-  1457,  1459,  1462,  1466,  1478,  1495,  1512,  1529,  1546,  1563,
-  1580,  1597,  1634,  1652,  1654,  1657,  1672,  1674,  1675,  1676,
-  1677,  1680,  1682,  1683,  1684,  1685,  1686,  1687,  1688,  1689,
-  1690,  1691,  1692,  1693,  1694,  1695,  1696,  1697,  1698,  1699,
-  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,  1709,
-  1710,  1711,  1712,  1713,  1714,  1715,  1716,  1717,  1718,  1719,
-  1720,  1723,  1725,  1726,  1735,  1752,  1769,  1788,  1795,  1808,
-  1813,  1817,  1821,  1825,  1830,  1835,  1839,  1843,  1849,  1853,
-  1858,  1862,  1867,  1871,  1875,  1881,  1887,  1893,  1897,  1903,
-  1910,  1916,  1925,  1929,  1939,  1944,  1948,  1953,  1958
+   679,   692,   704,   711,   719,   727,   735,   743,   751,   766,
+   777,   783,   802,   813,   821,   827,   833,   852,   858,   874,
+   881,   887,   893,   899,   905,   924,   936,   942,   961,   982,
+   990,   996,  1002,  1008,  1020,  1026,  1032,  1044,  1050,  1055,
+  1060,  1067,  1069,  1070,  1073,  1078,  1089,  1107,  1122,  1150,
+  1181,  1185,  1197,  1212,  1225,  1263,  1269,  1275,  1279,  1283,
+  1287,  1291,  1296,  1303,  1307,  1312,  1330,  1340,  1358,  1375,
+  1392,  1413,  1433,  1453,  1470,  1494,  1505,  1507,  1510,  1514,
+  1526,  1543,  1560,  1577,  1594,  1611,  1628,  1645,  1670,  1695,
+  1720,  1738,  1740,  1743,  1758,  1760,  1761,  1762,  1763,  1766,
+  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,  1776,  1777,
+  1778,  1779,  1780,  1781,  1782,  1783,  1784,  1785,  1786,  1787,
+  1788,  1789,  1790,  1791,  1792,  1793,  1794,  1795,  1796,  1797,
+  1798,  1799,  1800,  1801,  1802,  1803,  1804,  1805,  1806,  1809,
+  1811,  1812,  1821,  1838,  1855,  1874,  1881,  1894,  1899,  1903,
+  1907,  1911,  1916,  1921,  1925,  1929,  1933,  1961,  1965,  1970,
+  1974,  1979,  1983,  1987,  1993,  1999,  2005,  2009,  2015,  2022,
+  2028,  2037,  2041,  2051,  2056,  2060,  2065,  2070
 };
 #endif
 
@@ -617,23 +624,24 @@ static const short yyr1[] = {     0,
    198,   198,   200,   199,   201,   201,   203,   202,   204,   204,
    206,   205,   207,   207,   209,   208,   210,   210,   212,   211,
    213,   213,   215,   214,   216,   216,   218,   217,   219,   219,
-   221,   220,   222,   223,   223,   223,   223,   223,   223,   223,
+   221,   220,   222,   222,   222,   222,   222,   222,   222,   223,
    223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
    223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
-   223,   224,   224,   224,   224,   225,   225,   225,   226,   226,
-   227,   228,   229,   230,   230,   230,   231,   231,   231,   232,
-   232,   232,   232,   232,   232,   232,   232,   233,   233,   234,
-   234,   235,   235,   235,   235,   235,   235,   235,   235,   236,
-   237,   237,   238,   238,   238,   238,   238,   238,   238,   238,
-   238,   238,   238,   239,   239,   240,   241,   241,   241,   241,
-   241,   242,   242,   242,   242,   242,   242,   242,   242,   242,
+   223,   223,   223,   223,   223,   223,   223,   224,   224,   224,
+   224,   225,   225,   225,   226,   226,   227,   228,   229,   230,
+   230,   230,   231,   231,   231,   232,   232,   232,   232,   232,
+   232,   232,   232,   233,   233,   234,   234,   235,   235,   235,
+   235,   235,   235,   235,   235,   236,   237,   237,   238,   238,
+   238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
+   238,   239,   239,   240,   241,   241,   241,   241,   241,   242,
    242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
    242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
    242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
-   242,   243,   243,   243,   243,   243,   243,   244,   244,   245,
-   245,   245,   245,   245,   246,   246,   246,   246,   247,   247,
-   248,   248,   249,   249,   249,   250,   250,   251,   251,   251,
-   252,   252,   252,   252,   253,   253,   253,   253,   253
+   242,   242,   242,   242,   242,   242,   242,   242,   242,   243,
+   243,   243,   243,   243,   243,   244,   244,   245,   245,   245,
+   245,   245,   246,   246,   246,   246,   246,   247,   247,   248,
+   248,   249,   249,   249,   250,   250,   251,   251,   251,   252,
+   252,   252,   252,   253,   253,   253,   253,   253
 };
 
 static const short yyr2[] = {     0,
@@ -650,23 +658,24 @@ static const short yyr2[] = {     0,
      1,     3,     0,    19,     1,     3,     0,    19,     1,     3,
      0,    25,     1,     3,     0,    25,     1,     3,     0,    25,
      1,     3,     0,    31,     1,     3,     0,    31,     1,     3,
-     0,    31,     4,     7,     8,    12,     6,     5,     7,     7,
-    12,     7,     9,    17,     7,     8,     8,     7,    11,     5,
-     8,     9,     8,    22,    20,     8,     8,     5,     8,     7,
-     8,     5,    11,     5,     9,     1,     1,     1,     0,     2,
-     4,     4,     3,     3,     2,     3,     6,     8,     1,     8,
-    12,     8,    12,     8,    12,    11,    15,     1,     2,     9,
-     2,     6,     9,     9,     8,     8,     8,     6,     4,     2,
-     0,     2,     1,     6,     6,     6,     6,     6,     6,     5,
-     5,     6,     8,     0,     2,     1,     1,     1,     1,     1,
-     1,     1,     3,     2,     2,     2,     3,     3,     3,     3,
-     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-     5,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     4,     6,     4,     4,     4,     4,     4,     4,     6,     6,
-     6,     1,     1,     1,     3,     4,     4,     3,     5,     1,
-     2,     2,     3,     3,    11,     9,     7,     7,     0,     3,
-     1,     3,     0,     3,     3,     1,     3,     0,     1,     3,
-     1,     1,     3,     3,     9,     7,     5,     1,     5
+     0,    31,     4,     4,     4,     4,     4,     4,     4,     7,
+     8,    12,     6,     5,     7,     7,    12,     7,     9,    17,
+     7,     8,     8,     7,    11,     5,     8,     9,     8,    22,
+    20,     8,     8,     5,     8,     7,     8,     5,    11,     5,
+     9,     1,     1,     1,     0,     2,     4,     4,     3,     3,
+     2,     3,     6,     8,     1,     8,    12,     8,    12,     8,
+    12,    11,    15,     1,     2,     9,     2,     6,     9,     9,
+     8,     8,     8,     6,     4,     2,     0,     2,     1,     6,
+     6,     6,     6,     6,     6,     5,     5,     6,     6,     6,
+     8,     0,     2,     1,     1,     1,     1,     1,     1,     1,
+     3,     2,     2,     2,     3,     3,     3,     3,     3,     3,
+     3,     3,     3,     3,     3,     3,     3,     3,     5,     4,
+     4,     4,     4,     4,     4,     4,     4,     4,     4,     6,
+     4,     4,     4,     4,     4,     4,     6,     6,     6,     1,
+     1,     1,     3,     4,     4,     3,     5,     1,     2,     2,
+     3,     3,    11,     9,     7,     7,     3,     0,     3,     1,
+     3,     0,     3,     3,     1,     3,     0,     1,     3,     1,
+     1,     3,     3,     9,     7,     5,     1,     5
 };
 
 static const short yydefact[] = {    51,
@@ -675,1367 +684,1386 @@ static const short yydefact[] = {    51,
     10,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   179,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
     52,    54,    53,    55,    56,    57,    58,    59,    63,    65,
-    64,    60,    61,    62,   262,   264,   263,     0,     0,     0,
+    64,    60,    61,    62,   270,   272,   271,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   222,    12,     0,    13,    14,    16,    15,    17,
-   279,   279,     0,    68,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   288,     0,
-     0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   270,     0,     0,
-     0,     0,     0,   169,     0,   288,   169,   200,     0,   288,
-   288,     0,     0,     0,   201,     0,   214,   175,     0,     0,
+     0,     0,   230,    12,     0,    13,    14,    16,    15,    17,
+   288,   288,     0,    68,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   297,     0,     0,     0,     0,   297,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   225,   224,   226,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   278,     0,     0,     0,     0,     0,   175,
+     0,   297,   175,   206,     0,   297,   297,     0,     0,     0,
+   207,     0,   222,   181,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   233,   232,   234,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   174,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   289,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   272,   271,     0,     0,     0,
-     0,   169,   169,     0,     0,     0,     0,     0,   173,     0,
-     0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   176,     0,   265,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   223,     0,   239,
-   240,   238,   237,   233,   234,   235,   236,   225,   224,   229,
-   230,   231,   232,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   180,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   298,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   280,   279,     0,
+     0,     0,     0,   175,   175,     0,     0,     0,     0,     0,
+   179,     0,     0,     0,    72,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   182,     0,   273,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   231,
+     0,   247,   248,   246,   245,   241,   242,   243,   244,   233,
+   232,   237,   238,   239,   240,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   290,     0,     0,     0,
+     0,   133,   134,   135,   138,   139,   136,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   300,
+   301,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   287,     0,     0,   282,
+   281,   174,     0,   173,   172,     0,     0,     0,     0,     0,
+   177,   176,   205,     0,   178,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    66,   209,   208,     0,    67,
+   224,   223,     0,   274,   275,   250,   251,   252,   253,   254,
+   255,   256,   257,   258,   259,     0,   261,   262,   263,   264,
+   265,   266,     0,     0,     0,   236,   235,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   281,     0,     0,     0,     0,   133,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   291,   292,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   274,   273,   168,     0,   167,   166,     0,     0,     0,
-     0,     0,   171,   170,   199,     0,   172,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    66,   203,   202,
-     0,    67,   216,   215,     0,   266,   267,   242,   243,   244,
-   245,   246,   247,   248,   249,   250,   251,     0,   253,   254,
-   255,   256,   257,   258,     0,     0,     0,   228,   227,     0,
+   289,     0,    19,     0,     0,     0,   144,   297,   297,     0,
+   297,   156,     0,   164,   297,   297,     0,     0,   299,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   168,   170,     0,     0,     0,
+     0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84,     0,     0,
+   297,     0,     0,   297,     0,     0,     0,     0,     0,     0,
+     0,   249,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   297,   297,     0,     0,     0,     0,   297,   297,
+     0,     0,     0,     0,     0,   297,     0,   297,     0,     0,
+     0,     0,     0,   291,     0,   288,     0,     0,     0,     0,
+   297,     0,   297,     0,     0,   276,   302,   303,   143,     0,
+   297,   297,   297,   198,     0,   297,   297,   297,   297,   297,
+   297,   297,     0,     0,     0,     0,     0,     0,     0,   204,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    70,     0,     0,     0,     0,   292,     0,
+     0,     0,     0,   183,     0,   260,   267,   268,   269,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   280,     0,    19,     0,     0,     0,   138,   288,
-   288,     0,   288,   150,     0,   158,   288,   288,     0,     0,
-   290,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   162,   164,     0,
-     0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
-    75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-     0,     0,   288,     0,     0,   288,     0,     0,     0,     0,
-     0,     0,     0,   241,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   288,   288,     0,     0,     0,     0,
-   288,   288,     0,     0,     0,     0,     0,   288,     0,   288,
-     0,     0,     0,     0,     0,   282,     0,   279,     0,     0,
-     0,     0,   288,     0,   288,     0,     0,   268,   293,   294,
-   137,     0,   288,   288,   288,   192,     0,   288,   288,   288,
-   288,   288,   288,   288,     0,     0,     0,     0,     0,     0,
-     0,   198,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,    70,     0,     0,     0,     0,
-   283,     0,     0,     0,     0,   177,     0,   252,   259,   260,
-   261,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   225,   226,   227,   228,   229,     0,     0,
+     0,     0,     0,     0,     0,    18,     0,    69,   140,   148,
+     0,   151,     0,   145,     0,   146,   166,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   217,   218,   219,   220,   221,
-     0,     0,     0,     0,     0,     0,     0,    18,     0,    69,
-   134,   142,     0,   145,     0,   139,     0,   140,   160,     0,
+     0,     0,     0,     0,   175,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   169,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   154,     0,   297,   297,
+     0,   297,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   297,     0,     0,     0,   297,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   148,     0,
-   288,   288,     0,   288,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   288,     0,     0,     0,   288,     0,     0,
+     0,     0,     0,     0,   297,     0,     0,     0,     0,     0,
+     0,     0,     0,   288,     0,   153,   163,   277,     0,   202,
+   157,   159,     0,     0,   201,   203,   165,   141,   152,   162,
+   167,     0,   286,     0,   285,     0,     0,   186,     0,   188,
+     0,   190,     0,    71,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   292,     0,
+   295,     0,     0,     0,   272,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   216,   217,     0,
+   184,     0,     0,     0,     0,     0,    21,     0,    30,     0,
+    34,     0,    28,     0,     0,    33,     0,    38,    36,     0,
+     0,     0,     0,     0,     0,    45,     0,     0,     0,     0,
+     0,    50,     0,     0,   149,     0,   200,   199,   175,     0,
+   171,     0,     0,     0,     0,     0,     0,   194,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   288,     0,     0,     0,
-     0,     0,     0,     0,     0,   279,     0,   147,   157,   269,
-     0,   196,   151,   153,     0,     0,   195,   197,   159,   135,
-   146,   156,   161,     0,   278,     0,   277,     0,     0,   180,
-     0,   182,     0,   184,     0,    71,     0,     0,     0,     0,
+     0,     0,     0,   297,   294,   293,   297,     0,     0,   210,
+     0,   211,   218,   212,   219,   213,   220,   214,   215,     0,
+   158,     0,     0,   292,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   297,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   284,     0,     0,
+     0,   197,   297,     0,   195,     0,     0,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   283,     0,   286,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   210,   211,     0,   178,
-     0,     0,     0,     0,     0,    21,     0,    30,     0,    34,
-     0,    28,     0,     0,    33,     0,    38,    36,     0,     0,
-     0,     0,     0,     0,    45,     0,     0,     0,     0,     0,
-    50,     0,     0,   143,     0,   194,   193,   169,     0,   165,
-     0,     0,     0,     0,     0,     0,   188,     0,     0,     0,
+   296,     0,     0,   273,   307,     0,     0,     0,    35,     0,
+     0,     0,     0,    25,     0,    31,     0,    37,    26,    39,
+     0,    42,     0,    46,    47,     0,     0,    49,     0,     0,
+     0,   169,     0,     0,     0,     0,     0,   192,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   288,   285,   284,   288,     0,   204,     0,   205,
-   212,   206,   207,   208,   209,     0,   152,     0,     0,   283,
+     0,     0,   297,   297,   155,     0,   272,     0,   221,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   288,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   276,     0,     0,     0,   191,   288,     0,
-   189,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   287,     0,     0,   298,
-     0,     0,     0,    35,     0,     0,     0,     0,    25,     0,
-    31,     0,    37,    26,    39,     0,    42,     0,    46,    47,
-     0,     0,    49,     0,     0,     0,   163,     0,     0,     0,
-     0,     0,   186,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   288,   288,   149,
-     0,   264,     0,   213,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   275,   181,
-   183,   185,     0,   288,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    87,    91,    95,   136,   141,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    29,    32,
-    40,     0,    41,    48,    43,     0,     0,     0,     0,     0,
+     0,     0,     0,   283,   187,   189,   191,     0,   297,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    87,    91,
+    95,   142,   147,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    29,    32,    40,     0,    41,    48,    43,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   288,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   288,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   297,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   299,   297,     0,     0,     0,     0,    24,    27,     0,     0,
-     0,   187,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    85,     0,    89,     0,    93,     0,     0,
-     0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
+   297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   308,   306,     0,     0,     0,
+     0,    24,    27,     0,     0,     0,   193,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    85,     0,
+    89,     0,    93,     0,     0,     0,     0,     0,   297,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   296,     0,     0,     0,
-    44,    20,   144,   190,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    86,    88,    90,    92,    94,    96,     0,
-     0,     0,     0,     0,   288,     0,     0,     0,     0,     0,
-     0,    99,   103,   107,     0,     0,   295,     0,     0,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     5,   288,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   155,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    97,     0,   101,     0,   105,     0,
-   288,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   154,     0,    22,     0,     0,     0,
-     0,     0,     0,    98,   100,   102,   104,   106,   108,   288,
-     0,     0,     0,   111,   115,   119,     0,     0,     0,     0,
-     0,     0,     0,   288,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,   109,     0,   113,     0,   117,
+     0,   305,     0,     0,     0,    44,    20,   150,   196,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    86,    88,
+    90,    92,    94,    96,     0,     0,     0,     0,     0,   297,
+     0,     0,     0,     0,     0,     0,    99,   103,   107,     0,
+     0,   304,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     5,   297,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   161,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    97,
+     0,   101,     0,   105,     0,   297,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   160,
+     0,    22,     0,     0,     0,     0,     0,     0,    98,   100,
+   102,   104,   106,   108,   297,     0,     0,     0,   111,   115,
+   119,     0,     0,     0,     0,     0,     0,     0,   297,     0,
      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   110,   112,   114,   116,   118,   120,
-     0,   123,   127,   131,    23,     0,     0,     0,     0,     0,
-     0,     0,   121,     0,   125,     0,   129,     0,     0,     0,
-     0,     0,     0,   122,   124,   126,   128,   130,   132,     0,
-     0,     0
+   109,     0,   113,     0,   117,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   110,
+   112,   114,   116,   118,   120,     0,   123,   127,   131,    23,
+     0,     0,     0,     0,     0,     0,     0,   121,     0,   125,
+     0,   129,     0,     0,     0,     0,     0,     0,   122,   124,
+   126,   128,   130,   132,     0,     0,     0
 };
 
-static const short yydefgoto[] = {  1410,
-     4,     5,    18,    19,    20,    21,     6,    61,   439,    63,
-   429,  1183,   559,  1129,  1185,   560,  1130,  1187,   561,  1131,
-  1294,   562,  1267,  1296,   563,  1268,  1298,   564,  1269,  1355,
-   565,  1341,  1357,   566,  1342,  1359,   567,  1343,  1392,   568,
-  1386,  1394,   569,  1387,  1396,   570,  1388,    64,   424,   414,
-   415,   416,   417,    68,    69,    70,    71,    72,   926,   927,
-    73,    74,   300,   440,   302,   444,   711,   261,   103,   394,
-   276,   148,   243,   376,   773,   862,   863,   395,  1012
+static const short yydefgoto[] = {  1435,
+     4,     5,    18,    19,    20,    21,     6,    61,   457,    63,
+   447,  1208,   577,  1154,  1210,   578,  1155,  1212,   579,  1156,
+  1319,   580,  1292,  1321,   581,  1293,  1323,   582,  1294,  1380,
+   583,  1366,  1382,   584,  1367,  1384,   585,  1368,  1417,   586,
+  1411,  1419,   587,  1412,  1421,   588,  1413,    64,   442,   432,
+   433,   434,   435,    68,    69,    70,    71,    72,   947,   948,
+    73,    74,   312,   458,   314,   462,   729,   272,   103,   411,
+   288,   154,   249,   388,   791,   880,   881,   412,  1037
 };
 
-static const short yypact[] = {   315,
--32768,-32768,  -126,-32768,    33,  1754,  1089,    18,    28,    49,
-    65,    84,   122,   127,  -146,   -33,   -19,-32768,-32768,-32768,
--32768,   152,   205,    43,  -115,   113,   115,   -53,   -49,   124,
-   146,   212,   156,   321,   350,   367,   336,   313,    15,   240,
-   -69,   -69,   250,   259,   251,   426,   412,   290,   449,   457,
-    76,   296,   -31,   294,   301,-32768,   297,   464,   466,   437,
+static const short yypact[] = {   742,
+-32768,-32768,  -117,-32768,   424,  1923,  1114,    29,    30,    38,
+    50,    65,    70,    76,   -67,   -61,   -39,-32768,-32768,-32768,
+-32768,   132,   141,     0,   -37,   -25,   -19,   -48,   -44,   -13,
+    -6,   127,    24,   178,   182,   211,   224,   244,   344,   100,
+    -1,    -1,   128,   116,   135,   305,   289,   154,   320,   328,
+   102,   187,   -29,   185,   189,-32768,   193,   368,   377,   353,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   304,-32768,   305,   306,   310,
-   311,   312,   316,   317,   319,   322,   323,   324,   325,   326,
-   327,   328,   329,   331,   332,   333,   334,  1089,  1089,  1089,
-  1089,  1415,-32768,-32768,  1791,-32768,-32768,-32768,-32768,-32768,
-   335,   335,   476,-32768,  1089,   477,   499,  1089,  1089,  1089,
-  1089,   337,  1089,  1089,   338,  1089,  1089,  1089,   525,  1089,
-   339,   341,   343,   525,   344,   346,   348,   351,   352,   353,
-   354,   -69,   -69,   -69,  1089,  1089,    79,-32768,    81,   -69,
-   355,   356,   359,-32768,   508,   525,-32768,-32768,   -41,   525,
-   525,  1089,   -72,  1089,-32768,  1089,-32768,-32768,   517,   357,
-   520,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,   390,   390,   390,  2307,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,
-  1415,   388,   389,   391,   392,   393,   394,   395,   398,   400,
-   430,   431,   432,   434,   439,   445,   455,   456,   459,   460,
-   462,   463,   465,   467,   468,   473,   474,   475,   478,   491,
-   492,   553,   435,   493,   495,   597,-32768,   496,  2331,  1898,
-  2355,  2379,  1089,  2403,  1926,  1089,  1963,  2427,  2451,  1089,
-  6257,   622,  2475,  1089,  1089,  1089,   625,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  -128,-32768,-32768,  3819,  3842,   -69,
-   -69,   234,   234,    87,  1089,  1089,  1089,  1592,-32768,    75,
-  1608,   -69,-32768,   627,   637,  2499,   564,  1089,  2523,    13,
-   561,    14,-32768,  1089,   -13,  2547,  2571,  2595,  2619,  2643,
-  2667,  2691,  2715,  2739,  2763,  3865,  2787,  2811,  2835,  2859,
-  2883,  2907,  3888,  3911,  3934,  1089,  1089,-32768,  1378,   -81,
-   -81,   417,   417,   249,   249,   249,   249,   -68,   -65,   390,
-   390,   390,   390,   662,   656,   657,   661,   664,   666,   667,
-   668,   669,   671,   672,   673,   674,   675,   676,   679,   680,
-   681,   682,   683,   685,   686,   687,   689,   541,   690,   692,
-   693,   694,   697,   696,-32768,    99,   698,   700,   699,-32768,
-  1089,   695,   701,   717,   718,  2931,   720,   724,  2955,   725,
-   726,   727,  1437,-32768,   -43,  1089,   728,  1983,  2979,  3003,
-  1089,  2003,  2023,  3027,  3051,  3075,  3099,  3123,   -69,  1089,
-  1089,-32768,-32768,-32768,   560,  1660,-32768,   565,  1089,  3957,
-  3980,  4003,-32768,-32768,-32768,  1089,-32768,    83,    -8,   568,
-   570,   729,   575,  3147,   742,   586,   595,-32768,-32768,-32768,
-  1089,-32768,-32768,-32768,  3171,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,  1089,-32768,-32768,
--32768,-32768,-32768,-32768,  1089,  1089,  1089,    -9,    -9,  1089,
-   624,   598,   604,   605,   606,   607,   608,   610,   612,   613,
-   614,   615,   616,   617,   618,   619,   620,   623,   626,   631,
-   633,   634,   636,   638,   655,   659,   663,   665,   670,   684,
-   688,   761,-32768,   621,-32768,   691,  3195,   -69,-32768,   525,
-   525,   786,   525,-32768,   789,-32768,   525,   525,  1089,  1089,
--32768,   788,   635,   818,   819,   823,   461,   824,   826,   828,
-   829,   830,   831,   845,   119,  4026,  4049,-32768,-32768,  2043,
-   -69,   -69,   -69,   861,-32768,   704,   705,   706,   731,   733,
-   734,   735,   736,   738,   739,   740,   741,   848,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-  1089,  1089,   525,  1089,   849,   525,     2,   436,   851,  3219,
-  3243,  3267,  3291,  6257,   719,   862,  1089,  1089,   -69,   863,
-   865,   710,   894,   907,   525,   525,   908,   -69,   909,   910,
-   525,   525,   914,   916,   917,   918,   919,   525,   345,   525,
-   920,   859,   921,   922,   925,-32768,   923,   335,   924,     3,
-     9,   944,   525,   945,   525,   946,   948,  1457,  1437,-32768,
--32768,  1089,   525,   525,   525,-32768,   277,   525,   525,   525,
-   525,   525,   525,   525,  1089,  1089,  1089,   753,  -132,  -130,
-   -71,-32768,   233,  1089,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,-32768,  4072,  4095,   949,  3315,
-   213,   875,   129,   785,  1089,-32768,  1089,-32768,-32768,-32768,
--32768,  1089,   790,  4118,  4141,    85,   791,   792,   794,   795,
-   797,   798,   801,   802,    90,   804,   805,   807,   810,   811,
-   812,   813,   814,   815,   827,-32768,-32768,-32768,-32768,-32768,
-   832,   833,   834,   836,   838,   843,   854,-32768,   858,-32768,
--32768,-32768,   -69,-32768,   955,-32768,   961,-32768,-32768,  1089,
-  4164,   968,   992,   993,  1089,  1089,   994,  1022,  1023,  1024,
-  1026,  1027,  1028,  2063,  3339,  1813,   234,   -69,  1030,   -69,
-  1031,   -69,    17,  1038,  4187,  4210,  4233,  4256,  4279,  4302,
-  4325,  4348,  4371,  4394,  4417,  4440,  1089,  1089,-32768,  1047,
-   525,   525,   973,   525,   318,  1089,  1089,  1089,  1089,  1050,
-  1058,  1071,  3363,   204,  1415,  1084,  1089,   525,  1068,  1085,
-  1083,   931,  1088,   345,  1118,  1131,  1089,  1129,  1133,  1132,
-  1146,  1136,   345,  1089,  1089,  1089,   525,  1149,  1155,   345,
-  1089,  1177,  1178,  1176,  1089,   335,     5,-32768,-32768,  6257,
-  1089,-32768,-32768,-32768,   892,   912,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,  1013,-32768,  1089,-32768,  1014,   209,-32768,
-   219,-32768,   222,-32768,    67,-32768,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  4463,  4486,
-   213,   179,-32768,   218,  1016,  1012,  1182,   867,   867,  1089,
-   972,    77,  1070,  1299,  1321,  1340,-32768,-32768,  1183,-32768,
-  1185,  1415,  1019,  4509,  1033,-32768,  1035,-32768,  1037,-32768,
-  1040,-32768,  1039,  3387,-32768,  1043,-32768,-32768,  1044,  1045,
-  3411,  4532,  3435,  1053,-32768,  1046,  1062,  4555,  1067,  1075,
--32768,  4578,  1069,-32768,  4601,-32768,-32768,   234,  1839,-32768,
-  1089,  1089,  1089,  1201,  1042,   -48,-32768,  4624,  4647,  4670,
-  4693,  4716,  4739,  4762,  4785,  4808,  4831,  4854,  4877,  1089,
-  1089,  1166,   525,-32768,-32768,   525,  1089,-32768,  2283,-32768,
--32768,-32768,-32768,-32768,-32768,    16,-32768,  1709,  1231,   213,
-   345,  1246,  1089,  1244,   345,  1245,  1249,  1248,  1250,  1252,
-  1089,  1253,   525,  1254,  1255,  1089,  1259,  1258,  1089,  1260,
-  1261,  1095,  1089,-32768,  2083,  2103,  2123,-32768,   525,  1271,
--32768,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  2143,  2163,  1107,-32768,  1086,  1359,  1106,
-  1150,  1274,  1089,-32768,  1114,  1116,  1117,  4900,-32768,  1120,
--32768,  1121,-32768,-32768,-32768,  3459,-32768,  1123,-32768,-32768,
-  3483,  1124,-32768,  3507,  1126,  1134,-32768,  2183,  1281,  1287,
-    39,  1140,-32768,  4923,  4946,  4969,  4992,  5015,  5038,  5061,
-  5084,  5107,  3531,  3555,  3579,  1304,  1305,   525,   525,-32768,
-  1229,   -64,  5130,-32768,  1415,   345,   345,   345,   345,  1307,
-  1309,  1310,   345,  1311,  1313,  1314,  1316,  1317,-32768,-32768,
--32768,-32768,    67,   525,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,-32768,-32768,-32768,-32768,-32768,  1154,  1156,
-  1157,  1089,  1089,  1415,  1160,  1162,  1163,  1164,-32768,-32768,
--32768,  1167,-32768,-32768,-32768,  1168,  1179,   -45,  1180,  5153,
-  5176,  5199,  5222,  5245,  5268,  5291,  5314,  5337,  1161,  1174,
-  1181,   525,  1256,  1346,  2203,  5360,  1788,   345,   345,  1345,
-  1347,   345,  1349,  1354,  1355,   525,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1191,  1193,
--32768,-32768,  1089,  1089,  1199,  1200,-32768,-32768,  1204,  1205,
-  1198,-32768,  1206,  5383,  5406,  5429,  5452,  5475,  5498,  5521,
-  5544,  5567,   223,  6257,   224,  6257,   228,  6257,  1292,  1089,
-  1870,  1415,   345,   525,  1370,  1371,  1374,  1379,  1089,  1089,
-  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1381,  1089,
-  1382,  1089,  1383,  1219,  5590,  1089,-32768,  1415,  1223,  1228,
--32768,-32768,-32768,-32768,  5613,  5636,  5659,  5682,  5705,  5728,
-  3603,  3627,  3651,  6257,-32768,  6257,-32768,  6257,-32768,  1089,
-  1089,  2223,  1618,   345,   525,  1089,  1089,  1089,  1089,  1089,
-  1089,-32768,-32768,-32768,  5751,  2243,-32768,  1257,  1232,  1233,
-  5774,  5797,  5820,  5843,  5866,  5889,  1227,  1236,  1237,  1089,
-  1394,-32768,   525,   345,  1089,  1089,  1089,  1089,  1089,  1089,
-  1089,  1089,  1089,  2263,-32768,  1234,  1247,  5912,  5935,  5958,
-  5981,  6004,  6027,   229,  6257,   244,  6257,   246,  6257,  1410,
-   525,  1414,  1089,  1089,  1089,  1089,  1089,  1089,  1089,  1416,
-  1089,  1417,  1089,  1445,-32768,  1293,-32768,  6050,  6073,  6096,
-  3675,  3699,  3723,  6257,-32768,  6257,-32768,  6257,-32768,   525,
-  1089,  1089,  1089,-32768,-32768,-32768,  1294,  6119,  6142,  6165,
-  1290,  1295,  1296,   525,  1089,  1089,  1089,  1089,  1089,  1089,
-  1315,  6188,  6211,  6234,   248,  6257,   263,  6257,   264,  6257,
-   345,  1089,  1089,  1089,  1089,  1467,  1089,  1477,  1089,  1479,
-  1251,  3747,  3771,  3795,  6257,-32768,  6257,-32768,  6257,-32768,
-  1486,-32768,-32768,-32768,-32768,  1331,  1332,  1333,  1089,  1089,
-  1089,   274,  6257,   276,  6257,   284,  6257,  1089,  1505,  1089,
-  1515,  1089,  1516,  6257,-32768,  6257,-32768,  6257,-32768,  1523,
-  1530,-32768
+-32768,-32768,-32768,-32768,-32768,   214,-32768,   221,   281,   297,
+   307,   311,   312,   322,   323,   324,   326,   327,   329,   336,
+   346,   347,   351,   354,   355,   356,   358,  1114,  1114,  1114,
+  1114,  1036,-32768,-32768,  1961,-32768,-32768,-32768,-32768,-32768,
+   359,   359,   403,-32768,  1114,  1114,  1114,  1114,  1114,  1114,
+   413,   461,  1114,  1114,  1114,  1114,   361,  1114,  1114,   372,
+  1114,  1114,  1114,   543,  1114,   349,   373,   374,   543,   402,
+   404,   375,   376,   380,   406,   408,    -1,   300,    -1,    -1,
+  1114,  1114,  -119,-32768,   -83,    -1,   407,   409,   410,-32768,
+   512,   543,-32768,-32768,   -36,   543,   543,  1114,   -69,  1114,
+-32768,  1114,-32768,-32768,   515,   411,   541,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1114,   412,   412,   412,
+  2416,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1036,   416,   418,   433,
+   434,   436,   437,   439,   440,   441,   442,   443,   446,   448,
+   449,   471,   472,   473,   474,   476,   477,   479,   480,   481,
+   482,   483,   484,   485,   486,   487,   491,   598,   492,   490,
+   493,   744,   817,   919,   997,  1090,  1322,-32768,   494,  2440,
+  2007,  2464,  2488,  1114,  2512,  2027,  1114,  2047,  2536,  2560,
+  1114,  6366,   657,  2584,  1114,  1114,  1114,   670,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  -103,   674,-32768,-32768,  3928,
+  3951,    -1,    -1,   350,   350,    -5,  1114,  1114,  1114,  1761,
+-32768,    80,  1780,    -1,-32768,   672,   673,  2608,   600,  1114,
+  2632,    19,   579,    21,-32768,  1114,    87,  2656,  2680,  2704,
+  2728,  2752,  2776,  2800,  2824,  2848,  2872,  3974,  2896,  2920,
+  2944,  2968,  2992,  3016,  3997,  4020,  4043,  1114,  1114,-32768,
+   773,   303,   303,   435,   435,   -80,   -80,   -80,   -80,  -152,
+  -151,   412,   412,   412,   412,  1866,   677,   678,   679,   680,
+   682,   684,   685,   686,   687,   689,   690,   691,   692,   693,
+   694,   697,   698,   699,   700,   701,   703,   704,   705,   586,
+   708,   710,   711,   712,   715,   714,-32768,    93,   716,   718,
+   717,-32768,-32768,-32768,-32768,-32768,-32768,  1114,   713,   719,
+   741,   745,  3040,   746,   743,  3064,   748,   750,   752,  1599,
+-32768,   126,  1114,   754,  2067,  3088,  3112,  1114,  2087,  2107,
+  3136,  3160,  3184,  3208,  3232,    -1,-32768,  1114,  1114,-32768,
+-32768,-32768,   583,    27,-32768,   590,  1114,  4066,  4089,  4112,
+-32768,-32768,-32768,  1114,-32768,   -74,   769,   580,   592,   757,
+   597,  3256,   761,   596,   602,-32768,-32768,-32768,  1114,-32768,
+-32768,-32768,  3280,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,  1114,-32768,-32768,-32768,-32768,
+-32768,-32768,  1114,  1114,  1114,   225,   225,  1114,   631,   603,
+   605,   606,   607,   613,   622,   623,   624,   625,   626,   628,
+   630,   632,   633,   634,   635,   636,   637,   638,   640,   641,
+   642,   643,   644,   645,   649,   650,   651,   652,   655,   795,
+-32768,   658,-32768,   656,  3304,    -1,-32768,   543,   543,   820,
+   543,-32768,   822,-32768,   543,   543,  1114,  1114,-32768,  1341,
+   659,   824,   826,   839,   352,   841,   842,   863,   864,   865,
+   866,   867,    98,  4135,  4158,-32768,-32768,  2127,    -1,    -1,
+    -1,  1364,-32768,   707,   720,   721,   722,   738,   739,   740,
+   747,   751,   771,   774,   775,   877,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1114,  1114,
+   543,  1114,   878,   543,     6,   285,   879,  3328,  3352,  3376,
+  3400,  6366,   777,   881,  1114,  1114,    -1,   884,   907,   755,
+   908,   913,   543,   543,   915,    -1,   943,   944,   543,   543,
+   945,   946,   947,   948,   949,   543,   391,   543,   950,   951,
+   952,   955,   956,-32768,   954,   359,   957,     1,    11,   963,
+   543,   973,   543,   975,   977,  1623,  1599,-32768,-32768,  1114,
+   543,   543,   543,-32768,   231,   543,   543,   543,   543,   543,
+   543,   543,  1114,  1114,  1114,   791,  -129,  -124,   139,-32768,
+  1779,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,-32768,  4181,  4204,   978,  3424,   146,   903,
+    99,   813,  1114,-32768,  1114,-32768,-32768,-32768,-32768,  1114,
+   818,  4227,  4250,   -55,   821,   819,   823,   825,   828,   829,
+   832,   833,   -16,   835,   836,   837,   852,   853,   854,   855,
+   856,   857,   838,-32768,-32768,-32768,-32768,-32768,   858,   859,
+   861,   868,   869,   862,   872,-32768,   873,-32768,-32768,-32768,
+    -1,-32768,   985,-32768,   988,-32768,-32768,  1114,  4273,   992,
+   999,  1027,  1114,  1114,  1028,  1029,  1030,  1037,  1038,  1065,
+  1075,  2147,  3448,  1885,   350,    -1,  1076,    -1,  1079,    -1,
+    -2,  1080,  4296,  4319,  4342,  4365,  4388,  4411,  4434,  4457,
+  4480,  4503,  4526,  4549,  1114,  1114,-32768,  1081,   543,   543,
+  1005,   543,   325,   609,   609,  1114,  1114,  1083,  1084,  1087,
+  3472,   212,  1036,  1089,  1114,   543,  1088,  1092,  1091,   934,
+  1093,   391,  1094,  1095,  1114,  1096,  1098,  1106,  1107,  1111,
+   391,  1114,  1114,  1114,   543,  1109,  1113,   391,  1114,  1116,
+  1146,  1153,  1114,   359,    62,-32768,-32768,  6366,  1114,-32768,
+-32768,-32768,  1383,  1404,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,   989,-32768,  1114,-32768,   991,   131,-32768,   144,-32768,
+   147,-32768,   -28,-32768,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  4572,  4595,   146,   149,
+-32768,   143,   990,  1085,  1004,  1172,   609,   609,  1114,  1462,
+    90,  1487,    92,  1510,    94,  1529,  1550,-32768,-32768,  1173,
+-32768,  1182,  1036,  1009,  4618,  1033,-32768,  1034,-32768,  1040,
+-32768,  1035,-32768,  1042,  3496,-32768,  1043,-32768,-32768,  1044,
+  1045,  3520,  4641,  3544,  1047,-32768,  1057,  1059,  4664,  1062,
+  1063,-32768,  4687,  1066,-32768,  4710,-32768,-32768,   350,  1952,
+-32768,  1114,  1114,  1114,  1192,  1061,   -42,-32768,  4733,  4756,
+  4779,  4802,  4825,  4848,  4871,  4894,  4917,  4940,  4963,  4986,
+  1114,  1114,  1117,   543,-32768,-32768,   543,  1114,  1202,-32768,
+  2392,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    23,
+-32768,  1720,  1201,   146,   391,  1210,  1114,  1236,   391,  1246,
+  1250,  1248,  1251,  1254,  1114,  1255,   543,  1256,  1257,  1114,
+  1253,  1264,  1114,  1268,  1269,  1103,  1114,-32768,  2167,  2187,
+  2207,-32768,   543,  1270,-32768,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1114,  2227,  2247,  1108,
+-32768,  1112,  1569,    87,  1104,  1438,  1274,  1114,-32768,  1115,
+  1118,  1120,  5009,-32768,  1121,-32768,  1122,-32768,-32768,-32768,
+  3568,-32768,  1133,-32768,-32768,  3592,  1134,-32768,  3616,  1136,
+  1139,-32768,  2267,  1277,  1279,    41,  1141,-32768,  5032,  5055,
+  5078,  5101,  5124,  5147,  5170,  5193,  5216,  3640,  3664,  3688,
+  1280,  1284,   543,   543,-32768,  1220,  -127,  5239,-32768,  1036,
+   391,   391,   391,   391,  1305,  1306,  1309,   391,  1310,  1311,
+  1312,  1314,  1315,-32768,-32768,-32768,-32768,   -28,   543,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,-32768,-32768,
+-32768,-32768,-32768,  1161,  1160,  1162,  1114,  1114,  1036,  1164,
+  1165,  1166,  1167,-32768,-32768,-32768,  1169,-32768,-32768,-32768,
+  1170,  1171,   -40,  1174,  5262,  5285,  5308,  5331,  5354,  5377,
+  5400,  5423,  5446,  1175,  1177,  1181,   543,  1262,  1338,  2287,
+  5469,  1750,   391,   391,  1339,  1347,   391,  1349,  1350,  1351,
+   543,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1184,  1187,-32768,-32768,  1114,  1114,  1190,
+  1191,-32768,-32768,  1203,  1204,  1189,-32768,  1199,  5492,  5515,
+  5538,  5561,  5584,  5607,  5630,  5653,  5676,   226,  6366,   235,
+  6366,   240,  6366,  1265,  1114,  1981,  1036,   391,   543,  1356,
+  1369,  1370,  1371,  1114,  1114,  1114,  1114,  1114,  1114,  1114,
+  1114,  1114,  1114,  1372,  1114,  1373,  1114,  1378,  1215,  5699,
+  1114,-32768,  1036,  1219,  1221,-32768,-32768,-32768,-32768,  5722,
+  5745,  5768,  5791,  5814,  5837,  3712,  3736,  3760,  6366,-32768,
+  6366,-32768,  6366,-32768,  1114,  1114,  2307,  2373,   391,   543,
+  1114,  1114,  1114,  1114,  1114,  1114,-32768,-32768,-32768,  5860,
+  2327,-32768,  1252,  1224,  1226,  5883,  5906,  5929,  5952,  5975,
+  5998,  1225,  1228,  1229,  1114,  1395,-32768,   543,   391,  1114,
+  1114,  1114,  1114,  1114,  1114,  1114,  1114,  1114,  2347,-32768,
+  1233,  1235,  6021,  6044,  6067,  6090,  6113,  6136,   241,  6366,
+   245,  6366,   246,  6366,  1397,   543,  1405,  1114,  1114,  1114,
+  1114,  1114,  1114,  1114,  1406,  1114,  1407,  1114,  1408,-32768,
+  1258,-32768,  6159,  6182,  6205,  3784,  3808,  3832,  6366,-32768,
+  6366,-32768,  6366,-32768,   543,  1114,  1114,  1114,-32768,-32768,
+-32768,  1259,  6228,  6251,  6274,  1244,  1261,  1272,   543,  1114,
+  1114,  1114,  1114,  1114,  1114,  1275,  6297,  6320,  6343,   251,
+  6366,   257,  6366,   259,  6366,   391,  1114,  1114,  1114,  1114,
+  1411,  1114,  1416,  1114,  1417,  1263,  3856,  3880,  3904,  6366,
+-32768,  6366,-32768,  6366,-32768,  1418,-32768,-32768,-32768,-32768,
+  1303,  1313,  1332,  1114,  1114,  1114,   279,  6366,   298,  6366,
+   302,  6366,  1114,  1419,  1114,  1420,  1114,  1439,  6366,-32768,
+  6366,-32768,  6366,-32768,  1446,  1485,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1534,-32768,
-   996,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1480,-32768,
+   941,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1536,  1538,
-  -281,   300,  1540,-32768,-32768,-32768,-32768,-32768,   469,  -912,
--32768,-32768,-32768,  1265,-32768,-32768,  -756,    -7,-32768,  1029,
-   -10,-32768,  -111,-32768,  -856,   775,   771,-32768,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1499,  1501,
+  -293,   234,  1502,-32768,-32768,-32768,-32768,-32768,   401,  -932,
+-32768,-32768,-32768,  1196,-32768,-32768,  -771,    -7,-32768,  1007,
+   -10,-32768,  -111,-32768,  -870,   736,   778,-32768,-32768
 };
 
 
-#define	YYLAST		6422
+#define	YYLAST		6531
 
 
 static const short yytable[] = {   102,
-   244,   418,   122,   163,   942,   673,   125,   297,   721,   924,
-   914,     7,   924,   991,   722,   925,   436,   436,   925,  1010,
-   292,   111,   844,   104,   280,   281,   280,   281,   280,   281,
-   147,   149,    -1,     8,   105,     9,   748,   891,   750,   749,
-   409,   751,   437,   437,  1082,   138,   900,   116,   139,   140,
-   723,   141,   118,   907,   106,   119,   546,   547,   548,   549,
-   550,   551,   552,   553,   554,   555,   556,   557,   199,   200,
-   107,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-   425,   426,   951,   210,   674,   280,   281,   143,   144,   108,
-   192,   193,   194,   195,   211,   298,   210,   752,   145,   210,
-   753,   146,  -228,  1015,  1102,  -227,   160,   246,   171,   161,
-   249,   250,   251,   252,   123,   254,   255,   124,   257,   258,
-   259,   126,   263,   990,   924,   520,  1145,   109,   521,   293,
-   925,   275,   110,   277,   112,   775,   164,   278,   279,   284,
-    10,    11,    12,    13,    14,    15,    16,    17,   113,   207,
-   208,   209,   446,   447,   296,   210,   299,   114,   301,   280,
-   281,   280,   281,   558,   306,   307,   308,   309,   310,   311,
-   312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
-   322,   323,   324,   325,   438,   442,  1011,   845,   329,   330,
-   331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
-   341,   342,   343,   344,  1016,   991,    75,    76,  1020,  1083,
-   117,   115,    77,    78,    79,    80,    81,    82,    83,    84,
-    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-    95,    96,    97,   280,   281,   280,   281,   280,   281,   280,
-   281,   280,   281,   280,   281,   386,   280,   281,   389,   282,
-   129,   283,   393,   545,   789,   419,   398,   399,   400,   798,
-   402,   403,   404,   405,   406,   407,   408,   502,   503,   412,
-   413,   776,   777,   778,   779,   280,   281,   420,   421,   422,
-   120,   428,   121,    40,    41,    42,    43,   645,    45,   151,
-   434,   127,   152,   153,   780,   781,   445,   546,   547,   548,
-   549,   550,   551,   552,   553,   554,   555,   556,   557,  1105,
-  1106,  1107,  1108,   128,    -7,    -7,  1112,    -7,   468,   469,
-    75,    76,   867,   130,   735,   736,    77,    78,    79,    80,
-    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-    91,    92,    93,    94,    95,    96,    97,   943,   944,   137,
-   196,   197,   198,   199,   200,   131,   201,   202,   203,   204,
-   205,   206,   207,   208,   209,   280,   281,   100,   210,   134,
-   135,   101,   136,   507,   260,   280,   281,   921,   280,   281,
-   771,  1165,  1166,   772,   132,  1169,   943,   922,   522,   945,
-   923,  1208,  1210,   527,  1209,  1211,  1212,  1309,   535,  1213,
-  1310,   133,   536,   537,   754,   326,   327,   207,   208,   209,
-   142,   540,  1311,   210,  1313,  1312,  1365,  1314,   544,  1366,
-   150,   154,    -7,    -7,    -7,    -7,    -7,    -7,    -7,    -7,
-   155,  1367,  1369,   578,  1368,  1370,  1219,   706,   707,   708,
-   709,   710,  1398,   675,  1400,  1399,   156,  1401,     1,     2,
-   580,     3,  1402,   288,   158,  1403,   291,   581,   582,   583,
-   157,   159,   584,   162,   165,   838,   636,   167,   166,   168,
-   169,   170,   172,   173,   868,   869,   171,   174,   175,   176,
-   245,   100,   247,   177,   178,   870,   179,  1259,   146,   180,
-   181,   182,   183,   184,   185,   186,   187,   620,   188,   189,
-   190,   191,   242,   248,   253,   256,   719,   637,   265,   264,
-   266,   628,   629,   289,   268,   270,   269,  1287,   271,   272,
-   273,   274,   303,   305,   304,   285,   286,    75,    76,   287,
-   649,   650,   651,    77,    78,    79,    80,    81,    82,    83,
+   250,   436,   148,   862,   121,   169,   739,   127,   963,   691,
+   309,   130,   216,   216,  1015,   945,   740,   945,  -236,  -235,
+     7,   946,   454,   946,   454,   304,  1035,   292,   293,   945,
+   153,   155,   292,   293,   104,   946,   105,   292,   293,   766,
+   912,  1127,   767,   106,   768,   177,  1107,   769,   455,   921,
+   455,   294,   741,   292,   293,   107,   928,    25,    26,    27,
+    28,    29,    30,    31,    32,   426,    33,   935,    35,    36,
+   108,    38,    39,   292,   293,   109,   338,   339,   213,   214,
+   215,   110,   292,   293,   216,   443,   444,   295,   692,    51,
+   198,   199,   200,   201,   217,   973,   563,   975,   310,   977,
+   111,   292,   293,    52,    53,   793,   112,   252,   253,   254,
+   255,   256,   257,  1040,   807,   260,   261,   262,   263,   128,
+   265,   266,   129,   268,   269,   270,   131,   274,   113,  1014,
+   123,  1170,   166,   124,   305,   167,   286,   114,   170,   289,
+   292,   293,   125,   290,   291,   296,   157,   115,   126,   158,
+   159,   292,   293,   816,   132,   149,   150,   292,   293,    60,
+   308,   133,   311,   437,   313,   134,   151,   122,   863,   152,
+   318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
+   328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
+   456,   135,   460,  1036,   341,   342,   343,   344,   345,   346,
+   347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+  1015,  1108,   136,  1041,    75,    76,   137,  1045,   292,   293,
+    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+    97,   794,   795,   796,   797,   138,   292,   293,   292,   293,
+   292,   293,   464,   465,   292,   293,   403,   139,   140,   406,
+   141,   520,   521,   410,   798,   799,   663,   415,   416,   417,
+   147,   419,   420,   421,   422,   423,   424,   425,   753,   754,
+   142,   430,   431,   116,   117,   118,   119,   292,   293,   438,
+   439,   440,   693,   446,   538,   292,   293,   539,   156,   942,
+   292,   293,   452,   292,   293,   160,   120,   770,   463,   161,
+   771,   964,   943,   789,   966,   944,   790,   964,   965,  1130,
+  1131,  1132,  1133,   162,   163,   164,  1137,    75,   885,   886,
+   486,   487,   165,    77,    78,    79,    80,    81,    82,    83,
     84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    96,    97,   210,   345,   346,   375,   347,   348,
-   349,   350,   351,   667,   668,   352,   670,   353,   441,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,   686,   684,
-   685,   210,   196,   197,   198,   199,   200,   695,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,   354,   355,   356,
-   210,   357,   380,   377,  1371,   676,   358,   196,   197,   198,
-   199,   200,   359,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,   360,   361,   731,   210,   362,   363,   396,   364,
-   365,   401,   366,   430,   367,   368,   982,   744,   745,   746,
-   369,   370,   371,   431,   433,   372,   755,   756,   757,   758,
-   759,   760,   761,   762,   763,   764,   765,   766,   373,   374,
-   472,   473,   378,   379,   381,   474,   495,   783,   475,   784,
-   476,   477,   478,   479,   785,   480,   481,   482,   483,   484,
-   485,    98,    99,   486,   487,   488,   489,   490,   100,   491,
-   492,   493,   101,   494,   496,   260,   497,   498,   499,   500,
-   501,   508,   504,   506,   913,   505,   509,   196,   197,   198,
-   199,   200,   817,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,   820,   510,   511,   210,   513,   825,   826,   514,
-   516,   538,   517,   518,   523,   573,   539,   839,   571,   841,
-   572,   843,   574,   196,   197,   198,   199,   200,   576,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,   577,   859,
-   860,   210,   117,   585,   872,   616,   586,   871,   873,   874,
-   875,   876,   587,   588,   589,   590,   591,   882,   592,   884,
-   593,   594,   595,   596,   597,   598,   599,   600,   601,   894,
-   617,   602,   623,   631,   603,   625,   901,   902,   903,   604,
-   471,   605,   606,   908,   607,   632,   608,   912,   196,   197,
-   198,   199,   200,   915,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,   609,   633,   634,   210,   610,   919,   635,
-   638,   611,   639,   612,   640,   641,   642,   643,   613,   928,
-   929,   930,   931,   932,   933,   934,   935,   936,   937,   938,
-   939,   644,   614,   666,   682,   671,   615,   677,   277,   618,
-   192,   193,   949,   714,   683,   687,   652,   688,   689,    75,
-    76,   654,   655,   656,   958,    77,    78,    79,    80,    81,
-    82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-    92,    93,    94,    95,    96,    97,   690,   916,   657,   262,
-   658,   659,   660,   661,   267,   662,   663,   664,   665,   691,
-   694,   696,   697,   985,   986,   987,   700,   917,   701,   702,
-   703,   704,   713,   747,   716,   715,   290,   717,   718,   720,
-   294,   295,  1004,  1005,   196,   197,   198,   199,   200,  1009,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,   724,
-   726,   728,   210,   729,   769,  1018,   774,   782,   786,   790,
-   818,   791,   792,  1026,   793,   794,   819,   795,  1031,   796,
-   797,  1034,   799,   822,   800,  1038,   801,   950,   802,   803,
-   804,   805,   806,   807,  1044,  1045,  1046,  1047,  1048,  1049,
-  1050,  1051,  1052,  1053,  1054,  1055,   808,   823,   824,   827,
-   809,   810,   811,  1063,   812,  1065,   813,   196,   197,   198,
-   199,   200,   814,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,   815,   868,   869,   210,   816,   828,   829,   830,
-   100,   831,   832,   833,   870,   840,   842,   146,   196,   197,
-   198,   199,   200,   846,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,   861,   865,   877,   210,  1104,   196,   197,
-   198,   199,   200,   878,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,   886,   879,   952,   210,  1120,  1121,  1122,
-  1123,  1124,  1125,  1126,  1127,  1128,   883,   887,   888,   889,
-   947,    75,    76,   890,  1135,  1136,  1137,    77,    78,    79,
+    94,    95,    96,    97,   168,   171,   172,   654,   202,   203,
+   204,   205,   206,   173,   207,   208,   209,   210,   211,   212,
+   213,   214,   215,   174,   143,   100,   216,   144,   145,   101,
+   146,   175,   271,   213,   214,   215,   177,   176,   178,   216,
+   525,  1190,  1191,   300,  1233,  1194,   303,  1234,   655,    40,
+    41,    42,    43,  1235,    45,   540,  1236,   251,  1237,  1334,
+   545,  1238,  1335,  1336,  1338,   553,  1337,  1339,   258,  1390,
+   554,   555,  1391,    -1,     8,  1392,     9,  1394,  1393,   558,
+  1395,   202,   203,   204,   205,   206,   562,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,  1244,  1423,   179,   216,
+  1424,   596,   205,   206,   694,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,   180,   259,  1425,   216,   598,  1426,
+  1427,   856,   287,  1428,   181,   599,   600,   601,   182,   183,
+   602,   887,   888,   724,   725,   726,   727,   728,   100,   184,
+   185,   186,   889,   187,   188,   152,   189,  1284,   202,   203,
+   204,   205,   206,   190,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,   191,   192,   638,   216,   301,   193,   275,
+   315,   194,   195,   196,   737,   197,   248,  1312,   264,   646,
+   647,    10,    11,    12,    13,    14,    15,    16,    17,   267,
+   276,   277,   281,   282,   317,    75,    76,   283,   667,   668,
+   669,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+    96,    97,   279,   284,   280,   285,   216,   297,   316,   298,
+   299,   685,   686,   357,   688,   358,   459,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,   704,   702,   703,   216,
+   359,   360,   387,   361,   362,   713,   363,   364,   365,   366,
+   367,    75,   885,   368,  1396,   369,   370,    77,    78,    79,
     80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-    90,    91,    92,    93,    94,    95,    96,    97,   196,   197,
-   198,   199,   200,   892,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,   893,   895,   896,   210,   897,   899,  1174,
-  1175,  1176,  1177,  1178,  1179,  1180,  1181,  1182,  1184,  1186,
-  1188,   898,    75,  1062,   905,  1191,  1192,   906,    77,    78,
-    79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-    89,    90,    91,    92,    93,    94,    95,    96,    97,   909,
-   910,   911,  1215,   918,  1218,   920,   946,   948,   959,   956,
-   957,  1225,  1226,  1227,  1228,  1229,  1230,  1231,  1232,  1233,
-  1234,   961,  1236,   962,  1238,   963,   988,   965,  1242,   964,
-  1243,   967,   989,   968,   969,   974,   196,   197,   198,   199,
-   200,   973,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,   975,  1255,  1256,   210,   977,  1014,   980,  1261,  1262,
-  1263,  1264,  1265,  1266,   978,    98,    99,  1006,  1017,  1019,
-  1021,  1022,   100,  1023,  1059,  1024,   101,  1025,  1027,  1029,
-  1030,  1032,  1284,  1033,  1035,  1036,  1037,  1288,  1289,  1290,
-  1291,  1292,  1293,  1295,  1297,  1299,  1043,  1058,  1061,  1064,
-   621,   622,  1066,   624,  1067,  1068,  1080,   626,   627,  1070,
-  1071,  1073,  1081,  1075,  1077,  1318,  1319,  1320,  1321,  1322,
-  1323,  1324,  1078,  1326,   953,  1328,    98,    99,  1084,  1097,
-  1098,  1101,  1109,   100,  1110,  1111,  1113,   101,  1114,  1115,
-  1116,  1117,  1132,  1338,  1339,  1340,   954,  1133,  1138,  1134,
-  1139,  1156,  1140,  1141,  1160,  1142,  1143,  1352,  1353,  1354,
-  1356,  1358,  1360,   669,  1157,   955,   672,  1144,  1146,  1161,
-  1167,  1158,  1168,  1170,  1372,  1373,  1374,  1375,  1171,  1377,
-  1172,  1379,  1189,  1190,  1060,   692,   693,  1193,  1194,  1197,
-  1214,   698,   699,  1195,  1196,  1221,  1222,  1198,   705,  1223,
-   712,  1393,  1395,  1397,  1224,   470,  1235,  1237,  1239,  1240,
-  1404,  1244,  1406,   725,  1408,   727,  1245,  1281,  1272,  1285,
-  1273,  1274,  1301,   732,   733,   734,  1282,  1283,   737,   738,
-   739,   740,   741,   742,   743,  1315,  1302,    75,    76,  1317,
-  1381,  1325,  1327,    77,    78,    79,    80,    81,    82,    83,
-    84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-    94,    95,    96,    97,   519,   196,   197,   198,   199,   200,
-  1329,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-  1348,  1330,  1344,   210,   730,  1349,  1350,   196,   197,   198,
-   199,   200,  1376,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,  1378,  1361,  1380,   210,   196,   197,   198,   199,
-   200,  1385,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,  1389,  1390,  1391,   210,   196,   197,   198,   199,   200,
-  1405,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-  1407,  1409,  1411,   210,   196,   197,   198,   199,   200,  1412,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,    62,
-   653,    65,   210,    66,   866,    67,   864,     0,   630,     0,
-     0,  1118,     0,     0,   881,     0,     0,     0,   885,     0,
-     0,   196,   197,   198,   199,   200,   443,   201,   202,   203,
-   204,   205,   206,   207,   208,   209,     0,   904,   100,   210,
-     0,     0,   101,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,    25,    26,    27,    28,    29,    30,    31,    32,
-     0,    33,     0,    35,    36,     0,    38,    39,    25,    26,
-    27,    28,    29,    30,    31,    32,     0,    33,     0,    35,
-    36,     0,    38,    39,    51,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    52,    53,
-    51,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    52,    53,     0,     0,     0,     0,
+    90,    91,    92,    93,    94,    95,    96,    97,   371,   372,
+   373,   374,   749,   375,   376,  1006,   377,   378,   379,   380,
+   381,   382,   383,   384,   385,   762,   763,   764,   386,   390,
+   389,   391,   398,   413,   773,   774,   775,   776,   777,   778,
+   779,   780,   781,   782,   783,   784,   418,   427,   448,   449,
+   451,   490,   491,   492,   493,   801,   494,   802,   495,   496,
+   497,   498,   803,   499,   500,   501,   502,   503,   504,    98,
+    99,   505,   506,   507,   508,   509,   100,   510,   511,   512,
+   101,   513,   514,   271,   515,   516,   517,   518,   519,   526,
+   522,   524,   934,   523,   527,   202,   203,   204,   205,   206,
+   835,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+   838,    -7,    -7,   216,    -7,   843,   844,   528,   532,   392,
+   589,   529,   531,   534,   556,   857,   535,   859,   536,   861,
+   541,   557,   590,   591,   592,   887,   888,   594,   595,   122,
+   603,   604,   100,   605,   606,   607,   889,   877,   878,   152,
+   488,   608,   891,   893,   895,   890,   892,   894,   896,   897,
+   609,   610,   611,   612,   613,   903,   614,   905,   615,   634,
+   616,   617,   618,   619,   620,   621,   622,   915,   623,   624,
+   625,   626,   627,   628,   922,   923,   924,   629,   630,   631,
+   632,   929,   393,   633,   636,   933,   641,   635,   643,   650,
+   651,   936,   652,   564,   565,   566,   567,   568,   569,   570,
+   571,   572,   573,   574,   575,   653,   940,   656,   657,    -7,
+    -7,    -7,    -7,    -7,    -7,    -7,    -7,   949,   950,   951,
+   952,   953,   954,   955,   956,   957,   958,   959,   960,   658,
+   659,   660,   661,   662,   672,     1,     2,   289,     3,   198,
+   199,   971,   684,   701,   689,   695,   705,   673,   674,   675,
+   202,   203,   204,   205,   206,   982,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,   676,   677,   678,   216,   706,
+   708,   273,   700,   707,   679,   709,   278,   712,   680,   202,
+   203,   204,   205,   206,   394,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,  1009,  1010,  1011,   216,   681,   302,
+   576,   682,   683,   306,   307,   714,   715,   718,   719,   720,
+   721,   722,   731,  1028,  1029,   732,   733,   734,   735,   736,
+  1033,   765,   738,   202,   203,   204,   205,   206,   742,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,   744,  1043,
+   746,   216,   747,   787,   792,   800,   804,  1051,   809,   808,
+   836,   810,  1056,   837,   811,  1059,   812,   840,   813,  1063,
+   814,   815,   395,   817,   841,   818,   819,   826,  1069,  1070,
+  1071,  1072,  1073,  1074,  1075,  1076,  1077,  1078,  1079,  1080,
+   820,   821,   822,   823,   824,   825,   827,   828,  1088,   829,
+  1090,   832,   842,   845,   846,   847,   830,   831,    75,    76,
+   833,   834,   848,   849,    77,    78,    79,    80,    81,    82,
+    83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+    93,    94,    95,    96,    97,   202,   203,   204,   205,   206,
+   850,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+   851,   858,  1129,   216,   860,   864,   883,   879,   898,   899,
+   900,   904,   910,   907,   908,   396,   909,   914,   911,   913,
+   917,   916,  1145,  1146,  1147,  1148,  1149,  1150,  1151,  1152,
+  1153,   918,   919,   920,   926,   927,    75,    76,   930,  1160,
+  1161,  1162,    77,    78,    79,    80,    81,    82,    83,    84,
+    85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+    95,    96,    97,   202,   203,   204,   205,   206,   931,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,   932,   939,
+   967,   216,   941,   968,  1199,  1200,  1201,  1202,  1203,  1204,
+  1205,  1206,  1207,  1209,  1211,  1213,   969,   970,   983,   980,
+  1216,  1217,   202,   203,   204,   205,   206,   981,   207,   208,
+   209,   210,   211,   212,   213,   214,   215,  1012,  1030,   100,
+   216,   985,   986,   101,   988,  1034,  1039,  1240,   987,  1243,
+   989,   991,  1042,   992,   993,   997,  1250,  1251,  1252,  1253,
+  1254,  1255,  1256,  1257,  1258,  1259,   998,  1261,   999,  1263,
+  1001,  1013,  1002,  1267,  1004,  1268,   202,   203,   204,   205,
+   206,  1044,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,  1046,  1047,  1048,   216,  1057,  1049,  1280,  1281,  1050,
+  1052,  1054,  1055,  1286,  1287,  1288,  1289,  1290,  1291,  1058,
+    98,    99,  1060,  1061,  1062,  1068,  1086,   100,  1083,  1089,
+  1084,   101,  1105,  1091,  1106,  1122,  1092,  1309,  1093,  1123,
+  1095,  1096,  1313,  1314,  1315,  1316,  1317,  1318,  1320,  1322,
+  1324,  1098,  1126,  1100,  1102,   639,   640,  1103,   642,  1109,
+  1134,  1135,   644,   645,  1136,  1138,  1139,  1140,  1141,  1142,
+  1343,  1344,  1345,  1346,  1347,  1348,  1349,   397,  1351,  1157,
+  1353,  1158,  1163,  1164,  1159,  1165,  1166,  1167,  1168,  1169,
+  1185,  1186,  1171,  1239,  1192,  1181,   649,  1182,  1363,  1364,
+  1365,  1183,  1193,  1195,  1196,  1214,  1197,  1215,  1218,  1219,
+  1222,  1246,  1377,  1378,  1379,  1381,  1383,  1385,   687,   670,
+  1223,   690,  1220,  1221,  1247,  1248,  1249,  1260,  1262,  1397,
+  1398,  1399,  1400,  1264,  1402,  1265,  1404,  1269,   937,  1270,
+   710,   711,  1298,  1297,  1299,  1306,   716,   717,  1307,  1308,
+  1310,  1326,  1340,   723,  1327,   730,  1418,  1420,  1422,   938,
+  1342,  1350,  1352,  1354,  1373,  1429,  1401,  1431,   743,  1433,
+   745,  1403,  1405,  1410,  1430,  1432,  1355,  1369,   750,   751,
+   752,  1374,  1406,   755,   756,   757,   758,   759,   760,   761,
+    75,  1087,  1375,  1386,  1434,  1436,    77,    78,    79,    80,
+    81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+    91,    92,    93,    94,    95,    96,    97,   972,   202,   203,
+   204,   205,   206,  1414,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,  1415,  1437,    62,   216,   202,   203,   204,
+   205,   206,   974,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,  1416,   671,    65,   216,    66,    67,  1143,   461,
+   202,   203,   204,   205,   206,   976,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,   882,     0,     0,   216,   202,
+   203,   204,   205,   206,   978,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,   648,     0,     0,   216,     0,     0,
+   202,   203,   204,   205,   206,   979,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,   884,
+     0,     0,     0,     0,  1085,     0,     0,     0,     0,   902,
+     0,     0,     0,   906,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    98,    99,     0,     0,     0,     0,
+     0,   100,   925,     0,     0,   101,   537,     0,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+   748,     0,     0,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,     0,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,     0,     0,     0,
+     0,  1031,     0,     0,  1032,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,     0,     0,   202,
+   203,   204,   205,   206,  1053,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+  1067,    25,    26,    27,    28,    29,    30,    31,    32,     0,
+    33,     0,    35,    36,     0,    38,    39,     0,     0,     0,
     25,    26,    27,    28,    29,    30,    31,    32,     0,    33,
-     0,    35,    36,     0,    38,    39,     0,     0,     0,     0,
-     0,     0,     0,  1007,     0,     0,  1008,     0,     0,     0,
-     0,     0,    51,     0,    60,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    52,    53,     0,     0,
-    60,     0,     0,  1028,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,    -3,    22,     0,     0,    23,  1258,  1042,
-     0,     0,     0,   423,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,   427,
-     0,     0,   210,    24,    25,    26,    27,    28,    29,    30,
-    31,    32,    60,    33,    34,    35,    36,    37,    38,    39,
-     0,     0,     0,    40,    41,    42,    43,    44,    45,     0,
-    46,    47,    48,    49,    50,     0,    51,     0,     0,     0,
-     0,     0,     0,     0,   212,     0,     0,     0,  1099,  1100,
-    52,    53,     0,     0,     0,     0,     0,    54,    55,    56,
-    57,    58,    59,     0,  1013,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,  1119,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,     0,     0,
-   213,   214,   215,     0,     0,     0,    60,     0,   216,   217,
-   218,   219,   220,   221,   222,   223,   224,   225,     0,     0,
-     0,     0,  1159,     0,     0,     0,   226,   227,   228,   229,
-   230,   231,   232,   233,   234,   235,  1173,   236,   237,   238,
-   239,   240,   241,  1164,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,     0,     0,     0,   196,
-   197,   198,   199,   200,  1220,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   836,     0,     0,   837,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   983,     0,     0,
-   984,     0,     0,     0,     0,  1260,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1216,     0,
-     0,  1217,     0,  1286,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,     0,     0,     0,   383,
-     0,  1316,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,     0,     0,     0,   388,     0,     0,
-  1337,     0,     0,     0,     0,     0,     0,     0,     0,   196,
-   197,   198,   199,   200,  1351,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   390,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   524,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   528,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   529,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   648,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,   834,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1039,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1040,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1041,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1056,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1057,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1079,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1162,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1257,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1271,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,   196,
-   197,   198,   199,   200,  1300,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   410,   328,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   328,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   382,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   384,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   385,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   387,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   391,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   392,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   397,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   432,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   435,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   448,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   449,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   450,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   451,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   452,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   453,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   454,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   455,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   456,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   457,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   459,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   460,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   461,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   462,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   463,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   464,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   512,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   515,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   525,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   526,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   530,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   531,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   532,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   533,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   534,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   575,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   579,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   619,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   678,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   679,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   680,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   681,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   770,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,   835,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,   880,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,   966,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-   970,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,   972,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,  1072,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,  1074,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,  1076,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-  1094,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,  1095,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,  1096,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,  1252,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,  1253,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-  1254,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,  1334,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,     0,  1335,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,     0,  1336,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,     0,  1382,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,     0,
-  1383,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,     0,  1384,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   410,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-   411,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,   458,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,   465,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,   466,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,   467,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,   541,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,   542,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   543,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,   646,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   647,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-   767,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,   768,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,   787,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,   788,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,   821,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,   847,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,   848,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   849,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,   850,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   851,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-   852,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,   853,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,   854,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,   855,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,   856,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,   857,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,   858,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   940,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,   941,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   960,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-   971,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,   976,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,   979,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,   981,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,   992,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,   993,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,   994,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,   995,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,   996,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,   997,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-   998,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,   999,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1000,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1001,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1002,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1003,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1069,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1085,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1086,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1087,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1088,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1089,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1090,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1091,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1092,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1093,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1103,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1147,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1148,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1149,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1150,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1151,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1152,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1153,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1154,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1155,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1163,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1199,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1200,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1201,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1202,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1203,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1204,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1205,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1206,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1207,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1241,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1246,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1247,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1248,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1249,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1250,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1251,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1270,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1275,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1276,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1277,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1278,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1279,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1280,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1303,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1304,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1305,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1306,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1307,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210,     0,     0,     0,  1308,   196,   197,   198,   199,
-   200,     0,   201,   202,   203,   204,   326,   327,   207,   208,
-   209,     0,     0,     0,   210,     0,     0,     0,  1331,   196,
-   197,   198,   199,   200,     0,   201,   202,   203,   204,   326,
-   327,   207,   208,   209,     0,     0,     0,   210,     0,     0,
-     0,  1332,   196,   197,   198,   199,   200,     0,   201,   202,
-   203,   204,   326,   327,   207,   208,   209,     0,     0,     0,
-   210,     0,     0,     0,  1333,   196,   197,   198,   199,   200,
-     0,   201,   202,   203,   204,   326,   327,   207,   208,   209,
-     0,     0,     0,   210,     0,     0,     0,  1345,   196,   197,
-   198,   199,   200,     0,   201,   202,   203,   204,   326,   327,
-   207,   208,   209,     0,     0,     0,   210,     0,     0,     0,
-  1346,   196,   197,   198,   199,   200,     0,   201,   202,   203,
-   204,   326,   327,   207,   208,   209,     0,     0,     0,   210,
-     0,     0,     0,  1347,   196,   197,   198,   199,   200,     0,
-   201,   202,   203,   204,   326,   327,   207,   208,   209,     0,
-     0,     0,   210,     0,     0,     0,  1362,   196,   197,   198,
-   199,   200,     0,   201,   202,   203,   204,   326,   327,   207,
-   208,   209,     0,     0,     0,   210,     0,     0,     0,  1363,
-   196,   197,   198,   199,   200,     0,   201,   202,   203,   204,
-   326,   327,   207,   208,   209,     0,     0,     0,   210,     0,
-     0,     0,  1364,   196,   197,   198,   199,   200,     0,   201,
-   202,   203,   204,   326,   327,   207,   208,   209,     0,     0,
-     0,   210
+     0,    35,    36,    51,    38,    39,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    52,    53,     0,
+     0,     0,    51,   564,   565,   566,   567,   568,   569,   570,
+   571,   572,   573,   574,   575,  1038,    52,    53,     0,     0,
+  1124,  1125,     0,     0,     0,     0,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,  1189,  1144,     0,     0,     0,
+     0,     0,     0,    60,     0,     0,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,    60,     0,   216,     0,     0,     0,     0,     0,
+     0,     0,    -3,    22,     0,     0,    23,     0,     0,     0,
+     0,     0,   441,     0,  1184,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,  1198,     0,
+   772,   445,    24,    25,    26,    27,    28,    29,    30,    31,
+    32,     0,    33,    34,    35,    36,    37,    38,    39,     0,
+     0,     0,    40,    41,    42,    43,    44,    45,     0,    46,
+    47,    48,    49,    50,     0,    51,     0,     0,     0,     0,
+     0,     0,     0,     0,   218,     0,  1245,     0,     0,    52,
+    53,     0,     0,     0,   489,     0,    54,    55,    56,    57,
+    58,    59,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,  1285,     0,   216,
+   219,   220,   221,   854,     0,    60,   855,     0,   222,   223,
+   224,   225,   226,   227,   228,   229,   230,   231,     0,     0,
+     0,     0,     0,     0,     0,  1311,   232,   233,   234,   235,
+   236,   237,   238,   239,   240,   241,     0,   242,   243,   244,
+   245,   246,   247,     0,     0,     0,     0,     0,   202,   203,
+   204,   205,   206,  1341,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1007,     0,     0,  1008,     0,     0,     0,   202,   203,   204,
+   205,   206,  1362,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,  1376,     0,     0,  1241,
+     0,     0,  1242,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   400,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   405,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   407,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   542,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   546,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   547,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   666,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,   852,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1064,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1065,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1066,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1081,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1082,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1104,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1187,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1282,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,   202,   203,   204,   205,   206,  1296,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,  1283,     0,     0,     0,     0,  1325,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+   428,   340,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   340,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   399,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   401,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   402,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   404,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   408,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   409,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   414,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   450,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   453,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   466,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   467,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   468,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   469,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   470,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   471,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   472,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   473,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   474,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   475,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   477,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   478,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   479,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   480,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   481,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   482,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   530,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   533,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   543,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   544,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   548,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   549,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   550,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   551,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   552,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   593,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   597,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   637,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   696,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   697,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   698,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   699,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   788,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,   853,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,   901,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,   990,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,   994,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,   996,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,  1097,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,  1099,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,  1101,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,  1119,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,  1120,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,  1121,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,  1277,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,  1278,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,  1279,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,  1359,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,     0,  1360,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+     0,  1361,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,     0,  1407,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,     0,  1408,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,     0,  1409,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,   428,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,   429,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,   476,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,   483,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,   484,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,   485,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,   559,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,   560,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+   561,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,   664,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,   665,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,   785,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,   786,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,   805,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,   806,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,   839,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,   865,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,   866,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+   867,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,   868,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,   869,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,   870,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,   871,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,   872,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,   873,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,   874,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,   875,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,   876,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+   961,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,   962,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,   984,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,   995,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1000,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1003,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1005,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1016,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1017,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1018,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1019,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1020,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1021,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1022,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1023,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1024,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1025,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1026,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1027,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1094,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1110,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1111,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1112,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1113,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1114,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1115,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1116,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1117,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1118,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1128,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1172,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1173,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1174,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1175,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1176,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1177,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1178,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1179,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1180,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1188,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1224,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1225,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1226,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1227,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1228,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1229,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1230,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1231,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1232,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1266,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1271,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1272,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1273,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1274,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1275,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1276,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1295,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1300,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1301,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1302,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1303,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1304,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1305,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1328,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1329,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1330,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1331,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1332,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216,     0,     0,     0,  1333,   202,   203,   204,   205,   206,
+     0,   207,   208,   209,   210,   338,   339,   213,   214,   215,
+     0,     0,     0,   216,     0,     0,     0,  1356,   202,   203,
+   204,   205,   206,     0,   207,   208,   209,   210,   338,   339,
+   213,   214,   215,     0,     0,     0,   216,     0,     0,     0,
+  1357,   202,   203,   204,   205,   206,     0,   207,   208,   209,
+   210,   338,   339,   213,   214,   215,     0,     0,     0,   216,
+     0,     0,     0,  1358,   202,   203,   204,   205,   206,     0,
+   207,   208,   209,   210,   338,   339,   213,   214,   215,     0,
+     0,     0,   216,     0,     0,     0,  1370,   202,   203,   204,
+   205,   206,     0,   207,   208,   209,   210,   338,   339,   213,
+   214,   215,     0,     0,     0,   216,     0,     0,     0,  1371,
+   202,   203,   204,   205,   206,     0,   207,   208,   209,   210,
+   338,   339,   213,   214,   215,     0,     0,     0,   216,     0,
+     0,     0,  1372,   202,   203,   204,   205,   206,     0,   207,
+   208,   209,   210,   338,   339,   213,   214,   215,     0,     0,
+     0,   216,     0,     0,     0,  1387,   202,   203,   204,   205,
+   206,     0,   207,   208,   209,   210,   338,   339,   213,   214,
+   215,     0,     0,     0,   216,     0,     0,     0,  1388,   202,
+   203,   204,   205,   206,     0,   207,   208,   209,   210,   338,
+   339,   213,   214,   215,     0,     0,     0,   216,     0,     0,
+     0,  1389,   202,   203,   204,   205,   206,     0,   207,   208,
+   209,   210,   338,   339,   213,   214,   215,     0,     0,     0,
+   216
 };
 
 static const short yycheck[] = {     7,
-   112,   283,    56,    35,   861,     4,    56,    80,     6,    58,
-     6,   138,    58,   926,     6,    64,     4,     4,    64,     4,
-    62,   168,     6,     6,   157,   158,   157,   158,   157,   158,
-    41,    42,     0,     1,     7,     3,   169,   794,   169,   172,
-   169,   172,    30,    30,     6,    31,   803,     5,    34,    35,
-    42,    37,   168,   810,     6,   171,    65,    66,    67,    68,
-    69,    70,    71,    72,    73,    74,    75,    76,   150,   151,
-     6,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     6,     7,     6,   165,    83,   157,   158,   157,   158,     6,
-    98,    99,   100,   101,   102,   168,   165,   169,   168,   165,
-   172,   171,   171,   960,   169,   171,    31,   115,   173,    34,
-   118,   119,   120,   121,   168,   123,   124,   171,   126,   127,
-   128,   171,   130,   172,    58,   169,   172,     6,   172,   171,
-    64,   142,     6,   144,   168,     7,   168,   145,   146,   150,
-   108,   109,   110,   111,   112,   113,   114,   115,   168,   159,
-   160,   161,   166,   167,   162,   165,   164,     6,   166,   157,
-   158,   157,   158,   172,   172,   173,   174,   175,   176,   177,
+   112,   295,     4,     6,     5,    35,     6,    56,   879,     4,
+    80,    56,   165,   165,   947,    58,     6,    58,   171,   171,
+   138,    64,     4,    64,     4,    62,     4,   157,   158,    58,
+    41,    42,   157,   158,     6,    64,     7,   157,   158,   169,
+   812,   169,   172,     6,   169,   173,     6,   172,    30,   821,
+    30,   171,    42,   157,   158,     6,   828,    31,    32,    33,
+    34,    35,    36,    37,    38,   169,    40,     6,    42,    43,
+     6,    45,    46,   157,   158,     6,   157,   158,   159,   160,
+   161,     6,   157,   158,   165,     6,     7,   171,    83,    63,
+    98,    99,   100,   101,   102,     6,   171,     6,   168,     6,
+   168,   157,   158,    77,    78,     7,   168,   115,   116,   117,
+   118,   119,   120,   984,   170,   123,   124,   125,   126,   168,
+   128,   129,   171,   131,   132,   133,   171,   135,   168,   172,
+   168,   172,    31,   171,   171,    34,   147,     6,   168,   150,
+   157,   158,   168,   151,   152,   156,    31,     7,   168,    34,
+    35,   157,   158,   170,   168,   157,   158,   157,   158,   133,
+   168,   168,   170,   169,   172,    39,   168,   168,   171,   171,
    178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-   188,   189,   190,   191,   172,   172,   171,   171,   196,   197,
-   198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-   208,   209,   210,   211,   961,  1118,     3,     4,   965,   171,
-   168,     7,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-    27,    28,    29,   157,   158,   157,   158,   157,   158,   157,
-   158,   157,   158,   157,   158,   253,   157,   158,   256,   171,
-    39,   171,   260,   171,   170,   169,   264,   265,   266,   170,
-   268,   269,   270,   271,   272,   273,   274,   169,   170,   280,
-   281,   143,   144,   145,   146,   157,   158,   285,   286,   287,
-   168,   292,   168,    50,    51,    52,    53,   169,    55,    31,
-   298,   168,    34,    35,   166,   167,   304,    65,    66,    67,
-    68,    69,    70,    71,    72,    73,    74,    75,    76,  1066,
-  1067,  1068,  1069,   168,     0,     1,  1073,     3,   326,   327,
-     3,     4,     5,   168,    48,    49,     9,    10,    11,    12,
-    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-    23,    24,    25,    26,    27,    28,    29,   169,   170,    37,
-   147,   148,   149,   150,   151,    35,   153,   154,   155,   156,
-   157,   158,   159,   160,   161,   157,   158,   164,   165,    34,
-    35,   168,    37,   381,   171,   157,   158,   169,   157,   158,
-   168,  1138,  1139,   171,    35,  1142,   169,   169,   396,   172,
-   169,   169,   169,   401,   172,   172,   169,   169,   409,   172,
-   172,    35,   410,   411,   172,   157,   158,   159,   160,   161,
-   171,   419,   169,   165,   169,   172,   169,   172,   426,   172,
-   171,   171,   108,   109,   110,   111,   112,   113,   114,   115,
-     5,   169,   169,   441,   172,   172,  1193,    93,    94,    95,
-    96,    97,   169,     8,   169,   172,    35,   172,   134,   135,
-   458,   137,   169,   154,     6,   172,   157,   465,   466,   467,
-   171,     5,   470,   168,   171,   747,     6,   171,   168,     6,
-     5,    35,   168,   168,   157,   158,   173,   168,   168,   168,
-     5,   164,     6,   168,   168,   168,   168,  1244,   171,   168,
-   168,   168,   168,   168,   168,   168,   168,   508,   168,   168,
-   168,   168,   168,     5,   168,   168,   618,    47,   168,   171,
-   168,   519,   520,     6,   171,   168,   171,  1274,   168,   168,
-   168,   168,     6,     4,   168,   171,   171,     3,     4,   171,
-   541,   542,   543,     9,    10,    11,    12,    13,    14,    15,
+   188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+   172,   168,   172,   171,   202,   203,   204,   205,   206,   207,
+   208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+  1143,   171,    35,   985,     3,     4,    35,   989,   157,   158,
+     9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+    19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+    29,   143,   144,   145,   146,    35,   157,   158,   157,   158,
+   157,   158,   166,   167,   157,   158,   264,    34,    35,   267,
+    37,   169,   170,   271,   166,   167,   169,   275,   276,   277,
+   171,   279,   280,   281,   282,   283,   284,   285,    48,    49,
+    37,   292,   293,   143,   144,   145,   146,   157,   158,   297,
+   298,   299,     8,   304,   169,   157,   158,   172,   171,   169,
+   157,   158,   310,   157,   158,   171,   166,   169,   316,     5,
+   172,   169,   169,   168,   172,   169,   171,   169,   170,  1091,
+  1092,  1093,  1094,    35,   171,     6,  1098,     3,     4,     5,
+   338,   339,     5,     9,    10,    11,    12,    13,    14,    15,
     16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,   165,   168,   168,     5,   168,   168,
-   168,   168,   168,   571,   572,   168,   574,   168,     8,   153,
-   154,   155,   156,   157,   158,   159,   160,   161,   589,   587,
-   588,   165,   147,   148,   149,   150,   151,   598,   153,   154,
-   155,   156,   157,   158,   159,   160,   161,   168,   168,   168,
-   165,   168,     6,   169,  1361,   170,   168,   147,   148,   149,
-   150,   151,   168,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,   168,   168,   632,   165,   168,   168,     7,   168,
-   168,     7,   168,     7,   168,   168,   918,   645,   646,   647,
-   168,   168,   168,     7,    81,   168,   654,   655,   656,   657,
-   658,   659,   660,   661,   662,   663,   664,   665,   168,   168,
-     5,     5,   170,   169,   169,     5,   126,   675,     5,   677,
-     5,     5,     5,     5,   682,     5,     5,     5,     5,     5,
-     5,   157,   158,     5,     5,     5,     5,     5,   164,     5,
-     5,     5,   168,     5,     5,   171,     5,     5,     5,     3,
-     5,     7,     5,     5,   816,     6,     6,   147,   148,   149,
-   150,   151,   723,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,   730,     7,     7,   165,     7,   735,   736,     6,
-     6,   172,     7,     7,     7,     7,   172,   748,   171,   750,
-   171,   752,   168,   147,   148,   149,   150,   151,     7,   153,
-   154,   155,   156,   157,   158,   159,   160,   161,   173,   767,
-   768,   165,   168,   140,   775,     5,   169,   775,   776,   777,
-   778,   779,   169,   169,   169,   169,   169,   785,   169,   787,
-   169,   169,   169,   169,   169,   169,   169,   169,   169,   797,
-   170,   169,     7,     6,   169,     7,   804,   805,   806,   169,
-   139,   169,   169,   811,   169,   171,   169,   815,   147,   148,
-   149,   150,   151,   821,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,   169,     7,     7,   165,   169,   836,     7,
-     7,   169,     7,   169,     7,     7,     7,     7,   169,   847,
-   848,   849,   850,   851,   852,   853,   854,   855,   856,   857,
-   858,     7,   169,     6,   136,     7,   169,     7,   869,   169,
-   868,   869,   870,     5,     3,     3,     6,     3,   159,     3,
-     4,   168,   168,   168,   882,     9,    10,    11,    12,    13,
-    14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-    24,    25,    26,    27,    28,    29,     3,     6,   168,   129,
-   168,   168,   168,   168,   134,   168,   168,   168,   168,     3,
-     3,     3,     3,   921,   922,   923,     3,     6,     3,     3,
-     3,     3,     3,   171,     3,     5,   156,     3,     6,     6,
-   160,   161,   940,   941,   147,   148,   149,   150,   151,   947,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,     6,
-     6,     6,   165,     6,     6,   963,    82,   173,   169,   169,
-     6,   170,   169,   971,   170,   169,     6,   170,   976,   169,
-   169,   979,   169,     6,   170,   983,   170,     6,   169,   169,
-   169,   169,   169,   169,   992,   993,   994,   995,   996,   997,
-   998,   999,  1000,  1001,  1002,  1003,   170,     6,     6,     6,
-   169,   169,   169,  1011,   169,  1013,   169,   147,   148,   149,
-   150,   151,   170,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,   169,   157,   158,   165,   169,     6,     6,     6,
-   164,     6,     6,     6,   168,     6,     6,   171,   147,   148,
-   149,   150,   151,     6,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,     7,    82,     6,   165,  1065,   147,   148,
-   149,   150,   151,     6,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,     6,     4,     6,   165,  1085,  1086,  1087,
-  1088,  1089,  1090,  1091,  1092,  1093,     3,     3,     6,   159,
-    79,     3,     4,     6,  1102,  1103,  1104,     9,    10,    11,
+    26,    27,    28,    29,   168,   171,   168,     6,   147,   148,
+   149,   150,   151,   171,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,     6,    31,   164,   165,    34,    35,   168,
+    37,     5,   171,   159,   160,   161,   173,    35,   168,   165,
+   398,  1163,  1164,   160,   169,  1167,   163,   172,    47,    50,
+    51,    52,    53,   169,    55,   413,   172,     5,   169,   169,
+   418,   172,   172,   169,   169,   426,   172,   172,     6,   169,
+   428,   429,   172,     0,     1,   169,     3,   169,   172,   437,
+   172,   147,   148,   149,   150,   151,   444,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,  1218,   169,   168,   165,
+   172,   459,   150,   151,   170,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   168,     5,   169,   165,   476,   172,
+   169,   765,   173,   172,   168,   483,   484,   485,   168,   168,
+   488,   157,   158,    93,    94,    95,    96,    97,   164,   168,
+   168,   168,   168,   168,   168,   171,   168,  1269,   147,   148,
+   149,   150,   151,   168,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   168,   168,   526,   165,     6,   168,   171,
+     6,   168,   168,   168,   636,   168,   168,  1299,   168,   537,
+   538,   108,   109,   110,   111,   112,   113,   114,   115,   168,
+   168,   168,   168,   168,     4,     3,     4,   168,   559,   560,
+   561,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+    18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+    28,    29,   171,   168,   171,   168,   165,   171,   168,   171,
+   171,   589,   590,   168,   592,   168,     8,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,   607,   605,   606,   165,
+   168,   168,     5,   168,   168,   616,   168,   168,   168,   168,
+   168,     3,     4,   168,  1386,   168,   168,     9,    10,    11,
     12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-    22,    23,    24,    25,    26,    27,    28,    29,   147,   148,
-   149,   150,   151,     6,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,     3,     6,     3,   165,     6,     3,  1147,
-  1148,  1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157,
-  1158,     6,     3,     4,     6,  1163,  1164,     3,     9,    10,
-    11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,    25,    26,    27,    28,    29,     3,
-     3,     6,  1190,   171,  1192,   172,   171,     6,   170,     7,
-     6,  1199,  1200,  1201,  1202,  1203,  1204,  1205,  1206,  1207,
-  1208,   169,  1210,   169,  1212,   169,     6,   169,  1216,   170,
-  1218,   169,   171,   170,   170,   170,   147,   148,   149,   150,
-   151,   169,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,   170,  1240,  1241,   165,   169,     6,   169,  1246,  1247,
-  1248,  1249,  1250,  1251,   170,   157,   158,    82,     3,     6,
-     6,     3,   164,     6,   169,     6,   168,     6,     6,     6,
-     6,     3,  1270,     6,     5,     5,   172,  1275,  1276,  1277,
-  1278,  1279,  1280,  1281,  1282,  1283,     6,   171,   173,     6,
-   510,   511,   169,   513,   169,   169,     6,   517,   518,   170,
-   170,   169,     6,   170,   169,  1303,  1304,  1305,  1306,  1307,
-  1308,  1309,   169,  1311,     6,  1313,   157,   158,   169,     6,
-     6,    83,     6,   164,     6,     6,     6,   168,     6,     6,
-     5,     5,   169,  1331,  1332,  1333,     6,   172,   169,   173,
-   169,   171,   170,   170,    79,   169,   169,  1345,  1346,  1347,
-  1348,  1349,  1350,   573,   171,     6,   576,   169,   169,     4,
-     6,   171,     6,     5,  1362,  1363,  1364,  1365,     5,  1367,
-     6,  1369,   172,   171,     6,   595,   596,   169,   169,   172,
-    79,   601,   602,   170,   170,     6,     6,   172,   608,     6,
-   610,  1389,  1390,  1391,     6,     8,     6,     6,     6,   171,
-  1398,   169,  1400,   623,  1402,   625,   169,   171,   142,     6,
-   169,   169,   169,   633,   634,   635,   171,   171,   638,   639,
-   640,   641,   642,   643,   644,     6,   170,     3,     4,     6,
-   170,     6,     6,     9,    10,    11,    12,    13,    14,    15,
-    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-    26,    27,    28,    29,     8,   147,   148,   149,   150,   151,
+    22,    23,    24,    25,    26,    27,    28,    29,   168,   168,
+   168,   168,   650,   168,   168,   939,   168,   168,   168,   168,
+   168,   168,   168,   168,   168,   663,   664,   665,   168,   170,
+   169,   169,   169,     7,   672,   673,   674,   675,   676,   677,
+   678,   679,   680,   681,   682,   683,     7,     4,     7,     7,
+    81,     5,     5,     5,     5,   693,     5,   695,     5,     5,
+     5,     5,   700,     5,     5,     5,     5,     5,     5,   157,
+   158,     5,     5,     5,     5,     5,   164,     5,     5,     5,
+   168,   126,     5,   171,     5,     5,     5,     3,     5,     7,
+     5,     5,   834,     6,     6,   147,   148,   149,   150,   151,
+   741,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+   748,     0,     1,   165,     3,   753,   754,     7,     6,     6,
+   171,     7,     7,     6,   172,   766,     7,   768,     7,   770,
+     7,   172,   171,     7,   168,   157,   158,     7,   173,   168,
+   140,   169,   164,   169,   169,   169,   168,   785,   786,   171,
+     8,   169,   793,   794,   795,   793,   794,   795,   796,   797,
+   169,   169,   169,   169,   169,   803,   169,   805,   169,     5,
+   169,   169,   169,   169,   169,   169,   169,   815,   169,   169,
+   169,   169,   169,   169,   822,   823,   824,   169,   169,   169,
+   169,   829,     6,   169,   169,   833,     7,   170,     7,   171,
+     7,   839,     7,    65,    66,    67,    68,    69,    70,    71,
+    72,    73,    74,    75,    76,     7,   854,     7,     7,   108,
+   109,   110,   111,   112,   113,   114,   115,   865,   866,   867,
+   868,   869,   870,   871,   872,   873,   874,   875,   876,     7,
+     7,     7,     7,     7,   168,   134,   135,   888,   137,   887,
+   888,   889,     6,     3,     7,     7,     3,   168,   168,   168,
+   147,   148,   149,   150,   151,   903,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,   168,   168,   168,   165,     3,
+     3,   134,   136,   159,   168,     3,   139,     3,   168,   147,
+   148,   149,   150,   151,     6,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   942,   943,   944,   165,   168,   162,
+   172,   168,   168,   166,   167,     3,     3,     3,     3,     3,
+     3,     3,     3,   961,   962,     5,     5,     3,     3,     6,
+   968,   171,     6,   147,   148,   149,   150,   151,     6,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,     6,   987,
+     6,   165,     6,     6,    82,   173,   169,   995,   170,   169,
+     6,   169,  1000,     6,   170,  1003,   169,     6,   170,  1007,
+   169,   169,     6,   169,     6,   170,   170,   170,  1016,  1017,
+  1018,  1019,  1020,  1021,  1022,  1023,  1024,  1025,  1026,  1027,
+   169,   169,   169,   169,   169,   169,   169,   169,  1036,   169,
+  1038,   170,     6,     6,     6,     6,   169,   169,     3,     4,
+   169,   169,     6,     6,     9,    10,    11,    12,    13,    14,
+    15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+    25,    26,    27,    28,    29,   147,   148,   149,   150,   151,
      6,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-   171,   169,   169,   165,     8,   171,   171,   147,   148,   149,
-   150,   151,     6,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,     6,   169,     6,   165,   147,   148,   149,   150,
+     6,     6,  1090,   165,     6,     6,    82,     7,     6,     6,
+     4,     3,   159,     6,     3,     6,     6,     3,     6,     6,
+     3,     6,  1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,
+  1118,     6,     6,     3,     6,     3,     3,     4,     3,  1127,
+  1128,  1129,     9,    10,    11,    12,    13,    14,    15,    16,
+    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,   147,   148,   149,   150,   151,     3,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,     6,   171,
+   171,   165,   172,    79,  1172,  1173,  1174,  1175,  1176,  1177,
+  1178,  1179,  1180,  1181,  1182,  1183,   173,     6,   170,     7,
+  1188,  1189,   147,   148,   149,   150,   151,     6,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,     6,    82,   164,
+   165,   169,   169,   168,   170,     4,     6,  1215,   169,  1217,
+   169,   169,     3,   170,   170,   169,  1224,  1225,  1226,  1227,
+  1228,  1229,  1230,  1231,  1232,  1233,   170,  1235,   170,  1237,
+   169,   171,   170,  1241,   169,  1243,   147,   148,   149,   150,
    151,     6,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,   171,   171,   171,   165,   147,   148,   149,   150,   151,
-     6,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     6,     6,     0,   165,   147,   148,   149,   150,   151,     0,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,     6,
-   545,     6,   165,     6,   774,     6,   772,    -1,   520,    -1,
-    -1,  1083,    -1,    -1,   784,    -1,    -1,    -1,   788,    -1,
-    -1,   147,   148,   149,   150,   151,   302,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,   807,   164,   165,
-    -1,    -1,   168,   147,   148,   149,   150,   151,    -1,   153,
-   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,   147,   148,   149,   150,   151,    -1,   153,
+   161,     6,     3,     6,   165,     3,     6,  1265,  1266,     6,
+     6,     6,     6,  1271,  1272,  1273,  1274,  1275,  1276,     6,
+   157,   158,     5,     5,   172,     6,   173,   164,   171,     6,
+   169,   168,     6,   169,     6,     6,   169,  1295,   169,     6,
+   170,   170,  1300,  1301,  1302,  1303,  1304,  1305,  1306,  1307,
+  1308,   169,    83,   170,   169,   528,   529,   169,   531,   169,
+     6,     6,   535,   536,     6,     6,     6,     6,     5,     5,
+  1328,  1329,  1330,  1331,  1332,  1333,  1334,     6,  1336,   169,
+  1338,   172,   169,   169,   173,   170,   170,   169,   169,   169,
+    79,     4,   169,    79,     6,   171,     6,   171,  1356,  1357,
+  1358,   171,     6,     5,     5,   172,     6,   171,   169,   169,
+   172,     6,  1370,  1371,  1372,  1373,  1374,  1375,   591,     6,
+   172,   594,   170,   170,     6,     6,     6,     6,     6,  1387,
+  1388,  1389,  1390,     6,  1392,   171,  1394,   169,     6,   169,
+   613,   614,   169,   142,   169,   171,   619,   620,   171,   171,
+     6,   169,     6,   626,   170,   628,  1414,  1415,  1416,     6,
+     6,     6,     6,     6,   171,  1423,     6,  1425,   641,  1427,
+   643,     6,     6,     6,     6,     6,   169,   169,   651,   652,
+   653,   171,   170,   656,   657,   658,   659,   660,   661,   662,
+     3,     4,   171,   169,     6,     0,     9,    10,    11,    12,
+    13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+    23,    24,    25,    26,    27,    28,    29,     6,   147,   148,
+   149,   150,   151,   171,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,   171,     0,     6,   165,   147,   148,   149,
+   150,   151,     6,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,   171,   563,     6,   165,     6,     6,  1108,   314,
+   147,   148,   149,   150,   151,     6,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,   790,    -1,    -1,   165,   147,
+   148,   149,   150,   151,     6,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,   538,    -1,    -1,   165,    -1,    -1,
+   147,   148,   149,   150,   151,     6,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,   792,
+    -1,    -1,    -1,    -1,     6,    -1,    -1,    -1,    -1,   802,
+    -1,    -1,    -1,   806,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   157,   158,    -1,    -1,    -1,    -1,
+    -1,   164,   825,    -1,    -1,   168,     8,    -1,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+     8,    -1,    -1,   147,   148,   149,   150,   151,    -1,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    31,    32,    33,    34,    35,    36,    37,    38,
-    -1,    40,    -1,    42,    43,    -1,    45,    46,    31,    32,
-    33,    34,    35,    36,    37,    38,    -1,    40,    -1,    42,
-    43,    -1,    45,    46,    63,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,
-    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,
-    31,    32,    33,    34,    35,    36,    37,    38,    -1,    40,
-    -1,    42,    43,    -1,    45,    46,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,   943,    -1,    -1,   946,    -1,    -1,    -1,
-    -1,    -1,    63,    -1,   133,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,    -1,
-   133,    -1,    -1,   973,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,     0,     1,    -1,    -1,     4,   141,   989,
-    -1,    -1,    -1,   172,   147,   148,   149,   150,   151,    -1,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,   172,
-    -1,    -1,   165,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,   133,    40,    41,    42,    43,    44,    45,    46,
-    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,
-    57,    58,    59,    60,    61,    -1,    63,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,  1058,  1059,
-    77,    78,    -1,    -1,    -1,    -1,    -1,    84,    85,    86,
-    87,    88,    89,    -1,   136,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,  1084,   147,   148,   149,   150,   151,
+    -1,   165,    -1,    -1,    -1,    -1,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,   147,   148,   149,   150,   151,
+    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+    -1,    -1,    -1,   165,    -1,    -1,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,   147,   148,   149,   150,   151,
     -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
     -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,
-    90,    91,    92,    -1,    -1,    -1,   133,    -1,    98,    99,
-   100,   101,   102,   103,   104,   105,   106,   107,    -1,    -1,
-    -1,    -1,  1132,    -1,    -1,    -1,   116,   117,   118,   119,
-   120,   121,   122,   123,   124,   125,  1146,   127,   128,   129,
-   130,   131,   132,   136,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   147,   148,   149,   150,   151,    -1,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
-    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,   147,
-   148,   149,   150,   151,  1194,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,   169,    -1,    -1,   172,   147,   148,   149,   150,   151,
+    -1,   964,    -1,    -1,   967,   147,   148,   149,   150,   151,
     -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    -1,    -1,
-   172,    -1,    -1,    -1,    -1,  1245,   147,   148,   149,   150,
+    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,   147,
+   148,   149,   150,   151,   997,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+  1013,    31,    32,    33,    34,    35,    36,    37,    38,    -1,
+    40,    -1,    42,    43,    -1,    45,    46,    -1,    -1,    -1,
+    31,    32,    33,    34,    35,    36,    37,    38,    -1,    40,
+    -1,    42,    43,    63,    45,    46,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,
+    -1,    -1,    63,    65,    66,    67,    68,    69,    70,    71,
+    72,    73,    74,    75,    76,   136,    77,    78,    -1,    -1,
+  1083,  1084,    -1,    -1,    -1,    -1,   147,   148,   149,   150,
    151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
-   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,    -1,
-    -1,   172,    -1,  1273,   147,   148,   149,   150,   151,    -1,
-   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
-    -1,    -1,   165,    -1,    -1,    -1,    -1,    -1,    -1,   172,
-    -1,  1301,   147,   148,   149,   150,   151,    -1,   153,   154,
+   161,    -1,    -1,    -1,   165,   136,  1109,    -1,    -1,    -1,
+    -1,    -1,    -1,   133,    -1,    -1,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,   133,    -1,   165,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,     0,     1,    -1,    -1,     4,    -1,    -1,    -1,
+    -1,    -1,   172,    -1,  1157,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1171,    -1,
+   172,   172,    30,    31,    32,    33,    34,    35,    36,    37,
+    38,    -1,    40,    41,    42,    43,    44,    45,    46,    -1,
+    -1,    -1,    50,    51,    52,    53,    54,    55,    -1,    57,
+    58,    59,    60,    61,    -1,    63,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    34,    -1,  1219,    -1,    -1,    77,
+    78,    -1,    -1,    -1,   139,    -1,    84,    85,    86,    87,
+    88,    89,   147,   148,   149,   150,   151,    -1,   153,   154,
    155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
-   165,    -1,    -1,    -1,    -1,    -1,    -1,   172,    -1,    -1,
-  1330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   147,
-   148,   149,   150,   151,  1344,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,   147,
-   148,   149,   150,   151,   172,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,   169,   170,   147,   148,   149,   150,   151,    -1,   153,
+   165,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
+   156,   157,   158,   159,   160,   161,    -1,  1270,    -1,   165,
+    90,    91,    92,   169,    -1,   133,   172,    -1,    98,    99,
+   100,   101,   102,   103,   104,   105,   106,   107,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,  1298,   116,   117,   118,   119,
+   120,   121,   122,   123,   124,   125,    -1,   127,   128,   129,
+   130,   131,   132,    -1,    -1,    -1,    -1,    -1,   147,   148,
+   149,   150,   151,  1326,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+   169,    -1,    -1,   172,    -1,    -1,    -1,   147,   148,   149,
+   150,   151,  1355,   153,   154,   155,   156,   157,   158,   159,
+   160,   161,    -1,    -1,    -1,   165,  1369,    -1,    -1,   169,
+    -1,    -1,   172,   147,   148,   149,   150,   151,    -1,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,
-   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
-   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
-    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,   153,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,
-   150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
-   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,
-   170,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,
-    -1,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   147,   148,   149,   150,   151,   172,   153,
+   154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
+    -1,   165,    -1,   141,    -1,    -1,    -1,    -1,   172,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,   147,   148,
    149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
    159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
-   169,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
-   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,
-    -1,    -1,    -1,   169,   147,   148,   149,   150,   151,    -1,
+   169,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
+   153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
+    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,   147,   148,
+   149,   150,   151,    -1,   153,   154,   155,   156,   157,   158,
+   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,
+    -1,   170,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165,    -1,    -1,    -1,    -1,   170,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,    -1,   170,
+   147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
+   157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
+    -1,    -1,    -1,   170,   147,   148,   149,   150,   151,    -1,
    153,   154,   155,   156,   157,   158,   159,   160,   161,    -1,
     -1,    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,
    150,   151,    -1,   153,   154,   155,   156,   157,   158,   159,
@@ -2274,7 +2302,14 @@ static const short yycheck[] = {     7,
    157,   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,
     -1,    -1,   169,   147,   148,   149,   150,   151,    -1,   153,
    154,   155,   156,   157,   158,   159,   160,   161,    -1,    -1,
-    -1,   165
+    -1,   165,    -1,    -1,    -1,   169,   147,   148,   149,   150,
+   151,    -1,   153,   154,   155,   156,   157,   158,   159,   160,
+   161,    -1,    -1,    -1,   165,    -1,    -1,    -1,   169,   147,
+   148,   149,   150,   151,    -1,   153,   154,   155,   156,   157,
+   158,   159,   160,   161,    -1,    -1,    -1,   165,    -1,    -1,
+    -1,   169,   147,   148,   149,   150,   151,    -1,   153,   154,
+   155,   156,   157,   158,   159,   160,   161,    -1,    -1,    -1,
+   165
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/lib/bison.simple"
@@ -3451,23 +3486,83 @@ case 133:
     ;
     break;}
 case 134:
-#line 723 "Gmsh.y"
+#line 712 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val += yyvsp[-1].d ;
+    ;
+    break;}
+case 135:
+#line 720 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val -= yyvsp[-1].d ;
+    ;
+    break;}
+case 136:
+#line 728 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val += 1. ;
+    ;
+    break;}
+case 137:
+#line 736 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val -= yyvsp[-1].d ;
+    ;
+    break;}
+case 138:
+#line 744 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val *= yyvsp[-1].d ;
+    ;
+    break;}
+case 139:
+#line 752 "Gmsh.y"
+{
+      TheSymbol.Name = yyvsp[-3].c ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", yyvsp[-3].c) ;
+      else
+	pSymbol->val /= yyvsp[-1].d ;
+    ;
+    break;}
+case 140:
+#line 771 "Gmsh.y"
 {
       Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]);
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 135:
-#line 730 "Gmsh.y"
+case 141:
+#line 778 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 136:
-#line 736 "Gmsh.y"
+case 142:
+#line 784 "Gmsh.y"
 {
       Vertex *v;
       Attractor *a;
@@ -3487,8 +3582,8 @@ case 136:
       }
     ;
     break;}
-case 137:
-#line 755 "Gmsh.y"
+case 143:
+#line 803 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
@@ -3500,31 +3595,31 @@ case 137:
       }
     ;
     break;}
-case 138:
-#line 766 "Gmsh.y"
+case 144:
+#line 814 "Gmsh.y"
 {
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-2].d;
     ;
     break;}
-case 139:
-#line 774 "Gmsh.y"
+case 145:
+#line 822 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 140:
-#line 780 "Gmsh.y"
+case 146:
+#line 828 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_SPLN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 141:
-#line 786 "Gmsh.y"
+case 147:
+#line 834 "Gmsh.y"
 {
       Curve *c;
       Attractor *a;
@@ -3544,16 +3639,16 @@ case 141:
       }
     ;
     break;}
-case 142:
-#line 805 "Gmsh.y"
+case 148:
+#line 853 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_CIRC ;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 143:
-#line 811 "Gmsh.y"
+case 149:
+#line 859 "Gmsh.y"
 {
       List_T *temp;
       int i,j;
@@ -3570,48 +3665,48 @@ case 143:
       yyval.s.Num  = (int)yyvsp[-6].d;
     ;
     break;}
-case 144:
-#line 828 "Gmsh.y"
+case 150:
+#line 876 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c);
       yyval.s.Type = MSH_SEGM_PARAMETRIC ;
       yyval.s.Num  = (int)yyvsp[-14].d;
     ;
     break;}
-case 145:
-#line 834 "Gmsh.y"
+case 151:
+#line 882 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_ELLI ;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 146:
-#line 840 "Gmsh.y"
+case 152:
+#line 888 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 147:
-#line 846 "Gmsh.y"
+case 153:
+#line 894 "Gmsh.y"
 {
       yyval.s.Type = MSH_SEGM_LOOP;
       Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Num = (int)yyvsp[-4].d;
     ;
     break;}
-case 148:
-#line 852 "Gmsh.y"
+case 154:
+#line 900 "Gmsh.y"
 {
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_BSPLN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 149:
-#line 858 "Gmsh.y"
+case 155:
+#line 906 "Gmsh.y"
 {
       List_T *Temp;
       int i;
@@ -3631,8 +3726,8 @@ case 149:
       List_Delete(Temp);
     ;
     break;}
-case 150:
-#line 877 "Gmsh.y"
+case 156:
+#line 925 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Curve *c = FindCurve(yyval.s.Num,THEM);
@@ -3642,16 +3737,16 @@ case 150:
 	yyval.s.Type = c->Typ;
     ;
     break;}
-case 151:
-#line 889 "Gmsh.y"
+case 157:
+#line 937 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_PLAN;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 152:
-#line 895 "Gmsh.y"
+case 158:
+#line 943 "Gmsh.y"
 {
       Surface *s,*support;
       support = FindSurface((int)yyvsp[-2].d,THEM);
@@ -3671,8 +3766,8 @@ case 152:
       }
     ;
     break;}
-case 153:
-#line 914 "Gmsh.y"
+case 159:
+#line 962 "Gmsh.y"
 {
       List_Read(yyvsp[-1].l,0,&d);
       i = (int)d;
@@ -3694,38 +3789,38 @@ case 153:
       }
     ;
     break;}
-case 154:
-#line 937 "Gmsh.y"
+case 160:
+#line 985 "Gmsh.y"
 {
       CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d  , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
       yyval.s.Type  = MSH_SURF_NURBS;
       yyval.s.Num = (int)yyvsp[-16].d;
     ;
     break;}
-case 155:
-#line 945 "Gmsh.y"
+case 161:
+#line 993 "Gmsh.y"
 {
       CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
     ;
     break;}
-case 156:
-#line 949 "Gmsh.y"
+case 162:
+#line 997 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_SURFACE;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 157:
-#line 955 "Gmsh.y"
+case 163:
+#line 1003 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_LOOP;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 158:
-#line 961 "Gmsh.y"
+case 164:
+#line 1009 "Gmsh.y"
 {
       yyval.s.Num = (int)yyvsp[-2].d;
       Surface *s = FindSurface(yyval.s.Num,THEM);
@@ -3735,85 +3830,85 @@ case 158:
 	yyval.s.Type = s->Typ;
      ;
     break;}
-case 159:
-#line 973 "Gmsh.y"
+case 165:
+#line 1021 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;      
     ;
     break;}
-case 160:
-#line 979 "Gmsh.y"
+case 166:
+#line 1027 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 161:
-#line 985 "Gmsh.y"
+case 167:
+#line 1033 "Gmsh.y"
 {
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
     ;
     break;}
-case 162:
-#line 998 "Gmsh.y"
+case 168:
+#line 1046 "Gmsh.y"
 {
       TranslateShapes (yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-1].l,1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 163:
-#line 1003 "Gmsh.y"
+case 169:
+#line 1051 "Gmsh.y"
 {
       RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 164:
-#line 1008 "Gmsh.y"
+case 170:
+#line 1056 "Gmsh.y"
 {
       SymmetryShapes(yyvsp[-3].v[0],yyvsp[-3].v[1],yyvsp[-3].v[2],yyvsp[-3].v[3],yyvsp[-1].l,1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 165:
-#line 1013 "Gmsh.y"
+case 171:
+#line 1061 "Gmsh.y"
 {
       DilatShapes(yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l,1);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 166:
-#line 1020 "Gmsh.y"
+case 172:
+#line 1068 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 167:
-#line 1021 "Gmsh.y"
+case 173:
+#line 1069 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 168:
-#line 1022 "Gmsh.y"
+case 174:
+#line 1070 "Gmsh.y"
 { yyval.l = yyvsp[0].l; ;
     break;}
-case 169:
-#line 1027 "Gmsh.y"
+case 175:
+#line 1075 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
     ;
     break;}
-case 170:
-#line 1031 "Gmsh.y"
+case 176:
+#line 1079 "Gmsh.y"
 {
       List_Add(yyval.l,&yyvsp[0].s);
       yyval.l = yyvsp[-1].l;
     ;
     break;}
-case 171:
-#line 1043 "Gmsh.y"
+case 177:
+#line 1091 "Gmsh.y"
 {
       yyval.l = List_Create(3,3,sizeof(Shape));
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -3824,8 +3919,8 @@ case 171:
       }
     ;
     break;}
-case 172:
-#line 1061 "Gmsh.y"
+case 178:
+#line 1109 "Gmsh.y"
 {
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
@@ -3833,8 +3928,8 @@ case 172:
       }
     ;
     break;}
-case 173:
-#line 1076 "Gmsh.y"
+case 179:
+#line 1124 "Gmsh.y"
 {
       yyinTab[RecursionLevel++] = yyin;
       strcpy(tmpstring, ThePathForIncludes);
@@ -3857,8 +3952,8 @@ case 173:
       }
     ;
     break;}
-case 174:
-#line 1104 "Gmsh.y"
+case 180:
+#line 1152 "Gmsh.y"
 {
      char ext[6];
      strcpy(ext,yyvsp[-1].c+(strlen(yyvsp[-1].c)-4));
@@ -3889,22 +3984,22 @@ case 174:
        }
    ;
     break;}
-case 175:
-#line 1134 "Gmsh.y"
+case 181:
+#line 1182 "Gmsh.y"
 {
      exit(0);
    ;
     break;}
-case 176:
-#line 1138 "Gmsh.y"
+case 182:
+#line 1186 "Gmsh.y"
 {
      FILE *ff = yyin;
      MergeProblem(yyvsp[-1].c);
      yyin = ff;
    ;
     break;}
-case 177:
-#line 1152 "Gmsh.y"
+case 183:
+#line 1200 "Gmsh.y"
 {
     FILE* ff;
     if(RecursionLevel)
@@ -3918,8 +4013,8 @@ case 177:
     fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
   ;
     break;}
-case 178:
-#line 1165 "Gmsh.y"
+case 184:
+#line 1213 "Gmsh.y"
 {
     FILE* ff;
     if(RecursionLevel)
@@ -3933,8 +4028,8 @@ case 178:
     fgetpos( ff, &yyposImbricatedLoopsTab[ImbricatedLoop++]);
   ;
     break;}
-case 179:
-#line 1178 "Gmsh.y"
+case 185:
+#line 1226 "Gmsh.y"
 {
     if(LoopControlVariablesTab[ImbricatedLoop-1][1] >  
        LoopControlVariablesTab[ImbricatedLoop-1][0])
@@ -3954,71 +4049,71 @@ case 179:
       }
   ;
     break;}
-case 180:
-#line 1217 "Gmsh.y"
+case 186:
+#line 1265 "Gmsh.y"
 {
       Curve *pc, *prc;
       Extrude_ProtudePoint(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,&pc,&prc,NULL);
     ;
     break;}
-case 181:
-#line 1222 "Gmsh.y"
+case 187:
+#line 1270 "Gmsh.y"
 {
       Curve *pc, *prc;
       Extrude_ProtudePoint(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,
 			   &pc,&prc,NULL);
     ;
     break;}
-case 182:
-#line 1228 "Gmsh.y"
+case 188:
+#line 1276 "Gmsh.y"
 {
       Extrude_ProtudeCurve(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,NULL);
     ;
     break;}
-case 183:
-#line 1232 "Gmsh.y"
+case 189:
+#line 1280 "Gmsh.y"
 {
       Extrude_ProtudeCurve(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,NULL);
     ;
     break;}
-case 184:
-#line 1236 "Gmsh.y"
+case 190:
+#line 1284 "Gmsh.y"
 {
       Extrude_ProtudeSurface(1,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],0.,0.,0.,0.,0,NULL);
     ;
     break;}
-case 185:
-#line 1240 "Gmsh.y"
+case 191:
+#line 1288 "Gmsh.y"
 {
       Extrude_ProtudeSurface(0,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
     ;
     break;}
-case 186:
-#line 1244 "Gmsh.y"
+case 192:
+#line 1292 "Gmsh.y"
 {
     int vol = NEWREG();
     Extrude_ProtudeSurface(1,(int)yyvsp[-7].d,yyvsp[-5].v[0],yyvsp[-5].v[1],yyvsp[-5].v[2],0.,0.,0.,0.,vol,&extr);
   ;
     break;}
-case 187:
-#line 1249 "Gmsh.y"
+case 193:
+#line 1297 "Gmsh.y"
 {
     int vol = NEWREG();
     Extrude_ProtudeSurface(0,(int)yyvsp[-11].d,yyvsp[-9].v[0],yyvsp[-9].v[1],yyvsp[-9].v[2],yyvsp[-7].v[0],yyvsp[-7].v[1],yyvsp[-7].v[2],yyvsp[-5].d,vol,&extr);
   ;
     break;}
-case 188:
-#line 1257 "Gmsh.y"
+case 194:
+#line 1305 "Gmsh.y"
 {
     ;
     break;}
-case 189:
-#line 1260 "Gmsh.y"
+case 195:
+#line 1308 "Gmsh.y"
 {
     ;
     break;}
-case 190:
-#line 1266 "Gmsh.y"
+case 196:
+#line 1314 "Gmsh.y"
 {
       double d;
       int j;
@@ -4036,14 +4131,14 @@ case 190:
       }
     ;
     break;}
-case 191:
-#line 1283 "Gmsh.y"
+case 197:
+#line 1331 "Gmsh.y"
 {
       extr.mesh.Recombine = true;
     ;
     break;}
-case 192:
-#line 1294 "Gmsh.y"
+case 198:
+#line 1342 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -4061,8 +4156,8 @@ case 192:
       }
     ;
     break;}
-case 193:
-#line 1311 "Gmsh.y"
+case 199:
+#line 1359 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -4080,8 +4175,8 @@ case 193:
       }
     ;
     break;}
-case 194:
-#line 1328 "Gmsh.y"
+case 200:
+#line 1376 "Gmsh.y"
 {
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
@@ -4099,8 +4194,8 @@ case 194:
       }
     ;
     break;}
-case 195:
-#line 1345 "Gmsh.y"
+case 201:
+#line 1393 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -4122,8 +4217,8 @@ case 195:
       }
     ;
     break;}
-case 196:
-#line 1366 "Gmsh.y"
+case 202:
+#line 1414 "Gmsh.y"
 {
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
@@ -4144,8 +4239,8 @@ case 196:
       }
     ;
     break;}
-case 197:
-#line 1386 "Gmsh.y"
+case 203:
+#line 1434 "Gmsh.y"
 {
       Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
       if(!v)
@@ -4166,8 +4261,8 @@ case 197:
       }
     ;
     break;}
-case 198:
-#line 1406 "Gmsh.y"
+case 204:
+#line 1454 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
@@ -4185,8 +4280,8 @@ case 198:
       }
     ;
     break;}
-case 199:
-#line 1423 "Gmsh.y"
+case 205:
+#line 1471 "Gmsh.y"
 {
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
@@ -4204,19 +4299,19 @@ case 199:
       }
     ;
     break;}
-case 200:
-#line 1448 "Gmsh.y"
+case 206:
+#line 1496 "Gmsh.y"
 { 
       Coherence_PS();
     ;
     break;}
-case 203:
-#line 1464 "Gmsh.y"
+case 209:
+#line 1512 "Gmsh.y"
 {
     ;
     break;}
-case 204:
-#line 1467 "Gmsh.y"
+case 210:
+#line 1515 "Gmsh.y"
 { 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown String Option Class '%s'", yyvsp[-5].c);
@@ -4229,8 +4324,8 @@ case 204:
       }
     ;
     break;}
-case 205:
-#line 1479 "Gmsh.y"
+case 211:
+#line 1527 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4248,8 +4343,8 @@ case 205:
       }
     ;
     break;}
-case 206:
-#line 1496 "Gmsh.y"
+case 212:
+#line 1544 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4267,8 +4362,8 @@ case 206:
       }
     ;
     break;}
-case 207:
-#line 1513 "Gmsh.y"
+case 213:
+#line 1561 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4286,8 +4381,8 @@ case 207:
       }
     ;
     break;}
-case 208:
-#line 1530 "Gmsh.y"
+case 214:
+#line 1578 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4305,8 +4400,8 @@ case 208:
       }
     ;
     break;}
-case 209:
-#line 1547 "Gmsh.y"
+case 215:
+#line 1595 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-5].c);
@@ -4324,8 +4419,8 @@ case 209:
       }
     ;
     break;}
-case 210:
-#line 1564 "Gmsh.y"
+case 216:
+#line 1612 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
@@ -4343,8 +4438,8 @@ case 210:
       }
     ;
     break;}
-case 211:
-#line 1581 "Gmsh.y"
+case 217:
+#line 1629 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-4].c);
@@ -4362,8 +4457,8 @@ case 211:
       }
     ;
     break;}
-case 212:
-#line 1598 "Gmsh.y"
+case 218:
+#line 1646 "Gmsh.y"
 {
       if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
 	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
@@ -4373,36 +4468,78 @@ case 212:
 	else{
 	  switch(i){
 	  case GMSH_DOUBLE :
-	    ((double*)pNumOpt)[0] = yyvsp[-1].v[0] ;
-	    ((double*)pNumOpt)[1] = yyvsp[-1].v[1] ;
-	    ((double*)pNumOpt)[2] = yyvsp[-1].v[2] ;
-	    ((double*)pNumOpt)[3] = yyvsp[-1].v[3] ;
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] = yyvsp[-1].v[j] ;
 	    break ;
 	  case GMSH_FLOAT :
-	    ((float*)pNumOpt)[0] = (float)yyvsp[-1].v[0] ;
-	    ((float*)pNumOpt)[1] = (float)yyvsp[-1].v[1] ;
-	    ((float*)pNumOpt)[2] = (float)yyvsp[-1].v[2] ;
-	    ((float*)pNumOpt)[3] = (float)yyvsp[-1].v[3] ;
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] = (float)yyvsp[-1].v[j] ;
 	    break ;
 	  case GMSH_LONG :
-	    ((long*)pNumOpt)[0] = (long)yyvsp[-1].v[0] ;
-	    ((long*)pNumOpt)[1] = (long)yyvsp[-1].v[1] ;
-	    ((long*)pNumOpt)[2] = (long)yyvsp[-1].v[2] ;
-	    ((long*)pNumOpt)[3] = (long)yyvsp[-1].v[3] ;
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] = (long)yyvsp[-1].v[j] ;
 	    break ;
 	  case GMSH_INT :
-	    ((int*)pNumOpt)[0] = (int)yyvsp[-1].v[0] ;
-	    ((int*)pNumOpt)[1] = (int)yyvsp[-1].v[1] ;
-	    ((int*)pNumOpt)[2] = (int)yyvsp[-1].v[2] ;
-	    ((int*)pNumOpt)[3] = (int)yyvsp[-1].v[3] ;
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] = (int)yyvsp[-1].v[j] ;
 	    break ;
 	  }
 	}
       }
     ;
     break;}
-case 213:
-#line 1635 "Gmsh.y"
+case 219:
+#line 1671 "Gmsh.y"
+{
+      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] += yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] += (float)yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_LONG :
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] += (long)yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] += (int)yyvsp[-1].v[j] ;
+	    break ;
+	  }
+	}
+      }
+    ;
+    break;}
+case 220:
+#line 1696 "Gmsh.y"
+{
+      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-5].c)))
+	vyyerror("Unknown Array Option Class '%s'", yyvsp[-5].c);
+      else{
+	if(!(pArrOpt = Get_ArrayOption(yyvsp[-3].c, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-5].c, yyvsp[-3].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] -= yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] -= (float)yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_LONG :
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] -= (long)yyvsp[-1].v[j] ;
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] -= (int)yyvsp[-1].v[j] ;
+	    break ;
+	  }
+	}
+      }
+    ;
+    break;}
+case 221:
+#line 1721 "Gmsh.y"
 {
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c)))
 	vyyerror("Unknown Color Option Class '%s'", yyvsp[-7].c);
@@ -4415,207 +4552,207 @@ case 213:
       }
     ;
     break;}
-case 217:
-#line 1673 "Gmsh.y"
+case 225:
+#line 1759 "Gmsh.y"
 {yyval.i = 1;;
     break;}
-case 218:
-#line 1674 "Gmsh.y"
+case 226:
+#line 1760 "Gmsh.y"
 {yyval.i = 0;;
     break;}
-case 219:
-#line 1675 "Gmsh.y"
+case 227:
+#line 1761 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 220:
-#line 1676 "Gmsh.y"
+case 228:
+#line 1762 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 221:
-#line 1677 "Gmsh.y"
+case 229:
+#line 1763 "Gmsh.y"
 {yyval.i = -1;;
     break;}
-case 222:
-#line 1681 "Gmsh.y"
+case 230:
+#line 1767 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 223:
-#line 1682 "Gmsh.y"
+case 231:
+#line 1768 "Gmsh.y"
 { yyval.d = yyvsp[-1].d ;          ;
     break;}
-case 224:
-#line 1683 "Gmsh.y"
+case 232:
+#line 1769 "Gmsh.y"
 { yyval.d = -yyvsp[0].d ;         ;
     break;}
-case 225:
-#line 1684 "Gmsh.y"
+case 233:
+#line 1770 "Gmsh.y"
 { yyval.d = yyvsp[0].d;           ;
     break;}
-case 226:
-#line 1685 "Gmsh.y"
+case 234:
+#line 1771 "Gmsh.y"
 { yyval.d = !yyvsp[0].d ;         ;
     break;}
-case 227:
-#line 1686 "Gmsh.y"
+case 235:
+#line 1772 "Gmsh.y"
 { yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
     break;}
-case 228:
-#line 1687 "Gmsh.y"
+case 236:
+#line 1773 "Gmsh.y"
 { yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
     break;}
-case 229:
-#line 1688 "Gmsh.y"
+case 237:
+#line 1774 "Gmsh.y"
 { yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
     break;}
-case 230:
-#line 1689 "Gmsh.y"
+case 238:
+#line 1775 "Gmsh.y"
 { yyval.d = yyvsp[-2].d / yyvsp[0].d ;     ;
     break;}
-case 231:
-#line 1690 "Gmsh.y"
+case 239:
+#line 1776 "Gmsh.y"
 { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
     break;}
-case 232:
-#line 1691 "Gmsh.y"
+case 240:
+#line 1777 "Gmsh.y"
 { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
     break;}
-case 233:
-#line 1692 "Gmsh.y"
+case 241:
+#line 1778 "Gmsh.y"
 { yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
     break;}
-case 234:
-#line 1693 "Gmsh.y"
+case 242:
+#line 1779 "Gmsh.y"
 { yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
     break;}
-case 235:
-#line 1694 "Gmsh.y"
+case 243:
+#line 1780 "Gmsh.y"
 { yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
     break;}
-case 236:
-#line 1695 "Gmsh.y"
+case 244:
+#line 1781 "Gmsh.y"
 { yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
     break;}
-case 237:
-#line 1696 "Gmsh.y"
+case 245:
+#line 1782 "Gmsh.y"
 { yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
     break;}
-case 238:
-#line 1697 "Gmsh.y"
+case 246:
+#line 1783 "Gmsh.y"
 { yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
     break;}
-case 239:
-#line 1698 "Gmsh.y"
+case 247:
+#line 1784 "Gmsh.y"
 { yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
     break;}
-case 240:
-#line 1699 "Gmsh.y"
+case 248:
+#line 1785 "Gmsh.y"
 { yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
     break;}
-case 241:
-#line 1700 "Gmsh.y"
+case 249:
+#line 1786 "Gmsh.y"
 { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
     break;}
-case 242:
-#line 1701 "Gmsh.y"
+case 250:
+#line 1787 "Gmsh.y"
 { yyval.d = exp(yyvsp[-1].d);      ;
     break;}
-case 243:
-#line 1702 "Gmsh.y"
+case 251:
+#line 1788 "Gmsh.y"
 { yyval.d = log(yyvsp[-1].d);      ;
     break;}
-case 244:
-#line 1703 "Gmsh.y"
+case 252:
+#line 1789 "Gmsh.y"
 { yyval.d = log10(yyvsp[-1].d);    ;
     break;}
-case 245:
-#line 1704 "Gmsh.y"
+case 253:
+#line 1790 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-1].d);     ;
     break;}
-case 246:
-#line 1705 "Gmsh.y"
+case 254:
+#line 1791 "Gmsh.y"
 { yyval.d = sin(yyvsp[-1].d);      ;
     break;}
-case 247:
-#line 1706 "Gmsh.y"
+case 255:
+#line 1792 "Gmsh.y"
 { yyval.d = asin(yyvsp[-1].d);     ;
     break;}
-case 248:
-#line 1707 "Gmsh.y"
+case 256:
+#line 1793 "Gmsh.y"
 { yyval.d = cos(yyvsp[-1].d);      ;
     break;}
-case 249:
-#line 1708 "Gmsh.y"
+case 257:
+#line 1794 "Gmsh.y"
 { yyval.d = acos(yyvsp[-1].d);     ;
     break;}
-case 250:
-#line 1709 "Gmsh.y"
+case 258:
+#line 1795 "Gmsh.y"
 { yyval.d = tan(yyvsp[-1].d);      ;
     break;}
-case 251:
-#line 1710 "Gmsh.y"
+case 259:
+#line 1796 "Gmsh.y"
 { yyval.d = atan(yyvsp[-1].d);     ;
     break;}
-case 252:
-#line 1711 "Gmsh.y"
+case 260:
+#line 1797 "Gmsh.y"
 { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
     break;}
-case 253:
-#line 1712 "Gmsh.y"
+case 261:
+#line 1798 "Gmsh.y"
 { yyval.d = sinh(yyvsp[-1].d);     ;
     break;}
-case 254:
-#line 1713 "Gmsh.y"
+case 262:
+#line 1799 "Gmsh.y"
 { yyval.d = cosh(yyvsp[-1].d);     ;
     break;}
-case 255:
-#line 1714 "Gmsh.y"
+case 263:
+#line 1800 "Gmsh.y"
 { yyval.d = tanh(yyvsp[-1].d);     ;
     break;}
-case 256:
-#line 1715 "Gmsh.y"
+case 264:
+#line 1801 "Gmsh.y"
 { yyval.d = fabs(yyvsp[-1].d);     ;
     break;}
-case 257:
-#line 1716 "Gmsh.y"
+case 265:
+#line 1802 "Gmsh.y"
 { yyval.d = floor(yyvsp[-1].d);    ;
     break;}
-case 258:
-#line 1717 "Gmsh.y"
+case 266:
+#line 1803 "Gmsh.y"
 { yyval.d = ceil(yyvsp[-1].d);     ;
     break;}
-case 259:
-#line 1718 "Gmsh.y"
+case 267:
+#line 1804 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 260:
-#line 1719 "Gmsh.y"
+case 268:
+#line 1805 "Gmsh.y"
 { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
     break;}
-case 261:
-#line 1720 "Gmsh.y"
+case 269:
+#line 1806 "Gmsh.y"
 { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d);  ;
     break;}
-case 262:
-#line 1724 "Gmsh.y"
+case 270:
+#line 1810 "Gmsh.y"
 { yyval.d = yyvsp[0].d; ;
     break;}
-case 263:
-#line 1725 "Gmsh.y"
+case 271:
+#line 1811 "Gmsh.y"
 { yyval.d = 3.141592653589793; ;
     break;}
-case 264:
-#line 1727 "Gmsh.y"
+case 272:
+#line 1813 "Gmsh.y"
 {
       TheSymbol.Name = yyvsp[0].c ;
       if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) {
-	vyyerror("Unknown variable '%s'", yyvsp[0].c) ;  yyval.d = 0. ;
+	vyyerror("Unknown Variable '%s'", yyvsp[0].c) ;  yyval.d = 0. ;
       }
       else  yyval.d = TheSymbol.val ;
       Free(yyvsp[0].c);
     ;
     break;}
-case 265:
-#line 1736 "Gmsh.y"
+case 273:
+#line 1822 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-2].c);
@@ -4633,8 +4770,8 @@ case 265:
       }
     ;
     break;}
-case 266:
-#line 1753 "Gmsh.y"
+case 274:
+#line 1839 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
@@ -4652,8 +4789,8 @@ case 266:
       }
     ;
     break;}
-case 267:
-#line 1770 "Gmsh.y"
+case 275:
+#line 1856 "Gmsh.y"
 {
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c)))
 	vyyerror("Unknown Numeric Option Class '%s'", yyvsp[-3].c);
@@ -4671,16 +4808,16 @@ case 267:
       }
     ;
     break;}
-case 268:
-#line 1790 "Gmsh.y"
+case 276:
+#line 1876 "Gmsh.y"
 { 
       ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; 
       for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) 
 	List_Add(ListOfDouble2_L, &d) ;
     ;
     break;}
-case 269:
-#line 1796 "Gmsh.y"
+case 277:
+#line 1882 "Gmsh.y"
 {
       ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; 
       if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){
@@ -4692,138 +4829,166 @@ case 269:
 	  List_Add(ListOfDouble2_L, &d) ;
    ;
     break;}
-case 270:
-#line 1810 "Gmsh.y"
+case 278:
+#line 1896 "Gmsh.y"
 {
       yyval.v = yyvsp[0].v;
     ;
     break;}
-case 271:
-#line 1814 "Gmsh.y"
+case 279:
+#line 1900 "Gmsh.y"
 {
       for(i=0 ; i<6 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
     ;
     break;}
-case 272:
-#line 1818 "Gmsh.y"
+case 280:
+#line 1904 "Gmsh.y"
 { 
       yyval.v = yyvsp[0].v;
     ;
     break;}
-case 273:
-#line 1822 "Gmsh.y"
+case 281:
+#line 1908 "Gmsh.y"
 { 
       for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
     ;
     break;}
-case 274:
-#line 1826 "Gmsh.y"
+case 282:
+#line 1912 "Gmsh.y"
 {
       for(i=0 ; i<6 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
     ;
     break;}
-case 275:
-#line 1832 "Gmsh.y"
+case 283:
+#line 1918 "Gmsh.y"
 { 
       yyval.v[0]=yyvsp[-9].d;  yyval.v[1]=yyvsp[-7].d;  yyval.v[2]=yyvsp[-5].d;  yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d;
     ;
     break;}
-case 276:
-#line 1836 "Gmsh.y"
+case 284:
+#line 1922 "Gmsh.y"
 { 
       yyval.v[0]=yyvsp[-7].d;  yyval.v[1]=yyvsp[-5].d;  yyval.v[2]=yyvsp[-3].d;  yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0;
     ;
     break;}
-case 277:
-#line 1840 "Gmsh.y"
+case 285:
+#line 1926 "Gmsh.y"
 {
       yyval.v[0]=yyvsp[-5].d;  yyval.v[1]=yyvsp[-3].d;  yyval.v[2]=yyvsp[-1].d;  yyval.v[3]=0.0; yyval.v[4]=1.0;
     ;
     break;}
-case 278:
-#line 1844 "Gmsh.y"
+case 286:
+#line 1930 "Gmsh.y"
 {
       yyval.v[0]=yyvsp[-5].d;  yyval.v[1]=yyvsp[-3].d;  yyval.v[2]=yyvsp[-1].d;  yyval.v[3]=0.0; yyval.v[4]=1.0;
     ;
     break;}
-case 279:
-#line 1851 "Gmsh.y"
+case 287:
+#line 1934 "Gmsh.y"
 {
+      if(!(pArrCat = Get_ArrayOptionCategory(yyvsp[-2].c)))
+	vyyerror("Unknown Array Option Class '%s'", yyvsp[-2].c);
+      else{
+	if(!(pArrOpt = Get_ArrayOption(yyvsp[0].c, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4 ; j++) yyval.v[j] = ((double*)pArrOpt)[j] ; 
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((float*)pArrOpt)[j] ;
+	    break ;
+	  case GMSH_LONG : 
+	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4 ; j++) yyval.v[j] = (double)((int*)pArrOpt)[j] ; 
+	    break ;
+	  }
+	  yyval.v[4] = 1. ;
+	}
+      }
     ;
     break;}
-case 280:
-#line 1854 "Gmsh.y"
+case 288:
+#line 1963 "Gmsh.y"
 {
     ;
     break;}
-case 281:
-#line 1860 "Gmsh.y"
+case 289:
+#line 1966 "Gmsh.y"
 {
     ;
     break;}
-case 282:
-#line 1863 "Gmsh.y"
+case 290:
+#line 1972 "Gmsh.y"
 {
     ;
     break;}
-case 283:
-#line 1869 "Gmsh.y"
+case 291:
+#line 1975 "Gmsh.y"
 {
     ;
     break;}
-case 284:
-#line 1872 "Gmsh.y"
+case 292:
+#line 1981 "Gmsh.y"
+{
+    ;
+    break;}
+case 293:
+#line 1984 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 285:
-#line 1876 "Gmsh.y"
+case 294:
+#line 1988 "Gmsh.y"
 {
        yyval.l=ListOfListOfDouble_L;
     ;
     break;}
-case 286:
-#line 1883 "Gmsh.y"
+case 295:
+#line 1995 "Gmsh.y"
 {
       ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ;
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 287:
-#line 1888 "Gmsh.y"
+case 296:
+#line 2000 "Gmsh.y"
 {
       List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ;
     ;
     break;}
-case 288:
-#line 1895 "Gmsh.y"
+case 297:
+#line 2007 "Gmsh.y"
 {
     ;
     break;}
-case 289:
-#line 1898 "Gmsh.y"
+case 298:
+#line 2010 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 290:
-#line 1904 "Gmsh.y"
+case 299:
+#line 2016 "Gmsh.y"
 {
       yyval.l=ListOfDouble_L;
     ;
     break;}
-case 291:
-#line 1912 "Gmsh.y"
+case 300:
+#line 2024 "Gmsh.y"
 {
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 292:
-#line 1917 "Gmsh.y"
+case 301:
+#line 2029 "Gmsh.y"
 { 
       ListOfDouble_L = List_Create(2,1,sizeof(double)) ;
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
@@ -4833,14 +4998,14 @@ case 292:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
-case 293:
-#line 1926 "Gmsh.y"
+case 302:
+#line 2038 "Gmsh.y"
 {
       List_Add(ListOfDouble_L, &(yyvsp[0].d)) ;
     ;
     break;}
-case 294:
-#line 1930 "Gmsh.y"
+case 303:
+#line 2042 "Gmsh.y"
 {
       for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){
 	List_Read(ListOfDouble2_L, i, &d) ;
@@ -4849,34 +5014,34 @@ case 294:
       List_Delete(ListOfDouble2_L);
     ;
     break;}
-case 295:
-#line 1941 "Gmsh.y"
+case 304:
+#line 2053 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
     ;
     break;}
-case 296:
-#line 1945 "Gmsh.y"
+case 305:
+#line 2057 "Gmsh.y"
 {
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
     ;
     break;}
-case 297:
-#line 1949 "Gmsh.y"
+case 306:
+#line 2061 "Gmsh.y"
 {
       yyval.u = Get_ColorForString(ColorString, (int)yyvsp[-1].d, yyvsp[-3].c, &flag);
       if(flag) vyyerror("Unknown Color '%s'", yyvsp[-3].c);
     ;
     break;}
-case 298:
-#line 1954 "Gmsh.y"
+case 307:
+#line 2066 "Gmsh.y"
 {
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
       if(flag) vyyerror("Unknown Color '%s'", yyvsp[0].c);
     ;
     break;}
-case 299:
-#line 1959 "Gmsh.y"
+case 308:
+#line 2071 "Gmsh.y"
 {
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c)))
 	vyyerror("Unknown Color Option Class '%s'", yyvsp[-4].c);
@@ -5111,7 +5276,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 1972 "Gmsh.y"
+#line 2084 "Gmsh.y"
 
 
 void InitSymbols(void){
@@ -5143,4 +5308,3 @@ void vyyerror(char *fmt, ...){
   yyerrorstate=1;
 }
 
-
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 27e6dd53d414245ad0eeedff9929369811092a14..26adef63b19afd1d1b414cc705d9e3dba94e0ef9 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,4 +1,4 @@
-%{ /* $Id: Gmsh.y,v 1.19 2000-12-06 22:36:44 geuzaine Exp $ */
+%{ /* $Id: Gmsh.y,v 1.20 2000-12-06 23:01:55 geuzaine Exp $ */
 
 #include <stdarg.h>
 
@@ -34,7 +34,7 @@ static fpos_t         yyposImbricatedLoopsTab[MAX_OPEN_FILES];
 static int            LoopControlVariablesTab[MAX_OPEN_FILES][3];
 static char           yynameTab[MAX_OPEN_FILES][NAME_STR_L];
 static char           tmpstring[NAME_STR_L];
-static Symbol         TheSymbol;
+static Symbol         TheSymbol, *pSymbol;
 static Surface       *STL_Surf;
 static Shape          TheShape;
 static int            i,j,k,flag,RecursionLevel=0,ImbricatedLoop = 0;
@@ -708,6 +708,54 @@ Affectation :
       TheSymbol.val  = $3;
       List_Replace(Symbol_L,&TheSymbol,CompareSymbols);
     }
+  | tSTRING tAFFECTPLUS FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val += $3 ;
+    }
+  | tSTRING tAFFECTMINUS FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val -= $3 ;
+    }
+  | tSTRING tPLUSPLUS FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val += 1. ;
+    }
+  | tSTRING tAFFECTMINUS FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val -= $3 ;
+    }
+  | tSTRING tAFFECTTIMES FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val *= $3 ;
+    }
+  | tSTRING tAFFECTDIVIDE FExpr tEND
+    {
+      TheSymbol.Name = $1 ;
+      if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
+	vyyerror("Unknown Variable '%s'", $1) ;
+      else
+	pSymbol->val /= $3 ;
+    }
 ;
 
 
@@ -1604,28 +1652,66 @@ Option :
 	else{
 	  switch(i){
 	  case GMSH_DOUBLE :
-	    ((double*)pNumOpt)[0] = $5[0] ;
-	    ((double*)pNumOpt)[1] = $5[1] ;
-	    ((double*)pNumOpt)[2] = $5[2] ;
-	    ((double*)pNumOpt)[3] = $5[3] ;
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] = $5[j] ;
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] = (float)$5[j] ;
+	    break ;
+	  case GMSH_LONG :
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] = (long)$5[j] ;
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] = (int)$5[j] ;
+	    break ;
+	  }
+	}
+      }
+    }
+  | tSTRING '.' tSTRING tAFFECTPLUS VExpr tEND 
+    {
+      if(!(pArrCat = Get_ArrayOptionCategory($1)))
+	vyyerror("Unknown Array Option Class '%s'", $1);
+      else{
+	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] += $5[j] ;
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] += (float)$5[j] ;
+	    break ;
+	  case GMSH_LONG :
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] += (long)$5[j] ;
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] += (int)$5[j] ;
+	    break ;
+	  }
+	}
+      }
+    }
+  | tSTRING '.' tSTRING tAFFECTMINUS VExpr tEND 
+    {
+      if(!(pArrCat = Get_ArrayOptionCategory($1)))
+	vyyerror("Unknown Array Option Class '%s'", $1);
+      else{
+	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4; j++) ((double*)pNumOpt)[j] -= $5[j] ;
 	    break ;
 	  case GMSH_FLOAT :
-	    ((float*)pNumOpt)[0] = (float)$5[0] ;
-	    ((float*)pNumOpt)[1] = (float)$5[1] ;
-	    ((float*)pNumOpt)[2] = (float)$5[2] ;
-	    ((float*)pNumOpt)[3] = (float)$5[3] ;
+	    for(j=0 ; j<4; j++) ((float*)pNumOpt)[j] -= (float)$5[j] ;
 	    break ;
 	  case GMSH_LONG :
-	    ((long*)pNumOpt)[0] = (long)$5[0] ;
-	    ((long*)pNumOpt)[1] = (long)$5[1] ;
-	    ((long*)pNumOpt)[2] = (long)$5[2] ;
-	    ((long*)pNumOpt)[3] = (long)$5[3] ;
+	    for(j=0 ; j<4; j++) ((long*)pNumOpt)[j] -= (long)$5[j] ;
 	    break ;
 	  case GMSH_INT :
-	    ((int*)pNumOpt)[0] = (int)$5[0] ;
-	    ((int*)pNumOpt)[1] = (int)$5[1] ;
-	    ((int*)pNumOpt)[2] = (int)$5[2] ;
-	    ((int*)pNumOpt)[3] = (int)$5[3] ;
+	    for(j=0 ; j<4; j++) ((int*)pNumOpt)[j] -= (int)$5[j] ;
 	    break ;
 	  }
 	}
@@ -1727,7 +1813,7 @@ FExpr_Single :
     {
       TheSymbol.Name = $1 ;
       if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) {
-	vyyerror("Unknown variable '%s'", $1) ;  $$ = 0. ;
+	vyyerror("Unknown Variable '%s'", $1) ;  $$ = 0. ;
       }
       else  $$ = TheSymbol.val ;
       Free($1);
@@ -1844,6 +1930,32 @@ VExpr_Single :
     {
       $$[0]=$2;  $$[1]=$4;  $$[2]=$6;  $$[3]=0.0; $$[4]=1.0;
     }
+  | tSTRING '.' tSTRING
+    {
+      if(!(pArrCat = Get_ArrayOptionCategory($1)))
+	vyyerror("Unknown Array Option Class '%s'", $1);
+      else{
+	if(!(pArrOpt = Get_ArrayOption($3, pArrCat, &i)))
+	  vyyerror("Unknown Array Option '%s.%s'", $1, $3);
+	else{
+	  switch(i){
+	  case GMSH_DOUBLE :
+	    for(j=0 ; j<4 ; j++) $$[j] = ((double*)pArrOpt)[j] ; 
+	    break ;
+	  case GMSH_FLOAT :
+	    for(j=0 ; j<4 ; j++) $$[j] = (double)((float*)pArrOpt)[j] ;
+	    break ;
+	  case GMSH_LONG : 
+	    for(j=0 ; j<4 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
+	    break ;
+	  case GMSH_INT :
+	    for(j=0 ; j<4 ; j++) $$[j] = (double)((int*)pArrOpt)[j] ; 
+	    break ;
+	  }
+	  $$[4] = 1. ;
+	}
+      }
+    }
 ;
 
 ListOfStrings :
@@ -2000,4 +2112,3 @@ void vyyerror(char *fmt, ...){
   yyerrorstate=1;
 }
 
-
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 0065639b608248f66e21486f6a7a6f366b0e84d9..19b2371535f9a1b10152659e4eba9dd513f59008 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.19 2000-12-06 22:36:44 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.20 2000-12-06 23:01:55 geuzaine Exp $
  */
 
 #define FLEX_SCANNER