diff --git a/Common/Context.h b/Common/Context.h index 5dbe2af47c8414ce18e4ab3b6777b6822543e771..2290a45fad8da9f7ec6db1a14a8cab8949880f6a 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -32,7 +32,7 @@ struct contextMeshOptions { int order, secondOrderLinear, secondOrderIncomplete; int secondOrderExperimental, meshOnlyVisible; int smoothInternalEdges, minCircPoints, minCurvPoints; - int saveAll, saveGroupsOfNodes, binary, bdfFieldFormat, saveParametric; + int saveAll, saveTri, saveGroupsOfNodes, binary, bdfFieldFormat, saveParametric; int smoothNormals, reverseAllNormals, zoneDefinition, clip; int saveElementTagType; int switchElementTags; diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index dc8a18013edb86cfcb4eb84a76361711ca4bdf07..4bd0da08e6208e48173f09f69fa14805a8445c93 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1011,7 +1011,7 @@ StringXNumber GeometryOptions_Number[] = { StringXNumber MeshOptions_Number[] = { { F|O, "Algorithm" , opt_mesh_algo2d , ALGO_2D_AUTO , - "2D mesh algorithm (1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=bamg)" }, + "2D mesh algorithm (1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=bamg, 8=delquad)" }, { F|O, "Algorithm3D" , opt_mesh_algo3d , #if defined(HAVE_TETGEN) ALGO_3D_DELAUNAY , diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index e87b25cb1c30c2869d1e5d0eb441d31b3647cb05..f19e13970cb22c4da5a830e277ccdfe35c352e8c 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -1339,13 +1339,13 @@ void GModel::createTopologyFromMesh(int ignoreHoles) createTopologyFromRegions(discRegions); // create topology for all discrete faces - std::vector<discreteFace*> discFaces; - for(fiter it = firstFace(); it != lastFace(); it++) - if((*it)->geomType() == GEntity::DiscreteSurface) - discFaces.push_back((discreteFace*) *it); - createTopologyFromFaces(discFaces, ignoreHoles); + std::vector<discreteFace*> discFaces; + for(fiter it = firstFace(); it != lastFace(); it++) + if((*it)->geomType() == GEntity::DiscreteSurface) + discFaces.push_back((discreteFace*) *it); + createTopologyFromFaces(discFaces, ignoreHoles); - // create old format (necessary for boundary layers) + //create old format (necessary for boundary layers) exportDiscreteGEOInternals(); double t2 = Cpu(); @@ -1667,7 +1667,7 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces, int Msg::Debug("Done creating topology from faces"); - Msg::Debug("Creating topology for edges..."); + Msg::Debug("Creating topology for %d edges...", discEdges.size()); // for each discreteEdge, create topology std::map<GFace*, std::map<MVertex*, MVertex*, std::less<MVertex*> > > face2Vert; @@ -1682,13 +1682,16 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces, int // fill edgeLoops of Faces or correct sign of l_edges // for (std::vector<discreteFace*>::iterator itF = discFaces.begin(); - // itF != discFaces.end(); itF++){ - // //EMI, TODO - // std::list<GEdgeLoop> edgeLoops = (*itF)->edgeLoops; - // edgeLoops.clear(); - // GEdgeLoop el((*itF)->edges()); - // edgeLoops.push_back(el); - // } + // itF != discFaces.end(); itF++){ + // //EMI, TODO + // std::list<GEdgeLoop> edgeLoops = (*itF)->edgeLoops; + // edgeLoops.clear(); + // GEdgeLoop el((*itF)->edges()); + // edgeLoops.push_back(el); + // } + + Msg::Debug("Done creating topology for edges..."); + // we need to recreate all mesh elements because some mesh vertices // might have been changed during the parametrization process @@ -1766,8 +1769,14 @@ void GModel::createTopologyFromFaces(std::vector<discreteFace*> &discFaces, int Msg::Debug("Done creating topology from edges"); } -GModel *GModel::buildCutGModel(gLevelset *ls, bool cutElem) +GModel *GModel::buildCutGModel(gLevelset *ls, bool cutElem, bool saveTri) { + + if (saveTri) + CTX::instance()->mesh.saveTri = 1; + else + CTX::instance()->mesh.saveTri = 0; + std::map<int, std::vector<MElement*> > elements[10]; std::map<int, std::map<int, std::string> > physicals[4]; std::map<int, MVertex*> vertexMap; diff --git a/Geo/GModel.h b/Geo/GModel.h index fdad5cffd5a2c06ddc9b9188cd11fea70079a99b..3a7936955086fde8db0a43e92e677eeb8a5f05a5 100644 --- a/Geo/GModel.h +++ b/Geo/GModel.h @@ -425,7 +425,7 @@ class GModel // build a new GModel by cutting the elements crossed by the levelset ls // if cutElem is set to false, split the model without cutting the elements - GModel *buildCutGModel(gLevelset *ls, bool cutElem = true); + GModel *buildCutGModel(gLevelset *ls, bool cutElem=true, bool saveTri=false); // create a GModel by importing a mesh (vertexMap has a dim equal to // the number of vertices and all the other vectors have a dim equal diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp index 83aa26877eb40ede8fc7baa949abcdd56018d4f5..02c1c703550978aa34742b521636925f98ec7aa8 100644 --- a/Geo/GModelIO_Mesh.cpp +++ b/Geo/GModelIO_Mesh.cpp @@ -654,21 +654,31 @@ static int getNumElementsMSH(GModel *m, bool saveAll, int saveSinglePartition) n += getNumElementsMSH(*it, saveAll, saveSinglePartition); for(GModel::eiter it = m->firstEdge(); it != m->lastEdge(); ++it){ n += getNumElementsMSH(*it, saveAll, saveSinglePartition); - for(unsigned int i = 0; i < (*it)->lines.size(); i++) - if((*it)->lines[i]->ownsParent()) - n += (saveAll ? 1 : (*it)->physicals.size()); + if ( !CTX::instance()->mesh.saveTri){ + for(unsigned int i = 0; i < (*it)->lines.size(); i++) + if((*it)->lines[i]->ownsParent()) + n += (saveAll ? 1 : (*it)->physicals.size()); + } } for(GModel::fiter it = m->firstFace(); it != m->lastFace(); ++it){ n += getNumElementsMSH(*it, saveAll, saveSinglePartition); - for(unsigned int i = 0; i < (*it)->polygons.size(); i++) - if((*it)->polygons[i]->ownsParent()) - n += (saveAll ? 1 : (*it)->physicals.size()); + if ( CTX::instance()->mesh.saveTri){ + for(unsigned int i = 0; i < (*it)->polygons.size(); i++) + n += (*it)->polygons[i]->getNumChildren()-1; + } + else{ + for(unsigned int i = 0; i < (*it)->polygons.size(); i++) + if((*it)->polygons[i]->ownsParent()) + n += (saveAll ? 1 : (*it)->physicals.size()); + } } for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); ++it){ n += getNumElementsMSH(*it, saveAll, saveSinglePartition); - for(unsigned int i = 0; i < (*it)->polyhedra.size(); i++) - if((*it)->polyhedra[i]->ownsParent()) - n += (saveAll ? 1 : (*it)->physicals.size()); + if ( !CTX::instance()->mesh.saveTri){ + for(unsigned int i = 0; i < (*it)->polyhedra.size(); i++) + if((*it)->polyhedra[i]->ownsParent()) + n += (saveAll ? 1 : (*it)->physicals.size()); + } } return n; } @@ -755,21 +765,23 @@ int GModel::writeMSH(const std::string &name, double version, bool binary, _elementIndexCache.clear(); //parents - for(eiter it = firstEdge(); it != lastEdge(); ++it) - for(unsigned int i = 0; i < (*it)->lines.size(); i++) - if((*it)->lines[i]->ownsParent()) - writeElementMSH(fp, this, (*it)->lines[i]->getParent(), - saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); - for(fiter it = firstFace(); it != lastFace(); ++it) - for(unsigned int i = 0; i < (*it)->polygons.size(); i++) - if((*it)->polygons[i]->ownsParent()) - writeElementMSH(fp, this, (*it)->polygons[i]->getParent(), - saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); - for(riter it = firstRegion(); it != lastRegion(); ++it) - for(unsigned int i = 0; i < (*it)->polyhedra.size(); i++) - if((*it)->polyhedra[i]->ownsParent()) - writeElementMSH(fp, this, (*it)->polyhedra[i]->getParent(), - saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); + if ( !CTX::instance()->mesh.saveTri){ + for(eiter it = firstEdge(); it != lastEdge(); ++it) + for(unsigned int i = 0; i < (*it)->lines.size(); i++) + if((*it)->lines[i]->ownsParent()) + writeElementMSH(fp, this, (*it)->lines[i]->getParent(), + saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); + for(fiter it = firstFace(); it != lastFace(); ++it) + for(unsigned int i = 0; i < (*it)->polygons.size(); i++) + if((*it)->polygons[i]->ownsParent()) + writeElementMSH(fp, this, (*it)->polygons[i]->getParent(), + saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); + for(riter it = firstRegion(); it != lastRegion(); ++it) + for(unsigned int i = 0; i < (*it)->polyhedra.size(); i++) + if((*it)->polyhedra[i]->ownsParent()) + writeElementMSH(fp, this, (*it)->polyhedra[i]->getParent(), + saveAll, version, binary, num, (*it)->tag(), (*it)->physicals); + } // points for(viter it = firstVertex(); it != lastVertex(); ++it) diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp index 14a0689ed96fffd95508dc32b17391f924c29541..16279317d05a17cd59c634977005570ca563f1d6 100644 --- a/Geo/MElement.cpp +++ b/Geo/MElement.cpp @@ -625,6 +625,21 @@ void MElement::writeMSH(FILE *fp, double version, bool binary, int num, int par = (parentNum) ? 1 : 0; int dom = (dom1Num) ? 2 : 0; bool poly = (type == MSH_POLYG_ || type == MSH_POLYH_ || type == MSH_POLYG_B); + bool polyb = (type == MSH_LIN_B ); + + // if poly loop over children + if ( CTX::instance()->mesh.saveTri && poly){ + for (int i = 0; i < getNumChildren() ; i++){ + MElement *t = getChild(i); + t->writeMSH(fp, version,binary,num,elementary,physical,0,0,0,ghosts); + } + return; + } + else if (CTX::instance()->mesh.saveTri && polyb){ + MLine *l = (MLine*)this; + l->writeMSH(fp, version,binary,num,elementary,physical, 0,0,0,ghosts); + return; + } if(!binary){ fprintf(fp, "%d %d", num ? num : _num, type); diff --git a/Geo/MElementCut.cpp b/Geo/MElementCut.cpp index 438c7c0081c5546bd95aadab3302869323c51eb5..ec619d73caaa227be627af4173f060b0edce68d9 100644 --- a/Geo/MElementCut.cpp +++ b/Geo/MElementCut.cpp @@ -1129,18 +1129,42 @@ GModel *buildCutMesh(GModel *gm, gLevelset *ls, int numVert = gm->indexMeshVertices(true); int nbLs = (cutElem) ? primitives.size() : 1; fullMatrix<double> verticesLs(nbLs, numVert + 1); + + //Emi test compute all at once for POINTS (type = 11) + std::vector<MVertex *> vert; + std::map<MVertex*, double> myMap; + for(unsigned int i = 0; i < gmEntities.size(); i++) { + for(unsigned int j = 0; j < gmEntities[i]->getNumMeshVertices(); j++) { + vert.push_back(gmEntities[i]->getMeshVertex(j)); + } + } + if(cutElem){ + for(unsigned int k = 0; k < primitives.size(); k++){ + if (primitives[k]->type() == 11){ //points + ((gLevelsetPoints*)primitives[k])->computeLS(vert, myMap); + } + } + } + else{ + if (ls->type() == 11)((gLevelsetPoints*)ls)->computeLS(vert, myMap); + } + //compute and store levelset values for(unsigned int i = 0; i < gmEntities.size(); i++) { for(unsigned int j = 0; j < gmEntities[i]->getNumMeshVertices(); j++) { MVertex *vi = gmEntities[i]->getMeshVertex(j); - if(cutElem) - for(unsigned int k = 0; k < primitives.size(); k++) - verticesLs(k, vi->getIndex()) = (*primitives[k])(vi->x(), vi->y(), vi->z()); + if(cutElem){ + for(unsigned int k = 0; k < primitives.size(); k++){ + //std::map<MVertex*,double>::iterator it = myMap.find(vi); + //verticesLs(k, vi->getIndex()) = it->second; + verticesLs(k, vi->getIndex()) = (*primitives[k])(vi->x(), vi->y(), vi->z()); + } + } else verticesLs(0, vi->getIndex()) = (*ls)(vi->x(), vi->y(), vi->z()); } } - + std::map<int, int> newElemTags[4]; //map<oldElementary,newElementary>[dim] std::map<int, int> newPhysTags[4]; //map<oldPhysical,newPhysical>[dim] for(int d = 0; d < 4; d++){ diff --git a/Geo/MElementOctree.cpp b/Geo/MElementOctree.cpp index 27f618e42651d32a3558c6e1ac81afb929fe080e..b9e344a76781f0ffc169b9941275483569522442 100644 --- a/Geo/MElementOctree.cpp +++ b/Geo/MElementOctree.cpp @@ -72,9 +72,20 @@ MElementOctree::MElementOctree(GModel *m) : _gm(m) MElementBB, MElementCentroid, MElementInEle); std::vector<GEntity*> entities; m->getEntities(entities); - for(unsigned int i = 0; i < entities.size(); i++) - for(unsigned int j = 0; j < entities[i]->getNumMeshElements(); j++) - Octree_Insert(entities[i]->getMeshElement(j), _octree); + //do not add Gvertex non-assoiociated to any GEdge + for(unsigned int i = 0; i < entities.size(); i++){ + for(unsigned int j = 0; j < entities[i]->getNumMeshElements(); j++){ + if (entities[i]->dim() == 0){ + GVertex *gv = dynamic_cast<GVertex*>(entities[i]); + if (gv && gv->edges().size() >0){ + Octree_Insert(entities[i]->getMeshElement(j), _octree); + } + } + else + Octree_Insert(entities[i]->getMeshElement(j), _octree); + } + } + //exit(1); Octree_Arrange(_octree); } diff --git a/Geo/discreteEdge.cpp b/Geo/discreteEdge.cpp index e6d2c612db2bba7fd7b0cd659868473a9867e512..38eff4782a78e5abe9df30f7edb036cf1fa3eaef 100644 --- a/Geo/discreteEdge.cpp +++ b/Geo/discreteEdge.cpp @@ -475,6 +475,7 @@ GPoint discreteEdge::point(double par) const SVector3 discreteEdge::firstDer(double par) const { + double tLoc; int iEdge; getLocalParameter(par, iEdge, tLoc); @@ -483,7 +484,7 @@ SVector3 discreteEdge::firstDer(double par) const MVertex *vE = lines[iEdge]->getVertex(1); double dx, dy, dz; - double dt = 2.0; + double dt = 1.0; dx = (vE->x() - vB->x()) / dt; dy = (vE->y() - vB->y()) / dt; dz = (vE->z() - vB->z()) / dt; diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp index b6da957ef991ef953aa3e8492b71a0315c566ade..724deb291f39e0d8d89902c59c90f9cc16e9dd6e 100644 --- a/Mesh/meshGFaceDelaunayInsertion.cpp +++ b/Mesh/meshGFaceDelaunayInsertion.cpp @@ -1226,7 +1226,7 @@ void bowyerWatsonFrontalLayers(GFace *gf, bool quad) int max_layers = quad ? 10000 : 4; while (1){ ITERATION ++; - if(ITERATION % 1== 0){ + if(ITERATION % 1== 0 && CTX::instance()->mesh.saveAll){ char name[245]; sprintf(name,"denInfinite_GFace_%d_Layer_%d.pos",gf->tag(),ITERATION); _printTris (name, AllTris, Us,Vs,true); diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp index 0452550af28db502a847365b9309c4bcc9a6099c..ccff85541d74978e6d37d4aeadbf42250a15aa41 100644 --- a/Mesh/meshGRegion.cpp +++ b/Mesh/meshGRegion.cpp @@ -32,7 +32,6 @@ void printVoronoi(GRegion *gr, std::set<SPoint3> &candidates) std::vector<MTetrahedron*> elements = gr->tetrahedra; std::list<GFace*> allFaces = gr->faces(); - //building maps std::map<MVertex*, std::set<MTetrahedron*> > node2Tet; std::map<MFace, std::vector<MTetrahedron*> , Less_Face> face2Tet; @@ -87,9 +86,9 @@ void printVoronoi(GRegion *gr, std::set<SPoint3> &candidates) poleTet = *it; } } - if (v->onWhat()->dim() == 2 ){ + //if (v->onWhat()->dim() == 2 ){ SPoint3 pc = poleTet->circumcenter(); - // double nx,ny,nz; + //double nx,ny,nz; // SVector3 vN = snorm->get(v->x(), v->y(), v->z(), nx,ny,nz); // SVector3 pcv(pc.x()-nx, pc.y()-ny,pc.z()-nz); // printf("nx=%g ny=%g nz=%g dot=%g \n", nx,ny,nz, dot(vN, pcv)); @@ -98,12 +97,12 @@ void printVoronoi(GRegion *gr, std::set<SPoint3> &candidates) double uvw[3]; poleTet->xyz2uvw(x, uvw); bool inside = poleTet->isInside(uvw[0], uvw[1], uvw[2]); - if (inside){ + //if (inside){ fprintf(outfile,"SP(%g,%g,%g) {%g};\n", pc.x(), pc.y(), pc.z(), maxRadius); candidates.insert(pc); - } - } + //} + //} } fprintf(outfile,"};\n"); fclose(outfile); @@ -121,10 +120,10 @@ void printVoronoi(GRegion *gr, std::set<SPoint3> &candidates) std::set<SPoint3>::const_iterator it1 = candidates.find(pc1); std::set<SPoint3>::const_iterator it2 = candidates.find(pc2); //if( it1 != candidates.end() || it2 != candidates.end()) - fprintf(outfile2,"SL(%g,%g,%g,%g,%g,%g) {%g,%g};\n", - pc1.x(), pc1.y(), pc1.z(), pc2.x(), pc2.y(), pc2.z(), - allTets[0]->getCircumRadius(),allTets[1]->getCircumRadius()); - } + fprintf(outfile2,"SL(%g,%g,%g,%g,%g,%g) {%g,%g};\n", + pc1.x(), pc1.y(), pc1.z(), pc2.x(), pc2.y(), pc2.z(), + allTets[0]->getCircumRadius(),allTets[1]->getCircumRadius()); + } fprintf(outfile2,"};\n"); fclose(outfile2); diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 984cf7be5370fd805c77d67b3609f3d1d1172e53..ca224708ae6b215eb1b5149f262a07fbde886a29 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -176,6 +176,7 @@ Physical return tPhysical; Pi return tPi; Plane return tPlane; Point return tPoint; +Points return tPoints; Parametric return tParametric; PolarSphere return tPolarSphere; Printf return tPrintf; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index bc5475d01782ded7905e86de7694edb9419e7f30..f0c56271400c40fe10574a23e90638000cfb7be5 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -108,6 +108,7 @@ #include "CreateFile.h" #include "gmshSurface.h" #include "gmshLevelset.h" +#include "fullMatrix.h" #if defined(HAVE_MESH) #include "Generator.h" @@ -164,7 +165,7 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); /* Line 189 of yacc.c */ -#line 168 "Gmsh.tab.cpp" +#line 169 "Gmsh.tab.cpp" /* Enabling traces. */ #ifndef YYDEBUG @@ -265,68 +266,69 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); tDilate = 329, tExtrude = 330, tLevelset = 331, - tLoop = 332, - tRecombine = 333, - tSmoother = 334, - tSplit = 335, - tDelete = 336, - tCoherence = 337, - tIntersect = 338, - tLayers = 339, - tHole = 340, - tAlias = 341, - tAliasWithOptions = 342, - tQuadTriDbl = 343, - tQuadTriSngl = 344, - tRecombLaterals = 345, - tTransfQuadTri = 346, - tText2D = 347, - tText3D = 348, - tInterpolationScheme = 349, - tTime = 350, - tCombine = 351, - tBSpline = 352, - tBezier = 353, - tNurbs = 354, - tNurbsOrder = 355, - tNurbsKnots = 356, - tColor = 357, - tColorTable = 358, - tFor = 359, - tIn = 360, - tEndFor = 361, - tIf = 362, - tEndIf = 363, - tExit = 364, - tField = 365, - tReturn = 366, - tCall = 367, - tFunction = 368, - tShow = 369, - tHide = 370, - tGetValue = 371, - tGetEnv = 372, - tGetString = 373, - tGMSH_MAJOR_VERSION = 374, - tGMSH_MINOR_VERSION = 375, - tGMSH_PATCH_VERSION = 376, - tHomRank = 377, - tHomGen = 378, - tHomCut = 379, - tHomSeq = 380, - tAFFECTDIVIDE = 381, - tAFFECTTIMES = 382, - tAFFECTMINUS = 383, - tAFFECTPLUS = 384, - tOR = 385, - tAND = 386, - tNOTEQUAL = 387, - tEQUAL = 388, - tGREATEROREQUAL = 389, - tLESSOREQUAL = 390, - UNARYPREC = 391, - tMINUSMINUS = 392, - tPLUSPLUS = 393 + tPoints = 332, + tLoop = 333, + tRecombine = 334, + tSmoother = 335, + tSplit = 336, + tDelete = 337, + tCoherence = 338, + tIntersect = 339, + tLayers = 340, + tHole = 341, + tAlias = 342, + tAliasWithOptions = 343, + tQuadTriDbl = 344, + tQuadTriSngl = 345, + tRecombLaterals = 346, + tTransfQuadTri = 347, + tText2D = 348, + tText3D = 349, + tInterpolationScheme = 350, + tTime = 351, + tCombine = 352, + tBSpline = 353, + tBezier = 354, + tNurbs = 355, + tNurbsOrder = 356, + tNurbsKnots = 357, + tColor = 358, + tColorTable = 359, + tFor = 360, + tIn = 361, + tEndFor = 362, + tIf = 363, + tEndIf = 364, + tExit = 365, + tField = 366, + tReturn = 367, + tCall = 368, + tFunction = 369, + tShow = 370, + tHide = 371, + tGetValue = 372, + tGetEnv = 373, + tGetString = 374, + tGMSH_MAJOR_VERSION = 375, + tGMSH_MINOR_VERSION = 376, + tGMSH_PATCH_VERSION = 377, + tHomRank = 378, + tHomGen = 379, + tHomCut = 380, + tHomSeq = 381, + tAFFECTDIVIDE = 382, + tAFFECTTIMES = 383, + tAFFECTMINUS = 384, + tAFFECTPLUS = 385, + tOR = 386, + tAND = 387, + tNOTEQUAL = 388, + tEQUAL = 389, + tGREATEROREQUAL = 390, + tLESSOREQUAL = 391, + UNARYPREC = 392, + tMINUSMINUS = 393, + tPLUSPLUS = 394 }; #endif @@ -337,7 +339,7 @@ typedef union YYSTYPE { /* Line 214 of yacc.c */ -#line 88 "Gmsh.y" +#line 89 "Gmsh.y" char *c; int i; @@ -350,7 +352,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 354 "Gmsh.tab.cpp" +#line 356 "Gmsh.tab.cpp" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -362,7 +364,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 366 "Gmsh.tab.cpp" +#line 368 "Gmsh.tab.cpp" #ifdef short # undef short @@ -577,20 +579,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7169 +#define YYLAST 7191 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 159 +#define YYNTOKENS 160 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 81 /* YYNRULES -- Number of rules. */ -#define YYNRULES 399 +#define YYNRULES 400 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1422 +#define YYNSTATES 1431 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 393 +#define YYMAXUTOK 394 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -601,16 +603,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 144, 2, 154, 2, 143, 2, 2, - 149, 150, 141, 139, 155, 140, 153, 142, 2, 2, + 2, 2, 2, 145, 2, 155, 2, 144, 2, 2, + 150, 151, 142, 140, 156, 141, 154, 143, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 135, 2, 136, 130, 2, 2, 2, 2, 2, 2, + 136, 2, 137, 131, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 151, 2, 152, 148, 2, 2, 2, 2, 2, + 2, 152, 2, 153, 149, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 156, 2, 157, 158, 2, 2, 2, + 2, 2, 2, 157, 2, 158, 159, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -636,8 +638,8 @@ static const yytype_uint8 yytranslate[] = 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 131, 132, 133, 134, 137, - 138, 145, 146, 147 + 125, 126, 127, 128, 129, 130, 132, 133, 134, 135, + 138, 139, 146, 147, 148 }; #if YYDEBUG @@ -659,313 +661,316 @@ static const yytype_uint16 yyprhs[] = 568, 578, 587, 597, 601, 606, 617, 625, 633, 642, 651, 664, 665, 675, 684, 692, 701, 702, 712, 718, 730, 736, 746, 751, 761, 771, 773, 775, 776, 779, - 786, 793, 800, 807, 816, 831, 848, 861, 870, 879, - 886, 901, 906, 913, 920, 924, 929, 935, 939, 943, - 948, 953, 957, 965, 973, 977, 985, 989, 992, 995, - 998, 1014, 1017, 1020, 1023, 1026, 1033, 1042, 1051, 1062, - 1064, 1067, 1069, 1073, 1078, 1080, 1086, 1098, 1112, 1113, - 1121, 1122, 1136, 1137, 1153, 1154, 1161, 1170, 1179, 1188, - 1201, 1214, 1227, 1242, 1257, 1272, 1273, 1286, 1287, 1300, - 1301, 1314, 1315, 1332, 1333, 1350, 1351, 1368, 1369, 1388, - 1389, 1408, 1409, 1428, 1430, 1433, 1439, 1447, 1457, 1460, - 1463, 1467, 1470, 1474, 1484, 1491, 1492, 1496, 1497, 1499, - 1500, 1503, 1504, 1507, 1515, 1522, 1531, 1537, 1541, 1547, - 1554, 1561, 1574, 1585, 1596, 1607, 1618, 1621, 1625, 1632, - 1644, 1656, 1668, 1680, 1682, 1686, 1689, 1692, 1695, 1699, - 1703, 1707, 1711, 1715, 1719, 1723, 1727, 1731, 1735, 1739, - 1743, 1747, 1751, 1757, 1762, 1767, 1772, 1777, 1782, 1787, - 1792, 1797, 1802, 1807, 1814, 1819, 1824, 1829, 1834, 1839, - 1844, 1851, 1858, 1865, 1870, 1875, 1880, 1885, 1890, 1895, - 1900, 1905, 1910, 1915, 1920, 1927, 1932, 1937, 1942, 1947, - 1952, 1957, 1964, 1971, 1978, 1983, 1985, 1987, 1989, 1991, - 1993, 1995, 1997, 1999, 2005, 2010, 2015, 2018, 2024, 2028, - 2035, 2040, 2048, 2055, 2057, 2060, 2063, 2067, 2071, 2083, - 2093, 2101, 2109, 2111, 2115, 2117, 2119, 2122, 2126, 2131, - 2137, 2139, 2141, 2144, 2148, 2152, 2158, 2163, 2166, 2169, - 2172, 2175, 2177, 2179, 2183, 2190, 2192, 2194, 2198, 2202, - 2212, 2220, 2222, 2228, 2232, 2239, 2241, 2245, 2247, 2249, - 2253, 2260, 2262, 2264, 2269, 2276, 2283, 2288, 2293, 2298 + 786, 793, 800, 807, 816, 827, 842, 859, 872, 881, + 890, 897, 912, 917, 924, 931, 935, 940, 946, 950, + 954, 959, 964, 968, 976, 984, 988, 996, 1000, 1003, + 1006, 1009, 1025, 1028, 1031, 1034, 1037, 1044, 1053, 1062, + 1073, 1075, 1078, 1080, 1084, 1089, 1091, 1097, 1109, 1123, + 1124, 1132, 1133, 1147, 1148, 1164, 1165, 1172, 1181, 1190, + 1199, 1212, 1225, 1238, 1253, 1268, 1283, 1284, 1297, 1298, + 1311, 1312, 1325, 1326, 1343, 1344, 1361, 1362, 1379, 1380, + 1399, 1400, 1419, 1420, 1439, 1441, 1444, 1450, 1458, 1468, + 1471, 1474, 1478, 1481, 1485, 1495, 1502, 1503, 1507, 1508, + 1510, 1511, 1514, 1515, 1518, 1526, 1533, 1542, 1548, 1552, + 1558, 1565, 1572, 1585, 1596, 1607, 1618, 1629, 1632, 1636, + 1643, 1655, 1667, 1679, 1691, 1693, 1697, 1700, 1703, 1706, + 1710, 1714, 1718, 1722, 1726, 1730, 1734, 1738, 1742, 1746, + 1750, 1754, 1758, 1762, 1768, 1773, 1778, 1783, 1788, 1793, + 1798, 1803, 1808, 1813, 1818, 1825, 1830, 1835, 1840, 1845, + 1850, 1855, 1862, 1869, 1876, 1881, 1886, 1891, 1896, 1901, + 1906, 1911, 1916, 1921, 1926, 1931, 1938, 1943, 1948, 1953, + 1958, 1963, 1968, 1975, 1982, 1989, 1994, 1996, 1998, 2000, + 2002, 2004, 2006, 2008, 2010, 2016, 2021, 2026, 2029, 2035, + 2039, 2046, 2051, 2059, 2066, 2068, 2071, 2074, 2078, 2082, + 2094, 2104, 2112, 2120, 2122, 2126, 2128, 2130, 2133, 2137, + 2142, 2148, 2150, 2152, 2155, 2159, 2163, 2169, 2174, 2177, + 2180, 2183, 2186, 2188, 2190, 2194, 2201, 2203, 2205, 2209, + 2213, 2223, 2231, 2233, 2239, 2243, 2250, 2252, 2256, 2258, + 2260, 2264, 2271, 2273, 2275, 2280, 2287, 2294, 2299, 2304, + 2309 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 160, 0, -1, 161, -1, 1, 6, -1, -1, 161, - 162, -1, 165, -1, 164, -1, 183, -1, 187, -1, - 192, -1, 196, -1, 197, -1, 198, -1, 201, -1, - 221, -1, 222, -1, 223, -1, 224, -1, 200, -1, - 199, -1, 195, -1, 225, -1, 136, -1, 136, 136, - -1, 35, 149, 5, 150, 6, -1, 35, 149, 5, - 150, 163, 238, 6, -1, 35, 149, 5, 155, 234, - 150, 6, -1, 35, 149, 5, 155, 234, 150, 163, - 238, 6, -1, 4, 5, 156, 166, 157, 6, -1, - 86, 4, 151, 226, 152, 6, -1, 87, 4, 151, - 226, 152, 6, -1, -1, 166, 169, -1, 166, 173, - -1, 166, 176, -1, 166, 178, -1, 166, 179, -1, - 226, -1, 167, 155, 226, -1, 226, -1, 168, 155, - 226, -1, -1, -1, 4, 170, 149, 167, 150, 171, - 156, 168, 157, 6, -1, 238, -1, 172, 155, 238, - -1, -1, 92, 149, 226, 155, 226, 155, 226, 150, - 174, 156, 172, 157, 6, -1, 238, -1, 175, 155, - 238, -1, -1, 93, 149, 226, 155, 226, 155, 226, - 155, 226, 150, 177, 156, 175, 157, 6, -1, 94, - 156, 230, 157, 156, 230, 157, 6, -1, 94, 156, - 230, 157, 156, 230, 157, 156, 230, 157, 156, 230, - 157, 6, -1, -1, 95, 180, 156, 168, 157, 6, - -1, 7, -1, 129, -1, 128, -1, 127, -1, 126, - -1, 147, -1, 146, -1, 4, 181, 226, 6, -1, - 4, 151, 226, 152, 181, 226, 6, -1, 4, 151, - 156, 234, 157, 152, 181, 231, 6, -1, 4, 151, - 152, 7, 231, 6, -1, 4, 151, 152, 129, 231, - 6, -1, 4, 182, 6, -1, 4, 151, 226, 152, - 182, 6, -1, 4, 7, 239, 6, -1, 4, 153, - 4, 7, 239, 6, -1, 4, 151, 226, 152, 153, - 4, 7, 239, 6, -1, 4, 153, 4, 181, 226, - 6, -1, 4, 151, 226, 152, 153, 4, 181, 226, - 6, -1, 4, 153, 4, 182, 6, -1, 4, 151, - 226, 152, 153, 4, 182, 6, -1, 4, 153, 102, - 153, 4, 7, 235, 6, -1, 4, 151, 226, 152, - 153, 102, 153, 4, 7, 235, 6, -1, 4, 153, - 103, 7, 236, 6, -1, 4, 151, 226, 152, 153, - 103, 7, 236, 6, -1, 4, 110, 7, 226, 6, - -1, 110, 151, 226, 152, 7, 4, 6, -1, 110, - 151, 226, 152, 153, 4, 7, 226, 6, -1, 110, - 151, 226, 152, 153, 4, 7, 239, 6, -1, 110, - 151, 226, 152, 153, 4, 7, 156, 234, 157, 6, - -1, 69, 149, 4, 150, 153, 4, 7, 226, 6, - -1, 69, 149, 4, 150, 153, 4, 7, 239, 6, - -1, 226, -1, 239, -1, -1, 105, 51, 156, 226, - 157, -1, -1, 61, 228, -1, 47, 149, 226, 150, - 7, 228, 6, -1, -1, 65, 47, 188, 149, 184, - 150, 7, 231, 6, -1, 56, 57, 231, 7, 226, - 6, -1, 50, 149, 226, 150, 7, 231, 6, -1, - 70, 50, 231, 6, -1, 54, 149, 226, 150, 7, - 231, 6, -1, 48, 149, 226, 150, 7, 231, 186, - 6, -1, 49, 149, 226, 150, 7, 231, 186, 6, - -1, 97, 149, 226, 150, 7, 231, 6, -1, 98, - 149, 226, 150, 7, 231, 6, -1, 99, 149, 226, - 150, 7, 231, 101, 231, 100, 226, 6, -1, 50, - 77, 149, 226, 150, 7, 231, 6, -1, 66, 50, - 149, 226, 150, 7, 231, 6, -1, -1, 65, 50, - 189, 149, 184, 150, 7, 231, 6, -1, 61, 53, - 149, 226, 150, 7, 231, 6, -1, 62, 53, 149, - 226, 150, 7, 231, 185, 6, -1, 12, 13, 6, - -1, 13, 53, 226, 6, -1, 58, 53, 149, 226, - 150, 7, 5, 5, 5, 6, -1, 51, 149, 226, - 150, 7, 231, 6, -1, 52, 149, 226, 150, 7, - 231, 6, -1, 53, 77, 149, 226, 150, 7, 231, - 6, -1, 66, 53, 149, 226, 150, 7, 231, 6, - -1, 66, 53, 149, 226, 150, 7, 231, 4, 156, - 230, 157, 6, -1, -1, 65, 53, 190, 149, 184, - 150, 7, 231, 6, -1, 64, 55, 149, 226, 150, - 7, 231, 6, -1, 55, 149, 226, 150, 7, 231, - 6, -1, 66, 55, 149, 226, 150, 7, 231, 6, - -1, -1, 65, 55, 191, 149, 184, 150, 7, 231, - 6, -1, 72, 228, 156, 193, 157, -1, 71, 156, - 228, 155, 228, 155, 226, 157, 156, 193, 157, -1, - 73, 228, 156, 193, 157, -1, 74, 156, 228, 155, - 226, 157, 156, 193, 157, -1, 4, 156, 193, 157, - -1, 83, 50, 156, 234, 157, 53, 156, 226, 157, - -1, 80, 50, 149, 226, 150, 156, 234, 157, 6, - -1, 194, -1, 192, -1, -1, 194, 187, -1, 194, - 47, 156, 234, 157, 6, -1, 194, 50, 156, 234, - 157, 6, -1, 194, 53, 156, 234, 157, 6, -1, - 194, 55, 156, 234, 157, 6, -1, 76, 61, 149, - 226, 150, 7, 231, 6, -1, 76, 61, 149, 226, - 150, 7, 156, 228, 155, 228, 155, 234, 157, 6, - -1, 76, 61, 149, 226, 150, 7, 156, 228, 155, - 228, 155, 228, 155, 234, 157, 6, -1, 76, 51, - 149, 226, 150, 7, 156, 228, 155, 234, 157, 6, - -1, 76, 4, 149, 226, 150, 7, 231, 6, -1, - 76, 4, 149, 226, 150, 7, 5, 6, -1, 76, - 4, 156, 226, 157, 6, -1, 76, 4, 149, 226, - 150, 7, 156, 228, 155, 228, 155, 234, 157, 6, - -1, 81, 156, 194, 157, -1, 81, 110, 151, 226, - 152, 6, -1, 81, 4, 151, 226, 152, 6, -1, - 81, 4, 6, -1, 81, 4, 4, 6, -1, 102, - 235, 156, 194, 157, -1, 114, 5, 6, -1, 115, - 5, 6, -1, 114, 156, 194, 157, -1, 115, 156, - 194, 157, -1, 4, 239, 6, -1, 4, 4, 151, - 226, 152, 238, 6, -1, 4, 4, 4, 151, 226, - 152, 6, -1, 4, 226, 6, -1, 69, 149, 4, - 150, 153, 4, 6, -1, 96, 4, 6, -1, 109, - 6, -1, 43, 6, -1, 40, 6, -1, 40, 156, - 226, 155, 226, 155, 226, 155, 226, 155, 226, 155, - 226, 157, 6, -1, 41, 6, -1, 44, 6, -1, - 45, 6, -1, 60, 6, -1, 104, 149, 226, 8, - 226, 150, -1, 104, 149, 226, 8, 226, 8, 226, - 150, -1, 104, 4, 105, 156, 226, 8, 226, 157, - -1, 104, 4, 105, 156, 226, 8, 226, 8, 226, - 157, -1, 106, -1, 113, 4, -1, 111, -1, 112, - 4, 6, -1, 107, 149, 226, 150, -1, 108, -1, - 75, 228, 156, 194, 157, -1, 75, 156, 228, 155, - 228, 155, 226, 157, 156, 194, 157, -1, 75, 156, - 228, 155, 228, 155, 228, 155, 226, 157, 156, 194, - 157, -1, -1, 75, 228, 156, 194, 202, 215, 157, - -1, -1, 75, 156, 228, 155, 228, 155, 226, 157, - 156, 194, 203, 215, 157, -1, -1, 75, 156, 228, - 155, 228, 155, 228, 155, 226, 157, 156, 194, 204, - 215, 157, -1, -1, 75, 156, 194, 205, 215, 157, - -1, 75, 47, 156, 226, 155, 228, 157, 6, -1, - 75, 50, 156, 226, 155, 228, 157, 6, -1, 75, - 53, 156, 226, 155, 228, 157, 6, -1, 75, 47, - 156, 226, 155, 228, 155, 228, 155, 226, 157, 6, - -1, 75, 50, 156, 226, 155, 228, 155, 228, 155, - 226, 157, 6, -1, 75, 53, 156, 226, 155, 228, - 155, 228, 155, 226, 157, 6, -1, 75, 47, 156, - 226, 155, 228, 155, 228, 155, 228, 155, 226, 157, - 6, -1, 75, 50, 156, 226, 155, 228, 155, 228, - 155, 228, 155, 226, 157, 6, -1, 75, 53, 156, - 226, 155, 228, 155, 228, 155, 228, 155, 226, 157, - 6, -1, -1, 75, 47, 156, 226, 155, 228, 157, - 206, 156, 215, 157, 6, -1, -1, 75, 50, 156, - 226, 155, 228, 157, 207, 156, 215, 157, 6, -1, - -1, 75, 53, 156, 226, 155, 228, 157, 208, 156, - 215, 157, 6, -1, -1, 75, 47, 156, 226, 155, - 228, 155, 228, 155, 226, 157, 209, 156, 215, 157, - 6, -1, -1, 75, 50, 156, 226, 155, 228, 155, - 228, 155, 226, 157, 210, 156, 215, 157, 6, -1, - -1, 75, 53, 156, 226, 155, 228, 155, 228, 155, - 226, 157, 211, 156, 215, 157, 6, -1, -1, 75, - 47, 156, 226, 155, 228, 155, 228, 155, 228, 155, - 226, 157, 212, 156, 215, 157, 6, -1, -1, 75, - 50, 156, 226, 155, 228, 155, 228, 155, 228, 155, - 226, 157, 213, 156, 215, 157, 6, -1, -1, 75, - 53, 156, 226, 155, 228, 155, 228, 155, 228, 155, - 226, 157, 214, 156, 215, 157, 6, -1, 216, -1, - 215, 216, -1, 84, 156, 226, 157, 6, -1, 84, - 156, 231, 155, 231, 157, 6, -1, 84, 156, 231, - 155, 231, 155, 231, 157, 6, -1, 78, 6, -1, - 88, 6, -1, 88, 90, 6, -1, 89, 6, -1, - 89, 90, 6, -1, 85, 149, 226, 150, 7, 231, - 68, 226, 6, -1, 68, 4, 151, 226, 152, 6, - -1, -1, 68, 4, 226, -1, -1, 4, -1, -1, - 7, 231, -1, -1, 7, 226, -1, 63, 50, 232, - 7, 226, 217, 6, -1, 63, 53, 232, 219, 218, - 6, -1, 59, 53, 156, 226, 157, 7, 231, 6, - -1, 63, 55, 232, 219, 6, -1, 91, 232, 6, - -1, 78, 53, 232, 220, 6, -1, 79, 53, 231, - 7, 226, 6, -1, 67, 50, 231, 7, 231, 6, - -1, 67, 53, 226, 156, 234, 157, 7, 226, 156, - 234, 157, 6, -1, 47, 156, 234, 157, 105, 53, - 156, 226, 157, 6, -1, 50, 156, 234, 157, 105, - 53, 156, 226, 157, 6, -1, 50, 156, 234, 157, - 105, 55, 156, 226, 157, 6, -1, 53, 156, 234, - 157, 105, 55, 156, 226, 157, 6, -1, 82, 6, - -1, 82, 4, 6, -1, 82, 47, 156, 234, 157, - 6, -1, 122, 149, 238, 150, 7, 156, 231, 155, - 231, 157, 6, -1, 123, 149, 238, 150, 7, 156, - 231, 155, 231, 157, 6, -1, 124, 149, 238, 150, - 7, 156, 231, 155, 231, 157, 6, -1, 125, 149, - 238, 150, 7, 156, 231, 155, 231, 157, 6, -1, - 227, -1, 149, 226, 150, -1, 140, 226, -1, 139, - 226, -1, 144, 226, -1, 226, 140, 226, -1, 226, - 139, 226, -1, 226, 141, 226, -1, 226, 142, 226, - -1, 226, 143, 226, -1, 226, 148, 226, -1, 226, - 135, 226, -1, 226, 136, 226, -1, 226, 138, 226, - -1, 226, 137, 226, -1, 226, 134, 226, -1, 226, - 133, 226, -1, 226, 132, 226, -1, 226, 131, 226, - -1, 226, 130, 226, 8, 226, -1, 14, 149, 226, - 150, -1, 15, 149, 226, 150, -1, 16, 149, 226, - 150, -1, 17, 149, 226, 150, -1, 18, 149, 226, - 150, -1, 19, 149, 226, 150, -1, 20, 149, 226, - 150, -1, 21, 149, 226, 150, -1, 22, 149, 226, - 150, -1, 24, 149, 226, 150, -1, 25, 149, 226, - 155, 226, 150, -1, 26, 149, 226, 150, -1, 27, - 149, 226, 150, -1, 28, 149, 226, 150, -1, 29, - 149, 226, 150, -1, 30, 149, 226, 150, -1, 31, - 149, 226, 150, -1, 32, 149, 226, 155, 226, 150, - -1, 33, 149, 226, 155, 226, 150, -1, 34, 149, - 226, 155, 226, 150, -1, 23, 149, 226, 150, -1, - 14, 151, 226, 152, -1, 15, 151, 226, 152, -1, - 16, 151, 226, 152, -1, 17, 151, 226, 152, -1, - 18, 151, 226, 152, -1, 19, 151, 226, 152, -1, - 20, 151, 226, 152, -1, 21, 151, 226, 152, -1, - 22, 151, 226, 152, -1, 24, 151, 226, 152, -1, - 25, 151, 226, 155, 226, 152, -1, 26, 151, 226, - 152, -1, 27, 151, 226, 152, -1, 28, 151, 226, - 152, -1, 29, 151, 226, 152, -1, 30, 151, 226, - 152, -1, 31, 151, 226, 152, -1, 32, 151, 226, - 155, 226, 152, -1, 33, 151, 226, 155, 226, 152, - -1, 34, 151, 226, 155, 226, 152, -1, 23, 151, - 226, 152, -1, 3, -1, 9, -1, 10, -1, 11, - -1, 119, -1, 120, -1, 121, -1, 4, -1, 4, - 158, 156, 226, 157, -1, 4, 151, 226, 152, -1, - 154, 4, 151, 152, -1, 4, 182, -1, 4, 151, - 226, 152, 182, -1, 4, 153, 4, -1, 4, 151, - 226, 152, 153, 4, -1, 4, 153, 4, 182, -1, - 4, 151, 226, 152, 153, 4, 182, -1, 116, 149, - 238, 155, 226, 150, -1, 229, -1, 140, 228, -1, - 139, 228, -1, 228, 140, 228, -1, 228, 139, 228, - -1, 156, 226, 155, 226, 155, 226, 155, 226, 155, - 226, 157, -1, 156, 226, 155, 226, 155, 226, 155, - 226, 157, -1, 156, 226, 155, 226, 155, 226, 157, - -1, 149, 226, 155, 226, 155, 226, 150, -1, 231, - -1, 230, 155, 231, -1, 226, -1, 233, -1, 156, - 157, -1, 156, 234, 157, -1, 140, 156, 234, 157, - -1, 226, 141, 156, 234, 157, -1, 231, -1, 5, - -1, 140, 233, -1, 226, 141, 233, -1, 226, 8, - 226, -1, 226, 8, 226, 8, 226, -1, 47, 156, - 226, 157, -1, 47, 5, -1, 50, 5, -1, 53, - 5, -1, 55, 5, -1, 192, -1, 201, -1, 4, - 151, 152, -1, 4, 151, 156, 234, 157, 152, -1, - 226, -1, 233, -1, 234, 155, 226, -1, 234, 155, - 233, -1, 156, 226, 155, 226, 155, 226, 155, 226, - 157, -1, 156, 226, 155, 226, 155, 226, 157, -1, - 4, -1, 4, 153, 102, 153, 4, -1, 156, 237, - 157, -1, 4, 151, 226, 152, 153, 103, -1, 235, - -1, 237, 155, 235, -1, 239, -1, 4, -1, 4, - 153, 4, -1, 4, 151, 226, 152, 153, 4, -1, - 5, -1, 42, -1, 117, 149, 238, 150, -1, 118, - 149, 238, 155, 238, 150, -1, 37, 149, 238, 155, - 238, 150, -1, 38, 149, 238, 150, -1, 39, 149, - 238, 150, -1, 36, 149, 238, 150, -1, 36, 149, - 238, 155, 234, 150, -1 + 161, 0, -1, 162, -1, 1, 6, -1, -1, 162, + 163, -1, 166, -1, 165, -1, 184, -1, 188, -1, + 193, -1, 197, -1, 198, -1, 199, -1, 202, -1, + 222, -1, 223, -1, 224, -1, 225, -1, 201, -1, + 200, -1, 196, -1, 226, -1, 137, -1, 137, 137, + -1, 35, 150, 5, 151, 6, -1, 35, 150, 5, + 151, 164, 239, 6, -1, 35, 150, 5, 156, 235, + 151, 6, -1, 35, 150, 5, 156, 235, 151, 164, + 239, 6, -1, 4, 5, 157, 167, 158, 6, -1, + 87, 4, 152, 227, 153, 6, -1, 88, 4, 152, + 227, 153, 6, -1, -1, 167, 170, -1, 167, 174, + -1, 167, 177, -1, 167, 179, -1, 167, 180, -1, + 227, -1, 168, 156, 227, -1, 227, -1, 169, 156, + 227, -1, -1, -1, 4, 171, 150, 168, 151, 172, + 157, 169, 158, 6, -1, 239, -1, 173, 156, 239, + -1, -1, 93, 150, 227, 156, 227, 156, 227, 151, + 175, 157, 173, 158, 6, -1, 239, -1, 176, 156, + 239, -1, -1, 94, 150, 227, 156, 227, 156, 227, + 156, 227, 151, 178, 157, 176, 158, 6, -1, 95, + 157, 231, 158, 157, 231, 158, 6, -1, 95, 157, + 231, 158, 157, 231, 158, 157, 231, 158, 157, 231, + 158, 6, -1, -1, 96, 181, 157, 169, 158, 6, + -1, 7, -1, 130, -1, 129, -1, 128, -1, 127, + -1, 148, -1, 147, -1, 4, 182, 227, 6, -1, + 4, 152, 227, 153, 182, 227, 6, -1, 4, 152, + 157, 235, 158, 153, 182, 232, 6, -1, 4, 152, + 153, 7, 232, 6, -1, 4, 152, 153, 130, 232, + 6, -1, 4, 183, 6, -1, 4, 152, 227, 153, + 183, 6, -1, 4, 7, 240, 6, -1, 4, 154, + 4, 7, 240, 6, -1, 4, 152, 227, 153, 154, + 4, 7, 240, 6, -1, 4, 154, 4, 182, 227, + 6, -1, 4, 152, 227, 153, 154, 4, 182, 227, + 6, -1, 4, 154, 4, 183, 6, -1, 4, 152, + 227, 153, 154, 4, 183, 6, -1, 4, 154, 103, + 154, 4, 7, 236, 6, -1, 4, 152, 227, 153, + 154, 103, 154, 4, 7, 236, 6, -1, 4, 154, + 104, 7, 237, 6, -1, 4, 152, 227, 153, 154, + 104, 7, 237, 6, -1, 4, 111, 7, 227, 6, + -1, 111, 152, 227, 153, 7, 4, 6, -1, 111, + 152, 227, 153, 154, 4, 7, 227, 6, -1, 111, + 152, 227, 153, 154, 4, 7, 240, 6, -1, 111, + 152, 227, 153, 154, 4, 7, 157, 235, 158, 6, + -1, 69, 150, 4, 151, 154, 4, 7, 227, 6, + -1, 69, 150, 4, 151, 154, 4, 7, 240, 6, + -1, 227, -1, 240, -1, -1, 106, 51, 157, 227, + 158, -1, -1, 61, 229, -1, 47, 150, 227, 151, + 7, 229, 6, -1, -1, 65, 47, 189, 150, 185, + 151, 7, 232, 6, -1, 56, 57, 232, 7, 227, + 6, -1, 50, 150, 227, 151, 7, 232, 6, -1, + 70, 50, 232, 6, -1, 54, 150, 227, 151, 7, + 232, 6, -1, 48, 150, 227, 151, 7, 232, 187, + 6, -1, 49, 150, 227, 151, 7, 232, 187, 6, + -1, 98, 150, 227, 151, 7, 232, 6, -1, 99, + 150, 227, 151, 7, 232, 6, -1, 100, 150, 227, + 151, 7, 232, 102, 232, 101, 227, 6, -1, 50, + 78, 150, 227, 151, 7, 232, 6, -1, 66, 50, + 150, 227, 151, 7, 232, 6, -1, -1, 65, 50, + 190, 150, 185, 151, 7, 232, 6, -1, 61, 53, + 150, 227, 151, 7, 232, 6, -1, 62, 53, 150, + 227, 151, 7, 232, 186, 6, -1, 12, 13, 6, + -1, 13, 53, 227, 6, -1, 58, 53, 150, 227, + 151, 7, 5, 5, 5, 6, -1, 51, 150, 227, + 151, 7, 232, 6, -1, 52, 150, 227, 151, 7, + 232, 6, -1, 53, 78, 150, 227, 151, 7, 232, + 6, -1, 66, 53, 150, 227, 151, 7, 232, 6, + -1, 66, 53, 150, 227, 151, 7, 232, 4, 157, + 231, 158, 6, -1, -1, 65, 53, 191, 150, 185, + 151, 7, 232, 6, -1, 64, 55, 150, 227, 151, + 7, 232, 6, -1, 55, 150, 227, 151, 7, 232, + 6, -1, 66, 55, 150, 227, 151, 7, 232, 6, + -1, -1, 65, 55, 192, 150, 185, 151, 7, 232, + 6, -1, 72, 229, 157, 194, 158, -1, 71, 157, + 229, 156, 229, 156, 227, 158, 157, 194, 158, -1, + 73, 229, 157, 194, 158, -1, 74, 157, 229, 156, + 227, 158, 157, 194, 158, -1, 4, 157, 194, 158, + -1, 84, 50, 157, 235, 158, 53, 157, 227, 158, + -1, 81, 50, 150, 227, 151, 157, 235, 158, 6, + -1, 195, -1, 193, -1, -1, 195, 188, -1, 195, + 47, 157, 235, 158, 6, -1, 195, 50, 157, 235, + 158, 6, -1, 195, 53, 157, 235, 158, 6, -1, + 195, 55, 157, 235, 158, 6, -1, 76, 61, 150, + 227, 151, 7, 232, 6, -1, 76, 77, 150, 227, + 151, 7, 157, 231, 158, 6, -1, 76, 61, 150, + 227, 151, 7, 157, 229, 156, 229, 156, 235, 158, + 6, -1, 76, 61, 150, 227, 151, 7, 157, 229, + 156, 229, 156, 229, 156, 235, 158, 6, -1, 76, + 51, 150, 227, 151, 7, 157, 229, 156, 235, 158, + 6, -1, 76, 4, 150, 227, 151, 7, 232, 6, + -1, 76, 4, 150, 227, 151, 7, 5, 6, -1, + 76, 4, 157, 227, 158, 6, -1, 76, 4, 150, + 227, 151, 7, 157, 229, 156, 229, 156, 235, 158, + 6, -1, 82, 157, 195, 158, -1, 82, 111, 152, + 227, 153, 6, -1, 82, 4, 152, 227, 153, 6, + -1, 82, 4, 6, -1, 82, 4, 4, 6, -1, + 103, 236, 157, 195, 158, -1, 115, 5, 6, -1, + 116, 5, 6, -1, 115, 157, 195, 158, -1, 116, + 157, 195, 158, -1, 4, 240, 6, -1, 4, 4, + 152, 227, 153, 239, 6, -1, 4, 4, 4, 152, + 227, 153, 6, -1, 4, 227, 6, -1, 69, 150, + 4, 151, 154, 4, 6, -1, 97, 4, 6, -1, + 110, 6, -1, 43, 6, -1, 40, 6, -1, 40, + 157, 227, 156, 227, 156, 227, 156, 227, 156, 227, + 156, 227, 158, 6, -1, 41, 6, -1, 44, 6, + -1, 45, 6, -1, 60, 6, -1, 105, 150, 227, + 8, 227, 151, -1, 105, 150, 227, 8, 227, 8, + 227, 151, -1, 105, 4, 106, 157, 227, 8, 227, + 158, -1, 105, 4, 106, 157, 227, 8, 227, 8, + 227, 158, -1, 107, -1, 114, 4, -1, 112, -1, + 113, 4, 6, -1, 108, 150, 227, 151, -1, 109, + -1, 75, 229, 157, 195, 158, -1, 75, 157, 229, + 156, 229, 156, 227, 158, 157, 195, 158, -1, 75, + 157, 229, 156, 229, 156, 229, 156, 227, 158, 157, + 195, 158, -1, -1, 75, 229, 157, 195, 203, 216, + 158, -1, -1, 75, 157, 229, 156, 229, 156, 227, + 158, 157, 195, 204, 216, 158, -1, -1, 75, 157, + 229, 156, 229, 156, 229, 156, 227, 158, 157, 195, + 205, 216, 158, -1, -1, 75, 157, 195, 206, 216, + 158, -1, 75, 47, 157, 227, 156, 229, 158, 6, + -1, 75, 50, 157, 227, 156, 229, 158, 6, -1, + 75, 53, 157, 227, 156, 229, 158, 6, -1, 75, + 47, 157, 227, 156, 229, 156, 229, 156, 227, 158, + 6, -1, 75, 50, 157, 227, 156, 229, 156, 229, + 156, 227, 158, 6, -1, 75, 53, 157, 227, 156, + 229, 156, 229, 156, 227, 158, 6, -1, 75, 47, + 157, 227, 156, 229, 156, 229, 156, 229, 156, 227, + 158, 6, -1, 75, 50, 157, 227, 156, 229, 156, + 229, 156, 229, 156, 227, 158, 6, -1, 75, 53, + 157, 227, 156, 229, 156, 229, 156, 229, 156, 227, + 158, 6, -1, -1, 75, 47, 157, 227, 156, 229, + 158, 207, 157, 216, 158, 6, -1, -1, 75, 50, + 157, 227, 156, 229, 158, 208, 157, 216, 158, 6, + -1, -1, 75, 53, 157, 227, 156, 229, 158, 209, + 157, 216, 158, 6, -1, -1, 75, 47, 157, 227, + 156, 229, 156, 229, 156, 227, 158, 210, 157, 216, + 158, 6, -1, -1, 75, 50, 157, 227, 156, 229, + 156, 229, 156, 227, 158, 211, 157, 216, 158, 6, + -1, -1, 75, 53, 157, 227, 156, 229, 156, 229, + 156, 227, 158, 212, 157, 216, 158, 6, -1, -1, + 75, 47, 157, 227, 156, 229, 156, 229, 156, 229, + 156, 227, 158, 213, 157, 216, 158, 6, -1, -1, + 75, 50, 157, 227, 156, 229, 156, 229, 156, 229, + 156, 227, 158, 214, 157, 216, 158, 6, -1, -1, + 75, 53, 157, 227, 156, 229, 156, 229, 156, 229, + 156, 227, 158, 215, 157, 216, 158, 6, -1, 217, + -1, 216, 217, -1, 85, 157, 227, 158, 6, -1, + 85, 157, 232, 156, 232, 158, 6, -1, 85, 157, + 232, 156, 232, 156, 232, 158, 6, -1, 79, 6, + -1, 89, 6, -1, 89, 91, 6, -1, 90, 6, + -1, 90, 91, 6, -1, 86, 150, 227, 151, 7, + 232, 68, 227, 6, -1, 68, 4, 152, 227, 153, + 6, -1, -1, 68, 4, 227, -1, -1, 4, -1, + -1, 7, 232, -1, -1, 7, 227, -1, 63, 50, + 233, 7, 227, 218, 6, -1, 63, 53, 233, 220, + 219, 6, -1, 59, 53, 157, 227, 158, 7, 232, + 6, -1, 63, 55, 233, 220, 6, -1, 92, 233, + 6, -1, 79, 53, 233, 221, 6, -1, 80, 53, + 232, 7, 227, 6, -1, 67, 50, 232, 7, 232, + 6, -1, 67, 53, 227, 157, 235, 158, 7, 227, + 157, 235, 158, 6, -1, 47, 157, 235, 158, 106, + 53, 157, 227, 158, 6, -1, 50, 157, 235, 158, + 106, 53, 157, 227, 158, 6, -1, 50, 157, 235, + 158, 106, 55, 157, 227, 158, 6, -1, 53, 157, + 235, 158, 106, 55, 157, 227, 158, 6, -1, 83, + 6, -1, 83, 4, 6, -1, 83, 47, 157, 235, + 158, 6, -1, 123, 150, 239, 151, 7, 157, 232, + 156, 232, 158, 6, -1, 124, 150, 239, 151, 7, + 157, 232, 156, 232, 158, 6, -1, 125, 150, 239, + 151, 7, 157, 232, 156, 232, 158, 6, -1, 126, + 150, 239, 151, 7, 157, 232, 156, 232, 158, 6, + -1, 228, -1, 150, 227, 151, -1, 141, 227, -1, + 140, 227, -1, 145, 227, -1, 227, 141, 227, -1, + 227, 140, 227, -1, 227, 142, 227, -1, 227, 143, + 227, -1, 227, 144, 227, -1, 227, 149, 227, -1, + 227, 136, 227, -1, 227, 137, 227, -1, 227, 139, + 227, -1, 227, 138, 227, -1, 227, 135, 227, -1, + 227, 134, 227, -1, 227, 133, 227, -1, 227, 132, + 227, -1, 227, 131, 227, 8, 227, -1, 14, 150, + 227, 151, -1, 15, 150, 227, 151, -1, 16, 150, + 227, 151, -1, 17, 150, 227, 151, -1, 18, 150, + 227, 151, -1, 19, 150, 227, 151, -1, 20, 150, + 227, 151, -1, 21, 150, 227, 151, -1, 22, 150, + 227, 151, -1, 24, 150, 227, 151, -1, 25, 150, + 227, 156, 227, 151, -1, 26, 150, 227, 151, -1, + 27, 150, 227, 151, -1, 28, 150, 227, 151, -1, + 29, 150, 227, 151, -1, 30, 150, 227, 151, -1, + 31, 150, 227, 151, -1, 32, 150, 227, 156, 227, + 151, -1, 33, 150, 227, 156, 227, 151, -1, 34, + 150, 227, 156, 227, 151, -1, 23, 150, 227, 151, + -1, 14, 152, 227, 153, -1, 15, 152, 227, 153, + -1, 16, 152, 227, 153, -1, 17, 152, 227, 153, + -1, 18, 152, 227, 153, -1, 19, 152, 227, 153, + -1, 20, 152, 227, 153, -1, 21, 152, 227, 153, + -1, 22, 152, 227, 153, -1, 24, 152, 227, 153, + -1, 25, 152, 227, 156, 227, 153, -1, 26, 152, + 227, 153, -1, 27, 152, 227, 153, -1, 28, 152, + 227, 153, -1, 29, 152, 227, 153, -1, 30, 152, + 227, 153, -1, 31, 152, 227, 153, -1, 32, 152, + 227, 156, 227, 153, -1, 33, 152, 227, 156, 227, + 153, -1, 34, 152, 227, 156, 227, 153, -1, 23, + 152, 227, 153, -1, 3, -1, 9, -1, 10, -1, + 11, -1, 120, -1, 121, -1, 122, -1, 4, -1, + 4, 159, 157, 227, 158, -1, 4, 152, 227, 153, + -1, 155, 4, 152, 153, -1, 4, 183, -1, 4, + 152, 227, 153, 183, -1, 4, 154, 4, -1, 4, + 152, 227, 153, 154, 4, -1, 4, 154, 4, 183, + -1, 4, 152, 227, 153, 154, 4, 183, -1, 117, + 150, 239, 156, 227, 151, -1, 230, -1, 141, 229, + -1, 140, 229, -1, 229, 141, 229, -1, 229, 140, + 229, -1, 157, 227, 156, 227, 156, 227, 156, 227, + 156, 227, 158, -1, 157, 227, 156, 227, 156, 227, + 156, 227, 158, -1, 157, 227, 156, 227, 156, 227, + 158, -1, 150, 227, 156, 227, 156, 227, 151, -1, + 232, -1, 231, 156, 232, -1, 227, -1, 234, -1, + 157, 158, -1, 157, 235, 158, -1, 141, 157, 235, + 158, -1, 227, 142, 157, 235, 158, -1, 232, -1, + 5, -1, 141, 234, -1, 227, 142, 234, -1, 227, + 8, 227, -1, 227, 8, 227, 8, 227, -1, 47, + 157, 227, 158, -1, 47, 5, -1, 50, 5, -1, + 53, 5, -1, 55, 5, -1, 193, -1, 202, -1, + 4, 152, 153, -1, 4, 152, 157, 235, 158, 153, + -1, 227, -1, 234, -1, 235, 156, 227, -1, 235, + 156, 234, -1, 157, 227, 156, 227, 156, 227, 156, + 227, 158, -1, 157, 227, 156, 227, 156, 227, 158, + -1, 4, -1, 4, 154, 103, 154, 4, -1, 157, + 238, 158, -1, 4, 152, 227, 153, 154, 104, -1, + 236, -1, 238, 156, 236, -1, 240, -1, 4, -1, + 4, 154, 4, -1, 4, 152, 227, 153, 154, 4, + -1, 5, -1, 42, -1, 118, 150, 239, 151, -1, + 119, 150, 239, 156, 239, 151, -1, 37, 150, 239, + 156, 239, 151, -1, 38, 150, 239, 151, -1, 39, + 150, 239, 151, -1, 36, 150, 239, 151, -1, 36, + 150, 239, 156, 235, 151, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 159, 159, 160, 165, 167, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 191, 195, 202, 207, 221, 234, 262, - 276, 287, 302, 307, 308, 309, 310, 311, 315, 317, - 322, 324, 330, 434, 329, 452, 459, 470, 469, 487, - 494, 505, 504, 521, 538, 561, 560, 574, 575, 576, - 577, 578, 582, 583, 590, 616, 643, 683, 693, 701, - 713, 725, 734, 740, 749, 767, 785, 794, 806, 811, - 819, 839, 862, 871, 879, 901, 924, 952, 964, 981, - 985, 996, 999, 1012, 1015, 1025, 1049, 1048, 1068, 1090, - 1108, 1129, 1147, 1177, 1207, 1225, 1243, 1269, 1286, 1305, - 1304, 1327, 1345, 1384, 1390, 1396, 1403, 1428, 1453, 1469, - 1486, 1518, 1517, 1541, 1559, 1576, 1593, 1592, 1618, 1623, - 1628, 1633, 1638, 1661, 1667, 1678, 1679, 1684, 1687, 1691, - 1714, 1737, 1760, 1788, 1809, 1830, 1852, 1872, 1984, 2003, - 2023, 2132, 2141, 2147, 2162, 2190, 2207, 2221, 2227, 2233, - 2242, 2256, 2298, 2315, 2330, 2349, 2361, 2385, 2389, 2396, - 2402, 2407, 2413, 2417, 2421, 2431, 2448, 2465, 2484, 2503, - 2533, 2541, 2547, 2554, 2558, 2567, 2575, 2583, 2592, 2591, - 2605, 2604, 2618, 2617, 2631, 2630, 2643, 2650, 2657, 2664, - 2671, 2678, 2685, 2692, 2699, 2707, 2706, 2719, 2718, 2731, - 2730, 2743, 2742, 2755, 2754, 2767, 2766, 2779, 2778, 2791, - 2790, 2803, 2802, 2818, 2821, 2827, 2836, 2856, 2879, 2883, - 2887, 2891, 2895, 2899, 2918, 2931, 2934, 2950, 2953, 2966, - 2969, 2975, 2978, 2985, 3041, 3111, 3116, 3183, 3219, 3262, - 3287, 3314, 3358, 3381, 3404, 3407, 3416, 3420, 3430, 3467, - 3504, 3540, 3575, 3615, 3616, 3617, 3618, 3619, 3620, 3621, - 3622, 3623, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, - 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646, 3647, - 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, - 3658, 3659, 3660, 3661, 3663, 3664, 3665, 3666, 3667, 3668, - 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, - 3679, 3680, 3681, 3682, 3683, 3692, 3693, 3694, 3695, 3696, - 3697, 3698, 3702, 3721, 3739, 3754, 3764, 3780, 3798, 3803, - 3808, 3818, 3828, 3836, 3840, 3844, 3848, 3852, 3859, 3863, - 3867, 3871, 3878, 3883, 3890, 3895, 3899, 3904, 3908, 3916, - 3927, 3931, 3943, 3951, 3959, 3966, 3977, 3997, 4001, 4005, - 4009, 4013, 4023, 4033, 4043, 4063, 4068, 4072, 4076, 4088, - 4092, 4104, 4111, 4121, 4125, 4140, 4145, 4152, 4156, 4169, - 4177, 4188, 4192, 4200, 4208, 4216, 4224, 4238, 4252, 4256 + 0, 160, 160, 161, 166, 168, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 192, 196, 203, 208, 222, 235, 263, + 277, 288, 303, 308, 309, 310, 311, 312, 316, 318, + 323, 325, 331, 435, 330, 453, 460, 471, 470, 488, + 495, 506, 505, 522, 539, 562, 561, 575, 576, 577, + 578, 579, 583, 584, 591, 617, 644, 684, 694, 702, + 714, 726, 735, 741, 750, 768, 786, 795, 807, 812, + 820, 840, 863, 872, 880, 902, 925, 953, 965, 982, + 986, 997, 1000, 1013, 1016, 1026, 1050, 1049, 1069, 1091, + 1109, 1130, 1148, 1178, 1208, 1226, 1244, 1270, 1287, 1306, + 1305, 1328, 1346, 1385, 1391, 1397, 1404, 1429, 1454, 1470, + 1487, 1519, 1518, 1542, 1560, 1577, 1594, 1593, 1619, 1624, + 1629, 1634, 1639, 1662, 1668, 1679, 1680, 1685, 1688, 1692, + 1715, 1738, 1761, 1789, 1810, 1833, 1854, 1876, 1896, 2008, + 2027, 2053, 2162, 2171, 2177, 2192, 2220, 2237, 2251, 2257, + 2263, 2272, 2286, 2328, 2345, 2360, 2379, 2391, 2415, 2419, + 2426, 2432, 2437, 2443, 2447, 2451, 2461, 2478, 2495, 2514, + 2533, 2563, 2571, 2577, 2584, 2588, 2597, 2605, 2613, 2622, + 2621, 2635, 2634, 2648, 2647, 2661, 2660, 2673, 2680, 2687, + 2694, 2701, 2708, 2715, 2722, 2729, 2737, 2736, 2749, 2748, + 2761, 2760, 2773, 2772, 2785, 2784, 2797, 2796, 2809, 2808, + 2821, 2820, 2833, 2832, 2848, 2851, 2857, 2866, 2886, 2909, + 2913, 2917, 2921, 2925, 2929, 2948, 2961, 2964, 2980, 2983, + 2996, 2999, 3005, 3008, 3015, 3071, 3141, 3146, 3213, 3249, + 3292, 3317, 3344, 3388, 3411, 3434, 3437, 3446, 3450, 3460, + 3497, 3534, 3570, 3605, 3645, 3646, 3647, 3648, 3649, 3650, + 3651, 3652, 3653, 3660, 3661, 3662, 3663, 3664, 3665, 3666, + 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676, + 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 3686, + 3687, 3688, 3689, 3690, 3691, 3693, 3694, 3695, 3696, 3697, + 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, + 3708, 3709, 3710, 3711, 3712, 3713, 3722, 3723, 3724, 3725, + 3726, 3727, 3728, 3732, 3751, 3769, 3784, 3794, 3810, 3828, + 3833, 3838, 3848, 3858, 3866, 3870, 3874, 3878, 3882, 3889, + 3893, 3897, 3901, 3908, 3913, 3920, 3925, 3929, 3934, 3938, + 3946, 3957, 3961, 3973, 3981, 3989, 3996, 4007, 4027, 4031, + 4035, 4039, 4043, 4053, 4063, 4073, 4093, 4098, 4102, 4106, + 4118, 4122, 4134, 4141, 4151, 4155, 4170, 4175, 4182, 4186, + 4199, 4207, 4218, 4222, 4230, 4238, 4246, 4254, 4268, 4282, + 4286 }; #endif @@ -987,35 +992,35 @@ static const char *const yytname[] = "tRefineMesh", "tPlane", "tRuled", "tTransfinite", "tComplex", "tPhysical", "tCompound", "tPeriodic", "tUsing", "tPlugin", "tDegenerated", "tRotate", "tTranslate", "tSymmetry", "tDilate", - "tExtrude", "tLevelset", "tLoop", "tRecombine", "tSmoother", "tSplit", - "tDelete", "tCoherence", "tIntersect", "tLayers", "tHole", "tAlias", - "tAliasWithOptions", "tQuadTriDbl", "tQuadTriSngl", "tRecombLaterals", - "tTransfQuadTri", "tText2D", "tText3D", "tInterpolationScheme", "tTime", - "tCombine", "tBSpline", "tBezier", "tNurbs", "tNurbsOrder", - "tNurbsKnots", "tColor", "tColorTable", "tFor", "tIn", "tEndFor", "tIf", - "tEndIf", "tExit", "tField", "tReturn", "tCall", "tFunction", "tShow", - "tHide", "tGetValue", "tGetEnv", "tGetString", "tGMSH_MAJOR_VERSION", - "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", "tHomRank", "tHomGen", - "tHomCut", "tHomSeq", "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", - "tAFFECTPLUS", "'?'", "tOR", "tAND", "tNOTEQUAL", "tEQUAL", "'<'", "'>'", - "tGREATEROREQUAL", "tLESSOREQUAL", "'+'", "'-'", "'*'", "'/'", "'%'", - "'!'", "UNARYPREC", "tMINUSMINUS", "tPLUSPLUS", "'^'", "'('", "')'", - "'['", "']'", "'.'", "'#'", "','", "'{'", "'}'", "'~'", "$accept", "All", - "GeoFormatItems", "GeoFormatItem", "SendToFile", "Printf", "View", - "Views", "ElementCoords", "ElementValues", "Element", "$@1", "$@2", - "Text2DValues", "Text2D", "$@3", "Text3DValues", "Text3D", "$@4", - "InterpolationMatrix", "Time", "$@5", "NumericAffectation", - "NumericIncrement", "Affectation", "PhysicalId", "InSphereCenter", - "CircleOptions", "Shape", "$@6", "$@7", "$@8", "$@9", "Transform", - "MultipleShape", "ListOfShapes", "LevelSet", "Delete", "Colorify", - "Visibility", "Command", "Loop", "Extrude", "$@10", "$@11", "$@12", - "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", - "$@22", "ExtrudeParameters", "ExtrudeParameter", "TransfiniteType", - "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", - "Transfinite", "Periodic", "Embedding", "Coherence", "Homology", "FExpr", - "FExpr_Single", "VExpr", "VExpr_Single", "RecursiveListOfListOfDouble", - "ListOfDouble", "ListOfDoubleOrAll", "FExpr_Multi", - "RecursiveListOfDouble", "ColorExpr", "ListOfColor", + "tExtrude", "tLevelset", "tPoints", "tLoop", "tRecombine", "tSmoother", + "tSplit", "tDelete", "tCoherence", "tIntersect", "tLayers", "tHole", + "tAlias", "tAliasWithOptions", "tQuadTriDbl", "tQuadTriSngl", + "tRecombLaterals", "tTransfQuadTri", "tText2D", "tText3D", + "tInterpolationScheme", "tTime", "tCombine", "tBSpline", "tBezier", + "tNurbs", "tNurbsOrder", "tNurbsKnots", "tColor", "tColorTable", "tFor", + "tIn", "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tReturn", "tCall", + "tFunction", "tShow", "tHide", "tGetValue", "tGetEnv", "tGetString", + "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", + "tHomRank", "tHomGen", "tHomCut", "tHomSeq", "tAFFECTDIVIDE", + "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", "tOR", "tAND", + "tNOTEQUAL", "tEQUAL", "'<'", "'>'", "tGREATEROREQUAL", "tLESSOREQUAL", + "'+'", "'-'", "'*'", "'/'", "'%'", "'!'", "UNARYPREC", "tMINUSMINUS", + "tPLUSPLUS", "'^'", "'('", "')'", "'['", "']'", "'.'", "'#'", "','", + "'{'", "'}'", "'~'", "$accept", "All", "GeoFormatItems", "GeoFormatItem", + "SendToFile", "Printf", "View", "Views", "ElementCoords", + "ElementValues", "Element", "$@1", "$@2", "Text2DValues", "Text2D", + "$@3", "Text3DValues", "Text3D", "$@4", "InterpolationMatrix", "Time", + "$@5", "NumericAffectation", "NumericIncrement", "Affectation", + "PhysicalId", "InSphereCenter", "CircleOptions", "Shape", "$@6", "$@7", + "$@8", "$@9", "Transform", "MultipleShape", "ListOfShapes", "LevelSet", + "Delete", "Colorify", "Visibility", "Command", "Loop", "Extrude", "$@10", + "$@11", "$@12", "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", + "$@20", "$@21", "$@22", "ExtrudeParameters", "ExtrudeParameter", + "TransfiniteType", "TransfiniteArrangement", "TransfiniteCorners", + "RecombineAngle", "Transfinite", "Periodic", "Embedding", "Coherence", + "Homology", "FExpr", "FExpr_Single", "VExpr", "VExpr_Single", + "RecursiveListOfListOfDouble", "ListOfDouble", "ListOfDoubleOrAll", + "FExpr_Multi", "RecursiveListOfDouble", "ColorExpr", "ListOfColor", "RecursiveListOfColor", "StringExprVar", "StringExpr", 0 }; #endif @@ -1038,55 +1043,56 @@ static const yytype_uint16 yytoknum[] = 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 63, 385, 386, 387, 388, 60, 62, 389, 390, 43, - 45, 42, 47, 37, 33, 391, 392, 393, 94, 40, - 41, 91, 93, 46, 35, 44, 123, 125, 126 + 385, 63, 386, 387, 388, 389, 60, 62, 390, 391, + 43, 45, 42, 47, 37, 33, 392, 393, 394, 94, + 40, 41, 91, 93, 46, 35, 44, 123, 125, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 159, 160, 160, 161, 161, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 163, 163, 164, 164, 164, 164, 165, - 165, 165, 166, 166, 166, 166, 166, 166, 167, 167, - 168, 168, 170, 171, 169, 172, 172, 174, 173, 175, - 175, 177, 176, 178, 178, 180, 179, 181, 181, 181, - 181, 181, 182, 182, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 184, - 184, 185, 185, 186, 186, 187, 188, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 189, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 190, 187, 187, 187, 187, 191, 187, 192, 192, - 192, 192, 192, 192, 192, 193, 193, 194, 194, 194, - 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, - 195, 196, 196, 196, 196, 196, 197, 198, 198, 198, - 198, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 201, 201, 201, 202, 201, - 203, 201, 204, 201, 205, 201, 201, 201, 201, 201, - 201, 201, 201, 201, 201, 206, 201, 207, 201, 208, - 201, 209, 201, 210, 201, 211, 201, 212, 201, 213, - 201, 214, 201, 215, 215, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 217, 217, 218, 218, 219, - 219, 220, 220, 221, 221, 221, 221, 221, 221, 221, - 222, 222, 223, 223, 223, 223, 224, 224, 224, 225, - 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, + 0, 160, 161, 161, 162, 162, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 164, 164, 165, 165, 165, 165, 166, + 166, 166, 167, 167, 167, 167, 167, 167, 168, 168, + 169, 169, 171, 172, 170, 173, 173, 175, 174, 176, + 176, 178, 177, 179, 179, 181, 180, 182, 182, 182, + 182, 182, 183, 183, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 185, + 185, 186, 186, 187, 187, 188, 189, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 190, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 191, 188, 188, 188, 188, 192, 188, 193, 193, + 193, 193, 193, 193, 193, 194, 194, 195, 195, 195, + 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 197, 197, 197, 197, 197, 198, 199, 199, + 199, 199, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 201, 201, 201, 201, + 201, 201, 201, 201, 201, 201, 202, 202, 202, 203, + 202, 204, 202, 205, 202, 206, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 207, 202, 208, 202, + 209, 202, 210, 202, 211, 202, 212, 202, 213, 202, + 214, 202, 215, 202, 216, 216, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 218, 218, 219, 219, + 220, 220, 221, 221, 222, 222, 222, 222, 222, 222, + 222, 223, 223, 224, 224, 224, 224, 225, 225, 225, + 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 228, 228, 228, 228, 228, 229, 229, - 229, 229, 230, 230, 231, 231, 231, 231, 231, 231, - 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 234, 234, 234, 234, 235, - 235, 235, 235, 236, 236, 237, 237, 238, 238, 238, - 238, 239, 239, 239, 239, 239, 239, 239, 239, 239 + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 229, 229, 229, 229, 229, 230, + 230, 230, 230, 231, 231, 232, 232, 232, 232, 232, + 232, 233, 233, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, + 236, 236, 236, 236, 237, 237, 238, 238, 239, 239, + 239, 239, 240, 240, 240, 240, 240, 240, 240, 240, + 240 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1106,32 +1112,33 @@ static const yytype_uint8 yyr2[] = 9, 8, 9, 3, 4, 10, 7, 7, 8, 8, 12, 0, 9, 8, 7, 8, 0, 9, 5, 11, 5, 9, 4, 9, 9, 1, 1, 0, 2, 6, - 6, 6, 6, 8, 14, 16, 12, 8, 8, 6, - 14, 4, 6, 6, 3, 4, 5, 3, 3, 4, - 4, 3, 7, 7, 3, 7, 3, 2, 2, 2, - 15, 2, 2, 2, 2, 6, 8, 8, 10, 1, - 2, 1, 3, 4, 1, 5, 11, 13, 0, 7, - 0, 13, 0, 15, 0, 6, 8, 8, 8, 12, - 12, 12, 14, 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, 2, - 3, 2, 3, 9, 6, 0, 3, 0, 1, 0, - 2, 0, 2, 7, 6, 8, 5, 3, 5, 6, - 6, 12, 10, 10, 10, 10, 2, 3, 6, 11, - 11, 11, 11, 1, 3, 2, 2, 2, 3, 3, + 6, 6, 6, 8, 10, 14, 16, 12, 8, 8, + 6, 14, 4, 6, 6, 3, 4, 5, 3, 3, + 4, 4, 3, 7, 7, 3, 7, 3, 2, 2, + 2, 15, 2, 2, 2, 2, 6, 8, 8, 10, + 1, 2, 1, 3, 4, 1, 5, 11, 13, 0, + 7, 0, 13, 0, 15, 0, 6, 8, 8, 8, + 12, 12, 12, 14, 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, + 2, 3, 2, 3, 9, 6, 0, 3, 0, 1, + 0, 2, 0, 2, 7, 6, 8, 5, 3, 5, + 6, 6, 12, 10, 10, 10, 10, 2, 3, 6, + 11, 11, 11, 11, 1, 3, 2, 2, 2, 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, + 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, 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, - 1, 1, 2, 3, 3, 5, 4, 2, 2, 2, - 2, 1, 1, 3, 6, 1, 1, 3, 3, 9, - 7, 1, 5, 3, 6, 1, 3, 1, 1, 3, - 6, 1, 1, 4, 6, 6, 4, 4, 4, 6 + 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, 1, 1, 2, 3, 3, 5, 4, 2, 2, + 2, 2, 1, 1, 3, 6, 1, 1, 3, 3, + 9, 7, 1, 5, 3, 6, 1, 3, 1, 1, + 3, 6, 1, 1, 4, 6, 6, 4, 4, 4, + 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1144,322 +1151,324 @@ static const yytype_uint16 yydefact[] = 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, 179, 0, - 184, 0, 0, 181, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, + 185, 0, 0, 182, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 6, 8, 9, 10, 21, 11, 12, 13, 20, 19, 14, 15, 16, 17, 18, 22, - 325, 332, 391, 57, 326, 327, 328, 0, 0, 0, + 326, 333, 392, 57, 327, 328, 329, 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, 392, 0, 0, 0, 0, 329, 330, 331, + 0, 0, 393, 0, 0, 0, 0, 330, 331, 332, 61, 60, 59, 58, 0, 0, 0, 63, 62, 0, - 0, 0, 0, 137, 0, 0, 0, 263, 0, 0, - 0, 0, 169, 0, 171, 168, 172, 173, 0, 0, + 0, 0, 0, 137, 0, 0, 0, 264, 0, 0, + 0, 0, 170, 0, 172, 169, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 175, 0, 0, 0, 0, 0, 0, 96, 109, 121, 126, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 343, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 137, 0, 256, 0, 0, 0, - 0, 332, 361, 0, 0, 0, 0, 0, 0, 371, - 372, 354, 360, 0, 355, 0, 0, 0, 0, 381, - 0, 0, 0, 0, 0, 167, 0, 0, 180, 0, - 137, 0, 137, 0, 0, 0, 0, 0, 0, 0, - 0, 336, 32, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 137, 0, 257, 0, 0, + 0, 0, 333, 362, 0, 0, 0, 0, 0, 0, + 372, 373, 355, 361, 0, 356, 0, 0, 0, 0, + 382, 0, 0, 0, 0, 0, 168, 0, 0, 181, + 0, 137, 0, 137, 0, 0, 0, 0, 0, 0, + 0, 0, 337, 32, 392, 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, 0, 332, 266, 265, 267, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, - 135, 0, 69, 164, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 113, 0, 0, 0, 0, 0, 375, 376, 0, 0, + 0, 0, 0, 0, 0, 0, 333, 267, 266, 268, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, + 0, 135, 0, 69, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 239, 239, 0, 0, + 162, 113, 0, 0, 0, 0, 0, 376, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 345, 344, 0, 0, 0, 0, 137, 137, 0, - 0, 0, 0, 0, 0, 0, 194, 0, 137, 0, - 0, 0, 0, 241, 0, 0, 0, 154, 0, 0, - 0, 257, 0, 0, 0, 0, 0, 367, 0, 368, - 369, 370, 0, 265, 362, 356, 0, 0, 0, 247, - 166, 0, 0, 0, 0, 0, 137, 0, 0, 0, - 0, 182, 157, 0, 158, 0, 388, 0, 387, 0, - 0, 0, 0, 0, 338, 0, 0, 71, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 240, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 346, 345, 0, 0, 0, 0, 137, 137, + 0, 0, 0, 0, 0, 0, 0, 195, 0, 137, + 0, 0, 0, 0, 0, 242, 0, 0, 0, 155, + 0, 0, 0, 258, 0, 0, 0, 0, 0, 368, + 0, 369, 370, 371, 0, 266, 363, 357, 0, 0, + 0, 248, 167, 0, 0, 0, 0, 0, 137, 0, + 0, 0, 0, 183, 158, 0, 159, 0, 389, 0, + 388, 0, 0, 0, 0, 0, 339, 0, 0, 71, 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, 264, - 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, - 132, 0, 0, 0, 0, 138, 64, 0, 281, 280, - 279, 278, 274, 275, 277, 276, 269, 268, 270, 271, - 272, 273, 114, 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, 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 100, 0, 0, 0, 347, 346, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 0, 151, 0, - 0, 0, 0, 373, 0, 0, 0, 0, 357, 364, - 0, 270, 363, 0, 0, 0, 0, 0, 0, 0, - 0, 183, 0, 159, 160, 0, 0, 0, 0, 0, - 0, 0, 334, 340, 0, 42, 0, 0, 0, 55, - 0, 33, 34, 35, 36, 37, 283, 304, 284, 305, - 285, 306, 286, 307, 287, 308, 288, 309, 289, 310, - 290, 311, 291, 312, 303, 324, 292, 313, 0, 0, - 294, 315, 295, 316, 296, 317, 297, 318, 298, 319, - 299, 320, 0, 0, 0, 0, 0, 0, 398, 0, - 0, 396, 397, 82, 0, 393, 0, 0, 0, 0, - 57, 0, 0, 0, 0, 0, 76, 0, 0, 0, - 0, 335, 0, 0, 0, 0, 0, 25, 23, 0, - 0, 0, 0, 377, 378, 0, 0, 0, 0, 0, + 0, 265, 0, 0, 0, 0, 57, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 138, 64, 0, + 282, 281, 280, 279, 275, 276, 278, 277, 270, 269, + 271, 272, 273, 274, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 235, 240, 238, 0, 246, 0, 0, 89, - 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 130, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 185, 0, - 0, 0, 0, 0, 242, 248, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 334, 366, 358, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, - 0, 389, 0, 0, 0, 0, 0, 0, 337, 0, - 333, 0, 0, 0, 0, 0, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 68, 0, 0, 0, 0, 0, 70, 72, 74, 0, - 0, 385, 0, 80, 0, 0, 0, 0, 282, 24, - 0, 0, 0, 0, 0, 93, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, - 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, - 0, 0, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 228, 0, 0, 229, 0, 231, - 0, 195, 224, 0, 0, 0, 149, 0, 0, 249, - 0, 153, 152, 258, 0, 30, 31, 0, 365, 359, - 0, 0, 0, 382, 0, 0, 0, 175, 0, 0, - 0, 0, 0, 0, 0, 163, 339, 162, 0, 0, - 0, 0, 352, 0, 293, 314, 300, 321, 301, 322, - 302, 323, 399, 395, 342, 394, 0, 57, 0, 0, - 0, 0, 65, 0, 0, 0, 383, 0, 0, 0, - 0, 26, 27, 0, 0, 95, 0, 0, 0, 0, - 0, 99, 0, 0, 116, 117, 0, 0, 101, 124, - 0, 0, 0, 91, 0, 243, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, - 137, 0, 205, 0, 207, 0, 209, 0, 354, 0, - 0, 230, 232, 0, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 374, 104, 105, 0, 0, 0, - 0, 83, 0, 0, 0, 0, 0, 0, 341, 0, - 38, 0, 0, 0, 0, 0, 40, 0, 0, 0, - 77, 0, 0, 78, 0, 386, 139, 140, 141, 142, - 0, 0, 0, 94, 102, 103, 107, 0, 0, 118, - 0, 0, 245, 111, 0, 0, 236, 123, 0, 0, - 0, 0, 108, 0, 119, 125, 0, 0, 0, 0, - 351, 0, 350, 0, 0, 196, 0, 0, 197, 0, - 0, 198, 0, 0, 0, 0, 0, 0, 0, 148, - 0, 0, 147, 0, 0, 143, 0, 0, 0, 0, - 380, 0, 177, 176, 0, 0, 0, 390, 0, 0, - 0, 0, 43, 0, 0, 0, 353, 0, 0, 0, - 66, 73, 75, 0, 81, 0, 28, 0, 0, 0, - 0, 0, 0, 0, 112, 97, 110, 122, 127, 0, - 0, 87, 88, 137, 0, 131, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 0, 137, 0, 0, 0, - 0, 134, 133, 0, 0, 0, 0, 84, 85, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 41, 56, - 0, 384, 0, 252, 253, 254, 255, 115, 0, 0, - 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 234, 0, 0, 0, 190, 0, 0, - 0, 0, 0, 379, 178, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 79, 0, 0, 0, 0, 129, - 0, 211, 0, 0, 213, 0, 0, 215, 0, 0, - 0, 226, 0, 186, 0, 137, 0, 0, 0, 106, - 86, 259, 260, 261, 262, 0, 47, 0, 53, 0, - 0, 92, 120, 251, 348, 199, 0, 0, 206, 200, - 0, 0, 208, 201, 0, 0, 210, 0, 0, 0, - 192, 0, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 217, 0, 219, 0, 221, 227, 233, 191, 187, - 0, 0, 0, 0, 44, 0, 51, 0, 0, 0, - 202, 0, 0, 203, 0, 0, 204, 0, 0, 150, - 0, 144, 0, 45, 0, 0, 170, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 212, - 0, 214, 0, 216, 0, 145, 46, 48, 0, 49, - 0, 0, 0, 0, 0, 0, 54, 218, 220, 222, - 50, 52 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 100, 0, 0, 0, 348, 347, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 0, 152, 0, 0, 0, 0, 374, 0, 0, 0, + 0, 358, 365, 0, 271, 364, 0, 0, 0, 0, + 0, 0, 0, 0, 184, 0, 160, 161, 0, 0, + 0, 0, 0, 0, 0, 335, 341, 0, 42, 0, + 0, 0, 55, 0, 33, 34, 35, 36, 37, 284, + 305, 285, 306, 286, 307, 287, 308, 288, 309, 289, + 310, 290, 311, 291, 312, 292, 313, 304, 325, 293, + 314, 0, 0, 295, 316, 296, 317, 297, 318, 298, + 319, 299, 320, 300, 321, 0, 0, 0, 0, 0, + 0, 399, 0, 0, 397, 398, 82, 0, 394, 0, + 0, 0, 0, 57, 0, 0, 0, 0, 0, 76, + 0, 0, 0, 0, 336, 0, 0, 0, 0, 0, + 25, 23, 0, 0, 0, 0, 378, 379, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 236, 241, 239, 0, 247, + 0, 0, 89, 90, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 130, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 186, 0, 0, 0, 0, 0, 0, 243, 249, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, + 367, 359, 0, 0, 0, 0, 0, 0, 0, 157, + 0, 0, 0, 0, 0, 390, 0, 0, 0, 0, + 0, 0, 338, 0, 334, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 68, 0, 0, 0, 0, 0, + 70, 72, 74, 0, 0, 386, 0, 80, 0, 0, + 0, 0, 283, 24, 0, 0, 0, 0, 0, 93, + 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 0, 0, 245, 0, + 0, 0, 0, 0, 0, 0, 0, 251, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, + 0, 230, 0, 232, 0, 196, 225, 0, 0, 0, + 150, 0, 0, 0, 250, 0, 154, 153, 259, 0, + 30, 31, 0, 366, 360, 0, 0, 0, 383, 0, + 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, + 164, 340, 163, 0, 0, 0, 0, 353, 0, 294, + 315, 301, 322, 302, 323, 303, 324, 400, 396, 343, + 395, 0, 57, 0, 0, 0, 0, 65, 0, 0, + 0, 384, 0, 0, 0, 0, 26, 27, 0, 0, + 95, 0, 0, 0, 0, 0, 99, 0, 0, 116, + 117, 0, 0, 101, 124, 0, 0, 0, 91, 0, + 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 137, 0, 206, 0, 208, + 0, 210, 0, 355, 0, 0, 231, 233, 0, 0, + 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 375, 104, 105, 0, 0, 0, 0, 83, 0, 0, + 0, 0, 0, 0, 342, 0, 38, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 77, 0, 0, 78, + 0, 387, 139, 140, 141, 142, 0, 0, 0, 94, + 102, 103, 107, 0, 0, 118, 0, 0, 246, 111, + 0, 0, 237, 123, 0, 0, 0, 0, 108, 0, + 119, 125, 0, 0, 0, 0, 352, 0, 351, 0, + 0, 197, 0, 0, 198, 0, 0, 199, 0, 0, + 0, 0, 0, 0, 0, 149, 0, 0, 148, 0, + 0, 143, 0, 0, 0, 0, 0, 381, 0, 178, + 177, 0, 0, 0, 391, 0, 0, 0, 0, 43, + 0, 0, 0, 354, 0, 0, 0, 66, 73, 75, + 0, 81, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 112, 97, 110, 122, 127, 0, 0, 87, 88, + 137, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 226, 0, 0, 137, 0, 0, 0, 0, 0, 134, + 133, 0, 0, 0, 0, 84, 85, 0, 0, 0, + 0, 0, 39, 0, 0, 0, 41, 56, 0, 385, + 0, 253, 254, 255, 256, 115, 0, 0, 0, 0, + 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 191, 0, 0, 0, 0, + 144, 0, 380, 179, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 79, 0, 0, 0, 0, 129, 0, + 212, 0, 0, 214, 0, 0, 216, 0, 0, 0, + 227, 0, 187, 0, 137, 0, 0, 0, 106, 86, + 260, 261, 262, 263, 0, 47, 0, 53, 0, 0, + 92, 120, 252, 349, 200, 0, 0, 207, 201, 0, + 0, 209, 202, 0, 0, 211, 0, 0, 0, 193, + 0, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 218, 0, 220, 0, 222, 228, 234, 192, 188, 0, + 0, 0, 0, 44, 0, 51, 0, 0, 0, 203, + 0, 0, 204, 0, 0, 205, 0, 0, 151, 0, + 145, 0, 45, 0, 0, 171, 0, 0, 0, 0, + 0, 0, 194, 0, 0, 0, 0, 0, 213, 0, + 215, 0, 217, 0, 146, 46, 48, 0, 49, 0, + 0, 0, 0, 0, 0, 54, 219, 221, 223, 50, + 52 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 72, 739, 73, 74, 466, 1079, 1085, - 661, 841, 1233, 1382, 662, 1346, 1408, 663, 1384, 664, - 665, 845, 144, 261, 75, 768, 1115, 1008, 535, 379, - 380, 381, 382, 229, 329, 330, 78, 79, 80, 81, - 82, 83, 230, 799, 1304, 1360, 604, 1136, 1139, 1142, - 1326, 1330, 1334, 1371, 1374, 1377, 795, 796, 903, 765, - 578, 612, 85, 86, 87, 88, 89, 231, 147, 392, - 198, 971, 232, 233, 234, 436, 241, 730, 872, 457, - 458 + -1, 2, 3, 72, 742, 73, 74, 468, 1085, 1091, + 664, 845, 1241, 1391, 665, 1355, 1417, 666, 1393, 667, + 668, 849, 144, 262, 75, 771, 1121, 1013, 537, 380, + 381, 382, 383, 230, 330, 331, 78, 79, 80, 81, + 82, 83, 231, 802, 1313, 1369, 606, 1142, 1145, 1148, + 1335, 1339, 1343, 1380, 1383, 1386, 798, 799, 907, 768, + 580, 615, 85, 86, 87, 88, 89, 232, 147, 393, + 198, 976, 977, 234, 235, 438, 242, 733, 876, 459, + 460 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1171 +#define YYPACT_NINF -1019 static const yytype_int16 yypact[] = { - 3557, 30, 77, 3671, -1171, -1171, 1807, 79, -25, -51, - 18, 64, 115, 133, 139, -90, 2, 48, 165, 84, - 158, -56, 164, 169, 149, 156, 269, 350, 306, 310, - -5, 320, 508, 559, 60, 272, 340, 277, 163, 163, - 281, 323, 34, 372, 376, 398, 12, 40, 414, 453, - 457, 1961, 470, 333, 341, 352, 13, 27, -1171, 362, - -1171, 472, 364, -1171, 537, 546, 0, 17, 425, 436, - 442, 450, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, 19, 447, 78, -1171, -1171, -1171, 33, 100, 155, - 199, 220, 411, 478, 540, 556, 598, 604, 605, 611, - 614, 615, 639, 657, 662, 689, 690, 705, 455, 459, - 466, 488, -1171, 653, 516, 517, 522, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, 3368, 3368, 3368, -1171, -1171, 3368, - 2924, 21, 677, 237, 3368, 679, 975, -1171, 700, 703, - 3368, 685, -1171, 3368, -1171, -1171, -1171, -1171, 3368, 3293, - 3368, 3368, 564, 3368, 3293, 3368, 3368, 568, 3293, 3368, - 3368, 2257, 571, 539, -1171, 572, 575, 1961, 1961, 1961, - 576, -1171, -1171, -1171, -1171, 582, 608, 644, 2257, 3368, - 792, 2257, 163, 163, 163, 3368, 3368, 218, -1171, 271, - 163, 641, 672, 686, 3145, 296, -70, 694, 708, 1961, - 2257, 711, 28, 682, -1171, 860, -1171, 709, 718, 728, - 729, -57, -1171, 22, 888, 894, 895, 2405, 1637, -1171, - -1171, 394, -1171, 897, -1171, 902, 3368, 3368, 3368, 760, - 3368, 761, 819, 3368, 3368, -1171, 3368, 917, -1171, 926, - -1171, 927, -1171, 349, 349, 349, 349, 796, 3368, 948, - 812, -1171, -1171, -1171, 959, 3368, 3368, 3368, 3368, 3368, - 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, - 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, - 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, - 3368, 3368, 3368, 3368, 3368, 3368, 3368, 349, 349, 349, - 349, 3368, 349, 349, 349, -10, 835, 835, 835, 5908, - 11, 3293, 5149, 73, 831, 985, 858, 857, -1171, 864, - 3479, 1270, -1171, -1171, 3368, 3368, 3368, 3368, 3368, 3368, - 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, -1171, - -1171, 1419, 98, 4447, 5929, 3293, 1665, -1171, 632, 5950, - 5971, 3368, 5992, 715, 6013, 6034, 3368, 720, 6055, 6076, - 1025, 3368, 3368, 3368, 3368, 1029, 1038, 1038, 3368, 898, - 899, 900, 903, 3368, 3368, 3368, 1046, 4367, 906, 1049, - 74, -1171, -1171, 4473, 4499, 163, 163, 237, 237, 253, - 3368, 3368, 3368, 3145, 3145, 3368, 3479, 275, -1171, 3368, - 3368, 3368, 3368, 1051, 1052, 3368, 1054, -1171, 3368, 3368, - 797, -1171, 3293, 3293, 3368, 3368, 3078, -1171, 3368, -1171, - -1171, -1171, 3293, 835, -1171, -1171, 735, 3368, 2553, -1171, - -1171, 6097, 6118, 6139, 963, 4525, -1171, 911, 2991, 6160, - 5172, -1171, -1171, 1685, -1171, 1840, 753, 918, -1171, 919, - 921, 922, 3368, 5195, 358, 3368, 10, -1171, 6181, 5218, - 6202, 5241, 6223, 5264, 6244, 5287, 6265, 5310, 6286, 5333, - 6307, 5356, 6328, 5379, 6349, 5402, 6370, 5425, 6391, 5448, - 4551, 4577, 6412, 5471, 6433, 5494, 6454, 5517, 6475, 5540, - 6496, 5563, 6517, 5586, 4603, 4629, 4655, 4681, 4707, 4733, - 273, 923, 924, 929, 1454, 925, 931, 928, 3368, -1171, - 2257, 2257, 752, 65, 78, 3368, 1067, 1073, 15, 930, - -1171, -38, 167, -37, 90, -1171, -1171, 3071, 803, 997, - 1083, 1083, 241, 241, 241, 241, 545, 545, 835, 835, - 835, 835, -1171, 6, 3293, 3368, 1078, 3293, 3293, 982, - 1082, 1084, 6538, 1085, 989, 1089, 1090, 6559, 993, 1092, - 1094, 3368, 6580, 3556, 6601, 6622, 3368, 2257, 1086, 1113, - 6643, 3435, 3435, 3435, 3435, 6664, 6685, 6706, 2257, 3293, - 968, -1171, 163, 3368, 3368, -1171, -1171, 965, 967, 3368, - 4759, 4785, 4811, 4421, 392, 163, 2000, 6727, 3723, 6748, - 6769, 3368, 1120, 3368, 6790, -1171, 5609, 5632, -1171, 759, - 773, 5655, 5678, -1171, 3293, 5701, 3751, 774, -1171, 3111, - 3293, 835, -1171, 1121, 1134, 1136, 974, 3368, 2148, 3368, - 3368, -1171, 8, -1171, -1171, 3368, 1142, 1140, 1144, 1147, - 1149, 5724, 70, -1171, 3779, -1171, 1000, 1008, 1003, -1171, - 1154, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, 3368, 3368, - -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, 3368, 3368, 3368, 3368, 3368, 3368, -1171, 3293, - 349, -1171, -1171, -1171, 3368, -1171, 349, 1155, 1156, 1011, - -1171, 29, 3368, 1158, 1159, 1483, -1171, 1161, 1015, 13, - 1164, -1171, 3293, 3293, 3293, 3293, 3368, -1171, 1035, 349, - 300, 4837, 163, 1665, -1171, 1122, 2257, 2257, 1166, 2257, - 905, 2257, 2257, 1167, 1123, 2257, 2257, 1630, 1169, 1170, - 1172, 1173, 3286, -1171, -1171, 1177, -1171, 1178, 1039, 7021, - -1171, 1042, 1043, 1045, 1181, 1189, 1190, 1192, 806, 1195, - 303, 4863, 4889, -1171, -1171, 3807, 163, 163, 163, 1197, - 1199, 1047, 1058, 35, 37, -31, -1171, 314, -1171, 392, - 1201, 1203, 1204, 1205, 7021, -1171, 1724, 1059, 1208, 1210, - 1221, 1157, 1222, 1226, 809, 57, -1171, -1171, 3368, 814, - 2257, 2257, 2257, 1229, 4915, -1171, 3139, 684, 1230, 1234, - 5747, -1171, 1087, 1088, 1091, 1096, 1233, 1236, -1171, 1235, - -1171, 1099, 3368, 3368, 2257, 1098, -1171, 6811, 5770, 6832, - 5793, 6853, 5816, 6874, 5839, 318, 1095, 6895, 1100, -1171, - -1171, 128, 198, 1105, 1252, 2507, -1171, -1171, -1171, 13, - 3368, -1171, 817, -1171, 818, 822, 823, 832, 7021, -1171, - 1254, 14, 3368, 46, 1106, 1206, 1206, 2257, 1258, 1109, - 1110, 1262, 1264, 2257, 1115, 1266, 1267, -1171, 1272, 2257, - 2257, 2257, 1271, 1274, -1171, 2257, 1275, 1276, 1277, 1278, - 2257, 2257, 2257, -1171, 1280, 560, 3368, 3368, 3368, 1125, - -84, -79, 207, 1127, -1171, 2257, 3368, -1171, 1282, -1171, - 1284, -1171, -1171, 3145, 356, 2109, -1171, 1137, 2701, -1171, - 3293, -1171, -1171, -1171, 1138, -1171, -1171, 1143, 7021, -1171, - 1291, 1292, 1198, -1171, 3368, 3368, 3368, -1171, 1295, 1296, - 1151, 2257, 2257, 2257, 2257, -1171, 358, -1171, 3368, 4941, - 4967, 833, -1171, 3368, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, -1171, -1171, 2257, 78, 3368, 1299, - 1302, 15, -1171, 1301, 5862, 13, -1171, 1303, 1304, 1306, - 1307, -1171, -1171, 349, 4993, -1171, 3368, 163, 1309, 1310, - 1311, -1171, 3368, 3368, -1171, -1171, 1312, 3368, -1171, -1171, - 1314, 1315, 1317, 1215, 3368, -1171, 1318, 2257, 2257, 2257, - 2257, 1319, 987, 1320, 3368, -1171, 3435, 3835, 6916, 3363, - 237, 163, 1321, 163, 1323, 163, 1324, 3368, 602, 1153, - 6937, -1171, -1171, 3863, 347, -1171, 1325, 1425, 1326, 163, - 1425, 1327, 840, 3368, -1171, -1171, -1171, 2257, 3667, 638, - 6958, -1171, 2997, 1333, 1183, 1184, 1186, 1187, -1171, 390, - 7021, 3368, 3368, 2257, 1188, 841, 7021, 1337, 1342, 2546, - -1171, 1343, 1346, -1171, 1196, -1171, -1171, -1171, -1171, -1171, - 1347, 3368, 3891, 85, -1171, -1171, -1171, 3919, 3947, -1171, - 3975, 1349, -1171, -1171, 1308, 1351, 7021, -1171, 1352, 1355, - 1356, 1357, -1171, 1209, -1171, -1171, 4394, 2655, 1358, 1211, - -1171, 3368, -1171, 1212, 359, -1171, 1216, 368, -1171, 1218, - 399, -1171, 1219, 5885, 1360, 2257, 1348, 1220, 3368, -1171, - 2849, 429, -1171, 456, 458, -1171, 1362, 4003, 1279, 3368, - -1171, 3368, -1171, -1171, 3293, 2694, 1365, -1171, 2257, 2257, - 2257, 2257, -1171, 3368, 5019, 5045, -1171, 2257, 3368, 1371, - -1171, -1171, -1171, 13, -1171, 1281, -1171, 5071, 1372, 1374, - 1375, 1376, 1377, 1231, -1171, -1171, -1171, -1171, -1171, 2257, - 3293, -1171, -1171, 237, 3695, -1171, 3145, 392, 3145, 392, - 3145, 392, 1379, -1171, 844, 2257, -1171, 4031, 163, 3293, - 163, -1171, -1171, 3368, 4059, 4087, 847, -1171, -1171, 1237, - 1238, 1257, 1259, 1232, 7021, 3368, 3368, 848, 7021, -1171, - 1384, -1171, 3368, -1171, -1171, -1171, -1171, -1171, 3368, 853, - 859, 1260, 3368, -1171, 4115, 462, 407, 4143, 481, 432, - 4171, 501, 589, -1171, 2257, 1385, 1354, 2296, 1263, 503, - 862, 513, 2842, -1171, -1171, 1386, 1387, 1409, 1414, 1417, - 3368, 6979, 5097, 24, -1171, 5123, 4199, 1418, 1420, -1171, - 4227, 1421, 3368, 1424, 1426, 3368, 1427, 1431, 3368, 1432, - 1313, -1171, 3368, -1171, 392, -1171, 3293, 1455, 2849, -1171, - -1171, -1171, -1171, -1171, -1171, 865, -1171, 3368, -1171, 2257, - 3368, -1171, -1171, -1171, -1171, -1171, 1328, 4255, -1171, -1171, - 1329, 4283, -1171, -1171, 1330, 4311, -1171, 1460, 2919, 591, - 2444, 869, -1171, 515, 870, 1461, 1331, 7000, 874, 4339, - 392, 1462, 392, 1463, 392, 1465, -1171, -1171, -1171, -1171, - 392, 1467, 3293, 1468, -1171, 349, -1171, 1332, 1470, 626, - -1171, 1334, 634, -1171, 1335, 714, -1171, 1336, 716, -1171, - 878, -1171, 882, -1171, 1338, 2257, -1171, 1471, 392, 1475, - 392, 1476, 392, -1171, 1477, 349, 1489, 349, 885, -1171, - 800, -1171, 813, -1171, 837, -1171, -1171, -1171, 889, -1171, - 1495, 1497, 1498, 1500, 349, 1501, -1171, -1171, -1171, -1171, - -1171, -1171 + 3473, 41, 16, 3588, -1019, -1019, 1860, 38, 51, -37, + 4, 139, 181, 187, 202, -85, 66, 70, -41, 80, + 84, -42, 94, 100, 199, 258, 268, 298, 275, 302, + 252, 297, 196, 603, 272, 209, 331, 235, -98, -98, + 236, 61, 309, 360, 374, 376, 10, 65, 381, 455, + 459, 2015, 469, 282, 332, 361, 13, 28, -1019, 365, + -1019, 482, 358, -1019, 512, 515, 22, 25, 378, 384, + 399, 402, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, 21, 398, 352, -1019, -1019, -1019, -121, -86, -25, + 90, 251, 299, 300, 373, 421, 451, 473, 584, 607, + 620, 630, 649, 650, 657, 675, 678, 679, 412, 415, + 425, 432, -1019, 559, 433, 436, 446, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, 3283, 3283, 3283, -1019, -1019, 3283, + 64, 19, 598, 383, 3283, 606, 717, -1019, 610, 616, + 3283, 621, -1019, 3283, -1019, -1019, -1019, -1019, 3283, 3207, + 3283, 3283, 497, 3283, 3207, 3283, 3283, 507, 3207, 3283, + 3283, 2313, 514, 522, -1019, 534, 537, 2015, 2015, 2015, + 538, -1019, -1019, -1019, -1019, 541, 542, 545, 2313, 3283, + 694, 2313, -98, -98, -98, 3283, 3283, -87, -1019, -9, + -98, 557, 561, 567, 2985, 56, -51, 560, 563, 585, + 2015, 2313, 594, 40, 599, -1019, 742, -1019, 619, 627, + 658, 667, 790, -1019, 34, 768, 819, 829, 2462, 1704, + -1019, -1019, 1252, -1019, 832, -1019, 833, 3283, 3283, 3283, + 681, 3283, 690, 756, 3283, 3283, -1019, 3283, 857, -1019, + 875, -1019, 885, -1019, 703, 703, 703, 703, 730, 3283, + 890, 738, -1019, -1019, -1019, 893, 3283, 3283, 3283, 3283, + 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, + 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, + 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, + 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 703, 703, + 703, 703, 3283, 703, 703, 703, 523, 754, 754, 754, + 5908, 6, 3207, 5149, 409, 733, 899, 757, 753, -1019, + 755, 3669, 858, -1019, -1019, 3283, 3283, 3283, 3283, 3283, + 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, + -1019, -1019, 1136, 0, 4447, 5929, 3207, 3012, -1019, 596, + 5950, 5971, 3283, 5992, 687, 6013, 6034, 3283, 718, 6055, + 6076, 914, 3283, 3283, 3283, 3283, 915, 922, 922, 3283, + 795, 801, 802, 823, 3283, 3283, 3283, 953, 4367, 827, + 977, 59, -1019, -1019, 4473, 4499, -98, -98, 383, 383, + 269, 3283, 3283, 3283, 2985, 2985, 3283, 3669, 334, -1019, + 3283, 3283, 3283, 3283, 3283, 996, 997, 3283, 978, -1019, + 3283, 3283, 713, -1019, 3207, 3207, 3283, 3283, 1783, -1019, + 3283, -1019, -1019, -1019, 3207, 754, -1019, -1019, 721, 3283, + 2611, -1019, -1019, 6097, 6118, 6139, 906, 4525, -1019, 831, + 3052, 6160, 5172, -1019, -1019, 1387, -1019, 1587, 746, 862, + -1019, 863, 867, 886, 3283, 5195, -71, 3283, 7, -1019, + 6181, 5218, 6202, 5241, 6223, 5264, 6244, 5287, 6265, 5310, + 6286, 5333, 6307, 5356, 6328, 5379, 6349, 5402, 6370, 5425, + 6391, 5448, 4551, 4577, 6412, 5471, 6433, 5494, 6454, 5517, + 6475, 5540, 6496, 5563, 6517, 5586, 4603, 4629, 4655, 4681, + 4707, 4733, 101, 888, 901, 910, 1698, 891, 917, 913, + 3283, -1019, 2313, 2313, 761, 217, 352, 3283, 1025, 1053, + 15, 925, -1019, -7, -40, -33, 79, -1019, -1019, 3201, + 1284, 2364, 1090, 1090, 343, 343, 343, 343, 573, 573, + 754, 754, 754, 754, -1019, 9, 3207, 3283, 1079, 3207, + 3207, 984, 1093, 1097, 6538, 1098, 1003, 1103, 1106, 6559, + 1010, 1110, 1121, 3283, 6580, 3472, 6601, 6622, 3283, 2313, + 1128, 1134, 6643, 3350, 3350, 3350, 3350, 6664, 6685, 6706, + 2313, 3207, 987, -1019, -98, 3283, 3283, -1019, -1019, 989, + 991, 3283, 4759, 4785, 4811, 4421, 441, -98, 1894, 6727, + 3723, 6748, 6769, 6790, 3283, 1139, 3283, 6811, -1019, 5609, + 5632, -1019, 762, 774, 5655, 5678, -1019, 3207, 5701, 3751, + 777, -1019, 3276, 3207, 754, -1019, 1147, 1148, 1149, 1004, + 3283, 2054, 3283, 3283, -1019, 17, -1019, -1019, 3283, 1153, + 1152, 1154, 1156, 1157, 5724, 602, -1019, 3779, -1019, 1016, + 1018, 1012, -1019, 1165, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, 3283, 3283, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, -1019, 3283, 3283, 3283, 3283, 3283, + 3283, -1019, 3207, 703, -1019, -1019, -1019, 3283, -1019, 703, + 1166, 1167, 1023, -1019, 36, 3283, 1171, 1172, 1777, -1019, + 1173, 1030, 13, 1175, -1019, 3207, 3207, 3207, 3207, 3283, + -1019, 1046, 703, 197, 4837, -98, 3012, -1019, 1131, 2313, + 2313, 1178, 2313, 881, 2313, 2313, 1179, 1133, 2313, 2313, + 2417, 1184, 1186, 1189, 1190, 3609, -1019, -1019, 1194, -1019, + 1196, 1054, 7042, -1019, 1055, 1057, 1059, 1197, 1205, 1207, + 1209, 785, 1212, 338, 4863, 4889, -1019, -1019, 3807, -98, + -98, -98, 1213, 1215, 1061, 1069, 27, 35, 169, -1019, + 377, -1019, 441, 1216, 1218, 1228, 1229, 1233, 7042, -1019, + 2455, 1065, 1236, 1237, 1239, 1193, 1241, 1242, 792, -126, + -1019, -1019, 3283, 800, 2313, 2313, 2313, 1245, 4915, -1019, + 3310, 654, 1247, 1248, 5747, -1019, 1096, 1099, 1100, 1102, + 1249, 1257, -1019, 1256, -1019, 1113, 3283, 3283, 2313, 1124, + -1019, 6832, 5770, 6853, 5793, 6874, 5816, 6895, 5839, 226, + 1135, 6916, 1138, -1019, -1019, 98, 416, 1130, 1275, 2565, + -1019, -1019, -1019, 13, 3283, -1019, 803, -1019, 810, 813, + 818, 821, 7042, -1019, 1281, 12, 3283, 1, 1137, 1230, + 1230, 2313, 1286, 1140, 1142, 1287, 1290, 2313, 1143, 1296, + 1297, -1019, 1285, 2313, 2313, 2313, 1300, 1301, -1019, 2313, + 1299, 1303, 1305, 1306, 2313, 2313, 2313, -1019, 1307, 356, + 3283, 3283, 3283, 1151, -21, 54, 168, 1163, -1019, 2313, + 3283, -1019, 1310, -1019, 1311, -1019, -1019, 2985, 502, 2164, + -1019, 1161, 2760, 1162, -1019, 3207, -1019, -1019, -1019, 1164, + -1019, -1019, 1174, 7042, -1019, 1319, 1322, 1227, -1019, 3283, + 3283, 3283, -1019, 1324, 1325, 1180, 2313, 2313, 2313, 2313, + -1019, -71, -1019, 3283, 4941, 4967, 852, -1019, 3283, -1019, + -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, 2313, 352, 3283, 1327, 1331, 15, -1019, 1330, 5862, + 13, -1019, 1333, 1336, 1340, 1341, -1019, -1019, 703, 4993, + -1019, 3283, -98, 1342, 1344, 1345, -1019, 3283, 3283, -1019, + -1019, 1346, 3283, -1019, -1019, 1348, 1351, 1352, 1253, 3283, + -1019, 1354, 2313, 2313, 2313, 2313, 1356, 1011, 1357, 3283, + -1019, 3350, 3835, 6937, 3639, 383, -98, 1358, -98, 1360, + -98, 1361, 3283, 304, 1214, 6958, -1019, -1019, 3863, 418, + -1019, 1362, 1548, 1365, -98, 1548, 1366, 2313, 866, 3283, + -1019, -1019, -1019, 2313, 3667, 364, 6979, -1019, 3058, 1369, + 1220, 1221, 1224, 1225, -1019, 261, 7042, 3283, 3283, 2313, + 1217, 870, 7042, 1392, 1396, 2604, -1019, 1397, 1399, -1019, + 1258, -1019, -1019, -1019, -1019, -1019, 1404, 3283, 3891, 234, + -1019, -1019, -1019, 3919, 3947, -1019, 3975, 1398, -1019, -1019, + 1363, 1405, 7042, -1019, 1407, 1409, 1423, 1424, -1019, 1289, + -1019, -1019, 4394, 2714, 1426, 1293, -1019, 3283, -1019, 1298, + 420, -1019, 1302, 428, -1019, 1304, 453, -1019, 1308, 5885, + 1438, 2313, 1440, 1309, 3283, -1019, 2909, 464, -1019, 489, + 492, -1019, 871, 1448, 4003, 1359, 3283, -1019, 3283, -1019, + -1019, 3207, 2753, 1449, -1019, 2313, 2313, 2313, 2313, -1019, + 3283, 5019, 5045, -1019, 2313, 3283, 1452, -1019, -1019, -1019, + 13, -1019, 1364, -1019, 5071, 1456, 1457, 1458, 1461, 1464, + 1314, -1019, -1019, -1019, -1019, -1019, 2313, 3207, -1019, -1019, + 383, 3695, -1019, 2985, 441, 2985, 441, 2985, 441, 1470, + -1019, 876, 2313, -1019, 4031, -98, 3207, -98, 1471, -1019, + -1019, 3283, 4059, 4087, 880, -1019, -1019, 1320, 1321, 1323, + 1332, 1326, 7042, 3283, 3283, 883, 7042, -1019, 1474, -1019, + 3283, -1019, -1019, -1019, -1019, -1019, 3283, 884, 887, 1334, + 3283, -1019, 4115, 525, 747, 4143, 527, 799, 4171, 549, + 807, -1019, 2313, 1476, 1420, 2203, 1337, 553, 902, 556, + -1019, 2902, -1019, -1019, 1489, 1490, 1491, 1492, 1493, 3283, + 7000, 5097, 20, -1019, 5123, 4199, 1494, 1496, -1019, 4227, + 1498, 3283, 1500, 1502, 3283, 1503, 1504, 3283, 1505, 1367, + -1019, 3283, -1019, 441, -1019, 3207, 1506, 2909, -1019, -1019, + -1019, -1019, -1019, -1019, 931, -1019, 3283, -1019, 2313, 3283, + -1019, -1019, -1019, -1019, -1019, 1370, 4255, -1019, -1019, 1371, + 4283, -1019, -1019, 1373, 4311, -1019, 1508, 2979, 822, 2352, + 935, -1019, 587, 964, 1509, 1374, 7021, 968, 4339, 441, + 1510, 441, 1511, 441, 1512, -1019, -1019, -1019, -1019, 441, + 1513, 3207, 1515, -1019, 703, -1019, 1375, 1516, 896, -1019, + 1376, 985, -1019, 1377, 994, -1019, 1378, 1009, -1019, 969, + -1019, 980, -1019, 1379, 2313, -1019, 1517, 441, 1518, 441, + 1520, 441, -1019, 1531, 703, 1532, 703, 981, -1019, 1017, + -1019, 1029, -1019, 1044, -1019, -1019, -1019, 988, -1019, 1534, + 1535, 1536, 1537, 703, 1538, -1019, -1019, -1019, -1019, -1019, + -1019 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1171, -1171, -1171, -1171, 550, -1171, -1171, -1171, -1171, 229, - -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -315, 20, -1171, -11, -1171, 624, 1508, -1171, - -1171, -1171, -1171, 3, -396, -201, -1171, -1171, -1171, -1171, - -1171, -1171, 1509, -1171, -1171, -1171, -1171, -1171, -1171, -1171, - -1171, -1171, -1171, -1171, -1171, -1171, -760, -753, -1171, -1171, - 1139, -1171, -1171, -1171, -1171, -1171, -1171, -6, -1171, 43, - -1171, -1170, 435, 49, 329, -71, -694, 523, -1171, -245, - -2 + -1019, -1019, -1019, -1019, 661, -1019, -1019, -1019, -1019, 259, + -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -318, -1, -1019, -201, -1019, 659, 1544, -1019, + -1019, -1019, -1019, 31, -390, -203, -1019, -1019, -1019, -1019, + -1019, -1019, 1547, -1019, -1019, -1019, -1019, -1019, -1019, -1019, + -1019, -1019, -1019, -1019, -1019, -1019, -555, -735, -1019, -1019, + 1176, -1019, -1019, -1019, -1019, -1019, -1019, -6, -1019, 276, + -1019, -1018, 440, 141, 313, 190, -697, 564, -1019, -253, + 14 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1469,998 +1478,992 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 146, 597, 598, 406, 148, 249, 77, 1237, 525, 459, - 460, 461, 737, 420, 655, 828, 212, 239, 520, 728, - 1002, 167, 251, 257, 152, 323, 145, 427, 150, 1249, - 1318, 242, 416, 862, 417, 871, 4, 789, 206, 934, - 167, 927, 932, 929, 215, 177, 216, 790, 178, 453, - 179, 455, 1005, 791, 792, 395, 396, 793, 794, 158, - 395, 396, 510, 511, 512, 513, 159, 515, 516, 517, - 154, 1041, 720, 1042, 456, 263, 1043, 5, 1044, 409, - 524, 197, 199, 263, 205, 207, 410, 217, 358, 137, - 138, 264, 149, 363, 426, 208, 259, 367, 151, 143, - 168, 260, 656, 657, 658, 659, 118, 119, 120, 121, - 188, 158, 122, 189, 118, 119, 120, 121, 732, 734, - 122, 155, 213, 324, 325, 928, 931, 930, 316, 317, - 318, 863, 864, 319, 322, 720, 137, 138, 331, 156, - 521, 518, 738, 259, 351, 157, 328, 353, 260, 1348, - 738, 160, 354, 356, 359, 360, 250, 362, 356, 364, - 365, 829, 356, 368, 369, 137, 138, 660, 214, 240, - 258, 729, 259, 252, 153, 993, 243, 260, 428, 418, - 1319, 932, 265, 387, 266, 395, 396, 125, 126, 393, - 394, 130, 131, 132, 133, 125, 126, 161, 394, 130, - 131, 132, 133, 137, 138, 987, 171, 606, 722, 172, - 837, 137, 138, 395, 396, 1398, 137, 138, 721, 137, - 138, 433, 356, 837, 395, 396, 375, 376, 377, 592, - 441, 442, 443, 165, 445, 390, 391, 448, 449, 170, - 450, 327, 162, 399, 162, 638, 735, 407, 553, 267, - 522, 268, 463, 554, 130, 131, 132, 133, 413, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 1095, 193, 194, 269, 514, 270, 166, 37, 38, - 39, 40, 195, 169, 163, 356, 163, 45, 170, 196, - 48, 164, 173, 733, 130, 131, 132, 133, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 526, 137, 138, 395, 396, 271, 433, - 272, 619, 620, 456, 263, 562, 174, 395, 396, 175, - 567, 627, 1045, 176, 1046, 572, 573, 574, 575, 273, - 201, 274, 580, 202, 397, 180, 203, 585, 586, 587, - 343, 344, 345, 346, 347, 118, 119, 120, 121, 348, - 191, 122, 395, 396, 600, 601, 602, 316, 317, 603, - 328, 328, 437, 607, 608, 609, 610, 839, 599, 614, - 395, 396, 616, 617, 395, 396, 356, 356, 621, 622, - 625, 190, 626, 708, 789, 209, 356, 398, 709, 210, - 605, 629, 631, 192, 790, 395, 396, 200, 595, 596, - 791, 792, 395, 396, 793, 794, 391, 1256, 211, 1259, - 881, 1262, 408, 395, 396, 558, 651, 219, 916, 654, - 789, 220, 193, 194, 218, 856, 125, 126, 982, 933, - 790, 858, 195, 558, 235, 789, 791, 792, 245, 204, - 793, 794, 236, 740, 653, 790, 395, 396, 357, 1240, - 237, 791, 792, 357, 880, 793, 794, 357, 395, 396, - 789, 238, 1148, 932, 137, 138, 932, 395, 396, 932, - 790, 244, 625, 1055, 1206, 246, 791, 792, 778, 725, - 793, 794, 724, 1208, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 438, 346, 347, 395, 396, - 1172, 247, 348, 723, 1339, 1173, 986, 988, 356, 741, - 248, 631, 743, 814, 1210, 181, 434, 357, 182, 819, - 275, 183, 276, 184, 1293, 757, 1035, 1036, 395, 396, - 762, 771, 772, 773, 253, 769, 769, 769, 769, 770, - 770, 770, 770, 356, 1218, 254, 932, 781, 782, 1296, - 1369, 255, 1372, 785, 1375, 395, 396, 395, 396, 256, - 1378, 395, 396, 262, 307, 804, 370, 806, 308, 185, - 437, 1219, 186, 1220, 187, 309, 932, 1292, 356, 932, - 395, 396, 932, 386, 356, 932, 389, 277, 1400, 278, - 1402, 824, 1404, 826, 827, 780, 1295, 310, 855, 830, - 395, 396, 395, 396, 1133, 414, 1161, 932, 797, 932, - 357, 932, 395, 396, 395, 396, 1298, 789, 1306, 789, - 311, 874, 875, 876, 877, 312, 313, 790, 1308, 790, - 1362, 314, 838, 791, 792, 791, 792, 793, 794, 793, - 794, 326, 847, 848, 434, 332, 345, 346, 347, 279, - 352, 280, 956, 348, 789, 372, 849, 850, 851, 852, - 853, 854, 789, 356, 790, 281, 349, 282, 857, 350, - 791, 792, 790, 361, 793, 794, 865, 366, 791, 792, - 371, 373, 793, 794, 374, 378, 356, 356, 356, 356, - 878, 383, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 438, 346, 347, 1299, 283, 1358, 284, - 348, 357, 357, 285, 287, 286, 288, 384, 1100, 1144, - 289, 357, 290, 291, 293, 292, 294, 632, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 789, 1387, 789, 883, 348, 558, 295, 559, - 296, 1389, 790, 385, 790, 1162, 388, 400, 791, 792, - 791, 792, 793, 794, 793, 794, 297, 1251, 298, 7, - 8, 299, 948, 300, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 401, 920, - 921, 922, 348, 419, 957, 838, 969, 970, 301, 303, - 302, 304, 402, 411, 531, 16, 17, 532, 19, 20, - 533, 22, 534, 24, 305, 25, 306, 412, 28, 29, - 415, 31, 32, 33, 994, 422, 421, 36, 789, 1062, - 558, 1391, 564, 1393, 423, 558, 1004, 568, 790, 424, - 425, 789, 989, 357, 791, 792, 632, 744, 793, 794, - 558, 790, 628, 429, 53, 54, 55, 791, 792, 430, - 431, 793, 794, 439, 645, 789, 646, 558, 440, 719, - 1037, 1038, 1039, 444, 558, 790, 810, 446, 357, 1048, - 1050, 791, 792, 451, 447, 793, 794, 1053, 558, 558, - 811, 817, 452, 454, 356, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 462, 1068, 1069, - 1070, 348, 464, 357, 618, 717, 718, 1411, 889, 357, - 890, 558, 1080, 914, 558, 467, 947, 1086, 465, 558, - 1412, 949, 995, 558, 996, 997, 1054, 558, 558, 998, - 999, 333, 1089, 348, 527, 1088, 1078, 558, 1083, 1000, - 1084, 1123, 528, 1124, 1413, 558, 1178, 1156, 1179, 1264, - 1102, 1265, 558, 1083, 1275, 1283, 1107, 1108, 1083, 529, - 1287, 1110, 763, 143, 558, 1267, 1288, 558, 1116, 1307, - 1178, 530, 1345, 777, 558, 558, 1361, 1363, 1126, 1083, - 1127, 1367, 571, 558, 1128, 1394, 576, 1395, 357, 1396, - 1083, 1143, 1410, 328, 1414, 577, 1415, 581, 582, 583, - 1103, 356, 584, 588, 356, 591, 590, 1157, 611, 613, - 615, 357, 357, 357, 357, 636, 1165, 639, 647, 648, - 1166, 649, 650, 726, 711, 1174, 1175, 727, 710, 712, - 714, 715, 731, 716, 1134, 742, 1137, 745, 1140, 746, - 764, 747, 749, 1226, 750, 1187, 751, 752, 754, 755, - 1151, 756, 1153, 1154, 1340, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 766, - 1383, 779, 783, 348, 784, 1204, 805, 823, 820, 1250, + 146, 407, 461, 462, 463, 145, 527, 1010, 599, 600, + 152, 658, 422, 522, 213, 740, 5, 240, 1007, 731, + 148, 137, 138, 324, 832, 258, 1327, 250, 841, 266, + 252, 267, 243, 931, 77, 875, 167, 162, 162, 429, + 866, 933, 193, 194, 418, 167, 419, 4, 455, 1162, + 457, 149, 195, 396, 397, 512, 513, 514, 515, 196, + 517, 518, 519, 936, 268, 158, 269, 90, 316, 216, + 398, 217, 159, 94, 95, 96, 137, 138, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 410, + 659, 660, 661, 662, 150, 723, 411, 265, 201, 163, + 163, 202, 218, 151, 203, 168, 164, 736, 932, 396, + 397, 214, 325, 326, 737, 270, 934, 271, 317, 318, + 319, 396, 397, 320, 323, 1046, 523, 1047, 332, 867, + 868, 396, 397, 158, 352, 154, 741, 354, 399, 741, + 735, 555, 355, 357, 360, 361, 556, 363, 357, 365, + 366, 153, 357, 369, 370, 663, 1245, 215, 137, 138, + 241, 833, 732, 259, 329, 260, 998, 1328, 244, 251, + 261, 124, 253, 388, 127, 128, 129, 155, 1257, 394, + 395, 430, 420, 156, 396, 397, 396, 397, 395, 396, + 397, 193, 194, 936, 134, 135, 608, 725, 157, 136, + 1048, 195, 1049, 409, 139, 594, 160, 321, 204, 142, + 161, 322, 435, 357, 723, 130, 131, 132, 133, 170, + 165, 443, 444, 445, 166, 447, 738, 792, 450, 451, + 272, 452, 273, 181, 169, 641, 182, 938, 793, 183, + 170, 184, 711, 465, 794, 795, 171, 712, 796, 797, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 177, 1101, 174, 178, 516, 179, 396, 397, + 1357, 172, 439, 206, 197, 199, 357, 205, 376, 377, + 378, 173, 188, 528, 1050, 189, 1051, 935, 175, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 130, 131, 132, 133, 885, 359, + 435, 415, 180, 560, 364, 176, 564, 264, 368, 190, + 207, 569, 1040, 1041, 137, 138, 574, 575, 576, 577, + 208, 724, 1168, 582, 396, 397, 1407, 987, 587, 588, + 589, 191, 560, 774, 775, 776, 209, 328, 118, 119, + 120, 121, 192, 200, 122, 602, 603, 604, 317, 318, + 605, 274, 843, 275, 609, 610, 611, 612, 613, 396, + 397, 617, 1179, 210, 619, 620, 526, 1180, 357, 357, + 624, 625, 628, 992, 629, 601, 212, 211, 357, 329, + 329, 219, 237, 632, 634, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 440, 347, 348, 276, + 278, 277, 279, 349, 37, 38, 39, 40, 654, 220, + 860, 657, 1150, 221, 45, 656, 862, 48, 391, 392, + 125, 126, 358, 236, 396, 397, 400, 358, 396, 397, + 408, 358, 238, 344, 345, 346, 347, 348, 246, 884, + 607, 233, 349, 1248, 920, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 792, + 247, 239, 524, 349, 628, 245, 248, 396, 397, 249, + 793, 728, 1169, 280, 726, 281, 794, 795, 254, 936, + 796, 797, 936, 937, 255, 936, 130, 131, 132, 133, + 727, 436, 358, 130, 131, 132, 133, 991, 993, 256, + 357, 744, 257, 634, 746, 263, 137, 138, 396, 397, + 396, 397, 308, 137, 138, 309, 312, 760, 396, 397, + 792, 282, 765, 283, 1154, 310, 1213, 772, 772, 772, + 772, 793, 311, 313, 1215, 357, 314, 794, 795, 784, + 785, 796, 797, 396, 397, 788, 315, 773, 773, 773, + 773, 284, 327, 285, 396, 397, 458, 264, 808, 1217, + 810, 371, 333, 936, 622, 623, 350, 233, 233, 233, + 1225, 357, 351, 286, 630, 287, 353, 357, 387, 396, + 397, 390, 396, 397, 828, 358, 830, 831, 118, 119, + 120, 121, 834, 936, 122, 1226, 936, 362, 1227, 936, + 233, 416, 936, 185, 842, 1139, 186, 367, 187, 1264, + 1060, 1267, 961, 1270, 372, 396, 397, 396, 397, 436, + 137, 138, 597, 598, 936, 520, 936, 260, 936, 373, + 392, 1301, 261, 1304, 374, 851, 852, 375, 379, 396, + 397, 384, 385, 396, 397, 386, 396, 397, 389, 853, + 854, 855, 856, 857, 858, 1307, 357, 458, 264, 1315, + 412, 861, 1317, 413, 401, 346, 347, 348, 402, 869, + 125, 126, 349, 334, 403, 7, 8, 396, 397, 357, + 357, 357, 357, 882, 288, 414, 289, 358, 358, 118, + 119, 120, 121, 1371, 417, 122, 743, 358, 423, 137, + 138, 421, 560, 635, 561, 1106, 841, 290, 1348, 291, + 533, 16, 17, 534, 19, 20, 535, 22, 536, 24, + 292, 25, 293, 431, 28, 29, 424, 31, 32, 33, + 294, 781, 295, 36, 425, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 296, + 298, 297, 299, 349, 1378, 962, 1381, 300, 1384, 301, + 426, 53, 54, 55, 1387, 792, 953, 818, 842, 427, + 1259, 125, 126, 823, 432, 302, 793, 303, 304, 306, + 305, 307, 794, 795, 433, 446, 796, 797, 441, 442, + 974, 975, 1409, 560, 1411, 566, 1413, 448, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 821, 1217, 822, 433, 348, 831, 832, 1270, 842, - 1406, 833, 1409, 1224, 834, 1225, 835, 843, 356, 844, - 846, 859, 860, 861, 866, 867, 870, 1234, 869, 1420, - 873, 879, 1238, 887, 893, 884, 898, 899, 894, 900, - 901, 885, 886, 904, 888, 905, 891, 892, 910, 906, - 895, 896, 907, 908, 356, 909, 911, 912, 913, 915, - 1254, 923, 1257, 925, 1260, 924, 328, 926, 935, 936, - 944, 937, 938, 356, 941, 940, 942, 1272, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 943, 945, 1281, - 1282, 348, 946, 953, 958, 1341, 1285, 1344, 959, 965, - 966, 967, 1286, 961, 962, 983, 1290, 963, 968, 1255, - 985, 1258, 964, 1261, 973, 950, 951, 952, 990, 991, - 1001, 1269, 1006, 1271, 1011, 1012, 1013, 1007, 1014, 357, - 1015, 1017, 1018, 1019, 1086, 1024, 536, 1020, 1047, 972, - 1025, 1040, 1027, 1028, 1029, 1030, 1327, 1034, 1051, 1331, - 1052, 1380, 1335, 1059, 1063, 1064, 1338, 1065, 1066, 1067, - 356, 1071, 356, 1072, 1073, 1090, 1091, 1093, 1145, 1096, - 1097, 1347, 1098, 1099, 1349, 1104, 1105, 1106, 1109, 1111, - 1114, 1112, 1010, 1113, 1117, 1122, 1125, 1135, 1016, 1138, - 1141, 1149, 1152, 1155, 1021, 1022, 1023, 1167, 1168, 1169, - 1026, 1170, 1171, 1180, 1177, 1031, 1032, 1033, 1181, 1185, - 1183, 1343, 1184, 1186, 1192, 1215, 356, 1194, 1195, 1193, - 1049, 1196, 1197, 1198, 1202, 1199, 1213, 1203, 1221, 1205, - 1058, 1228, 1207, 1061, 1209, 1211, 1216, 1239, 1243, 1223, - 1244, 1245, 1246, 1247, 1241, 1263, 357, 1248, 1280, 357, - 1284, 1301, 1310, 1311, 1276, 1277, 1074, 1075, 1076, 1077, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 1278, 1312, 1279, 1289, 348, 1305, - 1313, 1087, 1302, 1314, 1322, 552, 1323, 1325, 90, 221, - 1328, 1003, 1329, 1332, 94, 95, 96, 1333, 1336, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 713, 1342, 1118, 1119, 1120, 1121, 1356, 1364, 1370, 1373, - 1337, 1376, 223, 1379, 1381, 224, 1386, 1399, 225, 434, - 226, 1401, 1403, 1405, 1350, 1352, 1354, 1365, 1385, 868, - 1388, 1390, 1392, 357, 1397, 1407, 37, 38, 39, 40, - 41, 1416, 1158, 1417, 1418, 45, 1419, 1421, 48, 1315, - 1009, 76, 84, 0, 1092, 0, 579, 0, 1176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 124, 0, 0, 127, 128, 129, 0, 357, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 403, 1150, 0, 348, 0, 136, - 0, 0, 0, 0, 405, 0, 0, 0, 0, 142, - 1214, 196, 435, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 1229, 1230, 1231, 1232, 0, 0, 0, - 0, 0, 972, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 972, 357, 897, 357, 0, 0, - 90, 221, 0, 0, 0, 0, 94, 95, 96, 0, - 1266, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 0, 0, 224, 0, 0, - 225, 357, 226, 0, 0, 0, 0, 7, 8, 1300, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, - 39, 40, 41, 0, 0, 0, 0, 45, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 939, 0, 531, 16, 17, 532, 19, 20, 533, 22, - 534, 24, 0, 25, 0, 0, 28, 29, 0, 31, - 32, 33, 0, 124, 972, 36, 127, 128, 129, 0, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 134, 355, 348, 0, - 0, 136, 53, 54, 55, 0, 139, 0, 0, 0, - 0, 142, 0, 0, 435, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 557, 346, 347, 0, - 90, 91, 92, 348, 93, 0, 94, 95, 96, 0, - 972, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 643, 118, 119, 120, 121, 0, 0, 122, - 0, 0, 7, 8, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 531, 16, 17, - 532, 19, 20, 533, 22, 534, 24, 0, 25, 0, - 0, 28, 29, 0, 31, 32, 33, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 123, 0, 0, - 0, 0, 0, 124, 125, 126, 127, 128, 129, 0, - 0, 0, 0, 130, 131, 132, 133, 53, 54, 55, - 0, 0, 0, 0, 0, 0, 134, 135, 0, 0, - 0, 136, 0, 137, 138, 0, 139, 0, 140, 0, - 141, 142, 0, 143, 90, 221, 222, 0, 0, 0, - 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 0, 644, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 224, 7, 8, 225, 0, 226, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 37, 38, 39, 40, 41, 0, 0, 0, - 0, 45, 0, 0, 48, 0, 0, 531, 16, 17, - 532, 19, 20, 533, 22, 534, 24, 0, 25, 0, - 0, 28, 29, 0, 31, 32, 33, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 124, 0, 0, - 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 54, 55, - 134, 227, 0, 0, 0, 136, 0, 0, 0, 0, - 139, 0, 90, 221, 1056, 142, 0, 228, 94, 95, - 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 798, 0, 224, - 7, 8, 225, 0, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 40, 41, 0, 0, 0, 0, 45, - 0, 0, 48, 0, 0, 531, 16, 17, 532, 19, - 20, 533, 22, 534, 24, 0, 25, 0, 0, 28, - 29, 0, 31, 32, 33, 0, 0, 0, 36, 0, - 0, 0, 0, 0, 0, 124, 0, 0, 127, 128, + 347, 348, 449, 453, 538, 994, 349, 792, 999, 358, + 783, 621, 635, 747, 560, 792, 570, 560, 793, 631, + 1009, 454, 464, 800, 794, 795, 793, 529, 796, 797, + 792, 456, 794, 795, 466, 467, 796, 797, 648, 469, + 649, 793, 859, 349, 358, 1302, 530, 794, 795, 531, + 143, 796, 797, 532, 1042, 1043, 1044, 560, 560, 722, + 814, 573, 578, 1053, 1055, 878, 879, 880, 881, 579, + 560, 1058, 815, 560, 893, 821, 894, 137, 138, 357, + 358, 560, 428, 918, 260, 583, 358, 143, 560, 261, + 952, 584, 585, 1074, 1075, 1076, 560, 1305, 954, 1000, + 590, 1001, 720, 721, 792, 1308, 560, 1086, 1002, 560, + 1084, 1003, 1092, 586, 560, 793, 1004, 560, 592, 1005, + 1367, 794, 795, 593, 618, 796, 797, 1095, 642, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 614, 616, 1108, 1094, 349, 1089, 639, + 1090, 1113, 1114, 650, 651, 1129, 1116, 1130, 652, 766, + 1275, 887, 560, 1122, 1163, 358, 1185, 1089, 1186, 1228, + 780, 729, 1272, 1132, 1273, 1133, 560, 653, 1284, 1089, + 1089, 1292, 1296, 560, 713, 1297, 1149, 717, 358, 358, + 358, 358, 714, 792, 1396, 1134, 357, 730, 560, 357, + 1316, 715, 792, 1164, 793, 924, 925, 926, 718, 719, + 794, 795, 1172, 793, 796, 797, 329, 792, 734, 794, + 795, 1181, 1182, 796, 797, 792, 745, 1185, 793, 1354, + 748, 560, 1173, 1370, 794, 795, 793, 792, 796, 797, + 749, 1194, 794, 795, 750, 752, 796, 797, 793, 753, + 754, 1349, 792, 755, 794, 795, 757, 758, 796, 797, + 560, 1392, 1372, 793, 1089, 560, 1376, 1403, 759, 794, + 795, 1211, 767, 796, 797, 1068, 1404, 1089, 1405, 1419, + 769, 782, 554, 1398, 1423, 809, 1424, 786, 1224, 787, + 435, 1415, 1400, 1418, 824, 825, 826, 835, 827, 836, + 1232, 837, 1233, 838, 839, 357, 846, 1402, 847, 848, + 1429, 850, 863, 864, 1242, 1420, 865, 870, 871, 1246, + 873, 877, 874, 883, 888, 891, 897, 1421, 898, 889, + 890, 902, 892, 903, 895, 896, 904, 905, 899, 900, + 908, 357, 1422, 909, 914, 910, 911, 1262, 912, 1265, + 913, 1268, 915, 1059, 916, 917, 919, 927, 929, 930, + 357, 928, 945, 939, 940, 1281, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 941, 942, 1290, 1291, 349, + 943, 329, 946, 947, 1294, 948, 949, 950, 951, 958, + 1295, 963, 964, 966, 1299, 970, 967, 968, 358, 969, + 439, 971, 972, 973, 955, 956, 957, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 978, 996, 1092, 995, 349, 988, 1006, 1109, 990, + 1025, 1012, 1016, 1019, 1011, 1336, 1020, 1017, 1340, 1018, + 1022, 1344, 1023, 1024, 1029, 1347, 1032, 1030, 1045, 357, + 1033, 357, 1034, 1035, 1039, 1052, 1056, 1057, 1064, 1067, + 1356, 1069, 1140, 1358, 1143, 1071, 1146, 1070, 1072, 1073, + 1077, 1015, 1078, 1096, 1079, 1097, 1099, 1021, 1157, 1102, + 1159, 1160, 1103, 1026, 1027, 1028, 1104, 1105, 1110, 1031, + 1111, 1112, 1115, 1117, 1036, 1037, 1038, 1118, 1119, 1120, + 1123, 1234, 1128, 1131, 1141, 357, 1144, 1147, 1155, 1054, + 1151, 1158, 1161, 1174, 1184, 358, 1175, 1176, 358, 1063, + 1177, 1178, 1066, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 440, 347, 348, 1258, 1187, 7, + 8, 349, 1188, 1199, 1190, 1191, 1080, 1081, 1082, 1083, + 1193, 1201, 1192, 1202, 1200, 1203, 1278, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 1204, + 1205, 1093, 1209, 349, 533, 16, 17, 534, 19, 20, + 535, 22, 536, 24, 1220, 25, 1206, 1222, 28, 29, + 1210, 31, 32, 33, 1229, 1236, 1212, 36, 1247, 1214, + 1231, 1216, 1251, 1252, 1253, 1218, 1223, 1254, 1249, 436, + 1255, 1256, 1124, 1125, 1126, 1127, 1271, 1280, 1285, 1286, + 1293, 1287, 1310, 1289, 358, 53, 54, 55, 1311, 1263, + 1288, 1266, 1298, 1269, 1314, 1319, 1320, 1321, 1322, 1323, + 1331, 1277, 1332, 1279, 1334, 1350, 1337, 1353, 1338, 1341, + 1342, 1345, 1351, 1165, 1365, 1373, 1379, 1382, 1385, 1388, + 358, 1390, 1395, 1408, 1410, 1346, 1412, 1359, 1361, 1183, + 1363, 1374, 1394, 1397, 1399, 1401, 1406, 1414, 1416, 358, + 1425, 1426, 1427, 1428, 1430, 646, 1008, 76, 1324, 1014, + 84, 90, 222, 0, 581, 0, 0, 94, 95, 96, + 1098, 1389, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 1221, 0, 1352, 0, 224, 0, 0, 225, 7, + 8, 226, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1237, 1238, 1239, 1240, 37, + 38, 39, 40, 41, 0, 0, 0, 0, 358, 45, + 358, 0, 48, 0, 533, 16, 17, 534, 19, 20, + 535, 22, 536, 24, 0, 25, 0, 0, 28, 29, + 0, 31, 32, 33, 0, 0, 0, 36, 0, 0, + 0, 0, 1274, 0, 0, 124, 0, 0, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 54, 55, 134, 227, - 0, 0, 0, 136, 0, 0, 0, 0, 139, 0, - 90, 221, 0, 142, 0, 1057, 94, 95, 96, 0, - 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 223, 825, 0, 224, 7, 8, - 225, 0, 226, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, - 39, 40, 41, 0, 0, 0, 0, 45, 0, 0, - 48, 0, 0, 531, 16, 17, 532, 19, 20, 533, - 22, 534, 24, 0, 25, 0, 0, 28, 29, 0, - 31, 32, 33, 0, 0, 0, 36, 0, 0, 0, - 0, 0, 0, 124, 0, 0, 127, 128, 129, 0, + 0, 0, 0, 0, 358, 53, 54, 55, 404, 1156, + 0, 0, 0, 136, 0, 0, 0, 0, 406, 0, + 0, 0, 0, 142, 716, 196, 437, 90, 222, 0, + 0, 0, 1309, 94, 95, 96, 0, 0, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, + 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, + 0, 224, 0, 0, 225, 0, 0, 226, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 54, 55, 134, 227, 0, 0, - 0, 136, 0, 0, 0, 0, 139, 0, 90, 221, - 0, 142, 0, 228, 94, 95, 96, 0, 0, 97, + 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, + 0, 0, 0, 872, 0, 45, 90, 316, 48, 0, + 0, 0, 94, 95, 96, 0, 0, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 0, 0, + 0, 124, 0, 0, 127, 128, 129, 0, 0, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 0, 134, 356, 0, 349, 0, 136, + 0, 0, 0, 0, 139, 0, 0, 0, 0, 142, + 0, 0, 437, 90, 91, 92, 0, 93, 0, 94, + 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 0, 118, 119, 120, 121, + 124, 0, 122, 127, 128, 129, 7, 8, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 0, 134, 135, 0, 349, 0, 136, 0, + 0, 0, 0, 139, 0, 0, 626, 0, 142, 0, + 627, 533, 16, 17, 534, 19, 20, 535, 22, 536, + 24, 0, 25, 0, 0, 28, 29, 0, 31, 32, + 33, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 123, 0, 0, 0, 0, 0, 124, 125, 126, + 127, 128, 129, 0, 0, 0, 0, 130, 131, 132, + 133, 0, 53, 54, 55, 0, 0, 0, 0, 0, + 134, 135, 0, 0, 0, 136, 0, 137, 138, 0, + 139, 0, 140, 0, 141, 142, 0, 143, 90, 222, + 223, 0, 0, 0, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 223, 1303, 0, 224, 7, 8, 225, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 801, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 224, 0, 0, 225, 7, 8, 226, 0, + 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, - 41, 0, 0, 0, 0, 45, 0, 0, 48, 0, - 0, 531, 16, 17, 532, 19, 20, 533, 22, 534, + 41, 0, 0, 0, 0, 0, 45, 0, 0, 48, + 0, 533, 16, 17, 534, 19, 20, 535, 22, 536, 24, 0, 25, 0, 0, 28, 29, 0, 31, 32, - 33, 0, 0, 992, 36, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 36, 0, 0, 0, 0, 0, + 0, 0, 124, 0, 0, 127, 128, 129, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 54, 55, 134, 228, 0, 0, 0, + 136, 0, 0, 0, 0, 139, 0, 90, 222, 1061, + 142, 0, 229, 94, 95, 96, 0, 0, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 829, 0, 225, 7, 8, 226, 0, 227, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, + 0, 0, 0, 0, 0, 45, 0, 0, 48, 0, + 533, 16, 17, 534, 19, 20, 535, 22, 536, 24, + 0, 25, 0, 0, 28, 29, 0, 31, 32, 33, + 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 127, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 54, 55, 134, 355, 0, 0, 0, 136, - 0, 0, 1182, 0, 139, 0, 90, 221, 0, 142, - 0, 432, 94, 95, 96, 0, 0, 97, 98, 99, + 0, 53, 54, 55, 134, 228, 0, 0, 0, 136, + 0, 0, 0, 0, 139, 0, 90, 222, 0, 142, + 0, 1062, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 1359, 0, 224, 0, 0, 225, 0, 226, 0, + 224, 1312, 0, 225, 7, 8, 226, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 0, - 0, 0, 0, 45, 0, 0, 48, 334, 335, 336, + 0, 0, 0, 0, 45, 0, 0, 48, 0, 533, + 16, 17, 534, 19, 20, 535, 22, 536, 24, 0, + 25, 0, 0, 28, 29, 0, 31, 32, 33, 0, + 0, 0, 36, 901, 0, 0, 0, 0, 0, 0, + 124, 0, 0, 127, 128, 129, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 54, 55, 134, 228, 0, 0, 0, 136, 0, + 0, 944, 0, 139, 0, 90, 222, 0, 142, 0, + 229, 94, 95, 96, 0, 0, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 0, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 224, + 1368, 0, 225, 349, 0, 226, 0, 227, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 37, 38, 39, 40, 41, 0, 0, + 0, 0, 0, 45, 0, 0, 48, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 1201, 0, 0, 0, 0, 0, 0, 0, 124, - 0, 0, 127, 128, 129, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 134, 355, 348, 0, 0, 136, 0, 0, - 1227, 0, 139, 0, 90, 221, 0, 142, 0, 630, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 997, 0, 0, 0, 0, 0, 0, 0, 124, + 0, 0, 127, 128, 129, 0, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 134, 356, 349, 0, 0, 136, 0, 0, + 1189, 0, 139, 0, 90, 222, 0, 142, 0, 434, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 224, 0, 0, 225, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 225, 0, 0, 226, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, 0, 0, 0, - 0, 45, 0, 0, 48, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, + 0, 0, 45, 0, 0, 48, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 1208, 0, 0, 0, 0, 0, 0, 0, 124, 0, + 0, 127, 128, 129, 0, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 134, 356, 349, 0, 0, 136, 0, 0, 1235, + 0, 139, 0, 90, 222, 0, 142, 0, 633, 94, + 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, + 225, 0, 0, 226, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 37, 38, 39, 40, 41, 0, 0, 0, 0, + 0, 45, 0, 0, 48, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, - 127, 128, 129, 0, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 134, 227, 348, 0, 0, 136, 0, 0, 1309, 0, - 139, 0, 90, 221, 0, 142, 0, 1060, 94, 95, + 127, 128, 129, 0, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 134, 228, 349, 0, 0, 136, 0, 0, 1318, 0, + 139, 0, 90, 222, 0, 142, 0, 1065, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 0, 224, - 0, 0, 225, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 225, + 0, 0, 226, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 37, 38, 39, 40, 41, 1357, 0, 90, 315, 45, - 0, 0, 48, 94, 95, 96, 0, 0, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 0, - 0, 0, 0, 0, 0, 124, 0, 0, 127, 128, - 129, 0, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 403, 1150, - 348, 0, 0, 136, 0, 0, 0, 0, 405, 640, - 90, 315, 263, 142, 0, 196, 94, 95, 96, 0, - 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 0, 118, 119, 120, 121, 0, 0, 122, - 124, 0, 0, 127, 128, 129, 0, 0, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 134, 135, 0, 0, 348, 136, 0, - 0, 0, 0, 139, 0, 0, 320, 0, 142, 736, - 321, 90, 315, 0, 0, 0, 0, 94, 95, 96, - 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 124, 125, 126, 127, 128, 129, 818, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 134, 135, 0, 348, - 0, 136, 0, 0, 0, 0, 139, 955, 90, 315, - 0, 142, 0, 1164, 94, 95, 96, 0, 0, 97, + 37, 38, 39, 40, 41, 1366, 0, 0, 90, 316, + 45, 0, 0, 48, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 124, 0, 0, 127, 128, 129, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 134, 135, 348, - 0, 0, 136, 0, 0, 0, 0, 139, 0, 0, - 623, 0, 142, 0, 624, 0, 0, 0, 0, 0, - 0, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 124, 0, 0, 127, 128, 129, 0, 0, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 403, 404, 0, 348, 0, 136, - 0, 0, 0, 0, 405, 0, 90, 221, 0, 142, - 0, 196, 94, 95, 96, 0, 0, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 223, 0, 0, 224, 0, 0, 225, 0, 226, 0, - 0, 0, 0, 0, 902, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 37, 38, 39, 40, 41, 0, - 0, 90, 315, 45, 0, 0, 48, 94, 95, 96, + 439, 0, 0, 0, 0, 0, 124, 0, 0, 127, + 128, 129, 0, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 404, + 1156, 349, 0, 0, 136, 0, 0, 0, 0, 406, + 643, 90, 316, 264, 142, 0, 196, 94, 95, 96, 0, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 0, 0, 0, 0, 0, 0, 124, - 0, 0, 127, 128, 129, 0, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 134, 355, 348, 0, 0, 136, 90, 315, - 263, 0, 139, 0, 94, 95, 96, 142, 0, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 0, 118, 119, 120, 121, 0, 0, 122, 0, 0, + 115, 116, 117, 0, 118, 119, 120, 121, 0, 0, + 122, 0, 124, 0, 0, 127, 128, 129, 0, 0, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 404, 405, 0, 349, 0, + 136, 0, 0, 0, 0, 406, 0, 0, 0, 0, + 142, 0, 196, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 559, 347, 348, 0, 0, 0, + 0, 349, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 124, 125, 126, 127, 128, + 129, 0, 0, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 134, 135, + 0, 349, 0, 136, 0, 0, 0, 0, 139, 739, + 90, 222, 0, 142, 0, 1171, 94, 95, 96, 0, + 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 225, 0, 0, + 226, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 38, + 39, 40, 41, 0, 822, 0, 90, 316, 45, 0, + 0, 48, 94, 95, 96, 0, 0, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 960, 0, 0, 0, 0, 0, 124, 0, 0, 127, 128, 129, - 0, 7, 8, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 134, 135, 0, - 0, 348, 136, 0, 0, 0, 0, 139, 1131, 0, - 1132, 0, 142, 0, 0, 0, 531, 16, 17, 532, - 19, 20, 533, 22, 534, 24, 0, 25, 0, 0, - 28, 29, 0, 31, 32, 33, 0, 0, 0, 36, - 0, 124, 125, 126, 127, 128, 129, -4, 1, 0, - 0, -4, 0, 0, 0, 0, 0, 0, 0, -4, - -4, 0, 0, 0, 134, 135, 53, 54, 55, 136, - 0, 0, 0, 0, 139, 0, 0, 0, 0, 142, - 0, 0, -4, 0, 0, 0, 0, -4, -4, 0, - -4, -4, -4, 0, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, - -4, 0, 0, -4, -4, 0, 0, 0, -4, 0, - 0, 0, 0, -4, -4, -4, -4, 0, 0, -4, - 0, -4, 0, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, 0, 0, 6, 0, 0, 0, -4, - -4, -4, -4, 7, 8, 0, 334, 335, 336, 337, + 0, 0, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 134, 356, 0, + 349, 0, 136, 90, 316, 264, 0, 139, 0, 94, + 95, 96, 142, 0, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 0, 118, 119, 120, 121, + 0, 0, 122, 0, 0, 0, 0, 0, 0, 0, + 124, 0, 0, 127, 128, 129, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 9, 0, 0, 0, - 0, 10, 11, 759, 12, 13, 14, 0, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 0, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, - 35, 36, 37, 38, 39, 40, 41, 42, 0, 43, - 44, 45, 46, 47, 48, 0, 0, 49, 50, 0, - 0, 0, 51, 0, 0, 0, 0, 52, 53, 54, - 55, 0, 0, 56, 0, 57, 0, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 0, 0, 0, - 0, 0, 0, 68, 69, 70, 71, 334, 335, 336, + 348, 0, 0, 134, 135, 349, 0, 0, 136, 0, + 0, 0, 0, 139, 0, 0, 0, 0, 142, 0, + 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 0, 0, 0, 0, 0, 0, 124, 125, 126, + 127, 128, 129, -4, 1, 0, 0, -4, 0, 0, + 0, 0, 0, 0, 0, -4, -4, 0, 0, 0, + 134, 135, 0, 0, 0, 136, 0, 0, 0, 0, + 139, 0, 0, 0, 0, 142, 0, 0, -4, 0, + 0, 0, 0, -4, -4, 0, -4, -4, -4, 0, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, 0, -4, -4, -4, -4, -4, -4, -4, -4, + 0, 0, -4, -4, -4, -4, -4, -4, 0, 0, + -4, -4, 0, 0, 0, -4, 0, 0, 0, 0, + -4, -4, -4, -4, 0, 0, -4, 0, -4, 0, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + 0, 0, 6, 0, 0, 0, -4, -4, -4, -4, + 7, 8, 0, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 9, 0, 0, 0, 0, 10, 11, + 762, 12, 13, 14, 0, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 0, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 0, 35, 36, 37, + 38, 39, 40, 41, 42, 0, 0, 43, 44, 45, + 46, 47, 48, 0, 0, 49, 50, 906, 0, 0, + 51, 7, 8, 0, 0, 52, 53, 54, 55, 0, + 0, 56, 0, 57, 0, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, + 0, 68, 69, 70, 71, 0, 533, 16, 17, 534, + 19, 20, 535, 22, 536, 24, 0, 25, 0, 0, + 28, 29, 0, 31, 32, 33, 0, 0, 0, 36, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 55, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 1137, 0, 1138, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 1159, 0, 1160, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 1252, 0, 1253, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, - 801, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 0, 0, 816, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 1166, 0, 1167, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 1260, 0, 1261, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 0, 804, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 0, 0, 820, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 0, 0, 840, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 844, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 919, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 1129, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, - 1147, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 0, 0, 1188, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 923, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 1135, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 0, 1153, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 0, 0, 1195, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 0, 0, 1189, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 1196, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 1190, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 1191, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, - 1222, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 0, 0, 1268, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 1197, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 1198, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 0, 1230, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 0, 0, 1276, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 0, 0, 1273, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 1282, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 1274, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 1291, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, - 1294, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 0, 0, 1297, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 1283, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 1300, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 0, 1303, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 0, 0, 1306, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 0, 0, 1321, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 1330, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 1324, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 0, 0, 1351, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 0, 0, - 1353, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 0, 0, 1355, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 0, 1333, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 0, 0, 1360, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 0, + 0, 1362, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 0, 0, 1368, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 0, 0, 1377, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 0, 589, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 0, 0, 0, 0, 0, 0, - 1200, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 519, 0, 0, 0, 0, 593, 334, 335, 336, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 0, 591, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 0, 0, 0, 0, 0, + 0, 1207, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 521, 0, 0, 0, 0, 595, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 555, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 593, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 557, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 595, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 594, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 637, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 688, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 596, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 640, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 691, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 689, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 702, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 692, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 705, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 703, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 704, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 705, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 706, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 707, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 708, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 706, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 707, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 709, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 710, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 786, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 787, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 788, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 789, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 790, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 791, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 882, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 917, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 886, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 921, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 918, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 954, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 1081, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 922, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 959, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 1087, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 1082, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 1101, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 1088, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 1107, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 0, 0, 0, 1235, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 0, 0, 0, - 1236, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 0, 1242, 334, 335, 336, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 0, 0, 0, 1243, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, + 0, 1244, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 0, 1250, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 0, - 0, 0, 1317, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 0, 0, 0, 1320, 334, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 0, 0, 0, 1326, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 0, 0, 0, 1329, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 523, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 0, 0, 642, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 652, 334, 335, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 525, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 0, 0, 645, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 655, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 0, 0, - 667, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 669, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 0, 0, 671, 334, 335, 336, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 0, + 0, 670, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 672, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 0, 0, 674, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 673, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 0, 0, 675, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 677, 334, 335, 336, 337, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 676, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 0, 0, 678, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 680, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 0, 0, 679, 334, + 348, 0, 0, 0, 0, 349, 0, 0, 0, 682, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 681, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 0, 0, 683, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 685, 334, 335, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 684, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 0, 0, 686, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 688, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 0, 0, - 687, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 691, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 0, 0, 693, 334, 335, 336, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 0, + 0, 690, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 694, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 0, 0, 696, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 695, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 0, 0, 697, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 699, 334, 335, 336, 337, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 698, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 0, 0, 700, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 702, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 0, 0, 701, 334, + 348, 0, 0, 0, 0, 349, 0, 0, 0, 704, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 808, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 0, 0, 809, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 812, 334, 335, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 812, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 0, 0, 813, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 816, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 0, 0, - 813, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 0, 0, 815, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 0, 0, 836, 334, 335, 336, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 0, + 0, 817, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 0, 0, 819, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 0, 0, 840, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 0, 0, 960, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 0, 0, 975, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 0, 0, 977, 334, 335, 336, 337, + 347, 348, 0, 0, 0, 0, 349, 0, 0, 0, + 965, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 0, 0, 980, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 0, 0, 982, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 0, 0, 979, 334, + 348, 0, 0, 0, 0, 349, 0, 0, 0, 984, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 0, - 0, 981, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 0, 0, 1094, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 0, 0, 1212, 334, 335, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 0, 0, 986, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 0, 0, 1100, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 0, 0, 1219, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 519, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 521, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 556, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 560, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 561, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 563, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 565, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 566, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 569, 334, 335, 336, 337, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 558, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 562, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 563, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 565, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 567, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 568, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 571, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 570, 334, 335, 336, + 348, 0, 0, 0, 0, 349, 0, 572, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 633, 334, 335, + 347, 348, 0, 0, 0, 0, 349, 0, 636, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 634, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 637, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 635, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 641, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 666, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 668, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 670, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 672, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 674, 334, 335, 336, 337, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 638, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 644, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 669, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 671, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 673, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 675, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 677, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 676, 334, 335, 336, + 348, 0, 0, 0, 0, 349, 0, 679, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 678, 334, 335, + 347, 348, 0, 0, 0, 0, 349, 0, 681, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 680, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 683, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 682, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 684, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 686, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 690, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 692, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 694, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 696, 334, 335, 336, 337, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 685, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 687, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 689, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 693, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 695, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 697, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 699, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 698, 334, 335, 336, + 348, 0, 0, 0, 0, 349, 0, 701, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 700, 334, 335, + 347, 348, 0, 0, 0, 0, 349, 0, 703, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 748, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 751, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 753, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 758, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 760, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 761, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 767, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 774, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 775, 334, 335, 336, 337, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 756, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 761, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 763, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 764, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 770, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 777, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 778, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 776, 334, 335, 336, + 348, 0, 0, 0, 0, 349, 0, 779, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 800, 334, 335, + 347, 348, 0, 0, 0, 0, 349, 0, 803, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 802, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 805, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 803, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 807, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348, - 0, 974, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 0, 0, 0, 0, - 348, 0, 976, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 0, 0, 0, - 0, 348, 0, 978, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 0, 0, - 0, 0, 348, 0, 980, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 0, - 0, 0, 0, 348, 0, 984, 334, 335, 336, 337, + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 806, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 807, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 811, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349, 0, 979, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 0, 0, + 0, 0, 349, 0, 981, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 0, + 0, 0, 0, 349, 0, 983, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 0, 0, 0, 349, 0, 985, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 0, 0, 0, 0, 348, 0, 1130, 334, 335, 336, + 348, 0, 0, 0, 0, 349, 0, 989, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 0, 0, 0, 0, 348, 0, 1146, 334, 335, + 347, 348, 0, 0, 0, 0, 349, 0, 1136, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 0, 0, 0, 0, 348, 0, 1163, 334, + 346, 347, 348, 0, 0, 0, 0, 349, 0, 1152, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 0, 0, 0, 0, 348, 0, 1316, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 0, 0, 0, 0, 348, 0, - 1366, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 0, 0, 0, 0, 348 + 345, 346, 347, 348, 0, 0, 0, 0, 349, 0, + 1170, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 0, 0, 0, 349, + 0, 1325, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 0, 0, 0, 0, + 349, 0, 1375, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 0, 0, 0, + 0, 349 }; static const yytype_int16 yycheck[] = { - 6, 397, 398, 204, 6, 5, 3, 1177, 323, 254, - 255, 256, 6, 214, 4, 7, 4, 4, 7, 4, - 6, 77, 5, 4, 6, 4, 6, 5, 53, 1199, - 6, 4, 4, 4, 6, 729, 6, 68, 4, 799, - 77, 6, 795, 6, 4, 50, 6, 78, 53, 250, - 55, 252, 6, 84, 85, 139, 140, 88, 89, 149, - 139, 140, 307, 308, 309, 310, 156, 312, 313, 314, - 6, 155, 7, 157, 4, 5, 155, 0, 157, 149, - 7, 38, 39, 5, 41, 51, 156, 47, 159, 146, - 147, 93, 13, 164, 151, 61, 153, 168, 149, 156, - 156, 158, 92, 93, 94, 95, 36, 37, 38, 39, - 50, 149, 42, 53, 36, 37, 38, 39, 156, 156, - 42, 6, 110, 102, 103, 90, 157, 90, 134, 135, - 136, 102, 103, 139, 140, 7, 146, 147, 144, 6, - 129, 151, 136, 153, 150, 6, 143, 153, 158, 1319, - 136, 149, 158, 159, 160, 161, 156, 163, 164, 165, - 166, 153, 168, 169, 170, 146, 147, 157, 156, 156, - 151, 156, 153, 156, 156, 869, 149, 158, 156, 151, - 156, 934, 149, 189, 151, 139, 140, 117, 118, 195, - 196, 126, 127, 128, 129, 117, 118, 149, 204, 126, - 127, 128, 129, 146, 147, 7, 57, 408, 523, 53, - 153, 146, 147, 139, 140, 1385, 146, 147, 153, 146, - 147, 227, 228, 153, 139, 140, 177, 178, 179, 155, - 236, 237, 238, 149, 240, 192, 193, 243, 244, 149, - 246, 4, 77, 200, 77, 446, 156, 204, 150, 149, - 321, 151, 258, 155, 126, 127, 128, 129, 209, 265, + 6, 204, 255, 256, 257, 6, 324, 6, 398, 399, + 6, 4, 215, 7, 4, 6, 0, 4, 6, 4, + 6, 147, 148, 4, 7, 4, 6, 5, 154, 150, + 5, 152, 4, 6, 3, 732, 78, 78, 78, 5, + 4, 6, 140, 141, 4, 78, 6, 6, 251, 1067, + 253, 13, 150, 140, 141, 308, 309, 310, 311, 157, + 313, 314, 315, 798, 150, 150, 152, 3, 4, 4, + 157, 6, 157, 9, 10, 11, 147, 148, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 150, + 93, 94, 95, 96, 53, 7, 157, 93, 47, 150, + 150, 50, 47, 150, 53, 157, 157, 157, 91, 140, + 141, 111, 103, 104, 157, 150, 91, 152, 134, 135, + 136, 140, 141, 139, 140, 156, 130, 158, 144, 103, + 104, 140, 141, 150, 150, 6, 137, 153, 157, 137, + 157, 151, 158, 159, 160, 161, 156, 163, 164, 165, + 166, 157, 168, 169, 170, 158, 1184, 157, 147, 148, + 157, 154, 157, 152, 143, 154, 873, 157, 150, 157, + 159, 117, 157, 189, 120, 121, 122, 6, 1206, 195, + 196, 157, 152, 6, 140, 141, 140, 141, 204, 140, + 141, 140, 141, 938, 140, 141, 409, 525, 6, 145, + 156, 150, 158, 157, 150, 156, 150, 153, 157, 155, + 150, 157, 228, 229, 7, 127, 128, 129, 130, 150, + 150, 237, 238, 239, 150, 241, 157, 68, 244, 245, + 150, 247, 152, 47, 150, 448, 50, 802, 79, 53, + 150, 55, 151, 259, 85, 86, 57, 156, 89, 90, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 995, 139, 140, 149, 311, 151, 149, 71, 72, - 73, 74, 149, 149, 149, 321, 149, 80, 149, 156, - 83, 156, 53, 156, 126, 127, 128, 129, 334, 335, + 306, 307, 50, 1000, 6, 53, 312, 55, 140, 141, + 1328, 53, 8, 4, 38, 39, 322, 41, 177, 178, + 179, 53, 50, 324, 156, 53, 158, 158, 53, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 323, 146, 147, 139, 140, 149, 355, - 151, 422, 423, 4, 5, 361, 6, 139, 140, 53, - 366, 432, 155, 53, 157, 371, 372, 373, 374, 149, - 47, 151, 378, 50, 156, 55, 53, 383, 384, 385, - 139, 140, 141, 142, 143, 36, 37, 38, 39, 148, - 50, 42, 139, 140, 400, 401, 402, 403, 404, 405, - 397, 398, 8, 409, 410, 411, 412, 652, 155, 415, - 139, 140, 418, 419, 139, 140, 422, 423, 424, 425, - 426, 149, 428, 150, 68, 53, 432, 156, 155, 53, - 155, 437, 438, 156, 78, 139, 140, 156, 395, 396, - 84, 85, 139, 140, 88, 89, 403, 1207, 50, 1209, - 150, 1211, 156, 139, 140, 155, 462, 4, 155, 465, - 68, 4, 139, 140, 50, 710, 117, 118, 150, 155, - 78, 716, 149, 155, 4, 68, 84, 85, 6, 156, - 88, 89, 149, 554, 464, 78, 139, 140, 159, 1183, - 149, 84, 85, 164, 739, 88, 89, 168, 139, 140, - 68, 149, 155, 1256, 146, 147, 1259, 139, 140, 1262, - 78, 149, 518, 157, 155, 151, 84, 85, 589, 525, - 88, 89, 524, 155, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 139, 140, - 150, 4, 148, 523, 1304, 155, 861, 862, 554, 555, - 4, 557, 558, 624, 155, 47, 227, 228, 50, 630, - 149, 53, 151, 55, 157, 571, 6, 7, 139, 140, - 576, 582, 583, 584, 149, 581, 582, 583, 584, 581, - 582, 583, 584, 589, 155, 149, 1339, 593, 594, 157, - 1350, 149, 1352, 599, 1354, 139, 140, 139, 140, 149, - 1360, 139, 140, 156, 149, 611, 171, 613, 149, 50, - 8, 155, 53, 155, 55, 149, 1369, 155, 624, 1372, - 139, 140, 1375, 188, 630, 1378, 191, 149, 1388, 151, - 1390, 637, 1392, 639, 640, 592, 155, 149, 709, 645, - 139, 140, 139, 140, 1040, 210, 8, 1400, 605, 1402, - 321, 1404, 139, 140, 139, 140, 155, 68, 155, 68, - 7, 732, 733, 734, 735, 149, 149, 78, 155, 78, - 155, 149, 652, 84, 85, 84, 85, 88, 89, 88, - 89, 4, 688, 689, 355, 6, 141, 142, 143, 149, - 5, 151, 8, 148, 68, 156, 702, 703, 704, 705, - 706, 707, 68, 709, 78, 149, 6, 151, 714, 6, - 84, 85, 78, 149, 88, 89, 722, 149, 84, 85, - 149, 149, 88, 89, 149, 149, 732, 733, 734, 735, - 736, 149, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 157, 149, 157, 151, - 148, 422, 423, 149, 149, 151, 151, 149, 1003, 157, - 149, 432, 151, 149, 149, 151, 151, 438, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 68, 157, 68, 742, 148, 155, 149, 157, - 151, 157, 78, 149, 78, 157, 4, 156, 84, 85, - 84, 85, 88, 89, 88, 89, 149, 1203, 151, 12, - 13, 149, 818, 151, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 156, 786, - 787, 788, 148, 151, 150, 815, 842, 843, 149, 149, - 151, 151, 156, 149, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 149, 58, 151, 149, 61, 62, - 149, 64, 65, 66, 870, 156, 6, 70, 68, 940, - 155, 157, 157, 157, 156, 155, 882, 157, 78, 151, - 151, 68, 862, 554, 84, 85, 557, 558, 88, 89, - 155, 78, 157, 5, 97, 98, 99, 84, 85, 5, - 5, 88, 89, 6, 151, 68, 153, 155, 6, 157, - 916, 917, 918, 153, 155, 78, 157, 156, 589, 925, - 926, 84, 85, 6, 105, 88, 89, 933, 155, 155, - 157, 157, 6, 6, 940, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 151, 954, 955, - 956, 148, 4, 624, 157, 520, 521, 157, 53, 630, - 55, 155, 968, 157, 155, 6, 157, 973, 156, 155, - 157, 157, 155, 155, 157, 157, 933, 155, 155, 157, - 157, 6, 988, 148, 153, 987, 966, 155, 155, 157, - 157, 4, 7, 6, 157, 155, 155, 157, 157, 155, - 1006, 157, 155, 155, 157, 157, 1012, 1013, 155, 151, - 157, 1017, 577, 156, 155, 1216, 157, 155, 1024, 157, - 155, 157, 157, 588, 155, 155, 157, 157, 1034, 155, - 1036, 157, 7, 155, 1036, 157, 7, 155, 709, 157, - 155, 1047, 157, 1040, 155, 7, 157, 149, 149, 149, - 1007, 1057, 149, 7, 1060, 6, 150, 1063, 7, 7, - 6, 732, 733, 734, 735, 102, 1072, 156, 150, 150, - 1072, 150, 150, 6, 150, 1081, 1082, 4, 155, 150, - 155, 150, 152, 155, 1041, 7, 1043, 105, 1045, 7, - 4, 7, 7, 1164, 105, 1101, 7, 7, 105, 7, - 1057, 7, 1059, 1060, 1305, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 6, - 1365, 153, 157, 148, 157, 1131, 6, 153, 7, 1200, + 346, 347, 348, 349, 127, 128, 129, 130, 151, 159, + 356, 210, 55, 156, 164, 53, 362, 5, 168, 150, + 51, 367, 6, 7, 147, 148, 372, 373, 374, 375, + 61, 154, 8, 379, 140, 141, 1394, 151, 384, 385, + 386, 50, 156, 584, 585, 586, 77, 4, 36, 37, + 38, 39, 157, 157, 42, 401, 402, 403, 404, 405, + 406, 150, 655, 152, 410, 411, 412, 413, 414, 140, + 141, 417, 151, 53, 420, 421, 7, 156, 424, 425, + 426, 427, 428, 7, 430, 156, 50, 53, 434, 398, + 399, 50, 150, 439, 440, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 150, + 150, 152, 152, 149, 71, 72, 73, 74, 464, 4, + 713, 467, 158, 4, 81, 466, 719, 84, 192, 193, + 118, 119, 159, 4, 140, 141, 200, 164, 140, 141, + 204, 168, 150, 140, 141, 142, 143, 144, 6, 742, + 156, 51, 149, 1190, 156, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 68, + 152, 150, 322, 149, 520, 150, 4, 140, 141, 4, + 79, 527, 158, 150, 525, 152, 85, 86, 150, 1264, + 89, 90, 1267, 156, 150, 1270, 127, 128, 129, 130, + 526, 228, 229, 127, 128, 129, 130, 865, 866, 150, + 556, 557, 150, 559, 560, 157, 147, 148, 140, 141, + 140, 141, 150, 147, 148, 150, 7, 573, 140, 141, + 68, 150, 578, 152, 156, 150, 156, 583, 584, 585, + 586, 79, 150, 150, 156, 591, 150, 85, 86, 595, + 596, 89, 90, 140, 141, 601, 150, 583, 584, 585, + 586, 150, 4, 152, 140, 141, 4, 5, 614, 156, + 616, 171, 6, 1348, 424, 425, 6, 177, 178, 179, + 156, 627, 6, 150, 434, 152, 5, 633, 188, 140, + 141, 191, 140, 141, 640, 322, 642, 643, 36, 37, + 38, 39, 648, 1378, 42, 156, 1381, 150, 156, 1384, + 210, 211, 1387, 50, 655, 1045, 53, 150, 55, 1214, + 158, 1216, 8, 1218, 150, 140, 141, 140, 141, 356, + 147, 148, 396, 397, 1409, 152, 1411, 154, 1413, 157, + 404, 156, 159, 156, 150, 691, 692, 150, 150, 140, + 141, 150, 150, 140, 141, 150, 140, 141, 4, 705, + 706, 707, 708, 709, 710, 156, 712, 4, 5, 156, + 150, 717, 156, 150, 157, 142, 143, 144, 157, 725, + 118, 119, 149, 6, 157, 12, 13, 140, 141, 735, + 736, 737, 738, 739, 150, 150, 152, 424, 425, 36, + 37, 38, 39, 156, 150, 42, 556, 434, 6, 147, + 148, 152, 156, 440, 158, 1008, 154, 150, 1313, 152, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 150, 58, 152, 5, 61, 62, 157, 64, 65, 66, + 150, 591, 152, 70, 157, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 150, + 150, 152, 152, 149, 1359, 151, 1361, 150, 1363, 152, + 152, 98, 99, 100, 1369, 68, 822, 627, 819, 152, + 1210, 118, 119, 633, 5, 150, 79, 152, 150, 150, + 152, 152, 85, 86, 5, 154, 89, 90, 6, 6, + 846, 847, 1397, 156, 1399, 158, 1401, 157, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 7, 1148, 7, 1150, 148, 4, 7, 1219, 149, - 1395, 7, 1397, 1159, 7, 1161, 7, 149, 1164, 156, - 6, 6, 6, 152, 6, 6, 151, 1173, 7, 1414, - 6, 136, 1178, 7, 7, 53, 7, 7, 55, 7, - 7, 746, 747, 6, 749, 7, 751, 752, 7, 150, - 755, 756, 150, 150, 1200, 150, 7, 7, 6, 4, - 1206, 4, 1208, 156, 1210, 6, 1203, 149, 7, 6, - 53, 7, 7, 1219, 6, 156, 6, 1223, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 6, 6, 1235, - 1236, 148, 6, 4, 4, 1306, 1242, 1308, 4, 6, - 4, 6, 1248, 156, 156, 150, 1252, 156, 149, 1206, - 150, 1208, 156, 1210, 156, 820, 821, 822, 153, 7, - 6, 1218, 156, 1220, 6, 156, 156, 61, 6, 940, - 6, 156, 6, 6, 1280, 4, 6, 5, 151, 844, - 6, 156, 7, 7, 7, 7, 1292, 7, 6, 1295, - 6, 1362, 1298, 156, 156, 152, 1302, 6, 6, 101, - 1306, 6, 1308, 7, 153, 6, 4, 6, 155, 6, - 6, 1317, 6, 6, 1320, 6, 6, 6, 6, 5, - 105, 6, 887, 6, 6, 6, 6, 6, 893, 6, - 6, 6, 6, 6, 899, 900, 901, 4, 155, 155, - 905, 155, 155, 6, 156, 910, 911, 912, 6, 153, - 7, 1308, 6, 6, 5, 7, 1362, 6, 6, 51, - 925, 6, 6, 6, 6, 156, 6, 156, 6, 157, - 935, 6, 156, 938, 156, 156, 156, 6, 6, 100, - 6, 6, 6, 6, 103, 6, 1057, 156, 156, 1060, - 6, 6, 6, 6, 157, 157, 961, 962, 963, 964, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 157, 6, 157, 157, 148, 156, - 6, 986, 68, 6, 6, 6, 6, 6, 3, 4, - 6, 881, 6, 6, 9, 10, 11, 6, 6, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 6, 6, 1027, 1028, 1029, 1030, 6, 6, 6, 6, - 157, 6, 47, 6, 6, 50, 6, 6, 53, 1150, - 55, 6, 6, 6, 156, 156, 156, 156, 156, 6, - 156, 156, 156, 1164, 156, 6, 71, 72, 73, 74, - 75, 6, 1067, 6, 6, 80, 6, 6, 83, 1280, - 886, 3, 3, -1, 991, -1, 377, -1, 1083, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1200, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 116, -1, -1, 119, 120, 121, -1, 1219, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, 139, 140, -1, 148, -1, 144, - -1, -1, -1, -1, 149, -1, -1, -1, -1, 154, - 1145, 156, 157, -1, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, 1168, 1169, 1170, 1171, -1, -1, -1, - -1, -1, 1177, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, 1199, 1306, 6, 1308, -1, -1, - 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, - 1215, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, 8, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 47, -1, -1, 50, -1, -1, - 53, 1362, 55, -1, -1, -1, -1, 12, 13, 1264, - -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, - 73, 74, 75, -1, -1, -1, -1, 80, -1, -1, - 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 6, -1, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, -1, 58, -1, -1, 61, 62, -1, 64, - 65, 66, -1, 116, 1319, 70, 119, 120, 121, -1, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, 139, 140, 148, -1, - -1, 144, 97, 98, 99, -1, 149, -1, -1, -1, - -1, 154, -1, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - 3, 4, 5, 148, 7, -1, 9, 10, 11, -1, - 1385, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 157, 36, 37, 38, 39, -1, -1, 42, - -1, -1, 12, 13, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, - -1, 61, 62, -1, 64, 65, 66, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, 110, -1, -1, - -1, -1, -1, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, 127, 128, 129, 97, 98, 99, - -1, -1, -1, -1, -1, -1, 139, 140, -1, -1, - -1, 144, -1, 146, 147, -1, 149, -1, 151, -1, - 153, 154, -1, 156, 3, 4, 5, -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, 157, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, - -1, 50, 12, 13, 53, -1, 55, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, - -1, 80, -1, -1, 83, -1, -1, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, - -1, 61, 62, -1, 64, 65, 66, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, 116, -1, -1, - 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 97, 98, 99, - 139, 140, -1, -1, -1, 144, -1, -1, -1, -1, - 149, -1, 3, 4, 5, 154, -1, 156, 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, -1, -1, -1, -1, 47, 157, -1, 50, - 12, 13, 53, -1, 55, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 71, 72, 73, 74, 75, -1, -1, -1, -1, 80, - -1, -1, 83, -1, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, -1, -1, 61, - 62, -1, 64, 65, 66, -1, -1, -1, 70, -1, - -1, -1, -1, -1, -1, 116, -1, -1, 119, 120, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 97, 98, 99, 139, 140, - -1, -1, -1, 144, -1, -1, -1, -1, 149, -1, - 3, 4, -1, 154, -1, 156, 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, - -1, -1, -1, -1, 47, 157, -1, 50, 12, 13, - 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, - 73, 74, 75, -1, -1, -1, -1, 80, -1, -1, - 83, -1, -1, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, -1, 58, -1, -1, 61, 62, -1, - 64, 65, 66, -1, -1, -1, 70, -1, -1, -1, - -1, -1, -1, 116, -1, -1, 119, 120, 121, -1, + 143, 144, 106, 6, 6, 866, 149, 68, 874, 556, + 594, 158, 559, 560, 156, 68, 158, 156, 79, 158, + 886, 6, 152, 607, 85, 86, 79, 154, 89, 90, + 68, 6, 85, 86, 4, 157, 89, 90, 152, 6, + 154, 79, 712, 149, 591, 158, 7, 85, 86, 152, + 157, 89, 90, 158, 920, 921, 922, 156, 156, 158, + 158, 7, 7, 929, 930, 735, 736, 737, 738, 7, + 156, 937, 158, 156, 53, 158, 55, 147, 148, 945, + 627, 156, 152, 158, 154, 150, 633, 157, 156, 159, + 158, 150, 150, 959, 960, 961, 156, 158, 158, 156, + 7, 158, 522, 523, 68, 158, 156, 973, 158, 156, + 971, 158, 978, 150, 156, 79, 158, 156, 151, 158, + 158, 85, 86, 6, 6, 89, 90, 993, 157, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 7, 7, 1011, 992, 149, 156, 103, + 158, 1017, 1018, 151, 151, 4, 1022, 6, 151, 579, + 1223, 745, 156, 1029, 158, 712, 156, 156, 158, 158, + 590, 6, 156, 1039, 158, 1041, 156, 151, 158, 156, + 156, 158, 158, 156, 156, 158, 1052, 156, 735, 736, + 737, 738, 151, 68, 158, 1041, 1062, 4, 156, 1065, + 158, 151, 68, 1069, 79, 789, 790, 791, 151, 156, + 85, 86, 1078, 79, 89, 90, 1045, 68, 153, 85, + 86, 1087, 1088, 89, 90, 68, 7, 156, 79, 158, + 106, 156, 1078, 158, 85, 86, 79, 68, 89, 90, + 7, 1107, 85, 86, 7, 7, 89, 90, 79, 106, + 7, 1314, 68, 7, 85, 86, 106, 7, 89, 90, + 156, 1374, 158, 79, 156, 156, 158, 158, 7, 85, + 86, 1137, 4, 89, 90, 945, 156, 156, 158, 158, + 6, 154, 6, 158, 156, 6, 158, 158, 1154, 158, + 1156, 1404, 158, 1406, 7, 7, 7, 4, 154, 7, + 1166, 7, 1168, 7, 7, 1171, 150, 158, 150, 157, + 1423, 6, 6, 6, 1180, 158, 153, 6, 6, 1185, + 7, 6, 152, 137, 53, 7, 7, 158, 55, 749, + 750, 7, 752, 7, 754, 755, 7, 7, 758, 759, + 6, 1207, 158, 7, 7, 151, 151, 1213, 151, 1215, + 151, 1217, 7, 937, 7, 6, 4, 4, 157, 150, + 1226, 6, 157, 7, 6, 1231, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 7, 7, 1243, 1244, 149, + 7, 1210, 6, 6, 1250, 6, 53, 6, 6, 4, + 1256, 4, 4, 157, 1260, 6, 157, 157, 945, 157, + 8, 4, 6, 150, 824, 825, 826, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 157, 7, 1289, 154, 149, 151, 6, 1012, 151, + 5, 61, 6, 6, 157, 1301, 6, 157, 1304, 157, + 157, 1307, 6, 6, 4, 1311, 7, 6, 157, 1315, + 7, 1317, 7, 7, 7, 152, 6, 6, 157, 157, + 1326, 157, 1046, 1329, 1048, 6, 1050, 153, 6, 102, + 6, 891, 7, 6, 154, 4, 6, 897, 1062, 6, + 1064, 1065, 6, 903, 904, 905, 6, 6, 6, 909, + 6, 6, 6, 5, 914, 915, 916, 6, 6, 106, + 6, 1171, 6, 6, 6, 1371, 6, 6, 6, 929, + 156, 6, 6, 4, 157, 1062, 156, 156, 1065, 939, + 156, 156, 942, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 1207, 6, 12, + 13, 149, 6, 5, 7, 6, 966, 967, 968, 969, + 6, 6, 154, 6, 51, 6, 1226, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 6, + 6, 991, 6, 149, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 6, 58, 157, 7, 61, 62, + 157, 64, 65, 66, 6, 6, 158, 70, 6, 157, + 101, 157, 6, 6, 6, 157, 157, 6, 104, 1156, + 6, 157, 1032, 1033, 1034, 1035, 6, 6, 158, 158, + 6, 158, 6, 157, 1171, 98, 99, 100, 68, 1213, + 158, 1215, 158, 1217, 157, 6, 6, 6, 6, 6, + 6, 1225, 6, 1227, 6, 1315, 6, 1317, 6, 6, + 6, 6, 6, 1073, 6, 6, 6, 6, 6, 6, + 1207, 6, 6, 6, 6, 158, 6, 157, 157, 1089, + 157, 157, 157, 157, 157, 157, 157, 6, 6, 1226, + 6, 6, 6, 6, 6, 158, 885, 3, 1289, 890, + 3, 3, 4, -1, 378, -1, -1, 9, 10, 11, + 996, 1371, 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, 1151, -1, 1317, -1, 47, -1, -1, 50, 12, + 13, 53, -1, 55, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1175, 1176, 1177, 1178, 71, + 72, 73, 74, 75, -1, -1, -1, -1, 1315, 81, + 1317, -1, 84, -1, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, -1, 58, -1, -1, 61, 62, + -1, 64, 65, 66, -1, -1, -1, 70, -1, -1, + -1, -1, 1222, -1, -1, 117, -1, -1, 120, 121, + 122, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1371, 98, 99, 100, 140, 141, + -1, -1, -1, 145, -1, -1, -1, -1, 150, -1, + -1, -1, -1, 155, 6, 157, 158, 3, 4, -1, + -1, -1, 1272, 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, 158, -1, -1, -1, -1, + -1, 47, -1, -1, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 97, 98, 99, 139, 140, -1, -1, - -1, 144, -1, -1, -1, -1, 149, -1, 3, 4, - -1, 154, -1, 156, 9, 10, 11, -1, -1, 14, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + -1, -1, -1, 6, -1, 81, 3, 4, 84, -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, 117, -1, -1, 120, 121, 122, -1, -1, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, -1, 140, 141, -1, 149, -1, 145, + -1, -1, -1, -1, 150, -1, -1, -1, -1, 155, + -1, -1, 158, 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, + 117, -1, 42, 120, 121, 122, 12, 13, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, -1, 140, 141, -1, 149, -1, 145, -1, + -1, -1, -1, 150, -1, -1, 153, -1, 155, -1, + 157, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, -1, 58, -1, -1, 61, 62, -1, 64, 65, + 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, 111, -1, -1, -1, -1, -1, 117, 118, 119, + 120, 121, 122, -1, -1, -1, -1, 127, 128, 129, + 130, -1, 98, 99, 100, -1, -1, -1, -1, -1, + 140, 141, -1, -1, -1, 145, -1, 147, 148, -1, + 150, -1, 152, -1, 154, 155, -1, 157, 3, 4, + 5, -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, -1, -1, - -1, -1, 47, 157, -1, 50, 12, 13, 53, -1, + -1, -1, 158, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 47, -1, -1, 50, 12, 13, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, - 75, -1, -1, -1, -1, 80, -1, -1, 83, -1, + 75, -1, -1, -1, -1, -1, 81, -1, -1, 84, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, -1, 61, 62, -1, 64, 65, - 66, -1, -1, 6, 70, -1, -1, -1, -1, -1, - -1, 116, -1, -1, 119, 120, 121, -1, -1, -1, + 66, -1, -1, -1, 70, -1, -1, -1, -1, -1, + -1, -1, 117, -1, -1, 120, 121, 122, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 98, 99, 100, 140, 141, -1, -1, -1, + 145, -1, -1, -1, -1, 150, -1, 3, 4, 5, + 155, -1, 157, 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, -1, -1, -1, - -1, 97, 98, 99, 139, 140, -1, -1, -1, 144, - -1, -1, 6, -1, 149, -1, 3, 4, -1, 154, - -1, 156, 9, 10, 11, -1, -1, 14, 15, 16, + -1, 47, 158, -1, 50, 12, 13, 53, -1, 55, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + -1, -1, -1, -1, -1, 81, -1, -1, 84, -1, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, -1, -1, 61, 62, -1, 64, 65, 66, + -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, + -1, 117, -1, -1, 120, 121, 122, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 98, 99, 100, 140, 141, -1, -1, -1, 145, + -1, -1, -1, -1, 150, -1, 3, 4, -1, 155, + -1, 157, 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, -1, -1, -1, -1, - 47, 157, -1, 50, -1, -1, 53, -1, 55, -1, + 47, 158, -1, 50, 12, 13, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, - -1, -1, -1, 80, -1, -1, 83, 130, 131, 132, + -1, -1, -1, -1, 81, -1, -1, 84, -1, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, + 58, -1, -1, 61, 62, -1, 64, 65, 66, -1, + -1, -1, 70, 6, -1, -1, -1, -1, -1, -1, + 117, -1, -1, 120, 121, 122, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, 99, 100, 140, 141, -1, -1, -1, 145, -1, + -1, 6, -1, 150, -1, 3, 4, -1, 155, -1, + 157, 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, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 47, + 158, -1, 50, 149, -1, 53, -1, 55, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, + -1, -1, -1, 81, -1, -1, 84, -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, 6, -1, -1, -1, -1, -1, -1, -1, 116, - -1, -1, 119, 120, 121, -1, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, 139, 140, 148, -1, -1, 144, -1, -1, - 6, -1, 149, -1, 3, 4, -1, 154, -1, 156, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, 6, -1, -1, -1, -1, -1, -1, -1, 117, + -1, -1, 120, 121, 122, -1, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, 140, 141, 149, -1, -1, 145, -1, -1, + 6, -1, 150, -1, 3, 4, -1, 155, -1, 157, 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, @@ -2468,594 +2471,607 @@ static const yytype_int16 yycheck[] = -1, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, -1, -1, - -1, 80, -1, -1, 83, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, - 119, 120, 121, -1, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - 139, 140, 148, -1, -1, 144, -1, -1, 6, -1, - 149, -1, 3, 4, -1, 154, -1, 156, 9, 10, + -1, -1, 81, -1, -1, 84, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + 6, -1, -1, -1, -1, -1, -1, -1, 117, -1, + -1, 120, 121, 122, -1, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, 140, 141, 149, -1, -1, 145, -1, -1, 6, + -1, 150, -1, 3, 4, -1, 155, -1, 157, 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, -1, -1, -1, -1, 47, -1, -1, + 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 71, 72, 73, 74, 75, -1, -1, -1, -1, + -1, 81, -1, -1, 84, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 117, -1, -1, + 120, 121, 122, -1, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + 140, 141, 149, -1, -1, 145, -1, -1, 6, -1, + 150, -1, 3, 4, -1, 155, -1, 157, 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, -1, -1, -1, -1, 47, -1, -1, 50, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 71, 72, 73, 74, 75, 6, -1, 3, 4, 80, - -1, -1, 83, 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, 116, -1, -1, 119, 120, - 121, -1, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, 139, 140, - 148, -1, -1, 144, -1, -1, -1, -1, 149, 8, - 3, 4, 5, 154, -1, 156, 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, - 116, -1, -1, 119, 120, 121, -1, -1, -1, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 139, 140, -1, -1, 148, 144, -1, - -1, -1, -1, 149, -1, -1, 152, -1, 154, 8, - 156, 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, 116, 117, 118, 119, 120, 121, 8, - -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, 139, 140, -1, 148, - -1, 144, -1, -1, -1, -1, 149, 8, 3, 4, - -1, 154, -1, 156, 9, 10, 11, -1, -1, 14, + 71, 72, 73, 74, 75, 6, -1, -1, 3, 4, + 81, -1, -1, 84, 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, -1, -1, - -1, -1, -1, -1, 116, -1, -1, 119, 120, 121, - -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, 139, 140, 148, - -1, -1, 144, -1, -1, -1, -1, 149, -1, -1, - 152, -1, 154, -1, 156, -1, -1, -1, -1, -1, - -1, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 116, -1, -1, 119, 120, 121, -1, -1, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, 139, 140, -1, 148, -1, 144, - -1, -1, -1, -1, 149, -1, 3, 4, -1, 154, - -1, 156, 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, -1, -1, -1, -1, - 47, -1, -1, 50, -1, -1, 53, -1, 55, -1, - -1, -1, -1, -1, 68, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 71, 72, 73, 74, 75, -1, - -1, 3, 4, 80, -1, -1, 83, 9, 10, 11, + 8, -1, -1, -1, -1, -1, 117, -1, -1, 120, + 121, 122, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, 140, + 141, 149, -1, -1, 145, -1, -1, -1, -1, 150, + 8, 3, 4, 5, 155, -1, 157, 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, 116, - -1, -1, 119, 120, 121, -1, 130, 131, 132, 133, + 32, 33, 34, -1, 36, 37, 38, 39, -1, -1, + 42, -1, 117, -1, -1, 120, 121, 122, -1, -1, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, 140, 141, -1, 149, -1, + 145, -1, -1, -1, -1, 150, -1, -1, -1, -1, + 155, -1, 157, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 117, 118, 119, 120, 121, + 122, -1, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, 140, 141, + -1, 149, -1, 145, -1, -1, -1, -1, 150, 8, + 3, 4, -1, 155, -1, 157, 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, + -1, -1, -1, -1, 47, -1, -1, 50, -1, -1, + 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 71, 72, + 73, 74, 75, -1, 8, -1, 3, 4, 81, -1, + -1, 84, 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, 8, -1, + -1, -1, -1, -1, 117, -1, -1, 120, 121, 122, + -1, -1, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, 140, 141, -1, + 149, -1, 145, 3, 4, 5, -1, 150, -1, 9, + 10, 11, 155, -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, + 117, -1, -1, 120, 121, 122, -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, 139, 140, 148, -1, -1, 144, 3, 4, - 5, -1, 149, -1, 9, 10, 11, 154, -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, 116, -1, -1, 119, 120, 121, - -1, 12, 13, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 139, 140, -1, - -1, 148, 144, -1, -1, -1, -1, 149, 155, -1, - 157, -1, 154, -1, -1, -1, 47, 48, 49, 50, + 144, -1, -1, 140, 141, 149, -1, -1, 145, -1, + -1, -1, -1, 150, -1, -1, -1, -1, 155, -1, + -1, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, -1, -1, -1, -1, -1, -1, 117, 118, 119, + 120, 121, 122, 0, 1, -1, -1, 4, -1, -1, + -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, + 140, 141, -1, -1, -1, 145, -1, -1, -1, -1, + 150, -1, -1, -1, -1, 155, -1, -1, 35, -1, + -1, -1, -1, 40, 41, -1, 43, 44, 45, -1, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, -1, 69, 70, 71, 72, 73, 74, 75, 76, + -1, -1, 79, 80, 81, 82, 83, 84, -1, -1, + 87, 88, -1, -1, -1, 92, -1, -1, -1, -1, + 97, 98, 99, 100, -1, -1, 103, -1, 105, -1, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, -1, 4, -1, -1, -1, 123, 124, 125, 126, + 12, 13, -1, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 35, -1, -1, -1, -1, 40, 41, + 158, 43, 44, 45, -1, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, -1, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, -1, 69, 70, 71, + 72, 73, 74, 75, 76, -1, -1, 79, 80, 81, + 82, 83, 84, -1, -1, 87, 88, 68, -1, -1, + 92, 12, 13, -1, -1, 97, 98, 99, 100, -1, + -1, 103, -1, 105, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, -1, -1, -1, -1, + -1, 123, 124, 125, 126, -1, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, -1, -1, 61, 62, -1, 64, 65, 66, -1, -1, -1, 70, - -1, 116, 117, 118, 119, 120, 121, 0, 1, -1, - -1, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, -1, -1, 139, 140, 97, 98, 99, 144, - -1, -1, -1, -1, 149, -1, -1, -1, -1, 154, - -1, -1, 35, -1, -1, -1, -1, 40, 41, -1, - 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, -1, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, -1, 69, 70, 71, 72, - 73, 74, 75, 76, -1, 78, 79, 80, 81, 82, - 83, -1, -1, 86, 87, -1, -1, -1, 91, -1, - -1, -1, -1, 96, 97, 98, 99, -1, -1, 102, - -1, 104, -1, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, -1, -1, 4, -1, -1, -1, 122, - 123, 124, 125, 12, 13, -1, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 35, -1, -1, -1, - -1, 40, 41, 157, 43, 44, 45, -1, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, -1, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, -1, - 69, 70, 71, 72, 73, 74, 75, 76, -1, 78, - 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, - -1, -1, 91, -1, -1, -1, -1, 96, 97, 98, - 99, -1, -1, 102, -1, 104, -1, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, -1, -1, -1, - -1, -1, -1, 122, 123, 124, 125, 130, 131, 132, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 98, 99, 100, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, -1, 157, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, - 157, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, -1, 158, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, -1, 158, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, 157, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, -1, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - -1, -1, 157, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, - 157, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, 157, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, -1, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - -1, -1, 157, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, - 157, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, 157, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, -1, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - -1, -1, 157, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, - 157, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, 157, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, -1, -1, 157, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - -1, -1, 157, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, -1, -1, - 157, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, -1, -1, 157, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, -1, + -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, 157, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, -1, -1, 158, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, -1, 156, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, -1, -1, -1, -1, -1, -1, - 156, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, -1, -1, -1, -1, 155, 130, 131, 132, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, -1, -1, -1, -1, -1, + -1, 157, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, 155, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, 155, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, 155, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, 155, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, 155, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, 155, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, 155, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, 155, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, -1, -1, -1, 155, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, -1, -1, -1, - 155, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, -1, -1, -1, 155, 130, 131, 132, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, -1, -1, + -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, -1, - -1, -1, 155, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, -1, -1, -1, 155, 130, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, -1, -1, -1, 156, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, 152, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, -1, -1, 152, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, 152, 130, 131, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, -1, -1, - 152, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, 152, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, -1, -1, 152, 130, 131, 132, + 142, 143, 144, -1, -1, -1, -1, 149, -1, -1, + -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, 152, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - -1, -1, 152, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, 152, 130, 131, 132, 133, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, -1, -1, 152, 130, + 144, -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, 152, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, -1, -1, 152, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, 152, 130, 131, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, -1, -1, - 152, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, 152, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, -1, -1, 152, 130, 131, 132, + 142, 143, 144, -1, -1, -1, -1, 149, -1, -1, + -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, 152, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - -1, -1, 152, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, 152, 130, 131, 132, 133, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, -1, -1, 152, 130, + 144, -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, 152, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, -1, -1, 152, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, 152, 130, 131, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, -1, -1, - 152, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, -1, -1, 152, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, -1, -1, 152, 130, 131, 132, + 142, 143, 144, -1, -1, -1, -1, 149, -1, -1, + -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, -1, -1, 152, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - -1, -1, 152, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, -1, -1, 152, 130, 131, 132, 133, + 143, 144, -1, -1, -1, -1, 149, -1, -1, -1, + 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, -1, -1, 152, 130, + 144, -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, -1, - -1, 152, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, -1, -1, 152, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, -1, -1, 152, 130, 131, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, -1, -1, 153, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, 150, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, 150, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, 150, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, 150, 130, 131, 132, 133, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 150, 130, 131, 132, + 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, 150, 130, 131, + 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, 150, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, 150, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, 150, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, 150, 130, 131, 132, 133, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 150, 130, 131, 132, + 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, 150, 130, 131, + 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, 150, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, 150, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, 150, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, 150, 130, 131, 132, 133, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 150, 130, 131, 132, + 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, 150, 130, 131, + 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, 150, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, 150, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, 150, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, 150, 130, 131, 132, 133, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 150, 130, 131, 132, + 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, 150, 130, 131, + 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148, - -1, 150, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, - 148, -1, 150, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, - -1, 148, -1, 150, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, - -1, -1, 148, -1, 150, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, - -1, -1, -1, 148, -1, 150, 130, 131, 132, 133, + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, + -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, + -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - -1, -1, -1, -1, 148, -1, 150, 130, 131, 132, + 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, -1, -1, -1, -1, 148, -1, 150, 130, 131, + 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, -1, -1, -1, -1, 148, -1, 150, 130, + 142, 143, 144, -1, -1, -1, -1, 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, -1, -1, -1, -1, 148, -1, 150, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, -1, -1, -1, -1, 148, -1, - 150, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, -1, -1, -1, -1, 148 + 141, 142, 143, 144, -1, -1, -1, -1, 149, -1, + 151, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, -1, -1, -1, -1, 149, + -1, 151, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, + 149, -1, 151, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, + -1, 149 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 160, 161, 6, 0, 4, 12, 13, 35, + 0, 1, 161, 162, 6, 0, 4, 12, 13, 35, 40, 41, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 70, 71, 72, 73, - 74, 75, 76, 78, 79, 80, 81, 82, 83, 86, - 87, 91, 96, 97, 98, 99, 102, 104, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 122, 123, - 124, 125, 162, 164, 165, 183, 187, 192, 195, 196, - 197, 198, 199, 200, 201, 221, 222, 223, 224, 225, + 74, 75, 76, 79, 80, 81, 82, 83, 84, 87, + 88, 92, 97, 98, 99, 100, 103, 105, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 123, 124, + 125, 126, 163, 165, 166, 184, 188, 193, 196, 197, + 198, 199, 200, 201, 202, 222, 223, 224, 225, 226, 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, 110, 116, 117, 118, 119, 120, 121, - 126, 127, 128, 129, 139, 140, 144, 146, 147, 149, - 151, 153, 154, 156, 181, 182, 226, 227, 239, 13, - 53, 149, 6, 156, 6, 6, 6, 6, 149, 156, - 149, 149, 77, 149, 156, 149, 149, 77, 156, 149, - 149, 57, 53, 53, 6, 53, 53, 50, 53, 55, + 38, 39, 42, 111, 117, 118, 119, 120, 121, 122, + 127, 128, 129, 130, 140, 141, 145, 147, 148, 150, + 152, 154, 155, 157, 182, 183, 227, 228, 240, 13, + 53, 150, 6, 157, 6, 6, 6, 6, 150, 157, + 150, 150, 78, 150, 157, 150, 150, 78, 157, 150, + 150, 57, 53, 53, 6, 53, 53, 50, 53, 55, 55, 47, 50, 53, 55, 50, 53, 55, 50, 53, - 149, 50, 156, 139, 140, 149, 156, 228, 229, 228, - 156, 47, 50, 53, 156, 228, 4, 51, 61, 53, - 53, 50, 4, 110, 156, 4, 6, 47, 50, 4, - 4, 4, 5, 47, 50, 53, 55, 140, 156, 192, - 201, 226, 231, 232, 233, 4, 149, 149, 149, 4, - 156, 235, 4, 149, 149, 6, 151, 4, 4, 5, - 156, 5, 156, 149, 149, 149, 149, 4, 151, 153, - 158, 182, 156, 5, 239, 149, 151, 149, 151, 149, - 151, 149, 151, 149, 151, 149, 151, 149, 151, 149, - 151, 149, 151, 149, 151, 149, 151, 149, 151, 149, - 151, 149, 151, 149, 151, 149, 151, 149, 151, 149, - 151, 149, 151, 149, 151, 149, 151, 149, 149, 149, - 149, 7, 149, 149, 149, 4, 226, 226, 226, 226, - 152, 156, 226, 4, 102, 103, 4, 4, 192, 193, - 194, 226, 6, 6, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 148, 6, - 6, 226, 5, 226, 226, 140, 226, 233, 234, 226, - 226, 149, 226, 234, 226, 226, 149, 234, 226, 226, - 231, 149, 156, 149, 149, 232, 232, 232, 149, 188, - 189, 190, 191, 149, 149, 149, 231, 226, 4, 231, - 228, 228, 228, 226, 226, 139, 140, 156, 156, 228, - 156, 156, 156, 139, 140, 149, 194, 228, 156, 149, - 156, 149, 149, 232, 231, 149, 4, 6, 151, 151, - 194, 6, 156, 156, 151, 151, 151, 5, 156, 5, - 5, 5, 156, 226, 233, 157, 234, 8, 141, 6, - 6, 226, 226, 226, 153, 226, 156, 105, 226, 226, - 226, 6, 6, 194, 6, 194, 4, 238, 239, 238, - 238, 238, 151, 226, 4, 156, 166, 6, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 238, 238, 238, 238, 226, 238, 238, 238, 151, 150, - 7, 129, 234, 152, 7, 181, 182, 153, 7, 151, - 157, 47, 50, 53, 55, 187, 6, 226, 226, 226, - 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 6, 150, 155, 155, 150, 141, 155, 157, - 150, 150, 226, 150, 157, 150, 150, 226, 157, 150, - 150, 7, 226, 226, 226, 226, 7, 7, 219, 219, - 226, 149, 149, 149, 149, 226, 226, 226, 7, 156, - 150, 6, 155, 155, 155, 228, 228, 193, 193, 155, - 226, 226, 226, 226, 205, 155, 194, 226, 226, 226, - 226, 7, 220, 7, 226, 6, 226, 226, 157, 234, - 234, 226, 226, 152, 156, 226, 226, 234, 157, 226, - 156, 226, 233, 150, 150, 150, 102, 155, 194, 156, - 8, 150, 152, 157, 157, 151, 153, 150, 150, 150, - 150, 226, 152, 182, 226, 4, 92, 93, 94, 95, - 157, 169, 173, 176, 178, 179, 150, 152, 150, 152, + 150, 50, 157, 140, 141, 150, 157, 229, 230, 229, + 157, 47, 50, 53, 157, 229, 4, 51, 61, 77, + 53, 53, 50, 4, 111, 157, 4, 6, 47, 50, + 4, 4, 4, 5, 47, 50, 53, 55, 141, 157, + 193, 202, 227, 232, 233, 234, 4, 150, 150, 150, + 4, 157, 236, 4, 150, 150, 6, 152, 4, 4, + 5, 157, 5, 157, 150, 150, 150, 150, 4, 152, + 154, 159, 183, 157, 5, 240, 150, 152, 150, 152, 150, 152, 150, 152, 150, 152, 150, 152, 150, 152, - 150, 152, 150, 152, 150, 152, 150, 152, 155, 155, 150, 152, 150, 152, 150, 152, 150, 152, 150, 152, - 150, 152, 155, 155, 155, 155, 155, 155, 150, 155, - 155, 150, 150, 6, 155, 150, 155, 231, 231, 157, - 7, 153, 181, 182, 239, 226, 6, 4, 4, 156, - 236, 152, 156, 156, 156, 156, 8, 6, 136, 163, - 234, 226, 7, 226, 233, 105, 7, 7, 150, 7, - 105, 7, 7, 150, 105, 7, 7, 226, 150, 157, - 150, 150, 226, 231, 4, 218, 6, 150, 184, 226, - 239, 184, 184, 184, 150, 150, 150, 231, 234, 153, - 228, 226, 226, 157, 157, 226, 155, 155, 155, 68, - 78, 84, 85, 88, 89, 215, 216, 228, 157, 202, - 150, 157, 150, 150, 226, 6, 226, 150, 152, 152, - 157, 157, 152, 152, 234, 152, 157, 157, 8, 234, - 7, 7, 7, 153, 226, 157, 226, 226, 7, 153, - 226, 4, 7, 7, 7, 7, 152, 153, 182, 238, - 157, 170, 149, 149, 156, 180, 6, 226, 226, 226, - 226, 226, 226, 226, 226, 234, 238, 226, 238, 6, - 6, 152, 4, 102, 103, 226, 6, 6, 6, 7, - 151, 235, 237, 6, 234, 234, 234, 234, 226, 136, - 238, 150, 155, 228, 53, 231, 231, 7, 231, 53, - 55, 231, 231, 7, 55, 231, 231, 6, 7, 7, - 7, 7, 68, 217, 6, 7, 150, 150, 150, 150, - 7, 7, 7, 6, 157, 4, 155, 155, 155, 157, - 228, 228, 228, 4, 6, 156, 149, 6, 90, 6, - 90, 157, 216, 155, 215, 7, 6, 7, 7, 6, - 156, 6, 6, 6, 53, 6, 6, 157, 226, 157, - 231, 231, 231, 4, 155, 8, 8, 150, 4, 4, - 152, 156, 156, 156, 156, 6, 4, 6, 149, 226, - 226, 230, 231, 156, 150, 152, 150, 152, 150, 152, - 150, 152, 150, 150, 150, 150, 181, 7, 181, 182, - 153, 7, 6, 235, 226, 155, 157, 157, 157, 157, - 157, 6, 6, 163, 226, 6, 156, 61, 186, 186, - 231, 6, 156, 156, 6, 6, 231, 156, 6, 6, - 5, 231, 231, 231, 4, 6, 231, 7, 7, 7, - 7, 231, 231, 231, 7, 6, 7, 226, 226, 226, - 156, 155, 157, 155, 157, 155, 157, 151, 226, 231, - 226, 6, 6, 226, 228, 157, 5, 156, 231, 156, - 156, 231, 234, 156, 152, 6, 6, 101, 226, 226, - 226, 6, 7, 153, 231, 231, 231, 231, 182, 167, - 226, 155, 155, 155, 157, 168, 226, 231, 239, 226, - 6, 4, 236, 6, 152, 235, 6, 6, 6, 6, - 238, 155, 226, 228, 6, 6, 6, 226, 226, 6, - 226, 5, 6, 6, 105, 185, 226, 6, 231, 231, - 231, 231, 6, 4, 6, 6, 226, 226, 239, 157, - 150, 155, 157, 193, 228, 6, 206, 228, 6, 207, - 228, 6, 208, 226, 157, 155, 150, 157, 155, 6, - 140, 228, 6, 228, 228, 6, 157, 226, 231, 155, - 157, 8, 157, 150, 156, 226, 239, 4, 155, 155, - 155, 155, 150, 155, 226, 226, 231, 156, 155, 157, - 6, 6, 6, 7, 6, 153, 6, 226, 157, 157, - 157, 157, 5, 51, 6, 6, 6, 6, 6, 156, - 156, 6, 6, 156, 226, 157, 155, 156, 155, 156, - 155, 156, 152, 6, 231, 7, 156, 226, 155, 155, - 155, 6, 157, 100, 226, 226, 234, 6, 6, 231, - 231, 231, 231, 171, 226, 155, 155, 230, 226, 6, - 235, 103, 155, 6, 6, 6, 6, 6, 156, 230, - 234, 193, 155, 157, 226, 228, 215, 226, 228, 215, - 226, 228, 215, 6, 155, 157, 231, 194, 157, 228, - 234, 228, 226, 157, 157, 157, 157, 157, 157, 157, - 156, 226, 226, 157, 6, 226, 226, 157, 157, 157, - 226, 157, 155, 157, 157, 155, 157, 157, 155, 157, - 231, 6, 68, 157, 203, 156, 155, 157, 155, 6, - 6, 6, 6, 6, 6, 168, 150, 155, 6, 156, - 155, 157, 6, 6, 157, 6, 209, 226, 6, 6, - 210, 226, 6, 6, 211, 226, 6, 157, 226, 215, - 194, 234, 6, 228, 234, 157, 174, 226, 230, 226, - 156, 157, 156, 157, 156, 157, 6, 6, 157, 157, - 204, 157, 155, 157, 6, 156, 150, 157, 157, 215, - 6, 212, 215, 6, 213, 215, 6, 214, 215, 6, - 234, 6, 172, 238, 177, 156, 6, 157, 156, 157, - 156, 157, 156, 157, 157, 155, 157, 156, 230, 6, - 215, 6, 215, 6, 215, 6, 238, 6, 175, 238, - 157, 157, 157, 157, 155, 157, 6, 6, 6, 6, - 238, 6 + 150, 152, 150, 152, 150, 152, 150, 152, 150, 152, + 150, 152, 150, 152, 150, 152, 150, 152, 150, 150, + 150, 150, 7, 150, 150, 150, 4, 227, 227, 227, + 227, 153, 157, 227, 4, 103, 104, 4, 4, 193, + 194, 195, 227, 6, 6, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 149, + 6, 6, 227, 5, 227, 227, 141, 227, 234, 235, + 227, 227, 150, 227, 235, 227, 227, 150, 235, 227, + 227, 232, 150, 157, 150, 150, 233, 233, 233, 150, + 189, 190, 191, 192, 150, 150, 150, 232, 227, 4, + 232, 229, 229, 229, 227, 227, 140, 141, 157, 157, + 229, 157, 157, 157, 140, 141, 150, 195, 229, 157, + 150, 157, 150, 150, 150, 233, 232, 150, 4, 6, + 152, 152, 195, 6, 157, 157, 152, 152, 152, 5, + 157, 5, 5, 5, 157, 227, 234, 158, 235, 8, + 142, 6, 6, 227, 227, 227, 154, 227, 157, 106, + 227, 227, 227, 6, 6, 195, 6, 195, 4, 239, + 240, 239, 239, 239, 152, 227, 4, 157, 167, 6, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 239, 239, 239, 239, 227, 239, 239, 239, + 152, 151, 7, 130, 235, 153, 7, 182, 183, 154, + 7, 152, 158, 47, 50, 53, 55, 188, 6, 227, + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 6, 151, 156, 156, 151, 142, + 156, 158, 151, 151, 227, 151, 158, 151, 151, 227, + 158, 151, 151, 7, 227, 227, 227, 227, 7, 7, + 220, 220, 227, 150, 150, 150, 150, 227, 227, 227, + 7, 157, 151, 6, 156, 156, 156, 229, 229, 194, + 194, 156, 227, 227, 227, 227, 206, 156, 195, 227, + 227, 227, 227, 227, 7, 221, 7, 227, 6, 227, + 227, 158, 235, 235, 227, 227, 153, 157, 227, 227, + 235, 158, 227, 157, 227, 234, 151, 151, 151, 103, + 156, 195, 157, 8, 151, 153, 158, 158, 152, 154, + 151, 151, 151, 151, 227, 153, 183, 227, 4, 93, + 94, 95, 96, 158, 170, 174, 177, 179, 180, 151, + 153, 151, 153, 151, 153, 151, 153, 151, 153, 151, + 153, 151, 153, 151, 153, 151, 153, 151, 153, 151, + 153, 156, 156, 151, 153, 151, 153, 151, 153, 151, + 153, 151, 153, 151, 153, 156, 156, 156, 156, 156, + 156, 151, 156, 156, 151, 151, 6, 156, 151, 156, + 232, 232, 158, 7, 154, 182, 183, 240, 227, 6, + 4, 4, 157, 237, 153, 157, 157, 157, 157, 8, + 6, 137, 164, 235, 227, 7, 227, 234, 106, 7, + 7, 151, 7, 106, 7, 7, 151, 106, 7, 7, + 227, 151, 158, 151, 151, 227, 232, 4, 219, 6, + 151, 185, 227, 240, 185, 185, 185, 151, 151, 151, + 232, 235, 154, 229, 227, 227, 158, 158, 227, 156, + 156, 156, 68, 79, 85, 86, 89, 90, 216, 217, + 229, 158, 203, 151, 158, 151, 151, 151, 227, 6, + 227, 151, 153, 153, 158, 158, 153, 153, 235, 153, + 158, 158, 8, 235, 7, 7, 7, 154, 227, 158, + 227, 227, 7, 154, 227, 4, 7, 7, 7, 7, + 153, 154, 183, 239, 158, 171, 150, 150, 157, 181, + 6, 227, 227, 227, 227, 227, 227, 227, 227, 235, + 239, 227, 239, 6, 6, 153, 4, 103, 104, 227, + 6, 6, 6, 7, 152, 236, 238, 6, 235, 235, + 235, 235, 227, 137, 239, 151, 156, 229, 53, 232, + 232, 7, 232, 53, 55, 232, 232, 7, 55, 232, + 232, 6, 7, 7, 7, 7, 68, 218, 6, 7, + 151, 151, 151, 151, 7, 7, 7, 6, 158, 4, + 156, 156, 156, 158, 229, 229, 229, 4, 6, 157, + 150, 6, 91, 6, 91, 158, 217, 156, 216, 7, + 6, 7, 7, 7, 6, 157, 6, 6, 6, 53, + 6, 6, 158, 227, 158, 232, 232, 232, 4, 156, + 8, 8, 151, 4, 4, 153, 157, 157, 157, 157, + 6, 4, 6, 150, 227, 227, 231, 232, 157, 151, + 153, 151, 153, 151, 153, 151, 153, 151, 151, 151, + 151, 182, 7, 182, 183, 154, 7, 6, 236, 227, + 156, 158, 158, 158, 158, 158, 6, 6, 164, 227, + 6, 157, 61, 187, 187, 232, 6, 157, 157, 6, + 6, 232, 157, 6, 6, 5, 232, 232, 232, 4, + 6, 232, 7, 7, 7, 7, 232, 232, 232, 7, + 6, 7, 227, 227, 227, 157, 156, 158, 156, 158, + 156, 158, 152, 227, 232, 227, 6, 6, 227, 229, + 158, 5, 157, 232, 157, 157, 232, 157, 235, 157, + 153, 6, 6, 102, 227, 227, 227, 6, 7, 154, + 232, 232, 232, 232, 183, 168, 227, 156, 156, 156, + 158, 169, 227, 232, 240, 227, 6, 4, 237, 6, + 153, 236, 6, 6, 6, 6, 239, 156, 227, 229, + 6, 6, 6, 227, 227, 6, 227, 5, 6, 6, + 106, 186, 227, 6, 232, 232, 232, 232, 6, 4, + 6, 6, 227, 227, 240, 158, 151, 156, 158, 194, + 229, 6, 207, 229, 6, 208, 229, 6, 209, 227, + 158, 156, 151, 158, 156, 6, 141, 229, 6, 229, + 229, 6, 231, 158, 227, 232, 156, 158, 8, 158, + 151, 157, 227, 240, 4, 156, 156, 156, 156, 151, + 156, 227, 227, 232, 157, 156, 158, 6, 6, 6, + 7, 6, 154, 6, 227, 158, 158, 158, 158, 5, + 51, 6, 6, 6, 6, 6, 157, 157, 6, 6, + 157, 227, 158, 156, 157, 156, 157, 156, 157, 153, + 6, 232, 7, 157, 227, 156, 156, 156, 158, 6, + 158, 101, 227, 227, 235, 6, 6, 232, 232, 232, + 232, 172, 227, 156, 156, 231, 227, 6, 236, 104, + 156, 6, 6, 6, 6, 6, 157, 231, 235, 194, + 156, 158, 227, 229, 216, 227, 229, 216, 227, 229, + 216, 6, 156, 158, 232, 195, 158, 229, 235, 229, + 6, 227, 158, 158, 158, 158, 158, 158, 158, 157, + 227, 227, 158, 6, 227, 227, 158, 158, 158, 227, + 158, 156, 158, 158, 156, 158, 158, 156, 158, 232, + 6, 68, 158, 204, 157, 156, 158, 156, 6, 6, + 6, 6, 6, 6, 169, 151, 156, 6, 157, 156, + 158, 6, 6, 158, 6, 210, 227, 6, 6, 211, + 227, 6, 6, 212, 227, 6, 158, 227, 216, 195, + 235, 6, 229, 235, 158, 175, 227, 231, 227, 157, + 158, 157, 158, 157, 158, 6, 6, 158, 158, 205, + 158, 156, 158, 6, 157, 151, 158, 158, 216, 6, + 213, 216, 6, 214, 216, 6, 215, 216, 6, 235, + 6, 173, 239, 178, 157, 6, 158, 157, 158, 157, + 158, 157, 158, 158, 156, 158, 157, 231, 6, 216, + 6, 216, 6, 216, 6, 239, 6, 176, 239, 158, + 158, 158, 158, 156, 158, 6, 6, 6, 6, 239, + 6 }; #define yyerrok (yyerrstatus = 0) @@ -3878,133 +3894,133 @@ yyreduce: case 3: /* Line 1464 of yacc.c */ -#line 160 "Gmsh.y" +#line 161 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: /* Line 1464 of yacc.c */ -#line 171 "Gmsh.y" +#line 172 "Gmsh.y" { return 1; ;} break; case 7: /* Line 1464 of yacc.c */ -#line 172 "Gmsh.y" +#line 173 "Gmsh.y" { return 1; ;} break; case 8: /* Line 1464 of yacc.c */ -#line 173 "Gmsh.y" +#line 174 "Gmsh.y" { return 1; ;} break; case 9: /* Line 1464 of yacc.c */ -#line 174 "Gmsh.y" +#line 175 "Gmsh.y" { return 1; ;} break; case 10: /* Line 1464 of yacc.c */ -#line 175 "Gmsh.y" +#line 176 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: /* Line 1464 of yacc.c */ -#line 176 "Gmsh.y" +#line 177 "Gmsh.y" { return 1; ;} break; case 12: /* Line 1464 of yacc.c */ -#line 177 "Gmsh.y" +#line 178 "Gmsh.y" { return 1; ;} break; case 13: /* Line 1464 of yacc.c */ -#line 178 "Gmsh.y" +#line 179 "Gmsh.y" { return 1; ;} break; case 14: /* Line 1464 of yacc.c */ -#line 179 "Gmsh.y" +#line 180 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 15: /* Line 1464 of yacc.c */ -#line 180 "Gmsh.y" +#line 181 "Gmsh.y" { return 1; ;} break; case 16: /* Line 1464 of yacc.c */ -#line 181 "Gmsh.y" +#line 182 "Gmsh.y" { return 1; ;} break; case 17: /* Line 1464 of yacc.c */ -#line 182 "Gmsh.y" +#line 183 "Gmsh.y" { return 1; ;} break; case 18: /* Line 1464 of yacc.c */ -#line 183 "Gmsh.y" +#line 184 "Gmsh.y" { return 1; ;} break; case 19: /* Line 1464 of yacc.c */ -#line 184 "Gmsh.y" +#line 185 "Gmsh.y" { return 1; ;} break; case 20: /* Line 1464 of yacc.c */ -#line 185 "Gmsh.y" +#line 186 "Gmsh.y" { return 1; ;} break; case 21: /* Line 1464 of yacc.c */ -#line 186 "Gmsh.y" +#line 187 "Gmsh.y" { return 1; ;} break; case 22: /* Line 1464 of yacc.c */ -#line 187 "Gmsh.y" +#line 188 "Gmsh.y" { return 1; ;} break; case 23: /* Line 1464 of yacc.c */ -#line 192 "Gmsh.y" +#line 193 "Gmsh.y" { (yyval.c) = (char*)"w"; ;} @@ -4013,7 +4029,7 @@ yyreduce: case 24: /* Line 1464 of yacc.c */ -#line 196 "Gmsh.y" +#line 197 "Gmsh.y" { (yyval.c) = (char*)"a"; ;} @@ -4022,7 +4038,7 @@ yyreduce: case 25: /* Line 1464 of yacc.c */ -#line 203 "Gmsh.y" +#line 204 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); Free((yyvsp[(3) - (5)].c)); @@ -4032,7 +4048,7 @@ yyreduce: case 26: /* Line 1464 of yacc.c */ -#line 208 "Gmsh.y" +#line 209 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); FILE *fp = fopen(tmp.c_str(), (yyvsp[(5) - (7)].c)); @@ -4051,7 +4067,7 @@ yyreduce: case 27: /* Line 1464 of yacc.c */ -#line 222 "Gmsh.y" +#line 223 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (7)].c), (yyvsp[(5) - (7)].l), tmpstring); @@ -4069,7 +4085,7 @@ yyreduce: case 28: /* Line 1464 of yacc.c */ -#line 235 "Gmsh.y" +#line 236 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (9)].c), (yyvsp[(5) - (9)].l), tmpstring); @@ -4097,7 +4113,7 @@ yyreduce: case 29: /* Line 1464 of yacc.c */ -#line 263 "Gmsh.y" +#line 264 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (6)].c), "View") && ViewData->finalize()){ @@ -4116,7 +4132,7 @@ yyreduce: case 30: /* Line 1464 of yacc.c */ -#line 277 "Gmsh.y" +#line 278 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -4132,7 +4148,7 @@ yyreduce: case 31: /* Line 1464 of yacc.c */ -#line 288 "Gmsh.y" +#line 289 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -4148,7 +4164,7 @@ yyreduce: case 32: /* Line 1464 of yacc.c */ -#line 302 "Gmsh.y" +#line 303 "Gmsh.y" { #if defined(HAVE_POST) ViewData = new PViewDataList(); @@ -4159,35 +4175,35 @@ yyreduce: case 38: /* Line 1464 of yacc.c */ -#line 316 "Gmsh.y" +#line 317 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 39: /* Line 1464 of yacc.c */ -#line 318 "Gmsh.y" +#line 319 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 40: /* Line 1464 of yacc.c */ -#line 323 "Gmsh.y" +#line 324 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; case 41: /* Line 1464 of yacc.c */ -#line 325 "Gmsh.y" +#line 326 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} break; case 42: /* Line 1464 of yacc.c */ -#line 330 "Gmsh.y" +#line 331 "Gmsh.y" { #if defined(HAVE_POST) if(!strncmp((yyvsp[(1) - (1)].c), "SP", 2)){ @@ -4296,7 +4312,7 @@ yyreduce: case 43: /* Line 1464 of yacc.c */ -#line 434 "Gmsh.y" +#line 435 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList){ @@ -4311,7 +4327,7 @@ yyreduce: case 44: /* Line 1464 of yacc.c */ -#line 444 "Gmsh.y" +#line 445 "Gmsh.y" { #if defined(HAVE_POST) if(ViewValueList) (*ViewNumList)++; @@ -4322,7 +4338,7 @@ yyreduce: case 45: /* Line 1464 of yacc.c */ -#line 453 "Gmsh.y" +#line 454 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -4334,7 +4350,7 @@ yyreduce: case 46: /* Line 1464 of yacc.c */ -#line 460 "Gmsh.y" +#line 461 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T2C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -4346,7 +4362,7 @@ yyreduce: case 47: /* Line 1464 of yacc.c */ -#line 470 "Gmsh.y" +#line 471 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T2D.push_back((yyvsp[(3) - (8)].d)); @@ -4360,7 +4376,7 @@ yyreduce: case 48: /* Line 1464 of yacc.c */ -#line 479 "Gmsh.y" +#line 480 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT2++; @@ -4371,7 +4387,7 @@ yyreduce: case 49: /* Line 1464 of yacc.c */ -#line 488 "Gmsh.y" +#line 489 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(1) - (1)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(1) - (1)].c)[i]); @@ -4383,7 +4399,7 @@ yyreduce: case 50: /* Line 1464 of yacc.c */ -#line 495 "Gmsh.y" +#line 496 "Gmsh.y" { #if defined(HAVE_POST) for(int i = 0; i < (int)strlen((yyvsp[(3) - (3)].c)) + 1; i++) ViewData->T3C.push_back((yyvsp[(3) - (3)].c)[i]); @@ -4395,7 +4411,7 @@ yyreduce: case 51: /* Line 1464 of yacc.c */ -#line 505 "Gmsh.y" +#line 506 "Gmsh.y" { #if defined(HAVE_POST) ViewData->T3D.push_back((yyvsp[(3) - (10)].d)); ViewData->T3D.push_back((yyvsp[(5) - (10)].d)); @@ -4408,7 +4424,7 @@ yyreduce: case 52: /* Line 1464 of yacc.c */ -#line 513 "Gmsh.y" +#line 514 "Gmsh.y" { #if defined(HAVE_POST) ViewData->NbT3++; @@ -4419,7 +4435,7 @@ yyreduce: case 53: /* Line 1464 of yacc.c */ -#line 523 "Gmsh.y" +#line 524 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -4440,7 +4456,7 @@ yyreduce: case 54: /* Line 1464 of yacc.c */ -#line 542 "Gmsh.y" +#line 543 "Gmsh.y" { #if defined(HAVE_POST) int type = @@ -4461,7 +4477,7 @@ yyreduce: case 55: /* Line 1464 of yacc.c */ -#line 561 "Gmsh.y" +#line 562 "Gmsh.y" { #if defined(HAVE_POST) ViewValueList = &ViewData->Time; @@ -4472,7 +4488,7 @@ yyreduce: case 56: /* Line 1464 of yacc.c */ -#line 567 "Gmsh.y" +#line 568 "Gmsh.y" { ;} break; @@ -4480,56 +4496,56 @@ yyreduce: case 57: /* Line 1464 of yacc.c */ -#line 574 "Gmsh.y" +#line 575 "Gmsh.y" { (yyval.i) = 0; ;} break; case 58: /* Line 1464 of yacc.c */ -#line 575 "Gmsh.y" +#line 576 "Gmsh.y" { (yyval.i) = 1; ;} break; case 59: /* Line 1464 of yacc.c */ -#line 576 "Gmsh.y" +#line 577 "Gmsh.y" { (yyval.i) = 2; ;} break; case 60: /* Line 1464 of yacc.c */ -#line 577 "Gmsh.y" +#line 578 "Gmsh.y" { (yyval.i) = 3; ;} break; case 61: /* Line 1464 of yacc.c */ -#line 578 "Gmsh.y" +#line 579 "Gmsh.y" { (yyval.i) = 4; ;} break; case 62: /* Line 1464 of yacc.c */ -#line 582 "Gmsh.y" +#line 583 "Gmsh.y" { (yyval.i) = 1; ;} break; case 63: /* Line 1464 of yacc.c */ -#line 583 "Gmsh.y" +#line 584 "Gmsh.y" { (yyval.i) = -1; ;} break; case 64: /* Line 1464 of yacc.c */ -#line 591 "Gmsh.y" +#line 592 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ if(!(yyvsp[(2) - (4)].i)) @@ -4560,7 +4576,7 @@ yyreduce: case 65: /* Line 1464 of yacc.c */ -#line 617 "Gmsh.y" +#line 618 "Gmsh.y" { int index = (int)(yyvsp[(3) - (7)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (7)].c))){ @@ -4592,7 +4608,7 @@ yyreduce: case 66: /* Line 1464 of yacc.c */ -#line 644 "Gmsh.y" +#line 645 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){ yymsg(0, "Incompatible array dimensions in affectation"); @@ -4637,7 +4653,7 @@ yyreduce: case 67: /* Line 1464 of yacc.c */ -#line 684 "Gmsh.y" +#line 685 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) gmsh_yysymbols[(yyvsp[(1) - (6)].c)].clear(); @@ -4652,7 +4668,7 @@ yyreduce: case 68: /* Line 1464 of yacc.c */ -#line 694 "Gmsh.y" +#line 695 "Gmsh.y" { // appends to the list for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++) @@ -4665,7 +4681,7 @@ yyreduce: case 69: /* Line 1464 of yacc.c */ -#line 702 "Gmsh.y" +#line 703 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (3)].c)); @@ -4682,7 +4698,7 @@ yyreduce: case 70: /* Line 1464 of yacc.c */ -#line 714 "Gmsh.y" +#line 715 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (6)].c)); @@ -4699,7 +4715,7 @@ yyreduce: case 71: /* Line 1464 of yacc.c */ -#line 726 "Gmsh.y" +#line 727 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c)); Free((yyvsp[(1) - (4)].c)); @@ -4710,7 +4726,7 @@ yyreduce: case 72: /* Line 1464 of yacc.c */ -#line 735 "Gmsh.y" +#line 736 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), tmp); @@ -4721,7 +4737,7 @@ yyreduce: case 73: /* Line 1464 of yacc.c */ -#line 741 "Gmsh.y" +#line 742 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); StringOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), tmp); @@ -4732,7 +4748,7 @@ yyreduce: case 74: /* Line 1464 of yacc.c */ -#line 750 "Gmsh.y" +#line 751 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), 0, (yyvsp[(3) - (6)].c), d)){ @@ -4755,7 +4771,7 @@ yyreduce: case 75: /* Line 1464 of yacc.c */ -#line 768 "Gmsh.y" +#line 769 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (9)].c), (int)(yyvsp[(3) - (9)].d), (yyvsp[(6) - (9)].c), d)){ @@ -4778,7 +4794,7 @@ yyreduce: case 76: /* Line 1464 of yacc.c */ -#line 786 "Gmsh.y" +#line 787 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(3) - (5)].c), d)){ @@ -4792,7 +4808,7 @@ yyreduce: case 77: /* Line 1464 of yacc.c */ -#line 795 "Gmsh.y" +#line 796 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (8)].c), (int)(yyvsp[(3) - (8)].d), (yyvsp[(6) - (8)].c), d)){ @@ -4806,7 +4822,7 @@ yyreduce: case 78: /* Line 1464 of yacc.c */ -#line 807 "Gmsh.y" +#line 808 "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)); @@ -4816,7 +4832,7 @@ yyreduce: case 79: /* Line 1464 of yacc.c */ -#line 812 "Gmsh.y" +#line 813 "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)); @@ -4826,7 +4842,7 @@ yyreduce: case 80: /* Line 1464 of yacc.c */ -#line 820 "Gmsh.y" +#line 821 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); if(!ct) @@ -4851,7 +4867,7 @@ yyreduce: case 81: /* Line 1464 of yacc.c */ -#line 840 "Gmsh.y" +#line 841 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); if(!ct) @@ -4876,7 +4892,7 @@ yyreduce: case 82: /* Line 1464 of yacc.c */ -#line 863 "Gmsh.y" +#line 864 "Gmsh.y" { #if defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (5)].c),"Background")) @@ -4890,7 +4906,7 @@ yyreduce: case 83: /* Line 1464 of yacc.c */ -#line 872 "Gmsh.y" +#line 873 "Gmsh.y" { #if defined(HAVE_MESH) if(!GModel::current()->getFields()->newField((int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c))) @@ -4903,7 +4919,7 @@ yyreduce: case 84: /* Line 1464 of yacc.c */ -#line 880 "Gmsh.y" +#line 881 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -4930,7 +4946,7 @@ yyreduce: case 85: /* Line 1464 of yacc.c */ -#line 902 "Gmsh.y" +#line 903 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (9)].d)); @@ -4958,7 +4974,7 @@ yyreduce: case 86: /* Line 1464 of yacc.c */ -#line 925 "Gmsh.y" +#line 926 "Gmsh.y" { #if defined(HAVE_MESH) Field *field = GModel::current()->getFields()->get((int)(yyvsp[(3) - (11)].d)); @@ -4988,7 +5004,7 @@ yyreduce: case 87: /* Line 1464 of yacc.c */ -#line 953 "Gmsh.y" +#line 954 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -5005,7 +5021,7 @@ yyreduce: case 88: /* Line 1464 of yacc.c */ -#line 965 "Gmsh.y" +#line 966 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -5022,7 +5038,7 @@ yyreduce: case 89: /* Line 1464 of yacc.c */ -#line 982 "Gmsh.y" +#line 983 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); ;} @@ -5031,7 +5047,7 @@ yyreduce: case 90: /* Line 1464 of yacc.c */ -#line 986 "Gmsh.y" +#line 987 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName (std::string((yyvsp[(1) - (1)].c)), curPhysDim, @@ -5043,7 +5059,7 @@ yyreduce: case 91: /* Line 1464 of yacc.c */ -#line 996 "Gmsh.y" +#line 997 "Gmsh.y" { (yyval.l) = 0; ;} @@ -5052,7 +5068,7 @@ yyreduce: case 92: /* Line 1464 of yacc.c */ -#line 1000 "Gmsh.y" +#line 1001 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); Vertex *v = FindPoint((int)(yyvsp[(4) - (5)].d)); @@ -5067,7 +5083,7 @@ yyreduce: case 93: /* Line 1464 of yacc.c */ -#line 1012 "Gmsh.y" +#line 1013 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; ;} @@ -5076,7 +5092,7 @@ yyreduce: case 94: /* Line 1464 of yacc.c */ -#line 1016 "Gmsh.y" +#line 1017 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} @@ -5085,7 +5101,7 @@ yyreduce: case 95: /* Line 1464 of yacc.c */ -#line 1026 "Gmsh.y" +#line 1027 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindPoint(num)){ @@ -5113,7 +5129,7 @@ yyreduce: case 96: /* Line 1464 of yacc.c */ -#line 1049 "Gmsh.y" +#line 1050 "Gmsh.y" { curPhysDim = 0; ;} @@ -5122,7 +5138,7 @@ yyreduce: case 97: /* Line 1464 of yacc.c */ -#line 1053 "Gmsh.y" +#line 1054 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -5143,7 +5159,7 @@ yyreduce: case 98: /* Line 1464 of yacc.c */ -#line 1069 "Gmsh.y" +#line 1070 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -5167,7 +5183,7 @@ yyreduce: case 99: /* Line 1464 of yacc.c */ -#line 1091 "Gmsh.y" +#line 1092 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5190,7 +5206,7 @@ yyreduce: case 100: /* Line 1464 of yacc.c */ -#line 1109 "Gmsh.y" +#line 1110 "Gmsh.y" { for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ double dnum; @@ -5216,7 +5232,7 @@ yyreduce: case 101: /* Line 1464 of yacc.c */ -#line 1130 "Gmsh.y" +#line 1131 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5239,7 +5255,7 @@ yyreduce: case 102: /* Line 1464 of yacc.c */ -#line 1148 "Gmsh.y" +#line 1149 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -5274,7 +5290,7 @@ yyreduce: case 103: /* Line 1464 of yacc.c */ -#line 1178 "Gmsh.y" +#line 1179 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); if(FindCurve(num)){ @@ -5309,7 +5325,7 @@ yyreduce: case 104: /* Line 1464 of yacc.c */ -#line 1208 "Gmsh.y" +#line 1209 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5332,7 +5348,7 @@ yyreduce: case 105: /* Line 1464 of yacc.c */ -#line 1226 "Gmsh.y" +#line 1227 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindCurve(num)){ @@ -5355,7 +5371,7 @@ yyreduce: case 106: /* Line 1464 of yacc.c */ -#line 1244 "Gmsh.y" +#line 1245 "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))){ @@ -5386,7 +5402,7 @@ yyreduce: case 107: /* Line 1464 of yacc.c */ -#line 1270 "Gmsh.y" +#line 1271 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindEdgeLoop(num)){ @@ -5408,7 +5424,7 @@ yyreduce: case 108: /* Line 1464 of yacc.c */ -#line 1287 "Gmsh.y" +#line 1288 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindCurve(num)){ @@ -5431,7 +5447,7 @@ yyreduce: case 109: /* Line 1464 of yacc.c */ -#line 1305 "Gmsh.y" +#line 1306 "Gmsh.y" { curPhysDim = 1; ;} @@ -5440,7 +5456,7 @@ yyreduce: case 110: /* Line 1464 of yacc.c */ -#line 1309 "Gmsh.y" +#line 1310 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -5461,7 +5477,7 @@ yyreduce: case 111: /* Line 1464 of yacc.c */ -#line 1328 "Gmsh.y" +#line 1329 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5484,7 +5500,7 @@ yyreduce: case 112: /* Line 1464 of yacc.c */ -#line 1346 "Gmsh.y" +#line 1347 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; if(FindSurface(num)){ @@ -5528,7 +5544,7 @@ yyreduce: case 113: /* Line 1464 of yacc.c */ -#line 1385 "Gmsh.y" +#line 1386 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -5539,7 +5555,7 @@ yyreduce: case 114: /* Line 1464 of yacc.c */ -#line 1391 "Gmsh.y" +#line 1392 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -5550,7 +5566,7 @@ yyreduce: case 115: /* Line 1464 of yacc.c */ -#line 1397 "Gmsh.y" +#line 1398 "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)); @@ -5562,7 +5578,7 @@ yyreduce: case 116: /* Line 1464 of yacc.c */ -#line 1404 "Gmsh.y" +#line 1405 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5592,7 +5608,7 @@ yyreduce: case 117: /* Line 1464 of yacc.c */ -#line 1429 "Gmsh.y" +#line 1430 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if (List_Nbr((yyvsp[(6) - (7)].l)) != 2){ @@ -5622,7 +5638,7 @@ yyreduce: case 118: /* Line 1464 of yacc.c */ -#line 1454 "Gmsh.y" +#line 1455 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurfaceLoop(num)){ @@ -5643,7 +5659,7 @@ yyreduce: case 119: /* Line 1464 of yacc.c */ -#line 1470 "Gmsh.y" +#line 1471 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindSurface(num)){ @@ -5665,7 +5681,7 @@ yyreduce: case 120: /* Line 1464 of yacc.c */ -#line 1488 "Gmsh.y" +#line 1489 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindSurface(num)){ @@ -5700,7 +5716,7 @@ yyreduce: case 121: /* Line 1464 of yacc.c */ -#line 1518 "Gmsh.y" +#line 1519 "Gmsh.y" { curPhysDim = 2; ;} @@ -5709,7 +5725,7 @@ yyreduce: case 122: /* Line 1464 of yacc.c */ -#line 1522 "Gmsh.y" +#line 1523 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5730,7 +5746,7 @@ yyreduce: case 123: /* Line 1464 of yacc.c */ -#line 1542 "Gmsh.y" +#line 1543 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5753,7 +5769,7 @@ yyreduce: case 124: /* Line 1464 of yacc.c */ -#line 1560 "Gmsh.y" +#line 1561 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5775,7 +5791,7 @@ yyreduce: case 125: /* Line 1464 of yacc.c */ -#line 1577 "Gmsh.y" +#line 1578 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); if(FindVolume(num)){ @@ -5796,7 +5812,7 @@ yyreduce: case 126: /* Line 1464 of yacc.c */ -#line 1593 "Gmsh.y" +#line 1594 "Gmsh.y" { curPhysDim = 3; ;} @@ -5805,7 +5821,7 @@ yyreduce: case 127: /* Line 1464 of yacc.c */ -#line 1597 "Gmsh.y" +#line 1598 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5826,7 +5842,7 @@ yyreduce: case 128: /* Line 1464 of yacc.c */ -#line 1619 "Gmsh.y" +#line 1620 "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); @@ -5836,7 +5852,7 @@ yyreduce: case 129: /* Line 1464 of yacc.c */ -#line 1624 "Gmsh.y" +#line 1625 "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); @@ -5846,7 +5862,7 @@ yyreduce: case 130: /* Line 1464 of yacc.c */ -#line 1629 "Gmsh.y" +#line 1630 "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); @@ -5856,7 +5872,7 @@ yyreduce: case 131: /* Line 1464 of yacc.c */ -#line 1634 "Gmsh.y" +#line 1635 "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); @@ -5866,7 +5882,7 @@ yyreduce: case 132: /* Line 1464 of yacc.c */ -#line 1639 "Gmsh.y" +#line 1640 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5894,7 +5910,7 @@ yyreduce: case 133: /* Line 1464 of yacc.c */ -#line 1662 "Gmsh.y" +#line 1663 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5905,7 +5921,7 @@ yyreduce: case 134: /* Line 1464 of yacc.c */ -#line 1668 "Gmsh.y" +#line 1669 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5918,21 +5934,21 @@ yyreduce: case 135: /* Line 1464 of yacc.c */ -#line 1678 "Gmsh.y" +#line 1679 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 136: /* Line 1464 of yacc.c */ -#line 1679 "Gmsh.y" +#line 1680 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 137: /* Line 1464 of yacc.c */ -#line 1684 "Gmsh.y" +#line 1685 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} @@ -5941,7 +5957,7 @@ yyreduce: case 138: /* Line 1464 of yacc.c */ -#line 1688 "Gmsh.y" +#line 1689 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} @@ -5950,7 +5966,7 @@ yyreduce: case 139: /* Line 1464 of yacc.c */ -#line 1692 "Gmsh.y" +#line 1693 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5978,7 +5994,7 @@ yyreduce: case 140: /* Line 1464 of yacc.c */ -#line 1715 "Gmsh.y" +#line 1716 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -6006,7 +6022,7 @@ yyreduce: case 141: /* Line 1464 of yacc.c */ -#line 1738 "Gmsh.y" +#line 1739 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -6034,7 +6050,7 @@ yyreduce: case 142: /* Line 1464 of yacc.c */ -#line 1761 "Gmsh.y" +#line 1762 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -6062,7 +6078,7 @@ yyreduce: case 143: /* Line 1464 of yacc.c */ -#line 1789 "Gmsh.y" +#line 1790 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -6090,6 +6106,34 @@ yyreduce: /* Line 1464 of yacc.c */ #line 1811 "Gmsh.y" { +#if defined(HAVE_DINTEGRATION) + int t = (int)(yyvsp[(4) - (10)].d); + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + //Msg::Info("nb = %d \n",List_Nbr($8) ); + fullMatrix<double> centers(List_Nbr((yyvsp[(8) - (10)].l)),3); + for (int i = 0; i < List_Nbr((yyvsp[(8) - (10)].l)); i++){ + List_T *l = *(List_T**)List_Pointer((yyvsp[(8) - (10)].l), i); + for (int j = 0; j < List_Nbr(l); j++){ + //Msg::Info("nb j = %d \n",List_Nbr(l) ); + centers(i,j) = (double)(*(double*)List_Pointer(l, j)); + } + } + gLevelset *ls = new gLevelsetPoints(centers, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } +#endif + ;} + break; + + case 145: + +/* Line 1464 of yacc.c */ +#line 1835 "Gmsh.y" + { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ int t = (int)(yyvsp[(4) - (14)].d); @@ -6110,10 +6154,10 @@ yyreduce: ;} break; - case 145: + case 146: /* Line 1464 of yacc.c */ -#line 1832 "Gmsh.y" +#line 1856 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -6136,10 +6180,10 @@ yyreduce: ;} break; - case 146: + case 147: /* Line 1464 of yacc.c */ -#line 1853 "Gmsh.y" +#line 1877 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -6161,10 +6205,10 @@ yyreduce: ;} break; - case 147: + case 148: /* Line 1464 of yacc.c */ -#line 1873 "Gmsh.y" +#line 1897 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -6278,10 +6322,10 @@ yyreduce: ;} break; - case 148: + case 149: /* Line 1464 of yacc.c */ -#line 1985 "Gmsh.y" +#line 2009 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -6302,22 +6346,28 @@ yyreduce: ;} break; - case 149: + case 150: /* Line 1464 of yacc.c */ -#line 2004 "Gmsh.y" +#line 2028 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ int t = (int)(yyvsp[(4) - (6)].d); GModel *GM = GModel::current(); - GM->buildCutGModel(FindLevelSet(t)->ls); + GM->buildCutGModel(FindLevelSet(t)->ls, true, false); + GM->setVisibility(0); + } + if(!strcmp((yyvsp[(2) - (6)].c), "CutMeshTri")){ + int t = (int)(yyvsp[(4) - (6)].d); + GModel *GM = GModel::current(); + GM->buildCutGModel(FindLevelSet(t)->ls, true, true); GM->setVisibility(0); } else if(!strcmp((yyvsp[(2) - (6)].c), "SplitMesh")){ int t = (int)(yyvsp[(4) - (6)].d); GModel *GM = GModel::current(); - GM->buildCutGModel(FindLevelSet(t)->ls, false); + GM->buildCutGModel(FindLevelSet(t)->ls, false, true); GM->setVisibility(0); } else @@ -6327,10 +6377,10 @@ yyreduce: ;} break; - case 150: + case 151: /* Line 1464 of yacc.c */ -#line 2025 "Gmsh.y" +#line 2055 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (14)].c), "Cylinder") && List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -6435,10 +6485,10 @@ yyreduce: ;} break; - case 151: + case 152: /* Line 1464 of yacc.c */ -#line 2133 "Gmsh.y" +#line 2163 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6449,10 +6499,10 @@ yyreduce: ;} break; - case 152: + case 153: /* Line 1464 of yacc.c */ -#line 2142 "Gmsh.y" +#line 2172 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -6460,10 +6510,10 @@ yyreduce: ;} break; - case 153: + case 154: /* Line 1464 of yacc.c */ -#line 2148 "Gmsh.y" +#line 2178 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -6480,10 +6530,10 @@ yyreduce: ;} break; - case 154: + case 155: /* Line 1464 of yacc.c */ -#line 2163 "Gmsh.y" +#line 2193 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -6513,10 +6563,10 @@ yyreduce: ;} break; - case 155: + case 156: /* Line 1464 of yacc.c */ -#line 2191 "Gmsh.y" +#line 2221 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -6530,10 +6580,10 @@ yyreduce: ;} break; - case 156: + case 157: /* Line 1464 of yacc.c */ -#line 2208 "Gmsh.y" +#line 2238 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -6544,10 +6594,10 @@ yyreduce: ;} break; - case 157: + case 158: /* Line 1464 of yacc.c */ -#line 2222 "Gmsh.y" +#line 2252 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -6555,10 +6605,10 @@ yyreduce: ;} break; - case 158: + case 159: /* Line 1464 of yacc.c */ -#line 2228 "Gmsh.y" +#line 2258 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -6566,10 +6616,10 @@ yyreduce: ;} break; - case 159: + case 160: /* Line 1464 of yacc.c */ -#line 2234 "Gmsh.y" +#line 2264 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6580,10 +6630,10 @@ yyreduce: ;} break; - case 160: + case 161: /* Line 1464 of yacc.c */ -#line 2243 "Gmsh.y" +#line 2273 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -6594,10 +6644,10 @@ yyreduce: ;} break; - case 161: + case 162: /* Line 1464 of yacc.c */ -#line 2257 "Gmsh.y" +#line 2287 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -6641,10 +6691,10 @@ yyreduce: ;} break; - case 162: + case 163: /* Line 1464 of yacc.c */ -#line 2299 "Gmsh.y" +#line 2329 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -6663,10 +6713,10 @@ yyreduce: ;} break; - case 163: + case 164: /* Line 1464 of yacc.c */ -#line 2316 "Gmsh.y" +#line 2346 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -6683,10 +6733,10 @@ yyreduce: ;} break; - case 164: + case 165: /* Line 1464 of yacc.c */ -#line 2331 "Gmsh.y" +#line 2361 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -6707,10 +6757,10 @@ yyreduce: ;} break; - case 165: + case 166: /* Line 1464 of yacc.c */ -#line 2350 "Gmsh.y" +#line 2380 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -6724,10 +6774,10 @@ yyreduce: ;} break; - case 166: + case 167: /* Line 1464 of yacc.c */ -#line 2362 "Gmsh.y" +#line 2392 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -6753,19 +6803,19 @@ yyreduce: ;} break; - case 167: + case 168: /* Line 1464 of yacc.c */ -#line 2386 "Gmsh.y" +#line 2416 "Gmsh.y" { exit(0); ;} break; - case 168: + case 169: /* Line 1464 of yacc.c */ -#line 2390 "Gmsh.y" +#line 2420 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -6774,10 +6824,10 @@ yyreduce: ;} break; - case 169: + case 170: /* Line 1464 of yacc.c */ -#line 2397 "Gmsh.y" +#line 2427 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -6785,20 +6835,20 @@ yyreduce: ;} break; - case 170: + case 171: /* Line 1464 of yacc.c */ -#line 2403 "Gmsh.y" +#line 2433 "Gmsh.y" { CTX::instance()->forcedBBox = 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)); ;} break; - case 171: + case 172: /* Line 1464 of yacc.c */ -#line 2408 "Gmsh.y" +#line 2438 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -6806,38 +6856,38 @@ yyreduce: ;} break; - case 172: + case 173: /* Line 1464 of yacc.c */ -#line 2414 "Gmsh.y" +#line 2444 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 173: + case 174: /* Line 1464 of yacc.c */ -#line 2418 "Gmsh.y" +#line 2448 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; - case 174: + case 175: /* Line 1464 of yacc.c */ -#line 2422 "Gmsh.y" +#line 2452 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 175: + case 176: /* Line 1464 of yacc.c */ -#line 2432 "Gmsh.y" +#line 2462 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6856,10 +6906,10 @@ yyreduce: ;} break; - case 176: + case 177: /* Line 1464 of yacc.c */ -#line 2449 "Gmsh.y" +#line 2479 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6878,10 +6928,10 @@ yyreduce: ;} break; - case 177: + case 178: /* Line 1464 of yacc.c */ -#line 2466 "Gmsh.y" +#line 2496 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6902,10 +6952,10 @@ yyreduce: ;} break; - case 178: + case 179: /* Line 1464 of yacc.c */ -#line 2485 "Gmsh.y" +#line 2515 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6926,10 +6976,10 @@ yyreduce: ;} break; - case 179: + case 180: /* Line 1464 of yacc.c */ -#line 2504 "Gmsh.y" +#line 2534 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6961,10 +7011,10 @@ yyreduce: ;} break; - case 180: + case 181: /* Line 1464 of yacc.c */ -#line 2534 "Gmsh.y" +#line 2564 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6974,10 +7024,10 @@ yyreduce: ;} break; - case 181: + case 182: /* Line 1464 of yacc.c */ -#line 2542 "Gmsh.y" +#line 2572 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6985,10 +7035,10 @@ yyreduce: ;} break; - case 182: + case 183: /* Line 1464 of yacc.c */ -#line 2548 "Gmsh.y" +#line 2578 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6997,27 +7047,27 @@ yyreduce: ;} break; - case 183: + case 184: /* Line 1464 of yacc.c */ -#line 2555 "Gmsh.y" +#line 2585 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 184: + case 185: /* Line 1464 of yacc.c */ -#line 2559 "Gmsh.y" +#line 2589 "Gmsh.y" { ;} break; - case 185: + case 186: /* Line 1464 of yacc.c */ -#line 2568 "Gmsh.y" +#line 2598 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -7027,10 +7077,10 @@ yyreduce: ;} break; - case 186: + case 187: /* Line 1464 of yacc.c */ -#line 2576 "Gmsh.y" +#line 2606 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -7040,10 +7090,10 @@ yyreduce: ;} break; - case 187: + case 188: /* Line 1464 of yacc.c */ -#line 2584 "Gmsh.y" +#line 2614 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -7053,20 +7103,20 @@ yyreduce: ;} break; - case 188: + case 189: /* Line 1464 of yacc.c */ -#line 2592 "Gmsh.y" +#line 2622 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 189: + case 190: /* Line 1464 of yacc.c */ -#line 2597 "Gmsh.y" +#line 2627 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -7076,20 +7126,20 @@ yyreduce: ;} break; - case 190: + case 191: /* Line 1464 of yacc.c */ -#line 2605 "Gmsh.y" +#line 2635 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 191: + case 192: /* Line 1464 of yacc.c */ -#line 2610 "Gmsh.y" +#line 2640 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -7099,20 +7149,20 @@ yyreduce: ;} break; - case 192: + case 193: /* Line 1464 of yacc.c */ -#line 2618 "Gmsh.y" +#line 2648 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 193: + case 194: /* Line 1464 of yacc.c */ -#line 2623 "Gmsh.y" +#line 2653 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -7122,20 +7172,20 @@ yyreduce: ;} break; - case 194: + case 195: /* Line 1464 of yacc.c */ -#line 2631 "Gmsh.y" +#line 2661 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 195: + case 196: /* Line 1464 of yacc.c */ -#line 2636 "Gmsh.y" +#line 2666 "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., @@ -7144,10 +7194,10 @@ yyreduce: ;} break; - case 196: + case 197: /* Line 1464 of yacc.c */ -#line 2644 "Gmsh.y" +#line 2674 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -7156,10 +7206,10 @@ yyreduce: ;} break; - case 197: + case 198: /* Line 1464 of yacc.c */ -#line 2651 "Gmsh.y" +#line 2681 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -7168,10 +7218,10 @@ yyreduce: ;} break; - case 198: + case 199: /* Line 1464 of yacc.c */ -#line 2658 "Gmsh.y" +#line 2688 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -7180,10 +7230,10 @@ yyreduce: ;} break; - case 199: + case 200: /* Line 1464 of yacc.c */ -#line 2665 "Gmsh.y" +#line 2695 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7192,10 +7242,10 @@ yyreduce: ;} break; - case 200: + case 201: /* Line 1464 of yacc.c */ -#line 2672 "Gmsh.y" +#line 2702 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7204,10 +7254,10 @@ yyreduce: ;} break; - case 201: + case 202: /* Line 1464 of yacc.c */ -#line 2679 "Gmsh.y" +#line 2709 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7216,10 +7266,10 @@ yyreduce: ;} break; - case 202: + case 203: /* Line 1464 of yacc.c */ -#line 2686 "Gmsh.y" +#line 2716 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -7228,10 +7278,10 @@ yyreduce: ;} break; - case 203: + case 204: /* Line 1464 of yacc.c */ -#line 2693 "Gmsh.y" +#line 2723 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -7240,10 +7290,10 @@ yyreduce: ;} break; - case 204: + case 205: /* Line 1464 of yacc.c */ -#line 2700 "Gmsh.y" +#line 2730 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -7252,20 +7302,20 @@ yyreduce: ;} break; - case 205: + case 206: /* Line 1464 of yacc.c */ -#line 2707 "Gmsh.y" +#line 2737 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 206: + case 207: /* Line 1464 of yacc.c */ -#line 2712 "Gmsh.y" +#line 2742 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7274,20 +7324,20 @@ yyreduce: ;} break; - case 207: + case 208: /* Line 1464 of yacc.c */ -#line 2719 "Gmsh.y" +#line 2749 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 208: + case 209: /* Line 1464 of yacc.c */ -#line 2724 "Gmsh.y" +#line 2754 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7296,20 +7346,20 @@ yyreduce: ;} break; - case 209: + case 210: /* Line 1464 of yacc.c */ -#line 2731 "Gmsh.y" +#line 2761 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 210: + case 211: /* Line 1464 of yacc.c */ -#line 2736 "Gmsh.y" +#line 2766 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7318,20 +7368,20 @@ yyreduce: ;} break; - case 211: + case 212: /* Line 1464 of yacc.c */ -#line 2743 "Gmsh.y" +#line 2773 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 212: + case 213: /* Line 1464 of yacc.c */ -#line 2748 "Gmsh.y" +#line 2778 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -7340,20 +7390,20 @@ yyreduce: ;} break; - case 213: + case 214: /* Line 1464 of yacc.c */ -#line 2755 "Gmsh.y" +#line 2785 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 214: + case 215: /* Line 1464 of yacc.c */ -#line 2760 "Gmsh.y" +#line 2790 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -7362,20 +7412,20 @@ yyreduce: ;} break; - case 215: + case 216: /* Line 1464 of yacc.c */ -#line 2767 "Gmsh.y" +#line 2797 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 216: + case 217: /* Line 1464 of yacc.c */ -#line 2772 "Gmsh.y" +#line 2802 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -7384,20 +7434,20 @@ yyreduce: ;} break; - case 217: + case 218: /* Line 1464 of yacc.c */ -#line 2779 "Gmsh.y" +#line 2809 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 218: + case 219: /* Line 1464 of yacc.c */ -#line 2784 "Gmsh.y" +#line 2814 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -7406,20 +7456,20 @@ yyreduce: ;} break; - case 219: + case 220: /* Line 1464 of yacc.c */ -#line 2791 "Gmsh.y" +#line 2821 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 220: + case 221: /* Line 1464 of yacc.c */ -#line 2796 "Gmsh.y" +#line 2826 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -7428,20 +7478,20 @@ yyreduce: ;} break; - case 221: + case 222: /* Line 1464 of yacc.c */ -#line 2803 "Gmsh.y" +#line 2833 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; ;} break; - case 222: + case 223: /* Line 1464 of yacc.c */ -#line 2808 "Gmsh.y" +#line 2838 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -7450,26 +7500,26 @@ yyreduce: ;} break; - case 223: + case 224: /* Line 1464 of yacc.c */ -#line 2819 "Gmsh.y" +#line 2849 "Gmsh.y" { ;} break; - case 224: + case 225: /* Line 1464 of yacc.c */ -#line 2822 "Gmsh.y" +#line 2852 "Gmsh.y" { ;} break; - case 225: + case 226: /* Line 1464 of yacc.c */ -#line 2828 "Gmsh.y" +#line 2858 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -7480,10 +7530,10 @@ yyreduce: ;} break; - case 226: + case 227: /* Line 1464 of yacc.c */ -#line 2837 "Gmsh.y" +#line 2867 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -7505,10 +7555,10 @@ yyreduce: ;} break; - case 227: + case 228: /* Line 1464 of yacc.c */ -#line 2857 "Gmsh.y" +#line 2887 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -7533,55 +7583,55 @@ yyreduce: ;} break; - case 228: + case 229: /* Line 1464 of yacc.c */ -#line 2880 "Gmsh.y" +#line 2910 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 229: + case 230: /* Line 1464 of yacc.c */ -#line 2884 "Gmsh.y" +#line 2914 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_DBL_1; ;} break; - case 230: + case 231: /* Line 1464 of yacc.c */ -#line 2888 "Gmsh.y" +#line 2918 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_DBL_1_RECOMB; ;} break; - case 231: + case 232: /* Line 1464 of yacc.c */ -#line 2892 "Gmsh.y" +#line 2922 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_SNGL_1; ;} break; - case 232: + case 233: /* Line 1464 of yacc.c */ -#line 2896 "Gmsh.y" +#line 2926 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_SNGL_1_RECOMB; ;} break; - case 233: + case 234: /* Line 1464 of yacc.c */ -#line 2900 "Gmsh.y" +#line 2930 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -7602,10 +7652,10 @@ yyreduce: ;} break; - case 234: + case 235: /* Line 1464 of yacc.c */ -#line 2919 "Gmsh.y" +#line 2949 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -7615,19 +7665,19 @@ yyreduce: ;} break; - case 235: + case 236: /* Line 1464 of yacc.c */ -#line 2931 "Gmsh.y" +#line 2961 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 236: + case 237: /* Line 1464 of yacc.c */ -#line 2935 "Gmsh.y" +#line 2965 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -7642,19 +7692,19 @@ yyreduce: ;} break; - case 237: + case 238: /* Line 1464 of yacc.c */ -#line 2950 "Gmsh.y" +#line 2980 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 238: + case 239: /* Line 1464 of yacc.c */ -#line 2954 "Gmsh.y" +#line 2984 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7666,46 +7716,46 @@ yyreduce: ;} break; - case 239: + case 240: /* Line 1464 of yacc.c */ -#line 2966 "Gmsh.y" +#line 2996 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 240: + case 241: /* Line 1464 of yacc.c */ -#line 2970 "Gmsh.y" +#line 3000 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 241: + case 242: /* Line 1464 of yacc.c */ -#line 2975 "Gmsh.y" +#line 3005 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 242: + case 243: /* Line 1464 of yacc.c */ -#line 2979 "Gmsh.y" +#line 3009 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 243: + case 244: /* Line 1464 of yacc.c */ -#line 2986 "Gmsh.y" +#line 3016 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7763,10 +7813,10 @@ yyreduce: ;} break; - case 244: + case 245: /* Line 1464 of yacc.c */ -#line 3042 "Gmsh.y" +#line 3072 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7838,20 +7888,20 @@ yyreduce: ;} break; - case 245: + case 246: /* Line 1464 of yacc.c */ -#line 3112 "Gmsh.y" +#line 3142 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 246: + case 247: /* Line 1464 of yacc.c */ -#line 3117 "Gmsh.y" +#line 3147 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7920,10 +7970,10 @@ yyreduce: ;} break; - case 247: + case 248: /* Line 1464 of yacc.c */ -#line 3184 "Gmsh.y" +#line 3214 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -7961,10 +8011,10 @@ yyreduce: ;} break; - case 248: + case 249: /* Line 1464 of yacc.c */ -#line 3220 "Gmsh.y" +#line 3250 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -8009,10 +8059,10 @@ yyreduce: ;} break; - case 249: + case 250: /* Line 1464 of yacc.c */ -#line 3263 "Gmsh.y" +#line 3293 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -8034,10 +8084,10 @@ yyreduce: ;} break; - case 250: + case 251: /* Line 1464 of yacc.c */ -#line 3288 "Gmsh.y" +#line 3318 "Gmsh.y" { if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){ yymsg(0, "Number of master (%d) different from number of slave (%d) lines", @@ -8066,10 +8116,10 @@ yyreduce: ;} break; - case 251: + case 252: /* Line 1464 of yacc.c */ -#line 3316 "Gmsh.y" +#line 3346 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -8107,10 +8157,10 @@ yyreduce: ;} break; - case 252: + case 253: /* Line 1464 of yacc.c */ -#line 3359 "Gmsh.y" +#line 3389 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8135,10 +8185,10 @@ yyreduce: ;} break; - case 253: + case 254: /* Line 1464 of yacc.c */ -#line 3382 "Gmsh.y" +#line 3412 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8163,35 +8213,35 @@ yyreduce: ;} break; - case 254: + case 255: /* Line 1464 of yacc.c */ -#line 3405 "Gmsh.y" +#line 3435 "Gmsh.y" { ;} break; - case 255: + case 256: /* Line 1464 of yacc.c */ -#line 3408 "Gmsh.y" +#line 3438 "Gmsh.y" { ;} break; - case 256: + case 257: /* Line 1464 of yacc.c */ -#line 3417 "Gmsh.y" +#line 3447 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 257: + case 258: /* Line 1464 of yacc.c */ -#line 3421 "Gmsh.y" +#line 3451 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -8203,10 +8253,10 @@ yyreduce: ;} break; - case 258: + case 259: /* Line 1464 of yacc.c */ -#line 3431 "Gmsh.y" +#line 3461 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -8238,10 +8288,10 @@ yyreduce: ;} break; - case 259: + case 260: /* Line 1464 of yacc.c */ -#line 3468 "Gmsh.y" +#line 3498 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); @@ -8279,10 +8329,10 @@ yyreduce: ;} break; - case 260: + case 261: /* Line 1464 of yacc.c */ -#line 3505 "Gmsh.y" +#line 3535 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8319,10 +8369,10 @@ yyreduce: ;} break; - case 261: + case 262: /* Line 1464 of yacc.c */ -#line 3541 "Gmsh.y" +#line 3571 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8359,10 +8409,10 @@ yyreduce: ;} break; - case 262: + case 263: /* Line 1464 of yacc.c */ -#line 3576 "Gmsh.y" +#line 3606 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8399,66 +8449,66 @@ yyreduce: ;} break; - case 263: + case 264: /* Line 1464 of yacc.c */ -#line 3615 "Gmsh.y" +#line 3645 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 264: + case 265: /* Line 1464 of yacc.c */ -#line 3616 "Gmsh.y" +#line 3646 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 265: + case 266: /* Line 1464 of yacc.c */ -#line 3617 "Gmsh.y" +#line 3647 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 266: + case 267: /* Line 1464 of yacc.c */ -#line 3618 "Gmsh.y" +#line 3648 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 267: + case 268: /* Line 1464 of yacc.c */ -#line 3619 "Gmsh.y" +#line 3649 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 268: + case 269: /* Line 1464 of yacc.c */ -#line 3620 "Gmsh.y" +#line 3650 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 269: + case 270: /* Line 1464 of yacc.c */ -#line 3621 "Gmsh.y" +#line 3651 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 270: + case 271: /* Line 1464 of yacc.c */ -#line 3622 "Gmsh.y" +#line 3652 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 271: + case 272: /* Line 1464 of yacc.c */ -#line 3624 "Gmsh.y" +#line 3654 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -8467,430 +8517,430 @@ yyreduce: ;} break; - case 272: + case 273: /* Line 1464 of yacc.c */ -#line 3630 "Gmsh.y" +#line 3660 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 273: + case 274: /* Line 1464 of yacc.c */ -#line 3631 "Gmsh.y" +#line 3661 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 274: + case 275: /* Line 1464 of yacc.c */ -#line 3632 "Gmsh.y" +#line 3662 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 275: + case 276: /* Line 1464 of yacc.c */ -#line 3633 "Gmsh.y" +#line 3663 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 276: + case 277: /* Line 1464 of yacc.c */ -#line 3634 "Gmsh.y" +#line 3664 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 277: + case 278: /* Line 1464 of yacc.c */ -#line 3635 "Gmsh.y" +#line 3665 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 278: + case 279: /* Line 1464 of yacc.c */ -#line 3636 "Gmsh.y" +#line 3666 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 279: + case 280: /* Line 1464 of yacc.c */ -#line 3637 "Gmsh.y" +#line 3667 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 280: + case 281: /* Line 1464 of yacc.c */ -#line 3638 "Gmsh.y" +#line 3668 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 281: + case 282: /* Line 1464 of yacc.c */ -#line 3639 "Gmsh.y" +#line 3669 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 282: + case 283: /* Line 1464 of yacc.c */ -#line 3640 "Gmsh.y" +#line 3670 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 283: + case 284: /* Line 1464 of yacc.c */ -#line 3641 "Gmsh.y" +#line 3671 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 284: + case 285: /* Line 1464 of yacc.c */ -#line 3642 "Gmsh.y" +#line 3672 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 285: + case 286: /* Line 1464 of yacc.c */ -#line 3643 "Gmsh.y" +#line 3673 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 286: + case 287: /* Line 1464 of yacc.c */ -#line 3644 "Gmsh.y" +#line 3674 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 287: + case 288: /* Line 1464 of yacc.c */ -#line 3645 "Gmsh.y" +#line 3675 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 288: + case 289: /* Line 1464 of yacc.c */ -#line 3646 "Gmsh.y" +#line 3676 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 289: + case 290: /* Line 1464 of yacc.c */ -#line 3647 "Gmsh.y" +#line 3677 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 290: + case 291: /* Line 1464 of yacc.c */ -#line 3648 "Gmsh.y" +#line 3678 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 291: + case 292: /* Line 1464 of yacc.c */ -#line 3649 "Gmsh.y" +#line 3679 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 292: + case 293: /* Line 1464 of yacc.c */ -#line 3650 "Gmsh.y" +#line 3680 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 293: + case 294: /* Line 1464 of yacc.c */ -#line 3651 "Gmsh.y" +#line 3681 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 294: + case 295: /* Line 1464 of yacc.c */ -#line 3652 "Gmsh.y" +#line 3682 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 295: + case 296: /* Line 1464 of yacc.c */ -#line 3653 "Gmsh.y" +#line 3683 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 296: + case 297: /* Line 1464 of yacc.c */ -#line 3654 "Gmsh.y" +#line 3684 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 297: + case 298: /* Line 1464 of yacc.c */ -#line 3655 "Gmsh.y" +#line 3685 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 298: + case 299: /* Line 1464 of yacc.c */ -#line 3656 "Gmsh.y" +#line 3686 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 299: + case 300: /* Line 1464 of yacc.c */ -#line 3657 "Gmsh.y" +#line 3687 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 300: + case 301: /* Line 1464 of yacc.c */ -#line 3658 "Gmsh.y" +#line 3688 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 301: + case 302: /* Line 1464 of yacc.c */ -#line 3659 "Gmsh.y" +#line 3689 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 302: + case 303: /* Line 1464 of yacc.c */ -#line 3660 "Gmsh.y" +#line 3690 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 303: + case 304: /* Line 1464 of yacc.c */ -#line 3661 "Gmsh.y" +#line 3691 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 304: + case 305: /* Line 1464 of yacc.c */ -#line 3663 "Gmsh.y" +#line 3693 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 305: + case 306: /* Line 1464 of yacc.c */ -#line 3664 "Gmsh.y" +#line 3694 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 306: + case 307: /* Line 1464 of yacc.c */ -#line 3665 "Gmsh.y" +#line 3695 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 307: + case 308: /* Line 1464 of yacc.c */ -#line 3666 "Gmsh.y" +#line 3696 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 308: + case 309: /* Line 1464 of yacc.c */ -#line 3667 "Gmsh.y" +#line 3697 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 309: + case 310: /* Line 1464 of yacc.c */ -#line 3668 "Gmsh.y" +#line 3698 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 310: + case 311: /* Line 1464 of yacc.c */ -#line 3669 "Gmsh.y" +#line 3699 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 311: + case 312: /* Line 1464 of yacc.c */ -#line 3670 "Gmsh.y" +#line 3700 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 312: + case 313: /* Line 1464 of yacc.c */ -#line 3671 "Gmsh.y" +#line 3701 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 313: + case 314: /* Line 1464 of yacc.c */ -#line 3672 "Gmsh.y" +#line 3702 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 314: + case 315: /* Line 1464 of yacc.c */ -#line 3673 "Gmsh.y" +#line 3703 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 315: + case 316: /* Line 1464 of yacc.c */ -#line 3674 "Gmsh.y" +#line 3704 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 316: + case 317: /* Line 1464 of yacc.c */ -#line 3675 "Gmsh.y" +#line 3705 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 317: + case 318: /* Line 1464 of yacc.c */ -#line 3676 "Gmsh.y" +#line 3706 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 318: + case 319: /* Line 1464 of yacc.c */ -#line 3677 "Gmsh.y" +#line 3707 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 319: + case 320: /* Line 1464 of yacc.c */ -#line 3678 "Gmsh.y" +#line 3708 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 320: + case 321: /* Line 1464 of yacc.c */ -#line 3679 "Gmsh.y" +#line 3709 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 321: + case 322: /* Line 1464 of yacc.c */ -#line 3680 "Gmsh.y" +#line 3710 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 322: + case 323: /* Line 1464 of yacc.c */ -#line 3681 "Gmsh.y" +#line 3711 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 323: + case 324: /* Line 1464 of yacc.c */ -#line 3682 "Gmsh.y" +#line 3712 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 324: + case 325: /* Line 1464 of yacc.c */ -#line 3683 "Gmsh.y" +#line 3713 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 325: + case 326: /* Line 1464 of yacc.c */ -#line 3692 "Gmsh.y" +#line 3722 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 326: + case 327: /* Line 1464 of yacc.c */ -#line 3693 "Gmsh.y" +#line 3723 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 327: + case 328: /* Line 1464 of yacc.c */ -#line 3694 "Gmsh.y" +#line 3724 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 328: + case 329: /* Line 1464 of yacc.c */ -#line 3695 "Gmsh.y" +#line 3725 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 329: + case 330: /* Line 1464 of yacc.c */ -#line 3696 "Gmsh.y" +#line 3726 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 330: + case 331: /* Line 1464 of yacc.c */ -#line 3697 "Gmsh.y" +#line 3727 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 331: + case 332: /* Line 1464 of yacc.c */ -#line 3698 "Gmsh.y" +#line 3728 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 332: + case 333: /* Line 1464 of yacc.c */ -#line 3703 "Gmsh.y" +#line 3733 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8908,10 +8958,10 @@ yyreduce: ;} break; - case 333: + case 334: /* Line 1464 of yacc.c */ -#line 3722 "Gmsh.y" +#line 3752 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -8931,10 +8981,10 @@ yyreduce: ;} break; - case 334: + case 335: /* Line 1464 of yacc.c */ -#line 3740 "Gmsh.y" +#line 3770 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -8951,10 +9001,10 @@ yyreduce: ;} break; - case 335: + case 336: /* Line 1464 of yacc.c */ -#line 3755 "Gmsh.y" +#line 3785 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -8966,10 +9016,10 @@ yyreduce: ;} break; - case 336: + case 337: /* Line 1464 of yacc.c */ -#line 3765 "Gmsh.y" +#line 3795 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -8987,10 +9037,10 @@ yyreduce: ;} break; - case 337: + case 338: /* Line 1464 of yacc.c */ -#line 3781 "Gmsh.y" +#line 3811 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -9007,30 +9057,30 @@ yyreduce: ;} break; - case 338: + case 339: /* Line 1464 of yacc.c */ -#line 3799 "Gmsh.y" +#line 3829 "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 339: + case 340: /* Line 1464 of yacc.c */ -#line 3804 "Gmsh.y" +#line 3834 "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 340: + case 341: /* Line 1464 of yacc.c */ -#line 3809 "Gmsh.y" +#line 3839 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -9042,10 +9092,10 @@ yyreduce: ;} break; - case 341: + case 342: /* Line 1464 of yacc.c */ -#line 3819 "Gmsh.y" +#line 3849 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -9057,158 +9107,158 @@ yyreduce: ;} break; - case 342: + case 343: /* Line 1464 of yacc.c */ -#line 3829 "Gmsh.y" +#line 3859 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 343: + case 344: /* Line 1464 of yacc.c */ -#line 3837 "Gmsh.y" +#line 3867 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 344: + case 345: /* Line 1464 of yacc.c */ -#line 3841 "Gmsh.y" +#line 3871 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 345: + case 346: /* Line 1464 of yacc.c */ -#line 3845 "Gmsh.y" +#line 3875 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 346: + case 347: /* Line 1464 of yacc.c */ -#line 3849 "Gmsh.y" +#line 3879 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 347: + case 348: /* Line 1464 of yacc.c */ -#line 3853 "Gmsh.y" +#line 3883 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 348: + case 349: /* Line 1464 of yacc.c */ -#line 3860 "Gmsh.y" +#line 3890 "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 349: + case 350: /* Line 1464 of yacc.c */ -#line 3864 "Gmsh.y" +#line 3894 "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 350: + case 351: /* Line 1464 of yacc.c */ -#line 3868 "Gmsh.y" +#line 3898 "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 351: + case 352: /* Line 1464 of yacc.c */ -#line 3872 "Gmsh.y" +#line 3902 "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 352: + case 353: /* Line 1464 of yacc.c */ -#line 3879 "Gmsh.y" +#line 3909 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 353: + case 354: /* Line 1464 of yacc.c */ -#line 3884 "Gmsh.y" +#line 3914 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 354: + case 355: /* Line 1464 of yacc.c */ -#line 3891 "Gmsh.y" +#line 3921 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 355: + case 356: /* Line 1464 of yacc.c */ -#line 3896 "Gmsh.y" +#line 3926 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 356: + case 357: /* Line 1464 of yacc.c */ -#line 3900 "Gmsh.y" +#line 3930 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 357: + case 358: /* Line 1464 of yacc.c */ -#line 3905 "Gmsh.y" +#line 3935 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 358: + case 359: /* Line 1464 of yacc.c */ -#line 3909 "Gmsh.y" +#line 3939 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9218,10 +9268,10 @@ yyreduce: ;} break; - case 359: + case 360: /* Line 1464 of yacc.c */ -#line 3917 "Gmsh.y" +#line 3947 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9231,19 +9281,19 @@ yyreduce: ;} break; - case 360: + case 361: /* Line 1464 of yacc.c */ -#line 3928 "Gmsh.y" +#line 3958 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 361: + case 362: /* Line 1464 of yacc.c */ -#line 3932 "Gmsh.y" +#line 3962 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -9254,10 +9304,10 @@ yyreduce: ;} break; - case 362: + case 363: /* Line 1464 of yacc.c */ -#line 3944 "Gmsh.y" +#line 3974 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9267,10 +9317,10 @@ yyreduce: ;} break; - case 363: + case 364: /* Line 1464 of yacc.c */ -#line 3952 "Gmsh.y" +#line 3982 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9280,10 +9330,10 @@ yyreduce: ;} break; - case 364: + case 365: /* Line 1464 of yacc.c */ -#line 3960 "Gmsh.y" +#line 3990 "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)); @@ -9292,10 +9342,10 @@ yyreduce: ;} break; - case 365: + case 366: /* Line 1464 of yacc.c */ -#line 3967 "Gmsh.y" +#line 3997 "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)){ @@ -9308,10 +9358,10 @@ yyreduce: ;} break; - case 366: + case 367: /* Line 1464 of yacc.c */ -#line 3978 "Gmsh.y" +#line 4008 "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 @@ -9333,46 +9383,46 @@ yyreduce: ;} break; - case 367: + case 368: /* Line 1464 of yacc.c */ -#line 3998 "Gmsh.y" +#line 4028 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(0); ;} break; - case 368: + case 369: /* Line 1464 of yacc.c */ -#line 4002 "Gmsh.y" +#line 4032 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(1); ;} break; - case 369: + case 370: /* Line 1464 of yacc.c */ -#line 4006 "Gmsh.y" +#line 4036 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(2); ;} break; - case 370: + case 371: /* Line 1464 of yacc.c */ -#line 4010 "Gmsh.y" +#line 4040 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(3); ;} break; - case 371: + case 372: /* Line 1464 of yacc.c */ -#line 4014 "Gmsh.y" +#line 4044 "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++){ @@ -9384,10 +9434,10 @@ yyreduce: ;} break; - case 372: + case 373: /* Line 1464 of yacc.c */ -#line 4024 "Gmsh.y" +#line 4054 "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++){ @@ -9399,10 +9449,10 @@ yyreduce: ;} break; - case 373: + case 374: /* Line 1464 of yacc.c */ -#line 4034 "Gmsh.y" +#line 4064 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -9414,10 +9464,10 @@ yyreduce: ;} break; - case 374: + case 375: /* Line 1464 of yacc.c */ -#line 4044 "Gmsh.y" +#line 4074 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -9436,38 +9486,38 @@ yyreduce: ;} break; - case 375: + case 376: /* Line 1464 of yacc.c */ -#line 4064 "Gmsh.y" +#line 4094 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 376: + case 377: /* Line 1464 of yacc.c */ -#line 4069 "Gmsh.y" +#line 4099 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 377: + case 378: /* Line 1464 of yacc.c */ -#line 4073 "Gmsh.y" +#line 4103 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 378: + case 379: /* Line 1464 of yacc.c */ -#line 4077 "Gmsh.y" +#line 4107 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -9478,28 +9528,28 @@ yyreduce: ;} break; - case 379: + case 380: /* Line 1464 of yacc.c */ -#line 4089 "Gmsh.y" +#line 4119 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 380: + case 381: /* Line 1464 of yacc.c */ -#line 4093 "Gmsh.y" +#line 4123 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 381: + case 382: /* Line 1464 of yacc.c */ -#line 4105 "Gmsh.y" +#line 4135 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -9508,10 +9558,10 @@ yyreduce: ;} break; - case 382: + case 383: /* Line 1464 of yacc.c */ -#line 4112 "Gmsh.y" +#line 4142 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -9520,19 +9570,19 @@ yyreduce: ;} break; - case 383: + case 384: /* Line 1464 of yacc.c */ -#line 4122 "Gmsh.y" +#line 4152 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 384: + case 385: /* Line 1464 of yacc.c */ -#line 4126 "Gmsh.y" +#line 4156 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -9546,38 +9596,38 @@ yyreduce: ;} break; - case 385: + case 386: /* Line 1464 of yacc.c */ -#line 4141 "Gmsh.y" +#line 4171 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 386: + case 387: /* Line 1464 of yacc.c */ -#line 4146 "Gmsh.y" +#line 4176 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 387: + case 388: /* Line 1464 of yacc.c */ -#line 4153 "Gmsh.y" +#line 4183 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 388: + case 389: /* Line 1464 of yacc.c */ -#line 4157 "Gmsh.y" +#line 4187 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -9592,10 +9642,10 @@ yyreduce: ;} break; - case 389: + case 390: /* Line 1464 of yacc.c */ -#line 4170 "Gmsh.y" +#line 4200 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -9605,10 +9655,10 @@ yyreduce: ;} break; - case 390: + case 391: /* Line 1464 of yacc.c */ -#line 4178 "Gmsh.y" +#line 4208 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -9618,19 +9668,19 @@ yyreduce: ;} break; - case 391: + case 392: /* Line 1464 of yacc.c */ -#line 4189 "Gmsh.y" +#line 4219 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 392: + case 393: /* Line 1464 of yacc.c */ -#line 4193 "Gmsh.y" +#line 4223 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -9640,10 +9690,10 @@ yyreduce: ;} break; - case 393: + case 394: /* Line 1464 of yacc.c */ -#line 4201 "Gmsh.y" +#line 4231 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -9653,10 +9703,10 @@ yyreduce: ;} break; - case 394: + case 395: /* Line 1464 of yacc.c */ -#line 4209 "Gmsh.y" +#line 4239 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -9666,10 +9716,10 @@ yyreduce: ;} break; - case 395: + case 396: /* Line 1464 of yacc.c */ -#line 4217 "Gmsh.y" +#line 4247 "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)); @@ -9679,10 +9729,10 @@ yyreduce: ;} break; - case 396: + case 397: /* Line 1464 of yacc.c */ -#line 4225 "Gmsh.y" +#line 4255 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -9698,10 +9748,10 @@ yyreduce: ;} break; - case 397: + case 398: /* Line 1464 of yacc.c */ -#line 4239 "Gmsh.y" +#line 4269 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -9717,19 +9767,19 @@ yyreduce: ;} break; - case 398: + case 399: /* Line 1464 of yacc.c */ -#line 4253 "Gmsh.y" +#line 4283 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 399: + case 400: /* Line 1464 of yacc.c */ -#line 4257 "Gmsh.y" +#line 4287 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -9753,7 +9803,7 @@ yyreduce: /* Line 1464 of yacc.c */ -#line 9757 "Gmsh.tab.cpp" +#line 9807 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -9965,7 +10015,7 @@ yyreturn: /* Line 1684 of yacc.c */ -#line 4277 "Gmsh.y" +#line 4307 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 4fab2558212b06e445c6821335b36bb7da30d653..fd3834a88fc23bfc7c20012546712c7839e82b8a 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -112,68 +112,69 @@ tDilate = 329, tExtrude = 330, tLevelset = 331, - tLoop = 332, - tRecombine = 333, - tSmoother = 334, - tSplit = 335, - tDelete = 336, - tCoherence = 337, - tIntersect = 338, - tLayers = 339, - tHole = 340, - tAlias = 341, - tAliasWithOptions = 342, - tQuadTriDbl = 343, - tQuadTriSngl = 344, - tRecombLaterals = 345, - tTransfQuadTri = 346, - tText2D = 347, - tText3D = 348, - tInterpolationScheme = 349, - tTime = 350, - tCombine = 351, - tBSpline = 352, - tBezier = 353, - tNurbs = 354, - tNurbsOrder = 355, - tNurbsKnots = 356, - tColor = 357, - tColorTable = 358, - tFor = 359, - tIn = 360, - tEndFor = 361, - tIf = 362, - tEndIf = 363, - tExit = 364, - tField = 365, - tReturn = 366, - tCall = 367, - tFunction = 368, - tShow = 369, - tHide = 370, - tGetValue = 371, - tGetEnv = 372, - tGetString = 373, - tGMSH_MAJOR_VERSION = 374, - tGMSH_MINOR_VERSION = 375, - tGMSH_PATCH_VERSION = 376, - tHomRank = 377, - tHomGen = 378, - tHomCut = 379, - tHomSeq = 380, - tAFFECTDIVIDE = 381, - tAFFECTTIMES = 382, - tAFFECTMINUS = 383, - tAFFECTPLUS = 384, - tOR = 385, - tAND = 386, - tNOTEQUAL = 387, - tEQUAL = 388, - tGREATEROREQUAL = 389, - tLESSOREQUAL = 390, - UNARYPREC = 391, - tMINUSMINUS = 392, - tPLUSPLUS = 393 + tPoints = 332, + tLoop = 333, + tRecombine = 334, + tSmoother = 335, + tSplit = 336, + tDelete = 337, + tCoherence = 338, + tIntersect = 339, + tLayers = 340, + tHole = 341, + tAlias = 342, + tAliasWithOptions = 343, + tQuadTriDbl = 344, + tQuadTriSngl = 345, + tRecombLaterals = 346, + tTransfQuadTri = 347, + tText2D = 348, + tText3D = 349, + tInterpolationScheme = 350, + tTime = 351, + tCombine = 352, + tBSpline = 353, + tBezier = 354, + tNurbs = 355, + tNurbsOrder = 356, + tNurbsKnots = 357, + tColor = 358, + tColorTable = 359, + tFor = 360, + tIn = 361, + tEndFor = 362, + tIf = 363, + tEndIf = 364, + tExit = 365, + tField = 366, + tReturn = 367, + tCall = 368, + tFunction = 369, + tShow = 370, + tHide = 371, + tGetValue = 372, + tGetEnv = 373, + tGetString = 374, + tGMSH_MAJOR_VERSION = 375, + tGMSH_MINOR_VERSION = 376, + tGMSH_PATCH_VERSION = 377, + tHomRank = 378, + tHomGen = 379, + tHomCut = 380, + tHomSeq = 381, + tAFFECTDIVIDE = 382, + tAFFECTTIMES = 383, + tAFFECTMINUS = 384, + tAFFECTPLUS = 385, + tOR = 386, + tAND = 387, + tNOTEQUAL = 388, + tEQUAL = 389, + tGREATEROREQUAL = 390, + tLESSOREQUAL = 391, + UNARYPREC = 392, + tMINUSMINUS = 393, + tPLUSPLUS = 394 }; #endif @@ -184,7 +185,7 @@ typedef union YYSTYPE { /* Line 1685 of yacc.c */ -#line 88 "Gmsh.y" +#line 89 "Gmsh.y" char *c; int i; @@ -197,7 +198,7 @@ typedef union YYSTYPE /* Line 1685 of yacc.c */ -#line 201 "Gmsh.tab.hpp" +#line 202 "Gmsh.tab.hpp" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index c6265ae2ba0e1febb2ab549e5fa7fbfb33afa7e3..5dec419d700b478ceb7469e4b742287b7ab45f42 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -30,6 +30,7 @@ #include "CreateFile.h" #include "gmshSurface.h" #include "gmshLevelset.h" +#include "fullMatrix.h" #if defined(HAVE_MESH) #include "Generator.h" @@ -108,7 +109,7 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); %token tCharacteristic tLength tParametric tElliptic tRefineMesh %token tPlane tRuled tTransfinite tComplex tPhysical tCompound tPeriodic %token tUsing tPlugin tDegenerated -%token tRotate tTranslate tSymmetry tDilate tExtrude tLevelset +%token tRotate tTranslate tSymmetry tDilate tExtrude tLevelset tPoints %token tLoop tRecombine tSmoother tSplit tDelete tCoherence tIntersect %token tLayers tHole tAlias tAliasWithOptions %token tQuadTriDbl tQuadTriSngl tRecombLaterals tTransfQuadTri @@ -1804,6 +1805,29 @@ LevelSet : } else yymsg(0, "Wrong levelset definition (%d)", $4); +#endif + } + | tLevelset tPoints '(' FExpr ')' tAFFECT '{' RecursiveListOfListOfDouble '}' tEND + { +#if defined(HAVE_DINTEGRATION) + int t = (int)$4; + if(FindLevelSet(t)){ + yymsg(0, "Levelset %d already exists", t); + } + else { + //Msg::Info("nb = %d \n",List_Nbr($8) ); + fullMatrix<double> centers(List_Nbr($8),3); + for (int i = 0; i < List_Nbr($8); i++){ + List_T *l = *(List_T**)List_Pointer($8, i); + for (int j = 0; j < List_Nbr(l); j++){ + //Msg::Info("nb j = %d \n",List_Nbr(l) ); + centers(i,j) = (double)(*(double*)List_Pointer(l, j)); + } + } + gLevelset *ls = new gLevelsetPoints(centers, t); + LevelSet *l = Create_LevelSet(ls->getTag(), ls); + Tree_Add(GModel::current()->getGEOInternals()->LevelSets, &l); + } #endif } | tLevelset tPlane '(' FExpr ')' tAFFECT '{' VExpr ',' VExpr ',' @@ -2006,13 +2030,19 @@ LevelSet : if(!strcmp($2, "CutMesh")){ int t = (int)$4; GModel *GM = GModel::current(); - GM->buildCutGModel(FindLevelSet(t)->ls); + GM->buildCutGModel(FindLevelSet(t)->ls, true, false); + GM->setVisibility(0); + } + if(!strcmp($2, "CutMeshTri")){ + int t = (int)$4; + GModel *GM = GModel::current(); + GM->buildCutGModel(FindLevelSet(t)->ls, true, true); GM->setVisibility(0); } else if(!strcmp($2, "SplitMesh")){ int t = (int)$4; GModel *GM = GModel::current(); - GM->buildCutGModel(FindLevelSet(t)->ls, false); + GM->buildCutGModel(FindLevelSet(t)->ls, false, true); GM->setVisibility(0); } else diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index bb225372ad2a7332af72cf399583560e4cac3d5e..3f4661b567e2b45790dea06fce6e8daff4ad71c2 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -379,8 +379,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 159 -#define YY_END_OF_BUFFER 160 +#define YY_NUM_RULES 160 +#define YY_END_OF_BUFFER 161 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,85 +388,86 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[701] = +static yyconst flex_int16_t yy_accept[702] = { 0, - 0, 0, 160, 158, 1, 1, 158, 5, 158, 6, - 158, 158, 158, 158, 158, 153, 21, 2, 158, 16, - 158, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 158, 28, 24, 19, 25, 17, - 26, 18, 0, 155, 3, 4, 20, 154, 153, 0, - 29, 27, 30, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 93, 92, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 111, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 142, 143, - 157, 157, 157, 157, 157, 157, 157, 23, 22, 0, - 154, 0, 0, 156, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 49, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 64, 157, 157, 157, 157, 157, 77, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 100, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 129, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 149, 157, 157, 157, 157, - 157, 0, 155, 0, 0, 154, 31, 157, 157, 157, - 157, 35, 37, 157, 157, 157, 57, 157, 44, 157, - 157, 157, 157, 157, 157, 157, 48, 157, 157, 157, - 157, 63, 157, 157, 157, 157, 72, 157, 73, 157, - 157, 76, 157, 157, 157, 157, 157, 85, 86, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 98, 157, 99, 157, 157, 157, 157, 157, 157, 157, - - 157, 157, 157, 157, 157, 157, 124, 157, 157, 157, - 157, 157, 139, 130, 157, 157, 157, 157, 128, 157, - 157, 157, 157, 157, 157, 144, 148, 157, 157, 157, - 157, 10, 15, 9, 8, 157, 12, 14, 0, 154, - 33, 157, 157, 157, 39, 157, 157, 157, 157, 157, - 157, 157, 52, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 70, 157, 157, 74, 75, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 91, 157, 157, - 96, 157, 157, 157, 101, 157, 157, 157, 107, 108, - 157, 157, 157, 112, 157, 113, 157, 157, 157, 157, - - 157, 157, 157, 123, 157, 157, 157, 133, 157, 157, - 157, 157, 157, 157, 157, 150, 157, 151, 157, 11, - 157, 13, 157, 32, 36, 38, 157, 41, 157, 157, - 157, 45, 157, 157, 157, 157, 157, 157, 157, 157, - 60, 62, 157, 157, 69, 157, 157, 157, 157, 157, - 79, 157, 157, 89, 88, 157, 90, 157, 157, 102, - 97, 157, 157, 157, 104, 157, 157, 157, 117, 157, - 116, 157, 157, 157, 126, 122, 157, 131, 132, 157, - 136, 157, 157, 157, 157, 157, 157, 157, 152, 7, - 157, 40, 42, 157, 157, 157, 157, 157, 47, 51, - - 157, 157, 157, 157, 66, 157, 157, 157, 67, 157, - 157, 157, 157, 157, 157, 87, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 135, 157, 157, 134, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 54, 157, 157, 157, 65, - 68, 157, 78, 157, 157, 157, 157, 81, 157, 157, - 103, 105, 106, 157, 109, 110, 157, 157, 157, 157, - 157, 157, 127, 157, 157, 140, 157, 157, 157, 157, - 157, 157, 157, 157, 46, 157, 157, 157, 157, 71, - 157, 157, 157, 80, 157, 94, 157, 157, 157, 157, - - 157, 120, 157, 137, 157, 141, 157, 157, 147, 157, - 157, 56, 157, 53, 157, 157, 157, 157, 157, 157, - 157, 114, 157, 118, 157, 157, 125, 157, 157, 157, - 157, 43, 157, 55, 157, 61, 157, 157, 157, 157, - 115, 119, 157, 138, 157, 145, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 146, 157, 50, 58, 157, 157, 157, - 157, 121, 157, 157, 157, 157, 157, 157, 34, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 82, 83, 84, 157, 157, 157, 157, 95, 59, 0 - + 0, 0, 161, 159, 1, 1, 159, 5, 159, 6, + 159, 159, 159, 159, 159, 154, 21, 2, 159, 16, + 159, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 159, 28, 24, 19, 25, 17, + 26, 18, 0, 156, 3, 4, 20, 155, 154, 0, + 29, 27, 30, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 93, 92, 158, + + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 111, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 143, 144, + 158, 158, 158, 158, 158, 158, 158, 23, 22, 0, + 155, 0, 0, 157, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 49, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 64, 158, 158, 158, 158, 158, 77, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 100, 158, 158, 158, 158, 158, 158, 158, + + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 130, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 150, 158, 158, 158, 158, + 158, 0, 156, 0, 0, 155, 31, 158, 158, 158, + 158, 35, 37, 158, 158, 158, 57, 158, 44, 158, + 158, 158, 158, 158, 158, 158, 48, 158, 158, 158, + 158, 63, 158, 158, 158, 158, 72, 158, 73, 158, + 158, 76, 158, 158, 158, 158, 158, 85, 86, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 98, 158, 99, 158, 158, 158, 158, 158, 158, 158, + + 158, 158, 158, 158, 158, 158, 125, 158, 158, 158, + 158, 158, 140, 131, 158, 158, 158, 158, 129, 158, + 158, 158, 158, 158, 158, 145, 149, 158, 158, 158, + 158, 10, 15, 9, 8, 158, 12, 14, 0, 155, + 33, 158, 158, 158, 39, 158, 158, 158, 158, 158, + 158, 158, 52, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 70, 158, 158, 74, 75, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 91, 158, 158, + 96, 158, 158, 158, 101, 158, 158, 158, 107, 108, + 158, 158, 158, 112, 158, 113, 158, 158, 158, 158, + + 158, 158, 158, 124, 158, 158, 158, 134, 158, 158, + 158, 158, 158, 158, 158, 151, 158, 152, 158, 11, + 158, 13, 158, 32, 36, 38, 158, 41, 158, 158, + 158, 45, 158, 158, 158, 158, 158, 158, 158, 158, + 60, 62, 158, 158, 69, 158, 158, 158, 158, 158, + 79, 158, 158, 89, 88, 158, 90, 158, 158, 102, + 97, 158, 158, 158, 104, 158, 158, 158, 118, 114, + 158, 117, 158, 158, 158, 127, 123, 158, 132, 133, + 158, 137, 158, 158, 158, 158, 158, 158, 158, 153, + 7, 158, 40, 42, 158, 158, 158, 158, 158, 47, + + 51, 158, 158, 158, 158, 66, 158, 158, 158, 67, + 158, 158, 158, 158, 158, 158, 87, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 136, 158, 158, 135, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 54, 158, 158, 158, + 65, 68, 158, 78, 158, 158, 158, 158, 81, 158, + 158, 103, 105, 106, 158, 109, 110, 158, 158, 158, + 158, 158, 158, 128, 158, 158, 141, 158, 158, 158, + 158, 158, 158, 158, 158, 46, 158, 158, 158, 158, + 71, 158, 158, 158, 80, 158, 94, 158, 158, 158, + + 158, 158, 121, 158, 138, 158, 142, 158, 158, 148, + 158, 158, 56, 158, 53, 158, 158, 158, 158, 158, + 158, 158, 115, 158, 119, 158, 158, 126, 158, 158, + 158, 158, 43, 158, 55, 158, 61, 158, 158, 158, + 158, 116, 120, 158, 139, 158, 146, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 147, 158, 50, 58, 158, 158, + 158, 158, 122, 158, 158, 158, 158, 158, 158, 34, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 82, 83, 84, 158, 158, 158, 158, 95, 59, + + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -513,51 +514,51 @@ static yyconst flex_int32_t yy_meta[74] = 2, 2, 1 } ; -static yyconst flex_int16_t yy_base[702] = +static yyconst flex_int16_t yy_base[703] = { 0, - 0, 0, 828, 829, 829, 829, 806, 829, 820, 829, - 804, 65, 66, 64, 76, 78, 829, 829, 803, 802, - 801, 46, 57, 65, 50, 64, 77, 47, 29, 79, - 0, 761, 89, 81, 753, 755, 99, 751, 100, 103, - 92, 752, 755, 763, 741, 829, 829, 829, 829, 829, - 829, 829, 802, 162, 829, 829, 829, 167, 182, 191, - 829, 829, 829, 0, 751, 755, 760, 753, 760, 745, - 734, 738, 106, 748, 755, 738, 157, 749, 132, 742, - 751, 740, 746, 746, 155, 746, 742, 732, 731, 727, - 730, 748, 722, 736, 69, 724, 743, 0, 718, 722, - - 711, 142, 721, 131, 749, 728, 714, 726, 712, 711, - 703, 0, 101, 45, 717, 724, 711, 170, 704, 711, - 707, 707, 705, 169, 701, 700, 699, 128, 0, 0, - 727, 701, 709, 711, 702, 699, 687, 829, 829, 228, - 233, 242, 215, 248, 690, 706, 228, 693, 692, 693, - 694, 689, 690, 688, 688, 681, 694, 691, 681, 164, - 677, 685, 691, 686, 685, 688, 666, 678, 115, 675, - 666, 0, 667, 665, 671, 667, 676, 0, 676, 695, - 227, 672, 671, 247, 661, 694, 668, 653, 666, 663, - 664, 663, 700, 651, 665, 644, 661, 657, 660, 651, - - 641, 645, 650, 643, 654, 641, 649, 648, 637, 641, - 629, 647, 642, 624, 637, 630, 638, 633, 632, 621, - 241, 633, 626, 634, 656, 627, 633, 620, 619, 611, - 233, 289, 294, 303, 308, 313, 0, 612, 615, 619, - 626, 0, 658, 616, 619, 619, 0, 602, 0, 620, - 609, 602, 601, 608, 216, 612, 0, 596, 601, 594, - 593, 0, 596, 596, 603, 599, 0, 587, 0, 602, - 588, 0, 585, 603, 589, 582, 599, 0, 0, 579, - 593, 596, 591, 576, 601, 576, 574, 574, 571, 578, - 0, 622, 0, 199, 576, 568, 568, 572, 569, 573, - - 576, 571, 560, 561, 558, 233, 0, 564, 562, 557, - 554, 568, 0, 0, 552, 553, 207, 556, 0, 567, - 550, 561, 564, 559, 575, 0, 0, 538, 543, 553, - 547, 0, 0, 547, 0, 552, 545, 0, 318, 323, - 557, 536, 540, 539, 0, 538, 533, 540, 537, 544, - 541, 540, 549, 530, 537, 521, 531, 534, 533, 532, - 531, 224, 518, 0, 530, 529, 0, 0, 523, 258, - 510, 513, 518, 509, 514, 513, 509, 0, 533, 505, - 0, 504, 513, 502, 0, 518, 509, 503, 0, 0, - 511, 511, 511, 0, 500, 0, 518, 505, 493, 507, + 0, 0, 829, 830, 830, 830, 807, 830, 821, 830, + 805, 65, 66, 64, 76, 78, 830, 830, 804, 803, + 802, 46, 57, 65, 50, 64, 77, 47, 29, 79, + 0, 762, 89, 81, 754, 756, 99, 752, 100, 103, + 92, 753, 756, 764, 742, 830, 830, 830, 830, 830, + 830, 830, 803, 162, 830, 830, 830, 167, 182, 191, + 830, 830, 830, 0, 752, 756, 761, 754, 761, 746, + 735, 739, 106, 749, 756, 739, 157, 750, 132, 743, + 752, 741, 747, 747, 155, 747, 743, 733, 732, 728, + 731, 749, 723, 737, 69, 725, 744, 0, 719, 723, + + 712, 142, 722, 131, 750, 729, 715, 727, 713, 712, + 704, 0, 101, 45, 718, 725, 712, 170, 705, 712, + 708, 708, 706, 169, 702, 701, 700, 128, 0, 0, + 728, 702, 710, 712, 703, 700, 688, 830, 830, 228, + 233, 242, 215, 248, 691, 707, 228, 694, 693, 694, + 695, 690, 691, 689, 689, 682, 695, 692, 682, 164, + 678, 686, 692, 687, 686, 689, 667, 679, 115, 676, + 667, 0, 668, 666, 672, 668, 677, 0, 677, 696, + 227, 673, 672, 247, 662, 695, 669, 654, 667, 664, + 665, 664, 701, 652, 666, 645, 662, 658, 661, 652, + + 642, 646, 651, 644, 655, 642, 650, 649, 638, 642, + 630, 648, 643, 625, 638, 631, 639, 634, 633, 622, + 241, 634, 627, 635, 657, 628, 634, 621, 620, 612, + 233, 289, 294, 303, 308, 313, 0, 613, 616, 620, + 627, 0, 659, 617, 620, 620, 0, 603, 0, 621, + 610, 603, 602, 609, 216, 613, 0, 597, 602, 595, + 594, 0, 597, 597, 604, 600, 0, 588, 0, 603, + 589, 0, 586, 604, 590, 583, 600, 0, 0, 580, + 594, 597, 592, 577, 602, 577, 575, 575, 572, 579, + 0, 623, 0, 199, 577, 569, 569, 573, 570, 574, + + 577, 572, 561, 562, 559, 233, 0, 565, 563, 558, + 555, 569, 0, 0, 553, 554, 207, 557, 0, 568, + 551, 562, 565, 560, 576, 0, 0, 539, 544, 554, + 548, 0, 0, 548, 0, 553, 546, 0, 318, 323, + 558, 537, 541, 540, 0, 539, 534, 541, 538, 545, + 542, 541, 550, 531, 538, 522, 532, 535, 534, 533, + 532, 224, 519, 0, 531, 530, 0, 0, 524, 258, + 511, 514, 519, 510, 515, 514, 510, 0, 534, 506, + 0, 505, 514, 503, 0, 519, 510, 504, 0, 0, + 512, 512, 512, 0, 501, 495, 518, 505, 493, 507, 503, 494, 501, 0, 497, 499, 498, 0, 483, 482, 495, 488, 495, 478, 482, 0, 288, 0, 490, 0, @@ -565,119 +566,119 @@ static yyconst flex_int16_t yy_base[702] = 469, 0, 474, 485, 480, 461, 470, 469, 486, 463, 0, 0, 226, 470, 0, 469, 472, 462, 261, 499, 0, 465, 453, 0, 0, 462, 0, 481, 465, 0, - 0, 464, 455, 442, 0, 447, 456, 463, 0, 448, - 0, 453, 308, 473, 0, 0, 455, 0, 0, 453, - 0, 452, 456, 451, 438, 450, 304, 452, 0, 0, - 433, 0, 0, 444, 457, 444, 445, 445, 0, 0, - - 442, 444, 430, 442, 0, 424, 438, 439, 0, 426, - 453, 448, 441, 422, 429, 0, 446, 429, 412, 420, - 424, 411, 424, 415, 417, 318, 423, 410, 417, 404, - 0, 411, 400, 0, 394, 412, 396, 402, 395, 405, - 435, 397, 393, 404, 397, 0, 388, 391, 386, 0, - 0, 391, 0, 413, 412, 423, 393, 0, 423, 379, - 0, 0, 0, 388, 0, 0, 391, 393, 381, 374, - 387, 373, 0, 367, 380, 0, 377, 386, 377, 380, - 394, 369, 370, 372, 0, 375, 374, 364, 372, 0, - 383, 382, 391, 0, 378, 0, 369, 354, 359, 362, - - 363, 0, 359, 0, 345, 0, 361, 345, 0, 348, - 339, 0, 343, 0, 342, 348, 354, 357, 356, 355, - 370, 0, 348, 0, 341, 334, 0, 345, 305, 344, - 329, 0, 328, 0, 332, 0, 348, 347, 346, 352, - 0, 0, 340, 0, 323, 0, 330, 329, 330, 355, - 354, 353, 343, 320, 321, 315, 325, 303, 333, 332, - 330, 321, 300, 0, 303, 0, 326, 320, 317, 316, - 315, 0, 290, 293, 322, 321, 320, 325, 0, 319, - 311, 308, 278, 284, 239, 258, 244, 199, 198, 145, - 0, 0, 0, 156, 121, 144, 51, 0, 0, 829, - - 81 + 0, 464, 455, 442, 0, 447, 456, 463, 0, 0, + 448, 0, 453, 308, 473, 0, 0, 455, 0, 0, + 453, 0, 452, 456, 451, 438, 450, 304, 452, 0, + 0, 433, 0, 0, 444, 457, 444, 445, 445, 0, + + 0, 442, 444, 430, 442, 0, 424, 438, 439, 0, + 426, 453, 448, 441, 422, 429, 0, 446, 429, 412, + 420, 424, 411, 424, 415, 417, 318, 423, 410, 417, + 404, 0, 411, 400, 0, 394, 412, 396, 402, 395, + 405, 435, 397, 393, 404, 397, 0, 388, 391, 386, + 0, 0, 391, 0, 413, 412, 423, 393, 0, 423, + 379, 0, 0, 0, 388, 0, 0, 391, 393, 381, + 374, 387, 373, 0, 367, 380, 0, 377, 386, 377, + 380, 394, 369, 370, 372, 0, 375, 374, 364, 372, + 0, 383, 382, 391, 0, 378, 0, 369, 354, 359, + + 362, 363, 0, 359, 0, 345, 0, 361, 345, 0, + 348, 339, 0, 343, 0, 342, 348, 354, 357, 356, + 355, 370, 0, 348, 0, 341, 334, 0, 345, 305, + 344, 329, 0, 328, 0, 332, 0, 348, 347, 346, + 352, 0, 0, 340, 0, 323, 0, 330, 329, 330, + 355, 354, 353, 343, 320, 321, 315, 325, 303, 333, + 332, 330, 321, 300, 0, 303, 0, 326, 320, 317, + 316, 315, 0, 290, 293, 322, 321, 320, 325, 0, + 319, 311, 308, 278, 284, 239, 258, 244, 199, 198, + 145, 0, 0, 0, 156, 121, 144, 51, 0, 0, + + 830, 81 } ; -static yyconst flex_int16_t yy_def[702] = +static yyconst flex_int16_t yy_def[703] = { 0, - 700, 1, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 700, 700, 700, - 700, 700, 700, 700, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 700, 700, 700, 700, 700, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 700, 700, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 1, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, - 701, 701, 701, 701, 701, 701, 701, 701, 701, 0, - - 700 + 701, 701, 701, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 701, 701, 701, + 701, 701, 701, 701, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 701, 701, 701, 701, 701, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 701, 701, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, + + 0, 701 } ; -static yyconst flex_int16_t yy_nxt[903] = +static yyconst flex_int16_t yy_nxt[904] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -691,97 +692,97 @@ static yyconst flex_int16_t yy_nxt[903] = 59, 59, 59, 59, 59, 65, 57, 70, 93, 96, 204, 79, 205, 66, 60, 80, 129, 130, 71, 67, - 68, 69, 73, 81, 97, 699, 74, 72, 105, 75, + 68, 69, 73, 81, 97, 700, 74, 72, 105, 75, 76, 82, 131, 83, 86, 77, 183, 184, 78, 60, 84, 98, 87, 85, 88, 89, 101, 90, 99, 132, 102, 106, 264, 91, 103, 265, 109, 117, 202, 104, 110, 118, 133, 111, 112, 134, 113, 121, 122, 114, 119, 123, 115, 153, 124, 125, 120, 203, 126, 127, - 698, 154, 697, 128, 54, 54, 54, 54, 54, 141, + 699, 154, 698, 128, 54, 54, 54, 54, 54, 141, 141, 141, 141, 141, 193, 164, 223, 224, 140, 165, - 696, 194, 58, 142, 59, 59, 59, 59, 59, 143, + 697, 194, 58, 142, 59, 59, 59, 59, 59, 143, - 143, 190, 695, 144, 144, 144, 144, 144, 60, 191, + 143, 190, 696, 144, 144, 144, 144, 144, 60, 191, 171, 158, 254, 140, 159, 160, 172, 161, 142, 209, - 173, 162, 210, 217, 694, 255, 218, 144, 144, 144, - 144, 144, 219, 60, 693, 211, 232, 232, 386, 387, + 173, 162, 210, 217, 695, 255, 218, 144, 144, 144, + 144, 144, 219, 60, 694, 211, 232, 232, 386, 387, 233, 233, 233, 233, 233, 141, 141, 141, 141, 141, 235, 235, 239, 275, 236, 236, 236, 236, 236, 234, 144, 144, 144, 144, 144, 320, 407, 276, 240, 241, - 277, 280, 408, 355, 399, 281, 356, 505, 321, 692, - 322, 506, 332, 511, 234, 333, 282, 283, 443, 444, - 334, 512, 449, 691, 335, 450, 336, 337, 399, 690, + 277, 280, 408, 355, 399, 281, 356, 506, 321, 693, + 322, 507, 332, 512, 234, 333, 282, 283, 443, 444, + 334, 513, 449, 692, 335, 450, 336, 337, 399, 691, 338, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 339, 339, 689, 688, 340, 340, 340, 340, 340, + 233, 339, 339, 690, 689, 340, 340, 340, 340, 340, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 487, 527, 537, 568, 687, 488, 645, 686, 685, 684, - 683, 682, 681, 680, 679, 678, 677, 676, 569, 538, - 675, 674, 673, 528, 672, 527, 537, 671, 568, 670, - 645, 669, 668, 667, 666, 665, 664, 663, 662, 661, - 660, 659, 569, 658, 657, 656, 655, 654, 653, 652, - 651, 650, 649, 648, 647, 646, 644, 643, 642, 641, - - 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, - 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, - 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, - 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, - 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, - 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 567, 566, 565, 564, 563, 562, 561, 560, 559, - 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, - 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, - - 536, 535, 534, 533, 532, 531, 530, 529, 526, 525, - 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, - 514, 513, 510, 509, 508, 507, 504, 503, 502, 501, - 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, - 490, 489, 486, 485, 484, 483, 482, 481, 480, 479, - 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, - 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, - 458, 457, 456, 455, 454, 453, 452, 451, 448, 447, - 446, 445, 442, 441, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, - - 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, - 414, 413, 412, 411, 410, 409, 406, 405, 404, 403, - 402, 401, 400, 398, 397, 396, 395, 394, 393, 392, - 391, 390, 389, 388, 385, 384, 383, 382, 381, 380, - 379, 378, 377, 376, 375, 374, 373, 372, 371, 370, - 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, - 359, 358, 357, 354, 353, 352, 351, 350, 349, 348, - 347, 346, 345, 344, 343, 342, 341, 331, 330, 329, - 328, 327, 326, 325, 324, 323, 319, 318, 317, 316, - 315, 314, 313, 312, 311, 310, 309, 308, 307, 306, - - 305, 304, 303, 302, 301, 300, 299, 298, 297, 296, - 295, 294, 293, 292, 291, 290, 289, 288, 287, 286, - 285, 284, 279, 278, 274, 273, 272, 271, 270, 269, - 268, 267, 266, 263, 262, 261, 260, 259, 258, 257, - 256, 253, 252, 251, 250, 249, 248, 247, 246, 245, - 244, 243, 242, 238, 237, 231, 230, 229, 228, 227, - 226, 225, 222, 221, 220, 216, 215, 214, 213, 212, - 208, 207, 206, 201, 200, 199, 198, 197, 196, 195, - 192, 189, 188, 187, 186, 185, 182, 181, 180, 179, - 178, 177, 176, 175, 174, 170, 169, 168, 167, 166, - - 163, 157, 156, 155, 152, 151, 150, 149, 148, 147, - 146, 145, 139, 138, 137, 136, 135, 116, 108, 107, - 100, 63, 62, 61, 48, 47, 46, 700, 3, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - - 700, 700 + 488, 528, 538, 569, 688, 489, 646, 687, 686, 685, + 684, 683, 682, 681, 680, 679, 678, 677, 570, 539, + 676, 675, 674, 529, 673, 528, 538, 672, 569, 671, + 646, 670, 669, 668, 667, 666, 665, 664, 663, 662, + 661, 660, 570, 659, 658, 657, 656, 655, 654, 653, + 652, 651, 650, 649, 648, 647, 645, 644, 643, 642, + + 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, + 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, + 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, + 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, + 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, + 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, + 571, 568, 567, 566, 565, 564, 563, 562, 561, 560, + 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, + 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, + + 537, 536, 535, 534, 533, 532, 531, 530, 527, 526, + 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, + 515, 514, 511, 510, 509, 508, 505, 504, 503, 502, + 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, + 491, 490, 487, 486, 485, 484, 483, 482, 481, 480, + 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, + 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, + 459, 458, 457, 456, 455, 454, 453, 452, 451, 448, + 447, 446, 445, 442, 441, 440, 439, 438, 437, 436, + 435, 434, 433, 432, 431, 430, 429, 428, 427, 426, + + 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, + 415, 414, 413, 412, 411, 410, 409, 406, 405, 404, + 403, 402, 401, 400, 398, 397, 396, 395, 394, 393, + 392, 391, 390, 389, 388, 385, 384, 383, 382, 381, + 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 359, 358, 357, 354, 353, 352, 351, 350, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 331, 330, + 329, 328, 327, 326, 325, 324, 323, 319, 318, 317, + 316, 315, 314, 313, 312, 311, 310, 309, 308, 307, + + 306, 305, 304, 303, 302, 301, 300, 299, 298, 297, + 296, 295, 294, 293, 292, 291, 290, 289, 288, 287, + 286, 285, 284, 279, 278, 274, 273, 272, 271, 270, + 269, 268, 267, 266, 263, 262, 261, 260, 259, 258, + 257, 256, 253, 252, 251, 250, 249, 248, 247, 246, + 245, 244, 243, 242, 238, 237, 231, 230, 229, 228, + 227, 226, 225, 222, 221, 220, 216, 215, 214, 213, + 212, 208, 207, 206, 201, 200, 199, 198, 197, 196, + 195, 192, 189, 188, 187, 186, 185, 182, 181, 180, + 179, 178, 177, 176, 175, 174, 170, 169, 168, 167, + + 166, 163, 157, 156, 155, 152, 151, 150, 149, 148, + 147, 146, 145, 139, 138, 137, 136, 135, 116, 108, + 107, 100, 63, 62, 61, 48, 47, 46, 701, 3, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + + 701, 701, 701 } ; -static yyconst flex_int16_t yy_chk[903] = +static yyconst flex_int16_t yy_chk[904] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -791,98 +792,98 @@ static yyconst flex_int16_t yy_chk[903] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, - 14, 28, 701, 15, 29, 12, 13, 15, 16, 29, + 14, 28, 702, 15, 29, 12, 13, 15, 16, 29, 16, 16, 16, 16, 16, 22, 15, 23, 28, 29, 114, 25, 114, 22, 16, 25, 41, 41, 23, 22, - 22, 22, 24, 25, 30, 697, 24, 23, 34, 24, + 22, 22, 24, 25, 30, 698, 24, 23, 34, 24, 24, 26, 41, 26, 27, 24, 95, 95, 24, 16, 26, 30, 27, 26, 27, 27, 33, 27, 30, 41, 33, 34, 169, 27, 33, 169, 37, 39, 113, 33, 37, 39, 41, 37, 37, 41, 37, 40, 40, 37, 39, 40, 37, 73, 40, 40, 39, 113, 40, 40, - 696, 73, 695, 40, 54, 54, 54, 54, 54, 58, + 697, 73, 696, 40, 54, 54, 54, 54, 54, 58, 58, 58, 58, 58, 104, 79, 128, 128, 54, 79, - 694, 104, 59, 58, 59, 59, 59, 59, 59, 60, + 695, 104, 59, 58, 59, 59, 59, 59, 59, 60, - 60, 102, 690, 60, 60, 60, 60, 60, 59, 102, + 60, 102, 691, 60, 60, 60, 60, 60, 59, 102, 85, 77, 160, 54, 77, 77, 85, 77, 58, 118, - 85, 77, 118, 124, 689, 160, 124, 143, 143, 143, - 143, 143, 124, 59, 688, 118, 140, 140, 294, 294, + 85, 77, 118, 124, 690, 160, 124, 143, 143, 143, + 143, 143, 124, 59, 689, 118, 140, 140, 294, 294, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 142, 142, 147, 181, 142, 142, 142, 142, 142, 141, 144, 144, 144, 144, 144, 221, 317, 181, 147, 147, - 181, 184, 317, 255, 306, 184, 255, 443, 221, 687, + 181, 184, 317, 255, 306, 184, 255, 443, 221, 688, 221, 443, 231, 449, 141, 231, 184, 184, 362, 362, - 231, 449, 370, 686, 231, 370, 231, 231, 306, 685, + 231, 449, 370, 687, 231, 370, 231, 231, 306, 686, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, - 233, 234, 234, 684, 683, 234, 234, 234, 234, 234, + 233, 234, 234, 685, 684, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 339, 339, 339, 339, 339, 340, 340, 340, 340, 340, - 417, 473, 487, 526, 682, 417, 629, 681, 680, 678, - 677, 676, 675, 674, 673, 671, 670, 669, 526, 487, - 668, 667, 665, 473, 663, 473, 487, 662, 526, 661, - 629, 660, 659, 658, 657, 656, 655, 654, 653, 652, - 651, 650, 526, 649, 648, 647, 645, 643, 640, 639, - 638, 637, 635, 633, 631, 630, 628, 626, 625, 623, - - 621, 620, 619, 618, 617, 616, 615, 613, 611, 610, - 608, 607, 605, 603, 601, 600, 599, 598, 597, 595, - 593, 592, 591, 589, 588, 587, 586, 584, 583, 582, - 581, 580, 579, 578, 577, 575, 574, 572, 571, 570, - 569, 568, 567, 564, 560, 559, 557, 556, 555, 554, - 552, 549, 548, 547, 545, 544, 543, 542, 541, 540, - 539, 538, 537, 536, 535, 533, 532, 530, 529, 528, - 527, 525, 524, 523, 522, 521, 520, 519, 518, 517, - 515, 514, 513, 512, 511, 510, 508, 507, 506, 504, - 503, 502, 501, 498, 497, 496, 495, 494, 491, 488, - - 486, 485, 484, 483, 482, 480, 477, 474, 472, 470, + 417, 474, 488, 527, 683, 417, 630, 682, 681, 679, + 678, 677, 676, 675, 674, 672, 671, 670, 527, 488, + 669, 668, 666, 474, 664, 474, 488, 663, 527, 662, + 630, 661, 660, 659, 658, 657, 656, 655, 654, 653, + 652, 651, 527, 650, 649, 648, 646, 644, 641, 640, + 639, 638, 636, 634, 632, 631, 629, 627, 626, 624, + + 622, 621, 620, 619, 618, 617, 616, 614, 612, 611, + 609, 608, 606, 604, 602, 601, 600, 599, 598, 596, + 594, 593, 592, 590, 589, 588, 587, 585, 584, 583, + 582, 581, 580, 579, 578, 576, 575, 573, 572, 571, + 570, 569, 568, 565, 561, 560, 558, 557, 556, 555, + 553, 550, 549, 548, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 537, 536, 534, 533, 531, 530, 529, + 528, 526, 525, 524, 523, 522, 521, 520, 519, 518, + 516, 515, 514, 513, 512, 511, 509, 508, 507, 505, + 504, 503, 502, 499, 498, 497, 496, 495, 492, 489, + + 487, 486, 485, 484, 483, 481, 478, 475, 473, 471, 468, 467, 466, 464, 463, 462, 459, 458, 456, 453, 452, 450, 448, 447, 446, 444, 440, 439, 438, 437, 436, 435, 434, 433, 431, 430, 429, 427, 426, 423, 421, 419, 415, 414, 413, 412, 411, 410, 409, 407, - 406, 405, 403, 402, 401, 400, 399, 398, 397, 395, - 393, 392, 391, 388, 387, 386, 384, 383, 382, 380, - 379, 377, 376, 375, 374, 373, 372, 371, 369, 366, - 365, 363, 361, 360, 359, 358, 357, 356, 355, 354, - 353, 352, 351, 350, 349, 348, 347, 346, 344, 343, - - 342, 341, 337, 336, 334, 331, 330, 329, 328, 325, - 324, 323, 322, 321, 320, 318, 316, 315, 312, 311, - 310, 309, 308, 305, 304, 303, 302, 301, 300, 299, - 298, 297, 296, 295, 292, 290, 289, 288, 287, 286, - 285, 284, 283, 282, 281, 280, 277, 276, 275, 274, - 273, 271, 270, 268, 266, 265, 264, 263, 261, 260, - 259, 258, 256, 254, 253, 252, 251, 250, 248, 246, - 245, 244, 243, 241, 240, 239, 238, 230, 229, 228, - 227, 226, 225, 224, 223, 222, 220, 219, 218, 217, - 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, - - 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, - 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, - 186, 185, 183, 182, 180, 179, 177, 176, 175, 174, - 173, 171, 170, 168, 167, 166, 165, 164, 163, 162, - 161, 159, 158, 157, 156, 155, 154, 153, 152, 151, - 150, 149, 148, 146, 145, 137, 136, 135, 134, 133, - 132, 131, 127, 126, 125, 123, 122, 121, 120, 119, - 117, 116, 115, 111, 110, 109, 108, 107, 106, 105, - 103, 101, 100, 99, 97, 96, 94, 93, 92, 91, - 90, 89, 88, 87, 86, 84, 83, 82, 81, 80, - - 78, 76, 75, 74, 72, 71, 70, 69, 68, 67, - 66, 65, 53, 45, 44, 43, 42, 38, 36, 35, - 32, 21, 20, 19, 11, 9, 7, 3, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, - - 700, 700 + 406, 405, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 393, 392, 391, 388, 387, 386, 384, 383, 382, + 380, 379, 377, 376, 375, 374, 373, 372, 371, 369, + 366, 365, 363, 361, 360, 359, 358, 357, 356, 355, + 354, 353, 352, 351, 350, 349, 348, 347, 346, 344, + + 343, 342, 341, 337, 336, 334, 331, 330, 329, 328, + 325, 324, 323, 322, 321, 320, 318, 316, 315, 312, + 311, 310, 309, 308, 305, 304, 303, 302, 301, 300, + 299, 298, 297, 296, 295, 292, 290, 289, 288, 287, + 286, 285, 284, 283, 282, 281, 280, 277, 276, 275, + 274, 273, 271, 270, 268, 266, 265, 264, 263, 261, + 260, 259, 258, 256, 254, 253, 252, 251, 250, 248, + 246, 245, 244, 243, 241, 240, 239, 238, 230, 229, + 228, 227, 226, 225, 224, 223, 222, 220, 219, 218, + 217, 216, 215, 214, 213, 212, 211, 210, 209, 208, + + 207, 206, 205, 204, 203, 202, 201, 200, 199, 198, + 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, + 187, 186, 185, 183, 182, 180, 179, 177, 176, 175, + 174, 173, 171, 170, 168, 167, 166, 165, 164, 163, + 162, 161, 159, 158, 157, 156, 155, 154, 153, 152, + 151, 150, 149, 148, 146, 145, 137, 136, 135, 134, + 133, 132, 131, 127, 126, 125, 123, 122, 121, 120, + 119, 117, 116, 115, 111, 110, 109, 108, 107, 106, + 105, 103, 101, 100, 99, 97, 96, 94, 93, 92, + 91, 90, 89, 88, 87, 86, 84, 83, 82, 81, + + 80, 78, 76, 75, 74, 72, 71, 70, 69, 68, + 67, 66, 65, 53, 45, 44, 43, 42, 38, 36, + 35, 32, 21, 20, 19, 11, 9, 7, 3, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, + + 701, 701, 701 } ; static yy_state_type yy_last_accepting_state; @@ -939,7 +940,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 943 "Gmsh.yy.cpp" +#line 944 "Gmsh.yy.cpp" #define INITIAL 0 @@ -1124,7 +1125,7 @@ YY_DECL #line 49 "Gmsh.l" -#line 1128 "Gmsh.yy.cpp" +#line 1129 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1177,13 +1178,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 701 ) + if ( yy_current_state >= 702 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 829 ); + while ( yy_base[yy_current_state] != 830 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1776,225 +1777,230 @@ return tPoint; case 114: YY_RULE_SETUP #line 179 "Gmsh.l" -return tParametric; +return tPoints; YY_BREAK case 115: YY_RULE_SETUP #line 180 "Gmsh.l" -return tPolarSphere; +return tParametric; YY_BREAK case 116: YY_RULE_SETUP #line 181 "Gmsh.l" -return tPrintf; +return tPolarSphere; YY_BREAK case 117: YY_RULE_SETUP #line 182 "Gmsh.l" -return tPlugin; +return tPrintf; YY_BREAK case 118: YY_RULE_SETUP -#line 184 "Gmsh.l" -return tQuadTriDbl; +#line 183 "Gmsh.l" +return tPlugin; YY_BREAK case 119: YY_RULE_SETUP #line 185 "Gmsh.l" -return tQuadTriSngl; +return tQuadTriDbl; YY_BREAK case 120: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tRecombine; +#line 186 "Gmsh.l" +return tQuadTriSngl; YY_BREAK case 121: YY_RULE_SETUP #line 188 "Gmsh.l" -return tRecombLaterals; +return tRecombine; YY_BREAK case 122: YY_RULE_SETUP #line 189 "Gmsh.l" -return tRotate; +return tRecombLaterals; YY_BREAK case 123: YY_RULE_SETUP #line 190 "Gmsh.l" -return tRuled; +return tRotate; YY_BREAK case 124: YY_RULE_SETUP #line 191 "Gmsh.l" -return tRand; +return tRuled; YY_BREAK case 125: YY_RULE_SETUP #line 192 "Gmsh.l" -return tRefineMesh; +return tRand; YY_BREAK case 126: YY_RULE_SETUP #line 193 "Gmsh.l" -return tReturn; +return tRefineMesh; YY_BREAK case 127: YY_RULE_SETUP -#line 195 "Gmsh.l" -return tSmoother; +#line 194 "Gmsh.l" +return tReturn; YY_BREAK case 128: YY_RULE_SETUP #line 196 "Gmsh.l" -return tSqrt; +return tSmoother; YY_BREAK case 129: YY_RULE_SETUP #line 197 "Gmsh.l" -return tSin; +return tSqrt; YY_BREAK case 130: YY_RULE_SETUP #line 198 "Gmsh.l" -return tSinh; +return tSin; YY_BREAK case 131: YY_RULE_SETUP #line 199 "Gmsh.l" -return tSphere; +return tSinh; YY_BREAK case 132: YY_RULE_SETUP #line 200 "Gmsh.l" -return tSpline; +return tSphere; YY_BREAK case 133: YY_RULE_SETUP #line 201 "Gmsh.l" -return tSplit; +return tSpline; YY_BREAK case 134: YY_RULE_SETUP #line 202 "Gmsh.l" -return tSurface; +return tSplit; YY_BREAK case 135: YY_RULE_SETUP #line 203 "Gmsh.l" -return tSprintf; +return tSurface; YY_BREAK case 136: YY_RULE_SETUP #line 204 "Gmsh.l" -return tStrCat; +return tSprintf; YY_BREAK case 137: YY_RULE_SETUP #line 205 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 138: YY_RULE_SETUP #line 206 "Gmsh.l" -return tStrRelative; +return tStrPrefix; YY_BREAK case 139: YY_RULE_SETUP #line 207 "Gmsh.l" -return tShow; +return tStrRelative; YY_BREAK case 140: YY_RULE_SETUP #line 208 "Gmsh.l" -return tSymmetry; +return tShow; YY_BREAK case 141: YY_RULE_SETUP #line 209 "Gmsh.l" -return tSyncModel; +return tSymmetry; YY_BREAK case 142: YY_RULE_SETUP -#line 211 "Gmsh.l" -return tText2D; +#line 210 "Gmsh.l" +return tSyncModel; YY_BREAK case 143: YY_RULE_SETUP #line 212 "Gmsh.l" -return tText3D; +return tText2D; YY_BREAK case 144: YY_RULE_SETUP #line 213 "Gmsh.l" -return tTime; +return tText3D; YY_BREAK case 145: YY_RULE_SETUP #line 214 "Gmsh.l" -return tTransfinite; +return tTime; YY_BREAK case 146: YY_RULE_SETUP #line 215 "Gmsh.l" -return tTransfQuadTri; +return tTransfinite; YY_BREAK case 147: YY_RULE_SETUP #line 216 "Gmsh.l" -return tTranslate; +return tTransfQuadTri; YY_BREAK case 148: YY_RULE_SETUP #line 217 "Gmsh.l" -return tTanh; +return tTranslate; YY_BREAK case 149: YY_RULE_SETUP #line 218 "Gmsh.l" -return tTan; +return tTanh; YY_BREAK case 150: YY_RULE_SETUP #line 219 "Gmsh.l" -return tToday; +return tTan; YY_BREAK case 151: YY_RULE_SETUP -#line 221 "Gmsh.l" -return tUsing; +#line 220 "Gmsh.l" +return tToday; YY_BREAK case 152: YY_RULE_SETUP -#line 223 "Gmsh.l" -return tVolume; +#line 222 "Gmsh.l" +return tUsing; YY_BREAK case 153: -#line 226 "Gmsh.l" +YY_RULE_SETUP +#line 224 "Gmsh.l" +return tVolume; + YY_BREAK case 154: #line 227 "Gmsh.l" case 155: #line 228 "Gmsh.l" case 156: +#line 229 "Gmsh.l" +case 157: YY_RULE_SETUP -#line 228 "Gmsh.l" +#line 229 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 157: +case 158: YY_RULE_SETUP -#line 230 "Gmsh.l" +#line 231 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 158: +case 159: YY_RULE_SETUP -#line 232 "Gmsh.l" +#line 233 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 159: +case 160: YY_RULE_SETUP -#line 234 "Gmsh.l" +#line 235 "Gmsh.l" ECHO; YY_BREAK -#line 1998 "Gmsh.yy.cpp" +#line 2004 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2286,7 +2292,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 701 ) + if ( yy_current_state >= 702 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2314,11 +2320,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 701 ) + if ( yy_current_state >= 702 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 700); + yy_is_jam = (yy_current_state == 701); return yy_is_jam ? 0 : yy_current_state; } @@ -2991,7 +2997,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 234 "Gmsh.l" +#line 235 "Gmsh.l" diff --git a/Solver/function.cpp b/Solver/function.cpp index d9e3b3b311bfcc4afe67f04e7ca2148539a865bb..5f9f3d9a71d2d78f6f019b5a031244b93869c554 100644 --- a/Solver/function.cpp +++ b/Solver/function.cpp @@ -468,13 +468,25 @@ class functionLevelsetSmooth : public function { void call(dataCacheMap *m, fullMatrix<double> &val) { + double ivalPlus = 1./_valPlus; + double ivalMin = 1./_valMin; for (int i = 0; i < val.size1(); i++) for (int j = 0; j < val.size2(); j++){ double phi = _f0(i,j); - double Heps = 0.5 * (1 + phi / _E + 1. / M_PI * sin(M_PI * phi / _E)); - if (fabs(phi) < _E) val(i, j) = Heps * _valPlus + (1 - Heps) * _valMin; + + //double Heps = 0.5 * (1 + phi / _E + 1. / M_PI * sin(M_PI * phi / _E)); + //double Heps = 0.5 + 1./32.*(45.*phi/_E - 50.*pow(phi/_E,3.) + 21.*pow(phi/_E,5.) ); + //double Heps = 0.5*(1+tanh(M_PI*phi/_E)); + double Heps = 0.75 * (phi/_E - 0.33*pow(phi/_E,3.0)) + 0.5; + + //if (fabs(phi) < _E) val(i, j) = 1./(Heps * ivalPlus + (1 - Heps) * ivalMin); + //else if (phi > _E) val(i, j) = 1./ivalPlus; + //else if (phi < -_E) val(i, j) = 1./ivalMin; + + if (fabs(phi) < _E) val(i, j) = (Heps * _valPlus + (1 - Heps) * _valMin); else if (phi > _E) val(i, j) = _valPlus; else if (phi < -_E) val(i, j) = _valMin; + } } functionLevelsetSmooth(const function *f0, const double valMin, const double valPlus, const double E) : function(f0->getNbCol()) diff --git a/benchmarks/2d/conge.geo b/benchmarks/2d/conge.geo index 60dd0ebd3bd3db6dd9af22c632f55ff56360b883..41be12dc9bb454ffecbbb04f8c6042a61865eadc 100644 --- a/benchmarks/2d/conge.geo +++ b/benchmarks/2d/conge.geo @@ -21,7 +21,7 @@ Point(1) = { -e1-e2, 0.0 , 0.0 , Lc1}; Point(2) = { -e1-e2, h1 , 0.0 , Lc1}; Point(3) = { -e3-r , h1 , 0.0 , Lc2}; Point(4) = { -e3-r , h1+r , 0.0 , Lc2}; -Point(5) = { -e3 , h1+r , 0.0 , Lc2*.1}; +Point(5) = { -e3 , h1+r , 0.0 , Lc2}; Point(6) = { -e3 , h1+h2, 0.0 , Lc1}; Point(7) = { e3 , h1+h2, 0.0 , Lc1}; Point(8) = { e3 , h1+r , 0.0 , Lc2}; @@ -69,14 +69,14 @@ Circle(19) = {25,23,22}; Line(20) = {21,22}; Line Loop(21) = {17,-15,18,19,-20,16}; -Plane Surface(22) = {21}; +//Plane Surface(22) = {21}; Line Loop(23) = {11,-12,13,14,1,2,-3,4,5,6,7,-8,9,10}; Plane Surface(24) = {23,21}; Physical Line(24) = {9,1,2,3,4,5,6,7,8,11}; Physical Line(25) = {12,13,14,15,16,17,18,19,20,10}; -Physical Surface(26) = {22,24}; +Physical Surface(26) = {24}; Physical Line(27) = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 14, 13, 12, 11}; Physical Line(28) = {17, 16, 20, 19, 18, 15}; -Recombine Surface {24, 22}; -Mesh.RecombinationAlgorithm=1; \ No newline at end of file +//Recombine Surface {24, 22}; +//Mesh.RecombinationAlgorithm=1; \ No newline at end of file diff --git a/benchmarks/curvature/Torus/TorusRemesh.geo b/benchmarks/curvature/Torus/TorusRemesh.geo index 2e2cb5cfe3794c720248b3711ae4810e48b44ab2..68c370f0e7882061c7872a58293d8639b39478fb 100644 --- a/benchmarks/curvature/Torus/TorusRemesh.geo +++ b/benchmarks/curvature/Torus/TorusRemesh.geo @@ -2,7 +2,7 @@ // The following settings were copied from benchmarks/step/linkrods.geo // ====================================================================== -Mesh.Algorithm=7; //1=MeshAdapt, 5=Delaunay, 6=Frontal, 7=bamg +Mesh.Algorithm=6; //1=MeshAdapt, 5=Delaunay, 6=Frontal, 7=bamg Mesh.RemeshParametrization= 1; //(0) harmonic (1) conformal Mesh.RemeshAlgorithm = 0; //(0) nosplit (1) automatic (2) split only with metis ///Default: 1 diff --git a/benchmarks/levelset/cube.geo b/benchmarks/levelset/cube.geo index 4b2573b487794c404ac3c701d5b084a1cb879c9e..5e9ee58fda305f03b5e101b48303e3560725a5d4 100644 --- a/benchmarks/levelset/cube.geo +++ b/benchmarks/levelset/cube.geo @@ -1,4 +1,3 @@ - lc = 0.1; Point(1) = {0.0,0.0,0.0,lc}; Point(2) = {1,0.0,0.0,lc}; @@ -26,4 +25,7 @@ Levelset Intersection (10) = {1,2,3}; Levelset Intersection (11) = {5,6}; Levelset Cut (12) = {3,7}; -Levelset CutMesh {1}; +Levelset Points(13)={{0.5,0,0},{0.5,0.5,0.},{0.5,1,0},{0.5,0,0.5},{0.5,0,0.8},{0.5,0.5,0.5},{0.5,0.5,1},{0.5,1,0.5},{1.5,1,1}}; + +Levelset CutMeshTri {12}; + diff --git a/contrib/DiscreteIntegration/DILevelset.cpp b/contrib/DiscreteIntegration/DILevelset.cpp index db24a1e6338c7c3d46cc86c65d514806e6321a1a..18e308d538a52acf2a0566e7cdaa4b1da89ebfb5 100644 --- a/contrib/DiscreteIntegration/DILevelset.cpp +++ b/contrib/DiscreteIntegration/DILevelset.cpp @@ -4,6 +4,8 @@ #include "DILevelset.h" #include <queue> #include <stack> +#include "fullMatrix.h" + inline double det3(double d11, double d12, double d13, double d21, double d22, double d23, double d31, double d32, double d33) { return d11 * (d22 * d33 - d23 * d32) - d21 * (d12 * d33 - d13 * d32) + d31 * (d12 * d23 - d13 * d22); @@ -32,6 +34,37 @@ inline bool isPlanar(const double *pt1, const double *pt2, const double *pt3, co return (n1[0] == n2[0] && n1[1] == n2[1] && n1[2] == n2[2]); } +inline double evalRadialFnDer (int p, int index, double dx, double dy, double dz, double ep){ + + double r2 = dx*dx+dy*dy+dz*dz; //r^2 + switch (index) { + case 0 : // GA + switch (p) { + case 0: return exp(-ep*ep*r2); + case 1: return -2*ep*ep*dx*exp(-ep*ep*r2); // _x + case 2: return -2*ep*ep*dy*exp(-ep*ep*r2); // _y + case 3: return -2*ep*ep*dz*exp(-ep*ep*r2); // _z + } + case 1 : //MQ + switch (p) { + case 0: return sqrt(1+ep*ep*r2); + case 1: return ep*ep*dx/sqrt(1+ep*ep*r2); + case 2: return ep*ep*dy/sqrt(1+ep*ep*r2); + case 3: return ep*ep*dz/sqrt(1+ep*ep*r2); + } + } +} + +inline void printNodes(fullMatrix<double> &myNodes, fullMatrix<double> &surf){ + FILE * xyz = fopen("myNodes.pos","w"); + fprintf(xyz,"View \"\"{\n"); + for(int itv = 1; itv !=myNodes.size1() ; ++itv){ + fprintf(xyz,"SP(%g,%g,%g){%g};\n", myNodes(itv,0),myNodes(itv,1),myNodes(itv,2),surf(itv,0)); + } + fprintf(xyz,"};\n"); + fclose(xyz); +} + // extrude a list of the primitive levelsets with a "Level-order traversal sequence" void gLevelset::getPrimitives(std::vector<const gLevelset *> &gLsPrimitives) const { std::queue<const gLevelset *> Q; @@ -131,6 +164,178 @@ gLevelsetPlane::gLevelsetPlane(const gLevelsetPlane &lv) : gLevelsetPrimitive(lv c = lv.c; d = lv.d; } + +//level set defined by points (RBF interpolation) + +fullMatrix<double> gLevelsetPoints::generateRbfMat(int p, int index, + const fullMatrix<double> &nodes1, + const fullMatrix<double> &nodes2) const { + int m = nodes2.size1(); + int n = nodes1.size1(); + fullMatrix<double> rbfMat(m,n); + + double eps =0.5/delta; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + double dx = nodes2(i,0)-nodes1(j,0); + double dy = nodes2(i,1)-nodes1(j,1); + double dz = nodes2(i,2)-nodes1(j,2); + rbfMat(i,j) = evalRadialFnDer(p, index, dx,dy,dz,eps); + } + } + return rbfMat; + +} +void gLevelsetPoints::RbfOp(int p, int index, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + fullMatrix<double> &D, + bool isLocal) const { + + fullMatrix<double> rbfMatB = generateRbfMat(p,index, cntrs,nodes); + //printf("size=%d %d \n", rbfMatB.size1(), rbfMatB.size2()); + //rbfMatB.print("MatB"); + + fullMatrix<double> rbfInvA; + if (isLocal){ + rbfInvA = generateRbfMat(0,index, cntrs,cntrs); + rbfInvA.invertInPlace(); + //printf("size=%d %d \n", rbfInvA.size1(), rbfInvA.size2()); + //rbfInvA.print("invA"); + } + else { + rbfInvA = matAInv; + } + + D.resize(nodes.size1(), cntrs.size1()); + D.gemm(rbfMatB, rbfInvA, 1.0, 0.0); + +} + + +void gLevelsetPoints::evalRbfDer(int p, int index, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + const fullMatrix<double> &fValues, + fullMatrix<double> &fApprox, bool isLocal) const { + + fApprox.resize(nodes.size1(),fValues.size2()); + fullMatrix<double> D; + RbfOp(p,index, cntrs,nodes,D,isLocal); + //D.print("D"); + fApprox.gemm(D,fValues, 1.0, 0.0); + +} + + +void gLevelsetPoints::setup_level_set(const fullMatrix<double> &cntrs, + fullMatrix<double> &level_set_nodes, + fullMatrix<double> &level_set_funvals){ + + int numNodes = cntrs.size1(); + int nTot = 3*numNodes; + double normFactor; + level_set_nodes.resize(nTot,3); + level_set_funvals.resize(nTot,1); + fullMatrix<double> ONES(numNodes+1,1),sx(numNodes,1),sy(numNodes,1),sz(numNodes,1),norms(numNodes,3), cntrsPlus(numNodes+1,3); + + //Computes the normal vectors to the surface at each node + double dist_min = 1.e6; + double dist_max = 1.e-6; + for (int i=0;i<numNodes ; ++i){ + ONES(i,0)=1.0; + cntrsPlus(i,0) = cntrs(i,0); + cntrsPlus(i,1) = cntrs(i,1); + cntrsPlus(i,2) = cntrs(i,2); + for(int j = i+1; j < numNodes; j++){ + double dist = sqrt((cntrs(i,0)-cntrs(j,0))*(cntrs(i,0)-cntrs(j,0))+ + (cntrs(i,1)-cntrs(j,1))*(cntrs(i,1)-cntrs(j,1))+ + (cntrs(i,2)-cntrs(j,2))*(cntrs(i,2)-cntrs(j,2))); + if (dist<dist_min) dist_min = dist; + if (dist>dist_max) dist_max = dist; + } + } + ONES(numNodes,0) = -1.0; + cntrsPlus(numNodes,0) = cntrs(0,0)+dist_max; + cntrsPlus(numNodes,1) = cntrs(0,1)+dist_max; + cntrsPlus(numNodes,2) = cntrs(0,2)+dist_max; + + delta = 0.23*dist_min; + evalRbfDer(1, 1, cntrsPlus,cntrs,ONES,sx, true); + evalRbfDer(2, 1, cntrsPlus,cntrs,ONES,sy, true); + evalRbfDer(3, 1, cntrsPlus,cntrs,ONES,sz, true); + for (int i=0;i<numNodes ; ++i){ + normFactor = sqrt(sx(i,0)*sx(i,0)+sy(i,0)*sy(i,0)+sz(i,0)*sz(i,0)); + sx(i,0) = sx(i,0)/normFactor; + sy(i,0) = sy(i,0)/normFactor; + sz(i,0) = sz(i,0)/normFactor; + norms(i,0) = sx(i,0);norms(i,1) = sy(i,0);norms(i,2) = sz(i,0); + } + + for (int i=0;i<numNodes ; ++i){ + for (int j=0;j<3 ; ++j){ + level_set_nodes(i,j) = cntrs(i,j); + level_set_nodes(i+numNodes,j) = cntrs(i,j)-delta*norms(i,j); + level_set_nodes(i+2*numNodes,j) = cntrs(i,j)+delta*norms(i,j); + } + level_set_funvals(i,0) = 0.0; + level_set_funvals(i+numNodes,0) = -1; + level_set_funvals(i+2*numNodes,0) = 1; + } +} + + +gLevelsetPoints::gLevelsetPoints(fullMatrix<double> ¢ers, int &tag) : gLevelsetPrimitive(tag) { + int nbNodes = 3*centers.size1(); + + setup_level_set(centers, points, surf); + printNodes(points, surf); + + //build invA matrix for 3*n points + int indexRBF = 1; + matAInv.resize(nbNodes, nbNodes); + matAInv = generateRbfMat(0, indexRBF, points,points); + matAInv.invertInPlace(); + + printf("End init levelset points %d \n", points.size1()); + +} + +gLevelsetPoints::gLevelsetPoints(const gLevelsetPoints &lv) : gLevelsetPrimitive(lv) { + points = lv.points; +} + +double gLevelsetPoints::operator()(const double &x, const double &y, const double &z) const{ + + SPoint3 sp(x,y,z); + std::map<SPoint3,double>::const_iterator it = mapP.find(sp); + return it->second; + + // fullMatrix<double> xyz_eval(1, 3), surf_eval(1,1); + // xyz_eval(0,0) = x; + // xyz_eval(0,1) = y; + // xyz_eval(0,2) = z; + // evalRbfDer(0, 1, points, xyz_eval, surf, surf_eval); + // return surf_eval(0,0); + +} + +void gLevelsetPoints::computeLS(std::vector<MVertex*> &vert, std::map<MVertex*, double> &myMap){ + + + fullMatrix<double> xyz_eval(vert.size(), 3), surf_eval(vert.size(), 1); + for (int i = 0; i< vert.size(); i++){ + xyz_eval(i,0) = vert[i]->x(); + xyz_eval(i,1) = vert[i]->y(); + xyz_eval(i,2) = vert[i]->z(); + } + evalRbfDer(0, 1, points, xyz_eval, surf, surf_eval); + for (int i = 0; i< vert.size(); i++){ + myMap[vert[i]] = surf_eval(i,0); + mapP[SPoint3(vert[i]->x(), vert[i]->y(),vert[i]->z())] = surf_eval(i,0); + } +} + /* assume a quadric x^T A x + b^T x + c = 0 diff --git a/contrib/DiscreteIntegration/DILevelset.h b/contrib/DiscreteIntegration/DILevelset.h index 848e978eea69055a16b2fa26d5f68dbda64ed1a7..7c84f07abc9f10aa1fee4108b8c91f77e365e83b 100644 --- a/contrib/DiscreteIntegration/DILevelset.h +++ b/contrib/DiscreteIntegration/DILevelset.h @@ -5,6 +5,8 @@ #include <stdio.h> #include <stdlib.h> // for abs() #include <vector> +#include "fullMatrix.h" +#include "MVertex.h" // PRIMITIVE LEVELSET #define UNKNOWN 0 @@ -18,6 +20,7 @@ #define CYLINDER 8 #define CONROD 9 #define LSMESH 10 +#define POINTS 11 // TOOLS #define CUT 11 #define UNION 12 @@ -95,6 +98,7 @@ public: } virtual int type() const = 0; bool isPrimitive() const {return true;} + }; class gLevelsetSphere : public gLevelsetPrimitive @@ -128,6 +132,43 @@ public: int type() const {return PLANE;} }; +class gLevelsetPoints : public gLevelsetPrimitive +{ +protected: + fullMatrix<double> points; + fullMatrix<double> surf; + fullMatrix<double> matAInv; + double delta; + std::map<SPoint3,double> mapP; + fullMatrix<double> generateRbfMat(int p, int index, + const fullMatrix<double> &nodes1, + const fullMatrix<double> &nodes2) const; + void RbfOp(int p, int index, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + fullMatrix<double> &D, + bool isLocal = false) const; + void evalRbfDer(int p, int index, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + const fullMatrix<double> &fValues, + fullMatrix<double> &fApprox, bool isLocal = false) const; + void setup_level_set(const fullMatrix<double> &cntrs, + fullMatrix<double> &level_set_nodes, + fullMatrix<double> &level_set_funvals); + +public: + // define the data points + gLevelsetPoints(fullMatrix<double> &_centers, int &tag); + // copy constructor + gLevelsetPoints(const gLevelsetPoints &lv); + virtual gLevelset * clone() const{return new gLevelsetPoints(*this);} + // return negative value inward and positive value outward + virtual double operator() (const double &x, const double &y, const double &z) const; + void computeLS(std::vector<MVertex*> &vert, std::map<MVertex*, double> &myMap); + int type() const {return POINTS;} +}; + class gLevelsetQuadric : public gLevelsetPrimitive { protected: