From 171e23dca39b72fb984334d8ed226063a6aaf1d1 Mon Sep 17 00:00:00 2001 From: Emilie Marchandise <emilie.marchandise@uclouvain.be> Date: Tue, 14 Jun 2011 10:36:54 +0000 Subject: [PATCH] Added Rbf parametrisation. Use the following in your Geo file Mesh.RemeshParametrization=2; //(0) harmonic (1) conformal (2) Rbf --- CMakeLists.txt | 6 +- Common/DefaultOptions.h | 2 +- Common/GmshConfig.h.in | 1 - Common/Options.cpp | 2 +- Fltk/optionWindow.cpp | 1 + Geo/CMakeLists.txt | 3 +- Geo/GFaceCompound.cpp | 106 +- Geo/GFaceCompound.h | 23 +- Geo/GModelIO_Geo.cpp | 8 +- Geo/GRbf.cpp | 835 ++++++ Geo/GRbf.h | 150 ++ Mesh/meshGFace.cpp | 6 +- Parser/Gmsh.l | 1 + Parser/Gmsh.tab.cpp | 5310 ++++++++++++++++++++------------------- Parser/Gmsh.tab.hpp | 181 +- Parser/Gmsh.y | 6 +- Parser/Gmsh.yy.cpp | 972 +++---- 17 files changed, 4306 insertions(+), 3307 deletions(-) create mode 100644 Geo/GRbf.cpp create mode 100644 Geo/GRbf.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ab3cf930e6..ee8ae9f500 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,7 @@ set(GMSH_API Numeric/simpleFunction.h Numeric/cartesian.h Geo/GModel.h Geo/GEntity.h Geo/GPoint.h Geo/GVertex.h Geo/GEdge.h Geo/GFace.h Geo/GRegion.h Geo/GEdgeLoop.h Geo/GEdgeCompound.h - Geo/GFaceCompound.h Geo/GRegionCompound.h Geo/MVertex.h Geo/MEdge.h + Geo/GFaceCompound.h Geo/GRegionCompound.h Geo/GRbf.h Geo/MVertex.h Geo/MEdge.h Geo/MFace.h Geo/MElement.h Geo/MPoint.h Geo/MLine.h Geo/MTriangle.h Geo/MQuadrangle.h Geo/MTetrahedron.h Geo/MHexahedron.h Geo/MPrism.h Geo/MPyramid.h Geo/MElementCut.h Geo/discreteVertex.h Geo/discreteEdge.h @@ -455,10 +455,6 @@ if(ENABLE_ANN) set_config_option(HAVE_ANN "Ann") endif(ENABLE_ANN) -if(ENABLE_RBF) - include_directories(projects/rbf) - set_config_option(HAVE_RBF "RBF") -endif(ENABLE_RBF) if(ENABLE_CHACO) add_subdirectory(contrib/Chaco) diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h index ffcbbf6934..dc8a18013e 100644 --- a/Common/DefaultOptions.h +++ b/Common/DefaultOptions.h @@ -1235,7 +1235,7 @@ StringXNumber MeshOptions_Number[] = { { F|O, "RemeshAlgorithm" , opt_mesh_remesh_algo , 0 , "Remeshing algorithm (0=no split, 1=automatic, 2=automatic only with metis)" }, { F|O, "RemeshParametrization" , opt_mesh_remesh_param , 0 , - "Remsh Parametrization (0=harmonic, 1=conformal)" }, + "Remsh Parametrization (0=harmonic, 1=conformal, 2=rbf harmonic)" }, { F|O, "RefineSteps" , opt_mesh_refine_steps , 10 , "Number of refinement steps in the MeshAdapt-based 2D algorithms" }, diff --git a/Common/GmshConfig.h.in b/Common/GmshConfig.h.in index 4b0eef98b7..8997d6166b 100644 --- a/Common/GmshConfig.h.in +++ b/Common/GmshConfig.h.in @@ -52,7 +52,6 @@ #cmakedefine HAVE_SOLVER #cmakedefine HAVE_TAUCS #cmakedefine HAVE_TETGEN -#cmakedefine HAVE_RBF #define GMSH_CONFIG_OPTIONS "${GMSH_CONFIG_OPTIONS}" diff --git a/Common/Options.cpp b/Common/Options.cpp index 4d96b82c13..e050437943 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -5750,7 +5750,7 @@ double opt_mesh_remesh_param(OPT_ARGS_NUM) if(action & GMSH_SET){ CTX::instance()->mesh.remeshParam = (int)val; if(CTX::instance()->mesh.remeshParam < 0 && - CTX::instance()->mesh.remeshParam > 1) + CTX::instance()->mesh.remeshParam > 2) CTX::instance()->mesh.remeshParam = 0; } #if defined(HAVE_FLTK) diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp index ae18612bb1..5509b33e22 100644 --- a/Fltk/optionWindow.cpp +++ b/Fltk/optionWindow.cpp @@ -2096,6 +2096,7 @@ optionWindow::optionWindow(int deltaFontSize) static Fl_Menu_Item menu_remeshing_param[] = { {"Harmonic", 0, 0, 0}, {"Conformal", 0, 0, 0}, + {"Rbf Harmonic", 0, 0, 0}, {0} }; diff --git a/Geo/CMakeLists.txt b/Geo/CMakeLists.txt index 25b77e8f59..43e9387e04 100644 --- a/Geo/CMakeLists.txt +++ b/Geo/CMakeLists.txt @@ -6,7 +6,8 @@ set(SRC GEntity.cpp STensor3.cpp GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp - GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp GRegionCompound.cpp + GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp + GRegionCompound.cpp GRbf.cpp gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp gmshSurface.cpp OCCVertex.cpp OCCEdge.cpp OCCFace.cpp OCCRegion.cpp discreteEdge.cpp discreteFace.cpp discreteRegion.cpp diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp index 9a3b33bf2f..ae9d869410 100644 --- a/Geo/GFaceCompound.cpp +++ b/Geo/GFaceCompound.cpp @@ -40,9 +40,8 @@ #include "discreteFace.h" #include "eigenSolver.h" #include "multiscaleLaplace.h" -#ifdef HAVE_RBF -#include "rbf.h" -#endif +#include "GRbf.h" + static void fixEdgeToValue(GEdge *ed, double value, dofManager<double> &myAssembler) { myAssembler.fixVertex(ed->getBeginVertex()->mesh_vertices[0], 0, 1, value); @@ -86,6 +85,7 @@ int intersection_segments (SPoint3 &p1, SPoint3 &p2, static bool orderVertices(const std::list<GEdge*> &e, std::vector<MVertex*> &l, std::vector<double> &coord) { + l.clear(); coord.clear(); @@ -618,8 +618,8 @@ bool GFaceCompound::parametrize() const if(oct) return paramOK; if(trivial()) return paramOK; - if (_mapping != RBF) - coordinates.clear(); + // if (_mapping != RBF) + // coordinates.clear(); computeNormals(); @@ -659,8 +659,34 @@ bool GFaceCompound::parametrize() const } } // Radial-Basis Function parametrization - else if (_mapping == RBF){ - Msg::Debug("Parametrizing surface %d with 'RBF''", tag()); + else if (_mapping == RBF){ + Msg::Debug("Parametrizing surface %d with 'RBF' ", tag()); + + int variableEps = 0; + int radFunInd = 1; //MQ RBF + double delta = 0.33*getDistMin(); + double epsilon = 0.15*(allNodes.size()/150.0)/delta; //max(2.5, 0.5*(nbNodes/150.0)/dist_min); + double radius= 3.*getSizeH()/sqrt(allNodes.size()); + + Msg::Info("*****************************************"); + Msg::Info("*** RBF rad=%g dist_min =%g ", radius, 3.*delta); + Msg::Info("*** RBF eps=%g delta =%g ", epsilon, delta); + Msg::Info("*****************************************"); + + fullMatrix<double> Oper(3*allNodes.size(),3*allNodes.size()); + _rbf = new GRbf(epsilon, delta, radius, variableEps, radFunInd, _normals, allNodes); + + _rbf->RbfLapSurface_global_CPM_low(_rbf->getXYZ(), _rbf->getN(), Oper); + //_rbf->RbfLapSurface_local_CPM(true, _rbf->getXYZ(), _rbf->getN(), Oper); + //_rbf->RbfLapSurface_global_CPM_high(_rbf->getXYZ(), _rbf->getN(), Oper); + //_rbf->RbfLapSurface_local_CPM(false, _rbf->getXYZ(), _rbf->getN(), Oper); + //_rbf->RbfLapSurface_global_projection(_rbf->getXYZ(), _rbf->getN(), Oper); + //_rbf->RbfLapSurface_local_projection(_rbf->getXYZ(), _rbf->getN(), Oper); + + _rbf->solveHarmonicMap(Oper, _ordered, _coords, coordinates); + printStuff(); + exit(1); + } buildOct(); @@ -687,15 +713,6 @@ bool GFaceCompound::parametrize() const return paramOK; } -#ifdef HAVE_RBF -void GFaceCompound::setParam(std::map<MVertex*, SPoint3> rbf_param, rbf *myRBF){ - - _rbf = myRBF; - coordinates = rbf_param; - -} -#endif - void GFaceCompound::getBoundingEdges() { @@ -730,7 +747,7 @@ void GFaceCompound::getBoundingEdges() computeALoop(_unique,loop); while(!_unique.empty()) computeALoop(_unique, loop); - // assign Derichlet BC (_U0) to bound with largest size + // assign Derichlet BC (_U0) to boundary with largest size double maxSize = 0.0; for(std::list<std::list<GEdge*> >::iterator it = _interior_loops.begin(); it != _interior_loops.end(); it++){ @@ -761,6 +778,21 @@ double GFaceCompound::getSizeH() const return H; } +double GFaceCompound::getDistMin() const +{ + double dist_min = 1.e6; + for(std::set<MVertex *>::iterator itv = allNodes.begin(); itv !=allNodes.end() ; itv++){ + for(std::set<MVertex *>::iterator itv2 = allNodes.begin(); itv2 !=allNodes.end() ; itv2++){ + MVertex *v1 = *itv; + MVertex *v2 = *itv2; + double dist = sqrt((v1->x()-v2->x())*(v1->x()-v2->x())+(v1->y()-v2->y())*(v1->y()-v2->y()) + +(v1->z()-v2->z())*(v1->z()-v2->z())); + if (dist<dist_min && dist != 0.0) dist_min = dist; + } + } + + return dist_min; +} double GFaceCompound::getSizeBB(const std::list<GEdge* > &elist) const { //SOrientedBoundingBox obboxD = obb_boundEdges(elist); @@ -916,9 +948,10 @@ void GFaceCompound::computeALoop(std::set<GEdge*> &_unique, std::list<GEdge*> &l } GFaceCompound::GFaceCompound(GModel *m, int tag, std::list<GFace*> &compound, + std::list<GEdge*> &U0, linearSystem<double> *lsys, typeOfMapping mpg, int allowPartition) - : GFace(m, tag), _compound(compound), oct(0), + : GFace(m, tag), _compound(compound), oct(0), _U0(U0), _lsys(lsys),_mapping(mpg), _allowPartition(allowPartition) { ONE = new simpleFunction<double>(1.0); @@ -1051,20 +1084,6 @@ SPoint2 GFaceCompound::getCoordinates(MVertex *v) const void GFaceCompound::parametrize(iterationStep step, typeOfMapping tom) const { dofManager<double> myAssembler(_lsys); - - // EMI-test for paper Dong: fix only 2 vertices - // MVertex *v1; - // MVertex *v2; - // double zmin = 1.e6; - // double zmax = 0.0; - // for(std::set<MVertex *>::iterator itv = allNodes.begin(); itv !=allNodes.end() ; ++itv){ - // MVertex *v = *itv; - // double z = v->z(); - // if (z > zmax){ zmax = z; v2 = v;} - // if (z < zmin){ zmin = z; v1 = v;} - // } - // myAssembler.fixVertex(v1, 0, 1, 0.0); - // myAssembler.fixVertex(v2, 0, 1, 1.0); if(_type == UNITCIRCLE){ for(unsigned int i = 0; i < _ordered.size(); i++){ @@ -1426,7 +1445,6 @@ GPoint GFaceCompound::point(double par1, double par2) const if(!oct) parametrize(); -#ifdef HAVE_RBF if (_mapping == RBF){ double x, y, z; SVector3 dXdu, dXdv; @@ -1435,7 +1453,6 @@ GPoint GFaceCompound::point(double par1, double par2) const //exit(1); return GPoint(x,y,z); } -#endif double U,V; double par[2] = {par1,par2}; @@ -1474,25 +1491,10 @@ GPoint GFaceCompound::point(double par1, double par2) const SVector3 b300,b030,b003; SVector3 b210,b120,b021,b012,b102,b201,E,VV,b111; - //double w12,w21,w23,w32,w31,w13; - b300 = lt->v1; b030 = lt->v2; b003 = lt->v3; - // w12 = dot(lt->v2 - lt->v1, n1); - // w21 = dot(lt->v1 - lt->v2, n2); - // w23 = dot(lt->v3 - lt->v2, n2); - // w32 = dot(lt->v2 - lt->v3, n3); - // w31 = dot(lt->v1 - lt->v3, n3); - // w13 = dot(lt->v3 - lt->v1, n1); - // b210 = (2*lt->v1 + lt->v2-w12*n1)*0.333; - // b120 = (2*lt->v2 + lt->v1-w21*n2)*0.333; - // b021 = (2*lt->v2 + lt->v3-w23*n2)*0.333; - // b012 = (2*lt->v3 + lt->v2-w32*n3)*0.333; - // b102 = (2*lt->v3 + lt->v1-w31*n3)*0.333; - // b201 = (2*lt->v1 + lt->v3-w13*n1)*0.333; - //tagged PN triangles (sigma=1) double theta = 0.0; SVector3 d1 = lt->v1+.33*(1-theta)*(lt->v2-lt->v1); @@ -1537,14 +1539,12 @@ Pair<SVector3,SVector3> GFaceCompound::firstDer(const SPoint2 ¶m) const if(trivial()) return (*(_compound.begin()))->firstDer(param); -#ifdef HAVE_RBF if (_mapping == RBF){ double x, y, z; SVector3 dXdu, dXdv ; _rbf->UVStoXYZ(param.x(), param.y(), x,y,z, dXdu, dXdv); return Pair<SVector3, SVector3>(dXdu,dXdv); } -#endif double U, V; GFaceCompoundTriangle *lt; @@ -1773,9 +1773,6 @@ bool GFaceCompound::checkTopology() const { if (_mapping == RBF) return true; - - //fixme tristan - //return true; bool correctTopo = true; if(allNodes.empty()) buildAllNodes(); @@ -1997,6 +1994,7 @@ void GFaceCompound::coherenceNormals() void GFaceCompound::buildAllNodes() const { + int index = 0; std::list<GFace*>::const_iterator it = _compound.begin(); for( ; it != _compound.end() ; ++it){ for(unsigned int i = 0; i < (*it)->triangles.size(); ++i){ diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h index e3da867669..4d9f98cade 100644 --- a/Geo/GFaceCompound.h +++ b/Geo/GFaceCompound.h @@ -19,9 +19,8 @@ #include "GEdgeCompound.h" #include "meshGFaceOptimize.h" #include "linearSystem.h" -#ifdef HAVE_RBF -#include "rbf.h" -#endif +#include "GRbf.h" + #define AR_MAX 5 //maximal geometrical aspect ratio /* @@ -52,22 +51,16 @@ class GFaceCompoundTriangle { }; class Octree; -#ifdef HAVE_RBF -class rbf; -#endif +class GRbf; + class GFaceCompound : public GFace { public: typedef enum {ITERU=0,ITERV=1,ITERD=2} iterationStep; typedef enum {HARMONIC=1,CONFORMAL=2, CONVEXCOMBINATION=3, MULTISCALE=4, RBF=5} typeOfMapping; typedef enum {UNITCIRCLE, SQUARE} typeOfIsomorphism; void computeNormals(std::map<MVertex*, SVector3> &normals) const; -#ifdef HAVE_RBF - void setParam(std::map<MVertex*, SPoint3> rbf_param, rbf *myRBF); -#endif protected: -#ifdef HAVE_RBF - rbf *_rbf; -#endif + mutable GRbf *_rbf; simpleFunction<double> *ONE; simpleFunction<double> *MONE; std::list<GFace*> _compound; @@ -86,6 +79,7 @@ class GFaceCompound : public GFace { mutable std::set<MVertex*> fillNodes; mutable std::vector<MVertex*> _ordered; mutable std::vector<double> _coords; + mutable std::map<MVertex*, int> _mapV; void buildOct() const ; void buildAllNodes() const; void parametrize(iterationStep, typeOfMapping) const; @@ -108,6 +102,7 @@ class GFaceCompound : public GFace { linearSystem <double> *_lsys; double getSizeH() const; double getSizeBB(const std::list<GEdge* > &elist) const; + double getDistMin() const; SBoundingBox3d boundEdges(const std::list<GEdge* > &elist) const; SOrientedBoundingBox obb_boundEdges(const std::list<GEdge* > &elist) const; void fillNeumannBCS() const; @@ -115,7 +110,7 @@ class GFaceCompound : public GFace { public: GFaceCompound(GModel *m, int tag, std::list<GFace*> &compound, - linearSystem<double>* lsys =0, + std::list<GEdge*> &U0, linearSystem<double>* lsys =0, typeOfMapping typ = HARMONIC, int allowPartition=1); virtual ~GFaceCompound(); Range<double> parBounds(int i) const @@ -152,7 +147,7 @@ class GFaceCompound : public GFace { public: typedef enum {HARMONIC=1,CONFORMAL=2, CONVEXCOMBINATION=3, MULTISCALE=4} typeOfMapping; GFaceCompound(GModel *m, int tag, std::list<GFace*> &compound, - linearSystem<double>* lsys =0, + std::list<GEdge*> &U0, linearSystem<double>* lsys =0, typeOfMapping typ = HARMONIC, int allowPartition=1) : GFace(m, tag) { diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index e152ec7439..856a08a3a7 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -183,10 +183,12 @@ int GModel::importGEOInternals() } } int param = CTX::instance()->mesh.remeshParam; + GFaceCompound::typeOfMapping typ = GFaceCompound::HARMONIC; + if (param == 1) typ = GFaceCompound::CONFORMAL; + if (param == 2) typ = GFaceCompound::RBF; int algo = CTX::instance()->mesh.remeshAlgo; - f = new GFaceCompound(this, s->Num, comp, 0, - (param == 0) ? GFaceCompound::HARMONIC : - GFaceCompound::CONFORMAL, algo); + f = new GFaceCompound(this, s->Num, comp, U0, 0, typ, algo); + f->meshAttributes.recombine = s->Recombine; f->meshAttributes.recombineAngle = s->RecombineAngle; f->meshAttributes.Method = s->Method; diff --git a/Geo/GRbf.cpp b/Geo/GRbf.cpp new file mode 100644 index 0000000000..4c38211d8c --- /dev/null +++ b/Geo/GRbf.cpp @@ -0,0 +1,835 @@ +#include "GRbf.h" + +#include <math.h> +#include <vector> +#include "fullMatrix.h" +#include "Octree.h" +#include "SPoint3.h" +#include "SVector3.h" +#include "SBoundingBox3d.h" +#include "Os.h" +#include "MVertex.h" + +#if defined(HAVE_ANN) +#include <ANN/ANN.h> +#endif + +static void SphereBB(void *a, double*mmin, double*mmax){ + Sphere *t = (Sphere *)a; + mmin[0] = t->center.x()-t->radius; + mmin[1] = t->center.y()-t->radius; + mmin[2] = t->center.z()-t->radius; + mmax[0] = t->center.x()+t->radius; + mmax[1] = t->center.y()+t->radius; + mmax[2] = t->center.z()+t->radius; +} + +static void SphereCentroid(void *a, double*c){ + Sphere *t = (Sphere *)a; + c[0] = t->center.x(); + c[1] = t->center.y(); + c[2] = t->center.z(); +} + +static int SphereInEle(void *a, double*c){ + Sphere *t = (Sphere *)a; + double dist = sqrt((c[0]-t->center.x())*(c[0]-t->center.x())+ + (c[1]-t->center.y())*(c[1]-t->center.y())+ + (c[2]-t->center.z())*(c[2]-t->center.z()) ); + if(dist < t->radius){ + return 1; + } + return 0; +} + + +GRbf::GRbf (double eps, double del, double rad, int variableEps, int rbfFun, + std::map<MVertex*, SVector3> _normals, std::set<MVertex *> allNodes) + : ep_scalar(eps), delta(del), radius (rad), variableShapeParam(variableEps), + radialFunctionIndex (rbfFun), XYZkdtree(0) +{ + + nbNodes= allNodes.size(); + centers.resize(nbNodes,3); + normals.resize(nbNodes,3); + int index = 0; + for(std::set<MVertex *>::iterator itv = allNodes.begin(); itv !=allNodes.end() ; ++itv){ + MVertex *v = *itv; + centers(index,0) = v->x(); + centers(index,1) = v->y(); + centers(index,2) = v->z(); + std::map<MVertex*, SVector3>::iterator itn = _normals.find(v); + normals(index,0) = itn->second.x(); + normals(index,1) = itn->second.y(); + normals(index,2) = itn->second.z(); + _mapV.insert(std::make_pair(v, index)); + index++; + } + + matAInv.resize(nbNodes, nbNodes); + matAInv = generateRbfMat(0,centers,centers); + matAInv.invertInPlace(); + isLocal = false; + num_neighbours = std::min(12, nbNodes);//ANN_search in UV + extendedX.resize(3*nbNodes,3); + +} + +GRbf::~GRbf(){ + delete XYZkdtree; + delete UVkdtree; + annDeallocPts(XYZnodes); + annDeallocPts(UVnodes); + delete [] index; + delete [] dist; +} + +void GRbf::buildXYZkdtree(){ + +#if defined (HAVE_ANN) + XYZnodes = annAllocPts(nbNodes, 3); + for(int i = 0; i < nbNodes; i++){ + XYZnodes[i][0] = centers(i,0); + XYZnodes[i][1] = centers(i,1); + XYZnodes[i][2] = centers(i,2); + } + XYZkdtree = new ANNkd_tree(XYZnodes, nbNodes, 3); +#endif + +} + +void GRbf::buildOctree(double radius){ + + SBoundingBox3d bb; + for (int i= 0; i< nbNodes; i++) + bb += SPoint3(centers(i,0),centers(i,1), centers(i,2)); + double origin[3] = {bb.min().x(), bb.min().y(), bb.min().z()}; + double ssize[3] = {bb.max().x() - bb.min().x(), + bb.max().y() - bb.min().y(), + bb.max().z() - bb.min().z()}; + const int maxElePerBucket = 10; + Octree *oct = Octree_Create(maxElePerBucket, origin, ssize, SphereBB, + SphereCentroid, SphereInEle); + + Sphere *_sph = new Sphere[nbNodes]; + for (int i= 0; i< nbNodes; i++){ + _sph[i].index = i; + _sph[i].radius = radius; + _sph[i].center = SPoint3(centers(i,0),centers(i,1), centers(i,2)); + Octree_Insert(&_sph[i], oct); + } + Octree_Arrange(oct); + + for (int i= 0; i< nbNodes; i++){ + std::list<void*> l; + double P[3] = {centers(i,0),centers(i,1), centers(i,2)}; + Octree_SearchAll(P, oct, &l); + nodesInSphere[i].push_back(i); + if (l.size()== 1) printf("*** WARNING: Found only %d sphere ! \n", l.size()); + for (std::list<void*>::iterator it = l.begin(); it != l.end(); it++) { + Sphere *sph = (Sphere*) *it; + std::vector<int> &pts = nodesInSphere[i]; + if (sph->index != i) nodesInSphere[i].push_back(sph->index); + } + } + + Octree_Delete(oct); + + buildXYZkdtree(); + +} + +void GRbf::curvature(double radius, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &node, + fullMatrix<double> &curvature){ + + fullMatrix<double> nodes_in_sph,local_normals,level_set_nodes,level_set_funvals, + sx,sy,sz, sxx,syy,szz, sxy,sxz,syz,sLap; + + isLocal = true; + curvature.resize(node.size1(), node.size1()); + + if(nodesInSphere.size() == 0) buildOctree(radius); + + for (int i = 0;i<node.size1() ; ++i){ +#if defined (HAVE_ANN) + double xyz[3] = {node(i,0), node(i,1), node(i,2) }; + XYZkdtree->annkSearch(xyz, num_neighbours, index, dist); + std::vector<int> &pts = nodesInSphere[index[0]]; +#endif + + fullMatrix<double> nodes_in_sph(pts.size(),3), local_normals(pts.size(),3); + fullMatrix<double> LocalOper; + + for (int k=0; k< pts.size(); k++){ + nodes_in_sph(k,0) = cntrs(pts[k],0); + nodes_in_sph(k,1) = cntrs(pts[k],1); + nodes_in_sph(k,2) = cntrs(pts[k],2); + local_normals(k,0)=normals(pts[k],0); + local_normals(k,1)=normals(pts[k],1); + local_normals(k,2)=normals(pts[k],2); + } + + setup_level_set(nodes_in_sph,local_normals,level_set_nodes,level_set_funvals); + + evalRbfDer(1,level_set_nodes,node,level_set_funvals,sx); + evalRbfDer(2,level_set_nodes,node,level_set_funvals,sy); + evalRbfDer(3,level_set_nodes,node,level_set_funvals,sz); + evalRbfDer(11,level_set_nodes,node,level_set_funvals,sxx); + evalRbfDer(12,level_set_nodes,node,level_set_funvals,sxy); + evalRbfDer(13,level_set_nodes,node,level_set_funvals,sxz); + evalRbfDer(22,level_set_nodes,node,level_set_funvals,syy); + evalRbfDer(23,level_set_nodes,node,level_set_funvals,syz); + evalRbfDer(33,level_set_nodes,node,level_set_funvals,szz); + evalRbfDer(222,level_set_nodes,node,level_set_funvals,sLap); + + double norm_grad_s = sqrt(sx(i,0)*sx(i,0)+sy(i,0)*sy(i,0)+sz(i,0)*sz(i,0)); + double curv = -sLap(i,0)/norm_grad_s + + (sx(i,0)*sx(i,0)*sxx(i,0)+sy(i,0)*sy(i,0)*syy(i,0)+sz(i,0)*sz(i,0)*szz(i,0)+2*sx(i,0)*sy(i,0)*sxy(i,0)+2*sy(i,0)*sz(i,0)*syz(i,0)+2*sx(i,0)*sz(i,0)*sxz(i,0))/ + (norm_grad_s*norm_grad_s*norm_grad_s); + curvature(i,0) = fabs(curv); + } + +} + + +double GRbf::evalRadialFnDer (int p, double dx, double dy, double dz, double ep){ + + double r2 = dx*dx+dy*dy+dz*dz; //r^2 + switch (radialFunctionIndex) { + 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 11: return -2*ep*ep*(1-2*ep*ep*dx*dx)*exp(-ep*ep*r2); // _xx + case 12: return 4*ep*ep*ep*ep*dx*dy*exp(-ep*ep*r2); // _xy + case 13: return 4*ep*ep*ep*ep*dx*dz*exp(-ep*ep*r2); // ... + case 22: return -2*ep*ep*(1-2*ep*ep*dy*dy)*exp(-ep*ep*r2); + case 23: return 4*ep*ep*ep*ep*dy*dz*exp(-ep*ep*r2); + case 33: return -2*ep*ep*(1-2*ep*ep*dz*dz)*exp(-ep*ep*r2); + case 222: return -2*ep*ep*(3-2*ep*ep*r2)*exp(-ep*ep*r2); //Laplacian + } + 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); + case 11: return ep*ep*((1-ep*ep*r2)-ep*ep*dx*dx)/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); // _xx + case 12: return -ep*ep*ep*ep*dx*dy/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); // _xy + case 13: return -ep*ep*ep*ep*dx*dz/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); // ... + case 22: return ep*ep*((1-ep*ep*r2)-ep*ep*dy*dy)/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); + case 23: return -ep*ep*ep*ep*dy*dz/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); + case 33: return ep*ep*((1-ep*ep*r2)-ep*ep*dz*dz)/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); + case 222: return ep*ep*(3+ep*ep*2*r2)/sqrt((1+ep*ep*r2)*(1+ep*ep*r2)*(1+ep*ep*r2)); + } + } +} + +fullMatrix<double> GRbf::generateRbfMat(int p, + const fullMatrix<double> &nodes1, + const fullMatrix<double> &nodes2) { + + int m = nodes2.size1(); + int n = nodes1.size1(); + fullMatrix<double> rbfMat(m,n); + fullVector<double > epsilon; + computeEpsilon(nodes1, epsilon); + 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,dx,dy,dz,epsilon(j)); + } + } + + return rbfMat; + +} + +void GRbf::RbfOp(int p, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + fullMatrix<double> &D) { + + fullMatrix<double> rbfInvA, rbfMatB; + + D.resize(nodes.size1(), cntrs.size1()); + + if (isLocal){ + rbfInvA = generateRbfMat(0,cntrs,cntrs); + rbfInvA.invertInPlace(); + } + else{ + if (cntrs.size1() == nbNodes ) + rbfInvA = matAInv; + else if (cntrs.size1() == 3*nbNodes ) + rbfInvA = matAInv_nn; + else{ + rbfInvA = generateRbfMat(0,cntrs,cntrs); + rbfInvA.invertInPlace(); + } + } + + rbfMatB = generateRbfMat(p,cntrs,nodes); + D.gemm(rbfMatB, rbfInvA, 1.0, 0.0); +} + +//Evaluates the RBF (p)th derivative w.r.t. the (q)th variable at the new nodes +void GRbf::evalRbfDer(int p, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + const fullMatrix<double> &fValues, + fullMatrix<double> &fApprox) { + + fApprox.resize(nodes.size1(),fValues.size2()); + fullMatrix<double> D; + RbfOp(p,cntrs,nodes,D); + fApprox.gemm(D,fValues, 1.0, 0.0); + +} + +void GRbf::computeEpsilon(const fullMatrix<double> &cntrs, fullVector<double> &epsilon){ + + epsilon.resize(nbNodes*3); + epsilon.setAll(ep_scalar); + + if (variableShapeParam) { + +#if defined (HAVE_ANN) + ANNpointArray myNodes = annAllocPts(cntrs.size1(), 3); + ANNkd_tree *mykdtree = new ANNkd_tree(myNodes, cntrs.size1(), 3); + for(int i = 0; i < cntrs.size1(); i++){ + myNodes[i][0] = cntrs(i,0); + myNodes[i][1] = cntrs(i,1); + myNodes[i][2] = cntrs(i,2); + } + ANNidxArray index3 = new ANNidx[3]; + ANNdistArray dist3 = new ANNdist[3]; + + for (int i= 0; i < cntrs.size1(); i++){ + double xyz[3] = {cntrs(i,0), cntrs(i,1), cntrs(i,2) }; + mykdtree->annkSearch(xyz, 3, index3, dist3); + double dist_min = sqrt(dist3[0]); + if (dist_min == 0.0 || dist_min == delta) dist_min = sqrt(dist3[1]); + if (dist_min == 0.0 || dist_min == delta) dist_min = sqrt(dist3[2]); + epsilon(i) /= dist_min; + } + + delete mykdtree; + annDeallocPts(myNodes); + delete [] index3; + delete [] dist3; +#endif + } + +} +void GRbf::setup_level_set(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &level_set_nodes, + fullMatrix<double> &level_set_funvals){ + + int numNodes = cntrs.size1(); + int nTot = 3*numNodes; + level_set_nodes.resize(nTot,3); + level_set_funvals.resize(nTot,1); + + 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*normals(i,j); + level_set_nodes(i+2*numNodes,j) = cntrs(i,j)+delta*normals(i,j); + } + level_set_funvals(i,0) = 0.0; + level_set_funvals(i+numNodes,0) = -1; + level_set_funvals(i+2*numNodes,0) = 1; + } + + matAInv_nn.resize(nTot, nTot); + matAInv_nn = generateRbfMat(0,level_set_nodes,level_set_nodes); + matAInv_nn.invertInPlace(); + +} + + +void GRbf::RbfLapSurface_local_projection(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper) { + isLocal = true; + int numNodes = cntrs.size1(); + Oper.resize(numNodes,numNodes); + + if(nodesInSphere.size() == 0) buildOctree(radius); + + for (int i=0;i<numNodes ; ++i){ + std::vector<int> &pts = nodesInSphere[i]; + + fullMatrix<double> nodes_in_sph(pts.size(),3), local_normals(pts.size(),3); + fullMatrix<double> LocalOper; + + LocalOper.setAll(0.0); + + for (int k=0; k< pts.size(); k++){ + nodes_in_sph(k,0) = cntrs(pts[k],0); + nodes_in_sph(k,1) = cntrs(pts[k],1); + nodes_in_sph(k,2) = cntrs(pts[k],2); + local_normals(k,0)=normals(pts[k],0); + local_normals(k,1)=normals(pts[k],1); + local_normals(k,2)=normals(pts[k],2); + } + + RbfLapSurface_global_projection(nodes_in_sph,local_normals,LocalOper); + + for (int j=0;j<pts.size() ; j++) + Oper(i,pts[j])=LocalOper(0,j); + } +} + +void GRbf::RbfLapSurface_global_projection( const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper){ + + int numNodes = cntrs.size1(); + Oper.resize(numNodes,numNodes); + + fullMatrix<double> sx(numNodes,1),sy(numNodes,1),sz(numNodes,1), + Dx(numNodes,numNodes),Dy(numNodes,numNodes),Dz(numNodes,numNodes), + PDx(numNodes,numNodes),PDy(numNodes,numNodes),PDz(numNodes,numNodes), + PDxx(numNodes,numNodes),PDyy(numNodes,numNodes),PDzz(numNodes,numNodes); + + surfInterp.resize(numNodes,1); + surfInterp.setAll(1.0); + evalRbfDer(1,cntrs,cntrs,surfInterp,sx); + evalRbfDer(2,cntrs,cntrs,surfInterp,sy); + evalRbfDer(3,cntrs,cntrs,surfInterp,sz); + + // Normalizes + double norm; + for (int i=0;i<numNodes;i++){ + norm = sqrt(sx(i,0)*sx(i,0)+sy(i,0)*sy(i,0)+sz(i,0)*sz(i,0)); + sx(i,0) /= norm; + sy(i,0) /= norm; + sz(i,0) /= norm; + //fix emi + //sx(i,0) = normals(i,0); + //sy(i,0) = normals(i,1); + //sz(i,0) = normals(i,2); + //printf("normals =%g %g %g sxyz =%g %g %g \n", normals(i,0), normals(i,1), normals(i,2), sx(i,0), sy(i,0), sz(i,0)); + } + + // Finds differentiation matrices + RbfOp(1,cntrs,cntrs,Dx); + RbfOp(2,cntrs,cntrs,Dy); + RbfOp(3,cntrs,cntrs,Dz); + + // Fills up the operator matrix + for (int i=0;i<numNodes ; ++i){ + for (int j=0;j<numNodes ; ++j){ + PDx(i,j) = (1-sx(i,0)*sx(i,0))*Dx(i,j)-sx(i,0)*sy(i,0)*Dy(i,j)-sx(i,0)*sz(i,0)*Dz(i,j); + PDy(i,j) = -sx(i,0)*sy(i,0)*Dx(i,j)+(1-sy(i,0)*sy(i,0))*Dy(i,j)-sy(i,0)*sz(i,0)*Dz(i,j); + PDz(i,j) = -sx(i,0)*sz(i,0)*Dx(i,j)-sy(i,0)*sz(i,0)*Dy(i,j)+(1-sz(i,0)*sz(i,0))*Dz(i,j); + } + } + PDx.mult(PDx,PDxx); + PDy.mult(PDy,PDyy); + PDz.mult(PDz,PDzz); + for (int i=0;i<numNodes ; ++i){ + for (int j=0;j<numNodes ; ++j){ + Oper(i,j) = PDxx(i,j)+PDyy(i,j)+PDzz(i,j); + } + } +} + +void GRbf::RbfLapSurface_local_CPM(bool isLow, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper){ + + isLocal = true; + int numNodes = cntrs.size1(); + Oper.resize(3*numNodes,3*numNodes); + + buildOctree(radius); + setup_level_set(cntrs,normals,extendedX,surfInterp); + + for (int i=0;i<numNodes ; ++i){ + std::vector<int> &pts = nodesInSphere[i]; + int nbp = pts.size(); + fullMatrix<double> nodes_in_sph(nbp,3), local_normals(nbp,3); + fullMatrix<double> LocalOper; + + for (int k=0; k< nbp; k++){ + nodes_in_sph(k,0) = cntrs(pts[k],0); + nodes_in_sph(k,1) = cntrs(pts[k],1); + nodes_in_sph(k,2) = cntrs(pts[k],2); + local_normals(k,0)=normals(pts[k],0); + local_normals(k,1)=normals(pts[k],1); + local_normals(k,2)=normals(pts[k],2); + } + + LocalOper.setAll(0.0); + if (isLow) RbfLapSurface_global_CPM_low(nodes_in_sph,local_normals,LocalOper); + else RbfLapSurface_global_CPM_high(nodes_in_sph,local_normals,LocalOper); + + for (int j = 0; j < nbp ; j++){ + + Oper(i,pts[j])=LocalOper(0,j); + Oper(i,pts[j]+numNodes)=LocalOper(0,j+nbp); + Oper(i,pts[j]+2*numNodes)=LocalOper(0,j+2*nbp); + + Oper(i+numNodes,pts[j])=LocalOper(nbp,j); + Oper(i+numNodes,pts[j]+numNodes)=LocalOper(nbp,j+nbp); + Oper(i+numNodes,pts[j]+2*numNodes)=LocalOper(nbp,j+2*nbp); + + Oper(i+2*numNodes,pts[j])=LocalOper(2*nbp,j); + Oper(i+2*numNodes,pts[j]+numNodes)=LocalOper(2*nbp,j+nbp); + Oper(i+2*numNodes,pts[j]+2*numNodes)=LocalOper(2*nbp,j+2*nbp); + } + + } + } + +void GRbf::RbfLapSurface_global_CPM_high(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper){ + + int numNodes = cntrs.size1(); + int nnTot = 3*numNodes; + Oper.resize(nnTot,nnTot); + + fullMatrix<double> sx, sy, sz, sxx, sxy, sxz,syy, syz, szz; + fullMatrix<double> Dx, Dy, Dz, Dxx, Dxy, Dxz, Dyy, Dyz, Dzz, Lap, extX, surf; + + setup_level_set(cntrs,normals,extX,surf); + if (!isLocal) extendedX = extX; + if (!isLocal) surfInterp = surf; + + // Find derivatives of the surface interpolant + evalRbfDer(1,extX,cntrs,surf,sx); + evalRbfDer(2,extX,cntrs,surf,sy); + evalRbfDer(3,extX,cntrs,surf,sz); + evalRbfDer(11,extX,cntrs,surf,sxx); + evalRbfDer(12,extX,cntrs,surf,sxy); + evalRbfDer(13,extX,cntrs,surf,sxz); + evalRbfDer(22,extX,cntrs,surf,syy); + evalRbfDer(23,extX,cntrs,surf,syz); + evalRbfDer(33,extX,cntrs,surf,szz); + + // Finds differentiation matrices + RbfOp(1,extX,cntrs,Dx); + RbfOp(2,extX,cntrs,Dy); + RbfOp(3,extX,cntrs,Dz); + RbfOp(11,extX,cntrs,Dxx); + RbfOp(12,extX,cntrs,Dxy); + RbfOp(13,extX,cntrs,Dxz); + RbfOp(22,extX,cntrs,Dyy); + RbfOp(23,extX,cntrs,Dyz); + RbfOp(33,extX,cntrs,Dzz); + RbfOp(222,extX,cntrs,Lap); + + // Fills up the operator matrix + for (int i=0;i<numNodes ; ++i){ + for (int j=0;j<nnTot ; ++j){ + Oper(i,j) = Lap(i,j); + Oper(i+numNodes,j)=sx(i,0)*Dx(i,j)+sy(i,0)*Dy(i,j)+sz(i,0)*Dz(i,j); + Oper(i+2*numNodes,j)=sx(i,0)*sx(i,0)*Dxx(i,j)+sy(i,0)*sy(i,0)*Dyy(i,j)+sz(i,0)*sz(i,0)*Dzz(i,j)+2*sx(i,0)*sy(i,0)*Dxy(i,j)+2*sx(i,0)*sz(i,0)*Dxz(i,j)+2*sy(i,0)*sz(i,0)*Dyz(i,j)+(sx(i,0)*sxx(i,0)+sy(i,0)*sxy(i,0)+sz(i,0)*sxz(i,0))*Dx(i,j)+(sx(i,0)*sxy(i,0)+sy(i,0)*syy(i,0)+sz(i,0)*syz(i,0))*Dy(i,j)+(sx(i,0)*sxz(i,0)+sy(i,0)*syz(i,0)+sz(i,0)*szz(i,0))*Dz(i,j); + } + } + +} + +void GRbf::RbfLapSurface_global_CPM_low(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper) { + + int numNodes = cntrs.size1(); + int nnTot = 3*numNodes; + Oper.resize(nnTot,nnTot); + + fullMatrix<double> sx(nnTot,1),sy(nnTot,1),sz(nnTot,1); + fullMatrix<double> PLap(numNodes,nnTot), extX(nnTot,3), surf(nnTot,1); + fullMatrix<double> norm(nnTot,3), extRBFX(2*numNodes,3), Ix2extX(2*numNodes,nnTot); + + //Stage 1 : The Arbitrary surface + setup_level_set(cntrs,normals,extX,surf); + if (!isLocal) extendedX = extX; + if (!isLocal) surfInterp = surf; + + //Computes the normal vectors to the surface at each node + evalRbfDer(1,extX,extX,surf,sx); + evalRbfDer(2,extX,extX,surf,sy); + evalRbfDer(3,extX,extX,surf,sz); + for (int i=0;i<nnTot ; ++i){ + double 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; + norm(i,0) = sx(i,0);norm(i,1) = sy(i,0);norm(i,2) = sz(i,0); + } + + //Computes the inside and outside layers nodes of the surface + for (int i=0;i<numNodes ; ++i){ + for (int j=0;j<3 ; ++j){ + extRBFX(i,j) = cntrs(i,j)-delta*norm(i,j); + extRBFX(i+numNodes,j) = cntrs(i,j)+delta*norm(i,j); + } + } + + //Computes the gradient operators + RbfOp(0,extX,extRBFX,Ix2extX); //'0' for interpolation + RbfOp(222,extX,cntrs,PLap); //'222' for the Laplacian + + // Fills up the operator matrix + for (int i=0; i < numNodes; i++){ + for (int j=0; j < nnTot ; ++j){ + Oper(i,j) = PLap(i,j); + int del = (i == j) ? 1: 0; + Oper(i+numNodes,j) = -Ix2extX(i,j)+del; + Oper(i+2*numNodes,j) = -Ix2extX(i+numNodes,j)+del; + } + } + +} + +void GRbf::solveHarmonicMap(fullMatrix<double> Oper, + std::vector<MVertex*> ordered, + std::vector<double> coords, + std::map<MVertex*, SPoint3> &rbf_param){ + + int nb = Oper.size2(); + UV.resize(nb,2); + + fullMatrix<double> dirichletBC(ordered.size(),2); + for(unsigned int i = 0; i < ordered.size(); i++){ + MVertex *v = ordered[i]; + std::map<MVertex*, int>::iterator itm = _mapV.find(v); + const double theta = 2 * M_PI * coords[i]; + dirichletBC(i,0) = itm->second; + dirichletBC(i,1) = theta; + } + + fullMatrix<double> F(nb,2); + F.scale(0.0); + for (int i=0; i < ordered.size(); i++){ + int iFix = (int)dirichletBC(i,0); + double theta = dirichletBC(i,1); + for (int j=0;j<nb ; ++j) Oper(iFix,j) = 0.0; + Oper(iFix,iFix) = 1.0; + F(iFix,0) = cos(theta); + F(iFix,1) = sin(theta); + } + + Oper.invertInPlace(); + Oper.mult(F,UV); + +#if defined (HAVE_ANN) + UVnodes = annAllocPts(nbNodes, 3); + for(int i = 0; i < nbNodes; i++){ + UVnodes[i][0] = UV(i,0); + UVnodes[i][1] = UV(i,1); + UVnodes[i][2] = 0.0; + } + UVkdtree = new ANNkd_tree(UVnodes, nbNodes, 3); + index = new ANNidx[num_neighbours]; + dist = new ANNdist[num_neighbours]; +#endif + + //fill rbf_param + std::map<MVertex*, int>::iterator itm = _mapV.begin(); + for (; itm != _mapV.end(); itm++){ + int index = itm->second; + SPoint3 coords(UV(index,0), UV(index,1), 0.0); + rbf_param.insert(std::make_pair(itm->first,coords)); + } + +} + +void GRbf::UVStoXYZ_global(const double u_eval, const double v_eval, + double &XX, double &YY, double &ZZ, + SVector3 &dXdu, SVector3& dXdv) +{ + + int numNodes = 3*nbNodes; //WARNING: THIS IS KO FOR PROJECTION ?? + double norm_s = 0.0; + fullMatrix<double> u_temp(1,3); + fullMatrix<double> ux(1,3), uy(1,3), uz(1,3); + fullMatrix<double> nodes_eval(1,3); + + // u_vec = [u v s] : These are the u,v,s that are on the surface *and* outside of it also! + fullMatrix<double> u_vec(numNodes,3); + for (int i = 0; i < numNodes; i++){ + u_vec(i,0) = UV(i,0); + u_vec(i,1) = UV(i,1); + u_vec(i,2) = surfInterp(i,0); + } + + // u_vec_eval = [u_eval v_eval s_eval] + fullMatrix<double> u_vec_eval(1, 3); + u_vec_eval(0,0) = u_eval; + u_vec_eval(0,1) = v_eval; + u_vec_eval(0,2) = 0.0; + + //Start with the closest point (u,v) +#if defined (HAVE_ANN) + double uvw[3] = { u_eval, v_eval, 0.0 }; + UVkdtree->annkSearch(uvw, num_neighbours, index, dist); +#endif + nodes_eval(0,0) = extendedX(index[0],0); + nodes_eval(0,1) = extendedX(index[0],1); + nodes_eval(0,2) = extendedX(index[0],2); + u_temp(0,0) = UV(index[0],0); + u_temp(0,1) = UV(index[0],1); + u_temp(0,2) = 0.0; + + int incr =0; + fullMatrix<double> Jac(3,3); + while(norm_s < 5 && incr < 10){ + + // Find the entries of the m Jacobians + evalRbfDer(1,extendedX,nodes_eval,u_vec,ux); + evalRbfDer(2,extendedX,nodes_eval,u_vec,uy); + evalRbfDer(3,extendedX,nodes_eval,u_vec,uz); + + // Jacobian of the UVS coordinate system w.r.t. XYZ + for (int k = 0; k < 3;k++){ + Jac(k,0) = ux(0,k); + Jac(k,1) = uy(0,k); + Jac(k,2) = uz(0,k); + } + Jac.invertInPlace(); + + for (int j = 0; j< 3;j++) + nodes_eval(0,j) = nodes_eval(0,j) + - Jac(j,0)*(u_vec_eval(0,0) - u_temp(0,0)) + - Jac(j,1)*(u_vec_eval(0,1) - u_temp(0,1)) + - Jac(j,2)*(0.0 - u_temp(0,2)); + + // Find the corresponding u, v, s + evalRbfDer(0,extendedX,nodes_eval,u_vec,u_temp); + + double normSq = sqrt(u_temp(0,2)*u_temp(0,2)); + norm_s = fabs(log10(normSq)); + + incr++; + } + if (norm_s < 5 ) + printf("Newton not converged for point (uv)=(%g,%g -> norm_s =%g )\n", u_eval, v_eval, norm_s); + + XX = nodes_eval(0,0); + YY = nodes_eval(0,1); + ZZ = nodes_eval(0,2); + + dXdu = SVector3(Jac(0,0), Jac(1,0), Jac(2,0)); + dXdv = SVector3(Jac(0,1), Jac(1,1), Jac(2,1)); + +} + +void GRbf::UVStoXYZ(const double u_eval, const double v_eval, + double &XX, double &YY, double &ZZ, + SVector3 &dXdu, SVector3& dXdv){ + + //Finds the U,V,S (in the 0-level set) that are the 'num_neighbours' closest to u_eval and v_eval. + //Thus in total, we're working with '3*num_neighbours' nodes + //Say that the vector 'index' gives us the indices of the closest points + //TO FILL IN + +#if defined (HAVE_ANN) + double uvw[3] = { u_eval, v_eval, 0.0 }; + UVkdtree->annkSearch(uvw, num_neighbours, index, dist); +#endif + + fullMatrix<double> ux(1,3), uy(1,3), uz(1,3), u_temp(1,3); + fullMatrix<double> nodes_eval(1,3); + fullMatrix<double> u_vec(3*num_neighbours,3); + fullMatrix<double> xyz_local(3*num_neighbours,3); + + // u_vec = [u v s] : These are the u,v,s that are on the surface *and* outside of it also! + for (int i = 0; i < num_neighbours; i++){ + + //THE LOCAL UVS + u_vec(i,0) = UV(index[i],0); + u_vec(i,1) = UV(index[i],1); + u_vec(i,2) = surfInterp(index[i],0); + + u_vec(i+num_neighbours,0) = UV(index[i]+nbNodes,0); + u_vec(i+num_neighbours,1) = UV(index[i]+nbNodes,1); + u_vec(i+num_neighbours,2) = surfInterp(index[i]+nbNodes,0); + + u_vec(i+2*num_neighbours,0) = UV(index[i]+2*nbNodes,0); + u_vec(i+2*num_neighbours,1) = UV(index[i]+2*nbNodes,1); + u_vec(i+2*num_neighbours,2) = surfInterp(index[i]+2*nbNodes,0); + + //THE LOCAL XYZ + xyz_local(i,0) = extendedX(index[i],0); + xyz_local(i,1) = extendedX(index[i],1); + xyz_local(i,2) = extendedX(index[i],2); + + xyz_local(i+num_neighbours,0) = extendedX(index[i]+nbNodes,0); + xyz_local(i+num_neighbours,1) = extendedX(index[i]+nbNodes,1); + xyz_local(i+num_neighbours,2) = extendedX(index[i]+nbNodes,2); + + xyz_local(i+2*num_neighbours,0) = extendedX(index[i]+2*nbNodes,0); + xyz_local(i+2*num_neighbours,1) = extendedX(index[i]+2*nbNodes,1); + xyz_local(i+2*num_neighbours,2) = extendedX(index[i]+2*nbNodes,2); + + } + // u_vec_eval = [u_eval v_eval s_eval] + fullMatrix<double> u_vec_eval(1, 3); + u_vec_eval(0,0) = u_eval; + u_vec_eval(0,1) = v_eval; + u_vec_eval(0,2) = 0.0; + + //we will use a local interpolation to find the corresponding XYZ point to (u_eval,v_eval). + evalRbfDer(0, u_vec, u_vec_eval,xyz_local, nodes_eval); + + u_temp(0,0) = u_eval; + u_temp(0,1) = v_eval; + u_temp(0,2) = 0.0; + + int incr = 0; + double norm_s = 0.0; + fullMatrix<double> Jac(3,3); + while(norm_s <5 && incr < 5){ + + // Find the entries of the m Jacobians + evalRbfDer(1,xyz_local,nodes_eval,u_vec,ux); + evalRbfDer(2,xyz_local,nodes_eval,u_vec,uy); + evalRbfDer(3,xyz_local,nodes_eval,u_vec,uz); + + // Jacobian of the UVS coordinate system w.r.t. XYZ + for (int k = 0; k < 3;k++){ + Jac(k,0) = ux(0,k); + Jac(k,1) = uy(0,k); + Jac(k,2) = uz(0,k); + } + Jac.invertInPlace(); + + for (int j = 0; j< 3;j++) + nodes_eval(0,j) = nodes_eval(0,j) + - Jac(j,0)*(u_vec_eval(0,0) - u_temp(0,0)) + - Jac(j,1)*(u_vec_eval(0,1) - u_temp(0,1)) + - Jac(j,2)*(0.0 - u_temp(0,2)); + + // Find the corresponding u, v, s + evalRbfDer(0,xyz_local,nodes_eval,u_vec,u_temp); + + double normSq = sqrt(u_temp(0,2)*u_temp(0,2)); + norm_s = fabs(log10(normSq)); + + incr++; + } + if (norm_s < 5 ) + printf("Newton not converged for point (uv)=(%g,%g -> norm_s =%g )\n", u_eval, v_eval, norm_s); + + XX = nodes_eval(0,0); + YY = nodes_eval(0,1); + ZZ = nodes_eval(0,2); + dXdu = SVector3(Jac(0,0), Jac(1,0), Jac(2,0)); + dXdv = SVector3(Jac(0,1), Jac(1,1), Jac(2,1)); + +} + diff --git a/Geo/GRbf.h b/Geo/GRbf.h new file mode 100644 index 0000000000..dc5ecf776a --- /dev/null +++ b/Geo/GRbf.h @@ -0,0 +1,150 @@ +#ifndef _RBF_H +#define _RBF_H + +#include <math.h> +#include <vector> +#include "fullMatrix.h" +#include "SPoint3.h" +#include "SVector3.h" +#include "MVertex.h" +#if defined(HAVE_ANN) +#include <ANN/ANN.h> +#endif + + +class Sphere{ + public: + int index; + SPoint3 center; + double radius; +}; + +class GRbf { + + std::map<MVertex*, int> _mapV; + std::map<int, std::vector<int> > nodesInSphere; + + fullMatrix<double> matA, matAInv; + fullMatrix<double> matA_nn, matAInv_nn; + + int nbNodes; //initial nodes + bool isLocal; + int nn; + int num_neighbours; + + double ep_scalar; // Shape parameter + double delta; //offset level set + double radius; + int variableShapeParam; // 1 if one chooses epsilon to vary spatially, 0 if one chooses it to be constant + int radialFunctionIndex; // Index corresponding to the radial function used (0 - GA,1 - MQ, ... ) + + fullMatrix<double> centers; // Data centers + fullMatrix<double> normals; // Data normals + fullMatrix<double> surfInterp;//level set + fullMatrix<double> extendedX;//X values extend in and out + fullMatrix<double> UV;//solution harmonic map laplu=0 and laplV=0 + +#if defined (HAVE_ANN) + ANNkd_tree *XYZkdtree; + ANNkd_tree *UVkdtree; + ANNidxArray index; + ANNdistArray dist; + ANNpointArray XYZnodes; + ANNpointArray UVnodes; +#endif + + public: + + GRbf (double eps, double del, double radius, int variableEps, int rbfFun, + std::map<MVertex*, SVector3> normals, std::set<MVertex *> allNodes); + ~GRbf(); + + //build octree + void buildOctree(double radius); + void buildXYZkdtree(); + + // Sets up the surface generation problem as suggested by Beatson et al. Introduction of 2 extra points per node. The + // function values at the nodes on the surface are set to 0 while the function values inside are set to -1 and outside to 1. + void setup_level_set(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &level_set_nodes, + fullMatrix<double> &level_set_funvals); + + // Evaluates the (p)th derivative of the radial function w.r.t. r^2 (not w.r.t. r) + // This is to avoid the introduction of removable singularities at r=0. + double evalRadialFnDer (int p, double dx, double dy, double dz, double ep); + + + // Generates the RBF collocation matrix for data in d-dimensions, associated with the + //(p)th derivative of the radial function w.r.t. the (q)th variable + fullMatrix<double> generateRbfMat(int p, + const fullMatrix<double> &nodes1, + const fullMatrix<double> &nodes2); + + // Computes the interpolation(p==0) or the derivative (p!=0) operator(mxn) (n:number of centers, m: number of evaluation nodes) + void RbfOp(int p, // (p)th derivatives + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + fullMatrix<double> &D); + + // Computes the interpolant(p==0) or the derivative (p!=0) of the function values entered and evaluates it at the new nodes + void evalRbfDer(int p, // (p)th derivatives + const fullMatrix<double> &cntrs, + const fullMatrix<double> &nodes, + const fullMatrix<double> &fValues, + fullMatrix<double> &fApprox); + + void computeEpsilon(const fullMatrix<double> &cntrs, fullVector<double> &epsilon); + + // Finds surface differentiation matrix using the LOCAL projection method + void RbfLapSurface_local_projection(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper); + + // Finds global surface differentiation matrix using the projection method + void RbfLapSurface_global_projection(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper); + + // Finds surface differentiation matrix (method CPML LOCAL) + void RbfLapSurface_local_CPM(bool isLow, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &Oper); + + // Finds global surface differentiation matrix (method CPML) + void RbfLapSurface_global_CPM_low(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &D); + + // Finds global surface differentiation matrix (method CPMH) + void RbfLapSurface_global_CPM_high(const fullMatrix<double> &cntrs, + const fullMatrix<double> &normals, + fullMatrix<double> &D); + + + // Calculates the curvature of a surface at a certain node + void curvature(double radius, + const fullMatrix<double> &cntrs, + const fullMatrix<double> &node, + fullMatrix<double> &curvature); + + virtual void UVStoXYZ_global(const double u_eval, + const double v_eval, + double &XX, double &YY, double &ZZ, + SVector3 &dXdu, SVector3& dxdv); + virtual void UVStoXYZ(const double u_eval, + const double v_eval, + double &XX, double &YY, double &ZZ, + SVector3 &dXdu, SVector3& dxdv); + + void solveHarmonicMap(fullMatrix<double> Oper, std::vector<MVertex*> ordered, + std::vector<double> coords, std::map<MVertex*, SPoint3> &rbf_param); + + inline const fullMatrix<double> getUV() {return UV;}; + inline const fullMatrix<double> getXYZ() {return centers;}; + inline const fullMatrix<double> getN() {return normals;}; + +}; + +#endif diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index c2095c079d..d9a157434e 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1695,6 +1695,7 @@ void partitionAndRemesh(GFaceCompound *gf) //Parametrize Compound surfaces std::set<MVertex*> allNod; + std::list<GEdge*> U0; for (int i=0; i < NF; i++){ std::list<GFace*> f_compound; GFace *pf = gf->model()->getFaceByTag(numf+i);//partition face @@ -1702,10 +1703,9 @@ void partitionAndRemesh(GFaceCompound *gf) f_compound.push_back(pf); Msg::Info("Parametrize Compound Surface (%d) = %d discrete face", num_gfc, pf->tag()); - - GFaceCompound *gfc = new GFaceCompound(gf->model(), num_gfc, f_compound, 0, + + GFaceCompound *gfc = new GFaceCompound(gf->model(), num_gfc, f_compound, U0, 0, gf->getTypeOfMapping()); - gfc->meshAttributes.recombine = gf->meshAttributes.recombine; gf->model()->add(gfc); diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index a96abd26d0..6da4bb9c9d 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -109,6 +109,7 @@ Coordinates return tCoordinates; CatmullRom return tSpline; Call return tCall; CreateTopology return tCreateTopology; +CreateTopologyNoHoles return tCreateTopologyNoHoles; Delete return tDelete; Degenerated return tDegenerated; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 6710eebc5d..0ef63ce07b 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -233,95 +233,96 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); tToday = 297, tSyncModel = 298, tCreateTopology = 299, - tDistanceFunction = 300, - tPoint = 301, - tCircle = 302, - tEllipse = 303, - tLine = 304, - tSphere = 305, - tPolarSphere = 306, - tSurface = 307, - tSpline = 308, - tVolume = 309, - tCharacteristic = 310, - tLength = 311, - tParametric = 312, - tElliptic = 313, - tRefineMesh = 314, - tPlane = 315, - tRuled = 316, - tTransfinite = 317, - tComplex = 318, - tPhysical = 319, - tCompound = 320, - tPeriodic = 321, - tUsing = 322, - tPlugin = 323, - tDegenerated = 324, - tRotate = 325, - tTranslate = 326, - tSymmetry = 327, - tDilate = 328, - tExtrude = 329, - tLevelset = 330, - tLoop = 331, - tRecombine = 332, - tSmoother = 333, - tSplit = 334, - tDelete = 335, - tCoherence = 336, - tIntersect = 337, - tLayers = 338, - tHole = 339, - tAlias = 340, - tAliasWithOptions = 341, - tText2D = 342, - tText3D = 343, - tInterpolationScheme = 344, - tTime = 345, - tCombine = 346, - tBSpline = 347, - tBezier = 348, - tNurbs = 349, - tNurbsOrder = 350, - tNurbsKnots = 351, - tColor = 352, - tColorTable = 353, - tFor = 354, - tIn = 355, - tEndFor = 356, - tIf = 357, - tEndIf = 358, - tExit = 359, - tField = 360, - tReturn = 361, - tCall = 362, - tFunction = 363, - tShow = 364, - tHide = 365, - tGetValue = 366, - tGetEnv = 367, - tGetString = 368, - tGMSH_MAJOR_VERSION = 369, - tGMSH_MINOR_VERSION = 370, - tGMSH_PATCH_VERSION = 371, - tHomRank = 372, - tHomGen = 373, - tHomCut = 374, - tHomSeq = 375, - tAFFECTDIVIDE = 376, - tAFFECTTIMES = 377, - tAFFECTMINUS = 378, - tAFFECTPLUS = 379, - tOR = 380, - tAND = 381, - tNOTEQUAL = 382, - tEQUAL = 383, - tGREATEROREQUAL = 384, - tLESSOREQUAL = 385, - UNARYPREC = 386, - tMINUSMINUS = 387, - tPLUSPLUS = 388 + tCreateTopologyNoHoles = 300, + tDistanceFunction = 301, + tPoint = 302, + tCircle = 303, + tEllipse = 304, + tLine = 305, + tSphere = 306, + tPolarSphere = 307, + tSurface = 308, + tSpline = 309, + tVolume = 310, + tCharacteristic = 311, + tLength = 312, + tParametric = 313, + tElliptic = 314, + tRefineMesh = 315, + tPlane = 316, + tRuled = 317, + tTransfinite = 318, + tComplex = 319, + tPhysical = 320, + tCompound = 321, + tPeriodic = 322, + tUsing = 323, + tPlugin = 324, + tDegenerated = 325, + tRotate = 326, + tTranslate = 327, + tSymmetry = 328, + 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, + tText2D = 343, + tText3D = 344, + tInterpolationScheme = 345, + tTime = 346, + tCombine = 347, + tBSpline = 348, + tBezier = 349, + tNurbs = 350, + tNurbsOrder = 351, + tNurbsKnots = 352, + tColor = 353, + tColorTable = 354, + tFor = 355, + tIn = 356, + tEndFor = 357, + tIf = 358, + tEndIf = 359, + tExit = 360, + tField = 361, + tReturn = 362, + tCall = 363, + tFunction = 364, + tShow = 365, + tHide = 366, + tGetValue = 367, + tGetEnv = 368, + tGetString = 369, + tGMSH_MAJOR_VERSION = 370, + tGMSH_MINOR_VERSION = 371, + tGMSH_PATCH_VERSION = 372, + tHomRank = 373, + tHomGen = 374, + tHomCut = 375, + tHomSeq = 376, + tAFFECTDIVIDE = 377, + tAFFECTTIMES = 378, + tAFFECTMINUS = 379, + tAFFECTPLUS = 380, + tOR = 381, + tAND = 382, + tNOTEQUAL = 383, + tEQUAL = 384, + tGREATEROREQUAL = 385, + tLESSOREQUAL = 386, + UNARYPREC = 387, + tMINUSMINUS = 388, + tPLUSPLUS = 389 }; #endif @@ -345,7 +346,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 349 "Gmsh.tab.cpp" +#line 350 "Gmsh.tab.cpp" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -357,7 +358,7 @@ typedef union YYSTYPE /* Line 264 of yacc.c */ -#line 361 "Gmsh.tab.cpp" +#line 362 "Gmsh.tab.cpp" #ifdef short # undef short @@ -572,20 +573,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 7164 +#define YYLAST 7125 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 154 +#define YYNTOKENS 155 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 81 /* YYNRULES -- Number of rules. */ -#define YYNRULES 393 +#define YYNRULES 394 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1409 +#define YYNSTATES 1411 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 388 +#define YYMAXUTOK 389 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -596,16 +597,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, 139, 2, 149, 2, 138, 2, 2, - 144, 145, 136, 134, 150, 135, 148, 137, 2, 2, + 2, 2, 2, 140, 2, 150, 2, 139, 2, 2, + 145, 146, 137, 135, 151, 136, 149, 138, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 130, 2, 131, 125, 2, 2, 2, 2, 2, 2, + 131, 2, 132, 126, 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, 146, 2, 147, 143, 2, 2, 2, 2, 2, + 2, 147, 2, 148, 144, 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, 151, 2, 152, 153, 2, 2, 2, + 2, 2, 2, 152, 2, 153, 154, 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, @@ -631,7 +632,7 @@ 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, - 126, 127, 128, 129, 132, 133, 140, 141, 142 + 125, 127, 128, 129, 130, 133, 134, 141, 142, 143 }; #if YYDEBUG @@ -656,263 +657,263 @@ static const yytype_uint16 yyprhs[] = 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, 1030, 1039, 1048, 1059, 1061, - 1064, 1066, 1070, 1075, 1077, 1083, 1095, 1109, 1110, 1118, - 1119, 1133, 1134, 1150, 1151, 1158, 1167, 1176, 1185, 1198, - 1211, 1224, 1239, 1254, 1269, 1270, 1283, 1284, 1297, 1298, - 1311, 1312, 1329, 1330, 1347, 1348, 1365, 1366, 1385, 1386, - 1405, 1406, 1425, 1427, 1430, 1436, 1444, 1454, 1457, 1467, - 1474, 1475, 1479, 1480, 1482, 1483, 1486, 1487, 1490, 1498, - 1505, 1514, 1520, 1526, 1533, 1540, 1553, 1564, 1575, 1586, - 1597, 1600, 1604, 1611, 1623, 1635, 1647, 1659, 1661, 1665, - 1668, 1671, 1674, 1678, 1682, 1686, 1690, 1694, 1698, 1702, - 1706, 1710, 1714, 1718, 1722, 1726, 1730, 1736, 1741, 1746, - 1751, 1756, 1761, 1766, 1771, 1776, 1781, 1786, 1793, 1798, - 1803, 1808, 1813, 1818, 1823, 1830, 1837, 1844, 1849, 1854, - 1859, 1864, 1869, 1874, 1879, 1884, 1889, 1894, 1899, 1906, - 1911, 1916, 1921, 1926, 1931, 1936, 1943, 1950, 1957, 1962, - 1964, 1966, 1968, 1970, 1972, 1974, 1976, 1978, 1984, 1989, - 1994, 1997, 2003, 2007, 2014, 2019, 2027, 2034, 2036, 2039, - 2042, 2046, 2050, 2062, 2072, 2080, 2088, 2090, 2094, 2096, - 2098, 2101, 2105, 2110, 2116, 2118, 2120, 2123, 2127, 2131, - 2137, 2142, 2145, 2148, 2151, 2154, 2156, 2158, 2162, 2169, - 2171, 2173, 2177, 2181, 2191, 2199, 2201, 2207, 2211, 2218, - 2220, 2224, 2226, 2228, 2232, 2239, 2241, 2243, 2248, 2255, - 2262, 2267, 2272, 2277 + 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, + 1470, 1477, 1478, 1482, 1483, 1485, 1486, 1489, 1490, 1493, + 1501, 1508, 1517, 1523, 1529, 1536, 1543, 1556, 1567, 1578, + 1589, 1600, 1603, 1607, 1614, 1626, 1638, 1650, 1662, 1664, + 1668, 1671, 1674, 1677, 1681, 1685, 1689, 1693, 1697, 1701, + 1705, 1709, 1713, 1717, 1721, 1725, 1729, 1733, 1739, 1744, + 1749, 1754, 1759, 1764, 1769, 1774, 1779, 1784, 1789, 1796, + 1801, 1806, 1811, 1816, 1821, 1826, 1833, 1840, 1847, 1852, + 1857, 1862, 1867, 1872, 1877, 1882, 1887, 1892, 1897, 1902, + 1909, 1914, 1919, 1924, 1929, 1934, 1939, 1946, 1953, 1960, + 1965, 1967, 1969, 1971, 1973, 1975, 1977, 1979, 1981, 1987, + 1992, 1997, 2000, 2006, 2010, 2017, 2022, 2030, 2037, 2039, + 2042, 2045, 2049, 2053, 2065, 2075, 2083, 2091, 2093, 2097, + 2099, 2101, 2104, 2108, 2113, 2119, 2121, 2123, 2126, 2130, + 2134, 2140, 2145, 2148, 2151, 2154, 2157, 2159, 2161, 2165, + 2172, 2174, 2176, 2180, 2184, 2194, 2202, 2204, 2210, 2214, + 2221, 2223, 2227, 2229, 2231, 2235, 2242, 2244, 2246, 2251, + 2258, 2265, 2270, 2275, 2280 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 155, 0, -1, 156, -1, 1, 6, -1, -1, 156, - 157, -1, 160, -1, 159, -1, 178, -1, 182, -1, - 187, -1, 191, -1, 192, -1, 193, -1, 196, -1, - 216, -1, 217, -1, 218, -1, 219, -1, 195, -1, - 194, -1, 190, -1, 220, -1, 131, -1, 131, 131, - -1, 35, 144, 5, 145, 6, -1, 35, 144, 5, - 145, 158, 233, 6, -1, 35, 144, 5, 150, 229, - 145, 6, -1, 35, 144, 5, 150, 229, 145, 158, - 233, 6, -1, 4, 5, 151, 161, 152, 6, -1, - 85, 4, 146, 221, 147, 6, -1, 86, 4, 146, - 221, 147, 6, -1, -1, 161, 164, -1, 161, 168, - -1, 161, 171, -1, 161, 173, -1, 161, 174, -1, - 221, -1, 162, 150, 221, -1, 221, -1, 163, 150, - 221, -1, -1, -1, 4, 165, 144, 162, 145, 166, - 151, 163, 152, 6, -1, 233, -1, 167, 150, 233, - -1, -1, 87, 144, 221, 150, 221, 150, 221, 145, - 169, 151, 167, 152, 6, -1, 233, -1, 170, 150, - 233, -1, -1, 88, 144, 221, 150, 221, 150, 221, - 150, 221, 145, 172, 151, 170, 152, 6, -1, 89, - 151, 225, 152, 151, 225, 152, 6, -1, 89, 151, - 225, 152, 151, 225, 152, 151, 225, 152, 151, 225, - 152, 6, -1, -1, 90, 175, 151, 163, 152, 6, - -1, 7, -1, 124, -1, 123, -1, 122, -1, 121, - -1, 142, -1, 141, -1, 4, 176, 221, 6, -1, - 4, 146, 221, 147, 176, 221, 6, -1, 4, 146, - 151, 229, 152, 147, 176, 226, 6, -1, 4, 146, - 147, 7, 226, 6, -1, 4, 146, 147, 124, 226, - 6, -1, 4, 177, 6, -1, 4, 146, 221, 147, - 177, 6, -1, 4, 7, 234, 6, -1, 4, 148, - 4, 7, 234, 6, -1, 4, 146, 221, 147, 148, - 4, 7, 234, 6, -1, 4, 148, 4, 176, 221, - 6, -1, 4, 146, 221, 147, 148, 4, 176, 221, - 6, -1, 4, 148, 4, 177, 6, -1, 4, 146, - 221, 147, 148, 4, 177, 6, -1, 4, 148, 97, - 148, 4, 7, 230, 6, -1, 4, 146, 221, 147, - 148, 97, 148, 4, 7, 230, 6, -1, 4, 148, - 98, 7, 231, 6, -1, 4, 146, 221, 147, 148, - 98, 7, 231, 6, -1, 4, 105, 7, 221, 6, - -1, 105, 146, 221, 147, 7, 4, 6, -1, 105, - 146, 221, 147, 148, 4, 7, 221, 6, -1, 105, - 146, 221, 147, 148, 4, 7, 234, 6, -1, 105, - 146, 221, 147, 148, 4, 7, 151, 229, 152, 6, - -1, 68, 144, 4, 145, 148, 4, 7, 221, 6, - -1, 68, 144, 4, 145, 148, 4, 7, 234, 6, - -1, 221, -1, 234, -1, -1, 100, 50, 151, 221, - 152, -1, -1, 60, 223, -1, 46, 144, 221, 145, - 7, 223, 6, -1, -1, 64, 46, 183, 144, 179, - 145, 7, 226, 6, -1, 55, 56, 226, 7, 221, - 6, -1, 49, 144, 221, 145, 7, 226, 6, -1, - 69, 49, 226, 6, -1, 53, 144, 221, 145, 7, - 226, 6, -1, 47, 144, 221, 145, 7, 226, 181, - 6, -1, 48, 144, 221, 145, 7, 226, 181, 6, - -1, 92, 144, 221, 145, 7, 226, 6, -1, 93, - 144, 221, 145, 7, 226, 6, -1, 94, 144, 221, - 145, 7, 226, 96, 226, 95, 221, 6, -1, 49, - 76, 144, 221, 145, 7, 226, 6, -1, 65, 49, - 144, 221, 145, 7, 226, 6, -1, -1, 64, 49, - 184, 144, 179, 145, 7, 226, 6, -1, 60, 52, - 144, 221, 145, 7, 226, 6, -1, 61, 52, 144, - 221, 145, 7, 226, 180, 6, -1, 12, 13, 6, - -1, 13, 52, 221, 6, -1, 57, 52, 144, 221, - 145, 7, 5, 5, 5, 6, -1, 50, 144, 221, - 145, 7, 226, 6, -1, 51, 144, 221, 145, 7, - 226, 6, -1, 52, 76, 144, 221, 145, 7, 226, - 6, -1, 65, 52, 144, 221, 145, 7, 226, 6, - -1, 65, 52, 144, 221, 145, 7, 226, 4, 151, - 225, 152, 6, -1, -1, 64, 52, 185, 144, 179, - 145, 7, 226, 6, -1, 63, 54, 144, 221, 145, - 7, 226, 6, -1, 54, 144, 221, 145, 7, 226, - 6, -1, 65, 54, 144, 221, 145, 7, 226, 6, - -1, -1, 64, 54, 186, 144, 179, 145, 7, 226, - 6, -1, 71, 223, 151, 188, 152, -1, 70, 151, - 223, 150, 223, 150, 221, 152, 151, 188, 152, -1, - 72, 223, 151, 188, 152, -1, 73, 151, 223, 150, - 221, 152, 151, 188, 152, -1, 4, 151, 188, 152, - -1, 82, 49, 151, 229, 152, 52, 151, 221, 152, - -1, 79, 49, 144, 221, 145, 151, 229, 152, 6, - -1, 189, -1, 187, -1, -1, 189, 182, -1, 189, - 46, 151, 229, 152, 6, -1, 189, 49, 151, 229, - 152, 6, -1, 189, 52, 151, 229, 152, 6, -1, - 189, 54, 151, 229, 152, 6, -1, 75, 60, 144, - 221, 145, 7, 226, 6, -1, 75, 60, 144, 221, - 145, 7, 151, 223, 150, 223, 150, 229, 152, 6, - -1, 75, 60, 144, 221, 145, 7, 151, 223, 150, - 223, 150, 223, 150, 229, 152, 6, -1, 75, 50, - 144, 221, 145, 7, 151, 223, 150, 229, 152, 6, - -1, 75, 4, 144, 221, 145, 7, 226, 6, -1, - 75, 4, 144, 221, 145, 7, 5, 6, -1, 75, - 4, 151, 221, 152, 6, -1, 75, 4, 144, 221, - 145, 7, 151, 223, 150, 223, 150, 229, 152, 6, - -1, 80, 151, 189, 152, -1, 80, 105, 146, 221, - 147, 6, -1, 80, 4, 146, 221, 147, 6, -1, - 80, 4, 6, -1, 80, 4, 4, 6, -1, 97, - 230, 151, 189, 152, -1, 109, 5, 6, -1, 110, - 5, 6, -1, 109, 151, 189, 152, -1, 110, 151, - 189, 152, -1, 4, 234, 6, -1, 4, 4, 146, - 221, 147, 233, 6, -1, 4, 4, 4, 146, 221, - 147, 6, -1, 4, 221, 6, -1, 68, 144, 4, - 145, 148, 4, 6, -1, 91, 4, 6, -1, 104, - 6, -1, 43, 6, -1, 40, 6, -1, 40, 151, - 221, 150, 221, 150, 221, 150, 221, 150, 221, 150, - 221, 152, 6, -1, 41, 6, -1, 44, 6, -1, - 59, 6, -1, 99, 144, 221, 8, 221, 145, -1, - 99, 144, 221, 8, 221, 8, 221, 145, -1, 99, - 4, 100, 151, 221, 8, 221, 152, -1, 99, 4, - 100, 151, 221, 8, 221, 8, 221, 152, -1, 101, - -1, 108, 4, -1, 106, -1, 107, 4, 6, -1, - 102, 144, 221, 145, -1, 103, -1, 74, 223, 151, - 189, 152, -1, 74, 151, 223, 150, 223, 150, 221, - 152, 151, 189, 152, -1, 74, 151, 223, 150, 223, - 150, 223, 150, 221, 152, 151, 189, 152, -1, -1, - 74, 223, 151, 189, 197, 210, 152, -1, -1, 74, - 151, 223, 150, 223, 150, 221, 152, 151, 189, 198, - 210, 152, -1, -1, 74, 151, 223, 150, 223, 150, - 223, 150, 221, 152, 151, 189, 199, 210, 152, -1, - -1, 74, 151, 189, 200, 210, 152, -1, 74, 46, - 151, 221, 150, 223, 152, 6, -1, 74, 49, 151, - 221, 150, 223, 152, 6, -1, 74, 52, 151, 221, - 150, 223, 152, 6, -1, 74, 46, 151, 221, 150, - 223, 150, 223, 150, 221, 152, 6, -1, 74, 49, - 151, 221, 150, 223, 150, 223, 150, 221, 152, 6, - -1, 74, 52, 151, 221, 150, 223, 150, 223, 150, - 221, 152, 6, -1, 74, 46, 151, 221, 150, 223, - 150, 223, 150, 223, 150, 221, 152, 6, -1, 74, - 49, 151, 221, 150, 223, 150, 223, 150, 223, 150, - 221, 152, 6, -1, 74, 52, 151, 221, 150, 223, - 150, 223, 150, 223, 150, 221, 152, 6, -1, -1, - 74, 46, 151, 221, 150, 223, 152, 201, 151, 210, - 152, 6, -1, -1, 74, 49, 151, 221, 150, 223, - 152, 202, 151, 210, 152, 6, -1, -1, 74, 52, - 151, 221, 150, 223, 152, 203, 151, 210, 152, 6, - -1, -1, 74, 46, 151, 221, 150, 223, 150, 223, - 150, 221, 152, 204, 151, 210, 152, 6, -1, -1, - 74, 49, 151, 221, 150, 223, 150, 223, 150, 221, - 152, 205, 151, 210, 152, 6, -1, -1, 74, 52, - 151, 221, 150, 223, 150, 223, 150, 221, 152, 206, - 151, 210, 152, 6, -1, -1, 74, 46, 151, 221, - 150, 223, 150, 223, 150, 223, 150, 221, 152, 207, - 151, 210, 152, 6, -1, -1, 74, 49, 151, 221, - 150, 223, 150, 223, 150, 223, 150, 221, 152, 208, - 151, 210, 152, 6, -1, -1, 74, 52, 151, 221, - 150, 223, 150, 223, 150, 223, 150, 221, 152, 209, - 151, 210, 152, 6, -1, 211, -1, 210, 211, -1, - 83, 151, 221, 152, 6, -1, 83, 151, 226, 150, - 226, 152, 6, -1, 83, 151, 226, 150, 226, 150, - 226, 152, 6, -1, 77, 6, -1, 84, 144, 221, - 145, 7, 226, 67, 221, 6, -1, 67, 4, 146, - 221, 147, 6, -1, -1, 67, 4, 221, -1, -1, - 4, -1, -1, 7, 226, -1, -1, 7, 221, -1, - 62, 49, 227, 7, 221, 212, 6, -1, 62, 52, - 227, 214, 213, 6, -1, 58, 52, 151, 221, 152, - 7, 226, 6, -1, 62, 54, 227, 214, 6, -1, - 77, 52, 227, 215, 6, -1, 78, 52, 226, 7, - 221, 6, -1, 66, 49, 226, 7, 226, 6, -1, - 66, 52, 221, 151, 229, 152, 7, 221, 151, 229, - 152, 6, -1, 46, 151, 229, 152, 100, 52, 151, - 221, 152, 6, -1, 49, 151, 229, 152, 100, 52, - 151, 221, 152, 6, -1, 49, 151, 229, 152, 100, - 54, 151, 221, 152, 6, -1, 52, 151, 229, 152, - 100, 54, 151, 221, 152, 6, -1, 81, 6, -1, - 81, 4, 6, -1, 81, 46, 151, 229, 152, 6, - -1, 117, 144, 233, 145, 7, 151, 226, 150, 226, - 152, 6, -1, 118, 144, 233, 145, 7, 151, 226, - 150, 226, 152, 6, -1, 119, 144, 233, 145, 7, - 151, 226, 150, 226, 152, 6, -1, 120, 144, 233, - 145, 7, 151, 226, 150, 226, 152, 6, -1, 222, - -1, 144, 221, 145, -1, 135, 221, -1, 134, 221, - -1, 139, 221, -1, 221, 135, 221, -1, 221, 134, - 221, -1, 221, 136, 221, -1, 221, 137, 221, -1, - 221, 138, 221, -1, 221, 143, 221, -1, 221, 130, - 221, -1, 221, 131, 221, -1, 221, 133, 221, -1, - 221, 132, 221, -1, 221, 129, 221, -1, 221, 128, - 221, -1, 221, 127, 221, -1, 221, 126, 221, -1, - 221, 125, 221, 8, 221, -1, 14, 144, 221, 145, - -1, 15, 144, 221, 145, -1, 16, 144, 221, 145, - -1, 17, 144, 221, 145, -1, 18, 144, 221, 145, - -1, 19, 144, 221, 145, -1, 20, 144, 221, 145, - -1, 21, 144, 221, 145, -1, 22, 144, 221, 145, - -1, 24, 144, 221, 145, -1, 25, 144, 221, 150, - 221, 145, -1, 26, 144, 221, 145, -1, 27, 144, - 221, 145, -1, 28, 144, 221, 145, -1, 29, 144, - 221, 145, -1, 30, 144, 221, 145, -1, 31, 144, - 221, 145, -1, 32, 144, 221, 150, 221, 145, -1, - 33, 144, 221, 150, 221, 145, -1, 34, 144, 221, - 150, 221, 145, -1, 23, 144, 221, 145, -1, 14, - 146, 221, 147, -1, 15, 146, 221, 147, -1, 16, - 146, 221, 147, -1, 17, 146, 221, 147, -1, 18, - 146, 221, 147, -1, 19, 146, 221, 147, -1, 20, - 146, 221, 147, -1, 21, 146, 221, 147, -1, 22, - 146, 221, 147, -1, 24, 146, 221, 147, -1, 25, - 146, 221, 150, 221, 147, -1, 26, 146, 221, 147, - -1, 27, 146, 221, 147, -1, 28, 146, 221, 147, - -1, 29, 146, 221, 147, -1, 30, 146, 221, 147, - -1, 31, 146, 221, 147, -1, 32, 146, 221, 150, - 221, 147, -1, 33, 146, 221, 150, 221, 147, -1, - 34, 146, 221, 150, 221, 147, -1, 23, 146, 221, - 147, -1, 3, -1, 9, -1, 10, -1, 11, -1, - 114, -1, 115, -1, 116, -1, 4, -1, 4, 153, - 151, 221, 152, -1, 4, 146, 221, 147, -1, 149, - 4, 146, 147, -1, 4, 177, -1, 4, 146, 221, - 147, 177, -1, 4, 148, 4, -1, 4, 146, 221, - 147, 148, 4, -1, 4, 148, 4, 177, -1, 4, - 146, 221, 147, 148, 4, 177, -1, 111, 144, 233, - 150, 221, 145, -1, 224, -1, 135, 223, -1, 134, - 223, -1, 223, 135, 223, -1, 223, 134, 223, -1, - 151, 221, 150, 221, 150, 221, 150, 221, 150, 221, - 152, -1, 151, 221, 150, 221, 150, 221, 150, 221, - 152, -1, 151, 221, 150, 221, 150, 221, 152, -1, - 144, 221, 150, 221, 150, 221, 145, -1, 226, -1, - 225, 150, 226, -1, 221, -1, 228, -1, 151, 152, - -1, 151, 229, 152, -1, 135, 151, 229, 152, -1, - 221, 136, 151, 229, 152, -1, 226, -1, 5, -1, - 135, 228, -1, 221, 136, 228, -1, 221, 8, 221, - -1, 221, 8, 221, 8, 221, -1, 46, 151, 221, - 152, -1, 46, 5, -1, 49, 5, -1, 52, 5, - -1, 54, 5, -1, 187, -1, 196, -1, 4, 146, - 147, -1, 4, 146, 151, 229, 152, 147, -1, 221, - -1, 228, -1, 229, 150, 221, -1, 229, 150, 228, - -1, 151, 221, 150, 221, 150, 221, 150, 221, 152, - -1, 151, 221, 150, 221, 150, 221, 152, -1, 4, - -1, 4, 148, 97, 148, 4, -1, 151, 232, 152, - -1, 4, 146, 221, 147, 148, 98, -1, 230, -1, - 232, 150, 230, -1, 234, -1, 4, -1, 4, 148, - 4, -1, 4, 146, 221, 147, 148, 4, -1, 5, - -1, 42, -1, 112, 144, 233, 145, -1, 113, 144, - 233, 150, 233, 145, -1, 37, 144, 233, 150, 233, - 145, -1, 38, 144, 233, 145, -1, 39, 144, 233, - 145, -1, 36, 144, 233, 145, -1, 36, 144, 233, - 150, 229, 145, -1 + 156, 0, -1, 157, -1, 1, 6, -1, -1, 157, + 158, -1, 161, -1, 160, -1, 179, -1, 183, -1, + 188, -1, 192, -1, 193, -1, 194, -1, 197, -1, + 217, -1, 218, -1, 219, -1, 220, -1, 196, -1, + 195, -1, 191, -1, 221, -1, 132, -1, 132, 132, + -1, 35, 145, 5, 146, 6, -1, 35, 145, 5, + 146, 159, 234, 6, -1, 35, 145, 5, 151, 230, + 146, 6, -1, 35, 145, 5, 151, 230, 146, 159, + 234, 6, -1, 4, 5, 152, 162, 153, 6, -1, + 86, 4, 147, 222, 148, 6, -1, 87, 4, 147, + 222, 148, 6, -1, -1, 162, 165, -1, 162, 169, + -1, 162, 172, -1, 162, 174, -1, 162, 175, -1, + 222, -1, 163, 151, 222, -1, 222, -1, 164, 151, + 222, -1, -1, -1, 4, 166, 145, 163, 146, 167, + 152, 164, 153, 6, -1, 234, -1, 168, 151, 234, + -1, -1, 88, 145, 222, 151, 222, 151, 222, 146, + 170, 152, 168, 153, 6, -1, 234, -1, 171, 151, + 234, -1, -1, 89, 145, 222, 151, 222, 151, 222, + 151, 222, 146, 173, 152, 171, 153, 6, -1, 90, + 152, 226, 153, 152, 226, 153, 6, -1, 90, 152, + 226, 153, 152, 226, 153, 152, 226, 153, 152, 226, + 153, 6, -1, -1, 91, 176, 152, 164, 153, 6, + -1, 7, -1, 125, -1, 124, -1, 123, -1, 122, + -1, 143, -1, 142, -1, 4, 177, 222, 6, -1, + 4, 147, 222, 148, 177, 222, 6, -1, 4, 147, + 152, 230, 153, 148, 177, 227, 6, -1, 4, 147, + 148, 7, 227, 6, -1, 4, 147, 148, 125, 227, + 6, -1, 4, 178, 6, -1, 4, 147, 222, 148, + 178, 6, -1, 4, 7, 235, 6, -1, 4, 149, + 4, 7, 235, 6, -1, 4, 147, 222, 148, 149, + 4, 7, 235, 6, -1, 4, 149, 4, 177, 222, + 6, -1, 4, 147, 222, 148, 149, 4, 177, 222, + 6, -1, 4, 149, 4, 178, 6, -1, 4, 147, + 222, 148, 149, 4, 178, 6, -1, 4, 149, 98, + 149, 4, 7, 231, 6, -1, 4, 147, 222, 148, + 149, 98, 149, 4, 7, 231, 6, -1, 4, 149, + 99, 7, 232, 6, -1, 4, 147, 222, 148, 149, + 99, 7, 232, 6, -1, 4, 106, 7, 222, 6, + -1, 106, 147, 222, 148, 7, 4, 6, -1, 106, + 147, 222, 148, 149, 4, 7, 222, 6, -1, 106, + 147, 222, 148, 149, 4, 7, 235, 6, -1, 106, + 147, 222, 148, 149, 4, 7, 152, 230, 153, 6, + -1, 69, 145, 4, 146, 149, 4, 7, 222, 6, + -1, 69, 145, 4, 146, 149, 4, 7, 235, 6, + -1, 222, -1, 235, -1, -1, 101, 51, 152, 222, + 153, -1, -1, 61, 224, -1, 47, 145, 222, 146, + 7, 224, 6, -1, -1, 65, 47, 184, 145, 180, + 146, 7, 227, 6, -1, 56, 57, 227, 7, 222, + 6, -1, 50, 145, 222, 146, 7, 227, 6, -1, + 70, 50, 227, 6, -1, 54, 145, 222, 146, 7, + 227, 6, -1, 48, 145, 222, 146, 7, 227, 182, + 6, -1, 49, 145, 222, 146, 7, 227, 182, 6, + -1, 93, 145, 222, 146, 7, 227, 6, -1, 94, + 145, 222, 146, 7, 227, 6, -1, 95, 145, 222, + 146, 7, 227, 97, 227, 96, 222, 6, -1, 50, + 77, 145, 222, 146, 7, 227, 6, -1, 66, 50, + 145, 222, 146, 7, 227, 6, -1, -1, 65, 50, + 185, 145, 180, 146, 7, 227, 6, -1, 61, 53, + 145, 222, 146, 7, 227, 6, -1, 62, 53, 145, + 222, 146, 7, 227, 181, 6, -1, 12, 13, 6, + -1, 13, 53, 222, 6, -1, 58, 53, 145, 222, + 146, 7, 5, 5, 5, 6, -1, 51, 145, 222, + 146, 7, 227, 6, -1, 52, 145, 222, 146, 7, + 227, 6, -1, 53, 77, 145, 222, 146, 7, 227, + 6, -1, 66, 53, 145, 222, 146, 7, 227, 6, + -1, 66, 53, 145, 222, 146, 7, 227, 4, 152, + 226, 153, 6, -1, -1, 65, 53, 186, 145, 180, + 146, 7, 227, 6, -1, 64, 55, 145, 222, 146, + 7, 227, 6, -1, 55, 145, 222, 146, 7, 227, + 6, -1, 66, 55, 145, 222, 146, 7, 227, 6, + -1, -1, 65, 55, 187, 145, 180, 146, 7, 227, + 6, -1, 72, 224, 152, 189, 153, -1, 71, 152, + 224, 151, 224, 151, 222, 153, 152, 189, 153, -1, + 73, 224, 152, 189, 153, -1, 74, 152, 224, 151, + 222, 153, 152, 189, 153, -1, 4, 152, 189, 153, + -1, 83, 50, 152, 230, 153, 53, 152, 222, 153, + -1, 80, 50, 145, 222, 146, 152, 230, 153, 6, + -1, 190, -1, 188, -1, -1, 190, 183, -1, 190, + 47, 152, 230, 153, 6, -1, 190, 50, 152, 230, + 153, 6, -1, 190, 53, 152, 230, 153, 6, -1, + 190, 55, 152, 230, 153, 6, -1, 76, 61, 145, + 222, 146, 7, 227, 6, -1, 76, 61, 145, 222, + 146, 7, 152, 224, 151, 224, 151, 230, 153, 6, + -1, 76, 61, 145, 222, 146, 7, 152, 224, 151, + 224, 151, 224, 151, 230, 153, 6, -1, 76, 51, + 145, 222, 146, 7, 152, 224, 151, 230, 153, 6, + -1, 76, 4, 145, 222, 146, 7, 227, 6, -1, + 76, 4, 145, 222, 146, 7, 5, 6, -1, 76, + 4, 152, 222, 153, 6, -1, 76, 4, 145, 222, + 146, 7, 152, 224, 151, 224, 151, 230, 153, 6, + -1, 81, 152, 190, 153, -1, 81, 106, 147, 222, + 148, 6, -1, 81, 4, 147, 222, 148, 6, -1, + 81, 4, 6, -1, 81, 4, 4, 6, -1, 98, + 231, 152, 190, 153, -1, 110, 5, 6, -1, 111, + 5, 6, -1, 110, 152, 190, 153, -1, 111, 152, + 190, 153, -1, 4, 235, 6, -1, 4, 4, 147, + 222, 148, 234, 6, -1, 4, 4, 4, 147, 222, + 148, 6, -1, 4, 222, 6, -1, 69, 145, 4, + 146, 149, 4, 6, -1, 92, 4, 6, -1, 105, + 6, -1, 43, 6, -1, 40, 6, -1, 40, 152, + 222, 151, 222, 151, 222, 151, 222, 151, 222, 151, + 222, 153, 6, -1, 41, 6, -1, 44, 6, -1, + 45, 6, -1, 60, 6, -1, 100, 145, 222, 8, + 222, 146, -1, 100, 145, 222, 8, 222, 8, 222, + 146, -1, 100, 4, 101, 152, 222, 8, 222, 153, + -1, 100, 4, 101, 152, 222, 8, 222, 8, 222, + 153, -1, 102, -1, 109, 4, -1, 107, -1, 108, + 4, 6, -1, 103, 145, 222, 146, -1, 104, -1, + 75, 224, 152, 190, 153, -1, 75, 152, 224, 151, + 224, 151, 222, 153, 152, 190, 153, -1, 75, 152, + 224, 151, 224, 151, 224, 151, 222, 153, 152, 190, + 153, -1, -1, 75, 224, 152, 190, 198, 211, 153, + -1, -1, 75, 152, 224, 151, 224, 151, 222, 153, + 152, 190, 199, 211, 153, -1, -1, 75, 152, 224, + 151, 224, 151, 224, 151, 222, 153, 152, 190, 200, + 211, 153, -1, -1, 75, 152, 190, 201, 211, 153, + -1, 75, 47, 152, 222, 151, 224, 153, 6, -1, + 75, 50, 152, 222, 151, 224, 153, 6, -1, 75, + 53, 152, 222, 151, 224, 153, 6, -1, 75, 47, + 152, 222, 151, 224, 151, 224, 151, 222, 153, 6, + -1, 75, 50, 152, 222, 151, 224, 151, 224, 151, + 222, 153, 6, -1, 75, 53, 152, 222, 151, 224, + 151, 224, 151, 222, 153, 6, -1, 75, 47, 152, + 222, 151, 224, 151, 224, 151, 224, 151, 222, 153, + 6, -1, 75, 50, 152, 222, 151, 224, 151, 224, + 151, 224, 151, 222, 153, 6, -1, 75, 53, 152, + 222, 151, 224, 151, 224, 151, 224, 151, 222, 153, + 6, -1, -1, 75, 47, 152, 222, 151, 224, 153, + 202, 152, 211, 153, 6, -1, -1, 75, 50, 152, + 222, 151, 224, 153, 203, 152, 211, 153, 6, -1, + -1, 75, 53, 152, 222, 151, 224, 153, 204, 152, + 211, 153, 6, -1, -1, 75, 47, 152, 222, 151, + 224, 151, 224, 151, 222, 153, 205, 152, 211, 153, + 6, -1, -1, 75, 50, 152, 222, 151, 224, 151, + 224, 151, 222, 153, 206, 152, 211, 153, 6, -1, + -1, 75, 53, 152, 222, 151, 224, 151, 224, 151, + 222, 153, 207, 152, 211, 153, 6, -1, -1, 75, + 47, 152, 222, 151, 224, 151, 224, 151, 224, 151, + 222, 153, 208, 152, 211, 153, 6, -1, -1, 75, + 50, 152, 222, 151, 224, 151, 224, 151, 224, 151, + 222, 153, 209, 152, 211, 153, 6, -1, -1, 75, + 53, 152, 222, 151, 224, 151, 224, 151, 224, 151, + 222, 153, 210, 152, 211, 153, 6, -1, 212, -1, + 211, 212, -1, 84, 152, 222, 153, 6, -1, 84, + 152, 227, 151, 227, 153, 6, -1, 84, 152, 227, + 151, 227, 151, 227, 153, 6, -1, 78, 6, -1, + 85, 145, 222, 146, 7, 227, 68, 222, 6, -1, + 68, 4, 147, 222, 148, 6, -1, -1, 68, 4, + 222, -1, -1, 4, -1, -1, 7, 227, -1, -1, + 7, 222, -1, 63, 50, 228, 7, 222, 213, 6, + -1, 63, 53, 228, 215, 214, 6, -1, 59, 53, + 152, 222, 153, 7, 227, 6, -1, 63, 55, 228, + 215, 6, -1, 78, 53, 228, 216, 6, -1, 79, + 53, 227, 7, 222, 6, -1, 67, 50, 227, 7, + 227, 6, -1, 67, 53, 222, 152, 230, 153, 7, + 222, 152, 230, 153, 6, -1, 47, 152, 230, 153, + 101, 53, 152, 222, 153, 6, -1, 50, 152, 230, + 153, 101, 53, 152, 222, 153, 6, -1, 50, 152, + 230, 153, 101, 55, 152, 222, 153, 6, -1, 53, + 152, 230, 153, 101, 55, 152, 222, 153, 6, -1, + 82, 6, -1, 82, 4, 6, -1, 82, 47, 152, + 230, 153, 6, -1, 118, 145, 234, 146, 7, 152, + 227, 151, 227, 153, 6, -1, 119, 145, 234, 146, + 7, 152, 227, 151, 227, 153, 6, -1, 120, 145, + 234, 146, 7, 152, 227, 151, 227, 153, 6, -1, + 121, 145, 234, 146, 7, 152, 227, 151, 227, 153, + 6, -1, 223, -1, 145, 222, 146, -1, 136, 222, + -1, 135, 222, -1, 140, 222, -1, 222, 136, 222, + -1, 222, 135, 222, -1, 222, 137, 222, -1, 222, + 138, 222, -1, 222, 139, 222, -1, 222, 144, 222, + -1, 222, 131, 222, -1, 222, 132, 222, -1, 222, + 134, 222, -1, 222, 133, 222, -1, 222, 130, 222, + -1, 222, 129, 222, -1, 222, 128, 222, -1, 222, + 127, 222, -1, 222, 126, 222, 8, 222, -1, 14, + 145, 222, 146, -1, 15, 145, 222, 146, -1, 16, + 145, 222, 146, -1, 17, 145, 222, 146, -1, 18, + 145, 222, 146, -1, 19, 145, 222, 146, -1, 20, + 145, 222, 146, -1, 21, 145, 222, 146, -1, 22, + 145, 222, 146, -1, 24, 145, 222, 146, -1, 25, + 145, 222, 151, 222, 146, -1, 26, 145, 222, 146, + -1, 27, 145, 222, 146, -1, 28, 145, 222, 146, + -1, 29, 145, 222, 146, -1, 30, 145, 222, 146, + -1, 31, 145, 222, 146, -1, 32, 145, 222, 151, + 222, 146, -1, 33, 145, 222, 151, 222, 146, -1, + 34, 145, 222, 151, 222, 146, -1, 23, 145, 222, + 146, -1, 14, 147, 222, 148, -1, 15, 147, 222, + 148, -1, 16, 147, 222, 148, -1, 17, 147, 222, + 148, -1, 18, 147, 222, 148, -1, 19, 147, 222, + 148, -1, 20, 147, 222, 148, -1, 21, 147, 222, + 148, -1, 22, 147, 222, 148, -1, 24, 147, 222, + 148, -1, 25, 147, 222, 151, 222, 148, -1, 26, + 147, 222, 148, -1, 27, 147, 222, 148, -1, 28, + 147, 222, 148, -1, 29, 147, 222, 148, -1, 30, + 147, 222, 148, -1, 31, 147, 222, 148, -1, 32, + 147, 222, 151, 222, 148, -1, 33, 147, 222, 151, + 222, 148, -1, 34, 147, 222, 151, 222, 148, -1, + 23, 147, 222, 148, -1, 3, -1, 9, -1, 10, + -1, 11, -1, 115, -1, 116, -1, 117, -1, 4, + -1, 4, 154, 152, 222, 153, -1, 4, 147, 222, + 148, -1, 150, 4, 147, 148, -1, 4, 178, -1, + 4, 147, 222, 148, 178, -1, 4, 149, 4, -1, + 4, 147, 222, 148, 149, 4, -1, 4, 149, 4, + 178, -1, 4, 147, 222, 148, 149, 4, 178, -1, + 112, 145, 234, 151, 222, 146, -1, 225, -1, 136, + 224, -1, 135, 224, -1, 224, 136, 224, -1, 224, + 135, 224, -1, 152, 222, 151, 222, 151, 222, 151, + 222, 151, 222, 153, -1, 152, 222, 151, 222, 151, + 222, 151, 222, 153, -1, 152, 222, 151, 222, 151, + 222, 153, -1, 145, 222, 151, 222, 151, 222, 146, + -1, 227, -1, 226, 151, 227, -1, 222, -1, 229, + -1, 152, 153, -1, 152, 230, 153, -1, 136, 152, + 230, 153, -1, 222, 137, 152, 230, 153, -1, 227, + -1, 5, -1, 136, 229, -1, 222, 137, 229, -1, + 222, 8, 222, -1, 222, 8, 222, 8, 222, -1, + 47, 152, 222, 153, -1, 47, 5, -1, 50, 5, + -1, 53, 5, -1, 55, 5, -1, 188, -1, 197, + -1, 4, 147, 148, -1, 4, 147, 152, 230, 153, + 148, -1, 222, -1, 229, -1, 230, 151, 222, -1, + 230, 151, 229, -1, 152, 222, 151, 222, 151, 222, + 151, 222, 153, -1, 152, 222, 151, 222, 151, 222, + 153, -1, 4, -1, 4, 149, 98, 149, 4, -1, + 152, 233, 153, -1, 4, 147, 222, 148, 149, 99, + -1, 231, -1, 233, 151, 231, -1, 235, -1, 4, + -1, 4, 149, 4, -1, 4, 147, 222, 148, 149, + 4, -1, 5, -1, 42, -1, 113, 145, 234, 146, + -1, 114, 145, 234, 151, 234, 146, -1, 37, 145, + 234, 151, 234, 146, -1, 38, 145, 234, 146, -1, + 39, 145, 234, 146, -1, 36, 145, 234, 146, -1, + 36, 145, 234, 151, 230, 146, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -935,29 +936,29 @@ static const yytype_uint16 yyrline[] = 1713, 1736, 1759, 1787, 1808, 1829, 1851, 1871, 1983, 2002, 2022, 2131, 2140, 2146, 2161, 2189, 2206, 2220, 2226, 2232, 2241, 2255, 2297, 2314, 2329, 2348, 2360, 2384, 2388, 2395, - 2401, 2406, 2412, 2416, 2426, 2443, 2460, 2479, 2498, 2528, - 2536, 2542, 2549, 2553, 2562, 2570, 2578, 2587, 2586, 2599, - 2598, 2611, 2610, 2623, 2622, 2634, 2641, 2648, 2655, 2662, - 2669, 2676, 2683, 2690, 2698, 2697, 2709, 2708, 2720, 2719, - 2731, 2730, 2742, 2741, 2753, 2752, 2764, 2763, 2775, 2774, - 2786, 2785, 2800, 2803, 2809, 2818, 2838, 2861, 2865, 2884, - 2897, 2900, 2916, 2919, 2932, 2935, 2941, 2944, 2951, 3007, - 3077, 3082, 3149, 3192, 3217, 3244, 3288, 3311, 3334, 3337, - 3346, 3350, 3360, 3397, 3434, 3470, 3505, 3545, 3546, 3547, - 3548, 3549, 3550, 3551, 3552, 3553, 3560, 3561, 3562, 3563, - 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, - 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3581, 3582, 3583, - 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3593, 3594, - 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, - 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3622, - 3623, 3624, 3625, 3626, 3627, 3628, 3632, 3651, 3669, 3684, - 3694, 3710, 3728, 3733, 3738, 3748, 3758, 3766, 3770, 3774, - 3778, 3782, 3789, 3793, 3797, 3801, 3808, 3813, 3820, 3825, - 3829, 3834, 3838, 3846, 3857, 3861, 3873, 3881, 3889, 3896, - 3907, 3927, 3931, 3935, 3939, 3943, 3953, 3963, 3973, 3993, - 3998, 4002, 4006, 4018, 4022, 4034, 4041, 4051, 4055, 4070, - 4075, 4082, 4086, 4099, 4107, 4118, 4122, 4130, 4138, 4146, - 4154, 4168, 4182, 4186 + 2401, 2406, 2412, 2416, 2420, 2430, 2447, 2464, 2483, 2502, + 2532, 2540, 2546, 2553, 2557, 2566, 2574, 2582, 2591, 2590, + 2603, 2602, 2615, 2614, 2627, 2626, 2638, 2645, 2652, 2659, + 2666, 2673, 2680, 2687, 2694, 2702, 2701, 2713, 2712, 2724, + 2723, 2735, 2734, 2746, 2745, 2757, 2756, 2768, 2767, 2779, + 2778, 2790, 2789, 2804, 2807, 2813, 2822, 2842, 2865, 2869, + 2888, 2901, 2904, 2920, 2923, 2936, 2939, 2945, 2948, 2955, + 3011, 3081, 3086, 3153, 3196, 3221, 3248, 3292, 3315, 3338, + 3341, 3350, 3354, 3364, 3401, 3438, 3474, 3509, 3549, 3550, + 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3564, 3565, 3566, + 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, + 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3586, + 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3597, + 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, + 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, + 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3636, 3655, 3673, + 3688, 3698, 3714, 3732, 3737, 3742, 3752, 3762, 3770, 3774, + 3778, 3782, 3786, 3793, 3797, 3801, 3805, 3812, 3817, 3824, + 3829, 3833, 3838, 3842, 3850, 3861, 3865, 3877, 3885, 3893, + 3900, 3911, 3931, 3935, 3939, 3943, 3947, 3957, 3967, 3977, + 3997, 4002, 4006, 4010, 4022, 4026, 4038, 4045, 4055, 4059, + 4074, 4079, 4086, 4090, 4103, 4111, 4122, 4126, 4134, 4142, + 4150, 4158, 4172, 4186, 4190 }; #endif @@ -973,39 +974,40 @@ static const char *const yytname[] = "tTanh", "tFabs", "tFloor", "tCeil", "tFmod", "tModulo", "tHypot", "tPrintf", "tSprintf", "tStrCat", "tStrPrefix", "tStrRelative", "tBoundingBox", "tDraw", "tToday", "tSyncModel", "tCreateTopology", - "tDistanceFunction", "tPoint", "tCircle", "tEllipse", "tLine", "tSphere", - "tPolarSphere", "tSurface", "tSpline", "tVolume", "tCharacteristic", - "tLength", "tParametric", "tElliptic", "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", "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", + "tCreateTopologyNoHoles", "tDistanceFunction", "tPoint", "tCircle", + "tEllipse", "tLine", "tSphere", "tPolarSphere", "tSurface", "tSpline", + "tVolume", "tCharacteristic", "tLength", "tParametric", "tElliptic", + "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", "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 @@ -1027,56 +1029,56 @@ static const yytype_uint16 yytoknum[] = 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 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, 63, 380, 381, 382, 383, - 60, 62, 384, 385, 43, 45, 42, 47, 37, 33, - 386, 387, 388, 94, 40, 41, 91, 93, 46, 35, - 44, 123, 125, 126 + 375, 376, 377, 378, 379, 380, 63, 381, 382, 383, + 384, 60, 62, 385, 386, 43, 45, 42, 47, 37, + 33, 387, 388, 389, 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, 154, 155, 155, 156, 156, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 158, 158, 159, 159, 159, 159, 160, - 160, 160, 161, 161, 161, 161, 161, 161, 162, 162, - 163, 163, 165, 166, 164, 167, 167, 169, 168, 170, - 170, 172, 171, 173, 173, 175, 174, 176, 176, 176, - 176, 176, 177, 177, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, - 179, 180, 180, 181, 181, 182, 183, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 184, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 185, 182, 182, 182, 182, 186, 182, 187, 187, - 187, 187, 187, 187, 187, 188, 188, 189, 189, 189, - 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, - 190, 191, 191, 191, 191, 191, 192, 193, 193, 193, - 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 196, 196, 196, 197, 196, 198, - 196, 199, 196, 200, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 201, 196, 202, 196, 203, 196, - 204, 196, 205, 196, 206, 196, 207, 196, 208, 196, - 209, 196, 210, 210, 211, 211, 211, 211, 211, 211, - 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, - 216, 216, 216, 216, 217, 217, 218, 218, 218, 218, - 219, 219, 219, 220, 220, 220, 220, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, + 0, 155, 156, 156, 157, 157, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 159, 159, 160, 160, 160, 160, 161, + 161, 161, 162, 162, 162, 162, 162, 162, 163, 163, + 164, 164, 166, 167, 165, 168, 168, 170, 169, 171, + 171, 173, 172, 174, 174, 176, 175, 177, 177, 177, + 177, 177, 178, 178, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 180, + 180, 181, 181, 182, 182, 183, 184, 183, 183, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 185, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 186, 183, 183, 183, 183, 187, 183, 188, 188, + 188, 188, 188, 188, 188, 189, 189, 190, 190, 190, + 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, + 191, 192, 192, 192, 192, 192, 193, 194, 194, 194, + 194, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 197, 197, 197, 198, 197, + 199, 197, 200, 197, 201, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 202, 197, 203, 197, 204, + 197, 205, 197, 206, 197, 207, 197, 208, 197, 209, + 197, 210, 197, 211, 211, 212, 212, 212, 212, 212, + 212, 213, 213, 214, 214, 215, 215, 216, 216, 217, + 217, 217, 217, 217, 217, 218, 218, 219, 219, 219, + 219, 220, 220, 220, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, - 223, 223, 224, 224, 224, 224, 225, 225, 226, 226, - 226, 226, 226, 226, 227, 227, 228, 228, 228, 228, - 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, - 229, 229, 229, 230, 230, 230, 230, 231, 231, 232, - 232, 233, 233, 233, 233, 234, 234, 234, 234, 234, - 234, 234, 234, 234 + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, + 224, 224, 224, 225, 225, 225, 225, 226, 226, 227, + 227, 227, 227, 227, 227, 228, 228, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, + 230, 230, 230, 230, 231, 231, 231, 231, 232, 232, + 233, 233, 234, 234, 234, 234, 235, 235, 235, 235, + 235, 235, 235, 235, 235 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1099,29 +1101,29 @@ static const yytype_uint8 yyr2[] = 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, 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, 9, 6, - 0, 3, 0, 1, 0, 2, 0, 2, 7, 6, - 8, 5, 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, 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, + 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, 9, + 6, 0, 3, 0, 1, 0, 2, 0, 2, 7, + 6, 8, 5, 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, 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, 4, 4, 4, 4, 6, 6, 6, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, + 4, 4, 4, 4, 4, 4, 6, 6, 6, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 5, 4, + 4, 2, 5, 3, 6, 4, 7, 6, 1, 2, + 2, 3, 3, 11, 9, 7, 7, 1, 3, 1, + 1, 2, 3, 4, 5, 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 @@ -1134,317 +1136,319 @@ 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, 178, 0, 183, 0, - 0, 180, 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, 319, 326, - 385, 57, 320, 321, 322, 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, 5, 7, 6, 8, 9, 10, 21, 11, 12, + 13, 20, 19, 14, 15, 16, 17, 18, 22, 320, + 327, 386, 57, 321, 322, 323, 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, 387, 0, 0, 0, 0, 324, 325, 326, 61, + 60, 59, 58, 0, 0, 0, 63, 62, 0, 0, + 0, 0, 137, 0, 0, 0, 258, 0, 0, 0, + 0, 169, 0, 171, 168, 172, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 386, 0, 0, 0, 0, 323, 324, 325, 61, 60, - 59, 58, 0, 0, 0, 63, 62, 0, 0, 0, - 0, 137, 0, 0, 0, 257, 0, 0, 0, 0, - 169, 0, 171, 168, 172, 0, 0, 0, 0, 0, + 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, + 96, 109, 121, 126, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 338, 0, 0, + 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 137, 0, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 376, 0, 0, 0, 0, 0, + 167, 0, 0, 180, 0, 137, 0, 137, 0, 0, + 0, 0, 0, 0, 0, 0, 331, 32, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 173, 0, 0, 0, 0, 0, 0, 96, 109, - 121, 126, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, - 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 137, 0, 250, 0, 0, 0, 0, 0, 0, - 0, 0, 375, 0, 0, 0, 0, 0, 167, 0, - 0, 179, 0, 137, 0, 137, 0, 0, 0, 0, - 0, 0, 0, 0, 330, 32, 385, 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, 0, 326, 260, - 259, 261, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 136, 0, 135, 0, 69, 164, 0, 0, 0, + 327, 261, 260, 262, 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, 161, 113, 0, 0, 0, 0, 326, 0, - 0, 0, 0, 0, 365, 366, 369, 370, 0, 0, + 0, 0, 0, 0, 161, 113, 0, 0, 0, 0, + 327, 0, 0, 0, 0, 0, 366, 367, 370, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 348, 0, 349, 0, 0, 0, 0, 355, - 354, 0, 234, 234, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 339, 338, 0, - 0, 0, 0, 137, 137, 0, 0, 0, 0, 0, - 0, 0, 193, 0, 137, 0, 0, 0, 0, 236, - 0, 0, 0, 154, 0, 0, 0, 251, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 137, 0, - 0, 0, 0, 181, 157, 0, 158, 0, 382, 0, - 381, 0, 0, 0, 0, 0, 332, 0, 0, 71, + 0, 0, 0, 0, 349, 0, 350, 0, 0, 0, + 0, 356, 355, 0, 235, 235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, + 339, 0, 0, 0, 0, 137, 137, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 137, 0, 0, 0, + 0, 237, 0, 0, 0, 154, 0, 0, 0, 252, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, + 137, 0, 0, 0, 0, 182, 157, 0, 158, 0, + 383, 0, 382, 0, 0, 0, 0, 0, 333, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 259, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 0, 132, 0, 0, 0, 0, 138, + 64, 0, 276, 275, 274, 273, 269, 270, 272, 271, + 264, 263, 265, 266, 267, 268, 114, 0, 0, 0, + 0, 0, 362, 0, 363, 364, 365, 260, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 0, 0, 0, 57, 0, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 138, 64, 0, - 275, 274, 273, 272, 268, 269, 271, 270, 263, 262, - 264, 265, 266, 267, 114, 0, 0, 0, 0, 0, - 361, 0, 362, 363, 364, 259, 356, 0, 0, 0, + 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, + 0, 0, 342, 341, 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, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, + 159, 160, 0, 0, 0, 0, 0, 0, 0, 329, + 335, 0, 42, 0, 0, 0, 55, 0, 33, 34, + 35, 36, 37, 278, 299, 279, 300, 280, 301, 281, + 302, 282, 303, 283, 304, 284, 305, 285, 306, 286, + 307, 298, 319, 287, 308, 0, 0, 289, 310, 290, + 311, 291, 312, 292, 313, 293, 314, 294, 315, 0, + 0, 0, 0, 0, 0, 393, 0, 0, 391, 392, + 82, 0, 388, 0, 0, 0, 0, 0, 57, 0, + 0, 0, 0, 0, 76, 0, 0, 0, 0, 330, + 0, 0, 0, 0, 0, 25, 23, 0, 0, 0, + 0, 368, 0, 0, 359, 265, 358, 372, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, - 341, 340, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 0, 151, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 159, 160, - 0, 0, 0, 0, 0, 0, 0, 328, 334, 0, - 42, 0, 0, 0, 55, 0, 33, 34, 35, 36, - 37, 277, 298, 278, 299, 279, 300, 280, 301, 281, - 302, 282, 303, 283, 304, 284, 305, 285, 306, 297, - 318, 286, 307, 0, 0, 288, 309, 289, 310, 290, - 311, 291, 312, 292, 313, 293, 314, 0, 0, 0, - 0, 0, 0, 392, 0, 0, 390, 391, 82, 0, - 387, 0, 0, 0, 0, 0, 57, 0, 0, 0, - 0, 0, 76, 0, 0, 0, 0, 329, 0, 0, - 0, 0, 0, 25, 23, 0, 0, 0, 0, 367, - 0, 0, 358, 264, 357, 371, 372, 0, 0, 0, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 231, + 236, 234, 0, 242, 0, 0, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 351, 0, 0, 0, 0, 0, 0, 230, 235, 233, - 0, 241, 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, 222, - 0, 184, 0, 0, 0, 0, 0, 237, 242, 0, + 128, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 223, 0, 185, 0, 0, 0, 0, 0, 238, + 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, + 384, 0, 0, 0, 0, 0, 0, 332, 0, 328, + 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 329, 67, + 68, 0, 0, 0, 0, 0, 70, 72, 74, 0, + 0, 380, 0, 80, 0, 0, 0, 0, 277, 24, + 0, 0, 0, 0, 0, 361, 0, 0, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 383, 0, - 0, 0, 0, 0, 0, 331, 0, 327, 0, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 328, 67, 68, 0, - 0, 0, 0, 0, 70, 72, 74, 0, 0, 379, - 0, 80, 0, 0, 0, 0, 276, 24, 0, 0, - 0, 0, 0, 360, 0, 0, 93, 93, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 352, 0, - 98, 0, 0, 0, 0, 0, 0, 239, 0, 0, - 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 194, 223, 0, 0, 0, 149, 0, 0, 243, 0, - 153, 152, 252, 0, 30, 31, 0, 0, 0, 376, - 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, - 0, 163, 333, 162, 0, 0, 0, 0, 346, 0, - 287, 308, 294, 315, 295, 316, 296, 317, 393, 389, - 336, 388, 0, 57, 0, 0, 0, 0, 65, 0, - 0, 0, 377, 0, 0, 0, 0, 26, 27, 0, - 0, 95, 0, 359, 0, 0, 0, 0, 0, 99, - 0, 0, 116, 117, 0, 0, 101, 124, 353, 0, - 0, 0, 91, 0, 238, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 165, 0, 0, 0, 0, 137, - 0, 204, 0, 206, 0, 208, 0, 348, 0, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 0, 0, 0, 83, 0, 0, - 0, 0, 0, 0, 335, 0, 38, 0, 0, 0, - 0, 0, 40, 0, 0, 0, 77, 0, 0, 78, - 0, 380, 139, 140, 141, 142, 0, 0, 368, 0, - 94, 102, 103, 107, 0, 0, 118, 0, 0, 240, - 111, 0, 0, 231, 123, 0, 0, 0, 0, 108, - 0, 119, 125, 0, 0, 0, 0, 345, 0, 344, - 0, 0, 195, 0, 0, 196, 0, 0, 197, 0, - 0, 0, 0, 0, 0, 0, 148, 0, 0, 147, - 0, 0, 143, 0, 0, 0, 0, 374, 0, 176, - 175, 0, 0, 0, 384, 0, 0, 0, 0, 43, - 0, 0, 0, 347, 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, - 224, 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, 378, 0, - 246, 247, 248, 249, 115, 0, 0, 0, 0, 0, - 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 189, 0, 0, 0, 0, 0, - 373, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 79, 0, 0, 0, 0, 129, 0, 210, 0, - 0, 212, 0, 0, 214, 0, 0, 0, 225, 0, - 185, 0, 137, 0, 0, 0, 106, 86, 253, 254, - 255, 256, 0, 47, 0, 53, 0, 0, 92, 120, - 245, 342, 198, 0, 0, 205, 199, 0, 0, 207, - 200, 0, 0, 209, 0, 0, 0, 191, 0, 146, - 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, - 218, 0, 220, 226, 228, 190, 186, 0, 0, 0, - 0, 44, 0, 51, 0, 0, 0, 201, 0, 0, - 202, 0, 0, 203, 0, 0, 150, 0, 144, 0, - 45, 0, 0, 170, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 0, 211, 0, 213, 0, - 215, 0, 145, 46, 48, 0, 49, 0, 0, 0, - 0, 0, 0, 54, 217, 219, 221, 50, 52 + 353, 0, 98, 0, 0, 0, 0, 0, 0, 240, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 195, 224, 0, 0, 0, 149, 0, 0, + 244, 0, 153, 152, 253, 0, 30, 31, 0, 0, + 0, 377, 0, 0, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 163, 334, 162, 0, 0, 0, 0, + 347, 0, 288, 309, 295, 316, 296, 317, 297, 318, + 394, 390, 337, 389, 0, 57, 0, 0, 0, 0, + 65, 0, 0, 0, 378, 0, 0, 0, 0, 26, + 27, 0, 0, 95, 0, 360, 0, 0, 0, 0, + 0, 99, 0, 0, 116, 117, 0, 0, 101, 124, + 354, 0, 0, 0, 91, 0, 239, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, + 0, 137, 0, 205, 0, 207, 0, 209, 0, 349, + 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 104, 105, 0, 0, 0, 0, 83, + 0, 0, 0, 0, 0, 0, 336, 0, 38, 0, + 0, 0, 0, 0, 40, 0, 0, 0, 77, 0, + 0, 78, 0, 381, 139, 140, 141, 142, 0, 0, + 369, 0, 94, 102, 103, 107, 0, 0, 118, 0, + 0, 241, 111, 0, 0, 232, 123, 0, 0, 0, + 0, 108, 0, 119, 125, 0, 0, 0, 0, 346, + 0, 345, 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, 375, + 0, 177, 176, 0, 0, 0, 385, 0, 0, 0, + 0, 43, 0, 0, 0, 348, 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, + 379, 0, 247, 248, 249, 250, 115, 0, 0, 0, + 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 230, 0, 0, 0, 190, 0, 0, 0, + 0, 0, 374, 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, + 254, 255, 256, 257, 0, 47, 0, 53, 0, 0, + 92, 120, 246, 343, 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, 229, 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 70, 725, 71, 72, 448, 1065, 1071, - 646, 828, 1220, 1369, 647, 1333, 1395, 648, 1371, 649, - 650, 832, 142, 244, 73, 763, 1102, 996, 517, 375, - 376, 377, 378, 344, 312, 313, 76, 77, 78, 79, - 80, 81, 345, 792, 1291, 1347, 599, 1123, 1126, 1129, - 1313, 1317, 1321, 1358, 1361, 1364, 788, 789, 896, 760, - 573, 607, 83, 84, 85, 86, 87, 362, 145, 388, - 195, 957, 958, 371, 364, 564, 224, 716, 860, 439, - 440 + -1, 2, 3, 71, 727, 72, 73, 450, 1067, 1073, + 648, 830, 1222, 1371, 649, 1335, 1397, 650, 1373, 651, + 652, 834, 143, 246, 74, 765, 1104, 998, 519, 377, + 378, 379, 380, 346, 314, 315, 77, 78, 79, 80, + 81, 82, 347, 794, 1293, 1349, 601, 1125, 1128, 1131, + 1315, 1319, 1323, 1360, 1363, 1366, 790, 791, 898, 762, + 575, 609, 84, 85, 86, 87, 88, 364, 146, 390, + 197, 959, 960, 373, 366, 566, 226, 718, 862, 441, + 442 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1154 +#define YYPACT_NINF -1149 static const yytype_int16 yypact[] = { - 3533, 29, 60, 3642, -1154, -1154, 1757, 30, -25, -65, - 26, 85, 95, 118, -104, -1, 39, -59, 50, 68, - -61, 84, 93, 117, 145, 274, 141, 279, 287, 136, - 233, 332, 444, 62, 207, 308, 216, -22, -22, 221, - 457, 38, 324, 327, 357, 14, 40, 358, 376, 406, - 407, 275, 276, 295, 15, 27, -1154, 296, -1154, 442, - 317, -1154, 466, 467, 16, 23, 330, 334, 339, 343, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, 22, - 378, 291, -1154, -1154, -1154, 94, 147, 219, 323, 369, - 380, 381, 388, 422, 469, 484, 487, 493, 498, 504, - 519, 555, 584, 596, 606, 607, 346, 404, 423, 430, - -1154, 556, 431, 437, 445, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, 3353, 3353, 3353, -1154, -1154, 3353, 2948, 5, - 594, 524, 3353, 617, 990, -1154, 637, 664, 3353, 666, - -1154, 3353, -1154, -1154, -1154, 3353, 3279, 3353, 3353, 478, - 3353, 3279, 3353, 3353, 530, 3279, 3353, 3353, 2192, 533, - 459, -1154, 547, 551, 1906, 1906, 1906, 554, -1154, -1154, - -1154, -1154, 559, 562, 567, 2192, 3353, 714, 2192, -22, - -22, -22, 3353, 3353, -62, -1154, -26, -22, 580, 581, - 608, 3136, 67, -93, 599, 612, 1906, 2192, 623, 35, - 614, -1154, 777, -1154, 627, 648, 642, 654, 800, 3353, - 3353, 3353, 677, 3353, 675, 729, 3353, 3353, -1154, 3353, - 839, -1154, 856, -1154, 861, -1154, 79, 79, 79, 79, - 687, 3353, 883, 751, -1154, -1154, -1154, 904, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 79, 79, 79, 79, 3353, 79, 79, 79, 689, 771, - 771, 771, 5908, 45, 3279, 3067, 335, 782, 925, 787, - 760, -1154, 798, 3717, 1569, -1154, -1154, 3353, 3353, 3353, - 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353, - 3353, 3353, -1154, -1154, 1609, -45, 4470, 5929, 639, 25, - 946, 950, 954, 3279, -1154, -1154, 3046, -1154, 605, 5950, - 5971, 3353, 5992, 616, 6013, 6034, 3353, 620, 6055, 6076, - 2335, 1576, 3090, 959, -1154, 3353, 3353, 3353, 3353, -1154, - -1154, 963, 979, 979, 3353, 843, 845, 846, 847, 3353, - 3353, 3353, 985, 4390, 848, 991, 72, -1154, -1154, 4496, - 4522, -22, -22, 524, 524, 150, 3353, 3353, 3353, 3136, - 3136, 3353, 3717, 160, -1154, 3353, 3353, 3353, 3353, 993, - 994, 3353, 992, -1154, 3353, 3353, 1265, -1154, 3279, 3279, - 3353, 3353, -1154, 6097, 6118, 6139, 905, 4548, -1154, 852, - 3129, 6160, 5172, -1154, -1154, 1319, -1154, 1794, 636, 860, - -1154, 863, 864, 865, 3353, 5195, 164, 3353, 6, -1154, - 6181, 5218, 6202, 5241, 6223, 5264, 6244, 5287, 6265, 5310, - 6286, 5333, 6307, 5356, 6328, 5379, 6349, 5402, 6370, 5425, - 6391, 5448, 4574, 4600, 6412, 5471, 6433, 5494, 6454, 5517, - 6475, 5540, 6496, 5563, 6517, 5586, 4626, 4652, 4678, 4704, - 4730, 4756, -15, 862, 866, 868, 1683, 870, 869, 871, - 3353, -1154, 2192, 2192, 641, 331, 291, 3353, 1000, 1011, - 21, 876, -1154, -80, -47, -31, -5, -1154, -1154, 3273, - 742, 809, 723, 723, 96, 96, 96, 96, 73, 73, - 771, 771, 771, 771, -1154, 2, 3279, 3353, 1009, 3097, - -1154, 3353, -1154, -1154, -1154, 771, -1154, 3353, 3279, 3279, - 918, 1017, 1018, 6538, 1019, 927, 1021, 1022, 6559, 931, - 1027, 1028, 3279, -1154, 645, 2478, 3353, 6580, 3532, 6601, - 6622, 3353, 2192, 1032, 1031, 6643, 3416, 3416, 3416, 3416, - 6664, 6685, 6706, 2192, 3279, 891, -1154, -22, 3353, 3353, - -1154, -1154, 888, 890, 3353, 4782, 4808, 4834, 4444, -14, - -22, 1944, 6727, 3746, 6748, 6769, 3353, 1037, 3353, 6790, - -1154, 5609, 5632, -1154, 646, 653, 5655, 5678, 1038, 1039, - 1040, 900, 3353, 2087, 3353, 3353, -1154, 0, -1154, -1154, - 3353, 1045, 1043, 1044, 1046, 1047, 5701, 513, -1154, 3774, - -1154, 911, 912, 906, -1154, 1052, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, 3353, 3353, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, 3353, 3353, 3353, - 3353, 3353, 3353, -1154, 3279, 79, -1154, -1154, -1154, 3353, - -1154, 79, 5724, 1053, 1054, 916, -1154, 9, 3353, 1058, - 1059, 2437, -1154, 1060, 922, 15, 1063, -1154, 3279, 3279, - 3279, 3279, 3353, -1154, 939, 79, 53, 4860, -22, -1154, - 3279, 3802, 3346, 771, -1154, 3046, -1154, 1024, 2192, 2192, - 1064, 2192, 780, 2192, 2192, 1066, 1020, 2192, 2192, 688, - -1154, 3279, 2471, 1070, 1071, 1072, 1073, 1110, -1154, -1154, - 1076, -1154, 1077, 938, 7021, -1154, 940, 941, 942, 1081, - 1082, 1083, 1085, 694, 1088, 248, 4886, 4912, -1154, -1154, - 3830, -22, -22, -22, 1090, 1091, 945, 955, -29, -1154, - 310, -1154, -14, 1093, 1092, 1094, 1095, 7021, -1154, 2579, - 956, 1099, 1100, 1102, 1057, 1104, 1105, 2192, 2192, 2192, - 1109, 4938, -1154, 3380, 763, 1131, 1132, 5747, -1154, 987, - 988, 997, 998, 1108, 1137, -1154, 1144, -1154, 999, 3353, - 3353, 2192, 1001, -1154, 6811, 5770, 6832, 5793, 6853, 5816, - 6874, 5839, 91, 1006, 6895, 1008, -74, -1154, -1154, 103, - 416, 1007, 1149, 2614, -1154, -1154, -1154, 15, 3353, -1154, - 698, -1154, 699, 713, 734, 757, 7021, -1154, 1151, 10, - 3353, 44, 765, -1154, 3353, 1010, 1098, 1098, 2192, 1154, - 1012, 1013, 1156, 1160, 2192, 1023, 1162, 1164, -1154, 768, - -1154, 1166, 2192, 2192, 2192, 1168, 1169, -1154, 2192, 1171, - 1173, 1175, 1176, 2192, 2192, 2192, -1154, 1178, 328, 3353, - 3353, 3353, 1025, 206, 214, 235, 1042, -1154, 2192, 3353, - -1154, -1154, 3136, -18, 2049, -1154, 1041, 2621, -1154, 3279, - -1154, -1154, -1154, 1048, -1154, -1154, 1184, 1189, 1101, -1154, - 3353, 3353, 3353, -1154, 1190, 1191, 1055, 2192, 2192, 2192, - 2192, -1154, 164, -1154, 3353, 4964, 4990, 769, -1154, 3353, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, 2192, 291, 3353, 1195, 1198, 21, -1154, 1199, - 5862, 15, -1154, 1200, 1201, 1202, 1203, -1154, -1154, 79, - 5016, -1154, 1065, 7021, 3353, -22, 1204, 1205, 1207, -1154, - 3353, 3353, -1154, -1154, 1208, 3353, -1154, -1154, -1154, 1213, - 1214, 1215, 1119, 3353, -1154, 1216, 2192, 2192, 2192, 2192, - 1218, 835, 1219, 3353, -1154, 3416, 3858, 6916, 3662, 524, - -22, 1220, -22, 1221, -22, 1222, 3353, 299, 1106, 6937, - 3886, 315, -1154, 1225, 1418, 1226, -22, 1418, 1244, 772, - 3353, -1154, -1154, 2192, 3690, 684, 6958, -1154, 2907, 1247, - 1107, 1112, 1113, 1114, -1154, 154, 7021, 3353, 3353, 2192, - 1103, 775, 7021, 1246, 1249, 2722, -1154, 1251, 1253, -1154, - 1117, -1154, -1154, -1154, -1154, -1154, 1254, 3353, -1154, 3914, - 209, -1154, -1154, -1154, 3942, 3970, -1154, 3998, 1261, -1154, - -1154, 1217, 1262, 7021, -1154, 1263, 1264, 1266, 1268, -1154, - 1120, -1154, -1154, 4417, 2757, 1269, 1129, -1154, 3353, -1154, - 1130, 347, -1154, 1133, 350, -1154, 1134, 354, -1154, 1135, - 5885, 1275, 2192, 1281, 1139, 3353, -1154, 2764, 373, -1154, - 386, 412, -1154, 1285, 4026, 1197, 3353, -1154, 3353, -1154, - -1154, 3279, 2858, 1288, -1154, 2192, 2192, 2192, 2192, -1154, - 3353, 5042, 5068, -1154, 2192, 3353, 1290, -1154, -1154, -1154, - 15, -1154, 1206, -1154, 5094, 1293, 1294, 1296, 1297, 1300, - 1157, -1154, -1154, -1154, -1154, -1154, 2192, 3279, -1154, -1154, - 524, 3718, -1154, 3136, -14, 3136, -14, 3136, -14, 1303, - -1154, 776, 2192, -1154, 4054, -22, 3279, -22, -1154, -1154, - 3353, 4082, 4110, 779, -1154, -1154, 1158, 1172, 1181, 1183, - 1186, 7021, 3353, 3353, 804, 7021, -1154, 1321, -1154, 3353, - -1154, -1154, -1154, -1154, -1154, 3353, 808, 811, 1194, 3353, - -1154, 4138, 419, 225, 4166, 544, 269, 4194, 570, 428, - -1154, 2192, 1335, 1280, 2230, 1209, 573, 812, 575, 2900, - -1154, -1154, 1344, 1345, 1346, 1347, 1348, 3353, 6979, 5120, - 31, -1154, 5146, 4222, 1349, 1350, -1154, 4250, 1355, 3353, - 1356, 1357, 3353, 1358, 1369, 3353, 1372, 1229, -1154, 3353, - -1154, -14, -1154, 3279, 1379, 2764, -1154, -1154, -1154, -1154, - -1154, -1154, 815, -1154, 3353, -1154, 2192, 3353, -1154, -1154, - -1154, -1154, -1154, 1235, 4278, -1154, -1154, 1236, 4306, -1154, - -1154, 1238, 4334, -1154, 1384, 2941, 537, 2373, 819, -1154, - 604, 823, 1385, 1242, 7000, 824, 4362, -14, 1388, -14, - 1390, -14, 1391, -1154, -1154, -1154, -1154, -14, 1392, 3279, - 1393, -1154, 79, -1154, 1250, 1394, 569, -1154, 1252, 574, - -1154, 1255, 589, -1154, 1256, 592, -1154, 827, -1154, 828, - -1154, 1267, 2192, -1154, 1396, -14, 1398, -14, 1399, -14, - -1154, 1408, 79, 1409, 79, 832, -1154, 613, -1154, 650, - -1154, 652, -1154, -1154, -1154, 833, -1154, 1410, 1413, 1414, - 1417, 79, 1419, -1154, -1154, -1154, -1154, -1154, -1154 + 3496, 7, 9, 3606, -1149, -1149, 1794, 35, 12, -115, + 22, 65, 75, 115, 134, -93, -1, 51, -30, 64, + 90, -36, 94, 162, 98, 114, 120, 184, 168, 280, + 183, 317, 894, 243, 81, 210, 310, 248, 196, 196, + 256, 335, 11, 356, 359, 369, 17, 39, 372, 447, + 451, 465, 346, 350, 360, -2, 30, -1149, 361, -1149, + 475, 378, -1149, 515, 532, 24, 26, 397, 401, 402, + 408, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + 23, 387, 596, -1149, -1149, -1149, -109, -50, 150, 239, + 242, 273, 278, 305, 309, 328, 353, 370, 373, 412, + 423, 477, 526, 530, 535, 547, 556, 415, 418, 419, + 426, -1149, 569, 438, 446, 449, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, 3354, 3354, 3354, -1149, -1149, 3354, 2883, + 13, 593, 16, 3354, 594, 764, -1149, 599, 602, 3354, + 611, -1149, 3354, -1149, -1149, -1149, -1149, 3354, 3279, 3354, + 3354, 500, 3354, 3279, 3354, 3354, 503, 3279, 3354, 3354, + 2232, 504, 478, -1149, 509, 520, 1944, 1944, 1944, 534, + -1149, -1149, -1149, -1149, 551, 555, 562, 2232, 3354, 627, + 2232, 196, 196, 196, 3354, 3354, -78, -1149, -67, 196, + 508, 514, 567, 3135, -34, -91, 575, 588, 1944, 2232, + 592, 40, 598, -1149, 734, -1149, 603, 606, 607, 615, + 740, 3354, 3354, 3354, 624, 3354, 622, 678, 3354, 3354, + -1149, 3354, 774, -1149, 791, -1149, 862, -1149, 485, 485, + 485, 485, 660, 3354, 828, 719, -1149, -1149, -1149, 866, + 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, + 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, + 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, + 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, + 3354, 3354, 485, 485, 485, 485, 3354, 485, 485, 485, + 770, 716, 716, 716, 5868, 5, 3279, 5109, 336, 729, + 897, 763, 790, -1149, 773, 3682, 1111, -1149, -1149, 3354, + 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, + 3354, 3354, 3354, 3354, -1149, -1149, 1451, 143, 4407, 5889, + 715, 27, 911, 948, 952, 3279, -1149, -1149, 3044, -1149, + 486, 5910, 5931, 3354, 5952, 581, 5973, 5994, 3354, 616, + 6015, 6036, 2376, 1643, 3090, 961, -1149, 3354, 3354, 3354, + 3354, -1149, -1149, 965, 974, 974, 3354, 843, 865, 867, + 868, 3354, 3354, 3354, 992, 4327, 869, 1005, 67, -1149, + -1149, 4433, 4459, 196, 196, 16, 16, 76, 3354, 3354, + 3354, 3135, 3135, 3354, 3682, 223, -1149, 3354, 3354, 3354, + 3354, 1007, 1009, 3354, 1011, -1149, 3354, 3354, 786, -1149, + 3279, 3279, 3354, 3354, -1149, 6057, 6078, 6099, 920, 4485, + -1149, 870, 3128, 6120, 5132, -1149, -1149, 1682, -1149, 1827, + 655, 874, -1149, 877, 881, 882, 3354, 5155, 225, 3354, + 15, -1149, 6141, 5178, 6162, 5201, 6183, 5224, 6204, 5247, + 6225, 5270, 6246, 5293, 6267, 5316, 6288, 5339, 6309, 5362, + 6330, 5385, 6351, 5408, 4511, 4537, 6372, 5431, 6393, 5454, + 6414, 5477, 6435, 5500, 6456, 5523, 6477, 5546, 4563, 4589, + 4615, 4641, 4667, 4693, 155, 878, 884, 885, 1475, 886, + 887, 888, 3354, -1149, 2232, 2232, 652, 187, 596, 3354, + 1030, 1034, 19, 893, -1149, 47, 48, -35, 53, -1149, + -1149, 3273, 991, 1182, 796, 796, 738, 738, 738, 738, + -46, -46, 716, 716, 716, 716, -1149, 4, 3279, 3354, + 1035, 3096, -1149, 3354, -1149, -1149, -1149, 716, -1149, 3354, + 3279, 3279, 943, 1038, 1040, 6498, 1041, 949, 1042, 1044, + 6519, 951, 1046, 1048, 3279, -1149, 702, 2520, 3354, 6540, + 3385, 6561, 6582, 3354, 2232, 1052, 1051, 6603, 1339, 1339, + 1339, 1339, 6624, 6645, 6666, 2232, 3279, 909, -1149, 196, + 3354, 3354, -1149, -1149, 906, 907, 3354, 4719, 4745, 4771, + 4381, 156, 196, 1983, 6687, 3495, 6708, 6729, 3354, 1055, + 3354, 6750, -1149, 5569, 5592, -1149, 708, 712, 5615, 5638, + 1058, 1059, 1060, 913, 3354, 2127, 3354, 3354, -1149, 0, + -1149, -1149, 3354, 1065, 1063, 1064, 1066, 1068, 5661, 71, + -1149, 3711, -1149, 927, 931, 926, -1149, 1073, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, 3354, 3354, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, 3354, + 3354, 3354, 3354, 3354, 3354, -1149, 3279, 485, -1149, -1149, + -1149, 3354, -1149, 485, 5684, 1074, 1075, 934, -1149, 49, + 3354, 1078, 1079, 1715, -1149, 1080, 939, -2, 1082, -1149, + 3279, 3279, 3279, 3279, 3354, -1149, 957, 485, 189, 4797, + 196, -1149, 3279, 3739, 3306, 716, -1149, 3044, -1149, 1037, + 2232, 2232, 1084, 2232, 753, 2232, 2232, 1086, 1039, 2232, + 2232, 735, -1149, 3279, 2478, 1089, 1091, 1092, 1093, 3063, + -1149, -1149, 1095, -1149, 1096, 956, 6981, -1149, 958, 959, + 962, 1100, 1102, 1103, 1105, 736, 1108, 270, 4823, 4849, + -1149, -1149, 3767, 196, 196, 196, 1109, 1110, 963, 973, + -29, -1149, 306, -1149, 156, 1130, 1132, 1133, 1134, 6981, + -1149, 2513, 993, 1137, 1144, 1145, 1099, 1147, 1148, 2232, + 2232, 2232, 1151, 4875, -1149, 3347, 685, 1153, 1154, 5707, + -1149, 1008, 1010, 1012, 1013, 1157, 1155, -1149, 1160, -1149, + 1023, 3354, 3354, 2232, 1018, -1149, 6771, 5730, 6792, 5753, + 6813, 5776, 6834, 5799, 191, 1026, 6855, 1027, -23, -1149, + -1149, 107, 343, 1025, 1168, 2622, -1149, -1149, -1149, -2, + 3354, -1149, 758, -1149, 769, 792, 795, 801, 6981, -1149, + 1170, 10, 3354, 45, 805, -1149, 3354, 1028, 1116, 1116, + 2232, 1172, 1032, 1033, 1173, 1176, 2232, 1045, 1180, 1181, + -1149, 809, -1149, 1185, 2232, 2232, 2232, 1188, 1192, -1149, + 2232, 1187, 1193, 1194, 1196, 2232, 2232, 2232, -1149, 1197, + 236, 3354, 3354, 3354, 1047, 151, 218, 230, 1061, -1149, + 2232, 3354, -1149, -1149, 3135, -18, 2088, -1149, 1053, 2664, + -1149, 3279, -1149, -1149, -1149, 1057, -1149, -1149, 1201, 1204, + 1114, -1149, 3354, 3354, 3354, -1149, 1206, 1207, 1067, 2232, + 2232, 2232, 2232, -1149, 225, -1149, 3354, 4901, 4927, 810, + -1149, 3354, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, 2232, 596, 3354, 1209, 1216, 19, + -1149, 1215, 5822, -2, -1149, 1217, 1218, 1220, 1221, -1149, + -1149, 485, 4953, -1149, 1081, 6981, 3354, 196, 1222, 1224, + 1227, -1149, 3354, 3354, -1149, -1149, 1228, 3354, -1149, -1149, + -1149, 1208, 1246, 1247, 1121, 3354, -1149, 1248, 2232, 2232, + 2232, 2232, 1250, 917, 1251, 3354, -1149, 1339, 3795, 6876, + 3627, 16, 196, 1252, 196, 1253, 196, 1254, 3354, 300, + 1117, 6897, 3823, 311, -1149, 1259, 1482, 1263, 196, 1482, + 1266, 813, 3354, -1149, -1149, 2232, 3655, 656, 6918, -1149, + 2952, 1269, 1123, 1125, 1126, 1128, -1149, 200, 6981, 3354, + 3354, 2232, 1131, 814, 6981, 1274, 1276, 2657, -1149, 1277, + 1280, -1149, 1138, -1149, -1149, -1149, -1149, -1149, 1282, 3354, + -1149, 3851, 394, -1149, -1149, -1149, 3879, 3907, -1149, 3935, + 1285, -1149, -1149, 1241, 1287, 6981, -1149, 1288, 1290, 1292, + 1295, -1149, 1150, -1149, -1149, 4354, 2801, 1298, 1156, -1149, + 3354, -1149, 1152, 348, -1149, 1158, 375, -1149, 1175, 405, + -1149, 1177, 5845, 1300, 2232, 1315, 1183, 3354, -1149, 2808, + 414, -1149, 492, 570, -1149, 1318, 3963, 1232, 3354, -1149, + 3354, -1149, -1149, 3279, 2878, 1327, -1149, 2232, 2232, 2232, + 2232, -1149, 3354, 4979, 5005, -1149, 2232, 3354, 1328, -1149, + -1149, -1149, -2, -1149, 1237, -1149, 5031, 1331, 1333, 1335, + 1340, 1341, 1199, -1149, -1149, -1149, -1149, -1149, 2232, 3279, + -1149, -1149, 16, 3683, -1149, 3135, 156, 3135, 156, 3135, + 156, 1346, -1149, 818, 2232, -1149, 3991, 196, 3279, 196, + -1149, -1149, 3354, 4019, 4047, 822, -1149, -1149, 1229, 1230, + 1231, 1233, 1235, 6981, 3354, 3354, 825, 6981, -1149, 1368, + -1149, 3354, -1149, -1149, -1149, -1149, -1149, 3354, 826, 829, + 1236, 3354, -1149, 4075, 577, 260, 4103, 587, 424, 4131, + 608, 429, -1149, 2232, 1374, 1317, 2271, 1238, 617, 833, + 621, 2912, -1149, -1149, 1382, 1385, 1386, 1387, 1389, 3354, + 6939, 5057, 31, -1149, 5083, 4159, 1390, 1392, -1149, 4187, + 1393, 3354, 1394, 1396, 3354, 1397, 1398, 3354, 1399, 1255, + -1149, 3354, -1149, 156, -1149, 3279, 1400, 2808, -1149, -1149, + -1149, -1149, -1149, -1149, 834, -1149, 3354, -1149, 2232, 3354, + -1149, -1149, -1149, -1149, -1149, 1257, 4215, -1149, -1149, 1258, + 4243, -1149, -1149, 1260, 4271, -1149, 1405, 2945, 470, 2415, + 838, -1149, 692, 841, 1407, 1262, 6960, 842, 4299, 156, + 1412, 156, 1413, 156, 1414, -1149, -1149, -1149, -1149, 156, + 1416, 3279, 1417, -1149, 485, -1149, 1272, 1419, 525, -1149, + 1278, 528, -1149, 1279, 574, -1149, 1281, 578, -1149, 847, + -1149, 851, -1149, 1283, 2232, -1149, 1423, 156, 1426, 156, + 1428, 156, -1149, 1430, 485, 1431, 485, 854, -1149, 583, + -1149, 657, -1149, 693, -1149, -1149, -1149, 855, -1149, 1432, + 1433, 1434, 1436, 485, 1437, -1149, -1149, -1149, -1149, -1149, + -1149 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1154, -1154, -1154, -1154, 557, -1154, -1154, -1154, -1154, 157, - -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -305, -3, -1154, -161, -1154, 553, 1428, -1154, - -1154, -1154, -1154, 3, -389, -199, -1154, -1154, -1154, -1154, - -1154, -1154, 1450, -1154, -1154, -1154, -1154, -1154, -1154, -1154, - -1154, -1154, -1154, -1154, -1154, -1154, -730, -727, -1154, -1154, - 1084, -1154, -1154, -1154, -1154, -1154, -1154, -6, -1154, 100, - -1154, -1153, 601, -119, 28, 43, -695, 477, -1154, -215, + -1149, -1149, -1149, -1149, 573, -1149, -1149, -1149, -1149, 176, + -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -300, -3, -1149, -201, -1149, 579, 1443, -1149, + -1149, -1149, -1149, 3, -391, -202, -1149, -1149, -1149, -1149, + -1149, -1149, 1445, -1149, -1149, -1149, -1149, -1149, -1149, -1149, + -1149, -1149, -1149, -1149, -1149, -1149, -724, -717, -1149, -1149, + 1085, -1149, -1149, -1149, -1149, -1149, -1149, -6, -1149, 100, + -1149, -1148, 521, -114, 28, 43, -695, 480, -1149, -215, 8 }; @@ -1455,1591 +1459,1584 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 144, 507, 402, 143, 592, 593, 75, 815, 723, 306, - 640, 1224, 416, 850, 146, 164, 988, 159, 209, 222, - 859, 232, 441, 442, 443, 714, 240, 148, 234, 159, - 540, 225, 150, 1236, 435, 4, 437, 1305, 784, 412, - 155, 413, 203, 147, 212, 164, 213, 156, 785, 784, - 991, 405, 502, 784, 786, 787, 372, 373, 406, 785, - 5, 921, 923, 785, 155, 786, 787, 135, 136, 786, - 787, 718, 391, 392, 824, 492, 493, 494, 495, 149, - 497, 498, 499, 438, 246, 160, 214, 409, 204, 393, - 165, 152, 161, 641, 642, 643, 644, 160, 205, 247, - 535, 153, 307, 308, 719, 536, 851, 852, 391, 392, - 706, 185, 190, 191, 186, 116, 117, 118, 119, 210, - 720, 120, 192, 920, 154, 394, 299, 300, 301, 193, - 693, 302, 305, 724, 1042, 694, 314, 194, 196, 167, - 202, 724, 334, 157, 311, 336, 721, 171, 816, 337, - 346, 349, 350, 1335, 352, 346, 354, 355, 645, 346, - 358, 359, 979, 135, 136, 211, 223, 233, 241, 503, - 242, 226, 715, 168, 235, 243, 541, 151, 391, 392, - 383, 414, 1306, 158, 347, 174, 389, 390, 175, 347, - 176, 123, 124, 347, 162, 390, 921, 169, 869, 348, - 708, 391, 392, 549, 353, 601, 391, 392, 357, 328, - 329, 330, 163, 423, 424, 425, 331, 427, 404, 1385, - 430, 431, 587, 432, 128, 129, 130, 131, 166, 623, - 326, 327, 328, 329, 330, 445, 968, 167, 248, 331, - 249, 549, 450, 451, 452, 453, 454, 455, 456, 457, + 145, 404, 224, 144, 594, 595, 76, 817, 509, 5, + 725, 418, 504, 4, 147, 205, 990, 308, 1226, 642, + 312, 211, 861, 716, 443, 444, 445, 242, 151, 234, + 150, 236, 542, 437, 227, 439, 250, 1307, 251, 786, + 1238, 166, 166, 214, 414, 215, 415, 161, 148, 787, + 786, 993, 157, 852, 407, 788, 789, 393, 394, 158, + 787, 408, 206, 374, 375, 149, 788, 789, 393, 394, + 925, 153, 207, 923, 395, 440, 248, 494, 495, 496, + 497, 154, 499, 500, 501, 396, 216, 37, 38, 39, + 40, 330, 331, 332, 411, 252, 45, 253, 333, 48, + 249, 393, 394, 643, 644, 645, 646, 117, 118, 119, + 120, 309, 310, 121, 708, 162, 167, 722, 406, 136, + 137, 155, 163, 212, 922, 161, 826, 301, 302, 303, + 505, 187, 304, 307, 188, 1044, 726, 316, 196, 198, + 156, 204, 726, 336, 159, 313, 338, 853, 854, 818, + 225, 339, 348, 351, 352, 170, 354, 348, 356, 357, + 1337, 348, 360, 361, 981, 136, 137, 171, 647, 213, + 243, 717, 244, 172, 152, 228, 235, 245, 237, 543, + 393, 394, 385, 1308, 124, 125, 349, 416, 391, 392, + 173, 349, 157, 162, 708, 349, 160, 392, 169, 720, + 721, 350, 393, 394, 603, 723, 355, 710, 923, 164, + 359, 393, 394, 136, 137, 425, 426, 427, 589, 429, + 826, 174, 432, 433, 786, 434, 1387, 596, 625, 129, + 130, 131, 132, 176, 787, 165, 177, 447, 178, 168, + 788, 789, 1026, 1027, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 391, 392, 1081, 177, 496, 386, - 387, 250, 784, 251, 391, 392, 246, 395, 346, 1159, - 594, 403, 785, 508, 1160, 135, 136, 547, 786, 787, - 600, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 170, 116, 117, 118, - 119, 172, 347, 120, 1024, 1025, 784, 545, 706, 173, - 391, 392, 506, 391, 392, 553, 785, 504, 391, 392, - 558, 187, 786, 787, 545, 346, 1030, 188, 1031, 567, - 568, 569, 570, 252, 1032, 253, 1033, 189, 575, 391, - 392, 546, 197, 580, 581, 582, 206, 1280, 178, 207, - 216, 179, 391, 392, 180, 1034, 181, 1035, 546, 347, - 595, 596, 597, 299, 300, 598, 311, 311, 909, 602, - 603, 604, 605, 123, 124, 609, 208, 215, 611, 612, - 217, 218, 346, 346, 616, 617, 766, 767, 768, 219, - 220, 1283, 826, 973, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 565, 329, 330, 636, 221, - 227, 639, 331, 638, 391, 392, 347, 347, 228, 391, - 392, 1131, 128, 129, 130, 131, 128, 129, 130, 131, - 922, 614, 615, 229, 1243, 1135, 1246, 254, 1249, 255, - 230, 231, 135, 136, 236, 1227, 135, 136, 237, 707, - 843, 391, 392, 238, 391, 392, 845, 239, 391, 392, - 290, 590, 591, 182, 702, 784, 183, 1193, 184, 387, - 1195, 711, 709, 198, 1197, 785, 199, 391, 392, 200, - 868, 786, 787, 256, 710, 257, 921, 438, 246, 921, - 391, 392, 921, 1205, 258, 260, 259, 261, 310, 245, - 346, 727, 262, 702, 263, 731, 1206, 128, 129, 130, - 131, 732, 733, 735, 972, 974, 391, 392, 291, 116, - 117, 118, 119, 391, 392, 120, 346, 135, 136, 733, - 752, 1326, 1207, 294, 347, 757, 264, 292, 265, 1279, - 764, 764, 764, 764, 293, 295, 734, 736, 346, 726, - 1286, 296, 776, 777, 765, 765, 765, 765, 780, 297, - 347, 190, 191, 734, 36, 37, 38, 39, 309, 921, - 797, 192, 799, 44, 784, 749, 47, 1356, 201, 1359, - 366, 1362, 347, 266, 785, 267, 811, 1365, 813, 814, - 786, 787, 351, 315, 817, 123, 124, 773, 268, 921, - 269, 270, 921, 271, 825, 921, 784, 272, 921, 273, - 1120, 784, 274, 332, 275, 1387, 785, 1389, 276, 1391, - 277, 785, 786, 787, 135, 136, 784, 786, 787, 784, - 921, 824, 921, 278, 921, 279, 785, 834, 835, 785, - 333, 335, 786, 787, 356, 786, 787, 365, 391, 392, - 784, 836, 837, 838, 839, 840, 841, 775, 346, 1345, - 785, 367, 1148, 844, 1282, 368, 786, 787, 374, 280, - 790, 281, 853, 379, 391, 392, 380, 391, 392, 391, - 392, 381, 346, 346, 346, 346, 866, 784, 384, 784, - 1285, 1374, 347, 1293, 346, 1295, 1376, 785, 282, 785, - 283, 396, 397, 786, 787, 786, 787, 842, 391, 392, - 284, 1378, 285, 407, 1380, 346, 347, 347, 347, 347, - 286, 288, 287, 289, 1349, 549, 408, 550, 347, 398, - 415, 862, 863, 864, 865, 1398, 549, 411, 555, 363, - 549, 942, 559, 872, 1086, 370, 370, 370, 418, 347, - 135, 136, 630, 417, 631, 539, 382, 242, 420, 385, - 141, 549, 243, 705, 889, 549, 549, 750, 803, 419, - 421, 1238, 1399, 549, 1400, 804, 422, 370, 410, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 955, 956, 426, 428, 331, 871, 429, - 135, 136, 880, 444, 881, 500, 1149, 242, 549, 1110, - 888, 1111, 243, 825, 549, 433, 907, 975, 981, 549, - 982, 983, 980, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 434, 549, 990, 984, 331, 436, 993, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 913, 914, 915, 549, 331, 985, 446, 317, 318, + 488, 489, 490, 491, 492, 493, 393, 394, 1083, 537, + 498, 388, 389, 184, 538, 254, 185, 255, 186, 397, + 348, 695, 1032, 405, 1033, 510, 696, 169, 549, 129, + 130, 131, 132, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 786, 136, + 137, 192, 193, 175, 349, 871, 709, 970, 787, 547, + 551, 194, 551, 508, 788, 789, 1161, 555, 195, 506, + 975, 1162, 560, 393, 394, 189, 547, 348, 393, 394, + 190, 569, 570, 571, 572, 393, 394, 136, 137, 1034, + 577, 1035, 179, 548, 602, 582, 583, 584, 768, 769, + 770, 1036, 200, 1037, 256, 201, 257, 258, 202, 259, + 548, 349, 597, 598, 599, 301, 302, 600, 313, 313, + 191, 604, 605, 606, 607, 393, 394, 611, 199, 208, + 613, 614, 209, 1282, 348, 348, 618, 619, 260, 210, + 261, 911, 217, 262, 828, 263, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 567, 331, 332, + 638, 393, 394, 641, 333, 640, 393, 394, 349, 349, + 264, 218, 265, 1133, 266, 219, 267, 924, 129, 130, + 131, 132, 1137, 616, 617, 129, 130, 131, 132, 220, + 192, 193, 1245, 268, 1248, 269, 1251, 1229, 136, 137, + 194, 230, 845, 393, 394, 136, 137, 203, 847, 440, + 248, 221, 786, 592, 593, 222, 704, 786, 270, 1195, + 271, 389, 787, 713, 711, 223, 229, 787, 788, 789, + 393, 394, 870, 788, 789, 272, 712, 273, 274, 232, + 275, 117, 118, 119, 120, 231, 1197, 121, 923, 393, + 394, 923, 348, 729, 923, 704, 233, 733, 786, 247, + 393, 394, 238, 734, 735, 737, 239, 240, 787, 393, + 394, 974, 976, 241, 788, 789, 1199, 276, 348, 277, + 292, 735, 754, 293, 294, 1207, 349, 759, 278, 1328, + 279, 295, 766, 766, 766, 766, 296, 1285, 736, 738, + 348, 728, 1288, 297, 778, 779, 767, 767, 767, 767, + 782, 298, 349, 786, 299, 736, 786, 311, 124, 125, + 317, 248, 799, 787, 801, 334, 787, 751, 335, 788, + 789, 923, 788, 789, 349, 1358, 337, 1361, 813, 1364, + 815, 816, 280, 1347, 281, 1367, 819, 393, 394, 775, + 368, 386, 117, 118, 119, 120, 827, 551, 121, 552, + 1122, 923, 786, 1208, 923, 353, 786, 923, 358, 367, + 923, 786, 787, 1389, 369, 1391, 787, 1393, 788, 789, + 398, 787, 788, 789, 1150, 370, 399, 788, 789, 836, + 837, 282, 923, 283, 923, 284, 923, 285, 1376, 376, + 286, 1378, 287, 838, 839, 840, 841, 842, 843, 777, + 348, 365, 288, 944, 289, 846, 381, 372, 372, 372, + 382, 290, 792, 291, 855, 393, 394, 383, 384, 124, + 125, 387, 393, 394, 348, 348, 348, 348, 868, 400, + 409, 1209, 393, 394, 349, 786, 348, 1380, 1281, 372, + 412, 1382, 551, 410, 557, 787, 1400, 413, 1284, 844, + 419, 788, 789, 393, 394, 417, 424, 348, 349, 349, + 349, 349, 393, 394, 422, 420, 393, 394, 421, 1287, + 349, 786, 423, 864, 865, 866, 867, 551, 1295, 561, + 318, 787, 1297, 428, 430, 874, 1088, 788, 789, 431, + 435, 349, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 891, 436, 7, 8, + 333, 1240, 632, 551, 633, 707, 882, 446, 883, 1151, + 1401, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 957, 958, 393, 394, 333, + 873, 945, 448, 515, 16, 17, 516, 19, 20, 517, + 22, 518, 24, 1351, 25, 827, 1402, 28, 29, 977, + 31, 32, 33, 551, 982, 752, 36, 136, 137, 551, + 333, 805, 541, 551, 244, 806, 992, 142, 438, 245, + 995, 449, 451, 328, 329, 330, 331, 332, 511, 52, + 53, 54, 333, 915, 916, 917, 551, 551, 890, 909, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 447, 1026, 1027, 1028, 331, 549, 943, 986, - 449, 141, 1037, 1039, 331, 549, 1040, 992, 549, 1069, - 1008, 1070, 549, 346, 1143, 1165, 1251, 1166, 1252, 549, - 509, 1262, 510, 511, 1054, 1055, 1056, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 1066, 1064, - 512, 542, 331, 1072, 1069, 543, 1270, 347, 1069, 544, - 1274, 549, 549, 1275, 1294, 1165, 566, 1332, 1075, 549, - 571, 1348, 1049, 549, 1069, 1350, 1354, 549, 1382, 1381, - 1383, 1074, 1069, 1401, 1397, 1402, 572, 576, 1089, 577, - 578, 579, 583, 585, 1094, 1095, 316, 586, 610, 1097, - 606, 608, 621, 624, 1254, 632, 712, 1103, 633, 634, - 635, 696, 695, 697, 700, 713, 728, 1113, 737, 1114, - 699, 701, 1041, 717, 738, 739, 741, 742, 743, 744, - 1130, 746, 311, 1115, 747, 748, 759, 761, 346, 774, - 778, 346, 779, 798, 1144, 807, 808, 809, 810, 818, - 819, 820, 1152, 821, 822, 829, 830, 831, 833, 847, - 848, 1161, 1162, 849, 854, 855, 1153, 857, 858, 861, - 867, 878, 347, 884, 885, 347, 875, 891, 892, 893, - 894, 1174, 897, 899, 898, 900, 901, 902, 903, 904, - 905, 906, 908, 1327, 916, 1090, 918, 917, 925, 919, - 924, 926, 927, 703, 704, 930, 931, 929, 932, 933, - 934, 935, 1191, 939, 951, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 1204, - 1121, 545, 1124, 331, 1127, 944, 945, 1370, 947, 948, - 1211, 952, 1212, 954, 1138, 346, 1140, 1141, 949, 950, - 953, 969, 959, 971, 1221, 976, 977, 987, 995, 1225, - 999, 994, 1002, 1000, 1001, 546, 1003, 1393, 1006, 1396, - 1007, 1009, 1013, 758, 1005, 1014, 1029, 895, 1016, 347, - 1017, 346, 1018, 1019, 772, 1023, 1407, 1241, 1036, 1244, - 1051, 1247, 1046, 311, 1213, 1052, 1057, 1053, 1058, 1050, - 346, 1076, 1077, 1059, 1259, 1079, 1082, 1083, 1084, 1085, - 1091, 1092, 1088, 1093, 1096, 347, 1268, 1269, 1098, 1101, - 1099, 1100, 1104, 1272, 1109, 1112, 1122, 1125, 1128, 1273, - 1237, 1136, 1139, 1277, 347, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 1257, - 1142, 1154, 1167, 331, 1164, 1168, 1132, 1155, 1170, 1171, - 1173, 1072, 1156, 1157, 1158, 1172, 1179, 1180, 1181, 1182, - 1183, 1186, 1184, 1314, 1185, 1189, 1318, 7, 8, 1322, - 1190, 1200, 1192, 1325, 1194, 1196, 1198, 346, 1202, 346, - 1203, 1208, 1210, 1242, 1215, 1245, 1226, 1248, 1334, 1230, - 1231, 1336, 1232, 1233, 1228, 1256, 1234, 1258, 1235, 1250, - 1263, 513, 15, 16, 514, 18, 19, 515, 21, 516, - 23, 347, 24, 347, 1264, 27, 28, 1271, 30, 31, - 32, 7, 8, 1265, 35, 1266, 1328, 1267, 1331, 876, - 877, 1288, 879, 346, 882, 883, 1276, 1289, 886, 887, - 1297, 1298, 1299, 1300, 1301, 1309, 1310, 51, 52, 53, - 1292, 1312, 1315, 1316, 1319, 513, 15, 16, 514, 18, - 19, 515, 21, 516, 23, 1320, 24, 347, 1323, 27, - 28, 1324, 30, 31, 32, 1329, 1337, 1339, 35, 1341, - 1343, 1351, 1367, 1352, 1357, 1330, 1360, 1363, 1366, 1368, - 1373, 1372, 1386, 1375, 1388, 1390, 1377, 1379, 936, 937, - 938, 51, 52, 53, 1392, 1394, 1403, 613, 1384, 1404, - 1405, 88, 338, 1406, 1302, 1408, 989, 92, 93, 94, - 997, 74, 95, 96, 97, 98, 99, 100, 101, 102, + 329, 330, 331, 332, 512, 1028, 1029, 1030, 333, 983, + 513, 984, 136, 137, 1039, 1041, 544, 502, 1042, 244, + 551, 1112, 985, 1113, 245, 348, 514, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 1056, 1057, 1058, 615, + 333, 180, 142, 551, 181, 986, 551, 182, 987, 183, + 1068, 1066, 551, 545, 988, 1074, 551, 546, 994, 349, + 551, 1071, 1010, 1072, 551, 1167, 1145, 1168, 568, 1253, + 1077, 1254, 573, 551, 1051, 1264, 1071, 1071, 1272, 1276, + 551, 574, 1277, 1076, 551, 1167, 1296, 1334, 578, 551, + 1091, 1350, 551, 1071, 1352, 1356, 1096, 1097, 551, 585, + 1383, 1099, 1384, 1256, 1385, 1071, 1403, 1399, 1404, 1105, + 579, 588, 580, 581, 608, 587, 610, 612, 623, 1115, + 634, 1116, 626, 635, 1043, 705, 706, 636, 637, 697, + 698, 699, 1132, 702, 313, 1117, 714, 701, 715, 703, + 348, 719, 730, 348, 739, 740, 1146, 741, 743, 745, + 744, 746, 748, 749, 1154, 750, 761, 763, 776, 780, + 781, 800, 812, 1163, 1164, 809, 810, 811, 1155, 820, + 821, 822, 831, 823, 349, 824, 832, 349, 833, 835, + 849, 850, 851, 1176, 856, 857, 860, 859, 863, 869, + 877, 880, 1329, 886, 887, 760, 893, 1092, 894, 895, + 896, 899, 901, 900, 902, 903, 774, 905, 904, 906, + 907, 908, 910, 918, 1193, 920, 919, 520, 921, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 1206, 1123, 547, 1126, 333, 1129, 926, 927, 1372, + 928, 929, 1213, 932, 1214, 931, 1140, 348, 1142, 1143, + 933, 934, 935, 936, 937, 941, 1223, 946, 947, 954, + 949, 1227, 950, 953, 951, 952, 955, 548, 956, 1395, + 961, 1398, 971, 973, 978, 979, 989, 997, 1001, 1004, + 996, 349, 1005, 348, 1002, 1003, 1008, 1009, 1409, 1243, + 1011, 1246, 1015, 1249, 1018, 313, 1215, 1007, 1016, 1031, + 1019, 1020, 348, 1021, 1025, 1048, 1261, 1053, 1038, 1052, + 1054, 1055, 1059, 1100, 1060, 1078, 1061, 349, 1270, 1271, + 1079, 1081, 1103, 1084, 1085, 1274, 1086, 1087, 1093, 1090, + 1094, 1275, 1239, 1095, 1098, 1279, 349, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 1259, 1101, 1102, 1106, 333, 1111, 1114, 1124, 1127, + 1130, 878, 879, 1074, 881, 1138, 884, 885, 1134, 1141, + 888, 889, 1144, 1156, 1157, 1316, 1158, 1159, 1320, 1160, + 1169, 1324, 1170, 1166, 1172, 1327, 1173, 1174, 1175, 348, + 1181, 348, 1182, 1183, 1184, 1244, 1185, 1247, 1186, 1250, + 1336, 1187, 1188, 1338, 1191, 1194, 1202, 1258, 1192, 1260, + 1196, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 1204, 349, 1210, 349, 333, 1198, 1212, 1200, + 938, 939, 940, 1217, 1228, 1205, 1230, 1232, 1330, 1233, + 1333, 1234, 89, 300, 248, 348, 1235, 1236, 93, 94, + 95, 1237, 1252, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 82, 1078, 0, 0, 574, 0, 0, - 0, 0, 0, 0, 339, 0, 0, 340, 0, 0, - 341, 628, 342, 0, 0, 0, 0, 0, 0, 998, - 0, 0, 0, 0, 0, 1004, 0, 0, 36, 37, - 38, 39, 40, 1010, 1011, 1012, 0, 44, 0, 1015, - 47, 0, 0, 0, 1020, 1021, 1022, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1038, - 0, 0, 0, 0, 0, 1045, 0, 0, 1048, 122, - 0, 0, 125, 126, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1060, 1061, - 1062, 1063, 399, 1137, 0, 0, 0, 134, 0, 0, - 0, 0, 401, 0, 0, 0, 0, 140, 0, 193, - 563, 0, 0, 1073, 0, 518, 0, 0, 0, 88, - 338, 0, 0, 0, 0, 92, 93, 94, 0, 0, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 0, 0, 0, 0, 534, 0, 1105, 1106, 1107, - 1108, 0, 339, 0, 0, 340, 0, 0, 341, 0, - 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, - 40, 0, 0, 0, 1145, 44, 0, 0, 47, 0, + 113, 114, 115, 116, 1273, 117, 118, 119, 120, 349, + 1290, 121, 1265, 1266, 1267, 1291, 1268, 1269, 1299, 1278, + 1294, 1300, 1301, 1302, 1369, 1303, 1311, 1332, 1312, 1314, + 1317, 1000, 1318, 1321, 1322, 1325, 1331, 1006, 1326, 1339, + 1341, 1345, 1343, 1353, 1354, 1012, 1013, 1014, 1359, 1362, + 1365, 1017, 1368, 1370, 1374, 1375, 1022, 1023, 1024, 1388, + 1377, 1379, 1390, 1381, 1392, 1386, 1394, 1396, 1405, 1406, + 1407, 1040, 1408, 1410, 991, 1304, 75, 1047, 83, 0, + 1050, 123, 124, 125, 126, 127, 128, 536, 999, 1080, + 576, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1062, 1063, 1064, 1065, 133, 134, 0, 0, 0, 135, + 0, 700, 0, 0, 138, 89, 340, 0, 0, 141, + 0, 93, 94, 95, 0, 1075, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, + 0, 0, 342, 0, 0, 343, 0, 344, 0, 1107, + 1108, 1109, 1110, 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, 0, 0, + 0, 0, 0, 0, 0, 0, 1147, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 1165, 0, 123, 333, 0, 126, 127, 128, + 0, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 401, 1139, 333, + 0, 0, 135, 0, 0, 0, 0, 403, 0, 0, + 0, 0, 141, 0, 195, 565, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 89, 340, 0, 0, + 0, 0, 93, 94, 95, 1203, 0, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 1218, 1219, + 1220, 1221, 0, 0, 0, 0, 0, 0, 0, 0, + 341, 0, 0, 342, 7, 8, 343, 0, 344, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 37, 38, 39, 40, 41, 0, + 0, 858, 0, 45, 0, 1255, 48, 0, 0, 515, + 16, 17, 516, 19, 20, 517, 22, 518, 24, 0, + 25, 0, 0, 28, 29, 0, 31, 32, 33, 0, + 0, 0, 36, 0, 0, 123, 0, 0, 126, 127, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1289, 52, 53, 54, 133, 345, + 0, 0, 0, 135, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 141, 0, 0, 565, 89, 90, 91, + 0, 92, 0, 93, 94, 95, 0, 0, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 0, + 117, 118, 119, 120, 0, 630, 121, 0, 0, 7, + 8, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 16, 17, 516, 19, 20, + 517, 22, 518, 24, 0, 25, 0, 0, 28, 29, + 0, 31, 32, 33, 0, 0, 0, 36, 0, 0, + 122, 0, 0, 0, 0, 0, 123, 124, 125, 126, + 127, 128, 0, 0, 0, 0, 129, 130, 131, 132, + 52, 53, 54, 0, 0, 0, 0, 0, 0, 133, + 134, 0, 0, 0, 135, 0, 136, 137, 0, 138, + 0, 139, 0, 140, 141, 0, 142, 89, 340, 371, + 0, 0, 0, 93, 94, 95, 0, 0, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 0, + 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 341, 0, 0, 342, 7, 8, 343, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1163, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 122, 0, 698, - 125, 126, 127, 0, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 132, 343, 331, 0, 0, 134, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 140, 0, 0, 563, 0, - 0, 0, 0, 1201, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 0, 0, 1216, 1217, 1218, 1219, - 88, 89, 90, 0, 91, 0, 92, 93, 94, 0, - 0, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 0, 0, 0, 0, 0, 37, 38, 39, 40, 41, + 0, 0, 0, 0, 45, 0, 0, 48, 0, 0, + 515, 16, 17, 516, 19, 20, 517, 22, 518, 24, + 0, 25, 0, 0, 28, 29, 0, 31, 32, 33, + 0, 0, 0, 36, 0, 0, 123, 0, 0, 126, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 53, 54, 133, + 362, 0, 0, 0, 135, 0, 0, 0, 0, 138, + 0, 89, 340, 1045, 141, 0, 363, 93, 94, 95, + 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 0, 116, 117, 118, 119, 0, 0, 120, - 0, 0, 0, 1253, 0, 0, 7, 8, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 0, 0, + 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 341, 793, 0, 342, 7, + 8, 343, 0, 344, 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, 515, 16, 17, 516, 19, 20, + 517, 22, 518, 24, 0, 25, 0, 0, 28, 29, + 0, 31, 32, 33, 0, 0, 0, 36, 0, 0, + 123, 0, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 513, 15, 16, 514, 18, 19, 515, 21, 516, 23, - 0, 24, 1287, 0, 27, 28, 0, 30, 31, 32, - 0, 0, 121, 35, 0, 0, 0, 0, 122, 123, - 124, 125, 126, 127, 0, 0, 0, 0, 128, 129, - 130, 131, 0, 0, 0, 0, 51, 52, 53, 0, - 0, 132, 133, 0, 0, 0, 134, 0, 135, 136, - 0, 137, 0, 138, 0, 139, 140, 0, 141, 88, - 338, 369, 0, 0, 0, 92, 93, 94, 0, 0, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 0, 0, 0, 0, 0, 629, 0, 0, 0, - 0, 0, 339, 0, 0, 340, 7, 8, 341, 0, - 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 44, 0, 0, 47, 0, - 513, 15, 16, 514, 18, 19, 515, 21, 516, 23, - 0, 24, 0, 0, 27, 28, 0, 30, 31, 32, - 0, 0, 0, 35, 0, 0, 0, 122, 0, 0, - 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, - 132, 360, 0, 0, 0, 134, 0, 0, 0, 0, - 137, 0, 88, 338, 1043, 140, 0, 361, 92, 93, - 94, 0, 0, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 339, 791, 0, 340, 7, - 8, 341, 0, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 37, 38, 39, 40, 0, 0, 0, 0, 44, 0, - 0, 47, 0, 513, 15, 16, 514, 18, 19, 515, - 21, 516, 23, 0, 24, 0, 0, 27, 28, 0, - 30, 31, 32, 0, 0, 0, 35, 0, 0, 0, - 122, 0, 0, 125, 126, 127, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 132, 360, 0, 0, 0, 134, 0, - 0, 0, 0, 137, 0, 88, 338, 0, 140, 0, - 1044, 92, 93, 94, 0, 0, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 339, 812, - 0, 340, 7, 8, 341, 0, 342, 0, 0, 0, + 52, 53, 54, 133, 362, 0, 0, 0, 135, 0, + 0, 0, 0, 138, 0, 89, 340, 0, 141, 0, + 1046, 93, 94, 95, 0, 0, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, + 814, 0, 342, 7, 8, 343, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 36, 37, 38, 39, 40, 0, 0, 0, - 0, 44, 0, 0, 47, 0, 513, 15, 16, 514, - 18, 19, 515, 21, 516, 23, 0, 24, 0, 0, - 27, 28, 0, 30, 31, 32, 0, 0, 0, 35, - 0, 0, 0, 122, 0, 0, 125, 126, 127, 0, + 0, 0, 0, 37, 38, 39, 40, 41, 0, 0, + 0, 0, 45, 0, 0, 48, 0, 0, 515, 16, + 17, 516, 19, 20, 517, 22, 518, 24, 0, 25, + 0, 0, 28, 29, 0, 31, 32, 33, 0, 0, + 0, 36, 0, 0, 123, 0, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 0, 132, 360, 0, 0, - 0, 134, 0, 0, 0, 0, 137, 0, 88, 338, - 0, 140, 0, 361, 92, 93, 94, 0, 0, 95, + 0, 0, 0, 0, 52, 53, 54, 133, 362, 0, + 0, 0, 135, 0, 0, 0, 0, 138, 0, 89, + 340, 0, 141, 0, 363, 93, 94, 95, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 341, 1292, 0, 342, 7, 8, 343, + 0, 344, 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, 515, 16, 17, 516, 19, 20, 517, 22, + 518, 24, 0, 25, 0, 0, 28, 29, 0, 31, + 32, 33, 0, 0, 892, 36, 0, 0, 123, 0, + 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 53, + 54, 133, 345, 0, 0, 0, 135, 0, 0, 930, + 0, 138, 0, 89, 340, 0, 141, 0, 564, 93, + 94, 95, 0, 0, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 341, 1348, 0, + 342, 0, 0, 343, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 339, 1290, 0, 340, 7, 8, 341, 0, 342, + 0, 37, 38, 39, 40, 41, 0, 0, 0, 0, + 45, 0, 0, 48, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 0, 980, 0, + 0, 0, 123, 0, 0, 126, 127, 128, 0, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 0, 0, 133, 345, 333, 0, 0, + 135, 0, 0, 1171, 0, 138, 0, 89, 340, 0, + 141, 0, 753, 93, 94, 95, 0, 0, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 44, 0, 0, 47, 0, 513, - 15, 16, 514, 18, 19, 515, 21, 516, 23, 0, - 24, 0, 0, 27, 28, 0, 30, 31, 32, 0, - 0, 0, 35, 856, 0, 0, 122, 0, 0, 125, - 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 0, 132, - 343, 0, 0, 0, 134, 0, 0, 890, 0, 137, - 0, 88, 338, 0, 140, 0, 562, 92, 93, 94, - 0, 0, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 339, 1346, 0, 340, 0, 0, - 341, 0, 342, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, - 38, 39, 40, 0, 0, 0, 0, 44, 0, 0, - 47, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 0, 0, 0, 928, 0, 0, 0, 122, - 0, 0, 125, 126, 127, 0, 317, 318, 319, 320, + 0, 341, 0, 0, 342, 0, 0, 343, 0, 344, + 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, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 132, 343, 331, 0, 0, 134, 0, 0, - 978, 0, 137, 0, 88, 338, 0, 140, 0, 751, - 92, 93, 94, 0, 0, 95, 96, 97, 98, 99, + 331, 332, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 123, 0, 0, 126, + 127, 128, 0, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 133, + 362, 333, 0, 0, 135, 0, 0, 1190, 0, 138, + 0, 89, 340, 0, 141, 0, 1049, 93, 94, 95, + 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 341, 0, 0, 342, 0, + 0, 343, 0, 344, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, + 38, 39, 40, 41, 1216, 0, 89, 300, 45, 0, + 0, 48, 93, 94, 95, 0, 0, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 1298, 0, + 123, 0, 0, 126, 127, 128, 0, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 401, 1139, 333, 0, 0, 135, 0, + 0, 1346, 0, 403, 0, 89, 300, 248, 141, 0, + 195, 93, 94, 95, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, - 340, 0, 0, 341, 0, 342, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 44, 0, 0, 47, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 0, 0, 0, 0, 1169, 0, - 0, 0, 122, 0, 0, 125, 126, 127, 0, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 132, 360, 331, 0, 0, - 134, 0, 0, 1188, 0, 137, 0, 88, 338, 0, - 140, 0, 1047, 92, 93, 94, 0, 0, 95, 96, + 110, 111, 112, 113, 114, 115, 116, 0, 117, 118, + 119, 120, 0, 0, 121, 123, 0, 0, 126, 127, + 128, 0, 0, 0, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 133, 134, + 0, 0, 333, 135, 0, 0, 0, 0, 138, 0, + 0, 305, 0, 141, 0, 306, 0, 0, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 549, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 0, 123, 124, 125, 126, 127, 128, + 0, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 133, 134, 333, + 0, 0, 135, 0, 0, 0, 0, 138, 549, 89, + 300, 0, 141, 0, 1153, 93, 94, 95, 0, 0, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 897, 0, 0, 0, 0, 627, 0, 89, 300, + 0, 0, 0, 0, 93, 94, 95, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 339, 0, 0, 340, 0, 0, 341, 0, 342, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 37, 38, 39, 40, 0, - 0, 0, 0, 44, 0, 0, 47, 317, 318, 319, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 550, 331, 332, 0, 0, 0, 0, 333, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 1214, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 122, 0, 0, 125, 126, - 127, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 399, 1137, - 331, 0, 0, 134, 0, 0, 1296, 0, 401, 0, - 88, 298, 246, 140, 0, 193, 92, 93, 94, 0, - 0, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 0, 116, 117, 118, 119, 1344, 0, 120, - 0, 88, 298, 0, 0, 0, 0, 92, 93, 94, - 0, 0, 95, 96, 97, 98, 99, 100, 101, 102, + 330, 331, 332, 0, 0, 0, 0, 333, 123, 0, + 0, 126, 127, 128, 0, 0, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 567, 331, 332, + 0, 133, 134, 0, 333, 0, 135, 0, 0, 0, + 0, 138, 0, 0, 731, 0, 141, 123, 732, 0, + 126, 127, 128, 0, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 401, 402, 333, 0, 0, 135, 0, 0, 0, 0, + 403, 724, 89, 340, 0, 141, 0, 195, 93, 94, + 95, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 122, 123, - 124, 125, 126, 127, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 132, 133, 331, 0, 0, 134, 0, 0, 0, - 0, 137, 0, 0, 547, 0, 140, 0, 1151, 122, - 0, 0, 125, 126, 127, 0, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 132, 133, 331, 0, 0, 134, 0, 0, - 0, 0, 137, 0, 0, 303, 0, 140, 547, 304, - 88, 298, 0, 0, 0, 0, 92, 93, 94, 0, - 0, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 0, 0, 0, 0, 0, 625, 0, 88, - 298, 0, 0, 0, 0, 92, 93, 94, 0, 0, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 548, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 122, 0, - 331, 125, 126, 127, 505, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 565, 329, 330, 0, - 0, 132, 133, 331, 0, 0, 134, 0, 0, 0, - 0, 137, 0, 0, 729, 0, 140, 122, 730, 0, - 125, 126, 127, 0, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 399, 400, 331, 0, 0, 134, 0, 0, 0, 0, - 401, 722, 88, 338, 0, 140, 0, 193, 92, 93, - 94, 0, 0, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 339, 0, 0, 340, 0, - 0, 341, 0, 342, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 37, 38, 39, 40, 874, 0, 88, 298, 44, 0, - 0, 47, 92, 93, 94, 0, 0, 95, 96, 97, + 113, 114, 115, 116, 876, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 341, 0, 0, 342, + 0, 0, 343, 0, 344, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 38, 39, 40, 41, 943, 0, 89, 300, 45, + 0, 0, 48, 93, 94, 95, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 941, 0, - 122, 0, 0, 125, 126, 127, 0, 0, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 132, 343, 0, 331, 0, 134, 88, - 298, 246, 0, 137, 0, 92, 93, 94, 140, 0, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 0, 116, 117, 118, 119, 0, 0, 120, 0, - 0, 0, 0, 0, 122, 0, 0, 125, 126, 127, - 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 132, 133, 331, - 0, 0, 134, 0, 0, 0, 0, 137, 0, 0, - 0, 0, 140, 0, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 122, 123, 124, - 125, 126, 127, -4, 1, 0, 0, -4, 0, 0, - 0, 0, 0, 0, 0, -4, -4, 0, 0, 0, - 132, 133, 0, 0, 0, 134, 0, 0, 0, 0, - 137, 0, 0, 0, 0, 140, 0, 0, -4, 0, - 0, 0, 0, -4, -4, 0, -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, 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, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 9, 0, 0, - 0, 0, 10, 11, 754, 12, 13, 0, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, - 34, 35, 36, 37, 38, 39, 40, 41, 0, 42, - 43, 44, 45, 46, 47, 0, 0, 48, 49, 7, - 8, 0, 0, 50, 51, 52, 53, 0, 0, 54, - 0, 55, 0, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 0, 0, 0, 0, 0, 0, 66, - 67, 68, 69, 513, 15, 16, 514, 18, 19, 515, - 21, 516, 23, 0, 24, 0, 0, 27, 28, 0, - 30, 31, 32, 0, 0, 0, 35, 317, 318, 319, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 0, + 0, 123, 0, 0, 126, 127, 128, 0, 0, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 51, - 52, 53, 1118, 0, 1119, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 1146, 0, 1147, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 1239, 0, - 1240, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 794, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 827, 317, 318, 319, + 330, 331, 332, 0, 133, 345, 0, 333, 0, 135, + 0, 0, 0, 0, 138, 0, 0, 0, 0, 141, + 0, 0, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 123, 0, 0, 126, + 127, 128, 0, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 133, + 134, 333, 0, 0, 135, 0, -4, 1, 0, 138, + -4, 0, 0, 0, 141, 0, 0, 0, -4, -4, + 0, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, -4, 0, 0, 0, 0, -4, -4, 756, -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, 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, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 9, 0, 0, 0, 0, 10, 11, 796, 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, 7, 8, 0, 0, 51, 52, + 53, 54, 0, 0, 55, 0, 56, 0, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, + 0, 0, 0, 0, 67, 68, 69, 70, 0, 515, + 16, 17, 516, 19, 20, 517, 22, 518, 24, 0, + 25, 0, 0, 28, 29, 0, 31, 32, 33, 0, + 0, 0, 36, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 52, 53, 54, 1120, 0, + 1121, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 1148, 0, 1149, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 873, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 912, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, - 1116, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 1134, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 1175, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 1241, 0, 1242, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 829, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 875, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, + 914, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 1118, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 1176, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 1177, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, - 1178, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 1209, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 1255, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 1136, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 1177, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 1178, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, + 1179, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 1180, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 1260, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 1261, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, - 1278, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 1281, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 1284, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 1211, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 1257, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 1262, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, + 1263, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 1280, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 1308, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 0, 0, 1311, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, - 1338, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 0, 0, 1340, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 1342, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 1283, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 1286, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 1310, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, + 1313, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 0, 0, 1340, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 0, 0, 1355, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 0, 584, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 0, 0, 0, 0, 0, 0, 1187, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 501, - 0, 0, 0, 0, 588, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 537, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 588, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 0, 0, 1342, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 0, 0, 1344, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 0, 0, 1357, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 0, 586, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 0, 0, 0, 0, 0, 0, 1189, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 503, 0, 0, + 0, 0, 590, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 539, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 589, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 622, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 673, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 674, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 687, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 590, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 591, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 624, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 675, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 676, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 688, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 689, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 690, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 691, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 692, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 689, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 690, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 691, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 692, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 693, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 781, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 782, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 783, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 870, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 910, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 694, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 783, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 784, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 785, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 872, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 911, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 940, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 1067, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 1068, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 1087, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 912, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 913, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 942, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 1069, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 1070, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 0, - 0, 0, 1222, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 0, 0, 0, 1223, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 1229, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, - 1304, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 0, 0, 0, 1307, 317, 318, 319, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 1089, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 1224, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 0, 0, 1225, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 0, 0, 1231, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 0, 0, 1306, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 627, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 0, 0, 637, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 652, 317, 318, 319, 320, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 0, 0, 0, 1309, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 507, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 0, 0, 654, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 656, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 0, 0, 658, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 660, 317, 318, + 331, 332, 0, 0, 0, 0, 333, 0, 0, 0, + 629, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 639, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 0, 0, 654, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 656, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 0, 0, - 662, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 664, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 0, 0, 666, 317, 318, 319, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 0, 0, 658, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 660, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 0, 0, 662, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 668, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 0, 0, 670, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 672, 317, 318, 319, 320, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 664, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 0, 0, 666, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 668, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 0, 0, 676, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 678, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 0, 0, 680, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 682, 317, 318, + 331, 332, 0, 0, 0, 0, 333, 0, 0, 0, + 670, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 672, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 0, 0, 674, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 678, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 0, 0, - 684, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 686, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 0, 0, 801, 317, 318, 319, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 0, 0, 680, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 682, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 0, 0, 684, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 802, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 0, 0, 805, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 0, 0, 806, 317, 318, 319, 320, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 686, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 0, 0, 688, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 803, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 0, 0, 823, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 0, - 0, 846, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 0, 0, 946, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 0, 0, 961, 317, 318, + 331, 332, 0, 0, 0, 0, 333, 0, 0, 0, + 804, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 807, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 0, 0, 808, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 0, 0, 825, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 0, 0, - 963, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 0, 0, 965, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 0, 0, 967, 317, 318, 319, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 0, 0, 848, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 0, 0, 948, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 0, 0, 963, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 0, 0, 1080, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 0, 0, 1199, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 501, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 538, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 551, 317, 318, 319, 320, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 0, + 0, 965, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 0, 0, 967, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 0, 0, 969, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 0, 0, 0, 0, 333, 0, 0, 0, + 1082, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 0, 0, 1201, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 503, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 540, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 553, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 554, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 552, 317, 318, 319, + 331, 332, 0, 0, 0, 0, 333, 0, 556, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 554, 317, 318, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 558, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 556, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 557, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 560, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 561, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 618, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 619, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 620, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 626, 317, 318, 319, 320, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 559, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 562, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 563, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 620, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 621, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 622, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 628, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 653, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 651, 317, 318, 319, + 331, 332, 0, 0, 0, 0, 333, 0, 655, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 653, 317, 318, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 657, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 655, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 657, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 659, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 661, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 663, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 665, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 667, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 669, 317, 318, 319, 320, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 659, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 661, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 663, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 665, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 667, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 669, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 671, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 673, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 671, 317, 318, 319, + 331, 332, 0, 0, 0, 0, 333, 0, 677, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 675, 317, 318, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 679, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 677, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 679, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 681, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 683, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 685, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 740, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 745, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 753, 317, 318, 319, 320, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 681, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 683, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 685, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 687, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 742, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 747, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 755, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 757, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 755, 317, 318, 319, + 331, 332, 0, 0, 0, 0, 333, 0, 758, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 756, 317, 318, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 764, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 762, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 769, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 770, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 771, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 793, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 795, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 796, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 800, 317, 318, 319, 320, + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 771, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 772, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 773, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 795, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 797, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 798, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 802, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333, 0, 962, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331, 0, 960, 317, 318, 319, + 331, 332, 0, 0, 0, 0, 333, 0, 964, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 0, 0, 0, 0, 331, 0, 962, 317, 318, + 330, 331, 332, 0, 0, 0, 0, 333, 0, 966, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 0, 0, 0, 0, 331, 0, 964, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 0, 0, 0, 0, 331, 0, 966, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 0, 0, 0, 0, 331, 0, - 970, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 0, 0, 0, 0, 331, - 0, 1117, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 0, 0, 0, 0, - 331, 0, 1133, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 0, 0, 0, - 0, 331, 0, 1150, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 0, 0, - 0, 0, 331, 0, 1303, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 0, - 0, 0, 0, 331, 0, 1353, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 0, 0, 0, 0, 331 + 329, 330, 331, 332, 0, 0, 0, 0, 333, 0, + 968, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 0, 0, 0, 0, 333, + 0, 972, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 0, 0, 0, 0, + 333, 0, 1119, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 0, 0, 0, + 0, 333, 0, 1135, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 0, 0, + 0, 0, 333, 0, 1152, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 0, + 0, 0, 0, 333, 0, 1305, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 0, 0, 0, 0, 333, 0, 1355, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 0, 0, 0, 0, 333 }; static const yytype_int16 yycheck[] = { - 6, 306, 201, 6, 393, 394, 3, 7, 6, 4, - 4, 1164, 211, 4, 6, 76, 6, 76, 4, 4, - 715, 5, 237, 238, 239, 4, 4, 52, 5, 76, - 5, 4, 6, 1186, 233, 6, 235, 6, 67, 4, - 144, 6, 4, 13, 4, 76, 6, 151, 77, 67, - 6, 144, 7, 67, 83, 84, 175, 176, 151, 77, - 0, 788, 792, 77, 144, 83, 84, 141, 142, 83, - 84, 151, 134, 135, 148, 290, 291, 292, 293, 144, - 295, 296, 297, 4, 5, 144, 46, 206, 50, 151, - 151, 6, 151, 87, 88, 89, 90, 144, 60, 91, - 145, 6, 97, 98, 151, 150, 97, 98, 134, 135, - 7, 49, 134, 135, 52, 36, 37, 38, 39, 105, - 151, 42, 144, 152, 6, 151, 132, 133, 134, 151, - 145, 137, 138, 131, 152, 150, 142, 37, 38, 144, - 40, 131, 148, 144, 141, 151, 151, 6, 148, 155, - 156, 157, 158, 1306, 160, 161, 162, 163, 152, 165, - 166, 167, 857, 141, 142, 151, 151, 151, 146, 124, - 148, 144, 151, 56, 151, 153, 151, 151, 134, 135, - 186, 146, 151, 144, 156, 49, 192, 193, 52, 161, - 54, 112, 113, 165, 144, 201, 923, 52, 145, 156, - 505, 134, 135, 150, 161, 404, 134, 135, 165, 136, - 137, 138, 144, 219, 220, 221, 143, 223, 151, 1372, - 226, 227, 150, 229, 121, 122, 123, 124, 144, 428, - 134, 135, 136, 137, 138, 241, 145, 144, 144, 143, - 146, 150, 248, 249, 250, 251, 252, 253, 254, 255, + 6, 203, 4, 6, 395, 396, 3, 7, 308, 0, + 6, 213, 7, 6, 6, 4, 6, 4, 1166, 4, + 4, 4, 717, 4, 239, 240, 241, 4, 6, 5, + 145, 5, 5, 235, 4, 237, 145, 6, 147, 68, + 1188, 77, 77, 4, 4, 6, 6, 77, 13, 78, + 68, 6, 145, 4, 145, 84, 85, 135, 136, 152, + 78, 152, 51, 177, 178, 53, 84, 85, 135, 136, + 794, 6, 61, 790, 152, 4, 5, 292, 293, 294, + 295, 6, 297, 298, 299, 152, 47, 71, 72, 73, + 74, 137, 138, 139, 208, 145, 80, 147, 144, 83, + 92, 135, 136, 88, 89, 90, 91, 36, 37, 38, + 39, 98, 99, 42, 7, 145, 152, 152, 152, 142, + 143, 6, 152, 106, 153, 77, 149, 133, 134, 135, + 125, 50, 138, 139, 53, 153, 132, 143, 38, 39, + 6, 41, 132, 149, 145, 142, 152, 98, 99, 149, + 152, 157, 158, 159, 160, 57, 162, 163, 164, 165, + 1308, 167, 168, 169, 859, 142, 143, 53, 153, 152, + 147, 152, 149, 53, 152, 145, 152, 154, 152, 152, + 135, 136, 188, 152, 113, 114, 158, 147, 194, 195, + 6, 163, 145, 145, 7, 167, 145, 203, 145, 152, + 152, 158, 135, 136, 406, 152, 163, 507, 925, 145, + 167, 135, 136, 142, 143, 221, 222, 223, 151, 225, + 149, 53, 228, 229, 68, 231, 1374, 151, 430, 122, + 123, 124, 125, 50, 78, 145, 53, 243, 55, 145, + 84, 85, 6, 7, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 134, 135, 981, 54, 294, 189, - 190, 144, 67, 146, 134, 135, 5, 197, 304, 145, - 150, 201, 77, 306, 150, 141, 142, 8, 83, 84, - 150, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 52, 36, 37, 38, - 39, 52, 304, 42, 6, 7, 67, 343, 7, 52, - 134, 135, 7, 134, 135, 351, 77, 304, 134, 135, - 356, 144, 83, 84, 360, 361, 150, 49, 152, 365, - 366, 367, 368, 144, 150, 146, 152, 151, 374, 134, - 135, 343, 151, 379, 380, 381, 52, 152, 46, 52, - 4, 49, 134, 135, 52, 150, 54, 152, 360, 361, - 396, 397, 398, 399, 400, 401, 393, 394, 150, 405, - 406, 407, 408, 112, 113, 411, 49, 49, 414, 415, - 4, 4, 418, 419, 420, 421, 577, 578, 579, 144, - 144, 152, 637, 7, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 444, 144, - 144, 447, 143, 446, 134, 135, 418, 419, 6, 134, - 135, 152, 121, 122, 123, 124, 121, 122, 123, 124, - 150, 418, 419, 146, 1194, 150, 1196, 144, 1198, 146, - 4, 4, 141, 142, 144, 1170, 141, 142, 144, 148, - 695, 134, 135, 144, 134, 135, 701, 144, 134, 135, - 144, 391, 392, 49, 500, 67, 52, 150, 54, 399, - 150, 507, 505, 46, 150, 77, 49, 134, 135, 52, - 725, 83, 84, 144, 506, 146, 1243, 4, 5, 1246, - 134, 135, 1249, 150, 144, 144, 146, 146, 4, 151, - 536, 537, 144, 539, 146, 541, 150, 121, 122, 123, - 124, 547, 548, 549, 849, 850, 134, 135, 144, 36, - 37, 38, 39, 134, 135, 42, 562, 141, 142, 565, - 566, 1291, 150, 7, 536, 571, 144, 144, 146, 150, - 576, 577, 578, 579, 144, 144, 548, 549, 584, 536, - 152, 144, 588, 589, 576, 577, 578, 579, 594, 144, - 562, 134, 135, 565, 70, 71, 72, 73, 4, 1326, - 606, 144, 608, 79, 67, 562, 82, 1337, 151, 1339, - 151, 1341, 584, 144, 77, 146, 622, 1347, 624, 625, - 83, 84, 144, 6, 630, 112, 113, 584, 144, 1356, - 146, 144, 1359, 146, 637, 1362, 67, 144, 1365, 146, - 1029, 67, 144, 6, 146, 1375, 77, 1377, 144, 1379, - 146, 77, 83, 84, 141, 142, 67, 83, 84, 67, - 1387, 148, 1389, 144, 1391, 146, 77, 673, 674, 77, - 6, 5, 83, 84, 144, 83, 84, 144, 134, 135, - 67, 687, 688, 689, 690, 691, 692, 587, 694, 152, - 77, 144, 8, 699, 150, 144, 83, 84, 144, 144, - 600, 146, 708, 144, 134, 135, 144, 134, 135, 134, - 135, 144, 718, 719, 720, 721, 722, 67, 4, 67, - 150, 152, 694, 150, 730, 150, 152, 77, 144, 77, - 146, 151, 151, 83, 84, 83, 84, 694, 134, 135, - 144, 152, 146, 144, 152, 751, 718, 719, 720, 721, - 144, 144, 146, 146, 150, 150, 144, 152, 730, 151, - 146, 718, 719, 720, 721, 152, 150, 144, 152, 168, - 150, 8, 152, 730, 989, 174, 175, 176, 151, 751, - 141, 142, 146, 6, 148, 146, 185, 148, 146, 188, - 151, 150, 153, 152, 751, 150, 150, 152, 152, 151, - 146, 1190, 152, 150, 152, 152, 6, 206, 207, 125, + 286, 287, 288, 289, 290, 291, 135, 136, 983, 146, + 296, 191, 192, 50, 151, 145, 53, 147, 55, 199, + 306, 146, 151, 203, 153, 308, 151, 145, 8, 122, + 123, 124, 125, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 68, 142, + 143, 135, 136, 53, 306, 146, 149, 146, 78, 345, + 151, 145, 151, 7, 84, 85, 146, 353, 152, 306, + 7, 151, 358, 135, 136, 145, 362, 363, 135, 136, + 50, 367, 368, 369, 370, 135, 136, 142, 143, 151, + 376, 153, 55, 345, 151, 381, 382, 383, 579, 580, + 581, 151, 47, 153, 145, 50, 147, 145, 53, 147, + 362, 363, 398, 399, 400, 401, 402, 403, 395, 396, + 152, 407, 408, 409, 410, 135, 136, 413, 152, 53, + 416, 417, 53, 153, 420, 421, 422, 423, 145, 50, + 147, 151, 50, 145, 639, 147, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 446, 135, 136, 449, 144, 448, 135, 136, 420, 421, + 145, 4, 147, 153, 145, 4, 147, 151, 122, 123, + 124, 125, 151, 420, 421, 122, 123, 124, 125, 4, + 135, 136, 1196, 145, 1198, 147, 1200, 1172, 142, 143, + 145, 6, 697, 135, 136, 142, 143, 152, 703, 4, + 5, 145, 68, 393, 394, 145, 502, 68, 145, 151, + 147, 401, 78, 509, 507, 145, 145, 78, 84, 85, + 135, 136, 727, 84, 85, 145, 508, 147, 145, 4, + 147, 36, 37, 38, 39, 147, 151, 42, 1245, 135, + 136, 1248, 538, 539, 1251, 541, 4, 543, 68, 152, + 135, 136, 145, 549, 550, 551, 145, 145, 78, 135, + 136, 851, 852, 145, 84, 85, 151, 145, 564, 147, + 145, 567, 568, 145, 145, 151, 538, 573, 145, 1293, + 147, 145, 578, 579, 580, 581, 7, 153, 550, 551, + 586, 538, 153, 145, 590, 591, 578, 579, 580, 581, + 596, 145, 564, 68, 145, 567, 68, 4, 113, 114, + 6, 5, 608, 78, 610, 6, 78, 564, 6, 84, + 85, 1328, 84, 85, 586, 1339, 5, 1341, 624, 1343, + 626, 627, 145, 153, 147, 1349, 632, 135, 136, 586, + 152, 4, 36, 37, 38, 39, 639, 151, 42, 153, + 1031, 1358, 68, 151, 1361, 145, 68, 1364, 145, 145, + 1367, 68, 78, 1377, 145, 1379, 78, 1381, 84, 85, + 152, 78, 84, 85, 8, 145, 152, 84, 85, 675, + 676, 145, 1389, 147, 1391, 145, 1393, 147, 153, 145, + 145, 153, 147, 689, 690, 691, 692, 693, 694, 589, + 696, 170, 145, 8, 147, 701, 145, 176, 177, 178, + 145, 145, 602, 147, 710, 135, 136, 145, 187, 113, + 114, 190, 135, 136, 720, 721, 722, 723, 724, 152, + 145, 151, 135, 136, 696, 68, 732, 153, 151, 208, + 209, 153, 151, 145, 153, 78, 153, 145, 151, 696, + 6, 84, 85, 135, 136, 147, 6, 753, 720, 721, + 722, 723, 135, 136, 147, 152, 135, 136, 152, 151, + 732, 68, 147, 720, 721, 722, 723, 151, 151, 153, + 6, 78, 151, 149, 152, 732, 991, 84, 85, 101, + 6, 753, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 753, 6, 12, 13, + 144, 1192, 147, 151, 149, 153, 53, 147, 55, 153, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 831, 832, 135, 136, 144, + 730, 146, 4, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 151, 58, 848, 153, 61, 62, 852, + 64, 65, 66, 151, 860, 153, 70, 142, 143, 151, + 144, 153, 147, 151, 149, 153, 872, 152, 6, 154, + 876, 152, 6, 135, 136, 137, 138, 139, 149, 93, + 94, 95, 144, 783, 784, 785, 151, 151, 153, 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 829, 830, 148, 151, 143, 728, 100, - 141, 142, 52, 146, 54, 146, 152, 148, 150, 4, - 152, 6, 153, 846, 150, 6, 152, 850, 150, 150, - 152, 152, 858, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 6, 150, 870, 152, 143, 6, 874, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 781, 782, 783, 150, 143, 152, 4, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 151, 909, 910, 911, 143, 150, 145, 152, - 6, 151, 918, 919, 143, 150, 922, 152, 150, 150, - 152, 152, 150, 929, 152, 150, 150, 152, 152, 150, - 148, 152, 7, 146, 940, 941, 942, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 954, 952, - 152, 5, 143, 959, 150, 5, 152, 929, 150, 5, - 152, 150, 150, 152, 152, 150, 7, 152, 974, 150, - 7, 152, 929, 150, 150, 152, 152, 150, 150, 152, - 152, 973, 150, 150, 152, 152, 7, 144, 994, 144, - 144, 144, 7, 145, 1000, 1001, 6, 6, 6, 1005, - 7, 7, 97, 151, 1203, 145, 6, 1013, 145, 145, - 145, 145, 150, 145, 145, 4, 7, 1023, 100, 1025, - 150, 150, 922, 147, 7, 7, 7, 100, 7, 7, - 1036, 100, 1029, 1025, 7, 7, 4, 6, 1044, 148, - 152, 1047, 152, 6, 1050, 7, 7, 7, 148, 4, - 7, 7, 1058, 7, 7, 144, 144, 151, 6, 6, - 6, 1067, 1068, 147, 6, 6, 1058, 7, 146, 6, - 131, 7, 1044, 7, 54, 1047, 52, 7, 7, 7, - 7, 1087, 6, 145, 7, 145, 145, 145, 7, 7, - 7, 6, 4, 1292, 4, 995, 151, 6, 6, 144, - 7, 7, 7, 502, 503, 6, 6, 151, 6, 52, - 6, 6, 1118, 4, 6, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 1135, - 1030, 1137, 1032, 143, 1034, 4, 4, 1352, 151, 151, - 1146, 4, 1148, 144, 1044, 1151, 1046, 1047, 151, 151, - 6, 145, 151, 145, 1160, 148, 7, 6, 60, 1165, - 6, 151, 6, 151, 151, 1137, 6, 1382, 6, 1384, - 6, 5, 4, 572, 151, 6, 151, 67, 7, 1151, - 7, 1187, 7, 7, 583, 7, 1401, 1193, 146, 1195, - 6, 1197, 151, 1190, 1151, 6, 6, 96, 7, 151, - 1206, 6, 4, 148, 1210, 6, 6, 6, 6, 6, - 6, 6, 147, 6, 6, 1187, 1222, 1223, 5, 100, - 6, 6, 6, 1229, 6, 6, 6, 6, 6, 1235, - 1187, 6, 6, 1239, 1206, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 1206, - 6, 4, 6, 143, 151, 6, 150, 150, 7, 6, - 6, 1267, 150, 150, 150, 148, 5, 50, 6, 6, - 6, 151, 6, 1279, 6, 6, 1282, 12, 13, 1285, - 151, 6, 152, 1289, 151, 151, 151, 1293, 7, 1295, - 151, 6, 95, 1193, 6, 1195, 6, 1197, 1304, 6, - 6, 1307, 6, 6, 98, 1205, 6, 1207, 151, 6, - 152, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 1293, 57, 1295, 152, 60, 61, 6, 63, 64, - 65, 12, 13, 152, 69, 152, 1293, 151, 1295, 738, - 739, 6, 741, 1349, 743, 744, 152, 67, 747, 748, - 6, 6, 6, 6, 6, 6, 6, 92, 93, 94, - 151, 6, 6, 6, 6, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 6, 57, 1349, 6, 60, - 61, 152, 63, 64, 65, 6, 151, 151, 69, 151, - 6, 6, 1349, 151, 6, 1295, 6, 6, 6, 6, - 6, 151, 6, 151, 6, 6, 151, 151, 807, 808, - 809, 92, 93, 94, 6, 6, 6, 152, 151, 6, - 6, 3, 4, 6, 1267, 6, 869, 9, 10, 11, - 877, 3, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 3, 977, -1, -1, 373, -1, -1, - -1, -1, -1, -1, 46, -1, -1, 49, -1, -1, - 52, 152, 54, -1, -1, -1, -1, -1, -1, 878, - -1, -1, -1, -1, -1, 884, -1, -1, 70, 71, - 72, 73, 74, 892, 893, 894, -1, 79, -1, 898, - 82, -1, -1, -1, 903, 904, 905, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 918, - -1, -1, -1, -1, -1, 924, -1, -1, 927, 111, - -1, -1, 114, 115, 116, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 947, 948, - 949, 950, 134, 135, -1, -1, -1, 139, -1, -1, - -1, -1, 144, -1, -1, -1, -1, 149, -1, 151, - 152, -1, -1, 972, -1, 6, -1, -1, -1, 3, - 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, 6, -1, 1016, 1017, 1018, - 1019, -1, 46, -1, -1, 49, -1, -1, 52, -1, - 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, -1, -1, -1, 1053, 79, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1069, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, -1, 6, - 114, 115, 116, -1, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - 134, 135, 143, -1, -1, 139, -1, -1, -1, -1, - 144, -1, -1, -1, -1, 149, -1, -1, 152, -1, - -1, -1, -1, 1132, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, -1, -1, 1155, 1156, 1157, 1158, - 3, 4, 5, -1, 7, -1, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, 36, 37, 38, 39, -1, -1, 42, - -1, -1, -1, 1202, -1, -1, 12, 13, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - -1, 57, 1251, -1, 60, 61, -1, 63, 64, 65, - -1, -1, 105, 69, -1, -1, -1, -1, 111, 112, - 113, 114, 115, 116, -1, -1, -1, -1, 121, 122, - 123, 124, -1, -1, -1, -1, 92, 93, 94, -1, - -1, 134, 135, -1, -1, -1, 139, -1, 141, 142, - -1, 144, -1, 146, -1, 148, 149, -1, 151, 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, 152, -1, -1, -1, - -1, -1, 46, -1, -1, 49, 12, 13, 52, -1, - 54, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, 71, 72, 73, - 74, -1, -1, -1, -1, 79, -1, -1, 82, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - -1, 57, -1, -1, 60, 61, -1, 63, 64, 65, - -1, -1, -1, 69, -1, -1, -1, 111, -1, -1, - 114, 115, 116, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 93, 94, -1, - 134, 135, -1, -1, -1, 139, -1, -1, -1, -1, - 144, -1, 3, 4, 5, 149, -1, 151, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 136, 137, 138, 139, 7, 911, 912, 913, 144, 151, + 147, 153, 142, 143, 920, 921, 5, 147, 924, 149, + 151, 4, 153, 6, 154, 931, 153, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 942, 943, 944, 153, + 144, 47, 152, 151, 50, 153, 151, 53, 153, 55, + 956, 954, 151, 5, 153, 961, 151, 5, 153, 931, + 151, 151, 153, 153, 151, 151, 153, 153, 7, 151, + 976, 153, 7, 151, 931, 153, 151, 151, 153, 153, + 151, 7, 153, 975, 151, 151, 153, 153, 145, 151, + 996, 153, 151, 151, 153, 153, 1002, 1003, 151, 7, + 153, 1007, 151, 1205, 153, 151, 151, 153, 153, 1015, + 145, 6, 145, 145, 7, 146, 7, 6, 98, 1025, + 146, 1027, 152, 146, 924, 504, 505, 146, 146, 151, + 146, 146, 1038, 146, 1031, 1027, 6, 151, 4, 151, + 1046, 148, 7, 1049, 101, 7, 1052, 7, 7, 7, + 101, 7, 101, 7, 1060, 7, 4, 6, 149, 153, + 153, 6, 149, 1069, 1070, 7, 7, 7, 1060, 4, + 7, 7, 145, 7, 1046, 7, 145, 1049, 152, 6, + 6, 6, 148, 1089, 6, 6, 147, 7, 6, 132, + 53, 7, 1294, 7, 55, 574, 7, 997, 7, 7, + 7, 6, 146, 7, 146, 146, 585, 7, 146, 7, + 7, 6, 4, 4, 1120, 152, 6, 6, 145, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 1137, 1032, 1139, 1034, 144, 1036, 7, 6, 1354, + 7, 7, 1148, 6, 1150, 152, 1046, 1153, 1048, 1049, + 6, 6, 53, 6, 6, 4, 1162, 4, 4, 4, + 152, 1167, 152, 6, 152, 152, 6, 1139, 145, 1384, + 152, 1386, 146, 146, 149, 7, 6, 61, 6, 6, + 152, 1153, 6, 1189, 152, 152, 6, 6, 1403, 1195, + 5, 1197, 4, 1199, 7, 1192, 1153, 152, 6, 152, + 7, 7, 1208, 7, 7, 152, 1212, 6, 147, 152, + 6, 97, 6, 5, 7, 6, 149, 1189, 1224, 1225, + 4, 6, 101, 6, 6, 1231, 6, 6, 6, 148, + 6, 1237, 1189, 6, 6, 1241, 1208, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 1208, 6, 6, 6, 144, 6, 6, 6, 6, + 6, 740, 741, 1269, 743, 6, 745, 746, 151, 6, + 749, 750, 6, 4, 151, 1281, 151, 151, 1284, 151, + 6, 1287, 6, 152, 7, 1291, 6, 149, 6, 1295, + 5, 1297, 51, 6, 6, 1195, 6, 1197, 6, 1199, + 1306, 6, 152, 1309, 6, 153, 6, 1207, 152, 1209, + 152, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 7, 1295, 6, 1297, 144, 152, 96, 152, + 809, 810, 811, 6, 6, 152, 99, 6, 1295, 6, + 1297, 6, 3, 4, 5, 1351, 6, 6, 9, 10, + 11, 152, 6, 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, 46, 152, -1, 49, 12, - 13, 52, -1, 54, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, -1, -1, -1, -1, 79, -1, - -1, 82, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, -1, 57, -1, -1, 60, 61, -1, - 63, 64, 65, -1, -1, -1, 69, -1, -1, -1, - 111, -1, -1, 114, 115, 116, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - 93, 94, -1, 134, 135, -1, -1, -1, 139, -1, - -1, -1, -1, 144, -1, 3, 4, -1, 149, -1, - 151, 9, 10, 11, -1, -1, 14, 15, 16, 17, + 31, 32, 33, 34, 6, 36, 37, 38, 39, 1351, + 6, 42, 153, 153, 153, 68, 153, 152, 6, 153, + 152, 6, 6, 6, 1351, 6, 6, 1297, 6, 6, + 6, 880, 6, 6, 6, 6, 6, 886, 153, 152, + 152, 6, 152, 6, 152, 894, 895, 896, 6, 6, + 6, 900, 6, 6, 152, 6, 905, 906, 907, 6, + 152, 152, 6, 152, 6, 152, 6, 6, 6, 6, + 6, 920, 6, 6, 871, 1269, 3, 926, 3, -1, + 929, 112, 113, 114, 115, 116, 117, 6, 879, 979, + 375, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 949, 950, 951, 952, 135, 136, -1, -1, -1, 140, + -1, 6, -1, -1, 145, 3, 4, -1, -1, 150, + -1, 9, 10, 11, -1, 974, 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, 46, 152, - -1, 49, 12, 13, 52, -1, 54, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, 71, 72, 73, 74, -1, -1, -1, - -1, 79, -1, -1, 82, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, -1, 57, -1, -1, - 60, 61, -1, 63, 64, 65, -1, -1, -1, 69, - -1, -1, -1, 111, -1, -1, 114, 115, 116, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + -1, -1, 50, -1, -1, 53, -1, 55, -1, 1018, + 1019, 1020, 1021, -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, -1, -1, + -1, -1, -1, -1, -1, -1, 1055, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, 1071, -1, 112, 144, -1, 115, 116, 117, + -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, 135, 136, 144, + -1, -1, 140, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, -1, 152, 153, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, 4, -1, -1, + -1, -1, 9, 10, 11, 1134, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 1157, 1158, + 1159, 1160, -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, 92, 93, 94, -1, 134, 135, -1, -1, - -1, 139, -1, -1, -1, -1, 144, -1, 3, 4, - -1, 149, -1, 151, 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, 71, 72, 73, 74, 75, -1, + -1, 6, -1, 80, -1, 1204, 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, 112, -1, -1, 115, 116, + 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1253, 93, 94, 95, 135, 136, + -1, -1, -1, 140, -1, -1, -1, -1, 145, -1, + -1, -1, -1, 150, -1, -1, 153, 3, 4, 5, + -1, 7, -1, 9, 10, 11, -1, -1, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, + 36, 37, 38, 39, -1, 153, 42, -1, -1, 12, + 13, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 46, 152, -1, 49, 12, 13, 52, -1, 54, + -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, + 106, -1, -1, -1, -1, -1, 112, 113, 114, 115, + 116, 117, -1, -1, -1, -1, 122, 123, 124, 125, + 93, 94, 95, -1, -1, -1, -1, -1, -1, 135, + 136, -1, -1, -1, 140, -1, 142, 143, -1, 145, + -1, 147, -1, 149, 150, -1, 152, 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, + 153, -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, 70, 71, 72, 73, 74, - -1, -1, -1, -1, 79, -1, -1, 82, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, - 57, -1, -1, 60, 61, -1, 63, 64, 65, -1, - -1, -1, 69, 6, -1, -1, 111, -1, -1, 114, - 115, 116, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 92, 93, 94, -1, 134, - 135, -1, -1, -1, 139, -1, -1, 6, -1, 144, - -1, 3, 4, -1, 149, -1, 151, 9, 10, 11, + -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, 112, -1, -1, 115, + 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 93, 94, 95, 135, + 136, -1, -1, -1, 140, -1, -1, -1, -1, 145, + -1, 3, 4, 5, 150, -1, 152, 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, 46, 152, -1, 49, -1, -1, - 52, -1, 54, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, - 72, 73, 74, -1, -1, -1, -1, 79, -1, -1, - 82, -1, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, -1, -1, -1, 6, -1, -1, -1, 111, - -1, -1, 114, 115, 116, -1, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, 134, 135, 143, -1, -1, 139, -1, -1, - 6, -1, 144, -1, 3, 4, -1, 149, -1, 151, - 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, 46, -1, -1, - 49, -1, -1, 52, -1, 54, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 47, 153, -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, + 112, -1, -1, 115, 116, 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, 71, 72, 73, 74, -1, -1, -1, -1, - 79, -1, -1, 82, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, -1, -1, -1, -1, 6, -1, - -1, -1, 111, -1, -1, 114, 115, 116, -1, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, 134, 135, 143, -1, -1, - 139, -1, -1, 6, -1, 144, -1, 3, 4, -1, - 149, -1, 151, 9, 10, 11, -1, -1, 14, 15, + 93, 94, 95, 135, 136, -1, -1, -1, 140, -1, + -1, -1, -1, 145, -1, 3, 4, -1, 150, -1, + 152, 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, + 153, -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, 112, -1, -1, 115, 116, 117, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 93, 94, 95, 135, 136, -1, + -1, -1, 140, -1, -1, -1, -1, 145, -1, 3, + 4, -1, 150, -1, 152, 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, 153, -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, 6, 70, -1, -1, 112, -1, + -1, 115, 116, 117, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, + 95, 135, 136, -1, -1, -1, 140, -1, -1, 6, + -1, 145, -1, 3, 4, -1, 150, -1, 152, 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, 153, -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, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, -1, -1, -1, -1, 6, -1, + -1, -1, 112, -1, -1, 115, 116, 117, -1, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, 135, 136, 144, -1, -1, + 140, -1, -1, 6, -1, 145, -1, 3, 4, -1, + 150, -1, 152, 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, - 46, -1, -1, 49, -1, -1, 52, -1, 54, -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, 70, 71, 72, 73, 74, -1, - -1, -1, -1, 79, -1, -1, 82, 125, 126, 127, + -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, + -1, -1, -1, -1, 80, -1, -1, 83, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, 6, 143, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, -1, -1, 114, 115, - 116, -1, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, 134, 135, - 143, -1, -1, 139, -1, -1, 6, -1, 144, -1, - 3, 4, 5, 149, -1, 151, 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, 6, -1, 42, - -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, + 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 112, -1, -1, 115, + 116, 117, -1, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, 135, + 136, 144, -1, -1, 140, -1, -1, 6, -1, 145, + -1, 3, 4, -1, 150, -1, 152, 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, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 111, 112, - 113, 114, 115, 116, -1, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, 134, 135, 143, -1, -1, 139, -1, -1, -1, - -1, 144, -1, -1, 8, -1, 149, -1, 151, 111, - -1, -1, 114, 115, 116, -1, 125, 126, 127, 128, + 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, 6, -1, + 112, -1, -1, 115, 116, 117, -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, 134, 135, 143, -1, -1, 139, -1, -1, - -1, -1, 144, -1, -1, 147, -1, 149, 8, 151, - 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, 8, -1, 3, - 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, + 139, -1, -1, 135, 136, 144, -1, -1, 140, -1, + -1, 6, -1, 145, -1, 3, 4, 5, 150, -1, + 152, 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, 112, -1, -1, 115, 116, + 117, -1, -1, -1, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 135, 136, + -1, -1, 144, 140, -1, -1, -1, -1, 145, -1, + -1, 148, -1, 150, -1, 152, -1, -1, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 8, -1, -1, -1, 144, -1, -1, -1, + -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, + -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, 135, 136, 144, + -1, -1, 140, -1, -1, -1, -1, 145, 8, 3, + 4, -1, 150, -1, 152, 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, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, 111, -1, - 143, 114, 115, 116, 147, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, 134, 135, 143, -1, -1, 139, -1, -1, -1, - -1, 144, -1, -1, 147, -1, 149, 111, 151, -1, - 114, 115, 116, -1, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - 134, 135, 143, -1, -1, 139, -1, -1, -1, -1, - 144, 8, 3, 4, -1, 149, -1, 151, 9, 10, + 34, 68, -1, -1, -1, -1, 8, -1, 3, 4, + -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, -1, -1, -1, -1, 144, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, 112, -1, + -1, 115, 116, 117, -1, -1, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, 135, 136, -1, 144, -1, 140, -1, -1, -1, + -1, 145, -1, -1, 148, -1, 150, 112, 152, -1, + 115, 116, 117, -1, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + 135, 136, 144, -1, -1, 140, -1, -1, -1, -1, + 145, 8, 3, 4, -1, 150, -1, 152, 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, 46, -1, -1, 49, -1, - -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, 72, 73, 74, 8, -1, 3, 4, 79, -1, - -1, 82, 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, - 111, -1, -1, 114, 115, 116, -1, -1, 125, 126, + 31, 32, 33, 34, 8, -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, 8, -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, 112, -1, -1, 115, 116, 117, -1, -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, 134, 135, -1, 143, -1, 139, 3, - 4, 5, -1, 144, -1, 9, 10, 11, 149, -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, 111, -1, -1, 114, 115, 116, - -1, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, 134, 135, 143, - -1, -1, 139, -1, -1, -1, -1, 144, -1, -1, - -1, -1, 149, -1, -1, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, 111, 112, 113, - 114, 115, 116, 0, 1, -1, -1, 4, -1, -1, - -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, - 134, 135, -1, -1, -1, 139, -1, -1, -1, -1, - 144, -1, -1, -1, -1, 149, -1, -1, 35, -1, - -1, -1, -1, 40, 41, -1, 43, 44, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, - 77, 78, 79, 80, 81, 82, -1, -1, 85, 86, - -1, -1, -1, -1, 91, 92, 93, 94, -1, -1, - 97, -1, 99, -1, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, -1, -1, 4, -1, -1, -1, - 117, 118, 119, 120, 12, 13, -1, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 35, -1, -1, - -1, -1, 40, 41, 152, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, -1, - 68, 69, 70, 71, 72, 73, 74, 75, -1, 77, - 78, 79, 80, 81, 82, -1, -1, 85, 86, 12, - 13, -1, -1, 91, 92, 93, 94, -1, -1, 97, - -1, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, -1, -1, -1, -1, -1, -1, 117, - 118, 119, 120, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, -1, 57, -1, -1, 60, 61, -1, - 63, 64, 65, -1, -1, -1, 69, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, 92, - 93, 94, 150, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, -1, 152, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, -1, - 152, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, -1, -1, 152, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, -1, -1, 152, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, -1, 152, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, - 152, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, -1, -1, 152, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, -1, -1, 152, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, -1, 152, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, - 152, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, -1, -1, 152, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, -1, -1, 152, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, -1, 152, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, - 152, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, -1, -1, 152, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, -1, -1, 152, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, -1, 152, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, - 152, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, -1, -1, 152, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, -1, -1, 152, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, -1, -1, 152, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - -1, 151, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, -1, -1, -1, -1, -1, -1, 151, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, 150, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, 150, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, 150, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, 150, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, -1, - -1, -1, 150, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 150, 125, + 137, 138, 139, -1, 135, 136, -1, 144, -1, 140, + -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, + -1, -1, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 112, -1, -1, 115, + 116, 117, -1, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, 135, + 136, 144, -1, -1, 140, -1, 0, 1, -1, 145, + 4, -1, -1, -1, 150, -1, -1, -1, 12, 13, + -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 35, -1, -1, -1, -1, 40, 41, 153, 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, -1, 92, 93, + 94, 95, -1, -1, 98, -1, 100, -1, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, + 4, -1, -1, -1, 118, 119, 120, 121, 12, 13, + -1, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 35, -1, -1, -1, -1, 40, 41, 153, 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, 12, 13, -1, -1, 92, 93, + 94, 95, -1, -1, 98, -1, 100, -1, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, + -1, -1, -1, -1, 118, 119, 120, 121, -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, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, 93, 94, 95, 151, -1, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, -1, 153, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, -1, 153, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, -1, 153, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, -1, -1, 153, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, -1, -1, 153, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, -1, 153, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, -1, -1, 153, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, -1, -1, 153, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, -1, 153, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, -1, -1, 153, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, -1, -1, 153, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, -1, 153, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, -1, + 153, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, -1, -1, 153, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, -1, -1, 153, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, -1, -1, 153, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + -1, -1, 153, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, -1, 152, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, -1, -1, -1, 150, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, -1, -1, -1, - 150, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, -1, -1, -1, 150, 125, 126, 127, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + -1, -1, -1, -1, -1, -1, 152, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, 146, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + 151, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + 151, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + 151, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + 151, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, -1, -1, -1, + 151, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, -1, -1, -1, 151, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, -1, -1, -1, -1, 144, -1, -1, -1, -1, + -1, -1, 151, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, -1, -1, -1, 151, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, -1, -1, -1, 151, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, 147, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - -1, -1, 147, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, 147, 125, 126, 127, 128, + 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, + 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, -1, -1, 147, 125, + 139, -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, 147, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, -1, -1, 147, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, 147, 125, 126, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, -1, -1, - 147, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, 147, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, -1, -1, 147, 125, 126, 127, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, 147, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - -1, -1, 147, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, 147, 125, 126, 127, 128, + 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, + 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, -1, -1, 147, 125, + 139, -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, 147, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, -1, -1, 147, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, 147, 125, 126, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, -1, -1, - 147, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, 147, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, -1, -1, 147, 125, 126, 127, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, 147, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - -1, -1, 147, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, -1, -1, 147, 125, 126, 127, 128, + 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, + 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, -1, -1, 147, 125, + 139, -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, -1, - -1, 147, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, -1, -1, 147, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, -1, -1, 147, 125, 126, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, -1, -1, - 147, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, -1, -1, 147, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, -1, -1, 147, 125, 126, 127, + 137, 138, 139, -1, -1, -1, -1, 144, -1, -1, + -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, -1, -1, 147, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - -1, -1, 147, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 138, 139, -1, -1, -1, -1, 144, -1, -1, -1, + 148, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, -1, -1, 148, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, 145, 125, 126, 127, + 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 145, 125, 126, + 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, 145, 125, + 137, 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - 145, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, 145, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, 145, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, 145, 125, 126, 127, + 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 145, 125, 126, + 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, 145, 125, + 137, 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - 145, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, 145, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, 145, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, 145, 125, 126, 127, + 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 145, 125, 126, + 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, 145, 125, + 137, 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - 145, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, 145, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, 145, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, 145, 125, 126, 127, + 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 145, 125, 126, + 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, 145, 125, + 137, 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - 145, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, 145, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, 145, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143, -1, 145, 125, 126, 127, + 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, -1, -1, -1, -1, 143, -1, 145, 125, 126, + 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, -1, -1, -1, -1, 143, -1, 145, 125, + 137, 138, 139, -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, 143, -1, 145, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, -1, -1, -1, -1, 143, -1, - 145, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, -1, -1, -1, -1, 143, - -1, 145, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, - 143, -1, 145, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, - -1, 143, -1, 145, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, - -1, -1, 143, -1, 145, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, - -1, -1, -1, 143, -1, 145, 125, 126, 127, 128, + 136, 137, 138, 139, -1, -1, -1, -1, 144, -1, + 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, -1, -1, -1, -1, 144, + -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, -1, -1, -1, -1, + 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, -1, -1, -1, + -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, -1, -1, + -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, -1, + -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + -1, -1, -1, -1, 144, -1, 146, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - -1, -1, -1, -1, 143 + 139, -1, -1, -1, -1, 144 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 155, 156, 6, 0, 4, 12, 13, 35, - 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, - 74, 75, 77, 78, 79, 80, 81, 82, 85, 86, - 91, 92, 93, 94, 97, 99, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 117, 118, 119, 120, - 157, 159, 160, 178, 182, 187, 190, 191, 192, 193, - 194, 195, 196, 216, 217, 218, 219, 220, 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, 105, 111, 112, 113, 114, 115, 116, 121, 122, - 123, 124, 134, 135, 139, 141, 142, 144, 146, 148, - 149, 151, 176, 177, 221, 222, 234, 13, 52, 144, - 6, 151, 6, 6, 6, 144, 151, 144, 144, 76, - 144, 151, 144, 144, 76, 151, 144, 144, 56, 52, - 52, 6, 52, 52, 49, 52, 54, 54, 46, 49, - 52, 54, 49, 52, 54, 49, 52, 144, 49, 151, - 134, 135, 144, 151, 223, 224, 223, 151, 46, 49, - 52, 151, 223, 4, 50, 60, 52, 52, 49, 4, - 105, 151, 4, 6, 46, 49, 4, 4, 4, 144, - 144, 144, 4, 151, 230, 4, 144, 144, 6, 146, - 4, 4, 5, 151, 5, 151, 144, 144, 144, 144, - 4, 146, 148, 153, 177, 151, 5, 234, 144, 146, - 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, - 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, - 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, - 144, 146, 144, 146, 144, 146, 144, 146, 144, 146, - 144, 144, 144, 144, 7, 144, 144, 144, 4, 221, - 221, 221, 221, 147, 151, 221, 4, 97, 98, 4, - 4, 187, 188, 189, 221, 6, 6, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 143, 6, 6, 221, 5, 221, 221, 4, 46, - 49, 52, 54, 135, 187, 196, 221, 228, 229, 221, - 221, 144, 221, 229, 221, 221, 144, 229, 221, 221, - 135, 151, 221, 226, 228, 144, 151, 144, 144, 5, - 226, 227, 227, 227, 144, 183, 184, 185, 186, 144, - 144, 144, 226, 221, 4, 226, 223, 223, 223, 221, - 221, 134, 135, 151, 151, 223, 151, 151, 151, 134, - 135, 144, 189, 223, 151, 144, 151, 144, 144, 227, - 226, 144, 4, 6, 146, 146, 189, 6, 151, 151, - 146, 146, 6, 221, 221, 221, 148, 221, 151, 100, - 221, 221, 221, 6, 6, 189, 6, 189, 4, 233, - 234, 233, 233, 233, 146, 221, 4, 151, 161, 6, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 233, 233, 233, 233, 221, 233, 233, 233, - 146, 145, 7, 124, 229, 147, 7, 176, 177, 148, - 7, 146, 152, 46, 49, 52, 54, 182, 6, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 6, 145, 150, 150, 145, 146, - 5, 151, 5, 5, 5, 221, 228, 8, 136, 150, - 152, 145, 145, 221, 145, 152, 145, 145, 221, 152, - 145, 145, 151, 152, 229, 136, 7, 221, 221, 221, - 221, 7, 7, 214, 214, 221, 144, 144, 144, 144, - 221, 221, 221, 7, 151, 145, 6, 150, 150, 150, - 223, 223, 188, 188, 150, 221, 221, 221, 221, 200, - 150, 189, 221, 221, 221, 221, 7, 215, 7, 221, - 6, 221, 221, 152, 229, 229, 221, 221, 145, 145, - 145, 97, 150, 189, 151, 8, 145, 147, 152, 152, - 146, 148, 145, 145, 145, 145, 221, 147, 177, 221, - 4, 87, 88, 89, 90, 152, 164, 168, 171, 173, - 174, 145, 147, 145, 147, 145, 147, 145, 147, 145, - 147, 145, 147, 145, 147, 145, 147, 145, 147, 145, - 147, 145, 147, 150, 150, 145, 147, 145, 147, 145, - 147, 145, 147, 145, 147, 145, 147, 150, 150, 150, - 150, 150, 150, 145, 150, 150, 145, 145, 6, 150, - 145, 150, 221, 226, 226, 152, 7, 148, 176, 177, - 234, 221, 6, 4, 4, 151, 231, 147, 151, 151, - 151, 151, 8, 6, 131, 158, 229, 221, 7, 147, - 151, 221, 221, 221, 228, 221, 228, 100, 7, 7, - 145, 7, 100, 7, 7, 145, 100, 7, 7, 229, - 152, 151, 221, 145, 152, 145, 145, 221, 226, 4, - 213, 6, 145, 179, 221, 234, 179, 179, 179, 145, - 145, 145, 226, 229, 148, 223, 221, 221, 152, 152, - 221, 150, 150, 150, 67, 77, 83, 84, 210, 211, - 223, 152, 197, 145, 152, 145, 145, 221, 6, 221, - 145, 147, 147, 152, 152, 147, 147, 7, 7, 7, - 148, 221, 152, 221, 221, 7, 148, 221, 4, 7, - 7, 7, 7, 147, 148, 177, 233, 152, 165, 144, - 144, 151, 175, 6, 221, 221, 221, 221, 221, 221, - 221, 221, 229, 233, 221, 233, 147, 6, 6, 147, - 4, 97, 98, 221, 6, 6, 6, 7, 146, 230, - 232, 6, 229, 229, 229, 229, 221, 131, 233, 145, - 150, 223, 229, 152, 8, 52, 226, 226, 7, 226, - 52, 54, 226, 226, 7, 54, 226, 226, 152, 229, - 6, 7, 7, 7, 7, 67, 212, 6, 7, 145, - 145, 145, 145, 7, 7, 7, 6, 152, 4, 150, - 150, 150, 152, 223, 223, 223, 4, 6, 151, 144, - 152, 211, 150, 210, 7, 6, 7, 7, 6, 151, - 6, 6, 6, 52, 6, 6, 226, 226, 226, 4, - 150, 8, 8, 145, 4, 4, 147, 151, 151, 151, - 151, 6, 4, 6, 144, 221, 221, 225, 226, 151, - 145, 147, 145, 147, 145, 147, 145, 147, 145, 145, - 145, 145, 176, 7, 176, 177, 148, 7, 6, 230, - 221, 150, 152, 152, 152, 152, 152, 6, 6, 158, - 221, 6, 152, 221, 151, 60, 181, 181, 226, 6, - 151, 151, 6, 6, 226, 151, 6, 6, 152, 5, - 226, 226, 226, 4, 6, 226, 7, 7, 7, 7, - 226, 226, 226, 7, 6, 7, 221, 221, 221, 151, - 150, 152, 150, 152, 150, 152, 146, 221, 226, 221, - 221, 223, 152, 5, 151, 226, 151, 151, 226, 229, - 151, 6, 6, 96, 221, 221, 221, 6, 7, 148, - 226, 226, 226, 226, 177, 162, 221, 150, 150, 150, - 152, 163, 221, 226, 234, 221, 6, 4, 231, 6, - 147, 230, 6, 6, 6, 6, 233, 150, 147, 221, - 223, 6, 6, 6, 221, 221, 6, 221, 5, 6, - 6, 100, 180, 221, 6, 226, 226, 226, 226, 6, - 4, 6, 6, 221, 221, 234, 152, 145, 150, 152, - 188, 223, 6, 201, 223, 6, 202, 223, 6, 203, - 221, 152, 150, 145, 152, 150, 6, 135, 223, 6, - 223, 223, 6, 152, 221, 226, 150, 152, 8, 152, - 145, 151, 221, 234, 4, 150, 150, 150, 150, 145, - 150, 221, 221, 226, 151, 150, 152, 6, 6, 6, - 7, 6, 148, 6, 221, 152, 152, 152, 152, 5, - 50, 6, 6, 6, 6, 6, 151, 151, 6, 6, - 151, 221, 152, 150, 151, 150, 151, 150, 151, 147, - 6, 226, 7, 151, 221, 150, 150, 150, 6, 152, - 95, 221, 221, 229, 6, 6, 226, 226, 226, 226, - 166, 221, 150, 150, 225, 221, 6, 230, 98, 150, - 6, 6, 6, 6, 6, 151, 225, 229, 188, 150, - 152, 221, 223, 210, 221, 223, 210, 221, 223, 210, - 6, 150, 152, 226, 189, 152, 223, 229, 223, 221, - 152, 152, 152, 152, 152, 152, 152, 151, 221, 221, - 152, 6, 221, 221, 152, 152, 152, 221, 152, 150, - 152, 152, 150, 152, 152, 150, 152, 226, 6, 67, - 152, 198, 151, 150, 152, 150, 6, 6, 6, 6, - 6, 6, 163, 145, 150, 6, 151, 150, 152, 6, - 6, 152, 6, 204, 221, 6, 6, 205, 221, 6, - 6, 206, 221, 6, 152, 221, 210, 189, 229, 6, - 223, 229, 152, 169, 221, 225, 221, 151, 152, 151, - 152, 151, 152, 6, 6, 152, 152, 199, 152, 150, - 152, 6, 151, 145, 152, 152, 210, 6, 207, 210, - 6, 208, 210, 6, 209, 210, 6, 229, 6, 167, - 233, 172, 151, 6, 152, 151, 152, 151, 152, 151, - 152, 152, 150, 152, 151, 225, 6, 210, 6, 210, - 6, 210, 6, 233, 6, 170, 233, 152, 152, 152, - 152, 150, 152, 6, 6, 6, 6, 233, 6 + 0, 1, 156, 157, 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, 92, 93, 94, 95, 98, 100, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 118, 119, 120, + 121, 158, 160, 161, 179, 183, 188, 191, 192, 193, + 194, 195, 196, 197, 217, 218, 219, 220, 221, 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, 106, 112, 113, 114, 115, 116, 117, 122, + 123, 124, 125, 135, 136, 140, 142, 143, 145, 147, + 149, 150, 152, 177, 178, 222, 223, 235, 13, 53, + 145, 6, 152, 6, 6, 6, 6, 145, 152, 145, + 145, 77, 145, 152, 145, 145, 77, 152, 145, 145, + 57, 53, 53, 6, 53, 53, 50, 53, 55, 55, + 47, 50, 53, 55, 50, 53, 55, 50, 53, 145, + 50, 152, 135, 136, 145, 152, 224, 225, 224, 152, + 47, 50, 53, 152, 224, 4, 51, 61, 53, 53, + 50, 4, 106, 152, 4, 6, 47, 50, 4, 4, + 4, 145, 145, 145, 4, 152, 231, 4, 145, 145, + 6, 147, 4, 4, 5, 152, 5, 152, 145, 145, + 145, 145, 4, 147, 149, 154, 178, 152, 5, 235, + 145, 147, 145, 147, 145, 147, 145, 147, 145, 147, + 145, 147, 145, 147, 145, 147, 145, 147, 145, 147, + 145, 147, 145, 147, 145, 147, 145, 147, 145, 147, + 145, 147, 145, 147, 145, 147, 145, 147, 145, 147, + 145, 147, 145, 145, 145, 145, 7, 145, 145, 145, + 4, 222, 222, 222, 222, 148, 152, 222, 4, 98, + 99, 4, 4, 188, 189, 190, 222, 6, 6, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 144, 6, 6, 222, 5, 222, 222, + 4, 47, 50, 53, 55, 136, 188, 197, 222, 229, + 230, 222, 222, 145, 222, 230, 222, 222, 145, 230, + 222, 222, 136, 152, 222, 227, 229, 145, 152, 145, + 145, 5, 227, 228, 228, 228, 145, 184, 185, 186, + 187, 145, 145, 145, 227, 222, 4, 227, 224, 224, + 224, 222, 222, 135, 136, 152, 152, 224, 152, 152, + 152, 135, 136, 145, 190, 224, 152, 145, 152, 145, + 145, 228, 227, 145, 4, 6, 147, 147, 190, 6, + 152, 152, 147, 147, 6, 222, 222, 222, 149, 222, + 152, 101, 222, 222, 222, 6, 6, 190, 6, 190, + 4, 234, 235, 234, 234, 234, 147, 222, 4, 152, + 162, 6, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 234, 234, 234, 234, 222, 234, + 234, 234, 147, 146, 7, 125, 230, 148, 7, 177, + 178, 149, 7, 147, 153, 47, 50, 53, 55, 183, + 6, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 6, 146, 151, 151, + 146, 147, 5, 152, 5, 5, 5, 222, 229, 8, + 137, 151, 153, 146, 146, 222, 146, 153, 146, 146, + 222, 153, 146, 146, 152, 153, 230, 137, 7, 222, + 222, 222, 222, 7, 7, 215, 215, 222, 145, 145, + 145, 145, 222, 222, 222, 7, 152, 146, 6, 151, + 151, 151, 224, 224, 189, 189, 151, 222, 222, 222, + 222, 201, 151, 190, 222, 222, 222, 222, 7, 216, + 7, 222, 6, 222, 222, 153, 230, 230, 222, 222, + 146, 146, 146, 98, 151, 190, 152, 8, 146, 148, + 153, 153, 147, 149, 146, 146, 146, 146, 222, 148, + 178, 222, 4, 88, 89, 90, 91, 153, 165, 169, + 172, 174, 175, 146, 148, 146, 148, 146, 148, 146, + 148, 146, 148, 146, 148, 146, 148, 146, 148, 146, + 148, 146, 148, 146, 148, 151, 151, 146, 148, 146, + 148, 146, 148, 146, 148, 146, 148, 146, 148, 151, + 151, 151, 151, 151, 151, 146, 151, 151, 146, 146, + 6, 151, 146, 151, 222, 227, 227, 153, 7, 149, + 177, 178, 235, 222, 6, 4, 4, 152, 232, 148, + 152, 152, 152, 152, 8, 6, 132, 159, 230, 222, + 7, 148, 152, 222, 222, 222, 229, 222, 229, 101, + 7, 7, 146, 7, 101, 7, 7, 146, 101, 7, + 7, 230, 153, 152, 222, 146, 153, 146, 146, 222, + 227, 4, 214, 6, 146, 180, 222, 235, 180, 180, + 180, 146, 146, 146, 227, 230, 149, 224, 222, 222, + 153, 153, 222, 151, 151, 151, 68, 78, 84, 85, + 211, 212, 224, 153, 198, 146, 153, 146, 146, 222, + 6, 222, 146, 148, 148, 153, 153, 148, 148, 7, + 7, 7, 149, 222, 153, 222, 222, 7, 149, 222, + 4, 7, 7, 7, 7, 148, 149, 178, 234, 153, + 166, 145, 145, 152, 176, 6, 222, 222, 222, 222, + 222, 222, 222, 222, 230, 234, 222, 234, 148, 6, + 6, 148, 4, 98, 99, 222, 6, 6, 6, 7, + 147, 231, 233, 6, 230, 230, 230, 230, 222, 132, + 234, 146, 151, 224, 230, 153, 8, 53, 227, 227, + 7, 227, 53, 55, 227, 227, 7, 55, 227, 227, + 153, 230, 6, 7, 7, 7, 7, 68, 213, 6, + 7, 146, 146, 146, 146, 7, 7, 7, 6, 153, + 4, 151, 151, 151, 153, 224, 224, 224, 4, 6, + 152, 145, 153, 212, 151, 211, 7, 6, 7, 7, + 6, 152, 6, 6, 6, 53, 6, 6, 227, 227, + 227, 4, 151, 8, 8, 146, 4, 4, 148, 152, + 152, 152, 152, 6, 4, 6, 145, 222, 222, 226, + 227, 152, 146, 148, 146, 148, 146, 148, 146, 148, + 146, 146, 146, 146, 177, 7, 177, 178, 149, 7, + 6, 231, 222, 151, 153, 153, 153, 153, 153, 6, + 6, 159, 222, 6, 153, 222, 152, 61, 182, 182, + 227, 6, 152, 152, 6, 6, 227, 152, 6, 6, + 153, 5, 227, 227, 227, 4, 6, 227, 7, 7, + 7, 7, 227, 227, 227, 7, 6, 7, 222, 222, + 222, 152, 151, 153, 151, 153, 151, 153, 147, 222, + 227, 222, 222, 224, 153, 5, 152, 227, 152, 152, + 227, 230, 152, 6, 6, 97, 222, 222, 222, 6, + 7, 149, 227, 227, 227, 227, 178, 163, 222, 151, + 151, 151, 153, 164, 222, 227, 235, 222, 6, 4, + 232, 6, 148, 231, 6, 6, 6, 6, 234, 151, + 148, 222, 224, 6, 6, 6, 222, 222, 6, 222, + 5, 6, 6, 101, 181, 222, 6, 227, 227, 227, + 227, 6, 4, 6, 6, 222, 222, 235, 153, 146, + 151, 153, 189, 224, 6, 202, 224, 6, 203, 224, + 6, 204, 222, 153, 151, 146, 153, 151, 6, 136, + 224, 6, 224, 224, 6, 153, 222, 227, 151, 153, + 8, 153, 146, 152, 222, 235, 4, 151, 151, 151, + 151, 146, 151, 222, 222, 227, 152, 151, 153, 6, + 6, 6, 7, 6, 149, 6, 222, 153, 153, 153, + 153, 5, 51, 6, 6, 6, 6, 6, 152, 152, + 6, 6, 152, 222, 153, 151, 152, 151, 152, 151, + 152, 148, 6, 227, 7, 152, 222, 151, 151, 151, + 6, 153, 96, 222, 222, 230, 6, 6, 227, 227, + 227, 227, 167, 222, 151, 151, 226, 222, 6, 231, + 99, 151, 6, 6, 6, 6, 6, 152, 226, 230, + 189, 151, 153, 222, 224, 211, 222, 224, 211, 222, + 224, 211, 6, 151, 153, 227, 190, 153, 224, 230, + 224, 222, 153, 153, 153, 153, 153, 153, 153, 152, + 222, 222, 153, 6, 222, 222, 153, 153, 153, 222, + 153, 151, 153, 153, 151, 153, 153, 151, 153, 227, + 6, 68, 153, 199, 152, 151, 153, 151, 6, 6, + 6, 6, 6, 6, 164, 146, 151, 6, 152, 151, + 153, 6, 6, 153, 6, 205, 222, 6, 6, 206, + 222, 6, 6, 207, 222, 6, 153, 222, 211, 190, + 230, 6, 224, 230, 153, 170, 222, 226, 222, 152, + 153, 152, 153, 152, 153, 6, 6, 153, 153, 200, + 153, 151, 153, 6, 152, 146, 153, 153, 211, 6, + 208, 211, 6, 209, 211, 6, 210, 211, 6, 230, + 6, 168, 234, 173, 152, 6, 153, 152, 153, 152, + 153, 152, 153, 153, 151, 153, 152, 226, 6, 211, + 6, 211, 6, 211, 6, 234, 6, 171, 234, 153, + 153, 153, 153, 151, 153, 6, 6, 6, 6, 234, + 6 }; #define yyerrok (yyerrstatus = 0) @@ -6803,16 +6800,25 @@ yyreduce: /* Line 1464 of yacc.c */ #line 2417 "Gmsh.y" + { + GModel::current()->createTopologyFromMesh(1); + ;} + break; + + case 174: + +/* Line 1464 of yacc.c */ +#line 2421 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 174: + case 175: /* Line 1464 of yacc.c */ -#line 2427 "Gmsh.y" +#line 2431 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -6831,10 +6837,10 @@ yyreduce: ;} break; - case 175: + case 176: /* Line 1464 of yacc.c */ -#line 2444 "Gmsh.y" +#line 2448 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -6853,10 +6859,10 @@ yyreduce: ;} break; - case 176: + case 177: /* Line 1464 of yacc.c */ -#line 2461 "Gmsh.y" +#line 2465 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -6877,10 +6883,10 @@ yyreduce: ;} break; - case 177: + case 178: /* Line 1464 of yacc.c */ -#line 2480 "Gmsh.y" +#line 2484 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -6901,10 +6907,10 @@ yyreduce: ;} break; - case 178: + case 179: /* Line 1464 of yacc.c */ -#line 2499 "Gmsh.y" +#line 2503 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6936,10 +6942,10 @@ yyreduce: ;} break; - case 179: + case 180: /* Line 1464 of yacc.c */ -#line 2529 "Gmsh.y" +#line 2533 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6949,10 +6955,10 @@ yyreduce: ;} break; - case 180: + case 181: /* Line 1464 of yacc.c */ -#line 2537 "Gmsh.y" +#line 2541 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6960,10 +6966,10 @@ yyreduce: ;} break; - case 181: + case 182: /* Line 1464 of yacc.c */ -#line 2543 "Gmsh.y" +#line 2547 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6972,27 +6978,27 @@ yyreduce: ;} break; - case 182: + case 183: /* Line 1464 of yacc.c */ -#line 2550 "Gmsh.y" +#line 2554 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 183: + case 184: /* Line 1464 of yacc.c */ -#line 2554 "Gmsh.y" +#line 2558 "Gmsh.y" { ;} break; - case 184: + case 185: /* Line 1464 of yacc.c */ -#line 2563 "Gmsh.y" +#line 2567 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -7002,10 +7008,10 @@ yyreduce: ;} break; - case 185: + case 186: /* Line 1464 of yacc.c */ -#line 2571 "Gmsh.y" +#line 2575 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -7015,10 +7021,10 @@ yyreduce: ;} break; - case 186: + case 187: /* Line 1464 of yacc.c */ -#line 2579 "Gmsh.y" +#line 2583 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -7028,19 +7034,19 @@ yyreduce: ;} break; - case 187: + case 188: /* Line 1464 of yacc.c */ -#line 2587 "Gmsh.y" +#line 2591 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 188: + case 189: /* Line 1464 of yacc.c */ -#line 2591 "Gmsh.y" +#line 2595 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -7050,19 +7056,19 @@ yyreduce: ;} break; - case 189: + case 190: /* Line 1464 of yacc.c */ -#line 2599 "Gmsh.y" +#line 2603 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 190: + case 191: /* Line 1464 of yacc.c */ -#line 2603 "Gmsh.y" +#line 2607 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -7072,19 +7078,19 @@ yyreduce: ;} break; - case 191: + case 192: /* Line 1464 of yacc.c */ -#line 2611 "Gmsh.y" +#line 2615 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 192: + case 193: /* Line 1464 of yacc.c */ -#line 2615 "Gmsh.y" +#line 2619 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -7094,19 +7100,19 @@ yyreduce: ;} break; - case 193: + case 194: /* Line 1464 of yacc.c */ -#line 2623 "Gmsh.y" +#line 2627 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 194: + case 195: /* Line 1464 of yacc.c */ -#line 2627 "Gmsh.y" +#line 2631 "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., @@ -7115,10 +7121,10 @@ yyreduce: ;} break; - case 195: + case 196: /* Line 1464 of yacc.c */ -#line 2635 "Gmsh.y" +#line 2639 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -7127,10 +7133,10 @@ yyreduce: ;} break; - case 196: + case 197: /* Line 1464 of yacc.c */ -#line 2642 "Gmsh.y" +#line 2646 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -7139,10 +7145,10 @@ yyreduce: ;} break; - case 197: + case 198: /* Line 1464 of yacc.c */ -#line 2649 "Gmsh.y" +#line 2653 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -7151,10 +7157,10 @@ yyreduce: ;} break; - case 198: + case 199: /* Line 1464 of yacc.c */ -#line 2656 "Gmsh.y" +#line 2660 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7163,10 +7169,10 @@ yyreduce: ;} break; - case 199: + case 200: /* Line 1464 of yacc.c */ -#line 2663 "Gmsh.y" +#line 2667 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7175,10 +7181,10 @@ yyreduce: ;} break; - case 200: + case 201: /* Line 1464 of yacc.c */ -#line 2670 "Gmsh.y" +#line 2674 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7187,10 +7193,10 @@ yyreduce: ;} break; - case 201: + case 202: /* Line 1464 of yacc.c */ -#line 2677 "Gmsh.y" +#line 2681 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -7199,10 +7205,10 @@ yyreduce: ;} break; - case 202: + case 203: /* Line 1464 of yacc.c */ -#line 2684 "Gmsh.y" +#line 2688 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -7211,10 +7217,10 @@ yyreduce: ;} break; - case 203: + case 204: /* Line 1464 of yacc.c */ -#line 2691 "Gmsh.y" +#line 2695 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -7223,19 +7229,19 @@ yyreduce: ;} break; - case 204: + case 205: /* Line 1464 of yacc.c */ -#line 2698 "Gmsh.y" +#line 2702 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 205: + case 206: /* Line 1464 of yacc.c */ -#line 2702 "Gmsh.y" +#line 2706 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -7244,19 +7250,19 @@ yyreduce: ;} break; - case 206: + case 207: /* Line 1464 of yacc.c */ -#line 2709 "Gmsh.y" +#line 2713 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 207: + case 208: /* Line 1464 of yacc.c */ -#line 2713 "Gmsh.y" +#line 2717 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -7265,19 +7271,19 @@ yyreduce: ;} break; - case 208: + case 209: /* Line 1464 of yacc.c */ -#line 2720 "Gmsh.y" +#line 2724 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 209: + case 210: /* Line 1464 of yacc.c */ -#line 2724 "Gmsh.y" +#line 2728 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -7286,19 +7292,19 @@ yyreduce: ;} break; - case 210: + case 211: /* Line 1464 of yacc.c */ -#line 2731 "Gmsh.y" +#line 2735 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 211: + case 212: /* Line 1464 of yacc.c */ -#line 2735 "Gmsh.y" +#line 2739 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -7307,19 +7313,19 @@ yyreduce: ;} break; - case 212: + case 213: /* Line 1464 of yacc.c */ -#line 2742 "Gmsh.y" +#line 2746 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 213: + case 214: /* Line 1464 of yacc.c */ -#line 2746 "Gmsh.y" +#line 2750 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -7328,19 +7334,19 @@ yyreduce: ;} break; - case 214: + case 215: /* Line 1464 of yacc.c */ -#line 2753 "Gmsh.y" +#line 2757 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 215: + case 216: /* Line 1464 of yacc.c */ -#line 2757 "Gmsh.y" +#line 2761 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -7349,19 +7355,19 @@ yyreduce: ;} break; - case 216: + case 217: /* Line 1464 of yacc.c */ -#line 2764 "Gmsh.y" +#line 2768 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 217: + case 218: /* Line 1464 of yacc.c */ -#line 2768 "Gmsh.y" +#line 2772 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -7370,19 +7376,19 @@ yyreduce: ;} break; - case 218: + case 219: /* Line 1464 of yacc.c */ -#line 2775 "Gmsh.y" +#line 2779 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 219: + case 220: /* Line 1464 of yacc.c */ -#line 2779 "Gmsh.y" +#line 2783 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -7391,19 +7397,19 @@ yyreduce: ;} break; - case 220: + case 221: /* Line 1464 of yacc.c */ -#line 2786 "Gmsh.y" +#line 2790 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 221: + case 222: /* Line 1464 of yacc.c */ -#line 2790 "Gmsh.y" +#line 2794 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -7412,26 +7418,26 @@ yyreduce: ;} break; - case 222: + case 223: /* Line 1464 of yacc.c */ -#line 2801 "Gmsh.y" +#line 2805 "Gmsh.y" { ;} break; - case 223: + case 224: /* Line 1464 of yacc.c */ -#line 2804 "Gmsh.y" +#line 2808 "Gmsh.y" { ;} break; - case 224: + case 225: /* Line 1464 of yacc.c */ -#line 2810 "Gmsh.y" +#line 2814 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -7442,10 +7448,10 @@ yyreduce: ;} break; - case 225: + case 226: /* Line 1464 of yacc.c */ -#line 2819 "Gmsh.y" +#line 2823 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -7467,10 +7473,10 @@ yyreduce: ;} break; - case 226: + case 227: /* Line 1464 of yacc.c */ -#line 2839 "Gmsh.y" +#line 2843 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -7495,19 +7501,19 @@ yyreduce: ;} break; - case 227: + case 228: /* Line 1464 of yacc.c */ -#line 2862 "Gmsh.y" +#line 2866 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 228: + case 229: /* Line 1464 of yacc.c */ -#line 2866 "Gmsh.y" +#line 2870 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -7528,10 +7534,10 @@ yyreduce: ;} break; - case 229: + case 230: /* Line 1464 of yacc.c */ -#line 2885 "Gmsh.y" +#line 2889 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -7541,19 +7547,19 @@ yyreduce: ;} break; - case 230: + case 231: /* Line 1464 of yacc.c */ -#line 2897 "Gmsh.y" +#line 2901 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 231: + case 232: /* Line 1464 of yacc.c */ -#line 2901 "Gmsh.y" +#line 2905 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -7568,19 +7574,19 @@ yyreduce: ;} break; - case 232: + case 233: /* Line 1464 of yacc.c */ -#line 2916 "Gmsh.y" +#line 2920 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 233: + case 234: /* Line 1464 of yacc.c */ -#line 2920 "Gmsh.y" +#line 2924 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -7592,46 +7598,46 @@ yyreduce: ;} break; - case 234: + case 235: /* Line 1464 of yacc.c */ -#line 2932 "Gmsh.y" +#line 2936 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 235: + case 236: /* Line 1464 of yacc.c */ -#line 2936 "Gmsh.y" +#line 2940 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 236: + case 237: /* Line 1464 of yacc.c */ -#line 2941 "Gmsh.y" +#line 2945 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 237: + case 238: /* Line 1464 of yacc.c */ -#line 2945 "Gmsh.y" +#line 2949 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 238: + case 239: /* Line 1464 of yacc.c */ -#line 2952 "Gmsh.y" +#line 2956 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -7689,10 +7695,10 @@ yyreduce: ;} break; - case 239: + case 240: /* Line 1464 of yacc.c */ -#line 3008 "Gmsh.y" +#line 3012 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -7764,20 +7770,20 @@ yyreduce: ;} break; - case 240: + case 241: /* Line 1464 of yacc.c */ -#line 3078 "Gmsh.y" +#line 3082 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 241: + case 242: /* Line 1464 of yacc.c */ -#line 3083 "Gmsh.y" +#line 3087 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -7846,10 +7852,10 @@ yyreduce: ;} break; - case 242: + case 243: /* Line 1464 of yacc.c */ -#line 3150 "Gmsh.y" +#line 3154 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -7894,10 +7900,10 @@ yyreduce: ;} break; - case 243: + case 244: /* Line 1464 of yacc.c */ -#line 3193 "Gmsh.y" +#line 3197 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -7919,10 +7925,10 @@ yyreduce: ;} break; - case 244: + case 245: /* Line 1464 of yacc.c */ -#line 3218 "Gmsh.y" +#line 3222 "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", @@ -7951,10 +7957,10 @@ yyreduce: ;} break; - case 245: + case 246: /* Line 1464 of yacc.c */ -#line 3246 "Gmsh.y" +#line 3250 "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 " @@ -7992,10 +7998,10 @@ yyreduce: ;} break; - case 246: + case 247: /* Line 1464 of yacc.c */ -#line 3289 "Gmsh.y" +#line 3293 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8020,10 +8026,10 @@ yyreduce: ;} break; - case 247: + case 248: /* Line 1464 of yacc.c */ -#line 3312 "Gmsh.y" +#line 3316 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -8048,35 +8054,35 @@ yyreduce: ;} break; - case 248: + case 249: /* Line 1464 of yacc.c */ -#line 3335 "Gmsh.y" +#line 3339 "Gmsh.y" { ;} break; - case 249: + case 250: /* Line 1464 of yacc.c */ -#line 3338 "Gmsh.y" +#line 3342 "Gmsh.y" { ;} break; - case 250: + case 251: /* Line 1464 of yacc.c */ -#line 3347 "Gmsh.y" +#line 3351 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 251: + case 252: /* Line 1464 of yacc.c */ -#line 3351 "Gmsh.y" +#line 3355 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -8088,10 +8094,10 @@ yyreduce: ;} break; - case 252: + case 253: /* Line 1464 of yacc.c */ -#line 3361 "Gmsh.y" +#line 3365 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ double d; @@ -8123,10 +8129,10 @@ yyreduce: ;} break; - case 253: + case 254: /* Line 1464 of yacc.c */ -#line 3398 "Gmsh.y" +#line 3402 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); @@ -8164,10 +8170,10 @@ yyreduce: ;} break; - case 254: + case 255: /* Line 1464 of yacc.c */ -#line 3435 "Gmsh.y" +#line 3439 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8204,10 +8210,10 @@ yyreduce: ;} break; - case 255: + case 256: /* Line 1464 of yacc.c */ -#line 3471 "Gmsh.y" +#line 3475 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8244,10 +8250,10 @@ yyreduce: ;} break; - case 256: + case 257: /* Line 1464 of yacc.c */ -#line 3506 "Gmsh.y" +#line 3510 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); std::vector<int> domain; @@ -8284,66 +8290,66 @@ yyreduce: ;} break; - case 257: + case 258: /* Line 1464 of yacc.c */ -#line 3545 "Gmsh.y" +#line 3549 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 258: + case 259: /* Line 1464 of yacc.c */ -#line 3546 "Gmsh.y" +#line 3550 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 259: + case 260: /* Line 1464 of yacc.c */ -#line 3547 "Gmsh.y" +#line 3551 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 260: + case 261: /* Line 1464 of yacc.c */ -#line 3548 "Gmsh.y" +#line 3552 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 261: + case 262: /* Line 1464 of yacc.c */ -#line 3549 "Gmsh.y" +#line 3553 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 262: + case 263: /* Line 1464 of yacc.c */ -#line 3550 "Gmsh.y" +#line 3554 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 263: + case 264: /* Line 1464 of yacc.c */ -#line 3551 "Gmsh.y" +#line 3555 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 264: + case 265: /* Line 1464 of yacc.c */ -#line 3552 "Gmsh.y" +#line 3556 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 265: + case 266: /* Line 1464 of yacc.c */ -#line 3554 "Gmsh.y" +#line 3558 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -8352,430 +8358,430 @@ yyreduce: ;} break; - case 266: + case 267: /* Line 1464 of yacc.c */ -#line 3560 "Gmsh.y" +#line 3564 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; - case 267: + case 268: /* Line 1464 of yacc.c */ -#line 3561 "Gmsh.y" +#line 3565 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; - case 268: + case 269: /* Line 1464 of yacc.c */ -#line 3562 "Gmsh.y" +#line 3566 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; - case 269: + case 270: /* Line 1464 of yacc.c */ -#line 3563 "Gmsh.y" +#line 3567 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; - case 270: + case 271: /* Line 1464 of yacc.c */ -#line 3564 "Gmsh.y" +#line 3568 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; - case 271: + case 272: /* Line 1464 of yacc.c */ -#line 3565 "Gmsh.y" +#line 3569 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; - case 272: + case 273: /* Line 1464 of yacc.c */ -#line 3566 "Gmsh.y" +#line 3570 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; - case 273: + case 274: /* Line 1464 of yacc.c */ -#line 3567 "Gmsh.y" +#line 3571 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; - case 274: + case 275: /* Line 1464 of yacc.c */ -#line 3568 "Gmsh.y" +#line 3572 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; - case 275: + case 276: /* Line 1464 of yacc.c */ -#line 3569 "Gmsh.y" +#line 3573 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; - case 276: + case 277: /* Line 1464 of yacc.c */ -#line 3570 "Gmsh.y" +#line 3574 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; - case 277: + case 278: /* Line 1464 of yacc.c */ -#line 3571 "Gmsh.y" +#line 3575 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 278: + case 279: /* Line 1464 of yacc.c */ -#line 3572 "Gmsh.y" +#line 3576 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 279: + case 280: /* Line 1464 of yacc.c */ -#line 3573 "Gmsh.y" +#line 3577 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 280: + case 281: /* Line 1464 of yacc.c */ -#line 3574 "Gmsh.y" +#line 3578 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 281: + case 282: /* Line 1464 of yacc.c */ -#line 3575 "Gmsh.y" +#line 3579 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 282: + case 283: /* Line 1464 of yacc.c */ -#line 3576 "Gmsh.y" +#line 3580 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 283: + case 284: /* Line 1464 of yacc.c */ -#line 3577 "Gmsh.y" +#line 3581 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 284: + case 285: /* Line 1464 of yacc.c */ -#line 3578 "Gmsh.y" +#line 3582 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 285: + case 286: /* Line 1464 of yacc.c */ -#line 3579 "Gmsh.y" +#line 3583 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 286: + case 287: /* Line 1464 of yacc.c */ -#line 3580 "Gmsh.y" +#line 3584 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 287: + case 288: /* Line 1464 of yacc.c */ -#line 3581 "Gmsh.y" +#line 3585 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 288: + case 289: /* Line 1464 of yacc.c */ -#line 3582 "Gmsh.y" +#line 3586 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 289: + case 290: /* Line 1464 of yacc.c */ -#line 3583 "Gmsh.y" +#line 3587 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 290: + case 291: /* Line 1464 of yacc.c */ -#line 3584 "Gmsh.y" +#line 3588 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 291: + case 292: /* Line 1464 of yacc.c */ -#line 3585 "Gmsh.y" +#line 3589 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 292: + case 293: /* Line 1464 of yacc.c */ -#line 3586 "Gmsh.y" +#line 3590 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 293: + case 294: /* Line 1464 of yacc.c */ -#line 3587 "Gmsh.y" +#line 3591 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 294: + case 295: /* Line 1464 of yacc.c */ -#line 3588 "Gmsh.y" +#line 3592 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 295: + case 296: /* Line 1464 of yacc.c */ -#line 3589 "Gmsh.y" +#line 3593 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 296: + case 297: /* Line 1464 of yacc.c */ -#line 3590 "Gmsh.y" +#line 3594 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 297: + case 298: /* Line 1464 of yacc.c */ -#line 3591 "Gmsh.y" +#line 3595 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 298: + case 299: /* Line 1464 of yacc.c */ -#line 3593 "Gmsh.y" +#line 3597 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; - case 299: + case 300: /* Line 1464 of yacc.c */ -#line 3594 "Gmsh.y" +#line 3598 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; - case 300: + case 301: /* Line 1464 of yacc.c */ -#line 3595 "Gmsh.y" +#line 3599 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; - case 301: + case 302: /* Line 1464 of yacc.c */ -#line 3596 "Gmsh.y" +#line 3600 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; - case 302: + case 303: /* Line 1464 of yacc.c */ -#line 3597 "Gmsh.y" +#line 3601 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; - case 303: + case 304: /* Line 1464 of yacc.c */ -#line 3598 "Gmsh.y" +#line 3602 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; - case 304: + case 305: /* Line 1464 of yacc.c */ -#line 3599 "Gmsh.y" +#line 3603 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; - case 305: + case 306: /* Line 1464 of yacc.c */ -#line 3600 "Gmsh.y" +#line 3604 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; - case 306: + case 307: /* Line 1464 of yacc.c */ -#line 3601 "Gmsh.y" +#line 3605 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; - case 307: + case 308: /* Line 1464 of yacc.c */ -#line 3602 "Gmsh.y" +#line 3606 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; - case 308: + case 309: /* Line 1464 of yacc.c */ -#line 3603 "Gmsh.y" +#line 3607 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; - case 309: + case 310: /* Line 1464 of yacc.c */ -#line 3604 "Gmsh.y" +#line 3608 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; - case 310: + case 311: /* Line 1464 of yacc.c */ -#line 3605 "Gmsh.y" +#line 3609 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; - case 311: + case 312: /* Line 1464 of yacc.c */ -#line 3606 "Gmsh.y" +#line 3610 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; - case 312: + case 313: /* Line 1464 of yacc.c */ -#line 3607 "Gmsh.y" +#line 3611 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; - case 313: + case 314: /* Line 1464 of yacc.c */ -#line 3608 "Gmsh.y" +#line 3612 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; - case 314: + case 315: /* Line 1464 of yacc.c */ -#line 3609 "Gmsh.y" +#line 3613 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; - case 315: + case 316: /* Line 1464 of yacc.c */ -#line 3610 "Gmsh.y" +#line 3614 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 316: + case 317: /* Line 1464 of yacc.c */ -#line 3611 "Gmsh.y" +#line 3615 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; - case 317: + case 318: /* Line 1464 of yacc.c */ -#line 3612 "Gmsh.y" +#line 3616 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; - case 318: + case 319: /* Line 1464 of yacc.c */ -#line 3613 "Gmsh.y" +#line 3617 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; - case 319: + case 320: /* Line 1464 of yacc.c */ -#line 3622 "Gmsh.y" +#line 3626 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 320: + case 321: /* Line 1464 of yacc.c */ -#line 3623 "Gmsh.y" +#line 3627 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; - case 321: + case 322: /* Line 1464 of yacc.c */ -#line 3624 "Gmsh.y" +#line 3628 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; - case 322: + case 323: /* Line 1464 of yacc.c */ -#line 3625 "Gmsh.y" +#line 3629 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; - case 323: + case 324: /* Line 1464 of yacc.c */ -#line 3626 "Gmsh.y" +#line 3630 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; - case 324: + case 325: /* Line 1464 of yacc.c */ -#line 3627 "Gmsh.y" +#line 3631 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; - case 325: + case 326: /* Line 1464 of yacc.c */ -#line 3628 "Gmsh.y" +#line 3632 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; - case 326: + case 327: /* Line 1464 of yacc.c */ -#line 3633 "Gmsh.y" +#line 3637 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8793,10 +8799,10 @@ yyreduce: ;} break; - case 327: + case 328: /* Line 1464 of yacc.c */ -#line 3652 "Gmsh.y" +#line 3656 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -8816,10 +8822,10 @@ yyreduce: ;} break; - case 328: + case 329: /* Line 1464 of yacc.c */ -#line 3670 "Gmsh.y" +#line 3674 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -8836,10 +8842,10 @@ yyreduce: ;} break; - case 329: + case 330: /* Line 1464 of yacc.c */ -#line 3685 "Gmsh.y" +#line 3689 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -8851,10 +8857,10 @@ yyreduce: ;} break; - case 330: + case 331: /* Line 1464 of yacc.c */ -#line 3695 "Gmsh.y" +#line 3699 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -8872,10 +8878,10 @@ yyreduce: ;} break; - case 331: + case 332: /* Line 1464 of yacc.c */ -#line 3711 "Gmsh.y" +#line 3715 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -8892,30 +8898,30 @@ yyreduce: ;} break; - case 332: + case 333: /* Line 1464 of yacc.c */ -#line 3729 "Gmsh.y" +#line 3733 "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 333: + case 334: /* Line 1464 of yacc.c */ -#line 3734 "Gmsh.y" +#line 3738 "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 334: + case 335: /* Line 1464 of yacc.c */ -#line 3739 "Gmsh.y" +#line 3743 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -8927,10 +8933,10 @@ yyreduce: ;} break; - case 335: + case 336: /* Line 1464 of yacc.c */ -#line 3749 "Gmsh.y" +#line 3753 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -8942,158 +8948,158 @@ yyreduce: ;} break; - case 336: + case 337: /* Line 1464 of yacc.c */ -#line 3759 "Gmsh.y" +#line 3763 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 337: + case 338: /* Line 1464 of yacc.c */ -#line 3767 "Gmsh.y" +#line 3771 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 338: + case 339: /* Line 1464 of yacc.c */ -#line 3771 "Gmsh.y" +#line 3775 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 339: + case 340: /* Line 1464 of yacc.c */ -#line 3775 "Gmsh.y" +#line 3779 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 340: + case 341: /* Line 1464 of yacc.c */ -#line 3779 "Gmsh.y" +#line 3783 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 341: + case 342: /* Line 1464 of yacc.c */ -#line 3783 "Gmsh.y" +#line 3787 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 342: + case 343: /* Line 1464 of yacc.c */ -#line 3790 "Gmsh.y" +#line 3794 "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 343: + case 344: /* Line 1464 of yacc.c */ -#line 3794 "Gmsh.y" +#line 3798 "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 344: + case 345: /* Line 1464 of yacc.c */ -#line 3798 "Gmsh.y" +#line 3802 "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 345: + case 346: /* Line 1464 of yacc.c */ -#line 3802 "Gmsh.y" +#line 3806 "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 346: + case 347: /* Line 1464 of yacc.c */ -#line 3809 "Gmsh.y" +#line 3813 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 347: + case 348: /* Line 1464 of yacc.c */ -#line 3814 "Gmsh.y" +#line 3818 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 348: + case 349: /* Line 1464 of yacc.c */ -#line 3821 "Gmsh.y" +#line 3825 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 349: + case 350: /* Line 1464 of yacc.c */ -#line 3826 "Gmsh.y" +#line 3830 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 350: + case 351: /* Line 1464 of yacc.c */ -#line 3830 "Gmsh.y" +#line 3834 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 351: + case 352: /* Line 1464 of yacc.c */ -#line 3835 "Gmsh.y" +#line 3839 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 352: + case 353: /* Line 1464 of yacc.c */ -#line 3839 "Gmsh.y" +#line 3843 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9103,10 +9109,10 @@ yyreduce: ;} break; - case 353: + case 354: /* Line 1464 of yacc.c */ -#line 3847 "Gmsh.y" +#line 3851 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9116,19 +9122,19 @@ yyreduce: ;} break; - case 354: + case 355: /* Line 1464 of yacc.c */ -#line 3858 "Gmsh.y" +#line 3862 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 355: + case 356: /* Line 1464 of yacc.c */ -#line 3862 "Gmsh.y" +#line 3866 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -9139,10 +9145,10 @@ yyreduce: ;} break; - case 356: + case 357: /* Line 1464 of yacc.c */ -#line 3874 "Gmsh.y" +#line 3878 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9152,10 +9158,10 @@ yyreduce: ;} break; - case 357: + case 358: /* Line 1464 of yacc.c */ -#line 3882 "Gmsh.y" +#line 3886 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -9165,10 +9171,10 @@ yyreduce: ;} break; - case 358: + case 359: /* Line 1464 of yacc.c */ -#line 3890 "Gmsh.y" +#line 3894 "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)); @@ -9177,10 +9183,10 @@ yyreduce: ;} break; - case 359: + case 360: /* Line 1464 of yacc.c */ -#line 3897 "Gmsh.y" +#line 3901 "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)){ @@ -9193,10 +9199,10 @@ yyreduce: ;} break; - case 360: + case 361: /* Line 1464 of yacc.c */ -#line 3908 "Gmsh.y" +#line 3912 "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 @@ -9218,46 +9224,46 @@ yyreduce: ;} break; - case 361: + case 362: /* Line 1464 of yacc.c */ -#line 3928 "Gmsh.y" +#line 3932 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(0); ;} break; - case 362: + case 363: /* Line 1464 of yacc.c */ -#line 3932 "Gmsh.y" +#line 3936 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(1); ;} break; - case 363: + case 364: /* Line 1464 of yacc.c */ -#line 3936 "Gmsh.y" +#line 3940 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(2); ;} break; - case 364: + case 365: /* Line 1464 of yacc.c */ -#line 3940 "Gmsh.y" +#line 3944 "Gmsh.y" { (yyval.l) = GetAllEntityNumbers(3); ;} break; - case 365: + case 366: /* Line 1464 of yacc.c */ -#line 3944 "Gmsh.y" +#line 3948 "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++){ @@ -9269,10 +9275,10 @@ yyreduce: ;} break; - case 366: + case 367: /* Line 1464 of yacc.c */ -#line 3954 "Gmsh.y" +#line 3958 "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++){ @@ -9284,10 +9290,10 @@ yyreduce: ;} break; - case 367: + case 368: /* Line 1464 of yacc.c */ -#line 3964 "Gmsh.y" +#line 3968 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -9299,10 +9305,10 @@ yyreduce: ;} break; - case 368: + case 369: /* Line 1464 of yacc.c */ -#line 3974 "Gmsh.y" +#line 3978 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -9321,38 +9327,38 @@ yyreduce: ;} break; - case 369: + case 370: /* Line 1464 of yacc.c */ -#line 3994 "Gmsh.y" +#line 3998 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 370: + case 371: /* Line 1464 of yacc.c */ -#line 3999 "Gmsh.y" +#line 4003 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 371: + case 372: /* Line 1464 of yacc.c */ -#line 4003 "Gmsh.y" +#line 4007 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 372: + case 373: /* Line 1464 of yacc.c */ -#line 4007 "Gmsh.y" +#line 4011 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -9363,28 +9369,28 @@ yyreduce: ;} break; - case 373: + case 374: /* Line 1464 of yacc.c */ -#line 4019 "Gmsh.y" +#line 4023 "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 374: + case 375: /* Line 1464 of yacc.c */ -#line 4023 "Gmsh.y" +#line 4027 "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 375: + case 376: /* Line 1464 of yacc.c */ -#line 4035 "Gmsh.y" +#line 4039 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -9393,10 +9399,10 @@ yyreduce: ;} break; - case 376: + case 377: /* Line 1464 of yacc.c */ -#line 4042 "Gmsh.y" +#line 4046 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -9405,19 +9411,19 @@ yyreduce: ;} break; - case 377: + case 378: /* Line 1464 of yacc.c */ -#line 4052 "Gmsh.y" +#line 4056 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 378: + case 379: /* Line 1464 of yacc.c */ -#line 4056 "Gmsh.y" +#line 4060 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -9431,38 +9437,38 @@ yyreduce: ;} break; - case 379: + case 380: /* Line 1464 of yacc.c */ -#line 4071 "Gmsh.y" +#line 4075 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 380: + case 381: /* Line 1464 of yacc.c */ -#line 4076 "Gmsh.y" +#line 4080 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 381: + case 382: /* Line 1464 of yacc.c */ -#line 4083 "Gmsh.y" +#line 4087 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 382: + case 383: /* Line 1464 of yacc.c */ -#line 4087 "Gmsh.y" +#line 4091 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -9477,10 +9483,10 @@ yyreduce: ;} break; - case 383: + case 384: /* Line 1464 of yacc.c */ -#line 4100 "Gmsh.y" +#line 4104 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -9490,10 +9496,10 @@ yyreduce: ;} break; - case 384: + case 385: /* Line 1464 of yacc.c */ -#line 4108 "Gmsh.y" +#line 4112 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -9503,19 +9509,19 @@ yyreduce: ;} break; - case 385: + case 386: /* Line 1464 of yacc.c */ -#line 4119 "Gmsh.y" +#line 4123 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 386: + case 387: /* Line 1464 of yacc.c */ -#line 4123 "Gmsh.y" +#line 4127 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -9525,10 +9531,10 @@ yyreduce: ;} break; - case 387: + case 388: /* Line 1464 of yacc.c */ -#line 4131 "Gmsh.y" +#line 4135 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -9538,10 +9544,10 @@ yyreduce: ;} break; - case 388: + case 389: /* Line 1464 of yacc.c */ -#line 4139 "Gmsh.y" +#line 4143 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -9551,10 +9557,10 @@ yyreduce: ;} break; - case 389: + case 390: /* Line 1464 of yacc.c */ -#line 4147 "Gmsh.y" +#line 4151 "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)); @@ -9564,10 +9570,10 @@ yyreduce: ;} break; - case 390: + case 391: /* Line 1464 of yacc.c */ -#line 4155 "Gmsh.y" +#line 4159 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -9583,10 +9589,10 @@ yyreduce: ;} break; - case 391: + case 392: /* Line 1464 of yacc.c */ -#line 4169 "Gmsh.y" +#line 4173 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -9602,19 +9608,19 @@ yyreduce: ;} break; - case 392: + case 393: /* Line 1464 of yacc.c */ -#line 4183 "Gmsh.y" +#line 4187 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 393: + case 394: /* Line 1464 of yacc.c */ -#line 4187 "Gmsh.y" +#line 4191 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -9638,7 +9644,7 @@ yyreduce: /* Line 1464 of yacc.c */ -#line 9642 "Gmsh.tab.cpp" +#line 9648 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -9850,7 +9856,7 @@ yyreturn: /* Line 1684 of yacc.c */ -#line 4207 "Gmsh.y" +#line 4211 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 8e80ec7f5d..2df76cba4a 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -80,95 +80,96 @@ tToday = 297, tSyncModel = 298, tCreateTopology = 299, - tDistanceFunction = 300, - tPoint = 301, - tCircle = 302, - tEllipse = 303, - tLine = 304, - tSphere = 305, - tPolarSphere = 306, - tSurface = 307, - tSpline = 308, - tVolume = 309, - tCharacteristic = 310, - tLength = 311, - tParametric = 312, - tElliptic = 313, - tRefineMesh = 314, - tPlane = 315, - tRuled = 316, - tTransfinite = 317, - tComplex = 318, - tPhysical = 319, - tCompound = 320, - tPeriodic = 321, - tUsing = 322, - tPlugin = 323, - tDegenerated = 324, - tRotate = 325, - tTranslate = 326, - tSymmetry = 327, - tDilate = 328, - tExtrude = 329, - tLevelset = 330, - tLoop = 331, - tRecombine = 332, - tSmoother = 333, - tSplit = 334, - tDelete = 335, - tCoherence = 336, - tIntersect = 337, - tLayers = 338, - tHole = 339, - tAlias = 340, - tAliasWithOptions = 341, - tText2D = 342, - tText3D = 343, - tInterpolationScheme = 344, - tTime = 345, - tCombine = 346, - tBSpline = 347, - tBezier = 348, - tNurbs = 349, - tNurbsOrder = 350, - tNurbsKnots = 351, - tColor = 352, - tColorTable = 353, - tFor = 354, - tIn = 355, - tEndFor = 356, - tIf = 357, - tEndIf = 358, - tExit = 359, - tField = 360, - tReturn = 361, - tCall = 362, - tFunction = 363, - tShow = 364, - tHide = 365, - tGetValue = 366, - tGetEnv = 367, - tGetString = 368, - tGMSH_MAJOR_VERSION = 369, - tGMSH_MINOR_VERSION = 370, - tGMSH_PATCH_VERSION = 371, - tHomRank = 372, - tHomGen = 373, - tHomCut = 374, - tHomSeq = 375, - tAFFECTDIVIDE = 376, - tAFFECTTIMES = 377, - tAFFECTMINUS = 378, - tAFFECTPLUS = 379, - tOR = 380, - tAND = 381, - tNOTEQUAL = 382, - tEQUAL = 383, - tGREATEROREQUAL = 384, - tLESSOREQUAL = 385, - UNARYPREC = 386, - tMINUSMINUS = 387, - tPLUSPLUS = 388 + tCreateTopologyNoHoles = 300, + tDistanceFunction = 301, + tPoint = 302, + tCircle = 303, + tEllipse = 304, + tLine = 305, + tSphere = 306, + tPolarSphere = 307, + tSurface = 308, + tSpline = 309, + tVolume = 310, + tCharacteristic = 311, + tLength = 312, + tParametric = 313, + tElliptic = 314, + tRefineMesh = 315, + tPlane = 316, + tRuled = 317, + tTransfinite = 318, + tComplex = 319, + tPhysical = 320, + tCompound = 321, + tPeriodic = 322, + tUsing = 323, + tPlugin = 324, + tDegenerated = 325, + tRotate = 326, + tTranslate = 327, + tSymmetry = 328, + 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, + tText2D = 343, + tText3D = 344, + tInterpolationScheme = 345, + tTime = 346, + tCombine = 347, + tBSpline = 348, + tBezier = 349, + tNurbs = 350, + tNurbsOrder = 351, + tNurbsKnots = 352, + tColor = 353, + tColorTable = 354, + tFor = 355, + tIn = 356, + tEndFor = 357, + tIf = 358, + tEndIf = 359, + tExit = 360, + tField = 361, + tReturn = 362, + tCall = 363, + tFunction = 364, + tShow = 365, + tHide = 366, + tGetValue = 367, + tGetEnv = 368, + tGetString = 369, + tGMSH_MAJOR_VERSION = 370, + tGMSH_MINOR_VERSION = 371, + tGMSH_PATCH_VERSION = 372, + tHomRank = 373, + tHomGen = 374, + tHomCut = 375, + tHomSeq = 376, + tAFFECTDIVIDE = 377, + tAFFECTTIMES = 378, + tAFFECTMINUS = 379, + tAFFECTPLUS = 380, + tOR = 381, + tAND = 382, + tNOTEQUAL = 383, + tEQUAL = 384, + tGREATEROREQUAL = 385, + tLESSOREQUAL = 386, + UNARYPREC = 387, + tMINUSMINUS = 388, + tPLUSPLUS = 389 }; #endif @@ -192,7 +193,7 @@ typedef union YYSTYPE /* Line 1685 of yacc.c */ -#line 196 "Gmsh.tab.hpp" +#line 197 "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 9a8f42d9d5..9dc3f5a809 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -103,7 +103,7 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); %token tAtan tAtan2 tSinh tCosh tTanh tFabs tFloor tCeil %token tFmod tModulo tHypot %token tPrintf tSprintf tStrCat tStrPrefix tStrRelative -%token tBoundingBox tDraw tToday tSyncModel tCreateTopology tDistanceFunction +%token tBoundingBox tDraw tToday tSyncModel tCreateTopology tCreateTopologyNoHoles tDistanceFunction %token tPoint tCircle tEllipse tLine tSphere tPolarSphere tSurface tSpline tVolume %token tCharacteristic tLength tParametric tElliptic tRefineMesh %token tPlane tRuled tTransfinite tComplex tPhysical tCompound tPeriodic @@ -2413,6 +2413,10 @@ Command : { GModel::current()->createTopologyFromMesh(); } + | tCreateTopologyNoHoles tEND + { + GModel::current()->createTopologyFromMesh(1); + } | tRefineMesh tEND { GModel::current()->importGEOInternals(); diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index d872508865..78217ea131 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 154 -#define YY_END_OF_BUFFER 155 +#define YY_NUM_RULES 155 +#define YY_END_OF_BUFFER 156 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,81 +388,82 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[665] = +static yyconst flex_int16_t yy_accept[672] = { 0, - 0, 0, 155, 153, 1, 1, 153, 5, 153, 6, - 153, 153, 153, 153, 153, 148, 21, 2, 153, 16, - 153, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 153, 28, 24, 19, 25, 17, 26, - 18, 0, 150, 3, 4, 20, 149, 148, 0, 29, - 27, 30, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 92, 91, 152, 152, - - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 110, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 138, 139, 152, 152, - 152, 152, 152, 152, 152, 23, 22, 0, 149, 0, - 0, 151, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 49, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 63, - 152, 152, 152, 152, 152, 76, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 99, 152, 152, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 125, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 144, 152, 152, 152, 152, 152, 0, 150, - 0, 0, 149, 31, 152, 152, 152, 152, 35, 37, - 152, 152, 152, 57, 152, 44, 152, 152, 152, 152, - 152, 152, 152, 48, 152, 152, 152, 152, 62, 152, - 152, 152, 152, 71, 152, 72, 152, 152, 75, 152, - 152, 152, 152, 152, 84, 85, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 97, 152, 98, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - - 152, 152, 120, 152, 152, 152, 152, 152, 135, 126, - 152, 152, 152, 152, 124, 152, 152, 152, 152, 152, - 152, 140, 143, 152, 152, 152, 152, 10, 15, 9, - 8, 152, 12, 14, 0, 149, 33, 152, 152, 152, - 39, 152, 152, 152, 152, 152, 152, 152, 52, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 69, - 152, 152, 73, 74, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 90, 152, 152, 95, 152, 152, 152, - 100, 152, 152, 152, 106, 107, 152, 152, 152, 111, - 152, 112, 152, 152, 152, 152, 152, 152, 119, 152, - - 152, 152, 129, 152, 152, 152, 152, 152, 152, 152, - 145, 152, 146, 152, 11, 152, 13, 152, 32, 36, - 38, 152, 41, 152, 152, 152, 45, 152, 152, 152, - 152, 152, 152, 152, 152, 59, 61, 152, 152, 68, - 152, 152, 152, 152, 152, 78, 152, 152, 88, 87, - 152, 89, 152, 152, 101, 96, 152, 152, 152, 103, - 152, 152, 152, 116, 152, 115, 152, 152, 122, 118, - 152, 127, 128, 152, 132, 152, 152, 152, 152, 152, - 152, 152, 147, 7, 152, 40, 42, 152, 152, 152, - 152, 152, 47, 51, 152, 152, 152, 152, 65, 152, - - 152, 152, 66, 152, 152, 152, 152, 152, 152, 86, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 131, 152, 152, 130, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 54, 152, 152, 152, - 64, 67, 152, 77, 152, 152, 152, 152, 80, 152, - 152, 102, 104, 105, 152, 108, 109, 152, 152, 152, - 123, 152, 152, 136, 152, 152, 152, 152, 152, 152, - 152, 46, 152, 152, 152, 152, 70, 152, 152, 152, - 79, 152, 93, 152, 152, 117, 152, 133, 152, 137, - 152, 142, 152, 152, 56, 152, 53, 152, 152, 152, - - 152, 152, 152, 152, 113, 152, 121, 152, 152, 152, - 43, 152, 55, 152, 60, 152, 152, 152, 152, 114, - 134, 141, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 50, 58, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 34, 152, - 152, 152, 152, 152, 152, 152, 152, 81, 82, 83, - 152, 152, 94, 0 + 0, 0, 156, 154, 1, 1, 154, 5, 154, 6, + 154, 154, 154, 154, 154, 149, 21, 2, 154, 16, + 154, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 154, 28, 24, 19, 25, 17, 26, + 18, 0, 151, 3, 4, 20, 150, 149, 0, 29, + 27, 30, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 93, 92, 153, 153, + + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 111, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 139, 140, 153, 153, + 153, 153, 153, 153, 153, 23, 22, 0, 150, 0, + 0, 152, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 49, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 64, + 153, 153, 153, 153, 153, 77, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 100, 153, 153, 153, 153, 153, 153, 153, 153, 153, + + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 126, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 145, 153, 153, 153, 153, 153, 0, 151, + 0, 0, 150, 31, 153, 153, 153, 153, 35, 37, + 153, 153, 153, 57, 153, 44, 153, 153, 153, 153, + 153, 153, 153, 48, 153, 153, 153, 153, 63, 153, + 153, 153, 153, 72, 153, 73, 153, 153, 76, 153, + 153, 153, 153, 153, 85, 86, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 98, 153, 99, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + + 153, 153, 121, 153, 153, 153, 153, 153, 136, 127, + 153, 153, 153, 153, 125, 153, 153, 153, 153, 153, + 153, 141, 144, 153, 153, 153, 153, 10, 15, 9, + 8, 153, 12, 14, 0, 150, 33, 153, 153, 153, + 39, 153, 153, 153, 153, 153, 153, 153, 52, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 70, + 153, 153, 74, 75, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 91, 153, 153, 96, 153, 153, 153, + 101, 153, 153, 153, 107, 108, 153, 153, 153, 112, + 153, 113, 153, 153, 153, 153, 153, 153, 120, 153, + + 153, 153, 130, 153, 153, 153, 153, 153, 153, 153, + 146, 153, 147, 153, 11, 153, 13, 153, 32, 36, + 38, 153, 41, 153, 153, 153, 45, 153, 153, 153, + 153, 153, 153, 153, 153, 60, 62, 153, 153, 69, + 153, 153, 153, 153, 153, 79, 153, 153, 89, 88, + 153, 90, 153, 153, 102, 97, 153, 153, 153, 104, + 153, 153, 153, 117, 153, 116, 153, 153, 123, 119, + 153, 128, 129, 153, 133, 153, 153, 153, 153, 153, + 153, 153, 148, 7, 153, 40, 42, 153, 153, 153, + 153, 153, 47, 51, 153, 153, 153, 153, 66, 153, + + 153, 153, 67, 153, 153, 153, 153, 153, 153, 87, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 132, 153, 153, 131, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 54, 153, 153, 153, + 65, 68, 153, 78, 153, 153, 153, 153, 81, 153, + 153, 103, 105, 106, 153, 109, 110, 153, 153, 153, + 124, 153, 153, 137, 153, 153, 153, 153, 153, 153, + 153, 46, 153, 153, 153, 153, 71, 153, 153, 153, + 80, 153, 94, 153, 153, 118, 153, 134, 153, 138, + 153, 143, 153, 153, 56, 153, 53, 153, 153, 153, + + 153, 153, 153, 153, 114, 153, 122, 153, 153, 153, + 43, 153, 55, 153, 61, 153, 153, 153, 153, 115, + 135, 142, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 153, 153, 153, 50, 58, 153, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 34, + 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, + 153, 82, 83, 84, 153, 153, 153, 153, 95, 59, + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -509,161 +510,163 @@ static yyconst flex_int32_t yy_meta[73] = 2, 1 } ; -static yyconst flex_int16_t yy_base[666] = +static yyconst flex_int16_t yy_base[673] = { 0, - 0, 0, 786, 787, 787, 787, 764, 787, 778, 787, - 762, 64, 65, 63, 75, 77, 787, 787, 761, 760, - 759, 46, 48, 66, 51, 65, 78, 46, 45, 71, - 0, 720, 90, 80, 712, 714, 92, 106, 109, 145, - 712, 715, 723, 701, 787, 787, 787, 787, 787, 787, - 787, 761, 167, 787, 787, 787, 172, 187, 211, 787, - 787, 787, 0, 711, 715, 720, 713, 720, 705, 694, - 698, 62, 708, 715, 698, 152, 709, 59, 702, 711, - 700, 706, 706, 93, 706, 702, 692, 691, 687, 690, - 707, 682, 696, 111, 684, 702, 0, 678, 682, 671, - - 92, 681, 137, 708, 688, 674, 686, 672, 671, 663, - 0, 35, 136, 677, 672, 113, 665, 672, 668, 668, - 666, 176, 662, 661, 660, 137, 0, 0, 687, 662, - 670, 672, 663, 660, 648, 787, 787, 227, 232, 241, - 247, 252, 651, 667, 190, 654, 653, 654, 655, 650, - 651, 649, 649, 642, 655, 652, 642, 174, 638, 646, - 652, 647, 646, 649, 627, 639, 242, 636, 627, 0, - 628, 626, 632, 628, 637, 0, 637, 655, 244, 633, - 632, 249, 622, 654, 629, 614, 627, 624, 625, 624, - 660, 612, 626, 605, 622, 618, 621, 612, 602, 606, - - 611, 604, 615, 602, 610, 599, 603, 591, 609, 604, - 586, 599, 592, 600, 595, 594, 583, 254, 595, 588, - 596, 617, 589, 595, 582, 581, 573, 244, 299, 304, - 313, 318, 323, 0, 574, 577, 581, 588, 0, 619, - 578, 581, 581, 0, 564, 0, 582, 571, 564, 563, - 570, 215, 574, 0, 558, 563, 556, 555, 0, 558, - 558, 565, 561, 0, 549, 0, 564, 550, 0, 547, - 565, 551, 544, 561, 0, 0, 541, 555, 558, 553, - 538, 562, 538, 536, 536, 533, 540, 0, 583, 0, - 212, 538, 530, 530, 534, 531, 535, 538, 533, 522, - - 523, 520, 0, 526, 524, 519, 516, 530, 0, 0, - 514, 515, 148, 518, 0, 529, 512, 523, 526, 521, - 536, 0, 0, 500, 505, 515, 509, 0, 0, 509, - 0, 514, 507, 0, 328, 333, 518, 498, 502, 501, - 0, 500, 495, 502, 499, 506, 503, 502, 510, 492, - 499, 483, 493, 496, 495, 494, 493, 212, 480, 0, - 492, 491, 0, 0, 485, 246, 472, 475, 480, 471, - 476, 475, 471, 0, 494, 467, 0, 466, 475, 464, - 0, 480, 471, 465, 0, 0, 473, 473, 473, 0, - 462, 0, 479, 467, 470, 466, 457, 464, 0, 460, - - 462, 461, 0, 446, 445, 458, 451, 458, 441, 445, - 0, 177, 0, 453, 0, 450, 0, 447, 0, 0, - 486, 449, 0, 440, 441, 432, 0, 437, 448, 443, - 424, 433, 432, 448, 426, 0, 0, 122, 433, 0, - 432, 435, 425, 188, 461, 0, 428, 416, 0, 0, - 425, 0, 443, 428, 0, 0, 427, 418, 405, 0, - 410, 419, 426, 0, 411, 0, 416, 435, 0, 0, - 418, 0, 0, 416, 0, 415, 419, 414, 401, 413, - 407, 414, 0, 0, 395, 0, 0, 406, 418, 406, - 407, 407, 0, 0, 404, 406, 392, 404, 0, 386, - - 400, 401, 0, 388, 414, 409, 402, 384, 391, 0, - 407, 391, 374, 382, 386, 373, 386, 377, 379, 373, - 380, 367, 0, 374, 363, 0, 357, 375, 366, 359, - 369, 398, 361, 357, 368, 361, 0, 352, 355, 350, - 0, 0, 355, 0, 376, 375, 386, 357, 0, 386, - 343, 0, 0, 0, 352, 0, 0, 355, 354, 340, - 0, 334, 347, 0, 344, 345, 348, 361, 337, 338, - 340, 0, 343, 342, 332, 340, 0, 350, 349, 358, - 0, 345, 0, 337, 322, 0, 330, 0, 316, 0, - 317, 0, 320, 311, 0, 315, 0, 314, 320, 326, - - 329, 328, 327, 341, 0, 320, 0, 319, 318, 303, - 0, 302, 0, 306, 0, 321, 320, 319, 325, 0, - 0, 0, 306, 305, 306, 331, 330, 329, 319, 294, - 304, 282, 311, 285, 284, 264, 250, 0, 0, 265, - 263, 262, 261, 236, 268, 267, 266, 270, 0, 254, - 250, 249, 252, 244, 181, 120, 115, 0, 0, 0, - 97, 71, 0, 787, 82 + 0, 0, 793, 794, 794, 794, 771, 794, 785, 794, + 769, 64, 65, 63, 75, 77, 794, 794, 768, 767, + 766, 46, 48, 66, 51, 65, 78, 46, 45, 71, + 0, 727, 90, 80, 719, 721, 92, 106, 109, 145, + 719, 722, 730, 708, 794, 794, 794, 794, 794, 794, + 794, 768, 167, 794, 794, 794, 172, 187, 211, 794, + 794, 794, 0, 718, 722, 727, 720, 727, 712, 701, + 705, 62, 715, 722, 705, 152, 716, 59, 709, 718, + 707, 713, 713, 93, 713, 709, 699, 698, 694, 697, + 714, 689, 703, 111, 691, 709, 0, 685, 689, 678, + + 92, 688, 137, 715, 695, 681, 693, 679, 678, 670, + 0, 35, 136, 684, 679, 113, 672, 679, 675, 675, + 673, 176, 669, 668, 667, 137, 0, 0, 694, 669, + 677, 679, 670, 667, 655, 794, 794, 227, 232, 241, + 247, 252, 658, 674, 190, 661, 660, 661, 662, 657, + 658, 656, 656, 649, 662, 659, 649, 174, 645, 653, + 659, 654, 653, 656, 634, 646, 242, 643, 634, 0, + 635, 633, 639, 635, 644, 0, 644, 662, 244, 640, + 639, 249, 629, 661, 636, 621, 634, 631, 632, 631, + 667, 619, 633, 612, 629, 625, 628, 619, 609, 613, + + 618, 611, 622, 609, 617, 606, 610, 598, 616, 611, + 593, 606, 599, 607, 602, 601, 590, 254, 602, 595, + 603, 624, 596, 602, 589, 588, 580, 244, 299, 304, + 313, 318, 323, 0, 581, 584, 588, 595, 0, 626, + 585, 588, 588, 0, 571, 0, 589, 578, 571, 570, + 577, 215, 581, 0, 565, 570, 563, 562, 0, 565, + 565, 572, 568, 0, 556, 0, 571, 557, 0, 554, + 572, 558, 551, 568, 0, 0, 548, 562, 565, 560, + 545, 569, 545, 543, 543, 540, 547, 0, 590, 0, + 212, 545, 537, 537, 541, 538, 542, 545, 540, 529, + + 530, 527, 0, 533, 531, 526, 523, 537, 0, 0, + 521, 522, 148, 525, 0, 536, 519, 530, 533, 528, + 543, 0, 0, 507, 512, 522, 516, 0, 0, 516, + 0, 521, 514, 0, 328, 333, 525, 505, 509, 508, + 0, 507, 502, 509, 506, 513, 510, 509, 517, 499, + 506, 490, 500, 503, 502, 501, 500, 212, 487, 0, + 499, 498, 0, 0, 492, 246, 479, 482, 487, 478, + 483, 482, 478, 0, 501, 474, 0, 473, 482, 471, + 0, 487, 478, 472, 0, 0, 480, 480, 480, 0, + 469, 0, 486, 474, 477, 473, 464, 471, 0, 467, + + 469, 468, 0, 453, 452, 465, 458, 465, 448, 452, + 0, 177, 0, 460, 0, 457, 0, 454, 0, 0, + 493, 456, 0, 447, 448, 439, 0, 444, 455, 450, + 431, 440, 439, 455, 433, 0, 0, 122, 440, 0, + 439, 442, 432, 188, 468, 0, 435, 423, 0, 0, + 432, 0, 450, 435, 0, 0, 434, 425, 412, 0, + 417, 426, 433, 0, 418, 0, 423, 442, 0, 0, + 425, 0, 0, 423, 0, 422, 426, 421, 408, 420, + 414, 421, 0, 0, 402, 0, 0, 413, 425, 413, + 414, 414, 0, 0, 411, 413, 399, 411, 0, 393, + + 407, 408, 0, 395, 421, 416, 409, 391, 398, 0, + 414, 398, 381, 389, 393, 380, 393, 384, 386, 380, + 387, 374, 0, 381, 370, 0, 364, 382, 373, 366, + 376, 405, 368, 364, 375, 368, 0, 359, 362, 357, + 0, 0, 362, 0, 383, 382, 393, 364, 0, 393, + 350, 0, 0, 0, 359, 0, 0, 362, 361, 347, + 0, 341, 354, 0, 351, 352, 355, 368, 344, 345, + 347, 0, 350, 349, 339, 347, 0, 357, 356, 365, + 0, 352, 0, 344, 329, 0, 337, 0, 323, 0, + 324, 0, 327, 318, 0, 322, 0, 321, 327, 333, + + 336, 335, 334, 348, 0, 327, 0, 326, 325, 310, + 0, 309, 0, 313, 0, 328, 327, 326, 332, 0, + 0, 0, 313, 312, 313, 338, 337, 336, 326, 301, + 311, 289, 318, 317, 316, 309, 295, 0, 317, 311, + 310, 284, 283, 246, 249, 275, 273, 272, 277, 0, + 270, 262, 261, 260, 265, 231, 251, 250, 246, 253, + 160, 0, 0, 0, 121, 91, 105, 34, 0, 0, + 794, 82 } ; -static yyconst flex_int16_t yy_def[666] = +static yyconst flex_int16_t yy_def[673] = { 0, - 664, 1, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 664, 664, 664, 664, 664, - 664, 664, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 664, 664, - 664, 664, 664, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 664, 664, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, - 665, 665, 665, 0, 664 + 671, 1, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 671, 671, 671, 671, 671, + 671, 671, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 671, 671, + 671, 671, 671, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 671, 671, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, + 0, 671 } ; -static yyconst flex_int16_t yy_nxt[860] = +static yyconst flex_int16_t yy_nxt[867] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -674,94 +677,95 @@ static yyconst flex_int16_t yy_nxt[860] = 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, 48, 52, 50, 53, 53, 53, 53, 53, 91, 200, 54, 63, 49, 51, 55, 57, 69, 58, - 58, 58, 58, 58, 64, 56, 92, 663, 70, 93, + 58, 58, 58, 58, 64, 56, 92, 670, 70, 93, 201, 78, 65, 59, 94, 79, 96, 71, 66, 67, 68, 162, 72, 80, 95, 163, 73, 104, 151, 74, 75, 81, 97, 82, 85, 76, 152, 59, 77, 98, - 83, 662, 86, 84, 87, 88, 100, 89, 108, 105, - 101, 661, 109, 90, 102, 110, 111, 169, 112, 103, - 188, 113, 115, 170, 114, 660, 116, 171, 189, 127, + 83, 669, 86, 84, 87, 88, 100, 89, 108, 105, + 101, 668, 109, 90, 102, 110, 111, 169, 112, 103, + 188, 113, 115, 170, 114, 667, 116, 171, 189, 127, 128, 206, 119, 120, 207, 117, 121, 181, 182, 122, 123, 118, 499, 124, 125, 129, 500, 208, 126, 53, 53, 53, 53, 53, 139, 139, 139, 139, 139, 191, 202, 130, 203, 138, 220, 221, 192, 57, 140, 58, 58, 58, 58, 58, 131, 156, 402, 132, 157, 158, - 505, 159, 403, 59, 236, 160, 659, 138, 506, 141, + 505, 159, 403, 59, 236, 160, 666, 138, 506, 141, 141, 251, 140, 142, 142, 142, 142, 142, 481, 214, 237, 238, 215, 482, 252, 229, 229, 59, 216, 230, 230, 230, 230, 230, 139, 139, 139, 139, 139, 232, 232, 382, 383, 233, 233, 233, 233, 233, 231, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 261, - 272, 351, 262, 277, 352, 438, 439, 278, 316, 658, - 444, 657, 231, 445, 273, 656, 655, 274, 279, 280, - 654, 317, 328, 318, 653, 329, 652, 651, 650, 649, + 272, 351, 262, 277, 352, 438, 439, 278, 316, 665, + 444, 664, 231, 445, 273, 663, 662, 274, 279, 280, + 661, 317, 328, 318, 660, 329, 659, 658, 657, 656, - 330, 648, 647, 646, 331, 645, 332, 333, 644, 643, + 330, 655, 654, 653, 331, 652, 332, 333, 651, 650, 334, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 335, 335, 642, 641, 336, 336, 336, 336, 336, + 230, 335, 335, 649, 648, 336, 336, 336, 336, 336, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 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, 569, 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, 539, 538, 537, 536, 535, 534, 533, 532, 531, - 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, - 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, - 510, 509, 508, 507, 504, 503, 502, 501, 498, 497, - 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, - - 486, 485, 484, 483, 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, 450, 449, 448, 447, 446, 443, - 442, 441, 440, 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, 408, 407, 406, 405, 404, 401, 400, 399, - 398, 397, 396, 395, 394, 393, 392, 391, 390, 389, - 388, 387, 386, 385, 384, 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, - 356, 355, 354, 353, 350, 349, 348, 347, 346, 345, - 344, 343, 342, 341, 340, 339, 338, 337, 327, 326, - 325, 324, 323, 322, 321, 320, 319, 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, 283, - 282, 281, 276, 275, 271, 270, 269, 268, 267, 266, - 265, 264, 263, 260, 259, 258, 257, 256, 255, 254, - - 253, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 235, 234, 228, 227, 226, 225, 224, - 223, 222, 219, 218, 217, 213, 212, 211, 210, 209, - 205, 204, 199, 198, 197, 196, 195, 194, 193, 190, - 187, 186, 185, 184, 183, 180, 179, 178, 177, 176, - 175, 174, 173, 172, 168, 167, 166, 165, 164, 161, - 155, 154, 153, 150, 149, 148, 147, 146, 145, 144, - 143, 137, 136, 135, 134, 133, 107, 106, 99, 62, - 61, 60, 47, 46, 45, 664, 3, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664 + 647, 646, 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, 570, 569, 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, 539, 538, + 537, 536, 535, 534, 533, 532, 531, 530, 529, 528, + 527, 526, 525, 524, 523, 522, 521, 520, 519, 518, + 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, + 507, 504, 503, 502, 501, 498, 497, 496, 495, 494, + + 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, + 483, 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, 450, 449, 448, 447, 446, 443, 442, 441, 440, + 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, 408, + 407, 406, 405, 404, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 392, 391, 390, 389, 388, 387, 386, + + 385, 384, 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, 356, 355, 354, + 353, 350, 349, 348, 347, 346, 345, 344, 343, 342, + 341, 340, 339, 338, 337, 327, 326, 325, 324, 323, + 322, 321, 320, 319, 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, 283, 282, 281, 276, + 275, 271, 270, 269, 268, 267, 266, 265, 264, 263, + + 260, 259, 258, 257, 256, 255, 254, 253, 250, 249, + 248, 247, 246, 245, 244, 243, 242, 241, 240, 239, + 235, 234, 228, 227, 226, 225, 224, 223, 222, 219, + 218, 217, 213, 212, 211, 210, 209, 205, 204, 199, + 198, 197, 196, 195, 194, 193, 190, 187, 186, 185, + 184, 183, 180, 179, 178, 177, 176, 175, 174, 173, + 172, 168, 167, 166, 165, 164, 161, 155, 154, 153, + 150, 149, 148, 147, 146, 145, 144, 143, 137, 136, + 135, 134, 133, 107, 106, 99, 62, 61, 60, 47, + 46, 45, 671, 3, 671, 671, 671, 671, 671, 671, + + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671 } ; -static yyconst flex_int16_t yy_chk[860] = +static yyconst flex_int16_t yy_chk[867] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -771,92 +775,93 @@ static yyconst flex_int16_t yy_chk[860] = 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, 112, 15, 665, 12, 13, 15, 16, 23, 16, - 16, 16, 16, 16, 22, 15, 28, 662, 23, 29, + 28, 112, 15, 672, 12, 13, 15, 16, 23, 16, + 16, 16, 16, 16, 22, 15, 28, 668, 23, 29, 112, 25, 22, 16, 29, 25, 30, 23, 22, 22, 22, 78, 24, 25, 29, 78, 24, 34, 72, 24, 24, 26, 30, 26, 27, 24, 72, 16, 24, 30, - 26, 661, 27, 26, 27, 27, 33, 27, 37, 34, - 33, 657, 37, 27, 33, 37, 37, 84, 37, 33, - 101, 37, 38, 84, 37, 656, 38, 84, 101, 40, + 26, 667, 27, 26, 27, 27, 33, 27, 37, 34, + 33, 666, 37, 27, 33, 37, 37, 84, 37, 33, + 101, 37, 38, 84, 37, 665, 38, 84, 101, 40, 40, 116, 39, 39, 116, 38, 39, 94, 94, 39, 39, 38, 438, 39, 39, 40, 438, 116, 39, 53, 53, 53, 53, 53, 57, 57, 57, 57, 57, 103, 113, 40, 113, 53, 126, 126, 103, 58, 57, 58, 58, 58, 58, 58, 40, 76, 313, 40, 76, 76, - 444, 76, 313, 58, 145, 76, 655, 53, 444, 59, + 444, 76, 313, 58, 145, 76, 661, 53, 444, 59, 59, 158, 57, 59, 59, 59, 59, 59, 412, 122, 145, 145, 122, 412, 158, 138, 138, 58, 122, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, 291, 291, 140, 140, 140, 140, 140, 139, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 167, - 179, 252, 167, 182, 252, 358, 358, 182, 218, 654, - 366, 653, 139, 366, 179, 652, 651, 179, 182, 182, - 650, 218, 228, 218, 648, 228, 647, 646, 645, 644, + 179, 252, 167, 182, 252, 358, 358, 182, 218, 660, + 366, 659, 139, 366, 179, 658, 657, 179, 182, 182, + 656, 218, 228, 218, 655, 228, 654, 653, 652, 651, - 228, 643, 642, 641, 228, 640, 228, 228, 637, 636, + 228, 649, 648, 647, 228, 646, 228, 228, 645, 644, 228, 229, 229, 229, 229, 229, 230, 230, 230, 230, - 230, 231, 231, 635, 634, 231, 231, 231, 231, 231, + 230, 231, 231, 643, 642, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 335, 335, 335, 335, 335, 336, 336, 336, 336, 336, - 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, - 623, 619, 618, 617, 616, 614, 612, 610, 609, 608, - 606, 604, 603, 602, 601, 600, 599, 598, 596, 594, - 593, 591, 589, 587, 585, 584, 582, 580, 579, 578, - 576, 575, 574, 573, 571, 570, 569, 568, 567, 566, - - 565, 563, 562, 560, 559, 558, 555, 551, 550, 548, - 547, 546, 545, 543, 540, 539, 538, 536, 535, 534, - 533, 532, 531, 530, 529, 528, 527, 525, 524, 522, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 511, 509, 508, 507, 506, 505, 504, 502, 501, 500, - 498, 497, 496, 495, 492, 491, 490, 489, 488, 485, - 482, 481, 480, 479, 478, 477, 476, 474, 471, 468, - 467, 465, 463, 462, 461, 459, 458, 457, 454, 453, - 451, 448, 447, 445, 443, 442, 441, 439, 435, 434, - 433, 432, 431, 430, 429, 428, 426, 425, 424, 422, - - 421, 418, 416, 414, 410, 409, 408, 407, 406, 405, - 404, 402, 401, 400, 398, 397, 396, 395, 394, 393, - 391, 389, 388, 387, 384, 383, 382, 380, 379, 378, - 376, 375, 373, 372, 371, 370, 369, 368, 367, 365, - 362, 361, 359, 357, 356, 355, 354, 353, 352, 351, - 350, 349, 348, 347, 346, 345, 344, 343, 342, 340, - 339, 338, 337, 333, 332, 330, 327, 326, 325, 324, - 321, 320, 319, 318, 317, 316, 314, 312, 311, 308, - 307, 306, 305, 304, 302, 301, 300, 299, 298, 297, - 296, 295, 294, 293, 292, 289, 287, 286, 285, 284, - - 283, 282, 281, 280, 279, 278, 277, 274, 273, 272, - 271, 270, 268, 267, 265, 263, 262, 261, 260, 258, - 257, 256, 255, 253, 251, 250, 249, 248, 247, 245, - 243, 242, 241, 240, 238, 237, 236, 235, 227, 226, - 225, 224, 223, 222, 221, 220, 219, 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, - 184, 183, 181, 180, 178, 177, 175, 174, 173, 172, - 171, 169, 168, 166, 165, 164, 163, 162, 161, 160, - - 159, 157, 156, 155, 154, 153, 152, 151, 150, 149, - 148, 147, 146, 144, 143, 135, 134, 133, 132, 131, - 130, 129, 125, 124, 123, 121, 120, 119, 118, 117, - 115, 114, 110, 109, 108, 107, 106, 105, 104, 102, - 100, 99, 98, 96, 95, 93, 92, 91, 90, 89, - 88, 87, 86, 85, 83, 82, 81, 80, 79, 77, - 75, 74, 73, 71, 70, 69, 68, 67, 66, 65, - 64, 52, 44, 43, 42, 41, 36, 35, 32, 21, - 20, 19, 11, 9, 7, 3, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 664 + 641, 640, 639, 637, 636, 635, 634, 633, 632, 631, + 630, 629, 628, 627, 626, 625, 624, 623, 619, 618, + 617, 616, 614, 612, 610, 609, 608, 606, 604, 603, + 602, 601, 600, 599, 598, 596, 594, 593, 591, 589, + 587, 585, 584, 582, 580, 579, 578, 576, 575, 574, + + 573, 571, 570, 569, 568, 567, 566, 565, 563, 562, + 560, 559, 558, 555, 551, 550, 548, 547, 546, 545, + 543, 540, 539, 538, 536, 535, 534, 533, 532, 531, + 530, 529, 528, 527, 525, 524, 522, 521, 520, 519, + 518, 517, 516, 515, 514, 513, 512, 511, 509, 508, + 507, 506, 505, 504, 502, 501, 500, 498, 497, 496, + 495, 492, 491, 490, 489, 488, 485, 482, 481, 480, + 479, 478, 477, 476, 474, 471, 468, 467, 465, 463, + 462, 461, 459, 458, 457, 454, 453, 451, 448, 447, + 445, 443, 442, 441, 439, 435, 434, 433, 432, 431, + + 430, 429, 428, 426, 425, 424, 422, 421, 418, 416, + 414, 410, 409, 408, 407, 406, 405, 404, 402, 401, + 400, 398, 397, 396, 395, 394, 393, 391, 389, 388, + 387, 384, 383, 382, 380, 379, 378, 376, 375, 373, + 372, 371, 370, 369, 368, 367, 365, 362, 361, 359, + 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, + 347, 346, 345, 344, 343, 342, 340, 339, 338, 337, + 333, 332, 330, 327, 326, 325, 324, 321, 320, 319, + 318, 317, 316, 314, 312, 311, 308, 307, 306, 305, + 304, 302, 301, 300, 299, 298, 297, 296, 295, 294, + + 293, 292, 289, 287, 286, 285, 284, 283, 282, 281, + 280, 279, 278, 277, 274, 273, 272, 271, 270, 268, + 267, 265, 263, 262, 261, 260, 258, 257, 256, 255, + 253, 251, 250, 249, 248, 247, 245, 243, 242, 241, + 240, 238, 237, 236, 235, 227, 226, 225, 224, 223, + 222, 221, 220, 219, 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, 184, 183, 181, + 180, 178, 177, 175, 174, 173, 172, 171, 169, 168, + + 166, 165, 164, 163, 162, 161, 160, 159, 157, 156, + 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, + 144, 143, 135, 134, 133, 132, 131, 130, 129, 125, + 124, 123, 121, 120, 119, 118, 117, 115, 114, 110, + 109, 108, 107, 106, 105, 104, 102, 100, 99, 98, + 96, 95, 93, 92, 91, 90, 89, 88, 87, 86, + 85, 83, 82, 81, 80, 79, 77, 75, 74, 73, + 71, 70, 69, 68, 67, 66, 65, 64, 52, 44, + 43, 42, 41, 36, 35, 32, 21, 20, 19, 11, + 9, 7, 3, 671, 671, 671, 671, 671, 671, 671, + + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 671 } ; static yy_state_type yy_last_accepting_state; @@ -913,7 +918,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 917 "Gmsh.yy.cpp" +#line 922 "Gmsh.yy.cpp" #define INITIAL 0 @@ -1098,7 +1103,7 @@ YY_DECL #line 49 "Gmsh.l" -#line 1102 "Gmsh.yy.cpp" +#line 1107 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1151,13 +1156,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 >= 665 ) + if ( yy_current_state >= 672 ) 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] != 787 ); + while ( yy_base[yy_current_state] != 794 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1474,33 +1479,33 @@ return tCreateTopology; YY_BREAK case 59: YY_RULE_SETUP -#line 113 "Gmsh.l" -return tDelete; +#line 112 "Gmsh.l" +return tCreateTopologyNoHoles; YY_BREAK case 60: YY_RULE_SETUP #line 114 "Gmsh.l" -return tDegenerated; +return tDelete; YY_BREAK case 61: YY_RULE_SETUP #line 115 "Gmsh.l" -return tDilate; +return tDegenerated; YY_BREAK case 62: YY_RULE_SETUP #line 116 "Gmsh.l" -return tDraw; +return tDilate; YY_BREAK case 63: YY_RULE_SETUP -#line 118 "Gmsh.l" -return tExp; +#line 117 "Gmsh.l" +return tDraw; YY_BREAK case 64: YY_RULE_SETUP #line 119 "Gmsh.l" -return tEllipse; +return tExp; YY_BREAK case 65: YY_RULE_SETUP @@ -1510,440 +1515,445 @@ return tEllipse; case 66: YY_RULE_SETUP #line 121 "Gmsh.l" -return tExtrude; +return tEllipse; YY_BREAK case 67: YY_RULE_SETUP #line 122 "Gmsh.l" -return tElliptic; +return tExtrude; YY_BREAK case 68: YY_RULE_SETUP #line 123 "Gmsh.l" -return tEndFor; +return tElliptic; YY_BREAK case 69: YY_RULE_SETUP #line 124 "Gmsh.l" -return tEndIf; +return tEndFor; YY_BREAK case 70: YY_RULE_SETUP #line 125 "Gmsh.l" -return tEuclidian; +return tEndIf; YY_BREAK case 71: YY_RULE_SETUP #line 126 "Gmsh.l" -return tExit; +return tEuclidian; YY_BREAK case 72: YY_RULE_SETUP -#line 128 "Gmsh.l" -return tFabs; +#line 127 "Gmsh.l" +return tExit; YY_BREAK case 73: YY_RULE_SETUP #line 129 "Gmsh.l" -return tField; +return tFabs; YY_BREAK case 74: YY_RULE_SETUP #line 130 "Gmsh.l" -return tFloor; +return tField; YY_BREAK case 75: YY_RULE_SETUP #line 131 "Gmsh.l" -return tFmod; +return tFloor; YY_BREAK case 76: YY_RULE_SETUP #line 132 "Gmsh.l" -return tFor; +return tFmod; YY_BREAK case 77: YY_RULE_SETUP #line 133 "Gmsh.l" -return tFunction; +return tFor; YY_BREAK case 78: YY_RULE_SETUP -#line 135 "Gmsh.l" -return tGetEnv; +#line 134 "Gmsh.l" +return tFunction; YY_BREAK case 79: YY_RULE_SETUP #line 136 "Gmsh.l" -return tGetString; +return tGetEnv; YY_BREAK case 80: YY_RULE_SETUP #line 137 "Gmsh.l" -return tGetValue; +return tGetString; YY_BREAK case 81: YY_RULE_SETUP #line 138 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +return tGetValue; YY_BREAK case 82: YY_RULE_SETUP #line 139 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGMSH_MAJOR_VERSION; YY_BREAK case 83: YY_RULE_SETUP #line 140 "Gmsh.l" -return tGMSH_PATCH_VERSION; +return tGMSH_MINOR_VERSION; YY_BREAK case 84: YY_RULE_SETUP -#line 142 "Gmsh.l" -return tHide; +#line 141 "Gmsh.l" +return tGMSH_PATCH_VERSION; YY_BREAK case 85: YY_RULE_SETUP #line 143 "Gmsh.l" -return tHole; +return tHide; YY_BREAK case 86: YY_RULE_SETUP #line 144 "Gmsh.l" -return tHomRank; +return tHole; YY_BREAK case 87: YY_RULE_SETUP #line 145 "Gmsh.l" -return tHomGen; +return tHomRank; YY_BREAK case 88: YY_RULE_SETUP #line 146 "Gmsh.l" -return tHomCut; +return tHomGen; YY_BREAK case 89: YY_RULE_SETUP #line 147 "Gmsh.l" -return tHomSeq; +return tHomCut; YY_BREAK case 90: YY_RULE_SETUP #line 148 "Gmsh.l" -return tHypot; +return tHomSeq; YY_BREAK case 91: YY_RULE_SETUP -#line 150 "Gmsh.l" -return tIn; +#line 149 "Gmsh.l" +return tHypot; YY_BREAK case 92: YY_RULE_SETUP #line 151 "Gmsh.l" -return tIf; +return tIn; YY_BREAK case 93: YY_RULE_SETUP #line 152 "Gmsh.l" -return tIntersect; +return tIf; YY_BREAK case 94: YY_RULE_SETUP #line 153 "Gmsh.l" -return tInterpolationScheme; +return tIntersect; YY_BREAK case 95: YY_RULE_SETUP -#line 155 "Gmsh.l" -return tNurbsKnots; +#line 154 "Gmsh.l" +return tInterpolationScheme; YY_BREAK case 96: YY_RULE_SETUP -#line 157 "Gmsh.l" -return tLength; +#line 156 "Gmsh.l" +return tNurbsKnots; YY_BREAK case 97: YY_RULE_SETUP #line 158 "Gmsh.l" -return tLine; +return tLength; YY_BREAK case 98: YY_RULE_SETUP #line 159 "Gmsh.l" -return tLoop; +return tLine; YY_BREAK case 99: YY_RULE_SETUP #line 160 "Gmsh.l" -return tLog; +return tLoop; YY_BREAK case 100: YY_RULE_SETUP #line 161 "Gmsh.l" -return tLog10; +return tLog; YY_BREAK case 101: YY_RULE_SETUP #line 162 "Gmsh.l" -return tLayers; +return tLog10; YY_BREAK case 102: YY_RULE_SETUP #line 163 "Gmsh.l" -return tLevelset; +return tLayers; YY_BREAK case 103: YY_RULE_SETUP -#line 165 "Gmsh.l" -return tModulo; +#line 164 "Gmsh.l" +return tLevelset; YY_BREAK case 104: YY_RULE_SETUP #line 166 "Gmsh.l" -return tMPI_Rank; +return tModulo; YY_BREAK case 105: YY_RULE_SETUP #line 167 "Gmsh.l" -return tMPI_Size; +return tMPI_Rank; YY_BREAK case 106: YY_RULE_SETUP -#line 169 "Gmsh.l" -return tNurbs; +#line 168 "Gmsh.l" +return tMPI_Size; YY_BREAK case 107: YY_RULE_SETUP -#line 171 "Gmsh.l" -return tNurbsOrder; +#line 170 "Gmsh.l" +return tNurbs; YY_BREAK case 108: YY_RULE_SETUP -#line 173 "Gmsh.l" -return tPeriodic; +#line 172 "Gmsh.l" +return tNurbsOrder; YY_BREAK case 109: YY_RULE_SETUP #line 174 "Gmsh.l" -return tPhysical; +return tPeriodic; YY_BREAK case 110: YY_RULE_SETUP #line 175 "Gmsh.l" -return tPi; +return tPhysical; YY_BREAK case 111: YY_RULE_SETUP #line 176 "Gmsh.l" -return tPlane; +return tPi; YY_BREAK case 112: YY_RULE_SETUP #line 177 "Gmsh.l" -return tPoint; +return tPlane; YY_BREAK case 113: YY_RULE_SETUP #line 178 "Gmsh.l" -return tParametric; +return tPoint; YY_BREAK case 114: YY_RULE_SETUP #line 179 "Gmsh.l" -return tPolarSphere; +return tParametric; YY_BREAK case 115: YY_RULE_SETUP #line 180 "Gmsh.l" -return tPrintf; +return tPolarSphere; YY_BREAK case 116: YY_RULE_SETUP #line 181 "Gmsh.l" -return tPlugin; +return tPrintf; YY_BREAK case 117: YY_RULE_SETUP -#line 183 "Gmsh.l" -return tRecombine; +#line 182 "Gmsh.l" +return tPlugin; YY_BREAK case 118: YY_RULE_SETUP #line 184 "Gmsh.l" -return tRotate; +return tRecombine; YY_BREAK case 119: YY_RULE_SETUP #line 185 "Gmsh.l" -return tRuled; +return tRotate; YY_BREAK case 120: YY_RULE_SETUP #line 186 "Gmsh.l" -return tRand; +return tRuled; YY_BREAK case 121: YY_RULE_SETUP #line 187 "Gmsh.l" -return tRefineMesh; +return tRand; YY_BREAK case 122: YY_RULE_SETUP #line 188 "Gmsh.l" -return tReturn; +return tRefineMesh; YY_BREAK case 123: YY_RULE_SETUP -#line 190 "Gmsh.l" -return tSmoother; +#line 189 "Gmsh.l" +return tReturn; YY_BREAK case 124: YY_RULE_SETUP #line 191 "Gmsh.l" -return tSqrt; +return tSmoother; YY_BREAK case 125: YY_RULE_SETUP #line 192 "Gmsh.l" -return tSin; +return tSqrt; YY_BREAK case 126: YY_RULE_SETUP #line 193 "Gmsh.l" -return tSinh; +return tSin; YY_BREAK case 127: YY_RULE_SETUP #line 194 "Gmsh.l" -return tSphere; +return tSinh; YY_BREAK case 128: YY_RULE_SETUP #line 195 "Gmsh.l" -return tSpline; +return tSphere; YY_BREAK case 129: YY_RULE_SETUP #line 196 "Gmsh.l" -return tSplit; +return tSpline; YY_BREAK case 130: YY_RULE_SETUP #line 197 "Gmsh.l" -return tSurface; +return tSplit; YY_BREAK case 131: YY_RULE_SETUP #line 198 "Gmsh.l" -return tSprintf; +return tSurface; YY_BREAK case 132: YY_RULE_SETUP #line 199 "Gmsh.l" -return tStrCat; +return tSprintf; YY_BREAK case 133: YY_RULE_SETUP #line 200 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 134: YY_RULE_SETUP #line 201 "Gmsh.l" -return tStrRelative; +return tStrPrefix; YY_BREAK case 135: YY_RULE_SETUP #line 202 "Gmsh.l" -return tShow; +return tStrRelative; YY_BREAK case 136: YY_RULE_SETUP #line 203 "Gmsh.l" -return tSymmetry; +return tShow; YY_BREAK case 137: YY_RULE_SETUP #line 204 "Gmsh.l" -return tSyncModel; +return tSymmetry; YY_BREAK case 138: YY_RULE_SETUP -#line 206 "Gmsh.l" -return tText2D; +#line 205 "Gmsh.l" +return tSyncModel; YY_BREAK case 139: YY_RULE_SETUP #line 207 "Gmsh.l" -return tText3D; +return tText2D; YY_BREAK case 140: YY_RULE_SETUP #line 208 "Gmsh.l" -return tTime; +return tText3D; YY_BREAK case 141: YY_RULE_SETUP #line 209 "Gmsh.l" -return tTransfinite; +return tTime; YY_BREAK case 142: YY_RULE_SETUP #line 210 "Gmsh.l" -return tTranslate; +return tTransfinite; YY_BREAK case 143: YY_RULE_SETUP #line 211 "Gmsh.l" -return tTanh; +return tTranslate; YY_BREAK case 144: YY_RULE_SETUP #line 212 "Gmsh.l" -return tTan; +return tTanh; YY_BREAK case 145: YY_RULE_SETUP #line 213 "Gmsh.l" -return tToday; +return tTan; YY_BREAK case 146: YY_RULE_SETUP -#line 215 "Gmsh.l" -return tUsing; +#line 214 "Gmsh.l" +return tToday; YY_BREAK case 147: YY_RULE_SETUP -#line 217 "Gmsh.l" -return tVolume; +#line 216 "Gmsh.l" +return tUsing; YY_BREAK case 148: -#line 220 "Gmsh.l" +YY_RULE_SETUP +#line 218 "Gmsh.l" +return tVolume; + YY_BREAK case 149: #line 221 "Gmsh.l" case 150: #line 222 "Gmsh.l" case 151: +#line 223 "Gmsh.l" +case 152: YY_RULE_SETUP -#line 222 "Gmsh.l" +#line 223 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 152: +case 153: YY_RULE_SETUP -#line 224 "Gmsh.l" +#line 225 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 153: +case 154: YY_RULE_SETUP -#line 226 "Gmsh.l" +#line 227 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 154: +case 155: YY_RULE_SETUP -#line 228 "Gmsh.l" +#line 229 "Gmsh.l" ECHO; YY_BREAK -#line 1947 "Gmsh.yy.cpp" +#line 1957 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2235,7 +2245,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 >= 665 ) + if ( yy_current_state >= 672 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2263,11 +2273,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 >= 665 ) + if ( yy_current_state >= 672 ) 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 == 664); + yy_is_jam = (yy_current_state == 671); return yy_is_jam ? 0 : yy_current_state; } @@ -2940,7 +2950,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 228 "Gmsh.l" +#line 229 "Gmsh.l" -- GitLab