diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp index a36735c2aec2495c3072acec3ff38f852fc4d03d..dd043cf2dd5bfa6e733e352576e6405cd2ff0a39 100644 --- a/Geo/GFace.cpp +++ b/Geo/GFace.cpp @@ -146,6 +146,45 @@ std::list<GVertex*> GFace::vertices() const return ret; } +std::vector<std::pair<GEdge*, int> > GFace::sortedEdges() const +{ + std::vector<std::pair<GEdge*, int> > sorted; + + if(l_dirs.size() == l_edges.size()){ + std::vector<std::pair<GEdge*, int> > tmp; + std::list<GEdge*>::const_iterator ite = l_edges.begin(); + std::list<int>::const_iterator itd = l_dirs.begin(); + while(ite != l_edges.end()){ + tmp.push_back(std::pair<GEdge*, int>(*ite, *itd)); + ite++; itd++; + } + if(tmp.size()){ + sorted.push_back(tmp.front()); + tmp.erase(tmp.begin()); + int check = 0; + while(sorted.size() < l_edges.size()){ + if(++check > l_edges.size()){ + Msg::Warning("Aborting sorted edge computation"); + break; + } + GVertex *v1 = (sorted.back().second > 0) ? sorted.back().first->getEndVertex() : + sorted.back().first->getBeginVertex(); + for(std::vector<std::pair<GEdge*, int> >::iterator it = tmp.begin(); + it != tmp.end(); it++){ + GVertex *v2 = (it->second > 0) ? it->first->getBeginVertex() : + it->first->getEndVertex(); + if(v1 == v2){ + sorted.push_back(*it); + tmp.erase(it); + break; + } + } + } + } + } + return sorted; +} + void GFace::setVisibility(char val, bool recursive) { GEntity::setVisibility(val); diff --git a/Geo/GFace.h b/Geo/GFace.h index d58780d47b9b21d7265cb6fa0676ba39499dcd8f..dd578ae85057050ad48a92be76ac738dc8f878e0 100644 --- a/Geo/GFace.h +++ b/Geo/GFace.h @@ -73,6 +73,9 @@ class GFace : public GEntity // edges that bound the face virtual std::list<GEdge*> edges() const { return l_edges; } + // edges that bound the face, sorted in a loop, with orientation + virtual std::vector<std::pair<GEdge*, int> > sortedEdges() const; + // edges that are embedded in the face virtual std::list<GEdge*> embeddedEdges() const { return embedded_edges; } diff --git a/Mesh/meshGFaceTransfinite.cpp b/Mesh/meshGFaceTransfinite.cpp index 770cd8cc05329f05e18ab896f5d0841289ad3843..1d8bd18987ec3c514e8f3a0285607593f0f57643 100644 --- a/Mesh/meshGFaceTransfinite.cpp +++ b/Mesh/meshGFaceTransfinite.cpp @@ -43,19 +43,33 @@ int MeshTransfiniteSurface(GFace *gf) Msg::StatusBar(2, true, "Meshing surface %d (transfinite)", gf->tag()); - std::vector<MVertex*> corners, d_vertices; - std::vector<int> indices; - - for(unsigned int i = 0; i < gf->meshAttributes.corners.size(); i++) - corners.push_back(gf->meshAttributes.corners[i]->mesh_vertices[0]); + std::vector<MVertex*> corners; - computeEdgeLoops(gf, d_vertices, indices); + if(gf->meshAttributes.corners.size()){ + // corners have been specified explicitly + for(unsigned int i = 0; i < gf->meshAttributes.corners.size(); i++) + corners.push_back(gf->meshAttributes.corners[i]->mesh_vertices[0]); + } + else{ + // try to find the corners automatically + std::vector<std::pair<GEdge*, int> > bnd = gf->sortedEdges(); + for(unsigned int i = 0; i < bnd.size(); i++) + if(bnd[i].second > 0) + corners.push_back(bnd[i].first->getBeginVertex()->mesh_vertices[0]); + else + corners.push_back(bnd[i].first->getEndVertex()->mesh_vertices[0]); + } if(corners.size () != 3 && corners.size () != 4){ Msg::Error("Surface %d is transfinite but has %d corners", gf->tag(), corners.size()); return 0; } + + std::vector<MVertex*> d_vertices; + std::vector<int> indices; + computeEdgeLoops(gf, d_vertices, indices); + if(indices.size () != 2){ Msg::Error("Surface %d is transfinite but has %d holes", gf->tag(), indices.size() - 2); diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index bbaa0ada946b4de794820f9c0ff5efc546be9518..f0649f86ce6f2cf27ac6f8eb96a87ee68dc0f4e0 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -646,16 +646,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6157 +#define YYLAST 6264 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 140 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 72 +#define YYNNTS 73 /* YYNRULES -- Number of rules. */ -#define YYNRULES 353 +#define YYNRULES 355 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1240 +#define YYNSTATES 1239 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -733,21 +733,21 @@ static const yytype_uint16 yyprhs[] = 1095, 1110, 1125, 1126, 1139, 1140, 1153, 1154, 1167, 1168, 1185, 1186, 1203, 1204, 1221, 1222, 1241, 1242, 1261, 1262, 1281, 1283, 1286, 1292, 1300, 1310, 1313, 1323, 1324, 1328, - 1329, 1331, 1332, 1335, 1343, 1353, 1362, 1371, 1377, 1384, - 1395, 1406, 1417, 1428, 1431, 1435, 1437, 1441, 1444, 1447, - 1450, 1454, 1458, 1462, 1466, 1470, 1474, 1478, 1482, 1486, - 1490, 1494, 1498, 1502, 1506, 1512, 1517, 1522, 1527, 1532, - 1537, 1542, 1547, 1552, 1557, 1562, 1569, 1574, 1579, 1584, - 1589, 1594, 1599, 1606, 1613, 1620, 1625, 1630, 1635, 1640, - 1645, 1650, 1655, 1660, 1665, 1670, 1675, 1682, 1687, 1692, - 1697, 1702, 1707, 1712, 1719, 1726, 1733, 1738, 1740, 1742, - 1744, 1746, 1748, 1750, 1752, 1754, 1760, 1765, 1770, 1773, - 1779, 1783, 1790, 1795, 1803, 1810, 1812, 1815, 1818, 1822, - 1826, 1838, 1848, 1856, 1864, 1866, 1870, 1872, 1874, 1877, - 1881, 1886, 1892, 1895, 1899, 1903, 1909, 1914, 1916, 1918, - 1922, 1929, 1931, 1933, 1937, 1941, 1951, 1959, 1961, 1967, - 1971, 1978, 1980, 1984, 1986, 1988, 1992, 1999, 2001, 2003, - 2010, 2015, 2020, 2025 + 1329, 1331, 1332, 1335, 1336, 1339, 1347, 1354, 1363, 1372, + 1378, 1385, 1396, 1407, 1418, 1429, 1432, 1436, 1438, 1442, + 1445, 1448, 1451, 1455, 1459, 1463, 1467, 1471, 1475, 1479, + 1483, 1487, 1491, 1495, 1499, 1503, 1507, 1513, 1518, 1523, + 1528, 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1570, 1575, + 1580, 1585, 1590, 1595, 1600, 1607, 1614, 1621, 1626, 1631, + 1636, 1641, 1646, 1651, 1656, 1661, 1666, 1671, 1676, 1683, + 1688, 1693, 1698, 1703, 1708, 1713, 1720, 1727, 1734, 1739, + 1741, 1743, 1745, 1747, 1749, 1751, 1753, 1755, 1761, 1766, + 1771, 1774, 1780, 1784, 1791, 1796, 1804, 1811, 1813, 1816, + 1819, 1823, 1827, 1839, 1849, 1857, 1865, 1867, 1871, 1873, + 1875, 1878, 1882, 1887, 1893, 1896, 1900, 1904, 1910, 1915, + 1917, 1919, 1923, 1930, 1932, 1934, 1938, 1942, 1952, 1960, + 1962, 1968, 1972, 1979, 1981, 1985, 1987, 1989, 1993, 2000, + 2002, 2004, 2011, 2016, 2021, 2026 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -756,248 +756,248 @@ static const yytype_int16 yyrhs[] = 141, 0, -1, 142, -1, 1, 6, -1, -1, 142, 143, -1, 146, -1, 145, -1, 164, -1, 168, -1, 169, -1, 172, -1, 173, -1, 174, -1, 177, -1, - 196, -1, 197, -1, 198, -1, 176, -1, 175, -1, + 197, -1, 198, -1, 199, -1, 176, -1, 175, -1, 117, -1, 117, 117, -1, 35, 130, 5, 131, 6, - -1, 35, 130, 5, 131, 144, 210, 6, -1, 35, - 130, 5, 136, 206, 131, 6, -1, 35, 130, 5, - 136, 206, 131, 144, 210, 6, -1, 4, 5, 137, - 147, 138, 6, -1, 77, 4, 132, 199, 133, 6, - -1, 78, 4, 132, 199, 133, 6, -1, -1, 147, + -1, 35, 130, 5, 131, 144, 211, 6, -1, 35, + 130, 5, 136, 207, 131, 6, -1, 35, 130, 5, + 136, 207, 131, 144, 211, 6, -1, 4, 5, 137, + 147, 138, 6, -1, 77, 4, 132, 200, 133, 6, + -1, 78, 4, 132, 200, 133, 6, -1, -1, 147, 150, -1, 147, 154, -1, 147, 157, -1, 147, 159, - -1, 147, 160, -1, 199, -1, 148, 136, 199, -1, - 199, -1, 149, 136, 199, -1, -1, -1, 4, 151, - 130, 148, 131, 152, 137, 149, 138, 6, -1, 210, - -1, 153, 136, 210, -1, -1, 79, 130, 199, 136, - 199, 136, 199, 131, 155, 137, 153, 138, 6, -1, - 210, -1, 156, 136, 210, -1, -1, 80, 130, 199, - 136, 199, 136, 199, 136, 199, 131, 158, 137, 156, - 138, 6, -1, 81, 137, 203, 138, 137, 203, 138, - 6, -1, 81, 137, 203, 138, 137, 203, 138, 137, - 203, 138, 137, 203, 138, 6, -1, -1, 82, 161, + -1, 147, 160, -1, 200, -1, 148, 136, 200, -1, + 200, -1, 149, 136, 200, -1, -1, -1, 4, 151, + 130, 148, 131, 152, 137, 149, 138, 6, -1, 211, + -1, 153, 136, 211, -1, -1, 79, 130, 200, 136, + 200, 136, 200, 131, 155, 137, 153, 138, 6, -1, + 211, -1, 156, 136, 211, -1, -1, 80, 130, 200, + 136, 200, 136, 200, 136, 200, 131, 158, 137, 156, + 138, 6, -1, 81, 137, 204, 138, 137, 204, 138, + 6, -1, 81, 137, 204, 138, 137, 204, 138, 137, + 204, 138, 137, 204, 138, 6, -1, -1, 82, 161, 137, 149, 138, 6, -1, 7, -1, 110, -1, 109, -1, 108, -1, 107, -1, 128, -1, 127, -1, 4, - 162, 199, 6, -1, 4, 132, 199, 133, 162, 199, - 6, -1, 4, 132, 137, 206, 138, 133, 162, 204, - 6, -1, 4, 132, 133, 7, 204, 6, -1, 4, - 132, 133, 110, 204, 6, -1, 4, 163, 6, -1, - 4, 132, 199, 133, 163, 6, -1, 4, 7, 211, - 6, -1, 4, 134, 4, 7, 211, 6, -1, 4, - 132, 199, 133, 134, 4, 7, 211, 6, -1, 4, - 134, 4, 162, 199, 6, -1, 4, 132, 199, 133, - 134, 4, 162, 199, 6, -1, 4, 134, 4, 163, - 6, -1, 4, 132, 199, 133, 134, 4, 163, 6, - -1, 4, 134, 89, 134, 4, 7, 207, 6, -1, - 4, 132, 199, 133, 134, 89, 134, 4, 7, 207, - 6, -1, 4, 134, 90, 7, 208, 6, -1, 4, - 132, 199, 133, 134, 90, 7, 208, 6, -1, 4, - 97, 7, 199, 6, -1, 97, 132, 199, 133, 7, - 4, 6, -1, 97, 132, 199, 133, 134, 4, 7, - 199, 6, -1, 97, 132, 199, 133, 134, 4, 7, - 211, 6, -1, 97, 132, 199, 133, 134, 4, 7, - 137, 206, 138, 6, -1, 62, 130, 4, 131, 134, - 4, 7, 199, 6, -1, 62, 130, 4, 131, 134, - 4, 7, 211, 6, -1, 199, -1, 211, -1, -1, - 92, 47, 137, 199, 138, -1, -1, 56, 201, -1, - 43, 130, 199, 131, 7, 201, 6, -1, 60, 43, - 130, 165, 131, 7, 204, 6, -1, 52, 53, 204, - 7, 199, 6, -1, 46, 130, 199, 131, 7, 204, - 6, -1, 50, 130, 199, 131, 7, 204, 6, -1, - 44, 130, 199, 131, 7, 204, 167, 6, -1, 45, - 130, 199, 131, 7, 204, 167, 6, -1, 54, 130, - 199, 131, 7, 137, 199, 136, 199, 136, 5, 136, - 5, 136, 5, 138, 6, -1, 84, 130, 199, 131, - 7, 204, 6, -1, 85, 130, 199, 131, 7, 204, - 6, -1, 86, 130, 199, 131, 7, 204, 88, 204, - 87, 199, 6, -1, 46, 68, 130, 199, 131, 7, - 204, 6, -1, 60, 46, 130, 165, 131, 7, 204, - 6, -1, 56, 49, 130, 199, 131, 7, 204, 6, - -1, 57, 49, 130, 199, 131, 7, 204, 166, 6, - -1, 12, 13, 6, -1, 13, 49, 199, 6, -1, - 54, 49, 130, 199, 131, 7, 5, 5, 5, 6, - -1, 47, 130, 199, 131, 7, 204, 6, -1, 48, - 130, 199, 131, 7, 204, 6, -1, 49, 68, 130, - 199, 131, 7, 204, 6, -1, 60, 49, 130, 165, - 131, 7, 204, 6, -1, 59, 51, 130, 199, 131, - 7, 204, 6, -1, 51, 130, 199, 131, 7, 204, - 6, -1, 60, 51, 130, 165, 131, 7, 204, 6, - -1, 64, 201, 137, 170, 138, -1, 63, 137, 201, - 136, 201, 136, 199, 138, 137, 170, 138, -1, 65, - 201, 137, 170, 138, -1, 66, 137, 201, 136, 199, + 162, 200, 6, -1, 4, 132, 200, 133, 162, 200, + 6, -1, 4, 132, 137, 207, 138, 133, 162, 205, + 6, -1, 4, 132, 133, 7, 205, 6, -1, 4, + 132, 133, 110, 205, 6, -1, 4, 163, 6, -1, + 4, 132, 200, 133, 163, 6, -1, 4, 7, 212, + 6, -1, 4, 134, 4, 7, 212, 6, -1, 4, + 132, 200, 133, 134, 4, 7, 212, 6, -1, 4, + 134, 4, 162, 200, 6, -1, 4, 132, 200, 133, + 134, 4, 162, 200, 6, -1, 4, 134, 4, 163, + 6, -1, 4, 132, 200, 133, 134, 4, 163, 6, + -1, 4, 134, 89, 134, 4, 7, 208, 6, -1, + 4, 132, 200, 133, 134, 89, 134, 4, 7, 208, + 6, -1, 4, 134, 90, 7, 209, 6, -1, 4, + 132, 200, 133, 134, 90, 7, 209, 6, -1, 4, + 97, 7, 200, 6, -1, 97, 132, 200, 133, 7, + 4, 6, -1, 97, 132, 200, 133, 134, 4, 7, + 200, 6, -1, 97, 132, 200, 133, 134, 4, 7, + 212, 6, -1, 97, 132, 200, 133, 134, 4, 7, + 137, 207, 138, 6, -1, 62, 130, 4, 131, 134, + 4, 7, 200, 6, -1, 62, 130, 4, 131, 134, + 4, 7, 212, 6, -1, 200, -1, 212, -1, -1, + 92, 47, 137, 200, 138, -1, -1, 56, 202, -1, + 43, 130, 200, 131, 7, 202, 6, -1, 60, 43, + 130, 165, 131, 7, 205, 6, -1, 52, 53, 205, + 7, 200, 6, -1, 46, 130, 200, 131, 7, 205, + 6, -1, 50, 130, 200, 131, 7, 205, 6, -1, + 44, 130, 200, 131, 7, 205, 167, 6, -1, 45, + 130, 200, 131, 7, 205, 167, 6, -1, 54, 130, + 200, 131, 7, 137, 200, 136, 200, 136, 5, 136, + 5, 136, 5, 138, 6, -1, 84, 130, 200, 131, + 7, 205, 6, -1, 85, 130, 200, 131, 7, 205, + 6, -1, 86, 130, 200, 131, 7, 205, 88, 205, + 87, 200, 6, -1, 46, 68, 130, 200, 131, 7, + 205, 6, -1, 60, 46, 130, 165, 131, 7, 205, + 6, -1, 56, 49, 130, 200, 131, 7, 205, 6, + -1, 57, 49, 130, 200, 131, 7, 205, 166, 6, + -1, 12, 13, 6, -1, 13, 49, 200, 6, -1, + 54, 49, 130, 200, 131, 7, 5, 5, 5, 6, + -1, 47, 130, 200, 131, 7, 205, 6, -1, 48, + 130, 200, 131, 7, 205, 6, -1, 49, 68, 130, + 200, 131, 7, 205, 6, -1, 60, 49, 130, 165, + 131, 7, 205, 6, -1, 59, 51, 130, 200, 131, + 7, 205, 6, -1, 51, 130, 200, 131, 7, 205, + 6, -1, 60, 51, 130, 165, 131, 7, 205, 6, + -1, 64, 202, 137, 170, 138, -1, 63, 137, 202, + 136, 202, 136, 200, 138, 137, 170, 138, -1, 65, + 202, 137, 170, 138, -1, 66, 137, 202, 136, 200, 138, 137, 170, 138, -1, 4, 137, 170, 138, -1, - 74, 46, 137, 206, 138, 49, 137, 199, 138, -1, - 71, 46, 130, 199, 131, 137, 206, 138, 6, -1, + 74, 46, 137, 207, 138, 49, 137, 200, 138, -1, + 71, 46, 130, 200, 131, 137, 207, 138, 6, -1, 171, -1, 169, -1, -1, 171, 168, -1, 171, 43, - 137, 206, 138, 6, -1, 171, 46, 137, 206, 138, - 6, -1, 171, 49, 137, 206, 138, 6, -1, 171, - 51, 137, 206, 138, 6, -1, 72, 137, 171, 138, - -1, 72, 97, 132, 199, 133, 6, -1, 72, 4, - 132, 199, 133, 6, -1, 72, 4, 6, -1, 72, - 4, 4, 6, -1, 89, 207, 137, 171, 138, -1, - 101, 210, 6, -1, 102, 210, 6, -1, 101, 137, - 171, 138, -1, 102, 137, 171, 138, -1, 4, 211, - 6, -1, 4, 4, 132, 199, 133, 210, 6, -1, - 4, 4, 4, 132, 199, 133, 6, -1, 4, 199, + 137, 207, 138, 6, -1, 171, 46, 137, 207, 138, + 6, -1, 171, 49, 137, 207, 138, 6, -1, 171, + 51, 137, 207, 138, 6, -1, 72, 137, 171, 138, + -1, 72, 97, 132, 200, 133, 6, -1, 72, 4, + 132, 200, 133, 6, -1, 72, 4, 6, -1, 72, + 4, 4, 6, -1, 89, 208, 137, 171, 138, -1, + 101, 211, 6, -1, 102, 211, 6, -1, 101, 137, + 171, 138, -1, 102, 137, 171, 138, -1, 4, 212, + 6, -1, 4, 4, 132, 200, 133, 211, 6, -1, + 4, 4, 4, 132, 200, 133, 6, -1, 4, 200, 6, -1, 62, 130, 4, 131, 134, 4, 6, -1, 83, 4, 6, -1, 96, 6, -1, 40, 6, -1, - 40, 137, 199, 136, 199, 136, 199, 136, 199, 136, - 199, 136, 199, 138, 6, -1, 41, 6, -1, 91, - 130, 199, 8, 199, 131, -1, 91, 130, 199, 8, - 199, 8, 199, 131, -1, 91, 4, 92, 137, 199, - 8, 199, 138, -1, 91, 4, 92, 137, 199, 8, - 199, 8, 199, 138, -1, 93, -1, 100, 4, -1, - 98, -1, 99, 4, 6, -1, 94, 130, 199, 131, - -1, 95, -1, 67, 201, 137, 171, 138, -1, 67, - 137, 201, 136, 201, 136, 199, 138, 137, 171, 138, - -1, 67, 137, 201, 136, 201, 136, 201, 136, 199, - 138, 137, 171, 138, -1, -1, 67, 201, 137, 171, - 178, 191, 138, -1, -1, 67, 137, 201, 136, 201, - 136, 199, 138, 137, 171, 179, 191, 138, -1, -1, - 67, 137, 201, 136, 201, 136, 201, 136, 199, 138, + 40, 137, 200, 136, 200, 136, 200, 136, 200, 136, + 200, 136, 200, 138, 6, -1, 41, 6, -1, 91, + 130, 200, 8, 200, 131, -1, 91, 130, 200, 8, + 200, 8, 200, 131, -1, 91, 4, 92, 137, 200, + 8, 200, 138, -1, 91, 4, 92, 137, 200, 8, + 200, 8, 200, 138, -1, 93, -1, 100, 4, -1, + 98, -1, 99, 4, 6, -1, 94, 130, 200, 131, + -1, 95, -1, 67, 202, 137, 171, 138, -1, 67, + 137, 202, 136, 202, 136, 200, 138, 137, 171, 138, + -1, 67, 137, 202, 136, 202, 136, 202, 136, 200, + 138, 137, 171, 138, -1, -1, 67, 202, 137, 171, + 178, 191, 138, -1, -1, 67, 137, 202, 136, 202, + 136, 200, 138, 137, 171, 179, 191, 138, -1, -1, + 67, 137, 202, 136, 202, 136, 202, 136, 200, 138, 137, 171, 180, 191, 138, -1, -1, 67, 137, 171, - 181, 191, 138, -1, 67, 43, 137, 199, 136, 201, - 138, 6, -1, 67, 46, 137, 199, 136, 201, 138, - 6, -1, 67, 49, 137, 199, 136, 201, 138, 6, - -1, 67, 43, 137, 199, 136, 201, 136, 201, 136, - 199, 138, 6, -1, 67, 46, 137, 199, 136, 201, - 136, 201, 136, 199, 138, 6, -1, 67, 49, 137, - 199, 136, 201, 136, 201, 136, 199, 138, 6, -1, - 67, 43, 137, 199, 136, 201, 136, 201, 136, 201, - 136, 199, 138, 6, -1, 67, 46, 137, 199, 136, - 201, 136, 201, 136, 201, 136, 199, 138, 6, -1, - 67, 49, 137, 199, 136, 201, 136, 201, 136, 201, - 136, 199, 138, 6, -1, -1, 67, 43, 137, 199, - 136, 201, 138, 182, 137, 191, 138, 6, -1, -1, - 67, 46, 137, 199, 136, 201, 138, 183, 137, 191, - 138, 6, -1, -1, 67, 49, 137, 199, 136, 201, + 181, 191, 138, -1, 67, 43, 137, 200, 136, 202, + 138, 6, -1, 67, 46, 137, 200, 136, 202, 138, + 6, -1, 67, 49, 137, 200, 136, 202, 138, 6, + -1, 67, 43, 137, 200, 136, 202, 136, 202, 136, + 200, 138, 6, -1, 67, 46, 137, 200, 136, 202, + 136, 202, 136, 200, 138, 6, -1, 67, 49, 137, + 200, 136, 202, 136, 202, 136, 200, 138, 6, -1, + 67, 43, 137, 200, 136, 202, 136, 202, 136, 202, + 136, 200, 138, 6, -1, 67, 46, 137, 200, 136, + 202, 136, 202, 136, 202, 136, 200, 138, 6, -1, + 67, 49, 137, 200, 136, 202, 136, 202, 136, 202, + 136, 200, 138, 6, -1, -1, 67, 43, 137, 200, + 136, 202, 138, 182, 137, 191, 138, 6, -1, -1, + 67, 46, 137, 200, 136, 202, 138, 183, 137, 191, + 138, 6, -1, -1, 67, 49, 137, 200, 136, 202, 138, 184, 137, 191, 138, 6, -1, -1, 67, 43, - 137, 199, 136, 201, 136, 201, 136, 199, 138, 185, - 137, 191, 138, 6, -1, -1, 67, 46, 137, 199, - 136, 201, 136, 201, 136, 199, 138, 186, 137, 191, - 138, 6, -1, -1, 67, 49, 137, 199, 136, 201, - 136, 201, 136, 199, 138, 187, 137, 191, 138, 6, - -1, -1, 67, 43, 137, 199, 136, 201, 136, 201, - 136, 201, 136, 199, 138, 188, 137, 191, 138, 6, - -1, -1, 67, 46, 137, 199, 136, 201, 136, 201, - 136, 201, 136, 199, 138, 189, 137, 191, 138, 6, - -1, -1, 67, 49, 137, 199, 136, 201, 136, 201, - 136, 201, 136, 199, 138, 190, 137, 191, 138, 6, - -1, 192, -1, 191, 192, -1, 75, 137, 199, 138, - 6, -1, 75, 137, 204, 136, 204, 138, 6, -1, - 75, 137, 204, 136, 204, 136, 204, 138, 6, -1, - 69, 6, -1, 76, 130, 199, 131, 7, 204, 61, - 199, 6, -1, -1, 61, 4, 199, -1, -1, 4, - -1, -1, 7, 199, -1, 58, 46, 204, 7, 199, - 193, 6, -1, 58, 49, 137, 199, 138, 7, 204, - 194, 6, -1, 55, 49, 137, 199, 138, 7, 204, - 6, -1, 58, 51, 137, 199, 138, 7, 204, 6, - -1, 69, 49, 204, 195, 6, -1, 70, 49, 204, - 7, 199, 6, -1, 43, 137, 206, 138, 92, 49, - 137, 199, 138, 6, -1, 46, 137, 206, 138, 92, - 49, 137, 199, 138, 6, -1, 46, 137, 206, 138, - 92, 51, 137, 199, 138, 6, -1, 49, 137, 206, - 138, 92, 51, 137, 199, 138, 6, -1, 73, 6, - -1, 73, 4, 6, -1, 200, -1, 130, 199, 131, - -1, 121, 199, -1, 120, 199, -1, 125, 199, -1, - 199, 121, 199, -1, 199, 120, 199, -1, 199, 122, - 199, -1, 199, 123, 199, -1, 199, 124, 199, -1, - 199, 129, 199, -1, 199, 116, 199, -1, 199, 117, - 199, -1, 199, 119, 199, -1, 199, 118, 199, -1, - 199, 115, 199, -1, 199, 114, 199, -1, 199, 113, - 199, -1, 199, 112, 199, -1, 199, 111, 199, 8, - 199, -1, 14, 130, 199, 131, -1, 15, 130, 199, - 131, -1, 16, 130, 199, 131, -1, 17, 130, 199, - 131, -1, 18, 130, 199, 131, -1, 19, 130, 199, - 131, -1, 20, 130, 199, 131, -1, 21, 130, 199, - 131, -1, 22, 130, 199, 131, -1, 24, 130, 199, - 131, -1, 25, 130, 199, 136, 199, 131, -1, 26, - 130, 199, 131, -1, 27, 130, 199, 131, -1, 28, - 130, 199, 131, -1, 29, 130, 199, 131, -1, 30, - 130, 199, 131, -1, 31, 130, 199, 131, -1, 32, - 130, 199, 136, 199, 131, -1, 33, 130, 199, 136, - 199, 131, -1, 34, 130, 199, 136, 199, 131, -1, - 23, 130, 199, 131, -1, 14, 132, 199, 133, -1, - 15, 132, 199, 133, -1, 16, 132, 199, 133, -1, - 17, 132, 199, 133, -1, 18, 132, 199, 133, -1, - 19, 132, 199, 133, -1, 20, 132, 199, 133, -1, - 21, 132, 199, 133, -1, 22, 132, 199, 133, -1, - 24, 132, 199, 133, -1, 25, 132, 199, 136, 199, - 133, -1, 26, 132, 199, 133, -1, 27, 132, 199, - 133, -1, 28, 132, 199, 133, -1, 29, 132, 199, - 133, -1, 30, 132, 199, 133, -1, 31, 132, 199, - 133, -1, 32, 132, 199, 136, 199, 133, -1, 33, - 132, 199, 136, 199, 133, -1, 34, 132, 199, 136, - 199, 133, -1, 23, 132, 199, 133, -1, 3, -1, - 9, -1, 10, -1, 11, -1, 104, -1, 105, -1, - 106, -1, 4, -1, 4, 139, 137, 199, 138, -1, - 4, 132, 199, 133, -1, 135, 4, 132, 133, -1, - 4, 163, -1, 4, 132, 199, 133, 163, -1, 4, - 134, 4, -1, 4, 132, 199, 133, 134, 4, -1, - 4, 134, 4, 163, -1, 4, 132, 199, 133, 134, - 4, 163, -1, 103, 130, 5, 136, 199, 131, -1, - 202, -1, 121, 201, -1, 120, 201, -1, 201, 121, - 201, -1, 201, 120, 201, -1, 137, 199, 136, 199, - 136, 199, 136, 199, 136, 199, 138, -1, 137, 199, - 136, 199, 136, 199, 136, 199, 138, -1, 137, 199, - 136, 199, 136, 199, 138, -1, 130, 199, 136, 199, - 136, 199, 131, -1, 204, -1, 203, 136, 204, -1, - 199, -1, 205, -1, 137, 138, -1, 137, 206, 138, - -1, 121, 137, 206, 138, -1, 199, 122, 137, 206, - 138, -1, 121, 205, -1, 199, 122, 205, -1, 199, - 8, 199, -1, 199, 8, 199, 8, 199, -1, 43, - 137, 199, 138, -1, 169, -1, 177, -1, 4, 132, - 133, -1, 4, 132, 137, 206, 138, 133, -1, 199, - -1, 205, -1, 206, 136, 199, -1, 206, 136, 205, - -1, 137, 199, 136, 199, 136, 199, 136, 199, 138, - -1, 137, 199, 136, 199, 136, 199, 138, -1, 4, - -1, 4, 134, 89, 134, 4, -1, 137, 209, 138, - -1, 4, 132, 199, 133, 134, 90, -1, 207, -1, - 209, 136, 207, -1, 211, -1, 4, -1, 4, 134, - 4, -1, 4, 132, 199, 133, 134, 4, -1, 5, - -1, 42, -1, 37, 130, 210, 136, 210, 131, -1, - 38, 130, 210, 131, -1, 39, 130, 210, 131, -1, - 36, 130, 210, 131, -1, 36, 130, 210, 136, 206, - 131, -1 + 137, 200, 136, 202, 136, 202, 136, 200, 138, 185, + 137, 191, 138, 6, -1, -1, 67, 46, 137, 200, + 136, 202, 136, 202, 136, 200, 138, 186, 137, 191, + 138, 6, -1, -1, 67, 49, 137, 200, 136, 202, + 136, 202, 136, 200, 138, 187, 137, 191, 138, 6, + -1, -1, 67, 43, 137, 200, 136, 202, 136, 202, + 136, 202, 136, 200, 138, 188, 137, 191, 138, 6, + -1, -1, 67, 46, 137, 200, 136, 202, 136, 202, + 136, 202, 136, 200, 138, 189, 137, 191, 138, 6, + -1, -1, 67, 49, 137, 200, 136, 202, 136, 202, + 136, 202, 136, 200, 138, 190, 137, 191, 138, 6, + -1, 192, -1, 191, 192, -1, 75, 137, 200, 138, + 6, -1, 75, 137, 205, 136, 205, 138, 6, -1, + 75, 137, 205, 136, 205, 136, 205, 138, 6, -1, + 69, 6, -1, 76, 130, 200, 131, 7, 205, 61, + 200, 6, -1, -1, 61, 4, 200, -1, -1, 4, + -1, -1, 7, 205, -1, -1, 7, 200, -1, 58, + 46, 205, 7, 200, 193, 6, -1, 58, 49, 205, + 195, 194, 6, -1, 55, 49, 137, 200, 138, 7, + 205, 6, -1, 58, 51, 137, 200, 138, 7, 205, + 6, -1, 69, 49, 205, 196, 6, -1, 70, 49, + 205, 7, 200, 6, -1, 43, 137, 207, 138, 92, + 49, 137, 200, 138, 6, -1, 46, 137, 207, 138, + 92, 49, 137, 200, 138, 6, -1, 46, 137, 207, + 138, 92, 51, 137, 200, 138, 6, -1, 49, 137, + 207, 138, 92, 51, 137, 200, 138, 6, -1, 73, + 6, -1, 73, 4, 6, -1, 201, -1, 130, 200, + 131, -1, 121, 200, -1, 120, 200, -1, 125, 200, + -1, 200, 121, 200, -1, 200, 120, 200, -1, 200, + 122, 200, -1, 200, 123, 200, -1, 200, 124, 200, + -1, 200, 129, 200, -1, 200, 116, 200, -1, 200, + 117, 200, -1, 200, 119, 200, -1, 200, 118, 200, + -1, 200, 115, 200, -1, 200, 114, 200, -1, 200, + 113, 200, -1, 200, 112, 200, -1, 200, 111, 200, + 8, 200, -1, 14, 130, 200, 131, -1, 15, 130, + 200, 131, -1, 16, 130, 200, 131, -1, 17, 130, + 200, 131, -1, 18, 130, 200, 131, -1, 19, 130, + 200, 131, -1, 20, 130, 200, 131, -1, 21, 130, + 200, 131, -1, 22, 130, 200, 131, -1, 24, 130, + 200, 131, -1, 25, 130, 200, 136, 200, 131, -1, + 26, 130, 200, 131, -1, 27, 130, 200, 131, -1, + 28, 130, 200, 131, -1, 29, 130, 200, 131, -1, + 30, 130, 200, 131, -1, 31, 130, 200, 131, -1, + 32, 130, 200, 136, 200, 131, -1, 33, 130, 200, + 136, 200, 131, -1, 34, 130, 200, 136, 200, 131, + -1, 23, 130, 200, 131, -1, 14, 132, 200, 133, + -1, 15, 132, 200, 133, -1, 16, 132, 200, 133, + -1, 17, 132, 200, 133, -1, 18, 132, 200, 133, + -1, 19, 132, 200, 133, -1, 20, 132, 200, 133, + -1, 21, 132, 200, 133, -1, 22, 132, 200, 133, + -1, 24, 132, 200, 133, -1, 25, 132, 200, 136, + 200, 133, -1, 26, 132, 200, 133, -1, 27, 132, + 200, 133, -1, 28, 132, 200, 133, -1, 29, 132, + 200, 133, -1, 30, 132, 200, 133, -1, 31, 132, + 200, 133, -1, 32, 132, 200, 136, 200, 133, -1, + 33, 132, 200, 136, 200, 133, -1, 34, 132, 200, + 136, 200, 133, -1, 23, 132, 200, 133, -1, 3, + -1, 9, -1, 10, -1, 11, -1, 104, -1, 105, + -1, 106, -1, 4, -1, 4, 139, 137, 200, 138, + -1, 4, 132, 200, 133, -1, 135, 4, 132, 133, + -1, 4, 163, -1, 4, 132, 200, 133, 163, -1, + 4, 134, 4, -1, 4, 132, 200, 133, 134, 4, + -1, 4, 134, 4, 163, -1, 4, 132, 200, 133, + 134, 4, 163, -1, 103, 130, 5, 136, 200, 131, + -1, 203, -1, 121, 202, -1, 120, 202, -1, 202, + 121, 202, -1, 202, 120, 202, -1, 137, 200, 136, + 200, 136, 200, 136, 200, 136, 200, 138, -1, 137, + 200, 136, 200, 136, 200, 136, 200, 138, -1, 137, + 200, 136, 200, 136, 200, 138, -1, 130, 200, 136, + 200, 136, 200, 131, -1, 205, -1, 204, 136, 205, + -1, 200, -1, 206, -1, 137, 138, -1, 137, 207, + 138, -1, 121, 137, 207, 138, -1, 200, 122, 137, + 207, 138, -1, 121, 206, -1, 200, 122, 206, -1, + 200, 8, 200, -1, 200, 8, 200, 8, 200, -1, + 43, 137, 200, 138, -1, 169, -1, 177, -1, 4, + 132, 133, -1, 4, 132, 137, 207, 138, 133, -1, + 200, -1, 206, -1, 207, 136, 200, -1, 207, 136, + 206, -1, 137, 200, 136, 200, 136, 200, 136, 200, + 138, -1, 137, 200, 136, 200, 136, 200, 138, -1, + 4, -1, 4, 134, 89, 134, 4, -1, 137, 210, + 138, -1, 4, 132, 200, 133, 134, 90, -1, 208, + -1, 210, 136, 208, -1, 212, -1, 4, -1, 4, + 134, 4, -1, 4, 132, 200, 133, 134, 4, -1, + 5, -1, 42, -1, 37, 130, 211, 136, 211, 131, + -1, 38, 130, 211, 131, -1, 39, 130, 211, 131, + -1, 36, 130, 211, 131, -1, 36, 130, 211, 136, + 207, 131, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 138, 138, 139, 144, 146, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 167, 171, 178, 183, 198, 211, 240, 254, 265, 280, - 285, 286, 287, 288, 289, 293, 295, 300, 302, 308, - 454, 307, 472, 479, 490, 489, 508, 515, 526, 525, - 543, 558, 578, 577, 591, 592, 593, 594, 595, 599, - 600, 607, 629, 656, 696, 706, 714, 722, 734, 743, - 748, 756, 774, 792, 801, 813, 818, 826, 846, 869, - 876, 882, 902, 923, 949, 961, 978, 982, 992, 995, - 1010, 1013, 1023, 1046, 1062, 1084, 1102, 1120, 1150, 1180, - 1200, 1218, 1236, 1262, 1279, 1298, 1316, 1355, 1361, 1367, - 1374, 1399, 1424, 1440, 1460, 1478, 1495, 1516, 1521, 1526, - 1531, 1536, 1556, 1562, 1573, 1574, 1579, 1582, 1586, 1609, - 1632, 1655, 1683, 1692, 1696, 1711, 1732, 1749, 1763, 1769, - 1775, 1784, 1798, 1846, 1864, 1879, 1898, 1910, 1934, 1938, - 1943, 1948, 1960, 1977, 1994, 2013, 2032, 2060, 2068, 2074, - 2081, 2085, 2094, 2102, 2110, 2119, 2118, 2131, 2130, 2143, - 2142, 2155, 2154, 2167, 2174, 2181, 2188, 2195, 2202, 2209, - 2216, 2223, 2231, 2230, 2242, 2241, 2253, 2252, 2264, 2263, - 2275, 2274, 2286, 2285, 2297, 2296, 2308, 2307, 2319, 2318, - 2333, 2336, 2342, 2351, 2371, 2394, 2398, 2422, 2425, 2441, - 2444, 2457, 2460, 2467, 2496, 2540, 2545, 2587, 2609, 2635, - 2658, 2681, 2684, 2693, 2697, 2713, 2714, 2715, 2716, 2717, - 2718, 2719, 2720, 2721, 2728, 2729, 2730, 2731, 2732, 2733, - 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, - 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, - 2754, 2755, 2756, 2757, 2758, 2759, 2761, 2762, 2763, 2764, - 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, - 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2790, 2791, 2792, - 2793, 2794, 2795, 2796, 2800, 2813, 2825, 2840, 2850, 2860, - 2878, 2883, 2888, 2898, 2908, 2916, 2920, 2924, 2928, 2932, - 2939, 2943, 2947, 2951, 2958, 2963, 2970, 2975, 2979, 2984, - 2988, 2996, 3007, 3015, 3023, 3030, 3041, 3061, 3071, 3081, - 3091, 3111, 3116, 3120, 3124, 3136, 3140, 3152, 3159, 3169, - 3173, 3188, 3193, 3200, 3204, 3217, 3225, 3236, 3240, 3248, - 3256, 3270, 3284, 3288 + 0, 139, 139, 140, 145, 147, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 168, 172, 179, 184, 199, 212, 241, 255, 266, 281, + 286, 287, 288, 289, 290, 294, 296, 301, 303, 309, + 455, 308, 473, 480, 491, 490, 509, 516, 527, 526, + 544, 559, 579, 578, 592, 593, 594, 595, 596, 600, + 601, 608, 630, 657, 697, 707, 715, 723, 735, 744, + 749, 757, 775, 793, 802, 814, 819, 827, 847, 870, + 877, 883, 903, 924, 950, 962, 979, 983, 993, 996, + 1011, 1014, 1024, 1047, 1063, 1085, 1103, 1121, 1151, 1181, + 1201, 1219, 1237, 1263, 1280, 1299, 1317, 1356, 1362, 1368, + 1375, 1400, 1425, 1441, 1461, 1479, 1496, 1517, 1522, 1527, + 1532, 1537, 1557, 1563, 1574, 1575, 1580, 1583, 1587, 1610, + 1633, 1656, 1684, 1693, 1697, 1712, 1733, 1750, 1764, 1770, + 1776, 1785, 1799, 1847, 1865, 1880, 1899, 1911, 1935, 1939, + 1944, 1949, 1961, 1978, 1995, 2014, 2033, 2061, 2069, 2075, + 2082, 2086, 2095, 2103, 2111, 2120, 2119, 2132, 2131, 2144, + 2143, 2156, 2155, 2168, 2175, 2182, 2189, 2196, 2203, 2210, + 2217, 2224, 2232, 2231, 2243, 2242, 2254, 2253, 2265, 2264, + 2276, 2275, 2287, 2286, 2298, 2297, 2309, 2308, 2320, 2319, + 2334, 2337, 2343, 2352, 2372, 2395, 2399, 2423, 2426, 2442, + 2445, 2458, 2461, 2467, 2470, 2477, 2506, 2554, 2559, 2601, + 2623, 2649, 2672, 2695, 2698, 2707, 2711, 2727, 2728, 2729, + 2730, 2731, 2732, 2733, 2734, 2735, 2742, 2743, 2744, 2745, + 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, + 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, + 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2775, 2776, + 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, + 2787, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2804, + 2805, 2806, 2807, 2808, 2809, 2810, 2814, 2827, 2839, 2854, + 2864, 2874, 2892, 2897, 2902, 2912, 2922, 2930, 2934, 2938, + 2942, 2946, 2953, 2957, 2961, 2965, 2972, 2977, 2984, 2989, + 2993, 2998, 3002, 3010, 3021, 3029, 3037, 3044, 3055, 3075, + 3085, 3095, 3105, 3125, 3130, 3134, 3138, 3150, 3154, 3166, + 3173, 3183, 3187, 3202, 3207, 3214, 3218, 3231, 3239, 3250, + 3254, 3262, 3270, 3284, 3298, 3302 }; #endif @@ -1038,10 +1038,10 @@ static const char *const yytname[] = "Visibility", "Command", "Loop", "Extrude", "@6", "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", - "TransfiniteArrangement", "RecombineAngle", "Transfinite", "Embedding", - "Coherence", "FExpr", "FExpr_Single", "VExpr", "VExpr_Single", - "RecursiveListOfListOfDouble", "ListOfDouble", "FExpr_Multi", - "RecursiveListOfDouble", "ColorExpr", "ListOfColor", + "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", + "Transfinite", "Embedding", "Coherence", "FExpr", "FExpr_Single", + "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", "ListOfDouble", + "FExpr_Multi", "RecursiveListOfDouble", "ColorExpr", "ListOfColor", "RecursiveListOfColor", "StringExprVar", "StringExpr", 0 }; #endif @@ -1092,21 +1092,21 @@ static const yytype_uint8 yyr1[] = 177, 177, 182, 177, 183, 177, 184, 177, 185, 177, 186, 177, 187, 177, 188, 177, 189, 177, 190, 177, 191, 191, 192, 192, 192, 192, 192, 193, 193, 194, - 194, 195, 195, 196, 196, 196, 196, 196, 196, 197, - 197, 197, 197, 198, 198, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 200, 200, 200, + 194, 195, 195, 196, 196, 197, 197, 197, 197, 197, + 197, 198, 198, 198, 198, 199, 199, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, - 202, 202, 202, 202, 203, 203, 204, 204, 204, 204, - 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, - 205, 206, 206, 206, 206, 207, 207, 207, 207, 208, - 208, 209, 209, 210, 210, 210, 210, 211, 211, 211, - 211, 211, 211, 211 + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 201, + 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, + 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, + 202, 202, 203, 203, 203, 203, 204, 204, 205, 205, + 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 207, 207, 207, 207, 208, 208, 208, + 208, 209, 209, 210, 210, 211, 211, 211, 211, 212, + 212, 212, 212, 212, 212, 212 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1133,21 +1133,21 @@ static const yytype_uint8 yyr2[] = 14, 14, 0, 12, 0, 12, 0, 12, 0, 16, 0, 16, 0, 16, 0, 18, 0, 18, 0, 18, 1, 2, 5, 7, 9, 2, 9, 0, 3, 0, - 1, 0, 2, 7, 9, 8, 8, 5, 6, 10, - 10, 10, 10, 2, 3, 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, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, - 4, 4, 4, 6, 6, 6, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 4, 4, 2, 5, - 3, 6, 4, 7, 6, 1, 2, 2, 3, 3, - 11, 9, 7, 7, 1, 3, 1, 1, 2, 3, - 4, 5, 2, 3, 3, 5, 4, 1, 1, 3, - 6, 1, 1, 3, 3, 9, 7, 1, 5, 3, - 6, 1, 3, 1, 1, 3, 6, 1, 1, 6, - 4, 4, 4, 6 + 1, 0, 2, 0, 2, 7, 6, 8, 8, 5, + 6, 10, 10, 10, 10, 2, 3, 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, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, + 4, 4, 4, 4, 4, 6, 6, 6, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 5, 4, 4, + 2, 5, 3, 6, 4, 7, 6, 1, 2, 2, + 3, 3, 11, 9, 7, 7, 1, 3, 1, 1, + 2, 3, 4, 5, 2, 3, 3, 5, 4, 1, + 1, 3, 6, 1, 1, 3, 3, 9, 7, 1, + 5, 3, 6, 1, 3, 1, 1, 3, 6, 1, + 1, 6, 4, 4, 4, 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1162,280 +1162,280 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 161, 0, 0, 158, 0, 0, 0, 0, 5, 7, 6, 8, 9, 10, 11, 12, 13, 19, 18, - 14, 15, 16, 17, 287, 294, 347, 54, 288, 289, - 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 14, 15, 16, 17, 289, 296, 349, 54, 290, 291, + 292, 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, 348, 0, 0, 291, - 292, 293, 58, 57, 56, 55, 0, 0, 0, 60, - 59, 0, 0, 0, 0, 126, 0, 0, 0, 225, + 0, 0, 0, 0, 0, 0, 350, 0, 0, 293, + 294, 295, 58, 57, 56, 55, 0, 0, 0, 60, + 59, 0, 0, 0, 0, 126, 0, 0, 0, 227, 0, 0, 0, 0, 149, 0, 151, 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, 305, 0, 0, 0, 0, 0, 126, 0, 0, - 0, 0, 0, 0, 126, 0, 223, 0, 0, 0, - 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, - 148, 0, 0, 157, 344, 347, 126, 0, 343, 126, - 0, 0, 0, 0, 0, 298, 29, 0, 0, 0, + 0, 307, 0, 0, 0, 0, 0, 126, 0, 0, + 0, 0, 0, 0, 126, 0, 225, 0, 0, 0, + 0, 0, 0, 0, 339, 0, 0, 0, 0, 0, + 148, 0, 0, 157, 346, 349, 126, 0, 345, 126, + 0, 0, 0, 0, 0, 300, 29, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 294, 228, 227, 229, + 0, 0, 0, 0, 0, 0, 296, 230, 229, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 0, 124, 0, 66, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 142, 107, 0, 0, 0, 0, 294, 0, 0, 327, - 328, 331, 332, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 316, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 307, 306, 0, 0, 0, + 142, 107, 0, 0, 0, 0, 296, 0, 0, 329, + 330, 333, 334, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 319, + 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, + 0, 0, 0, 0, 0, 309, 308, 0, 0, 0, 0, 126, 126, 0, 0, 0, 0, 0, 0, 0, - 171, 0, 126, 211, 0, 0, 0, 135, 0, 0, - 0, 224, 0, 0, 0, 147, 0, 0, 0, 0, + 171, 0, 126, 213, 0, 0, 0, 135, 0, 0, + 0, 226, 0, 0, 0, 147, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 159, 0, 0, 0, - 138, 0, 139, 0, 0, 300, 0, 0, 68, 0, + 138, 0, 139, 0, 0, 302, 0, 0, 68, 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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 127, 61, 0, 243, 242, 241, - 240, 236, 237, 239, 238, 231, 230, 232, 233, 234, - 235, 108, 0, 0, 0, 0, 0, 0, 227, 322, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, + 0, 0, 0, 0, 127, 61, 0, 245, 244, 243, + 242, 238, 239, 241, 240, 233, 232, 234, 235, 236, + 237, 108, 0, 0, 0, 0, 0, 0, 229, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 87, 0, 0, 0, 0, 0, 0, 0, 309, - 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 165, 0, 0, 0, 0, 136, 0, 0, 132, 0, + 0, 0, 0, 0, 0, 0, 320, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, + 0, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 311, 310, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 165, 0, 0, 0, 0, 136, 0, 0, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 0, 345, 140, 141, 0, 296, 302, 0, - 39, 0, 0, 0, 52, 0, 30, 31, 32, 33, - 34, 245, 266, 246, 267, 247, 268, 248, 269, 249, - 270, 250, 271, 251, 272, 252, 273, 253, 274, 265, - 286, 254, 275, 0, 0, 256, 277, 257, 278, 258, - 279, 259, 280, 260, 281, 261, 282, 0, 0, 0, - 0, 0, 0, 352, 0, 0, 350, 351, 79, 0, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 297, 0, 0, 0, 0, - 0, 22, 20, 0, 0, 0, 0, 329, 0, 0, - 324, 232, 323, 333, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, - 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 117, 119, - 0, 0, 0, 0, 0, 0, 0, 0, 200, 0, - 162, 0, 212, 217, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, - 0, 0, 0, 0, 299, 0, 295, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 64, 65, 0, 0, 0, - 0, 0, 67, 69, 71, 0, 0, 341, 0, 77, - 0, 0, 0, 0, 244, 21, 0, 0, 0, 0, - 0, 326, 0, 0, 90, 90, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 320, 0, 94, 0, + 0, 160, 0, 0, 347, 140, 141, 0, 298, 304, + 0, 39, 0, 0, 0, 52, 0, 30, 31, 32, + 33, 34, 247, 268, 248, 269, 249, 270, 250, 271, + 251, 272, 252, 273, 253, 274, 254, 275, 255, 276, + 267, 288, 256, 277, 0, 0, 258, 279, 259, 280, + 260, 281, 261, 282, 262, 283, 263, 284, 0, 0, + 0, 0, 0, 0, 354, 0, 0, 352, 353, 79, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 73, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 22, 20, 0, 0, 0, 0, 331, 0, + 0, 326, 234, 325, 335, 336, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, + 0, 0, 0, 0, 0, 0, 0, 207, 212, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 117, 119, 0, 0, 0, 0, 0, 0, 0, + 0, 200, 0, 162, 0, 214, 219, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 301, 0, 297, + 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 298, 64, 65, + 0, 0, 0, 0, 0, 67, 69, 71, 0, 0, + 343, 0, 77, 0, 0, 0, 0, 246, 21, 0, + 0, 0, 0, 0, 328, 0, 0, 90, 90, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, + 0, 94, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 205, 0, 0, 172, 201, 0, 0, 218, 0, - 134, 133, 0, 27, 28, 0, 0, 0, 338, 0, - 0, 0, 152, 0, 0, 0, 144, 301, 143, 0, - 0, 0, 0, 314, 0, 255, 276, 262, 283, 263, - 284, 264, 285, 353, 349, 304, 0, 54, 0, 0, - 0, 0, 62, 0, 0, 0, 339, 0, 0, 0, - 0, 23, 24, 0, 0, 92, 0, 325, 0, 0, - 0, 0, 0, 95, 0, 0, 110, 111, 0, 0, - 96, 115, 321, 0, 0, 0, 0, 88, 0, 213, - 209, 0, 0, 0, 0, 0, 0, 146, 0, 0, - 0, 0, 126, 0, 182, 0, 184, 0, 186, 316, - 0, 0, 0, 0, 166, 0, 0, 100, 101, 0, - 0, 0, 0, 80, 0, 346, 303, 0, 35, 0, - 0, 0, 0, 0, 37, 0, 0, 0, 74, 0, - 0, 75, 0, 342, 128, 129, 130, 131, 0, 0, - 330, 0, 91, 97, 98, 103, 0, 0, 112, 0, - 0, 0, 215, 105, 0, 0, 208, 210, 0, 216, - 114, 93, 104, 113, 116, 0, 0, 0, 313, 0, - 312, 0, 0, 173, 0, 0, 174, 0, 0, 175, + 0, 0, 0, 0, 205, 0, 0, 172, 201, 0, + 0, 220, 0, 134, 133, 0, 27, 28, 0, 0, + 0, 340, 0, 0, 0, 152, 0, 0, 0, 144, + 303, 143, 0, 0, 0, 0, 316, 0, 257, 278, + 264, 285, 265, 286, 266, 287, 355, 351, 306, 0, + 54, 0, 0, 0, 0, 62, 0, 0, 0, 341, + 0, 0, 0, 0, 23, 24, 0, 0, 92, 0, + 327, 0, 0, 0, 0, 0, 95, 0, 0, 110, + 111, 0, 0, 96, 115, 323, 0, 0, 0, 0, + 88, 0, 215, 0, 0, 0, 0, 0, 0, 146, + 0, 0, 0, 0, 126, 0, 182, 0, 184, 0, + 186, 318, 0, 0, 0, 0, 166, 0, 0, 100, + 101, 0, 0, 0, 0, 80, 0, 348, 305, 0, + 35, 0, 0, 0, 0, 0, 37, 0, 0, 0, + 74, 0, 0, 75, 0, 344, 128, 129, 130, 131, + 0, 0, 332, 0, 91, 97, 98, 103, 0, 0, + 112, 0, 0, 0, 217, 105, 0, 0, 208, 218, + 114, 93, 104, 113, 116, 0, 0, 0, 315, 0, + 314, 0, 0, 173, 0, 0, 174, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 336, 0, 154, 153, 0, 0, 0, 40, 0, 0, - 0, 315, 0, 0, 0, 63, 70, 72, 0, 78, + 338, 0, 154, 153, 0, 0, 0, 40, 0, 0, + 0, 317, 0, 0, 0, 63, 70, 72, 0, 78, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 106, 214, 84, 85, 126, 0, 120, 0, 0, 0, - 0, 0, 0, 202, 0, 0, 126, 0, 123, 122, - 0, 0, 0, 0, 81, 82, 0, 36, 0, 0, - 0, 38, 53, 0, 340, 0, 219, 220, 221, 222, - 109, 0, 0, 0, 0, 311, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, - 0, 335, 155, 0, 0, 0, 0, 0, 76, 0, - 0, 0, 118, 0, 188, 0, 0, 190, 0, 0, - 192, 0, 0, 0, 203, 0, 163, 0, 126, 102, - 83, 0, 44, 0, 50, 0, 0, 0, 89, 310, - 176, 0, 0, 183, 177, 0, 0, 185, 178, 0, - 0, 187, 0, 0, 0, 169, 0, 0, 0, 0, - 0, 0, 0, 194, 0, 196, 0, 198, 204, 206, - 168, 164, 0, 41, 0, 48, 0, 0, 0, 0, - 179, 0, 0, 180, 0, 0, 181, 0, 0, 0, - 42, 0, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 170, 0, 0, 0, 0, 0, 189, 0, 191, - 0, 193, 0, 43, 45, 0, 46, 0, 99, 0, - 0, 0, 0, 0, 51, 195, 197, 199, 47, 49 + 106, 84, 85, 126, 0, 120, 0, 0, 0, 0, + 0, 0, 202, 0, 0, 126, 0, 123, 122, 0, + 0, 0, 0, 81, 82, 0, 36, 0, 0, 0, + 38, 53, 0, 342, 0, 221, 222, 223, 224, 109, + 0, 0, 0, 0, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, + 337, 155, 0, 0, 0, 0, 0, 76, 0, 0, + 0, 118, 0, 188, 0, 0, 190, 0, 0, 192, + 0, 0, 0, 203, 0, 163, 0, 126, 102, 83, + 0, 44, 0, 50, 0, 0, 0, 89, 312, 176, + 0, 0, 183, 177, 0, 0, 185, 178, 0, 0, + 187, 0, 0, 0, 169, 0, 0, 0, 0, 0, + 0, 0, 194, 0, 196, 0, 198, 204, 206, 168, + 164, 0, 41, 0, 48, 0, 0, 0, 0, 179, + 0, 0, 180, 0, 0, 181, 0, 0, 0, 42, + 0, 0, 150, 0, 0, 0, 0, 0, 0, 0, + 170, 0, 0, 0, 0, 0, 189, 0, 191, 0, + 193, 0, 43, 45, 0, 46, 0, 99, 0, 0, + 0, 0, 0, 51, 195, 197, 199, 47, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 59, 653, 60, 61, 397, 947, 953, - 576, 737, 1076, 1199, 577, 1167, 1225, 578, 1201, 579, - 580, 741, 126, 215, 62, 519, 985, 890, 464, 309, - 280, 281, 65, 66, 67, 68, 69, 310, 711, 1137, - 1182, 538, 1004, 1007, 1010, 1151, 1155, 1159, 1191, 1194, - 1197, 707, 708, 805, 988, 542, 71, 72, 73, 327, - 129, 345, 171, 852, 853, 329, 313, 196, 644, 768, - 207, 208 + -1, 2, 3, 59, 654, 60, 61, 397, 949, 955, + 577, 740, 1075, 1198, 578, 1166, 1224, 579, 1200, 580, + 581, 744, 126, 215, 62, 520, 987, 893, 464, 309, + 280, 281, 65, 66, 67, 68, 69, 310, 714, 1136, + 1181, 539, 1004, 1007, 1010, 1150, 1154, 1158, 1190, 1193, + 1196, 710, 711, 808, 690, 517, 543, 71, 72, 73, + 327, 129, 345, 171, 855, 856, 329, 313, 196, 645, + 771, 207, 208 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1021 +#define YYPACT_NINF -1025 static const yytype_int16 yypact[] = { - 2687, 25, 40, 2762, -1021, -1021, 1313, 37, 49, -26, - 26, 106, -93, 0, 3, -38, 45, 67, -17, 141, - 151, 73, -39, 130, 144, 248, 162, 274, 346, 216, - 195, 187, 187, 259, 57, 312, 339, 369, 24, 56, - 370, 381, 439, 473, 352, 360, 371, 19, 13, -1021, - 377, -1021, 527, 407, -1021, 509, 546, 10, 17, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, 23, 417, 643, -1021, -1021, - -1021, -112, 82, 174, 246, 336, 385, 399, 405, 429, - 454, 459, 507, 521, 522, 567, 568, 572, 573, 592, - 595, 600, 432, 443, 448, 453, -1021, 562, 458, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, 2154, 2154, 2154, -1021, - -1021, 2154, 1789, 12, 593, 202, 2154, 596, 669, -1021, - 601, 604, 2154, 606, -1021, 2154, -1021, 2154, 2088, 2154, - 2154, 497, 2154, 2088, 2154, 2154, 508, 2088, 2154, 2154, - 1365, 536, 2154, 505, 539, 542, 1365, 520, 541, 554, - 564, 576, 607, 611, 679, 187, 187, 187, 2154, 2154, - -13, -1021, 64, 187, 605, 624, 625, 1959, 191, 1365, - 1365, 666, 35, 620, -1021, 767, -1021, 641, 673, 677, - 808, 2154, 2154, 2154, 683, 2154, 681, 729, 2154, 2154, - -1021, 2154, 821, -1021, 140, -1021, -1021, 828, -1021, -1021, - 829, 731, 2154, 840, 737, -1021, -1021, 884, 2154, 2154, - 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, - 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, - 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, - 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, - 626, 626, 626, 626, 2154, 888, -53, 778, 778, 778, - 5020, 63, 2088, 4284, 192, 760, 904, 781, 777, -1021, - 779, 2825, 839, -1021, -1021, 2154, 2154, 2154, 2154, 2154, - 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, 2154, - -1021, -1021, 981, -102, 3530, 5041, 667, 783, 2088, -1021, - -1021, 2444, -1021, 615, 5062, 5083, 2154, 5104, 619, 5125, - 5146, 2154, 622, 5167, 5188, 1494, 1173, 2470, 909, -1021, - 2154, 5209, 2154, 2154, 2154, 911, 2154, 2154, 2154, 2211, - 2211, 2211, 2211, 790, -48, -1021, -1021, 3556, 3582, 187, - 187, 202, 202, 224, 2154, 2154, 2154, 1959, 1959, 2154, - 2825, 227, -1021, 915, 916, 2154, 918, -1021, 2154, 2154, - 1526, -1021, 2088, 2154, 2154, -1021, 5230, 5251, 5272, 836, - 3608, -1021, 789, 2489, 5293, 4307, -1021, 2154, 923, 1783, - -1021, 1952, -1021, 2154, 4330, 222, 2154, 15, -1021, 5314, - 4353, 5335, 4376, 5356, 4399, 5377, 4422, 5398, 4445, 5419, - 4468, 5440, 4491, 5461, 4514, 5482, 4537, 5503, 4560, 5524, - 4583, 3634, 3660, 5545, 4606, 5566, 4629, 5587, 4652, 5608, - 4675, 5629, 4698, 5650, 4721, 3686, 3712, 3738, 3764, 3790, - 3816, -68, 793, 800, 801, 1106, 798, 2154, -1021, 1365, - 1365, 638, 366, 643, 2154, 929, 932, 21, 804, -1021, - 46, 70, 43, 127, -1021, -1021, 2508, 1044, 738, 648, - 648, 566, 566, 566, 566, 512, 512, 778, 778, 778, - 778, -1021, 5, 2088, 2154, 931, 1924, 2154, 778, -1021, - 2154, 2088, 2088, 847, 933, 935, 5671, 936, 852, 957, - 958, 5692, 877, 967, 968, 2088, -1021, 664, 1623, 2154, - 5713, 969, 2591, 5734, 5755, 2154, 2832, 2860, 5776, 846, - 6028, -1021, 848, 849, 850, 851, 187, 2154, 2154, -1021, - -1021, 845, 853, 2154, 3842, 3868, 3894, 3504, 598, 187, - 2249, 2154, 978, 2154, 5797, -1021, 4744, 4767, -1021, 672, - 4790, 4813, 979, 982, 983, 854, 2154, 2306, 2154, 2154, - -1021, -6, 4836, -1021, -1021, -1021, 4859, 543, -1021, 2888, - -1021, 862, 863, 857, -1021, 989, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, 2154, 2154, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, 2154, 2154, 2154, - 2154, 2154, 2154, -1021, 2088, 626, -1021, -1021, -1021, 2154, - 4882, 991, 992, 867, -1021, 20, 2154, 995, 998, 1138, - -1021, 999, 873, 19, 1001, -1021, 2088, 2088, 2088, 2088, - 2154, -1021, 891, 626, -51, 3920, 187, -1021, 2088, 2916, - 2542, 778, -1021, 2444, -1021, 960, 1365, 1365, 1003, 1365, - 682, 1365, 1365, 1004, 962, 1365, 1365, 686, -1021, 2088, - 1556, 1007, 878, 1010, 1012, 1013, 2021, 1015, 1016, 1017, - 1019, 1020, 1021, 1022, 1027, 247, 3946, 3972, -1021, -1021, - 2944, 187, 187, 187, 1026, 896, 905, -33, -1021, 325, - -1021, 598, 6028, -1021, 1587, 897, 1030, 1031, 990, 1032, - 1034, 1365, 1365, 1365, 1037, 3998, -1021, 2561, 597, 1039, - 1043, 914, 1045, 1046, -1021, 1047, -1021, 919, 2154, 2154, - 1365, 920, -1021, 5818, 4905, 5839, 4928, 5860, 4951, 5881, - 4974, 185, 921, 5902, 437, -1021, -1021, 62, 272, 925, - 1048, 1902, -1021, -1021, -1021, 19, 2154, -1021, 692, -1021, - 695, 703, 704, 711, 6028, -1021, 1055, 51, 2154, 39, - 712, -1021, 2154, 926, 1006, 1006, 1365, 1058, 928, 934, - 1060, 1062, 1365, 937, 1063, 1064, -1021, 728, -1021, 1067, - 2154, 1365, 1365, 1365, 1069, 1071, 1365, 1365, 1365, 1365, - 1365, 1365, 1365, 308, 2154, 2154, 2154, 941, -54, 139, - 142, -1021, 1365, 2154, -1021, -1021, 1959, -11, -1021, 2088, - -1021, -1021, 942, -1021, -1021, 1075, 1077, 996, -1021, 2154, - 2154, 2154, -1021, 1079, 1080, 1082, -1021, 222, -1021, 2154, - 4024, 4050, 734, -1021, 2154, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, 1365, 643, 2154, 1084, - 1102, 21, -1021, 1101, 4997, 19, -1021, 1103, 1107, 1108, - 1109, -1021, -1021, 626, 4076, -1021, 955, 6028, 2154, 187, - 1110, 1111, 1112, -1021, 2154, 2154, -1021, -1021, 1113, 2154, - -1021, -1021, -1021, 1115, 4102, 1117, 1118, 1029, 2154, -1021, - 1104, 1121, 1123, 1124, 1125, 1127, 1128, -1021, 2211, 2972, - 5923, 1343, 202, 187, 1129, 187, 1130, 187, 1131, 290, - 1002, 5944, 3000, 329, -1021, 735, 2154, -1021, -1021, 1365, - 2776, 318, 5965, -1021, 1752, -1021, -1021, 228, 6028, 2154, - 2154, 1365, 1005, 741, 6028, 1133, 1135, 2284, -1021, 1139, - 1141, -1021, 1011, -1021, -1021, -1021, -1021, -1021, 1142, 2154, - -1021, 3028, -44, -1021, -1021, -1021, 3056, 3084, -1021, 3112, - 1144, 2154, -1021, -1021, 1105, 1145, 6028, -1021, 1149, -1021, - -1021, -1021, -1021, -1021, -1021, 2353, 1164, 1035, -1021, 2154, - -1021, 1033, 349, -1021, 1038, 375, -1021, 1041, 378, -1021, - 1042, 1174, 1365, 1143, 1049, 2154, 1175, 3140, 1098, 2154, - -1021, 2154, -1021, -1021, 2088, 2372, 1202, -1021, 2154, 4128, - 4154, -1021, 1365, 2154, 1203, -1021, -1021, -1021, 19, -1021, - 1120, -1021, 4180, 1205, 1206, 1207, 1208, 1209, 4206, 1094, - -1021, -1021, -1021, -1021, 202, 2804, -1021, 1959, 598, 1959, - 598, 1959, 598, -1021, 742, 1365, -1021, 3168, -1021, -1021, - 2154, 3196, 3224, 745, -1021, -1021, 1096, 6028, 2154, 2154, - 748, 6028, -1021, 1228, -1021, 2154, -1021, -1021, -1021, -1021, - -1021, 1236, 2154, 1126, 2154, -1021, 3252, 383, 14, 3280, - 424, 234, 3308, 504, 348, 1365, 1237, 1181, 2325, 1132, - 2406, -1021, -1021, 1239, 2154, 5986, 4232, 27, -1021, 4258, - 1136, 3336, -1021, 3364, 1240, 2154, 1242, 1257, 2154, 1259, - 1265, 2154, 1267, 1146, -1021, 2154, -1021, 598, -1021, -1021, - -1021, 751, -1021, 2154, -1021, 1365, 2154, 1269, -1021, -1021, - -1021, 1148, 3392, -1021, -1021, 1150, 3420, -1021, -1021, 1151, - 3448, -1021, 1274, 2425, 384, 2376, 1275, 1152, 6007, 765, - 3476, 1147, 598, 1276, 598, 1280, 598, 1284, -1021, -1021, - -1021, -1021, 598, -1021, 626, -1021, 1154, 1286, 1290, 388, - -1021, 1159, 403, -1021, 1160, 452, -1021, 1162, 482, 766, - -1021, 1163, 1365, -1021, 1166, 1295, 598, 1296, 598, 1299, - 598, -1021, 626, 1300, 626, 770, 1301, -1021, 518, -1021, - 523, -1021, 553, -1021, -1021, 774, -1021, 1303, -1021, 1304, - 1306, 1307, 626, 1308, -1021, -1021, -1021, -1021, -1021, -1021 + 2788, 20, 29, 2863, -1025, -1025, 1333, 38, 31, -89, + 22, 71, -64, -41, -31, 49, -27, 43, -52, 46, + 67, 128, -39, 152, 165, 215, 332, 223, 388, 167, + 179, -9, -9, 182, 268, 277, 315, 326, 19, 59, + 340, 396, 400, 420, 257, 262, 267, 16, 13, -1025, + 295, -1025, 434, 321, -1025, 460, 463, 10, 17, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, 23, 310, 45, -1025, -1025, + -1025, 174, 180, 217, 313, 329, 344, 363, 379, 423, + 480, 501, 506, 509, 510, 525, 546, 551, 558, 559, + 562, 563, 348, 352, 355, 356, -1025, 464, 360, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, 2170, 2170, 2170, -1025, + -1025, 2170, 1805, 8, 512, 311, 2170, 524, 1572, -1025, + 528, 538, 2170, 540, -1025, 2170, -1025, 2170, 2104, 2170, + 2170, 403, 2170, 2104, 2170, 2170, 431, 2104, 2170, 2170, + 1381, 446, 2170, 449, 461, 465, 1381, 1381, 462, 470, + 474, 484, 493, 494, 650, -9, -9, -9, 2170, 2170, + 187, -1025, 299, -9, 523, 579, 585, 1975, 301, 1381, + 1381, 513, 28, 617, -1025, 734, -1025, 618, 640, 644, + 753, 2170, 2170, 2170, 630, 2170, 667, 675, 2170, 2170, + -1025, 2170, 774, -1025, 527, -1025, -1025, 778, -1025, -1025, + 786, 670, 2170, 801, 669, -1025, -1025, 803, 2170, 2170, + 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, + 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, + 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, + 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, + 543, 543, 543, 543, 2170, 802, 580, 681, 681, 681, + 5127, 12, 2104, 4391, 171, 678, 806, 685, 682, -1025, + 680, 943, 1603, -1025, -1025, 2170, 2170, 2170, 2170, 2170, + 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, + -1025, -1025, 1918, -96, 3637, 5148, 498, 687, 2104, -1025, + -1025, 2579, -1025, 135, 5169, 5190, 2170, 5211, 297, 5232, + 5253, 2170, 544, 5274, 5295, 1510, 1195, 2605, 818, -1025, + 2170, 5316, 2170, 2170, 2170, 820, 823, 2170, 2170, 2227, + 2227, 2227, 2227, 700, -76, -1025, -1025, 3663, 3689, -9, + -9, 311, 311, 139, 2170, 2170, 2170, 1975, 1975, 2170, + 943, 383, -1025, 825, 826, 2170, 828, -1025, 2170, 2170, + 1542, -1025, 2104, 2170, 2170, -1025, 5337, 5358, 5379, 746, + 3715, -1025, 699, 2624, 5400, 4414, -1025, 2170, 833, 1799, + -1025, 1968, -1025, 2170, 4437, 80, 2170, 14, -1025, 5421, + 4460, 5442, 4483, 5463, 4506, 5484, 4529, 5505, 4552, 5526, + 4575, 5547, 4598, 5568, 4621, 5589, 4644, 5610, 4667, 5631, + 4690, 3741, 3767, 5652, 4713, 5673, 4736, 5694, 4759, 5715, + 4782, 5736, 4805, 5757, 4828, 3793, 3819, 3845, 3871, 3897, + 3923, 131, 702, 711, 712, 2300, 708, 2170, -1025, 1381, + 1381, 573, -1, 45, 2170, 839, 843, 21, 715, -1025, + -61, 195, -35, 69, -1025, -1025, 2643, 550, 741, 581, + 581, 529, 529, 529, 529, 443, 443, 681, 681, 681, + 681, -1025, 52, 2104, 2170, 844, 1940, 2170, 681, -1025, + 2170, 2104, 2104, 758, 845, 846, 5778, 859, 775, 879, + 882, 5799, 804, 886, 890, 2104, -1025, 577, 1639, 2170, + 5820, 891, 2939, 5841, 5862, 2170, 1381, 896, 2967, 5883, + 770, 6135, -1025, 771, 772, 773, 776, -9, 2170, 2170, + -1025, -1025, 767, 768, 2170, 3949, 3975, 4001, 3611, 118, + -9, 2265, 2170, 901, 2170, 5904, -1025, 4851, 4874, -1025, + 582, 4897, 4920, 902, 904, 905, 779, 2170, 2322, 2170, + 2170, -1025, 4, 4943, -1025, -1025, -1025, 4966, 390, -1025, + 2995, -1025, 784, 785, 781, -1025, 910, -1025, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -1025, -1025, -1025, -1025, 2170, 2170, -1025, -1025, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, 2170, 2170, + 2170, 2170, 2170, 2170, -1025, 2104, 543, -1025, -1025, -1025, + 2170, 4989, 913, 914, 789, -1025, 35, 2170, 917, 918, + 2369, -1025, 919, 793, 16, 921, -1025, 2104, 2104, 2104, + 2104, 2170, -1025, 812, 543, 141, 4027, -9, -1025, 2104, + 3023, 2662, 681, -1025, 2579, -1025, 883, 1381, 1381, 924, + 1381, 672, 1381, 1381, 926, 885, 1381, 1381, 605, -1025, + 2104, 2388, 927, 800, 934, 935, 937, 2037, -1025, -1025, + 939, 947, 950, 951, 952, 954, 956, 942, 393, 4053, + 4079, -1025, -1025, 3051, -9, -9, -9, 958, 829, 835, + -38, -1025, 402, -1025, 118, 6135, -1025, 2422, 830, 963, + 964, 922, 966, 967, 1381, 1381, 1381, 970, 4105, -1025, + 2696, 761, 971, 972, 847, 973, 974, -1025, 976, -1025, + 854, 2170, 2170, 1381, 840, -1025, 5925, 5012, 5946, 5035, + 5967, 5058, 5988, 5081, 197, 867, 6009, 36, -1025, -1025, + 103, 193, 851, 994, 2441, -1025, -1025, -1025, 16, 2170, + -1025, 608, -1025, 609, 612, 616, 620, 6135, -1025, 998, + 58, 2170, 51, 624, -1025, 2170, 868, 953, 953, 1381, + 1000, 870, 871, 1004, 1005, 1381, 876, 1008, 1009, -1025, + 627, -1025, 1012, 2170, 1381, 1381, 1381, 1015, 1014, -1025, + 1381, 1381, 1381, 1381, 1381, 1381, 353, 2170, 2170, 2170, + 887, -50, -46, 47, -1025, 1381, 2170, -1025, -1025, 1975, + -33, -1025, 2104, -1025, -1025, 889, -1025, -1025, 1016, 1017, + 945, -1025, 2170, 2170, 2170, -1025, 1025, 1027, 1031, -1025, + 80, -1025, 2170, 4131, 4157, 632, -1025, 2170, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, 1381, + 45, 2170, 1030, 1033, 21, -1025, 1034, 5104, 16, -1025, + 1036, 1039, 1040, 1043, -1025, -1025, 543, 4183, -1025, 923, + 6135, 2170, -9, 1044, 1045, 1046, -1025, 2170, 2170, -1025, + -1025, 1048, 2170, -1025, -1025, -1025, 1053, 4209, 1054, 1056, + 975, 2170, -1025, 1058, 1059, 1062, 1063, 1064, 1065, -1025, + 2227, 3079, 6030, 2855, 311, -9, 1066, -9, 1067, -9, + 1070, 613, 941, 6051, 3107, 416, -1025, 635, 2170, -1025, + -1025, 1381, 2883, 1159, 6072, -1025, 1768, -1025, -1025, 214, + 6135, 2170, 2170, 1381, 946, 639, 6135, 1072, 1073, 2460, + -1025, 1075, 1074, -1025, 955, -1025, -1025, -1025, -1025, -1025, + 1078, 2170, -1025, 3135, 336, -1025, -1025, -1025, 3163, 3191, + -1025, 3219, 1080, 2170, -1025, -1025, 1047, 1081, 6135, -1025, + -1025, -1025, -1025, -1025, -1025, 2488, 1085, 949, -1025, 2170, + -1025, 960, 438, -1025, 962, 442, -1025, 965, 467, -1025, + 968, 1086, 1381, 1093, 969, 2170, 1087, 3247, 1020, 2170, + -1025, 2170, -1025, -1025, 2104, 2507, 1095, -1025, 2170, 4235, + 4261, -1025, 1381, 2170, 1097, -1025, -1025, -1025, 16, -1025, + 1018, -1025, 4287, 1098, 1103, 1105, 1106, 1107, 4313, 977, + -1025, -1025, -1025, 311, 2911, -1025, 1975, 118, 1975, 118, + 1975, 118, -1025, 643, 1381, -1025, 3275, -1025, -1025, 2170, + 3303, 3331, 647, -1025, -1025, 978, 6135, 2170, 2170, 651, + 6135, -1025, 1110, -1025, 2170, -1025, -1025, -1025, -1025, -1025, + 1112, 2170, 980, 2170, -1025, 3359, 469, -8, 3387, 473, + 292, 3415, 477, 304, 1381, 1113, 1061, 2341, 983, 2526, + -1025, -1025, 1117, 2170, 6093, 4339, 24, -1025, 4365, 992, + 3443, -1025, 3471, 1123, 2170, 1124, 1126, 2170, 1127, 1128, + 2170, 1130, 999, -1025, 2170, -1025, 118, -1025, -1025, -1025, + 652, -1025, 2170, -1025, 1381, 2170, 1133, -1025, -1025, -1025, + 1003, 3499, -1025, -1025, 1006, 3527, -1025, -1025, 1007, 3555, + -1025, 1135, 2560, 327, 2392, 1139, 1010, 6114, 655, 3583, + 1013, 118, 1140, 118, 1142, 118, 1144, -1025, -1025, -1025, + -1025, 118, -1025, 543, -1025, 1019, 1145, 1147, 337, -1025, + 1021, 339, -1025, 1028, 341, -1025, 1032, 394, 660, -1025, + 1035, 1381, -1025, 1024, 1148, 118, 1151, 118, 1158, 118, + -1025, 543, 1162, 543, 661, 1164, -1025, 397, -1025, 422, + -1025, 432, -1025, -1025, 665, -1025, 1165, -1025, 1168, 1172, + 1173, 543, 1174, -1025, -1025, -1025, -1025, -1025, -1025 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1021, -1021, -1021, -1021, 538, -1021, -1021, -1021, -1021, 205, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, - -1021, -1021, -266, -4, -1021, 85, -1021, 540, 1318, 6, - -347, -171, -1021, -1021, -1021, -1021, -1021, 1323, -1021, -1021, - -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, -1021, - -1021, -640, -646, -1021, -1021, -1021, -1021, -1021, -1021, -3, - -1021, 343, -1021, -1020, -63, 324, 251, -617, 483, -1021, - -58, 1 + -1025, -1025, -1025, -1025, 407, -1025, -1025, -1025, -1025, 75, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -1025, -1025, -261, -4, -1025, 266, -1025, 401, 1187, 6, + -347, -105, -1025, -1025, -1025, -1025, -1025, 1188, -1025, -1025, + -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -1025, -713, -648, -1025, -1025, -1025, -1025, -1025, -1025, -1025, + -3, -1025, 234, -1025, -1024, 371, 303, 37, -620, 318, + -1025, -58, 1 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1445,1066 +1445,1090 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 210, 729, 127, 128, 531, 532, 360, 130, 454, 64, - 151, 651, 1080, 370, 204, 205, 274, 197, 218, 570, - 219, 204, 205, 194, 758, 642, 767, 211, 182, 482, - 141, 4, 134, 1144, 483, 389, 704, 137, 391, 366, - 5, 367, 705, 706, 138, 885, 102, 103, 104, 105, - 131, 146, 106, 102, 103, 104, 105, 882, 704, 106, - 185, 825, 186, 623, 705, 706, 349, 350, 624, 634, - 449, 827, 349, 350, 119, 120, 349, 350, 217, 447, - 777, 213, 923, 704, 924, 492, 214, 328, 526, 705, - 706, 152, 142, 335, 571, 572, 573, 574, 132, 143, - 174, 275, 276, 175, 133, 824, 176, 349, 350, 759, - 760, 146, 136, 267, 268, 269, 363, 364, 270, 273, - 147, 183, 652, 282, 351, 1169, 150, 934, 730, 302, - 139, 279, 304, 140, 305, 311, 314, 315, 141, 317, - 311, 319, 320, 198, 311, 323, 324, 206, 873, 331, - 119, 120, 1126, 575, 209, 212, 195, 213, 643, 349, - 350, 184, 214, 135, 1145, 347, 348, 368, 652, 112, - 113, 114, 115, 450, 348, 144, 137, 166, 167, 153, - 648, 825, 1215, 646, 349, 350, 636, 168, 376, 377, - 378, 540, 380, 154, 177, 383, 384, 145, 385, 453, - 142, 352, 441, 442, 443, 444, 278, 647, 156, 394, - 557, 157, 220, 158, 221, 399, 400, 401, 402, 403, + 210, 830, 127, 128, 532, 533, 635, 130, 1079, 64, + 151, 732, 274, 454, 204, 205, 146, 197, 571, 449, + 194, 204, 205, 182, 770, 643, 4, 211, 134, 5, + 1143, 707, 366, 146, 367, 482, 707, 708, 709, 761, + 483, 133, 708, 709, 349, 350, 102, 103, 104, 105, + 205, 131, 106, 102, 103, 104, 105, 888, 652, 106, + 527, 707, 828, 185, 885, 186, 137, 708, 709, 137, + 349, 350, 360, 138, 349, 350, 647, 136, 217, 370, + 132, 102, 103, 104, 105, 147, 925, 106, 926, 139, + 927, 152, 928, 572, 573, 574, 575, 275, 276, 140, + 827, 389, 649, 144, 391, 936, 112, 113, 114, 115, + 635, 166, 167, 267, 268, 269, 183, 141, 270, 273, + 1168, 168, 450, 282, 762, 763, 119, 120, 169, 302, + 1125, 279, 304, 636, 305, 311, 314, 315, 733, 317, + 311, 319, 320, 198, 311, 323, 324, 206, 876, 331, + 119, 120, 576, 195, 209, 212, 184, 213, 644, 135, + 368, 1144, 214, 119, 120, 347, 348, 349, 350, 653, + 736, 349, 350, 145, 348, 653, 148, 1214, 453, 142, + 318, 150, 828, 929, 322, 930, 143, 707, 376, 377, + 378, 637, 380, 708, 709, 383, 384, 149, 385, 149, + 870, 153, 441, 442, 443, 444, 650, 119, 120, 394, + 112, 113, 114, 115, 154, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 149, 963, 349, - 350, 445, 349, 350, 649, 30, 31, 32, 33, 311, - 455, 148, 387, 37, 388, 925, 40, 926, 927, 867, - 928, 149, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 155, 490, 112, - 113, 114, 115, 704, 222, 488, 223, 166, 167, 705, - 706, 349, 350, 496, 917, 918, 863, 168, 501, 119, - 120, 492, 488, 311, 169, 159, 1021, 510, 362, 512, - 513, 514, 165, 516, 517, 518, 520, 520, 520, 520, - 521, 521, 521, 521, 349, 350, 164, 349, 350, 119, - 120, 534, 535, 536, 267, 268, 537, 279, 279, 1027, - 533, 179, 544, 539, 1028, 546, 547, 349, 350, 311, - 550, 551, 1129, 634, 170, 172, 224, 178, 225, 112, - 113, 114, 115, 814, 562, 188, 631, 632, 180, 160, - 566, 568, 161, 569, 318, 162, 173, 163, 322, 119, - 120, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 508, 297, 298, 181, 187, 704, 1098, 299, - 1101, 1083, 1104, 705, 706, 522, 523, 524, 1011, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 189, 630, 349, 350, 299, 637, 349, - 350, 639, 825, 704, 638, 825, 1022, 704, 825, 705, - 706, 826, 312, 705, 706, 1015, 226, 312, 227, 349, - 350, 312, 704, 112, 113, 114, 115, 190, 705, 706, - 311, 655, 191, 630, 659, 1057, 1132, 660, 661, 663, - 192, 866, 868, 119, 120, 349, 350, 1164, 349, 350, - 635, 193, 311, 349, 350, 661, 680, 199, 344, 735, - 346, 1059, 686, 202, 1061, 228, 353, 229, 825, 1125, - 361, 704, 1180, 451, 696, 697, 1205, 705, 706, 230, - 700, 231, 1189, 200, 1192, 232, 1195, 233, 712, 201, - 714, 1207, 1198, 825, 349, 350, 825, 204, 205, 825, - 203, 704, 825, 725, 216, 727, 728, 705, 706, 234, - 1128, 235, 260, 734, 119, 120, 1218, 752, 1220, 264, - 1222, 733, 825, 261, 825, 1001, 825, 507, 262, 102, - 103, 104, 105, 263, 236, 106, 237, 704, 265, 238, - 1209, 239, 704, 705, 706, 776, 312, 277, 705, 706, - 743, 744, 283, 784, 785, 841, 787, 300, 790, 791, - 301, 303, 794, 795, 745, 746, 747, 748, 749, 750, - 1211, 311, 704, 549, 349, 350, 753, 316, 705, 706, - 204, 205, 489, 761, 296, 297, 298, 240, 321, 241, - 1131, 299, 332, 311, 311, 311, 311, 774, 205, 489, - 312, 242, 244, 243, 245, 311, 1229, 336, 835, 836, - 837, 1230, 102, 103, 104, 105, 330, 704, 106, 333, - 119, 120, 334, 705, 706, 284, 311, 733, 337, 102, - 103, 104, 105, 343, 338, 106, 294, 295, 296, 297, - 298, 1231, 529, 530, 339, 299, 312, 246, 248, 247, - 249, 346, 250, 252, 251, 253, 340, 1093, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 254, 892, 255, 256, 299, 257, 842, 898, - 258, 788, 259, 789, 654, 850, 851, 341, 905, 906, - 907, 342, 354, 910, 911, 912, 913, 914, 915, 916, - 734, 492, 369, 493, 869, 492, 677, 498, 492, 930, - 502, 355, 356, 874, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 371, 492, 884, 633, 299, 372, 887, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 119, 120, 365, 904, 299, 486, - 492, 213, 678, 955, 125, 373, 214, 312, 492, 374, - 718, 919, 920, 921, 375, 662, 664, 379, 381, 929, - 931, 382, 492, 932, 796, 968, 311, 386, 875, 312, - 876, 492, 662, 877, 390, 392, 940, 941, 942, 492, - 492, 878, 879, 946, 395, 465, 948, 492, 492, 880, - 886, 954, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 393, 492, 957, 902, 299, 956, 695, - 951, 492, 952, 1016, 396, 751, 1018, 1033, 1105, 1034, - 1106, 492, 709, 1113, 951, 971, 1117, 1033, 1031, 1166, - 398, 976, 977, 446, 456, 1108, 979, 770, 771, 772, - 773, 951, 1212, 1186, 1213, 986, 951, 299, 1227, 780, - 1232, 457, 1233, 458, 125, 995, 509, 459, 515, 996, - 487, 525, 541, 543, 545, 555, 558, 563, 279, 625, - 797, 626, 627, 1017, 629, 640, 641, 645, 656, 665, - 666, 1025, 667, 669, 670, 1026, 1029, 1030, 312, 1064, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 671, 672, 1042, 1165, 299, 674, - 312, 312, 312, 312, 675, 676, 682, 690, 1048, 691, - 692, 693, 312, 698, 713, 694, 721, 481, 724, 722, - 723, 699, 738, 739, 740, 742, 1055, 755, 756, 779, - 757, 762, 1107, 312, 763, 766, 765, 769, 775, 783, - 786, 792, 1067, 793, 799, 800, 1071, 801, 1072, 802, - 803, 311, 806, 807, 808, 1077, 809, 810, 811, 812, - 1081, 813, 821, 822, 829, 823, 830, 831, 833, 832, - 834, 838, 1133, 843, 818, 819, 820, 844, 845, 849, - 847, 846, 864, 848, 1096, 871, 1099, 854, 1102, 870, - 279, 881, 889, 888, 893, 894, 896, 1110, 897, 900, - 901, 895, 903, 908, 899, 1115, 1116, 909, 922, 936, - 935, 937, 1119, 938, 939, 943, 945, 944, 970, 1121, - 958, 1123, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 959, 961, 987, 964, - 299, 954, 628, 965, 966, 967, 973, 974, 975, 978, - 980, 984, 1152, 982, 983, 1156, 1200, 989, 1160, 990, - 991, 992, 1163, 993, 994, 1003, 1006, 1009, 1012, 1035, - 1168, 1036, 1032, 1170, 764, 1040, 1038, 1039, 1041, 1047, - 1065, 1050, 1049, 312, 1223, 1051, 1226, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 933, - 1053, 1056, 1054, 299, 1238, 1058, 74, 306, 1060, 1062, - 1063, 1068, 78, 79, 80, 1070, 1066, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 1075, 1082, - 1084, 1086, 1087, 1088, 1089, 1090, 307, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 1092, 972, 1114, 1118, 299, 30, 31, 32, 33, - 34, 1120, 1135, 1134, 37, 1140, 1150, 40, 1153, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 1154, 1122, 1157, 1002, 299, 1005, 1138, - 1008, 1158, 1147, 1161, 1171, 1073, 108, 109, 110, 111, - 1178, 1183, 1190, 1188, 1162, 1172, 1193, 1174, 1176, 1184, - 1196, 1202, 1203, 116, 308, 1204, 1206, 1208, 118, 1210, - 1214, 1217, 1219, 121, 1216, 1221, 1224, 1228, 124, 1234, - 1235, 506, 1236, 1237, 1239, 883, 74, 75, 76, 1141, - 77, 63, 78, 79, 80, 891, 70, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 312, 102, - 103, 104, 105, 0, 960, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 74, 306, + 434, 435, 436, 437, 438, 439, 440, 541, 965, 349, + 350, 445, 624, 141, 155, 170, 172, 625, 178, 311, + 455, 492, 780, 493, 159, 534, 558, 492, 112, 113, + 114, 115, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 164, 119, 120, + 112, 113, 114, 115, 218, 488, 219, 349, 350, 451, + 220, 174, 221, 496, 175, 278, 165, 176, 501, 173, + 119, 120, 488, 311, 351, 142, 179, 510, 866, 512, + 513, 514, 648, 492, 518, 519, 521, 521, 521, 521, + 522, 522, 522, 522, 1097, 1027, 1100, 222, 1103, 223, + 1028, 535, 536, 537, 267, 268, 538, 279, 279, 919, + 920, 707, 545, 507, 180, 547, 548, 708, 709, 311, + 551, 552, 181, 707, 30, 31, 32, 33, 156, 708, + 709, 157, 37, 158, 563, 40, 187, 191, 166, 167, + 567, 569, 192, 570, 204, 205, 707, 193, 168, 344, + 188, 346, 708, 709, 189, 177, 707, 353, 707, 550, + 707, 361, 708, 709, 708, 709, 708, 709, 1082, 349, + 350, 349, 350, 1163, 190, 199, 102, 103, 104, 105, + 1128, 160, 106, 492, 161, 498, 352, 162, 362, 163, + 200, 312, 1131, 224, 631, 225, 312, 216, 638, 828, + 312, 640, 828, 201, 639, 828, 349, 350, 1188, 226, + 1191, 227, 1194, 707, 202, 1179, 707, 203, 1197, 708, + 709, 264, 708, 709, 228, 1204, 229, 1206, 260, 1208, + 311, 656, 261, 631, 660, 262, 263, 661, 662, 664, + 265, 707, 1217, 230, 1219, 231, 1221, 708, 709, 869, + 871, 707, 311, 349, 350, 662, 681, 708, 709, 232, + 738, 233, 687, 349, 350, 828, 277, 119, 120, 540, + 655, 328, 349, 350, 736, 699, 700, 335, 336, 817, + 283, 703, 1210, 316, 300, 1228, 349, 350, 829, 715, + 828, 717, 678, 828, 301, 303, 828, 204, 205, 828, + 363, 364, 1015, 234, 728, 235, 730, 731, 349, 350, + 1229, 321, 349, 350, 737, 296, 297, 298, 755, 828, + 1230, 828, 299, 828, 1056, 312, 330, 1001, 1058, 102, + 103, 104, 105, 530, 531, 106, 332, 349, 350, 349, + 350, 333, 346, 349, 350, 334, 779, 349, 350, 337, + 338, 746, 747, 1060, 339, 1124, 523, 524, 525, 1127, + 236, 489, 237, 1130, 340, 748, 749, 750, 751, 752, + 753, 490, 311, 341, 342, 119, 120, 756, 489, 312, + 486, 238, 213, 239, 764, 125, 240, 214, 241, 242, + 244, 243, 245, 365, 311, 311, 311, 311, 777, 294, + 295, 296, 297, 298, 343, 246, 311, 247, 299, 387, + 354, 388, 754, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 312, 248, 311, 249, 299, + 492, 250, 502, 251, 773, 774, 775, 776, 252, 254, + 253, 255, 256, 258, 257, 259, 783, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 1092, 119, 120, 492, + 299, 634, 447, 492, 213, 679, 355, 800, 492, 214, + 721, 791, 356, 792, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 508, 297, 298, 853, 854, + 371, 492, 299, 799, 878, 492, 879, 880, 492, 369, + 881, 1011, 492, 737, 882, 372, 492, 872, 883, 375, + 492, 698, 889, 492, 379, 905, 877, 382, 953, 844, + 954, 492, 373, 1016, 712, 1033, 374, 1034, 887, 1104, + 386, 1105, 890, 492, 390, 1112, 312, 953, 1033, 1116, + 1165, 953, 392, 1185, 663, 665, 1211, 953, 1212, 1226, + 907, 1231, 393, 1232, 381, 395, 396, 446, 312, 398, + 299, 663, 456, 457, 921, 922, 923, 458, 459, 125, + 632, 633, 931, 933, 487, 509, 934, 515, 970, 311, + 516, 526, 542, 544, 546, 556, 559, 564, 626, 942, + 943, 944, 627, 628, 630, 641, 948, 642, 646, 950, + 666, 657, 667, 668, 956, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 670, 671, 959, 937, + 299, 958, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 672, 688, 973, 673, + 299, 782, 845, 676, 978, 979, 675, 677, 683, 981, + 689, 693, 694, 695, 696, 701, 702, 716, 988, 724, + 697, 725, 726, 727, 741, 742, 745, 995, 743, 758, + 759, 996, 760, 765, 766, 769, 768, 772, 312, 778, + 279, 789, 786, 795, 802, 1017, 796, 803, 821, 822, + 823, 804, 805, 1025, 806, 809, 816, 1026, 1029, 1030, + 312, 312, 312, 312, 810, 7, 8, 811, 812, 813, + 1107, 814, 312, 815, 824, 826, 825, 832, 1042, 833, + 834, 835, 836, 837, 841, 846, 847, 857, 850, 849, + 1048, 848, 851, 312, 852, 873, 460, 13, 14, 461, + 16, 17, 462, 19, 463, 21, 1054, 22, 867, 24, + 25, 874, 27, 28, 884, 891, 896, 897, 898, 892, + 899, 900, 1066, 902, 903, 904, 1070, 906, 1071, 911, + 912, 311, 939, 940, 924, 1076, 938, 44, 45, 46, + 1080, 945, 1164, 941, 946, 947, 960, 961, 787, 788, + 963, 790, 966, 793, 794, 967, 968, 797, 798, 969, + 975, 976, 977, 1095, 980, 1098, 972, 1101, 982, 279, + 984, 1072, 985, 935, 989, 990, 1109, 986, 991, 992, + 993, 994, 1003, 1006, 1114, 1115, 1009, 1012, 1035, 1036, + 1039, 1118, 1038, 1032, 1041, 1047, 1053, 1050, 1120, 1040, + 1122, 1052, 1062, 1067, 1049, 838, 839, 840, 1055, 1057, + 1064, 1074, 1059, 1081, 1085, 1061, 1065, 1069, 1083, 1086, + 956, 1087, 1088, 1089, 1091, 1113, 1117, 1119, 1121, 1133, + 1137, 1151, 1134, 1139, 1155, 1199, 974, 1159, 1146, 1149, + 1152, 1162, 1153, 1156, 1157, 312, 1160, 1161, 1170, 1167, + 1171, 1177, 1169, 1173, 1175, 1182, 1189, 1183, 1192, 1187, + 1195, 1202, 1203, 1222, 1216, 1225, 1201, 1218, 1205, 1002, + 895, 1005, 1215, 1008, 1220, 1207, 901, 1021, 1223, 1209, + 1227, 1233, 1213, 1237, 1234, 908, 909, 910, 1235, 1236, + 1238, 913, 914, 915, 916, 917, 918, 886, 1140, 894, + 63, 70, 962, 0, 0, 0, 932, 0, 74, 306, 0, 0, 0, 0, 78, 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 1097, 0, 1100, 0, 1103, 0, 0, 0, 307, 0, - 107, 0, 0, 0, 0, 0, 108, 109, 110, 111, - 112, 113, 114, 115, 0, 0, 0, 0, 30, 31, - 32, 33, 34, 116, 117, 0, 37, 0, 118, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 307, 0, + 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 33, 34, 0, 0, 0, 37, 0, 0, 40, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 1096, 0, 1099, 0, 1102, 0, 0, 1022, 108, 109, + 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1018, 0, 0, 116, 308, 0, 0, 0, + 118, 0, 0, 0, 1031, 121, 0, 312, 0, 0, + 124, 0, 0, 506, 0, 0, 74, 75, 76, 0, + 77, 0, 78, 79, 80, 0, 0, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 0, 102, + 103, 104, 105, 0, 0, 106, 0, 0, 0, 0, + 0, 0, 0, 1063, 74, 306, 0, 0, 0, 0, + 78, 79, 80, 0, 0, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 0, 0, 0, 0, + 0, 0, 0, 0, 307, 0, 0, 0, 0, 0, + 107, 0, 0, 0, 0, 1106, 108, 109, 110, 111, + 112, 113, 114, 115, 30, 31, 32, 33, 34, 0, + 0, 0, 37, 116, 117, 40, 0, 0, 118, 0, 119, 120, 0, 121, 0, 122, 0, 123, 124, 0, - 125, 0, 0, 0, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 108, 109, - 110, 111, 299, 0, 0, 0, 0, 0, 0, 999, - 0, 1000, 0, 0, 0, 116, 325, 0, 0, 0, - 118, 0, 0, 0, 0, 121, 0, 74, 306, 0, - 124, 0, 326, 78, 79, 80, 0, 0, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 307, 7, 8, + 125, 0, 0, 0, 0, 1132, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 109, 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 30, 31, 32, - 33, 34, 798, 0, 0, 37, 0, 0, 40, 460, - 13, 14, 461, 16, 17, 462, 19, 463, 21, 0, - 22, 0, 24, 25, 0, 27, 28, 0, 0, 0, - 0, 0, 0, 828, 0, 0, 0, 108, 109, 110, - 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 0, 116, 308, 0, 0, 0, 118, - 0, 0, 0, 0, 121, 0, 74, 306, 0, 124, - 0, 505, 78, 79, 80, 0, 0, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 0, 0, - 0, 0, 0, 0, 548, 0, 307, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 30, 31, 32, 33, - 34, 0, 0, 0, 37, 0, 0, 40, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 109, 110, 111, + 0, 116, 325, 0, 0, 0, 118, 0, 0, 0, + 0, 121, 0, 74, 306, 0, 124, 0, 326, 78, + 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 307, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 308, 0, 0, 0, 118, 0, - 0, 0, 0, 121, 0, 74, 266, 205, 124, 0, - 679, 78, 79, 80, 0, 0, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 105, 74, 266, 106, 7, 8, 0, 78, 79, + 0, 0, 0, 30, 31, 32, 33, 34, 284, 0, + 0, 37, 0, 0, 40, 460, 13, 14, 461, 16, + 17, 462, 19, 463, 21, 0, 22, 0, 24, 25, + 0, 27, 28, 0, 0, 0, 0, 0, 0, 465, + 0, 0, 0, 108, 109, 110, 111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 0, + 116, 308, 0, 0, 0, 118, 0, 0, 0, 0, + 121, 0, 74, 306, 0, 124, 0, 505, 78, 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 0, 460, 13, 14, 461, - 16, 17, 462, 19, 463, 21, 0, 22, 0, 24, - 25, 0, 27, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 109, 110, 111, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 0, 0, 116, 117, 0, 0, 0, 118, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 124, 0, 1024, + 98, 99, 100, 101, 0, 0, 0, 0, 0, 0, + 549, 0, 307, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, + 0, 299, 30, 31, 32, 33, 34, 0, 0, 0, + 37, 0, 0, 40, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 109, 110, 111, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 872, 116, - 117, 0, 0, 0, 118, 0, 0, 0, 0, 121, - 0, 564, 271, 0, 124, 0, 272, 74, 266, 0, - 0, 0, 0, 78, 79, 80, 0, 0, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 0, 0, 74, 266, 7, 8, 0, 0, 78, 79, - 80, 0, 0, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 0, 460, 13, 14, 461, 16, - 17, 462, 19, 463, 21, 0, 22, 0, 24, 25, - 0, 27, 28, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 108, 109, 110, - 111, 299, 0, 0, 0, 0, 44, 45, 46, 0, - 0, 0, 0, 0, 116, 117, 0, 0, 0, 118, - 0, 0, 0, 0, 121, 0, 0, 657, 0, 124, - 0, 658, 108, 109, 110, 111, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, - 358, 0, 804, 0, 118, 0, 0, 0, 0, 359, - 565, 74, 306, 0, 124, 0, 169, 78, 79, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, + 308, 0, 0, 0, 118, 0, 0, 0, 0, 121, + 0, 74, 266, 205, 124, 0, 680, 78, 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 307, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 30, 31, 32, 33, 34, 0, 74, 266, 37, - 0, 0, 40, 78, 79, 80, 0, 0, 81, 82, + 99, 100, 101, 0, 102, 103, 104, 105, 74, 266, + 106, 7, 8, 0, 78, 79, 80, 0, 0, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 0, 460, 13, 14, 461, 16, 17, 462, 19, + 463, 21, 0, 22, 0, 24, 25, 0, 27, 28, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 108, 109, 110, 111, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 0, 0, 116, 117, + 0, 0, 0, 118, 0, 0, 0, 0, 121, 0, + 0, 0, 0, 124, 0, 1024, 0, 0, 108, 109, + 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 481, 116, 117, 0, 0, 0, + 118, 0, 0, 0, 0, 121, 0, 565, 271, 0, + 124, 0, 272, 74, 266, 0, 0, 0, 0, 78, + 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 0, 0, 74, 266, + 7, 8, 0, 0, 78, 79, 80, 0, 0, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 0, 460, 13, 14, 461, 16, 17, 462, 19, 463, + 21, 0, 22, 0, 24, 25, 0, 27, 28, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 108, 109, 110, 111, 299, 0, 0, + 0, 0, 44, 45, 46, 0, 0, 0, 0, 0, + 116, 117, 0, 0, 0, 118, 0, 0, 0, 0, + 121, 0, 0, 658, 0, 124, 0, 659, 108, 109, + 110, 111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 357, 358, 0, 807, 0, + 118, 0, 0, 0, 0, 359, 566, 74, 306, 0, + 124, 0, 169, 78, 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, - 0, 108, 109, 110, 111, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 116, 308, - 0, 0, 0, 118, 74, 266, 205, 0, 121, 0, - 78, 79, 80, 124, 0, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, - 105, 0, 0, 106, 0, 0, 0, 108, 109, 110, - 111, 7, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 117, 0, 0, 0, 118, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 124, - 1037, 0, 460, 13, 14, 461, 16, 17, 462, 19, - 463, 21, 0, 22, 0, 24, 25, 0, 27, 28, - 0, 0, 0, 0, 108, 109, 110, 111, 7, 8, + 0, 0, 0, 0, 0, 0, 0, 307, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 30, 31, 32, + 33, 34, 0, 74, 266, 37, 0, 0, 40, 78, + 79, 80, 0, 0, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 0, 108, 109, 110, + 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 308, 0, 0, 0, 118, + 74, 266, 205, 0, 121, 0, 78, 79, 80, 124, + 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 105, 0, 0, 106, + 0, 0, 0, 108, 109, 110, 111, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 117, 44, 45, 46, 118, 7, 8, 0, - 0, 121, 0, 0, 0, 0, 124, 0, 0, 460, - 13, 14, 461, 16, 17, 462, 19, 463, 21, 1052, - 22, 0, 24, 25, 0, 27, 28, 0, 460, 13, - 14, 461, 16, 17, 462, 19, 463, 21, 1074, 22, - 0, 24, 25, 0, 27, 28, 0, 710, 7, 8, - 44, 45, 46, 0, 0, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 44, - 45, 46, 1139, 299, 0, 0, 0, 0, 0, 460, - 13, 14, 461, 16, 17, 462, 19, 463, 21, 0, - 22, 1179, 24, 25, 0, 27, 28, 0, 0, 0, - 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, - 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 1136, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 490, 0, - 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 559, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1181, 0, 650, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 782, 0, 0, 0, 299, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 491, 297, 298, 840, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, + 116, 117, 0, 0, 0, 118, 0, 0, 0, 0, + 121, 0, 0, 0, 0, 124, 629, 0, 460, 13, + 14, 461, 16, 17, 462, 19, 463, 21, 0, 22, + 0, 24, 25, 0, 27, 28, 0, 0, 0, 0, + 108, 109, 110, 111, 7, 8, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 117, 44, + 45, 46, 118, 7, 8, 0, 0, 121, 0, 0, + 0, 0, 124, 0, 0, 460, 13, 14, 461, 16, + 17, 462, 19, 463, 21, 767, 22, 0, 24, 25, + 0, 27, 28, 0, 460, 13, 14, 461, 16, 17, + 462, 19, 463, 21, 801, 22, 0, 24, 25, 0, + 27, 28, 0, 713, 7, 8, 44, 45, 46, 0, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 508, 297, 298, 0, 0, 0, 0, 299, + 294, 295, 296, 297, 298, 44, 45, 46, 831, 299, + 0, 0, 0, 0, 0, 460, 13, 14, 461, 16, + 17, 462, 19, 463, 21, 0, 22, 875, 24, 25, + 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, + 729, 0, 0, 0, 0, 0, 1037, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 1135, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 0, 0, 0, 0, 299, 285, + 295, 296, 297, 298, 1051, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, + 296, 297, 298, 1073, 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 285, 286, 287, 288, 289, 290, 291, + 1180, 0, 1138, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 0, -4, 1, 0, - 299, -4, 0, 0, 0, 0, 0, 0, 0, -4, - -4, 0, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, -4, 0, 0, 0, 0, -4, -4, 683, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, -4, -4, -4, -4, -4, -4, -4, 0, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, 0, 0, -4, -4, 6, 0, 0, 0, - -4, -4, -4, -4, 7, 8, -4, 0, -4, 0, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 10, 11, 0, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, - 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 0, 35, 36, 37, 38, 39, 40, 7, 8, 41, - 42, 0, 0, 0, 0, 43, 44, 45, 46, 0, - 0, 47, 0, 48, 0, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 0, 0, 0, 460, 13, - 14, 461, 16, 17, 462, 19, 463, 21, 0, 22, - 0, 24, 25, 0, 27, 28, 0, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 44, - 45, 46, 1019, 0, 1020, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 1094, 0, 1095, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 687, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 688, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 736, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 781, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 817, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 997, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1014, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1043, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1044, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1045, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1046, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1069, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1109, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1111, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1112, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1124, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1127, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1130, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1148, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1149, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1173, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1175, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1177, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1187, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 448, 0, 0, 0, 0, - 527, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 484, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 527, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 528, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 556, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 603, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 604, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 617, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 618, 285, + 293, 294, 295, 296, 297, 298, 1178, 0, 0, 0, + 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 0, 0, 490, 0, 299, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 619, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 620, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 621, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 622, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 701, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 702, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 703, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 778, 285, 286, 287, + 296, 297, 298, 490, 0, 0, 0, 299, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 560, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 815, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 816, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 839, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 949, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 298, 651, 0, 0, 0, 299, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 785, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 950, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 969, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 981, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 1078, 285, 286, 287, 288, 289, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 491, 297, 298, 843, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 508, 297, 298, + 0, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 1079, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 1085, 285, 286, 287, + 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 0, -4, 1, + 0, 299, -4, 0, 0, 0, 0, 0, 0, 0, + -4, -4, 0, 0, 0, 0, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 1091, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 1143, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 1146, 285, 286, 287, 288, 289, + 298, 0, 0, -4, 0, 299, 0, 0, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, 0, -4, -4, -4, -4, -4, -4, -4, 0, + -4, -4, -4, -4, -4, -4, 0, -4, -4, -4, + -4, -4, -4, 0, 0, -4, -4, 6, 0, 0, + 0, -4, -4, -4, -4, 7, 8, -4, 0, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 10, 11, 0, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, + 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, + 0, 0, 47, 0, 48, 0, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 999, 0, 1000, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 1019, + 0, 1020, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 1093, 0, 1094, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 684, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 691, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 739, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 784, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 820, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 997, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1014, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1043, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1044, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1045, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1046, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1068, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1108, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1110, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1111, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1123, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1126, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1129, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1147, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1148, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1172, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1174, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1176, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1186, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 448, 0, 0, 0, 0, 528, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 484, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 528, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 529, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 557, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 604, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 605, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 618, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 619, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 620, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 621, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 622, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 623, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 704, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 705, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 706, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 781, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 818, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 819, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 842, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 951, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 952, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 971, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 983, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 1077, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 1078, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 1084, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 1090, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 1142, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 1145, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 452, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 452, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 562, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 561, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 568, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 567, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 583, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 582, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 585, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 584, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 587, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 586, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 589, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 588, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 591, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 590, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 593, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 592, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 595, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 594, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 597, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 596, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 599, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 598, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 601, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 600, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 603, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 602, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 607, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 606, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 609, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 608, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 611, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 610, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 613, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 612, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 615, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 614, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 617, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 616, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 719, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 716, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 720, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 717, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 722, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 719, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 723, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 720, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 734, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 731, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 735, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 732, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 757, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 754, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 859, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 856, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 861, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 858, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 863, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 860, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 865, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 862, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 964, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 962, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 297, 298, 0, 0, 0, 0, 299, 0, 448, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 485, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 494, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 448, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 495, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 485, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 497, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 494, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 499, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 495, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 500, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 497, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 503, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 499, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 504, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 500, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 511, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 503, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 553, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 504, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 554, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 511, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 555, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 552, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 561, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 553, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 582, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 554, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 584, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 560, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 586, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 581, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 588, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 583, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 590, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 585, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 592, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 587, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 594, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 589, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 596, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 591, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 598, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 593, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 600, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 595, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 602, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 597, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 606, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 599, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 608, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 601, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 610, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 605, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 612, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 607, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 614, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 609, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 616, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 611, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 669, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 613, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 674, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 615, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 682, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 668, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 685, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 673, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 686, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 681, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 692, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 684, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 718, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 685, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 858, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 689, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 860, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 715, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 862, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 855, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 864, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 857, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 868, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 859, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 998, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 861, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 1013, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 865, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 1023, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 998, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 1141, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 1013, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 1184, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 1023, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 1142, 285, 286, - 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 1185, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299 + 0, 0, 0, 0, 299 }; static const yytype_int16 yycheck[] = { - 58, 7, 6, 6, 351, 352, 177, 6, 274, 3, - 49, 6, 1032, 184, 4, 5, 4, 4, 130, 4, - 132, 4, 5, 4, 4, 4, 643, 4, 4, 131, - 68, 6, 6, 6, 136, 206, 69, 130, 209, 4, - 0, 6, 75, 76, 137, 6, 36, 37, 38, 39, - 13, 68, 42, 36, 37, 38, 39, 6, 69, 42, - 4, 707, 6, 131, 75, 76, 120, 121, 136, 7, - 7, 711, 120, 121, 127, 128, 120, 121, 77, 132, - 131, 134, 136, 69, 138, 136, 139, 150, 136, 75, - 76, 130, 130, 156, 79, 80, 81, 82, 49, 137, - 43, 89, 90, 46, 130, 138, 49, 120, 121, 89, - 90, 68, 6, 116, 117, 118, 179, 180, 121, 122, - 137, 97, 117, 126, 137, 1145, 53, 138, 134, 132, - 130, 125, 135, 130, 137, 138, 139, 140, 68, 142, - 143, 144, 145, 130, 147, 148, 149, 137, 765, 152, - 127, 128, 138, 138, 137, 132, 137, 134, 137, 120, - 121, 137, 139, 137, 137, 168, 169, 132, 117, 107, - 108, 109, 110, 110, 177, 130, 130, 120, 121, 49, - 137, 827, 1202, 137, 120, 121, 452, 130, 191, 192, - 193, 362, 195, 49, 137, 198, 199, 130, 201, 7, - 130, 137, 260, 261, 262, 263, 4, 137, 46, 212, - 381, 49, 130, 51, 132, 218, 219, 220, 221, 222, + 58, 714, 6, 6, 351, 352, 7, 6, 1032, 3, + 49, 7, 4, 274, 4, 5, 68, 4, 4, 7, + 4, 4, 5, 4, 644, 4, 6, 4, 6, 0, + 6, 69, 4, 68, 6, 131, 69, 75, 76, 4, + 136, 130, 75, 76, 120, 121, 36, 37, 38, 39, + 5, 13, 42, 36, 37, 38, 39, 6, 6, 42, + 136, 69, 710, 4, 6, 6, 130, 75, 76, 130, + 120, 121, 177, 137, 120, 121, 137, 6, 77, 184, + 49, 36, 37, 38, 39, 137, 136, 42, 138, 130, + 136, 130, 138, 79, 80, 81, 82, 89, 90, 130, + 138, 206, 137, 130, 209, 138, 107, 108, 109, 110, + 7, 120, 121, 116, 117, 118, 97, 68, 121, 122, + 1144, 130, 110, 126, 89, 90, 127, 128, 137, 132, + 138, 125, 135, 134, 137, 138, 139, 140, 134, 142, + 143, 144, 145, 130, 147, 148, 149, 137, 768, 152, + 127, 128, 138, 137, 137, 132, 137, 134, 137, 137, + 132, 137, 139, 127, 128, 168, 169, 120, 121, 117, + 134, 120, 121, 130, 177, 117, 130, 1201, 7, 130, + 143, 53, 830, 136, 147, 138, 137, 69, 191, 192, + 193, 452, 195, 75, 76, 198, 199, 130, 201, 130, + 7, 49, 260, 261, 262, 263, 137, 127, 128, 212, + 107, 108, 109, 110, 49, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 130, 875, 120, - 121, 264, 120, 121, 137, 63, 64, 65, 66, 272, - 274, 130, 132, 71, 134, 136, 74, 138, 136, 7, - 138, 130, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 49, 8, 107, - 108, 109, 110, 69, 130, 308, 132, 120, 121, 75, - 76, 120, 121, 316, 6, 7, 131, 130, 321, 127, - 128, 136, 325, 326, 137, 51, 8, 330, 137, 332, - 333, 334, 137, 336, 337, 338, 339, 340, 341, 342, - 339, 340, 341, 342, 120, 121, 130, 120, 121, 127, - 128, 354, 355, 356, 357, 358, 359, 351, 352, 131, - 136, 49, 365, 136, 136, 368, 369, 120, 121, 372, - 373, 374, 138, 7, 31, 32, 130, 34, 132, 107, - 108, 109, 110, 136, 387, 4, 449, 450, 49, 43, - 393, 395, 46, 396, 143, 49, 137, 51, 147, 127, - 128, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 46, 46, 69, 1058, 129, - 1060, 1038, 1062, 75, 76, 340, 341, 342, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 4, 447, 120, 121, 129, 452, 120, - 121, 454, 1098, 69, 453, 1101, 138, 69, 1104, 75, - 76, 136, 138, 75, 76, 136, 130, 143, 132, 120, - 121, 147, 69, 107, 108, 109, 110, 4, 75, 76, - 483, 484, 130, 486, 487, 136, 138, 490, 491, 492, - 130, 757, 758, 127, 128, 120, 121, 1137, 120, 121, - 134, 130, 505, 120, 121, 508, 509, 130, 165, 567, - 167, 136, 515, 4, 136, 130, 173, 132, 1164, 136, - 177, 69, 138, 272, 527, 528, 138, 75, 76, 130, - 533, 132, 1172, 6, 1174, 130, 1176, 132, 541, 132, - 543, 138, 1182, 1189, 120, 121, 1192, 4, 5, 1195, - 4, 69, 1198, 556, 137, 558, 559, 75, 76, 130, - 136, 132, 130, 567, 127, 128, 1206, 625, 1208, 7, - 1210, 134, 1218, 130, 1220, 922, 1222, 326, 130, 36, - 37, 38, 39, 130, 130, 42, 132, 69, 130, 130, - 138, 132, 69, 75, 76, 653, 272, 4, 75, 76, - 603, 604, 6, 666, 667, 8, 669, 6, 671, 672, - 6, 5, 675, 676, 617, 618, 619, 620, 621, 622, - 138, 624, 69, 372, 120, 121, 629, 130, 75, 76, - 4, 5, 308, 636, 122, 123, 124, 130, 130, 132, - 136, 129, 137, 646, 647, 648, 649, 650, 5, 325, - 326, 130, 130, 132, 132, 658, 138, 137, 721, 722, - 723, 138, 36, 37, 38, 39, 130, 69, 42, 130, - 127, 128, 130, 75, 76, 6, 679, 134, 137, 36, - 37, 38, 39, 4, 130, 42, 120, 121, 122, 123, - 124, 138, 349, 350, 130, 129, 372, 130, 130, 132, - 132, 358, 130, 130, 132, 132, 130, 1054, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 130, 786, 132, 130, 129, 132, 131, 792, - 130, 49, 132, 51, 483, 738, 739, 130, 801, 802, - 803, 130, 137, 806, 807, 808, 809, 810, 811, 812, - 754, 136, 132, 138, 758, 136, 505, 138, 136, 822, - 138, 137, 137, 766, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 6, 136, 778, 138, 129, 137, 782, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 127, 128, 130, 800, 129, 132, - 136, 134, 138, 866, 137, 132, 139, 483, 136, 132, - 138, 814, 815, 816, 6, 491, 492, 134, 137, 822, - 823, 92, 136, 826, 138, 883, 829, 6, 136, 505, - 138, 136, 508, 138, 6, 6, 839, 840, 841, 136, - 136, 138, 138, 847, 4, 6, 849, 136, 136, 138, - 138, 854, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 132, 136, 868, 138, 129, 867, 526, - 136, 136, 138, 138, 137, 624, 939, 136, 136, 138, - 138, 136, 539, 138, 136, 888, 138, 136, 951, 138, - 6, 894, 895, 5, 134, 1066, 899, 646, 647, 648, - 649, 136, 136, 138, 138, 908, 136, 129, 138, 658, - 136, 7, 138, 132, 137, 918, 7, 138, 7, 918, - 137, 131, 7, 7, 6, 89, 137, 4, 922, 136, - 679, 131, 131, 936, 136, 6, 4, 133, 7, 92, - 7, 944, 7, 7, 92, 944, 949, 950, 624, 1012, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 7, 7, 969, 1138, 129, 92, - 646, 647, 648, 649, 7, 7, 7, 131, 981, 131, - 131, 131, 658, 138, 6, 134, 7, 6, 134, 7, - 7, 138, 130, 130, 137, 6, 999, 6, 6, 656, - 133, 6, 1065, 679, 6, 132, 7, 6, 117, 49, - 7, 7, 1015, 51, 7, 137, 1019, 7, 1021, 7, - 7, 1024, 7, 7, 7, 1028, 7, 7, 7, 7, - 1033, 4, 6, 137, 137, 130, 6, 6, 6, 49, - 6, 4, 1105, 4, 701, 702, 703, 4, 134, 130, - 4, 6, 131, 6, 1057, 7, 1059, 137, 1061, 134, - 1054, 6, 56, 137, 6, 137, 6, 1070, 6, 6, - 6, 137, 5, 4, 137, 1078, 1079, 6, 137, 137, - 829, 6, 1085, 6, 88, 6, 4, 7, 133, 1092, - 6, 1094, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 4, 6, 4, 6, - 129, 1114, 6, 6, 6, 6, 6, 6, 6, 6, - 5, 92, 1125, 6, 6, 1128, 1184, 6, 1131, 6, - 6, 6, 1135, 6, 6, 6, 6, 6, 136, 6, - 1143, 6, 137, 1146, 6, 134, 7, 6, 6, 5, - 7, 6, 47, 829, 1212, 6, 1214, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 826, - 6, 138, 137, 129, 1232, 137, 3, 4, 137, 137, - 6, 6, 9, 10, 11, 87, 137, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 6, 6, - 90, 6, 6, 6, 6, 6, 43, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 137, 889, 137, 6, 129, 63, 64, 65, 66, - 67, 5, 61, 6, 71, 6, 6, 74, 6, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 6, 138, 6, 923, 129, 925, 137, - 927, 6, 136, 6, 5, 1024, 103, 104, 105, 106, - 6, 6, 6, 136, 138, 137, 6, 137, 137, 137, - 6, 137, 6, 120, 121, 5, 137, 137, 125, 137, - 137, 6, 6, 130, 138, 6, 6, 6, 135, 6, - 6, 138, 6, 6, 6, 777, 3, 4, 5, 1114, - 7, 3, 9, 10, 11, 785, 3, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 1024, 36, - 37, 38, 39, -1, 871, 42, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, + 253, 254, 255, 256, 257, 258, 259, 362, 878, 120, + 121, 264, 131, 68, 49, 31, 32, 136, 34, 272, + 274, 136, 131, 138, 51, 136, 381, 136, 107, 108, + 109, 110, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 130, 127, 128, + 107, 108, 109, 110, 130, 308, 132, 120, 121, 272, + 130, 43, 132, 316, 46, 4, 137, 49, 321, 137, + 127, 128, 325, 326, 137, 130, 49, 330, 131, 332, + 333, 334, 137, 136, 337, 338, 339, 340, 341, 342, + 339, 340, 341, 342, 1057, 131, 1059, 130, 1061, 132, + 136, 354, 355, 356, 357, 358, 359, 351, 352, 6, + 7, 69, 365, 326, 49, 368, 369, 75, 76, 372, + 373, 374, 46, 69, 63, 64, 65, 66, 46, 75, + 76, 49, 71, 51, 387, 74, 46, 130, 120, 121, + 393, 395, 130, 396, 4, 5, 69, 130, 130, 165, + 4, 167, 75, 76, 4, 137, 69, 173, 69, 372, + 69, 177, 75, 76, 75, 76, 75, 76, 1038, 120, + 121, 120, 121, 1136, 4, 130, 36, 37, 38, 39, + 138, 43, 42, 136, 46, 138, 137, 49, 137, 51, + 6, 138, 138, 130, 447, 132, 143, 137, 452, 1097, + 147, 454, 1100, 132, 453, 1103, 120, 121, 1171, 130, + 1173, 132, 1175, 69, 4, 138, 69, 4, 1181, 75, + 76, 7, 75, 76, 130, 138, 132, 138, 130, 138, + 483, 484, 130, 486, 487, 130, 130, 490, 491, 492, + 130, 69, 1205, 130, 1207, 132, 1209, 75, 76, 760, + 761, 69, 505, 120, 121, 508, 509, 75, 76, 130, + 568, 132, 515, 120, 121, 1163, 4, 127, 128, 136, + 483, 150, 120, 121, 134, 528, 529, 156, 157, 136, + 6, 534, 138, 130, 6, 138, 120, 121, 136, 542, + 1188, 544, 505, 1191, 6, 5, 1194, 4, 5, 1197, + 179, 180, 136, 130, 557, 132, 559, 560, 120, 121, + 138, 130, 120, 121, 568, 122, 123, 124, 626, 1217, + 138, 1219, 129, 1221, 136, 272, 130, 924, 136, 36, + 37, 38, 39, 349, 350, 42, 137, 120, 121, 120, + 121, 130, 358, 120, 121, 130, 654, 120, 121, 137, + 130, 604, 605, 136, 130, 136, 340, 341, 342, 136, + 130, 308, 132, 136, 130, 618, 619, 620, 621, 622, + 623, 8, 625, 130, 130, 127, 128, 630, 325, 326, + 132, 130, 134, 132, 637, 137, 130, 139, 132, 130, + 130, 132, 132, 130, 647, 648, 649, 650, 651, 120, + 121, 122, 123, 124, 4, 130, 659, 132, 129, 132, + 137, 134, 625, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 372, 130, 680, 132, 129, + 136, 130, 138, 132, 647, 648, 649, 650, 130, 130, + 132, 132, 130, 130, 132, 132, 659, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 1053, 127, 128, 136, + 129, 138, 132, 136, 134, 138, 137, 680, 136, 139, + 138, 49, 137, 51, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 741, 742, + 6, 136, 129, 138, 136, 136, 138, 138, 136, 132, + 138, 138, 136, 757, 138, 137, 136, 761, 138, 6, + 136, 527, 138, 136, 134, 138, 769, 92, 136, 8, + 138, 136, 132, 138, 540, 136, 132, 138, 781, 136, + 6, 138, 785, 136, 6, 138, 483, 136, 136, 138, + 138, 136, 6, 138, 491, 492, 136, 136, 138, 138, + 803, 136, 132, 138, 137, 4, 137, 5, 505, 6, + 129, 508, 134, 7, 817, 818, 819, 132, 138, 137, + 449, 450, 825, 826, 137, 7, 829, 7, 886, 832, + 7, 131, 7, 7, 6, 89, 137, 4, 136, 842, + 843, 844, 131, 131, 136, 6, 850, 4, 133, 852, + 92, 7, 7, 7, 857, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 7, 92, 871, 832, + 129, 870, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 7, 516, 891, 7, + 129, 657, 131, 7, 897, 898, 92, 7, 7, 902, + 4, 131, 131, 131, 131, 138, 138, 6, 911, 7, + 134, 7, 7, 134, 130, 130, 6, 920, 137, 6, + 6, 920, 133, 6, 6, 132, 7, 6, 625, 117, + 924, 7, 49, 7, 7, 938, 51, 137, 704, 705, + 706, 7, 7, 946, 7, 6, 4, 946, 951, 952, + 647, 648, 649, 650, 7, 12, 13, 7, 7, 7, + 1065, 7, 659, 7, 6, 130, 137, 137, 971, 6, + 6, 49, 6, 6, 4, 4, 4, 137, 4, 6, + 983, 134, 6, 680, 130, 134, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 999, 54, 131, 56, + 57, 7, 59, 60, 6, 137, 6, 137, 137, 56, + 6, 6, 1015, 137, 6, 6, 1019, 5, 1021, 4, + 6, 1024, 6, 6, 137, 1028, 137, 84, 85, 86, + 1033, 6, 1137, 88, 7, 4, 6, 4, 667, 668, + 6, 670, 6, 672, 673, 6, 6, 676, 677, 6, + 6, 6, 6, 1056, 6, 1058, 133, 1060, 5, 1053, + 6, 1024, 6, 829, 6, 6, 1069, 92, 6, 6, + 6, 6, 6, 6, 1077, 1078, 6, 136, 6, 6, + 6, 1084, 7, 137, 6, 5, 137, 6, 1091, 134, + 1093, 6, 6, 6, 47, 724, 725, 726, 138, 137, + 7, 6, 137, 6, 6, 137, 137, 87, 90, 6, + 1113, 6, 6, 6, 137, 137, 6, 5, 138, 6, + 137, 1124, 61, 6, 1127, 1183, 892, 1130, 136, 6, + 6, 1134, 6, 6, 6, 832, 6, 138, 5, 1142, + 137, 6, 1145, 137, 137, 6, 6, 137, 6, 136, + 6, 6, 5, 1211, 6, 1213, 137, 6, 137, 925, + 789, 927, 138, 929, 6, 137, 795, 8, 6, 137, + 6, 6, 137, 1231, 6, 804, 805, 806, 6, 6, + 6, 810, 811, 812, 813, 814, 815, 780, 1113, 788, + 3, 3, 874, -1, -1, -1, 825, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 1057, -1, 1059, -1, 1061, -1, -1, -1, 43, -1, - 97, -1, -1, -1, -1, -1, 103, 104, 105, 106, - 107, 108, 109, 110, -1, -1, -1, -1, 63, 64, - 65, 66, 67, 120, 121, -1, 71, -1, 125, 74, + -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, + 869, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, + 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + 1056, -1, 1058, -1, 1060, -1, -1, 138, 103, 104, + 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 941, -1, -1, 120, 121, -1, -1, -1, + 125, -1, -1, -1, 953, 130, -1, 1024, -1, -1, + 135, -1, -1, 138, -1, -1, 3, 4, 5, -1, + 7, -1, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, + 37, 38, 39, -1, -1, 42, -1, -1, -1, -1, + -1, -1, -1, 1012, 3, 4, -1, -1, -1, -1, + 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, + 97, -1, -1, -1, -1, 1064, 103, 104, 105, 106, + 107, 108, 109, 110, 63, 64, 65, 66, 67, -1, + -1, -1, 71, 120, 121, 74, -1, -1, 125, -1, 127, 128, -1, 130, -1, 132, -1, 134, 135, -1, - 137, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 103, 104, - 105, 106, 129, -1, -1, -1, -1, -1, -1, 136, - -1, 138, -1, -1, -1, 120, 121, -1, -1, -1, - 125, -1, -1, -1, -1, 130, -1, 3, 4, -1, - 135, -1, 137, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, -1, 43, 12, 13, + 137, -1, -1, -1, -1, 1104, -1, -1, -1, -1, + -1, -1, -1, -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 63, 64, 65, - 66, 67, 6, -1, -1, 71, -1, -1, 74, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, -1, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, -1, 6, -1, -1, -1, 103, 104, 105, - 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, 86, -1, 120, 121, -1, -1, -1, 125, - -1, -1, -1, -1, 130, -1, 3, 4, -1, 135, - -1, 137, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, 138, -1, 43, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, 63, 64, 65, 66, - 67, -1, -1, -1, 71, -1, -1, 74, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, + -1, 120, 121, -1, -1, -1, 125, -1, -1, -1, + -1, 130, -1, 3, 4, -1, 135, -1, 137, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, -1, 43, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 120, 121, -1, -1, -1, 125, -1, - -1, -1, -1, 130, -1, 3, 4, 5, 135, -1, - 137, 9, 10, 11, -1, -1, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, - 38, 39, 3, 4, 42, 12, 13, -1, 9, 10, + -1, -1, -1, 63, 64, 65, 66, 67, 6, -1, + -1, 71, -1, -1, 74, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, + -1, 59, 60, -1, -1, -1, -1, -1, -1, 6, + -1, -1, -1, 103, 104, 105, 106, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 120, 121, -1, -1, -1, 125, -1, -1, -1, -1, + 130, -1, 3, 4, -1, 135, -1, 137, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, -1, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, - 57, -1, 59, 60, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 103, 104, 105, 106, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, - -1, -1, 120, 121, -1, -1, -1, 125, -1, -1, - -1, -1, 130, -1, -1, -1, -1, 135, -1, 137, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + 138, -1, 43, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, 129, 63, 64, 65, 66, 67, -1, -1, -1, + 71, -1, -1, 74, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 6, 120, - 121, -1, -1, -1, 125, -1, -1, -1, -1, 130, - -1, 138, 133, -1, 135, -1, 137, 3, 4, -1, - -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - -1, -1, 3, 4, 12, 13, -1, -1, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, - -1, 59, 60, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 103, 104, 105, - 106, 129, -1, -1, -1, -1, 84, 85, 86, -1, - -1, -1, -1, -1, 120, 121, -1, -1, -1, 125, - -1, -1, -1, -1, 130, -1, -1, 133, -1, 135, - -1, 137, 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 120, - 121, -1, 61, -1, 125, -1, -1, -1, -1, 130, - 138, 3, 4, -1, 135, -1, 137, 9, 10, 11, + 121, -1, -1, -1, 125, -1, -1, -1, -1, 130, + -1, 3, 4, 5, 135, -1, 137, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, - -1, 43, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, 63, 64, 65, 66, 67, -1, 3, 4, 71, - -1, -1, 74, 9, 10, 11, -1, -1, 14, 15, + 32, 33, 34, -1, 36, 37, 38, 39, 3, 4, + 42, 12, 13, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, -1, 56, 57, -1, 59, 60, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, -1, -1, 120, 121, + -1, -1, -1, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, 135, -1, 137, -1, -1, 103, 104, + 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 6, 120, 121, -1, -1, -1, + 125, -1, -1, -1, -1, 130, -1, 138, 133, -1, + 135, -1, 137, 3, 4, -1, -1, -1, -1, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, -1, -1, -1, 3, 4, + 12, 13, -1, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, -1, 56, 57, -1, 59, 60, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 103, 104, 105, 106, 129, -1, -1, + -1, -1, 84, 85, 86, -1, -1, -1, -1, -1, + 120, 121, -1, -1, -1, 125, -1, -1, -1, -1, + 130, -1, -1, 133, -1, 135, -1, 137, 103, 104, + 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, -1, 61, -1, + 125, -1, -1, -1, -1, 130, 138, 3, 4, -1, + 135, -1, 137, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, - -1, -1, -1, 125, 3, 4, 5, -1, 130, -1, - 9, 10, 11, 135, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, - 39, -1, -1, 42, -1, -1, -1, 103, 104, 105, - 106, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, 63, 64, 65, + 66, 67, -1, 3, 4, 71, -1, -1, 74, 9, + 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, -1, -1, 103, 104, 105, + 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, -1, -1, -1, 125, - -1, -1, -1, -1, 130, -1, -1, -1, -1, 135, - 6, -1, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, -1, 54, -1, 56, 57, -1, 59, 60, - -1, -1, -1, -1, 103, 104, 105, 106, 12, 13, + 3, 4, 5, -1, 130, -1, 9, 10, 11, 135, + -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, 36, 37, 38, 39, -1, -1, 42, + -1, -1, -1, 103, 104, 105, 106, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 120, 121, 84, 85, 86, 125, 12, 13, -1, - -1, 130, -1, -1, -1, -1, 135, -1, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 6, - 54, -1, 56, 57, -1, 59, 60, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 6, 54, - -1, 56, 57, -1, 59, 60, -1, 138, 12, 13, - 84, 85, 86, -1, -1, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 84, - 85, 86, 6, 129, -1, -1, -1, -1, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 6, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, - 84, 85, 86, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 8, -1, - -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 8, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, 8, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 8, -1, -1, -1, 129, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 8, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, + 120, 121, -1, -1, -1, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, 135, 6, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + -1, 56, 57, -1, 59, 60, -1, -1, -1, -1, + 103, 104, 105, 106, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 120, 121, 84, + 85, 86, 125, 12, 13, -1, -1, 130, -1, -1, + -1, -1, 135, -1, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 6, 54, -1, 56, 57, + -1, 59, 60, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 6, 54, -1, 56, 57, -1, + 59, 60, -1, 138, 12, 13, 84, 85, 86, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, + 120, 121, 122, 123, 124, 84, 85, 86, 6, 129, + -1, -1, -1, -1, -1, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, -1, 54, 6, 56, 57, + -1, 59, 60, -1, -1, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, -1, 6, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, 111, + 121, 122, 123, 124, 6, -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, + 122, 123, 124, 6, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, + 138, -1, 6, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, 0, 1, -1, - 129, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 35, -1, -1, -1, -1, 40, 41, 138, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, 54, 55, 56, 57, 58, 59, 60, -1, 62, - 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, - 73, 74, -1, -1, 77, 78, 4, -1, -1, -1, - 83, 84, 85, 86, 12, 13, 89, -1, 91, -1, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, - -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, - -1, 69, 70, 71, 72, 73, 74, 12, 13, 77, - 78, -1, -1, -1, -1, 83, 84, 85, 86, -1, - -1, 89, -1, 91, -1, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, -1, -1, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, - -1, 56, 57, -1, 59, 60, -1, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, 84, - 85, 86, 136, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, -1, 138, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, 131, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, + 119, 120, 121, 122, 123, 124, 6, -1, -1, -1, + 129, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, 8, -1, 129, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, + 122, 123, 124, 8, -1, -1, -1, 129, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 8, -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 124, 8, -1, -1, -1, 129, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 8, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 8, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, - 136, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, 136, 111, 112, 113, + -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, 0, 1, + -1, 129, 4, -1, -1, -1, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 136, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, 136, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, 111, 112, 113, 114, 115, + 124, -1, -1, 35, -1, 129, -1, -1, 40, 41, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, 74, -1, -1, 77, 78, 4, -1, -1, + -1, 83, 84, 85, 86, 12, 13, 89, -1, 91, + -1, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, -1, -1, -1, -1, -1, -1, -1, 35, -1, + -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, 74, -1, -1, + 77, 78, -1, -1, -1, -1, 83, 84, 85, 86, + -1, -1, 89, -1, 91, -1, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, -1, 138, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, + -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, 131, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, + -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, + -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, @@ -2577,8 +2601,12 @@ static const yytype_int16 yycheck[] = 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, + 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, @@ -2674,13 +2702,7 @@ static const yytype_int16 yycheck[] = 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129 + -1, -1, -1, -1, 129 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2694,123 +2716,123 @@ static const yytype_uint8 yystos[] = 74, 77, 78, 83, 84, 85, 86, 89, 91, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 143, 145, 146, 164, 168, 169, 172, 173, 174, 175, 176, - 177, 196, 197, 198, 3, 4, 5, 7, 9, 10, + 177, 197, 198, 199, 3, 4, 5, 7, 9, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 42, 97, 103, 104, 105, 106, 107, 108, 109, 110, 120, 121, 125, 127, - 128, 130, 132, 134, 135, 137, 162, 163, 199, 200, - 211, 13, 49, 130, 6, 137, 6, 130, 137, 130, + 128, 130, 132, 134, 135, 137, 162, 163, 200, 201, + 212, 13, 49, 130, 6, 137, 6, 130, 137, 130, 130, 68, 130, 137, 130, 130, 68, 137, 130, 130, 53, 49, 130, 49, 49, 49, 46, 49, 51, 51, 43, 46, 49, 51, 130, 137, 120, 121, 130, 137, - 201, 202, 201, 137, 43, 46, 49, 137, 201, 49, + 202, 203, 202, 137, 43, 46, 49, 137, 202, 49, 49, 46, 4, 97, 137, 4, 6, 46, 4, 4, - 4, 130, 130, 130, 4, 137, 207, 4, 130, 130, - 6, 132, 4, 4, 4, 5, 137, 210, 211, 137, - 210, 4, 132, 134, 139, 163, 137, 211, 130, 132, + 4, 130, 130, 130, 4, 137, 208, 4, 130, 130, + 6, 132, 4, 4, 4, 5, 137, 211, 212, 137, + 211, 4, 132, 134, 139, 163, 137, 212, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, 130, 132, - 130, 130, 130, 130, 7, 130, 4, 199, 199, 199, - 199, 133, 137, 199, 4, 89, 90, 4, 4, 169, - 170, 171, 199, 6, 6, 111, 112, 113, 114, 115, + 130, 130, 130, 130, 7, 130, 4, 200, 200, 200, + 200, 133, 137, 200, 4, 89, 90, 4, 4, 169, + 170, 171, 200, 6, 6, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 129, - 6, 6, 199, 5, 199, 199, 4, 43, 121, 169, - 177, 199, 205, 206, 199, 199, 130, 199, 206, 199, - 199, 130, 206, 199, 199, 121, 137, 199, 204, 205, - 130, 199, 137, 130, 130, 204, 137, 137, 130, 130, - 130, 130, 130, 4, 201, 201, 201, 199, 199, 120, - 121, 137, 137, 201, 137, 137, 137, 120, 121, 130, - 171, 201, 137, 204, 204, 130, 4, 6, 132, 132, - 171, 6, 137, 132, 132, 6, 199, 199, 199, 134, - 199, 137, 92, 199, 199, 199, 6, 132, 134, 171, - 6, 171, 6, 132, 199, 4, 137, 147, 6, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 210, 210, 210, 210, 199, 5, 132, 131, 7, - 110, 206, 133, 7, 162, 163, 134, 7, 132, 138, - 43, 46, 49, 51, 168, 6, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 6, 131, 136, 136, 131, 132, 137, 199, 205, - 8, 122, 136, 138, 131, 131, 199, 131, 138, 131, - 131, 199, 138, 131, 131, 137, 138, 206, 122, 7, - 199, 131, 199, 199, 199, 7, 199, 199, 199, 165, - 199, 211, 165, 165, 165, 131, 136, 136, 136, 201, - 201, 170, 170, 136, 199, 199, 199, 199, 181, 136, - 171, 7, 195, 7, 199, 6, 199, 199, 138, 206, - 199, 199, 131, 131, 131, 89, 136, 171, 137, 8, - 131, 133, 199, 4, 138, 138, 199, 133, 163, 199, - 4, 79, 80, 81, 82, 138, 150, 154, 157, 159, - 160, 131, 133, 131, 133, 131, 133, 131, 133, 131, - 133, 131, 133, 131, 133, 131, 133, 131, 133, 131, - 133, 131, 133, 136, 136, 131, 133, 131, 133, 131, - 133, 131, 133, 131, 133, 131, 133, 136, 136, 136, - 136, 136, 136, 131, 136, 136, 131, 131, 6, 136, - 199, 204, 204, 138, 7, 134, 162, 163, 211, 199, - 6, 4, 4, 137, 208, 133, 137, 137, 137, 137, - 8, 6, 117, 144, 206, 199, 7, 133, 137, 199, - 199, 199, 205, 199, 205, 92, 7, 7, 131, 7, - 92, 7, 7, 131, 92, 7, 7, 206, 138, 137, - 199, 131, 7, 138, 131, 131, 199, 138, 138, 131, - 131, 131, 131, 131, 134, 201, 199, 199, 138, 138, - 199, 136, 136, 136, 69, 75, 76, 191, 192, 201, - 138, 178, 199, 6, 199, 131, 133, 133, 138, 133, - 133, 7, 7, 7, 134, 199, 138, 199, 199, 7, - 134, 133, 133, 134, 163, 210, 138, 151, 130, 130, - 137, 161, 6, 199, 199, 199, 199, 199, 199, 199, - 199, 206, 210, 199, 133, 6, 6, 133, 4, 89, - 90, 199, 6, 6, 6, 7, 132, 207, 209, 6, - 206, 206, 206, 206, 199, 117, 210, 131, 136, 201, - 206, 138, 8, 49, 204, 204, 7, 204, 49, 51, - 204, 204, 7, 51, 204, 204, 138, 206, 6, 7, - 137, 7, 7, 7, 61, 193, 7, 7, 7, 7, - 7, 7, 7, 4, 136, 136, 136, 138, 201, 201, - 201, 6, 137, 130, 138, 192, 136, 191, 6, 137, - 6, 6, 49, 6, 6, 204, 204, 204, 4, 136, - 8, 8, 131, 4, 4, 134, 6, 4, 6, 130, - 199, 199, 203, 204, 137, 131, 133, 131, 133, 131, - 133, 131, 133, 131, 131, 131, 162, 7, 162, 163, - 134, 7, 6, 207, 199, 136, 138, 138, 138, 138, - 138, 6, 6, 144, 199, 6, 138, 199, 137, 56, - 167, 167, 204, 6, 137, 137, 6, 6, 204, 137, - 6, 6, 138, 5, 199, 204, 204, 204, 4, 6, - 204, 204, 204, 204, 204, 204, 204, 6, 7, 199, - 199, 199, 137, 136, 138, 136, 138, 136, 138, 199, - 204, 199, 199, 201, 138, 206, 137, 6, 6, 88, - 199, 199, 199, 6, 7, 4, 163, 148, 199, 136, - 136, 136, 138, 149, 199, 204, 211, 199, 6, 4, - 208, 6, 133, 207, 6, 6, 6, 6, 210, 136, - 133, 199, 201, 6, 6, 6, 199, 199, 6, 199, - 5, 136, 6, 6, 92, 166, 199, 4, 194, 6, - 6, 6, 6, 6, 6, 199, 211, 138, 131, 136, - 138, 170, 201, 6, 182, 201, 6, 183, 201, 6, - 184, 138, 136, 131, 138, 136, 138, 199, 204, 136, - 138, 8, 138, 131, 137, 199, 211, 131, 136, 199, - 199, 204, 137, 136, 138, 6, 6, 6, 7, 6, - 134, 6, 199, 138, 138, 138, 138, 5, 199, 47, - 6, 6, 6, 6, 137, 199, 138, 136, 137, 136, - 137, 136, 137, 6, 204, 7, 137, 199, 6, 138, - 87, 199, 199, 206, 6, 6, 152, 199, 136, 136, - 203, 199, 6, 207, 90, 136, 6, 6, 6, 6, - 6, 136, 137, 170, 136, 138, 199, 201, 191, 199, - 201, 191, 199, 201, 191, 136, 138, 204, 171, 138, - 199, 138, 138, 138, 137, 199, 199, 138, 6, 199, - 5, 199, 138, 199, 138, 136, 138, 138, 136, 138, - 138, 136, 138, 204, 6, 61, 138, 179, 137, 6, - 6, 149, 131, 136, 6, 137, 136, 136, 138, 138, - 6, 185, 199, 6, 6, 186, 199, 6, 6, 187, - 199, 6, 138, 199, 191, 171, 138, 155, 199, 203, - 199, 5, 137, 138, 137, 138, 137, 138, 6, 6, - 138, 138, 180, 6, 137, 131, 138, 138, 136, 191, - 6, 188, 191, 6, 189, 191, 6, 190, 191, 153, - 210, 158, 137, 6, 5, 138, 137, 138, 137, 138, - 137, 138, 136, 138, 137, 203, 138, 6, 191, 6, - 191, 6, 191, 210, 6, 156, 210, 138, 6, 138, - 138, 138, 136, 138, 6, 6, 6, 6, 210, 6 + 6, 6, 200, 5, 200, 200, 4, 43, 121, 169, + 177, 200, 206, 207, 200, 200, 130, 200, 207, 200, + 200, 130, 207, 200, 200, 121, 137, 200, 205, 206, + 130, 200, 137, 130, 130, 205, 205, 137, 130, 130, + 130, 130, 130, 4, 202, 202, 202, 200, 200, 120, + 121, 137, 137, 202, 137, 137, 137, 120, 121, 130, + 171, 202, 137, 205, 205, 130, 4, 6, 132, 132, + 171, 6, 137, 132, 132, 6, 200, 200, 200, 134, + 200, 137, 92, 200, 200, 200, 6, 132, 134, 171, + 6, 171, 6, 132, 200, 4, 137, 147, 6, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 211, 211, 211, 211, 200, 5, 132, 131, 7, + 110, 207, 133, 7, 162, 163, 134, 7, 132, 138, + 43, 46, 49, 51, 168, 6, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 6, 131, 136, 136, 131, 132, 137, 200, 206, + 8, 122, 136, 138, 131, 131, 200, 131, 138, 131, + 131, 200, 138, 131, 131, 137, 138, 207, 122, 7, + 200, 131, 200, 200, 200, 7, 7, 195, 200, 200, + 165, 200, 212, 165, 165, 165, 131, 136, 136, 136, + 202, 202, 170, 170, 136, 200, 200, 200, 200, 181, + 136, 171, 7, 196, 7, 200, 6, 200, 200, 138, + 207, 200, 200, 131, 131, 131, 89, 136, 171, 137, + 8, 131, 133, 200, 4, 138, 138, 200, 133, 163, + 200, 4, 79, 80, 81, 82, 138, 150, 154, 157, + 159, 160, 131, 133, 131, 133, 131, 133, 131, 133, + 131, 133, 131, 133, 131, 133, 131, 133, 131, 133, + 131, 133, 131, 133, 136, 136, 131, 133, 131, 133, + 131, 133, 131, 133, 131, 133, 131, 133, 136, 136, + 136, 136, 136, 136, 131, 136, 136, 131, 131, 6, + 136, 200, 205, 205, 138, 7, 134, 162, 163, 212, + 200, 6, 4, 4, 137, 209, 133, 137, 137, 137, + 137, 8, 6, 117, 144, 207, 200, 7, 133, 137, + 200, 200, 200, 206, 200, 206, 92, 7, 7, 131, + 7, 92, 7, 7, 131, 92, 7, 7, 207, 138, + 137, 200, 131, 7, 138, 131, 131, 200, 205, 4, + 194, 138, 131, 131, 131, 131, 131, 134, 202, 200, + 200, 138, 138, 200, 136, 136, 136, 69, 75, 76, + 191, 192, 202, 138, 178, 200, 6, 200, 131, 133, + 133, 138, 133, 133, 7, 7, 7, 134, 200, 138, + 200, 200, 7, 134, 133, 133, 134, 163, 211, 138, + 151, 130, 130, 137, 161, 6, 200, 200, 200, 200, + 200, 200, 200, 200, 207, 211, 200, 133, 6, 6, + 133, 4, 89, 90, 200, 6, 6, 6, 7, 132, + 208, 210, 6, 207, 207, 207, 207, 200, 117, 211, + 131, 136, 202, 207, 138, 8, 49, 205, 205, 7, + 205, 49, 51, 205, 205, 7, 51, 205, 205, 138, + 207, 6, 7, 137, 7, 7, 7, 61, 193, 6, + 7, 7, 7, 7, 7, 7, 4, 136, 136, 136, + 138, 202, 202, 202, 6, 137, 130, 138, 192, 136, + 191, 6, 137, 6, 6, 49, 6, 6, 205, 205, + 205, 4, 136, 8, 8, 131, 4, 4, 134, 6, + 4, 6, 130, 200, 200, 204, 205, 137, 131, 133, + 131, 133, 131, 133, 131, 133, 131, 131, 131, 162, + 7, 162, 163, 134, 7, 6, 208, 200, 136, 138, + 138, 138, 138, 138, 6, 6, 144, 200, 6, 138, + 200, 137, 56, 167, 167, 205, 6, 137, 137, 6, + 6, 205, 137, 6, 6, 138, 5, 200, 205, 205, + 205, 4, 6, 205, 205, 205, 205, 205, 205, 6, + 7, 200, 200, 200, 137, 136, 138, 136, 138, 136, + 138, 200, 205, 200, 200, 202, 138, 207, 137, 6, + 6, 88, 200, 200, 200, 6, 7, 4, 163, 148, + 200, 136, 136, 136, 138, 149, 200, 205, 212, 200, + 6, 4, 209, 6, 133, 208, 6, 6, 6, 6, + 211, 136, 133, 200, 202, 6, 6, 6, 200, 200, + 6, 200, 5, 136, 6, 6, 92, 166, 200, 6, + 6, 6, 6, 6, 6, 200, 212, 138, 131, 136, + 138, 170, 202, 6, 182, 202, 6, 183, 202, 6, + 184, 138, 136, 131, 138, 136, 138, 200, 205, 136, + 138, 8, 138, 131, 137, 200, 212, 131, 136, 200, + 200, 205, 137, 136, 138, 6, 6, 6, 7, 6, + 134, 6, 200, 138, 138, 138, 138, 5, 200, 47, + 6, 6, 6, 137, 200, 138, 136, 137, 136, 137, + 136, 137, 6, 205, 7, 137, 200, 6, 138, 87, + 200, 200, 207, 6, 6, 152, 200, 136, 136, 204, + 200, 6, 208, 90, 136, 6, 6, 6, 6, 6, + 136, 137, 170, 136, 138, 200, 202, 191, 200, 202, + 191, 200, 202, 191, 136, 138, 205, 171, 138, 200, + 138, 138, 138, 137, 200, 200, 138, 6, 200, 5, + 200, 138, 200, 138, 136, 138, 138, 136, 138, 138, + 136, 138, 205, 6, 61, 138, 179, 137, 6, 6, + 149, 131, 136, 6, 137, 136, 136, 138, 138, 6, + 185, 200, 6, 6, 186, 200, 6, 6, 187, 200, + 6, 138, 200, 191, 171, 138, 155, 200, 204, 200, + 5, 137, 138, 137, 138, 137, 138, 6, 6, 138, + 138, 180, 6, 137, 131, 138, 138, 136, 191, 6, + 188, 191, 6, 189, 191, 6, 190, 191, 153, 211, + 158, 137, 6, 5, 138, 137, 138, 137, 138, 137, + 138, 136, 138, 137, 204, 138, 6, 191, 6, 191, + 6, 191, 211, 6, 156, 211, 138, 6, 138, 138, + 138, 136, 138, 6, 6, 6, 6, 211, 6 }; #define yyerrok (yyerrstatus = 0) @@ -3625,96 +3647,96 @@ yyreduce: switch (yyn) { case 3: -#line 139 "Gmsh.y" +#line 140 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: -#line 150 "Gmsh.y" +#line 151 "Gmsh.y" { return 1; ;} break; case 7: -#line 151 "Gmsh.y" +#line 152 "Gmsh.y" { return 1; ;} break; case 8: -#line 152 "Gmsh.y" +#line 153 "Gmsh.y" { return 1; ;} break; case 9: -#line 153 "Gmsh.y" +#line 154 "Gmsh.y" { return 1; ;} break; case 10: -#line 154 "Gmsh.y" +#line 155 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: -#line 155 "Gmsh.y" +#line 156 "Gmsh.y" { return 1; ;} break; case 12: -#line 156 "Gmsh.y" +#line 157 "Gmsh.y" { return 1; ;} break; case 13: -#line 157 "Gmsh.y" +#line 158 "Gmsh.y" { return 1; ;} break; case 14: -#line 158 "Gmsh.y" +#line 159 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 15: -#line 159 "Gmsh.y" +#line 160 "Gmsh.y" { return 1; ;} break; case 16: -#line 160 "Gmsh.y" +#line 161 "Gmsh.y" { return 1; ;} break; case 17: -#line 161 "Gmsh.y" +#line 162 "Gmsh.y" { return 1; ;} break; case 18: -#line 162 "Gmsh.y" +#line 163 "Gmsh.y" { return 1; ;} break; case 19: -#line 163 "Gmsh.y" +#line 164 "Gmsh.y" { return 1; ;} break; case 20: -#line 168 "Gmsh.y" +#line 169 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} break; case 21: -#line 172 "Gmsh.y" +#line 173 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} break; case 22: -#line 179 "Gmsh.y" +#line 180 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -3722,7 +3744,7 @@ yyreduce: break; case 23: -#line 184 "Gmsh.y" +#line 185 "Gmsh.y" { char tmpstring[1024]; FixRelativePath((yyvsp[(6) - (7)].c), tmpstring); @@ -3740,7 +3762,7 @@ yyreduce: break; case 24: -#line 199 "Gmsh.y" +#line 200 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -3756,7 +3778,7 @@ yyreduce: break; case 25: -#line 212 "Gmsh.y" +#line 213 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -3783,7 +3805,7 @@ yyreduce: break; case 26: -#line 241 "Gmsh.y" +#line 242 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -3800,7 +3822,7 @@ yyreduce: break; case 27: -#line 255 "Gmsh.y" +#line 256 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -3814,7 +3836,7 @@ yyreduce: break; case 28: -#line 266 "Gmsh.y" +#line 267 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -3828,7 +3850,7 @@ yyreduce: break; case 29: -#line 280 "Gmsh.y" +#line 281 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData = new PViewDataList(true); @@ -3837,27 +3859,27 @@ yyreduce: break; case 35: -#line 294 "Gmsh.y" +#line 295 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 36: -#line 296 "Gmsh.y" +#line 297 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 37: -#line 301 "Gmsh.y" +#line 302 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &(yyvsp[(1) - (1)].d)); ;} break; case 38: -#line 303 "Gmsh.y" +#line 304 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &(yyvsp[(3) - (3)].d)); ;} break; case 39: -#line 308 "Gmsh.y" +#line 309 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (1)].c), "SP")){ @@ -4006,7 +4028,7 @@ yyreduce: break; case 40: -#line 454 "Gmsh.y" +#line 455 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(ViewValueList){ @@ -4019,7 +4041,7 @@ yyreduce: break; case 41: -#line 464 "Gmsh.y" +#line 465 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(ViewValueList) (*ViewNumList)++; @@ -4028,7 +4050,7 @@ yyreduce: break; case 42: -#line 473 "Gmsh.y" +#line 474 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c))+1; i++) List_Add(ViewData->T2C, &(yyvsp[(1) - (1)].c)[i]); @@ -4038,7 +4060,7 @@ yyreduce: break; case 43: -#line 480 "Gmsh.y" +#line 481 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c))+1; i++) List_Add(ViewData->T2C, &(yyvsp[(3) - (3)].c)[i]); @@ -4048,7 +4070,7 @@ yyreduce: break; case 44: -#line 490 "Gmsh.y" +#line 491 "Gmsh.y" { #if !defined(HAVE_NO_POST) List_Add(ViewData->T2D, &(yyvsp[(3) - (8)].d)); @@ -4061,7 +4083,7 @@ yyreduce: break; case 45: -#line 500 "Gmsh.y" +#line 501 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData->NbT2++; @@ -4070,7 +4092,7 @@ yyreduce: break; case 46: -#line 509 "Gmsh.y" +#line 510 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c))+1; i++) List_Add(ViewData->T3C, &(yyvsp[(1) - (1)].c)[i]); @@ -4080,7 +4102,7 @@ yyreduce: break; case 47: -#line 516 "Gmsh.y" +#line 517 "Gmsh.y" { #if !defined(HAVE_NO_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c))+1; i++) List_Add(ViewData->T3C, &(yyvsp[(3) - (3)].c)[i]); @@ -4090,7 +4112,7 @@ yyreduce: break; case 48: -#line 526 "Gmsh.y" +#line 527 "Gmsh.y" { #if !defined(HAVE_NO_POST) List_Add(ViewData->T3D, &(yyvsp[(3) - (10)].d)); List_Add(ViewData->T3D, &(yyvsp[(5) - (10)].d)); @@ -4102,7 +4124,7 @@ yyreduce: break; case 49: -#line 535 "Gmsh.y" +#line 536 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewData->NbT3++; @@ -4111,7 +4133,7 @@ yyreduce: break; case 50: -#line 545 "Gmsh.y" +#line 546 "Gmsh.y" { #if !defined(HAVE_NO_POST) int type = @@ -4128,7 +4150,7 @@ yyreduce: break; case 51: -#line 562 "Gmsh.y" +#line 563 "Gmsh.y" { #if !defined(HAVE_NO_POST) int type = @@ -4144,7 +4166,7 @@ yyreduce: break; case 52: -#line 578 "Gmsh.y" +#line 579 "Gmsh.y" { #if !defined(HAVE_NO_POST) ViewValueList = ViewData->Time; @@ -4153,48 +4175,48 @@ yyreduce: break; case 53: -#line 584 "Gmsh.y" +#line 585 "Gmsh.y" { ;} break; case 54: -#line 591 "Gmsh.y" +#line 592 "Gmsh.y" { (yyval.i) = 0; ;} break; case 55: -#line 592 "Gmsh.y" +#line 593 "Gmsh.y" { (yyval.i) = 1; ;} break; case 56: -#line 593 "Gmsh.y" +#line 594 "Gmsh.y" { (yyval.i) = 2; ;} break; case 57: -#line 594 "Gmsh.y" +#line 595 "Gmsh.y" { (yyval.i) = 3; ;} break; case 58: -#line 595 "Gmsh.y" +#line 596 "Gmsh.y" { (yyval.i) = 4; ;} break; case 59: -#line 599 "Gmsh.y" +#line 600 "Gmsh.y" { (yyval.i) = 1; ;} break; case 60: -#line 600 "Gmsh.y" +#line 601 "Gmsh.y" { (yyval.i) = -1; ;} break; case 61: -#line 608 "Gmsh.y" +#line 609 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ if(!(yyvsp[(2) - (4)].i)) @@ -4219,7 +4241,7 @@ yyreduce: break; case 62: -#line 630 "Gmsh.y" +#line 631 "Gmsh.y" { int index = (int)(yyvsp[(3) - (7)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (7)].c))){ @@ -4249,7 +4271,7 @@ yyreduce: break; case 63: -#line 657 "Gmsh.y" +#line 658 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){ yymsg(0, "Incompatible array dimensions in affectation"); @@ -4292,7 +4314,7 @@ yyreduce: break; case 64: -#line 697 "Gmsh.y" +#line 698 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) gmsh_yysymbols[(yyvsp[(1) - (6)].c)].clear(); @@ -4305,7 +4327,7 @@ yyreduce: break; case 65: -#line 707 "Gmsh.y" +#line 708 "Gmsh.y" { // appends to the list for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++) @@ -4316,7 +4338,7 @@ yyreduce: break; case 66: -#line 715 "Gmsh.y" +#line 716 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -4327,7 +4349,7 @@ yyreduce: break; case 67: -#line 723 "Gmsh.y" +#line 724 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c)); @@ -4342,7 +4364,7 @@ yyreduce: break; case 68: -#line 735 "Gmsh.y" +#line 736 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -4351,7 +4373,7 @@ yyreduce: break; case 69: -#line 744 "Gmsh.y" +#line 745 "Gmsh.y" { StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(3) - (6)].c)); @@ -4359,7 +4381,7 @@ yyreduce: break; case 70: -#line 749 "Gmsh.y" +#line 750 "Gmsh.y" { StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), (yyvsp[(8) - (9)].c)); Free((yyvsp[(1) - (9)].c)); Free((yyvsp[(6) - (9)].c)); @@ -4367,7 +4389,7 @@ yyreduce: break; case 71: -#line 757 "Gmsh.y" +#line 758 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -4388,7 +4410,7 @@ yyreduce: break; case 72: -#line 775 "Gmsh.y" +#line 776 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -4409,7 +4431,7 @@ yyreduce: break; case 73: -#line 793 "Gmsh.y" +#line 794 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -4421,7 +4443,7 @@ yyreduce: break; case 74: -#line 802 "Gmsh.y" +#line 803 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -4433,7 +4455,7 @@ yyreduce: break; case 75: -#line 814 "Gmsh.y" +#line 815 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); Free((yyvsp[(1) - (8)].c)); Free((yyvsp[(5) - (8)].c)); @@ -4441,7 +4463,7 @@ yyreduce: break; case 76: -#line 819 "Gmsh.y" +#line 820 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); Free((yyvsp[(1) - (11)].c)); Free((yyvsp[(8) - (11)].c)); @@ -4449,7 +4471,7 @@ yyreduce: break; case 77: -#line 827 "Gmsh.y" +#line 828 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -4472,7 +4494,7 @@ yyreduce: break; case 78: -#line 847 "Gmsh.y" +#line 848 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -4495,7 +4517,7 @@ yyreduce: break; case 79: -#line 870 "Gmsh.y" +#line 871 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (5)].c),"Background")) GModel::current()->getFields()->background_field = (int)(yyvsp[(4) - (5)].d); @@ -4505,7 +4527,7 @@ yyreduce: break; case 80: -#line 877 "Gmsh.y" +#line 878 "Gmsh.y" { if(!GModel::current()->getFields()->new_field((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) yymsg(0, "Cannot create field %i of type '%s'", (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c)); @@ -4514,7 +4536,7 @@ yyreduce: break; case 81: -#line 883 "Gmsh.y" +#line 884 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4537,7 +4559,7 @@ yyreduce: break; case 82: -#line 903 "Gmsh.y" +#line 904 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); if(field){ @@ -4561,7 +4583,7 @@ yyreduce: break; case 83: -#line 924 "Gmsh.y" +#line 925 "Gmsh.y" { Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); if(field){ @@ -4587,7 +4609,7 @@ yyreduce: break; case 84: -#line 950 "Gmsh.y" +#line 951 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4602,7 +4624,7 @@ yyreduce: break; case 85: -#line 962 "Gmsh.y" +#line 963 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -4617,14 +4639,14 @@ yyreduce: break; case 86: -#line 979 "Gmsh.y" +#line 980 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} break; case 87: -#line 983 "Gmsh.y" +#line 984 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), ++GModel::current()->getGEOInternals()->MaxPhysicalNum); @@ -4633,14 +4655,14 @@ yyreduce: break; case 88: -#line 992 "Gmsh.y" +#line 993 "Gmsh.y" { (yyval.l) = 0; ;} break; case 89: -#line 996 "Gmsh.y" +#line 997 "Gmsh.y" { (yyval.l) = List_Create(4, 4, sizeof(double)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -4655,21 +4677,21 @@ yyreduce: break; case 90: -#line 1010 "Gmsh.y" +#line 1011 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} break; case 91: -#line 1014 "Gmsh.y" +#line 1015 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 92: -#line 1024 "Gmsh.y" +#line 1025 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -4695,7 +4717,7 @@ yyreduce: break; case 93: -#line 1047 "Gmsh.y" +#line 1048 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -4714,7 +4736,7 @@ yyreduce: break; case 94: -#line 1063 "Gmsh.y" +#line 1064 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -4736,7 +4758,7 @@ yyreduce: break; case 95: -#line 1085 "Gmsh.y" +#line 1086 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4757,7 +4779,7 @@ yyreduce: break; case 96: -#line 1103 "Gmsh.y" +#line 1104 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4778,7 +4800,7 @@ yyreduce: break; case 97: -#line 1121 "Gmsh.y" +#line 1122 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4811,7 +4833,7 @@ yyreduce: break; case 98: -#line 1151 "Gmsh.y" +#line 1152 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -4844,7 +4866,7 @@ yyreduce: break; case 99: -#line 1182 "Gmsh.y" +#line 1183 "Gmsh.y" { int num = (int)(yyvsp[(3) - (17)].d); if(FindCurve(num)){ @@ -4866,7 +4888,7 @@ yyreduce: break; case 100: -#line 1201 "Gmsh.y" +#line 1202 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4887,7 +4909,7 @@ yyreduce: break; case 101: -#line 1219 "Gmsh.y" +#line 1220 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -4908,7 +4930,7 @@ yyreduce: break; case 102: -#line 1237 "Gmsh.y" +#line 1238 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); if(List_Nbr((yyvsp[(6) - (11)].l)) + (int)(yyvsp[(10) - (11)].d) + 1 != List_Nbr((yyvsp[(8) - (11)].l))){ @@ -4937,7 +4959,7 @@ yyreduce: break; case 103: -#line 1263 "Gmsh.y" +#line 1264 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -4957,7 +4979,7 @@ yyreduce: break; case 104: -#line 1280 "Gmsh.y" +#line 1281 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -4976,7 +4998,7 @@ yyreduce: break; case 105: -#line 1299 "Gmsh.y" +#line 1300 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -4997,7 +5019,7 @@ yyreduce: break; case 106: -#line 1317 "Gmsh.y" +#line 1318 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -5039,7 +5061,7 @@ yyreduce: break; case 107: -#line 1356 "Gmsh.y" +#line 1357 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5048,7 +5070,7 @@ yyreduce: break; case 108: -#line 1362 "Gmsh.y" +#line 1363 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5057,7 +5079,7 @@ yyreduce: break; case 109: -#line 1368 "Gmsh.y" +#line 1369 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -5067,7 +5089,7 @@ yyreduce: break; case 110: -#line 1375 "Gmsh.y" +#line 1376 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5095,7 +5117,7 @@ yyreduce: break; case 111: -#line 1400 "Gmsh.y" +#line 1401 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5123,7 +5145,7 @@ yyreduce: break; case 112: -#line 1425 "Gmsh.y" +#line 1426 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5142,7 +5164,7 @@ yyreduce: break; case 113: -#line 1441 "Gmsh.y" +#line 1442 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5161,7 +5183,7 @@ yyreduce: break; case 114: -#line 1461 "Gmsh.y" +#line 1462 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5182,7 +5204,7 @@ yyreduce: break; case 115: -#line 1479 "Gmsh.y" +#line 1480 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5202,7 +5224,7 @@ yyreduce: break; case 116: -#line 1496 "Gmsh.y" +#line 1497 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5221,7 +5243,7 @@ yyreduce: break; case 117: -#line 1517 "Gmsh.y" +#line 1518 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); @@ -5229,7 +5251,7 @@ yyreduce: break; case 118: -#line 1522 "Gmsh.y" +#line 1523 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); @@ -5237,7 +5259,7 @@ yyreduce: break; case 119: -#line 1527 "Gmsh.y" +#line 1528 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); @@ -5245,7 +5267,7 @@ yyreduce: break; case 120: -#line 1532 "Gmsh.y" +#line 1533 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); @@ -5253,7 +5275,7 @@ yyreduce: break; case 121: -#line 1537 "Gmsh.y" +#line 1538 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5276,7 +5298,7 @@ yyreduce: break; case 122: -#line 1557 "Gmsh.y" +#line 1558 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5285,7 +5307,7 @@ yyreduce: break; case 123: -#line 1563 "Gmsh.y" +#line 1564 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp=ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5296,31 +5318,31 @@ yyreduce: break; case 124: -#line 1573 "Gmsh.y" +#line 1574 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 125: -#line 1574 "Gmsh.y" +#line 1575 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 126: -#line 1579 "Gmsh.y" +#line 1580 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; case 127: -#line 1583 "Gmsh.y" +#line 1584 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; case 128: -#line 1587 "Gmsh.y" +#line 1588 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5346,7 +5368,7 @@ yyreduce: break; case 129: -#line 1610 "Gmsh.y" +#line 1611 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5372,7 +5394,7 @@ yyreduce: break; case 130: -#line 1633 "Gmsh.y" +#line 1634 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5398,7 +5420,7 @@ yyreduce: break; case 131: -#line 1656 "Gmsh.y" +#line 1657 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5424,7 +5446,7 @@ yyreduce: break; case 132: -#line 1684 "Gmsh.y" +#line 1685 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5436,14 +5458,14 @@ yyreduce: break; case 133: -#line 1693 "Gmsh.y" +#line 1694 "Gmsh.y" { GModel::current()->getFields()->delete_field((int)(yyvsp[(4) - (6)].d)); ;} break; case 134: -#line 1697 "Gmsh.y" +#line 1698 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -5461,7 +5483,7 @@ yyreduce: break; case 135: -#line 1712 "Gmsh.y" +#line 1713 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Model") || !strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ GModel::current()->destroy(); @@ -5485,7 +5507,7 @@ yyreduce: break; case 136: -#line 1733 "Gmsh.y" +#line 1734 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -5500,7 +5522,7 @@ yyreduce: break; case 137: -#line 1750 "Gmsh.y" +#line 1751 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -5512,7 +5534,7 @@ yyreduce: break; case 138: -#line 1764 "Gmsh.y" +#line 1765 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -5521,7 +5543,7 @@ yyreduce: break; case 139: -#line 1770 "Gmsh.y" +#line 1771 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -5530,7 +5552,7 @@ yyreduce: break; case 140: -#line 1776 "Gmsh.y" +#line 1777 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5542,7 +5564,7 @@ yyreduce: break; case 141: -#line 1785 "Gmsh.y" +#line 1786 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5554,7 +5576,7 @@ yyreduce: break; case 142: -#line 1799 "Gmsh.y" +#line 1800 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -5605,7 +5627,7 @@ yyreduce: break; case 143: -#line 1847 "Gmsh.y" +#line 1848 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -5626,7 +5648,7 @@ yyreduce: break; case 144: -#line 1865 "Gmsh.y" +#line 1866 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -5644,7 +5666,7 @@ yyreduce: break; case 145: -#line 1880 "Gmsh.y" +#line 1881 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -5666,7 +5688,7 @@ yyreduce: break; case 146: -#line 1899 "Gmsh.y" +#line 1900 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -5681,7 +5703,7 @@ yyreduce: break; case 147: -#line 1911 "Gmsh.y" +#line 1912 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -5708,14 +5730,14 @@ yyreduce: break; case 148: -#line 1935 "Gmsh.y" +#line 1936 "Gmsh.y" { exit(0); ;} break; case 149: -#line 1939 "Gmsh.y" +#line 1940 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); @@ -5723,7 +5745,7 @@ yyreduce: break; case 150: -#line 1944 "Gmsh.y" +#line 1945 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); @@ -5731,7 +5753,7 @@ yyreduce: break; case 151: -#line 1949 "Gmsh.y" +#line 1950 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -5740,7 +5762,7 @@ yyreduce: break; case 152: -#line 1961 "Gmsh.y" +#line 1962 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -5760,7 +5782,7 @@ yyreduce: break; case 153: -#line 1978 "Gmsh.y" +#line 1979 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -5780,7 +5802,7 @@ yyreduce: break; case 154: -#line 1995 "Gmsh.y" +#line 1996 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -5802,7 +5824,7 @@ yyreduce: break; case 155: -#line 2014 "Gmsh.y" +#line 2015 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -5824,7 +5846,7 @@ yyreduce: break; case 156: -#line 2033 "Gmsh.y" +#line 2034 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -5855,7 +5877,7 @@ yyreduce: break; case 157: -#line 2061 "Gmsh.y" +#line 2062 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5866,7 +5888,7 @@ yyreduce: break; case 158: -#line 2069 "Gmsh.y" +#line 2070 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5875,7 +5897,7 @@ yyreduce: break; case 159: -#line 2075 "Gmsh.y" +#line 2076 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -5885,20 +5907,20 @@ yyreduce: break; case 160: -#line 2082 "Gmsh.y" +#line 2083 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; case 161: -#line 2086 "Gmsh.y" +#line 2087 "Gmsh.y" { ;} break; case 162: -#line 2095 "Gmsh.y" +#line 2096 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -5909,7 +5931,7 @@ yyreduce: break; case 163: -#line 2103 "Gmsh.y" +#line 2104 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -5920,7 +5942,7 @@ yyreduce: break; case 164: -#line 2111 "Gmsh.y" +#line 2112 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -5931,14 +5953,14 @@ yyreduce: break; case 165: -#line 2119 "Gmsh.y" +#line 2120 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 166: -#line 2123 "Gmsh.y" +#line 2124 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -5949,14 +5971,14 @@ yyreduce: break; case 167: -#line 2131 "Gmsh.y" +#line 2132 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 168: -#line 2135 "Gmsh.y" +#line 2136 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -5967,14 +5989,14 @@ yyreduce: break; case 169: -#line 2143 "Gmsh.y" +#line 2144 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 170: -#line 2147 "Gmsh.y" +#line 2148 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -5985,14 +6007,14 @@ yyreduce: break; case 171: -#line 2155 "Gmsh.y" +#line 2156 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 172: -#line 2159 "Gmsh.y" +#line 2160 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6002,7 +6024,7 @@ yyreduce: break; case 173: -#line 2168 "Gmsh.y" +#line 2169 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6012,7 +6034,7 @@ yyreduce: break; case 174: -#line 2175 "Gmsh.y" +#line 2176 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6022,7 +6044,7 @@ yyreduce: break; case 175: -#line 2182 "Gmsh.y" +#line 2183 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6032,7 +6054,7 @@ yyreduce: break; case 176: -#line 2189 "Gmsh.y" +#line 2190 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6042,7 +6064,7 @@ yyreduce: break; case 177: -#line 2196 "Gmsh.y" +#line 2197 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6052,7 +6074,7 @@ yyreduce: break; case 178: -#line 2203 "Gmsh.y" +#line 2204 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6062,7 +6084,7 @@ yyreduce: break; case 179: -#line 2210 "Gmsh.y" +#line 2211 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6072,7 +6094,7 @@ yyreduce: break; case 180: -#line 2217 "Gmsh.y" +#line 2218 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6082,7 +6104,7 @@ yyreduce: break; case 181: -#line 2224 "Gmsh.y" +#line 2225 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6092,14 +6114,14 @@ yyreduce: break; case 182: -#line 2231 "Gmsh.y" +#line 2232 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 183: -#line 2235 "Gmsh.y" +#line 2236 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6109,14 +6131,14 @@ yyreduce: break; case 184: -#line 2242 "Gmsh.y" +#line 2243 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 185: -#line 2246 "Gmsh.y" +#line 2247 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6126,14 +6148,14 @@ yyreduce: break; case 186: -#line 2253 "Gmsh.y" +#line 2254 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 187: -#line 2257 "Gmsh.y" +#line 2258 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6143,14 +6165,14 @@ yyreduce: break; case 188: -#line 2264 "Gmsh.y" +#line 2265 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 189: -#line 2268 "Gmsh.y" +#line 2269 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6160,14 +6182,14 @@ yyreduce: break; case 190: -#line 2275 "Gmsh.y" +#line 2276 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 191: -#line 2279 "Gmsh.y" +#line 2280 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6177,14 +6199,14 @@ yyreduce: break; case 192: -#line 2286 "Gmsh.y" +#line 2287 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 193: -#line 2290 "Gmsh.y" +#line 2291 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6194,14 +6216,14 @@ yyreduce: break; case 194: -#line 2297 "Gmsh.y" +#line 2298 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 195: -#line 2301 "Gmsh.y" +#line 2302 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6211,14 +6233,14 @@ yyreduce: break; case 196: -#line 2308 "Gmsh.y" +#line 2309 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 197: -#line 2312 "Gmsh.y" +#line 2313 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6228,14 +6250,14 @@ yyreduce: break; case 198: -#line 2319 "Gmsh.y" +#line 2320 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; case 199: -#line 2323 "Gmsh.y" +#line 2324 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6245,19 +6267,19 @@ yyreduce: break; case 200: -#line 2334 "Gmsh.y" +#line 2335 "Gmsh.y" { ;} break; case 201: -#line 2337 "Gmsh.y" +#line 2338 "Gmsh.y" { ;} break; case 202: -#line 2343 "Gmsh.y" +#line 2344 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6269,7 +6291,7 @@ yyreduce: break; case 203: -#line 2352 "Gmsh.y" +#line 2353 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6292,7 +6314,7 @@ yyreduce: break; case 204: -#line 2372 "Gmsh.y" +#line 2373 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -6318,14 +6340,14 @@ yyreduce: break; case 205: -#line 2395 "Gmsh.y" +#line 2396 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; case 206: -#line 2399 "Gmsh.y" +#line 2400 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6347,14 +6369,14 @@ yyreduce: break; case 207: -#line 2422 "Gmsh.y" +#line 2423 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; case 208: -#line 2426 "Gmsh.y" +#line 2427 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -6370,14 +6392,14 @@ yyreduce: break; case 209: -#line 2441 "Gmsh.y" +#line 2442 "Gmsh.y" { (yyval.i) = -1; // left ;} break; case 210: -#line 2445 "Gmsh.y" +#line 2446 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -6390,21 +6412,35 @@ yyreduce: break; case 211: -#line 2457 "Gmsh.y" +#line 2458 "Gmsh.y" + { + (yyval.l) = List_Create(1, 1, sizeof(double)); + ;} + break; + + case 212: +#line 2462 "Gmsh.y" + { + (yyval.l) = (yyvsp[(2) - (2)].l); + ;} + break; + + case 213: +#line 2467 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 212: -#line 2461 "Gmsh.y" + case 214: +#line 2471 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (2)].d); ;} break; - case 213: -#line 2468 "Gmsh.y" + case 215: +#line 2478 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -6435,63 +6471,67 @@ yyreduce: ;} break; - case 214: -#line 2497 "Gmsh.y" + case 216: +#line 2507 "Gmsh.y" { - int k = List_Nbr((yyvsp[(7) - (9)].l)); - if(k != 3 && k != 4){ - yymsg(0, "Wrong definition of Transfinite Surface %d: " - "%d points instead of 3 or 4" , (int)(yyvsp[(4) - (9)].d), k); + int k = List_Nbr((yyvsp[(4) - (6)].l)); + if(k != 0 && k != 3 && k != 4){ + yymsg(0, "Wrong definition of Transfinite Surface: 0, 3 or 4 points needed"); } else{ - Surface *s = FindSurface((int)(yyvsp[(4) - (9)].d)); - if(s){ - s->Method = MESH_TRANSFINITE; - s->Recombine_Dir = (yyvsp[(8) - (9)].i); - List_Reset(s->TrsfPoints); - for(int i = 0; i < k; i++){ - double d; - List_Read((yyvsp[(7) - (9)].l), i, &d); - Vertex *v = FindPoint((int)fabs(d)); - if(v) - List_Add(s->TrsfPoints, &v); - else - yymsg(0, "Unknown point %d", (int)fabs(d)); - } - } - else{ - GFace *gf = GModel::current()->getFaceByTag((int)(yyvsp[(4) - (9)].d)); - if(gf){ - gf->meshAttributes.Method = MESH_TRANSFINITE; - gf->meshAttributes.transfiniteArrangement = (yyvsp[(8) - (9)].i); - for(int i = 0; i < k; i++){ - double d; - List_Read((yyvsp[(7) - (9)].l), i, &d); - GVertex *gv = GModel::current()->getVertexByTag((int)fabs(d)); - if(gv) - gf->meshAttributes.corners.push_back(gv); + for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ + double d; + List_Read((yyvsp[(3) - (6)].l), i, &d); + Surface *s = FindSurface((int)d); + if(s){ + s->Method = MESH_TRANSFINITE; + s->Recombine_Dir = (yyvsp[(5) - (6)].i); + List_Reset(s->TrsfPoints); + for(int j = 0; j < k; j++){ + double p; + List_Read((yyvsp[(4) - (6)].l), j, &p); + Vertex *v = FindPoint((int)fabs(p)); + if(v) + List_Add(s->TrsfPoints, &v); else - yymsg(0, "Unknown point %d", (int)fabs(d)); + yymsg(0, "Unknown point %d", (int)fabs(p)); } } - else - yymsg(0, "Unknown surface %d", (int)(yyvsp[(4) - (9)].d)); + else{ + GFace *gf = GModel::current()->getFaceByTag((int)d); + if(gf){ + gf->meshAttributes.Method = MESH_TRANSFINITE; + gf->meshAttributes.transfiniteArrangement = (yyvsp[(5) - (6)].i); + for(int j = 0; j < k; j++){ + double p; + List_Read((yyvsp[(4) - (6)].l), j, &p); + GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p)); + if(gv) + gf->meshAttributes.corners.push_back(gv); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } + else + yymsg(0, "Unknown surface %d", (int)d); + } } } - List_Delete((yyvsp[(7) - (9)].l)); + List_Delete((yyvsp[(3) - (6)].l)); + List_Delete((yyvsp[(4) - (6)].l)); ;} break; - case 215: -#line 2541 "Gmsh.y" + case 217: +#line 2555 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 216: -#line 2546 "Gmsh.y" + case 218: +#line 2560 "Gmsh.y" { int k = List_Nbr((yyvsp[(7) - (8)].l)); if(k != 6 && k != 8){ @@ -6535,8 +6575,8 @@ yyreduce: ;} break; - case 217: -#line 2588 "Gmsh.y" + case 219: +#line 2602 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ double d; @@ -6560,8 +6600,8 @@ yyreduce: ;} break; - case 218: -#line 2610 "Gmsh.y" + case 220: +#line 2624 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6583,8 +6623,8 @@ yyreduce: ;} break; - case 219: -#line 2636 "Gmsh.y" + case 221: +#line 2650 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6609,8 +6649,8 @@ yyreduce: ;} break; - case 220: -#line 2659 "Gmsh.y" + case 222: +#line 2673 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6635,27 +6675,27 @@ yyreduce: ;} break; - case 221: -#line 2682 "Gmsh.y" + case 223: +#line 2696 "Gmsh.y" { ;} break; - case 222: -#line 2685 "Gmsh.y" + case 224: +#line 2699 "Gmsh.y" { ;} break; - case 223: -#line 2694 "Gmsh.y" + case 225: +#line 2708 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 224: -#line 2698 "Gmsh.y" + case 226: +#line 2712 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -6667,48 +6707,48 @@ yyreduce: ;} break; - case 225: -#line 2713 "Gmsh.y" + case 227: +#line 2727 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 226: -#line 2714 "Gmsh.y" + case 228: +#line 2728 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 227: -#line 2715 "Gmsh.y" + case 229: +#line 2729 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 228: -#line 2716 "Gmsh.y" + case 230: +#line 2730 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 229: -#line 2717 "Gmsh.y" + case 231: +#line 2731 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 230: -#line 2718 "Gmsh.y" + case 232: +#line 2732 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 231: -#line 2719 "Gmsh.y" + case 233: +#line 2733 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 232: -#line 2720 "Gmsh.y" + case 234: +#line 2734 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 233: -#line 2722 "Gmsh.y" + case 235: +#line 2736 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6717,308 +6757,308 @@ yyreduce: ;} break; - case 234: -#line 2728 "Gmsh.y" + case 236: +#line 2742 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 235: -#line 2729 "Gmsh.y" + case 237: +#line 2743 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 236: -#line 2730 "Gmsh.y" + case 238: +#line 2744 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 237: -#line 2731 "Gmsh.y" + case 239: +#line 2745 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 238: -#line 2732 "Gmsh.y" + case 240: +#line 2746 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 239: -#line 2733 "Gmsh.y" + case 241: +#line 2747 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 240: -#line 2734 "Gmsh.y" + case 242: +#line 2748 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 241: -#line 2735 "Gmsh.y" + case 243: +#line 2749 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 242: -#line 2736 "Gmsh.y" + case 244: +#line 2750 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 243: -#line 2737 "Gmsh.y" + case 245: +#line 2751 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 244: -#line 2738 "Gmsh.y" + case 246: +#line 2752 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 245: -#line 2739 "Gmsh.y" + case 247: +#line 2753 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 246: -#line 2740 "Gmsh.y" + case 248: +#line 2754 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 247: -#line 2741 "Gmsh.y" + case 249: +#line 2755 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 248: -#line 2742 "Gmsh.y" + case 250: +#line 2756 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 249: -#line 2743 "Gmsh.y" + case 251: +#line 2757 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 250: -#line 2744 "Gmsh.y" + case 252: +#line 2758 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 251: -#line 2745 "Gmsh.y" + case 253: +#line 2759 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 252: -#line 2746 "Gmsh.y" + case 254: +#line 2760 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 253: -#line 2747 "Gmsh.y" + case 255: +#line 2761 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 254: -#line 2748 "Gmsh.y" + case 256: +#line 2762 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 255: -#line 2749 "Gmsh.y" + case 257: +#line 2763 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 256: -#line 2750 "Gmsh.y" + case 258: +#line 2764 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - - case 257: -#line 2751 "Gmsh.y" + + case 259: +#line 2765 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 258: -#line 2752 "Gmsh.y" + case 260: +#line 2766 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 259: -#line 2753 "Gmsh.y" + case 261: +#line 2767 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 260: -#line 2754 "Gmsh.y" + case 262: +#line 2768 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 261: -#line 2755 "Gmsh.y" + case 263: +#line 2769 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 262: -#line 2756 "Gmsh.y" + case 264: +#line 2770 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 263: -#line 2757 "Gmsh.y" + case 265: +#line 2771 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 264: -#line 2758 "Gmsh.y" + case 266: +#line 2772 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 265: -#line 2759 "Gmsh.y" + case 267: +#line 2773 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 266: -#line 2761 "Gmsh.y" + case 268: +#line 2775 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 267: -#line 2762 "Gmsh.y" + case 269: +#line 2776 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 268: -#line 2763 "Gmsh.y" + case 270: +#line 2777 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 269: -#line 2764 "Gmsh.y" + case 271: +#line 2778 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 270: -#line 2765 "Gmsh.y" + case 272: +#line 2779 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 271: -#line 2766 "Gmsh.y" + case 273: +#line 2780 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 272: -#line 2767 "Gmsh.y" + case 274: +#line 2781 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 273: -#line 2768 "Gmsh.y" + case 275: +#line 2782 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 274: -#line 2769 "Gmsh.y" + case 276: +#line 2783 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 275: -#line 2770 "Gmsh.y" + case 277: +#line 2784 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 276: -#line 2771 "Gmsh.y" + case 278: +#line 2785 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 277: -#line 2772 "Gmsh.y" + case 279: +#line 2786 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 278: -#line 2773 "Gmsh.y" + case 280: +#line 2787 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 279: -#line 2774 "Gmsh.y" + case 281: +#line 2788 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 280: -#line 2775 "Gmsh.y" + case 282: +#line 2789 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 281: -#line 2776 "Gmsh.y" + case 283: +#line 2790 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 282: -#line 2777 "Gmsh.y" + case 284: +#line 2791 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 283: -#line 2778 "Gmsh.y" + case 285: +#line 2792 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 284: -#line 2779 "Gmsh.y" + case 286: +#line 2793 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 285: -#line 2780 "Gmsh.y" + case 287: +#line 2794 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 286: -#line 2781 "Gmsh.y" + case 288: +#line 2795 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 287: -#line 2790 "Gmsh.y" + case 289: +#line 2804 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 288: -#line 2791 "Gmsh.y" + case 290: +#line 2805 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 289: -#line 2792 "Gmsh.y" + case 291: +#line 2806 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 290: -#line 2793 "Gmsh.y" + case 292: +#line 2807 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 291: -#line 2794 "Gmsh.y" + case 293: +#line 2808 "Gmsh.y" { (yyval.d) = Get_GmshMajorVersion(); ;} break; - case 292: -#line 2795 "Gmsh.y" + case 294: +#line 2809 "Gmsh.y" { (yyval.d) = Get_GmshMinorVersion(); ;} break; - case 293: -#line 2796 "Gmsh.y" + case 295: +#line 2810 "Gmsh.y" { (yyval.d) = Get_GmshPatchVersion(); ;} break; - case 294: -#line 2801 "Gmsh.y" + case 296: +#line 2815 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7030,8 +7070,8 @@ yyreduce: ;} break; - case 295: -#line 2814 "Gmsh.y" + case 297: +#line 2828 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7045,8 +7085,8 @@ yyreduce: ;} break; - case 296: -#line 2826 "Gmsh.y" + case 298: +#line 2840 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7063,8 +7103,8 @@ yyreduce: ;} break; - case 297: -#line 2841 "Gmsh.y" + case 299: +#line 2855 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7076,8 +7116,8 @@ yyreduce: ;} break; - case 298: -#line 2851 "Gmsh.y" + case 300: +#line 2865 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7089,8 +7129,8 @@ yyreduce: ;} break; - case 299: -#line 2861 "Gmsh.y" + case 301: +#line 2875 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7107,24 +7147,24 @@ yyreduce: ;} break; - case 300: -#line 2879 "Gmsh.y" + case 302: +#line 2893 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); ;} break; - case 301: -#line 2884 "Gmsh.y" + case 303: +#line 2898 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); ;} break; - case 302: -#line 2889 "Gmsh.y" + case 304: +#line 2903 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7136,8 +7176,8 @@ yyreduce: ;} break; - case 303: -#line 2899 "Gmsh.y" + case 305: +#line 2913 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7149,124 +7189,124 @@ yyreduce: ;} break; - case 304: -#line 2909 "Gmsh.y" + case 306: +#line 2923 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 305: -#line 2917 "Gmsh.y" + case 307: +#line 2931 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 306: -#line 2921 "Gmsh.y" + case 308: +#line 2935 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 307: -#line 2925 "Gmsh.y" + case 309: +#line 2939 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 308: -#line 2929 "Gmsh.y" + case 310: +#line 2943 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 309: -#line 2933 "Gmsh.y" + case 311: +#line 2947 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 310: -#line 2940 "Gmsh.y" + case 312: +#line 2954 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; - case 311: -#line 2944 "Gmsh.y" + case 313: +#line 2958 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; - case 312: -#line 2948 "Gmsh.y" + case 314: +#line 2962 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 313: -#line 2952 "Gmsh.y" + case 315: +#line 2966 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; - case 314: -#line 2959 "Gmsh.y" + case 316: +#line 2973 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 315: -#line 2964 "Gmsh.y" + case 317: +#line 2978 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 316: -#line 2971 "Gmsh.y" + case 318: +#line 2985 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 317: -#line 2976 "Gmsh.y" + case 319: +#line 2990 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 318: -#line 2980 "Gmsh.y" + case 320: +#line 2994 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 319: -#line 2985 "Gmsh.y" + case 321: +#line 2999 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 320: -#line 2989 "Gmsh.y" + case 322: +#line 3003 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7276,8 +7316,8 @@ yyreduce: ;} break; - case 321: -#line 2997 "Gmsh.y" + case 323: +#line 3011 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7287,8 +7327,8 @@ yyreduce: ;} break; - case 322: -#line 3008 "Gmsh.y" + case 324: +#line 3022 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7298,8 +7338,8 @@ yyreduce: ;} break; - case 323: -#line 3016 "Gmsh.y" + case 325: +#line 3030 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7309,8 +7349,8 @@ yyreduce: ;} break; - case 324: -#line 3024 "Gmsh.y" + case 326: +#line 3038 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -7319,8 +7359,8 @@ yyreduce: ;} break; - case 325: -#line 3031 "Gmsh.y" + case 327: +#line 3045 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -7333,8 +7373,8 @@ yyreduce: ;} break; - case 326: -#line 3042 "Gmsh.y" + case 328: +#line 3056 "Gmsh.y" { // Returns the coordinates of a point and fills a list with it. // This allows to ensure e.g. that relative point positions are @@ -7356,8 +7396,8 @@ yyreduce: ;} break; - case 327: -#line 3062 "Gmsh.y" + case 329: +#line 3076 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7369,8 +7409,8 @@ yyreduce: ;} break; - case 328: -#line 3072 "Gmsh.y" + case 330: +#line 3086 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -7382,8 +7422,8 @@ yyreduce: ;} break; - case 329: -#line 3082 "Gmsh.y" + case 331: +#line 3096 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -7395,8 +7435,8 @@ yyreduce: ;} break; - case 330: -#line 3092 "Gmsh.y" + case 332: +#line 3106 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -7415,30 +7455,30 @@ yyreduce: ;} break; - case 331: -#line 3112 "Gmsh.y" + case 333: +#line 3126 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 332: -#line 3117 "Gmsh.y" + case 334: +#line 3131 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 333: -#line 3121 "Gmsh.y" + case 335: +#line 3135 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 334: -#line 3125 "Gmsh.y" + case 336: +#line 3139 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7449,22 +7489,22 @@ yyreduce: ;} break; - case 335: -#line 3137 "Gmsh.y" + case 337: +#line 3151 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 336: -#line 3141 "Gmsh.y" + case 338: +#line 3155 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 337: -#line 3153 "Gmsh.y" + case 339: +#line 3167 "Gmsh.y" { int flag; (yyval.u) = Get_ColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7473,8 +7513,8 @@ yyreduce: ;} break; - case 338: -#line 3160 "Gmsh.y" + case 340: +#line 3174 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -7483,15 +7523,15 @@ yyreduce: ;} break; - case 339: -#line 3170 "Gmsh.y" + case 341: +#line 3184 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 340: -#line 3174 "Gmsh.y" + case 342: +#line 3188 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7505,30 +7545,30 @@ yyreduce: ;} break; - case 341: -#line 3189 "Gmsh.y" + case 343: +#line 3203 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 342: -#line 3194 "Gmsh.y" + case 344: +#line 3208 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 343: -#line 3201 "Gmsh.y" + case 345: +#line 3215 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 344: -#line 3205 "Gmsh.y" + case 346: +#line 3219 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7543,8 +7583,8 @@ yyreduce: ;} break; - case 345: -#line 3218 "Gmsh.y" + case 347: +#line 3232 "Gmsh.y" { const char *val = ""; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), val); @@ -7554,8 +7594,8 @@ yyreduce: ;} break; - case 346: -#line 3226 "Gmsh.y" + case 348: +#line 3240 "Gmsh.y" { const char *val = ""; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), val); @@ -7565,15 +7605,15 @@ yyreduce: ;} break; - case 347: -#line 3237 "Gmsh.y" + case 349: +#line 3251 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 348: -#line 3241 "Gmsh.y" + case 350: +#line 3255 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -7583,8 +7623,8 @@ yyreduce: ;} break; - case 349: -#line 3249 "Gmsh.y" + case 351: +#line 3263 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -7594,8 +7634,8 @@ yyreduce: ;} break; - case 350: -#line 3257 "Gmsh.y" + case 352: +#line 3271 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7611,8 +7651,8 @@ yyreduce: ;} break; - case 351: -#line 3271 "Gmsh.y" + case 353: +#line 3285 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7628,15 +7668,15 @@ yyreduce: ;} break; - case 352: -#line 3285 "Gmsh.y" + case 354: +#line 3299 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 353: -#line 3289 "Gmsh.y" + case 355: +#line 3303 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7659,7 +7699,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 7663 "Gmsh.tab.cpp" +#line 7703 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -7873,7 +7913,7 @@ yyreturn: } -#line 3309 "Gmsh.y" +#line 3323 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index aa5df8264b5eebec3fdd580ef4ea3854f5bc7bb9..a7cc2c10d660739daf876122e2605432e376e993 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -109,7 +109,8 @@ void FixRelativePath(const char *in, char *out); %type <l> FExpr_Multi ListOfDouble RecursiveListOfDouble %type <l> RecursiveListOfListOfDouble %type <l> ListOfColor RecursiveListOfColor -%type <l> ListOfShapes Transform Extrude MultipleShape RuledSurfaceOptions +%type <l> ListOfShapes Transform Extrude MultipleShape +%type <l> TransfiniteCorners RuledSurfaceOptions %type <s> Shape // Operators (with ascending priority): cf. C language @@ -2453,6 +2454,15 @@ TransfiniteArrangement : } ; +TransfiniteCorners : + { + $$ = List_Create(1, 1, sizeof(double)); + } + | tAFFECT ListOfDouble + { + $$ = $2; + } + RecombineAngle : { $$ = 45; @@ -2493,49 +2503,53 @@ Transfinite : } List_Delete($3); } - | tTransfinite tSurface '{' FExpr '}' tAFFECT ListOfDouble TransfiniteArrangement tEND + | tTransfinite tSurface ListOfDouble TransfiniteCorners TransfiniteArrangement tEND { - int k = List_Nbr($7); - if(k != 3 && k != 4){ - yymsg(0, "Wrong definition of Transfinite Surface %d: " - "%d points instead of 3 or 4" , (int)$4, k); + int k = List_Nbr($4); + if(k != 0 && k != 3 && k != 4){ + yymsg(0, "Wrong definition of Transfinite Surface: 0, 3 or 4 points needed"); } else{ - Surface *s = FindSurface((int)$4); - if(s){ - s->Method = MESH_TRANSFINITE; - s->Recombine_Dir = $8; - List_Reset(s->TrsfPoints); - for(int i = 0; i < k; i++){ - double d; - List_Read($7, i, &d); - Vertex *v = FindPoint((int)fabs(d)); - if(v) - List_Add(s->TrsfPoints, &v); - else - yymsg(0, "Unknown point %d", (int)fabs(d)); - } - } - else{ - GFace *gf = GModel::current()->getFaceByTag((int)$4); - if(gf){ - gf->meshAttributes.Method = MESH_TRANSFINITE; - gf->meshAttributes.transfiniteArrangement = $8; - for(int i = 0; i < k; i++){ - double d; - List_Read($7, i, &d); - GVertex *gv = GModel::current()->getVertexByTag((int)fabs(d)); - if(gv) - gf->meshAttributes.corners.push_back(gv); + for(int i = 0; i < List_Nbr($3); i++){ + double d; + List_Read($3, i, &d); + Surface *s = FindSurface((int)d); + if(s){ + s->Method = MESH_TRANSFINITE; + s->Recombine_Dir = $5; + List_Reset(s->TrsfPoints); + for(int j = 0; j < k; j++){ + double p; + List_Read($4, j, &p); + Vertex *v = FindPoint((int)fabs(p)); + if(v) + List_Add(s->TrsfPoints, &v); else - yymsg(0, "Unknown point %d", (int)fabs(d)); + yymsg(0, "Unknown point %d", (int)fabs(p)); } } - else - yymsg(0, "Unknown surface %d", (int)$4); + else{ + GFace *gf = GModel::current()->getFaceByTag((int)d); + if(gf){ + gf->meshAttributes.Method = MESH_TRANSFINITE; + gf->meshAttributes.transfiniteArrangement = $5; + for(int j = 0; j < k; j++){ + double p; + List_Read($4, j, &p); + GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p)); + if(gv) + gf->meshAttributes.corners.push_back(gv); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } + else + yymsg(0, "Unknown surface %d", (int)d); + } } } - List_Delete($7); + List_Delete($3); + List_Delete($4); } | tElliptic tSurface '{' FExpr '}' tAFFECT ListOfDouble tEND { diff --git a/benchmarks/step/tank.geo b/benchmarks/step/tank.geo index 1562f777d87cd8274979befb4c3bc0869c15c31c..b4bbb69aaf9065465d6ba58dccc31d1acb55972c 100644 --- a/benchmarks/step/tank.geo +++ b/benchmarks/step/tank.geo @@ -1,4 +1,4 @@ -Merge "tank.brep"; +Merge "benchmarks/step/tank.brep"; n = 2; @@ -27,51 +27,13 @@ Transfinite Line {20} = n3; Transfinite Line {25, 53, 39} = 2*(n1-1) + 4*(n2-1) + (n3-1) + 1; -Transfinite Surface {19} = {21,20,36,35}; +// automatic corners: +Transfinite Surface {1:6, 8:10, 12:13, 15:20, 23:33, 35:48}; + +// manual corners: Transfinite Surface {7} = {18,19,20,21}; -Transfinite Surface {2} = {1,5,6,2}; -Transfinite Surface {6} = {2,6,13,7}; -Transfinite Surface {13} = {7,13,14,11}; -Transfinite Surface {8} = {11,14,1,5}; -Transfinite Surface {1} = {1,2,3,4}; -Transfinite Surface {3} = {2,7,8,3}; -Transfinite Surface {9} = {7,11,12,8}; -Transfinite Surface {5} = {12,11,1,4}; -Transfinite Surface {16} = {17,16,29,30}; -Transfinite Surface {15} = {29,16,15,28}; -Transfinite Surface {27} = {28,15,27,39}; -Transfinite Surface {26} = {39,27,30,17}; -Transfinite Surface {29} = {30,29,41,42}; -Transfinite Surface {28} = {29,28,40,41}; -Transfinite Surface {40} = {28,39,51,40}; -Transfinite Surface {39} = {39,30,42,51}; -Transfinite Surface {17} = {18,31,32,19}; -Transfinite Surface {18} = {20,19,34,33}; -Transfinite Surface {31} = {19,32,45,34}; -Transfinite Surface {32} = {36,20,33,46}; -Transfinite Surface {24} = {33,34,26,25}; -Transfinite Surface {36} = {46,33,25,37}; -Transfinite Surface {23} = {25,21,35,37}; -Transfinite Surface {25} = {31,18,26,38}; -Transfinite Surface {37} = {26,34,45,38}; Transfinite Surface {14} = {21,25,26,18}; -Transfinite Surface {38} = {31,38,50,43}; -Transfinite Surface {30} = {31,32,44,43}; -Transfinite Surface {43} = {32,44,55,45}; -Transfinite Surface {46} = {50,38,45,55}; -Transfinite Surface {33} = {35,36,47,48}; -Transfinite Surface {35} = {35,48,49,37}; -Transfinite Surface {44} = {36,47,56,46}; -Transfinite Surface {45} = {46,56,49,37}; -Transfinite Surface {41} = {40,53,52,41}; -Transfinite Surface {42} = {41,42,54,52}; -Transfinite Surface {48} = {53,40,51,57}; -Transfinite Surface {47} = {57,54,42,51}; -Transfinite Surface {12} = {4,9,24,12}; -Transfinite Surface {20} = {24,12,8,22}; -Transfinite Surface {4} = {4,9,10,3}; -Transfinite Surface {10} = {10,3,22,8}; - -Recombine Surface{1:52}; Mesh.Smoothing = 10; + +Recombine Surface{1:52}; diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index fd2ac661c36bd602f1b2ab0906461f54c3140beb..626d92ffe3582182c36c6f6d8947293d9250d495 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -2092,9 +2092,10 @@ line. Selects the surface @var{expression} to be meshed with the 2D transfinite algorithm. The @var{expression-list} should contain the identification numbers of three or four points on the boundary of the -surface, defining the corners of the transfinite interpolation. The -optional argument specifies the way the triangles are oriented when the -mesh is not recombined. +surface, defining the corners of the transfinite interpolation. If no +identfication numbers are given, the transfinite algorithm will try to +find the corners automatically. The optional argument specifies the way +the triangles are oriented when the mesh is not recombined. @item Transfinite Volume @{ @var{expression} @} = @{ @var{expression-list} @}; Selects a five- or six-face volume @var{expression} to be meshed with