diff --git a/Geo/Cell.cpp b/Geo/Cell.cpp index be96869acdf1136c03dad1b9bc8d9b75329de728..9a013fb44894aba7c84a11fe7d2f0436c8d937be 100755 --- a/Geo/Cell.cpp +++ b/Geo/Cell.cpp @@ -32,7 +32,7 @@ bool Less_Cell::operator()(const Cell* c1, const Cell* c2) const Cell::Cell(MElement* image, bool subdomain, bool boundary) : _combined(false), _index(0), _immune(false), _image(NULL), - _deleteImage(false) + _deleteImage(false), _deleteWithCellComplex(true) { _onDomainBoundary = boundary; _inSubdomain = subdomain; @@ -254,7 +254,7 @@ CombinedCell::CombinedCell(Cell* c1, Cell* c2, bool orMatch, bool co) : Cell() _onDomainBoundary = c1->onDomainBoundary(); _combined = true; _image = NULL; - + // vertices _vs.reserve(c1->getNumVertices() + c2->getNumVertices()); for(int i = 0; i < c1->getNumVertices(); i++){ diff --git a/Geo/Cell.h b/Geo/Cell.h index 61c70611d4697e86ab7305be674f13ccc3b83ec0..94e771b480d8d459af4b8c5dcc3457698c5c1642 100644 --- a/Geo/Cell.h +++ b/Geo/Cell.h @@ -37,7 +37,7 @@ class Cell // cell dimension int _dim; - // whether this cell belongs to a subdomain, immutable + // whether this cell belongs to a subdomain // used in relative homology computation bool _inSubdomain; @@ -64,9 +64,11 @@ class Cell // The mesh element that is the image of this cell MElement* _image; + // Whether to delete the mesh element when done // (created for homology computation only) bool _deleteImage; + bool _deleteWithCellComplex; // sorted vertices of this cell (used for ordering of the cells) std::vector<int> _vs; @@ -77,7 +79,7 @@ class Cell public: Cell() : _combined(false), _index(0), _immune(false), _image(NULL), - _deleteImage(false) {} + _deleteImage(false), _deleteWithCellComplex(true) {} Cell(MElement* image, bool subdomain, bool boundary); virtual ~Cell(); @@ -96,6 +98,10 @@ class Cell virtual void setDeleteImage(bool deleteImage) { _deleteImage = deleteImage; }; virtual bool getDeleteImage() const { return _deleteImage; }; + virtual void setDeleteWithCellComplex(bool deleteWithCellComplex) { + _deleteWithCellComplex = deleteWithCellComplex; }; + virtual bool getDeleteWithCellComplex() const { + return _deleteWithCellComplex; }; // get the number of vertices this cell has virtual int getNumVertices() const { return _image->getNumVertices(); } diff --git a/Geo/CellComplex.cpp b/Geo/CellComplex.cpp index a7604efaffe8e2b75ac2510589bbdc7b35464ca2..d6e0918e503a0b9318b62d7be05fd04e60b19ee4 100644 --- a/Geo/CellComplex.cpp +++ b/Geo/CellComplex.cpp @@ -11,13 +11,17 @@ #if defined(HAVE_KBIPACK) + + CellComplex::CellComplex( std::vector<GEntity*> domain, - std::vector<GEntity*> subdomain ) + std::vector<GEntity*> subdomain) { - _domain = domain; _subdomain = subdomain; - + + if(!_domain.empty()) _model = _domain.at(0)->model(); + else _model = NULL; + _dim = 0; _simplicial = true; @@ -34,14 +38,13 @@ CellComplex::CellComplex( std::vector<GEntity*> domain, } // find boundary entities - if(!_multidim) find_boundary(domain, subdomain); + //if(!_multidim) find_boundary(domain, subdomain); // insert cells into cell complex // subdomain need to be inserted first! - insert_cells(true, true); - insert_cells(false, true); - insert_cells(false, false); - + insert_cells(_subdomain, true, true); + //insert_cells(_boundary, false, true); + insert_cells(_domain, false, false); for(int i = 0; i < 4; i++){ _ocells[i] = _cells[i]; @@ -117,14 +120,9 @@ void CellComplex::find_boundary(std::vector<GEntity*>& domain, } } -void CellComplex::insert_cells(bool subdomain, bool boundary) -{ - std::vector<GEntity*> domain; - - if(subdomain) domain = _subdomain; - else if(boundary) domain = _boundary; - else domain = _domain; - +void CellComplex::insert_cells(std::vector<GEntity*>& domain, + bool subdomain, bool boundary) +{ std::vector<MVertex*> vertices; std::pair<citer, bool> insertInfo; @@ -168,11 +166,11 @@ void CellComplex::insert_cells(bool subdomain, bool boundary) else if(type == MSH_HEX_8 || type == MSH_HEX_27 || type == MSH_HEX_20){ cell = new Cell(element, subdomain, boundary); _simplicial = false; - }/* FIXME: no getFaceInfo methods for these MElements + } else if(type == MSH_PRI_6 || type == MSH_PRI_18 || type == MSH_PRI_15){ cell = new Cell(element, subdomain, boundary); _simplicial = false; - } + }/* FIXME: no getFaceInfo methods for these MElements else if(type == MSH_PYR_5 || type == MSH_PYR_14 || type == MSH_PYR_13){ cell = new Cell(element, subdomain, boundary); _simplicial = false; @@ -253,7 +251,7 @@ CellComplex::~CellComplex() for(citer cit = _ocells[i].begin(); cit != _ocells[i].end(); cit++){ Cell* cell = *cit; - delete cell; + if(cell->getDeleteWithCellComplex()) delete cell; } _ocells[i].clear(); @@ -379,7 +377,9 @@ int CellComplex::reduction(int dim, int omitted) while(cit != lastCell(dim-1)){ Cell* cell = *cit; if( cell->getCoboundarySize() == 1 - && inSameDomain(cell, cell->firstCoboundary()->first)){ + && inSameDomain(cell, cell->firstCoboundary()->first) + && !cell->getImmune() + && !cell->firstCoboundary()->first->getImmune()){ ++cit; if(dim == getDim() && omitted > 0){ _store.at(omitted-1).insert(cell->firstCoboundary()->first); @@ -430,7 +430,7 @@ int CellComplex::coreduction(int dim, int omitted) return count; } -int CellComplex::reduceComplex() +int CellComplex::reduceComplex(bool omit) { double t1 = Cpu(); @@ -439,32 +439,33 @@ int CellComplex::reduceComplex() int count = 0; for(int i = 3; i > 0; i--) count = count + reduction(i); + + if(omit){ + int omitted = 0; + _store.clear(); - int omitted = 0; - _store.clear(); - - removeSubdomain(); - - while (getSize(getDim()) != 0){ - - citer cit = firstCell(getDim()); - Cell* cell = *cit; - removeCell(cell); + //removeSubdomain(); - omitted++; - std::set< Cell*, Less_Cell > omittedCells; - _store.push_back(omittedCells); - _store.at(omitted-1).insert(cell); - for(int j = 3; j > 0; j--) reduction(j, omitted); + while (getSize(getDim()) != 0){ + + citer cit = firstCell(getDim()); + Cell* cell = *cit; + removeCell(cell); + + omitted++; + std::set< Cell*, Less_Cell > omittedCells; + _store.push_back(omittedCells); + _store.at(omitted-1).insert(cell); + for(int j = 3; j > 0; j--) reduction(j, omitted); + } } - + double t2 = Cpu(); Msg::Debug("Cell complex after reduction: %d volumes, %d faces, %d edges and %d vertices (%g s).\n", - getSize(3), getSize(2), getSize(1), getSize(0), t2 - t1); + getSize(3), getSize(2), getSize(1), getSize(0), t2 - t1); return 0; } - void CellComplex::removeSubdomain() { std::vector<Cell*> toRemove; @@ -476,6 +477,30 @@ void CellComplex::removeSubdomain() } for(unsigned int i = 0; i < toRemove.size(); i++) removeCell(toRemove[i]); } +/* +void CellComplex::setSubdomain(std::vector<GEntity*>& subdomain){ + for(int i = 3; i > -1; i--){ + for(citer cit = firstCell(i); cit != lastCell(i); cit++){ + Cell* cell = *cit; + for(unsigned int j = 0; j < subdomain.size(); j++){ + if(cell->getGEntity()->tag() == subdomain.at(j)->tag()){ + cell->setInSubdomain(true); + } + } + } + } +}*/ + +void CellComplex::deImmuneCells(bool subdomain) +{ + for(int i = 0; i < 4; i++){ + for(citer cit = firstCell(i); cit != lastCell(i); ++cit){ + Cell *cell = *cit; + if(cell->getImmune() && subdomain) cell->setInSubdomain(true); + cell->setImmune(false); + } + } +} int CellComplex::coreduceComplex() { @@ -522,14 +547,24 @@ void CellComplex::computeBettiNumbers() { for(int i = 0; i < 4; i++){ _betti[i] = 0; - Msg::Debug("Betti number computation process: step %d of 4 \n", i+1); while (getSize(i) != 0){ + /*removeSubdomain(); + citer cit = firstCell(i); + while(cit != lastCell(i)){ + if(coreduction(*cit)) cit = firstCell(i); + else cit++; + } + if(getSize(i) != 0) { + _betti[i] = _betti[i] + 1; + cit = firstCell(i); + removeCell(*cit, false); + }*/ citer cit = firstCell(i); Cell* cell = *cit; while(!cell->inSubdomain() && cit != lastCell(i)){ - cell = *cit; - cit++; + cell = *cit; + cit++; } if(!cell->inSubdomain()) _betti[i] = _betti[i] + 1; removeCell(cell, false); @@ -557,15 +592,13 @@ int CellComplex::cocombine(int dim) int count = 0; for(citer cit = firstCell(dim); cit != lastCell(dim); cit++){ - Cell* cell = *cit; cell->getCoboundary(cbd_c); enqueueCells(cbd_c, Q, Qset); - while(Q.size() != 0){ + while(Q.size() != 0){ Cell* s = Q.front(); Q.pop(); - if(s->getBoundarySize() == 2){ Cell::biter it = s->firstBoundary(); int or1 = (*it).second; @@ -579,8 +612,8 @@ int CellComplex::cocombine(int dim) && c1->getNumVertices() < getSize(dim) // heuristics for mammoth cell birth control && c2->getNumVertices() < getSize(dim)){ - - removeCell(s); + + removeCell(s); c1->getCoboundary(cbd_c); enqueueCells(cbd_c, Q, Qset); @@ -774,6 +807,18 @@ bool CellComplex::hasCell(Cell* cell, bool org) } } +void CellComplex::getCells(std::set<Cell*, Less_Cell>& cells, + int dim, int domain){ + cells.clear(); + for(citer cit = firstCell(dim); cit != lastCell(dim); cit++){ + Cell* cell = *cit; + if( (domain == 0 && !cell->inSubdomain()) || domain == 1 + || (domain == 2 && cell->inSubdomain()) ){ + cells.insert(cell); + } + } +} + bool CellComplex::swapSubdomain() { if(_multidim) return false; @@ -827,4 +872,41 @@ bool CellComplex::writeBettiNumbers(std::string fileName) return true; } +void CellComplex::storeCells(int dim) +{ + std::vector<MElement*> elements; + + for(citer cit = firstCell(dim); cit != lastCell(dim); cit++){ + Cell* cell = *cit; + + std::list< std::pair<int, Cell*> > cells; + cell->getCells(cells); + for(std::list< std::pair<int, Cell*> >::iterator it = cells.begin(); + it != cells.end(); it++){ + Cell* subCell = it->second; + + MElement* e = subCell->getImageMElement(); + subCell->setDeleteImage(false); + elements.push_back(e); + } + } + + int max[4]; + for(int i = 0; i < 4; i++) max[i] = _model->getMaxElementaryNumber(i); + int entityNum = *std::max_element(max,max+4) + 1; + for(int i = 0; i < 4; i++) max[i] = _model->getMaxPhysicalNumber(i); + int physicalNum = *std::max_element(max,max+4) + 1; + + std::map<int, std::vector<MElement*> > entityMap; + entityMap[entityNum] = elements; + std::map<int, std::map<int, std::string> > physicalMap; + std::map<int, std::string> physicalInfo; + physicalInfo[physicalNum]="Cell Complex"; + physicalMap[entityNum] = physicalInfo; + + _model->storeChain(dim, entityMap, physicalMap); + _model->setPhysicalName("Cell Complex", dim, physicalNum); + +} + #endif diff --git a/Geo/CellComplex.h b/Geo/CellComplex.h index 3f1464acff94641392645378518e936ff687c02c..daef3684dcc7cc5077e57215de03666c5752b93d 100644 --- a/Geo/CellComplex.h +++ b/Geo/CellComplex.h @@ -19,6 +19,7 @@ #include <queue> #include "Cell.h" #include "MElement.h" +#include "ChainComplex.h" class Cell; @@ -26,6 +27,8 @@ class Cell; class CellComplex { private: + + GModel* _model; // the domain in the model which this cell complex covers std::vector<GEntity*> _domain; @@ -67,7 +70,8 @@ class CellComplex void removeCellQset(Cell* cell, std::set<Cell*, Less_Cell>& Qset); // for constructor - void insert_cells(bool subdomain, bool boundary); + void insert_cells(std::vector<GEntity*>& domain, + bool subdomain, bool boundary); void find_boundary(std::vector<GEntity*>& domain, std::vector<GEntity*>& subdomain); @@ -80,10 +84,13 @@ class CellComplex public: - CellComplex( std::vector<GEntity*> domain, std::vector<GEntity*> subdomain ); + CellComplex( std::vector<GEntity*> domain, std::vector<GEntity*> subdomain); //CellComplex(CellComplex* cellComplex) ~CellComplex(); - + + std::vector<GEntity*> getDomain() const { return _domain; } + std::vector<GEntity*> getSubdomain() const { return _subdomain; } + // restore this cell complex to its original state void restoreComplex(); @@ -96,6 +103,7 @@ class CellComplex bool simplicial() { return _simplicial; } std::set<Cell*, Less_Cell> getCells(int dim){ return _cells[dim]; } + void getCells(std::set<Cell*, Less_Cell>& cells, int dim, int domain=0); std::set<Cell*, Less_Cell> getOrgCells(int dim){ return _ocells[dim]; } // iterator for the cells of same dimension @@ -113,8 +121,10 @@ class CellComplex // check whether two cells both belong to subdomain or if neither one does bool inSameDomain(Cell* c1, Cell* c2) const { - return ( (!c1->inSubdomain() && !c2->inSubdomain()) - || (c1->inSubdomain() && c2->inSubdomain()) ); } + return ( ((!c1->inSubdomain() && !c2->inSubdomain()) + || (c1->inSubdomain() && c2->inSubdomain())) + && ((!c1->getImmune() && !c2->getImmune()) + || (c1->getImmune() && c2->getImmune())) ); } // (co)reduction of this cell complex // removes (co)reduction pairs of cell of dimension dim and dim-1 @@ -122,12 +132,13 @@ class CellComplex int coreduction(int dim, int omitted=0); // full (co)reduction of this cell complex (all dimensions) - int reduceComplex(); + int reduceComplex(bool omit=true); int coreduceComplex(); // remove cells in subdomain from this cell complex void removeSubdomain(); - + void deImmuneCells(bool subdomain=false); + // print the vertices of cells of certain dimension void printComplex(int dim); @@ -163,6 +174,10 @@ class CellComplex // cell complex // equivalent to transposing boundary operator matrices void makeDualComplex(); + + // store cells of dimension dim to the GModel as a + // physical group of MElements + void storeCells(int dim); }; #endif diff --git a/Geo/ChainComplex.cpp b/Geo/ChainComplex.cpp index 5dedbf9cadecf371637ea7e2966653f4b073641b..6960108497b6d906e0fa980c4cb1821a622269fd 100644 --- a/Geo/ChainComplex.cpp +++ b/Geo/ChainComplex.cpp @@ -13,7 +13,7 @@ #if defined(HAVE_KBIPACK) -ChainComplex::ChainComplex(CellComplex* cellComplex) +ChainComplex::ChainComplex(CellComplex* cellComplex, int domain) { _dim = cellComplex->getDim(); _cellComplex = cellComplex; @@ -37,7 +37,8 @@ ChainComplex::ChainComplex(CellComplex* cellComplex) Cell* cell = *cit; cell->setIndex(index); index++; - if(cell->inSubdomain()){ + if((domain == 0 && cell->inSubdomain()) + || (domain == 2 && !cell->inSubdomain()) ){ index--; cols--; } @@ -49,7 +50,8 @@ ChainComplex::ChainComplex(CellComplex* cellComplex) Cell* cell = *cit; cell->setIndex(index); index++; - if(cell->inSubdomain()){ + if( (domain == 0 && cell->inSubdomain()) + || (domain == 2 && !cell->inSubdomain()) ){ index--; rows--; } @@ -73,11 +75,13 @@ ChainComplex::ChainComplex(CellComplex* cellComplex) cellComplex->firstCell(dim); cit != cellComplex->lastCell(dim); cit++){ Cell* cell = *cit; - if(!cell->inSubdomain()){ + if( (domain == 0 && !cell->inSubdomain()) || domain == 1 + || (domain == 2 && cell->inSubdomain()) ){ for(Cell::biter it = cell->firstBoundary(); it != cell->lastBoundary(); it++){ Cell* bdCell = (*it).first; - if(!bdCell->inSubdomain()){ + if((domain == 0 && !bdCell->inSubdomain()) || domain == 1 + || (domain == 2 && cell->inSubdomain()) ){ int old_elem = 0; if(bdCell->getIndex() > (int)gmp_matrix_rows( _HMatrix[dim]) @@ -93,7 +97,7 @@ ChainComplex::ChainComplex(CellComplex* cellComplex) old_elem = mpz_get_si(elem); mpz_set_si(elem, old_elem + (*it).second); if( abs((old_elem + (*it).second)) > 1){ - Msg::Debug("Incidence index: %d! HMatrix: %d.", + Msg::Debug("Incidence index: %d! HMatrix: %d. \n", (old_elem + (*it).second), dim); } gmp_matrix_set_elem(elem, bdCell->getIndex(), @@ -262,8 +266,7 @@ void ChainComplex::Quotient(int dim) //printMatrix(normalForm->left); //printMatrix(normalForm->canonical); - //printMatrix(normalForm->right); - + //printMatrix(normalForm->right); mpz_t elem; mpz_init(elem); @@ -450,7 +453,7 @@ Chain::Chain(std::set<Cell*, Less_Cell> cells, std::vector<int> coeffs, cit != cells.end(); cit++){ Cell* cell = *cit; _dim = cell->getDim(); - if(!cell->inSubdomain() && (int)coeffs.size() > i){ + if((int)coeffs.size() > i){ if(coeffs.at(i) != 0){ std::list< std::pair<int, Cell*> > subCells; cell->getCells(subCells); @@ -459,6 +462,7 @@ Chain::Chain(std::set<Cell*, Less_Cell> cells, std::vector<int> coeffs, Cell* subCell = (*it).second; int coeff = (*it).first; _cells.insert( std::make_pair(subCell, coeffs.at(i)*coeff)); + subCell->setDeleteWithCellComplex(false); } } i++; @@ -645,10 +649,10 @@ int Chain::writeChainMSH(const std::string &name) return 1; } -void Chain::createPView() +int Chain::createPGroup() { std::vector<MElement*> elements; - std::map<int, std::vector<double> > data; + std::map<int, std::vector<double> > data; MElementFactory factory; for(citer cit = _cells.begin(); cit != _cells.end(); cit++){ @@ -660,15 +664,15 @@ void Chain::createPView() for(int i = 0; i < e->getNumVertices(); i++){ v.push_back(e->getVertex(i)); } - MElement* ne = factory.create(e->getTypeForMSH(), v); - + MElement* ne = factory.create(e->getTypeForMSH(), v, 0, e->getPartition()); + if(cell->getDim() > 0 && coeff < 0) ne->revert(); // flip orientation - for(int i = 0; i < abs(coeff); i++) elements.push_back(ne); + for(int i = 0; i < abs(coeff); i++) elements.push_back(ne); std::vector<double> coeffs (1,abs(coeff)); data[ne->getNum()] = coeffs; } - + int max[4]; for(int i = 0; i < 4; i++) max[i] = _model->getMaxElementaryNumber(i); int entityNum = *std::max_element(max,max+4) + 1; @@ -702,12 +706,12 @@ void Chain::createPView() _model->storeChain(getDim(), entityMap, physicalMap); _model->setPhysicalName(getName(), getDim(), physicalNum); - // only for visualization + // create PView for visualization PView* chain = new PView(getName(), "ElementData", getGModel(), data, 0, 1); } - return; + return physicalNum; } @@ -725,6 +729,7 @@ void Chain::addCell(Cell* cell, int coeff) std::pair<citer,bool> insert = _cells.insert( std::make_pair( cell, coeff)); if(!insert.second && (*insert.first).second == 0){ (*insert.first).second = coeff; + cell->setDeleteWithCellComplex(false); } else if (!insert.second && (*insert.first).second != 0){ Msg::Debug("Error: invalid chain smoothening add! \n"); @@ -761,7 +766,10 @@ void Chain::eraseNullCells() if((*cit).second == 0) toRemove.push_back((*cit).first); } } - for(unsigned int i = 0; i < toRemove.size(); i++) _cells.erase(toRemove[i]); + for(unsigned int i = 0; i < toRemove.size(); i++){ + _cells.erase(toRemove[i]); + toRemove[i]->setDeleteWithCellComplex(true); + } return; } diff --git a/Geo/ChainComplex.h b/Geo/ChainComplex.h index d57531bba2eb406f968858a86735a84176b69f92..38f6197a3461cc3ffe406b39572dde260c2a9434 100644 --- a/Geo/ChainComplex.h +++ b/Geo/ChainComplex.h @@ -34,6 +34,8 @@ #include "gmp_normal_form.h" #endif +class CellComplex; + // A class representing a chain complex of a cell complex. // This should only be constructed for a reduced cell complex because of // dense matrix representations and great computational complexity in @@ -75,7 +77,7 @@ class ChainComplex{ public: - ChainComplex(CellComplex* cellComplex); + ChainComplex(CellComplex* cellComplex, int domain=0); ChainComplex(){ for(int i = 0; i < 5; i++){ @@ -192,11 +194,14 @@ class Chain{ _cellComplex = chain->getCellComplex(); _dim = chain->getDim(); _model = chain->getGModel(); - } - ~Chain() {} - + _num = chain->getNum(); + } typedef std::map<Cell*, int, Less_Cell>::iterator citer; - + citer firstCell() {return _cells.begin(); } + citer lastCell() {return _cells.end(); } + + ~Chain() {} + // remove a cell from this chain void removeCell(Cell* cell); @@ -238,8 +243,8 @@ class Chain{ // for debugging only int writeChainMSH(const std::string &name); - // create a PView of this chain. - void createPView(); + // create a physical group of this chain. + int createPGroup(); }; diff --git a/Geo/Homology.cpp b/Geo/Homology.cpp index ae9b6cf627f1be260203e3e8d23456d13481e39d..ee17d26ba84bade56e8069f4f94cddf2f13d17c7 100644 --- a/Geo/Homology.cpp +++ b/Geo/Homology.cpp @@ -19,24 +19,15 @@ Homology::Homology(GModel* model, std::vector<int> physicalDomain, _domain = physicalDomain; _subdomain = physicalSubdomain; _fileName = ""; - - Msg::Info("Creating a Cell Complex..."); - Msg::StatusBar(1, false, "Cell Complex..."); - Msg::StatusBar(2, false, ""); - double t1 = Cpu(); - - std::vector<GEntity*> domainEntities; - std::vector<GEntity*> subdomainEntities; // default to the whole model if(_domain.empty()){ - //_model->getEntities(domainEntities); int dim = _model->getDim(); std::vector<GEntity*> entities; _model->getEntities(entities); for(std::vector<GEntity*>::iterator it = entities.begin(); it != entities.end(); it++){ - if((*it)->dim() == dim) domainEntities.push_back(*it); + if((*it)->dim() == dim) _domainEntities.push_back(*it); } } @@ -50,8 +41,8 @@ Homology::Homology(GModel* model, std::vector<int> physicalDomain, if(it != groups[j].end()){ std::vector<GEntity*> physicalGroup = (*it).second; for(unsigned int k = 0; k < physicalGroup.size(); k++){ - domainEntities.push_back(physicalGroup.at(k)); - } + _domainEntities.push_back(physicalGroup.at(k)); + } } } } @@ -61,73 +52,99 @@ Homology::Homology(GModel* model, std::vector<int> physicalDomain, if(it != groups[j].end()){ std::vector<GEntity*> physicalGroup = (*it).second; for(unsigned int k = 0; k < physicalGroup.size(); k++){ - subdomainEntities.push_back(physicalGroup.at(k)); + _subdomainEntities.push_back(physicalGroup.at(k)); } } } } +} + +CellComplex* Homology::createCellComplex(std::vector<GEntity*>& domainEntities, + std::vector<GEntity*>& subdomainEntities){ + Msg::Info("Creating a Cell Complex..."); + Msg::StatusBar(1, false, "Cell Complex..."); + Msg::StatusBar(2, false, ""); + double t1 = Cpu(); + + if(domainEntities.empty()) Msg::Error("Domain is empty."); if(subdomainEntities.empty()) Msg::Info("Subdomain is empty."); - _cellComplex = new CellComplex(domainEntities, subdomainEntities); - - if(_cellComplex->getSize(0) == 0){ + CellComplex* cellComplex = new CellComplex(domainEntities, + subdomainEntities); + + if(cellComplex->getSize(0) == 0){ Msg::Error("Cell Complex is empty!"); Msg::Error("Check the domain & the mesh."); - return; } double t2 = Cpu(); Msg::Info("Cell Complex complete (%g s).", t2 - t1); Msg::Info("%d volumes, %d faces, %d edges and %d vertices.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); Msg::StatusBar(2, false, "%d V, %d F, %d E, %d V.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); - + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + return cellComplex; } -Homology::~Homology(){ - delete _cellComplex; - for(int i = 0; i < 4; i++) { - for(unsigned int j = 0; j < _generators[i].size(); j++){ - Chain* chain = _generators[i].at(j); - //_model->deletePhysicalGroup(chain->getDim(), chain->getNum()); - delete chain; - } - } +Homology::~Homology() +{ + } -void Homology::findGenerators() +void Homology::findGenerators(CellComplex* cellComplex, bool omit, + std::string domainString) { + bool newComplex = false; + if(cellComplex == NULL){ + cellComplex = createCellComplex(_domainEntities, _subdomainEntities); + newComplex = true; + } + if(domainString == ""){ + domainString = getDomainString(_domain, _subdomain); + } + Msg::Info("Reducing the Cell Complex..."); Msg::StatusBar(1, false, "Reducing..."); double t1 = Cpu(); - int omitted = _cellComplex->reduceComplex(); - - _cellComplex->combine(3); - _cellComplex->reduction(2); - _cellComplex->combine(2); - _cellComplex->reduction(1); - _cellComplex->combine(1); + printf("Cell Complex: \n %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + int omitted = cellComplex->reduceComplex(omit); + + printf(" %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + cellComplex->combine(3); + cellComplex->reduction(2); + cellComplex->combine(2); + cellComplex->reduction(1); + cellComplex->combine(1); + + printf(" %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); - _cellComplex->checkCoherence(); + cellComplex->checkCoherence(); double t2 = Cpu(); Msg::Info("Cell Complex reduction complete (%g s).", t2 - t1); Msg::Info("%d volumes, %d faces, %d edges and %d vertices.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); Msg::StatusBar(2, false, "%d V, %d F, %d E, %d N.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); Msg::Info("Computing homology spaces..."); Msg::StatusBar(1, false, "Computing..."); t1 = Cpu(); - ChainComplex* chains = new ChainComplex(_cellComplex); + ChainComplex* chains = new ChainComplex(cellComplex); chains->computeHomology(); t2 = Cpu(); Msg::Info("Homology Computation complete (%g s).", t2 - t1); @@ -142,14 +159,16 @@ void Homology::findGenerators() std::string generator = ""; convert(i, generator); - std::string name = "H" + dimension + getDomainString() + generator; - Chain* chain = new Chain(_cellComplex->getCells(j), + std::string name = "H" + dimension + domainString + generator; + std::set<Cell*, Less_Cell> cells; + cellComplex->getCells(cells, j); + Chain* chain = new Chain(cells, chains->getCoeffVector(j,i), - _cellComplex, _model, name, + cellComplex, _model, name, chains->getTorsion(j,i)); t1 = Cpu(); int start = chain->getSize(); - chain->smoothenChain(); + //chain->smoothenChain(); t2 = Cpu(); Msg::Info("Smoothened H%d %d from %d cells to %d cells (%g s).", j, i, start, chain->getSize(), t2 - t1); @@ -160,25 +179,27 @@ void Homology::findGenerators() j, i, chain->getTorsion()); } } - _generators[j].push_back(chain); + _generators[chain->createPGroup()] = chain; } - if(j == _cellComplex->getDim() && _cellComplex->getNumOmitted() > 0){ - for(int i = 0; i < _cellComplex->getNumOmitted(); i++){ + if(j == cellComplex->getDim() && cellComplex->getNumOmitted() > 0){ + for(int i = 0; i < cellComplex->getNumOmitted(); i++){ std::string generator; convert(i+1, generator); - std::string name = "H" + dimension + getDomainString() + generator; - std::vector<int> coeffs (_cellComplex->getOmitted(i).size(),1); - Chain* chain = new Chain(_cellComplex->getOmitted(i), coeffs, - _cellComplex, _model, name, 1); + std::string name = "H" + dimension + domainString + generator; + std::vector<int> coeffs (cellComplex->getOmitted(i).size(),1); + Chain* chain = new Chain(cellComplex->getOmitted(i), coeffs, + cellComplex, _model, name, 1); if(chain->getSize() != 0) HRank[j] = HRank[j] + 1; - _generators[j].push_back(chain); + _generators[chain->createPGroup()] = chain; } } } - createPViews(); if(_fileName != "") writeGeneratorsMSH(); + if(newComplex) delete cellComplex; + delete chains; + Msg::Info("Ranks of homology spaces for primal cell complex:"); Msg::Info("H0 = %d", HRank[0]); Msg::Info("H1 = %d", HRank[1]); @@ -186,54 +207,47 @@ void Homology::findGenerators() Msg::Info("H3 = %d", HRank[3]); if(omitted != 0) Msg::Info("The computation of generators in the highest dimension was omitted."); - delete chains; - - Msg::Debug("H0 = %d \n", HRank[0]); - Msg::Debug("H1 = %d \n", HRank[1]); - Msg::Debug("H2 = %d \n", HRank[2]); - Msg::Debug("H3 = %d \n", HRank[3]); - Msg::StatusBar(1, false, "Homology"); Msg::StatusBar(2, false, "H0: %d, H1: %d, H2: %d, H3: %d.", HRank[0], HRank[1], HRank[2], HRank[3]); - - return; } void Homology::findDualGenerators() { + CellComplex* cellComplex = createCellComplex(_domainEntities, + _subdomainEntities); + Msg::Info("Reducing Cell Complex..."); Msg::StatusBar(1, false, "Reducing..."); double t1 = Cpu(); - int omitted = _cellComplex->coreduceComplex(); - - _cellComplex->cocombine(0); - _cellComplex->coreduction(1); - _cellComplex->cocombine(1); - _cellComplex->coreduction(2); - _cellComplex->cocombine(2); - _cellComplex->coreduction(3); + int omitted = cellComplex->coreduceComplex(); - _cellComplex->checkCoherence(); + cellComplex->cocombine(0); + cellComplex->coreduction(1); + cellComplex->cocombine(1); + cellComplex->coreduction(2); + cellComplex->cocombine(2); + cellComplex->coreduction(3); + cellComplex->checkCoherence(); double t2 = Cpu(); Msg::Info("Cell Complex reduction complete (%g s).", t2 - t1); Msg::Info("%d volumes, %d faces, %d edges and %d vertices.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); Msg::StatusBar(2, false, "%d V, %d F, %d E, %d N.", - _cellComplex->getSize(3), _cellComplex->getSize(2), - _cellComplex->getSize(1), _cellComplex->getSize(0)); + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); Msg::Info("Computing homology spaces..."); Msg::StatusBar(1, false, "Computing..."); t1 = Cpu(); - ChainComplex* chains = new ChainComplex(_cellComplex); + ChainComplex* chains = new ChainComplex(cellComplex); chains->transposeHMatrices(); chains->computeHomology(true); t2 = Cpu(); Msg::Info("Homology Computation complete (%g s).", t2- t1); - int dim = _cellComplex->getDim(); + int dim = cellComplex->getDim(); int HRank[4]; for(int i = 0; i < 4; i++) HRank[i] = 0; @@ -246,11 +260,14 @@ void Homology::findDualGenerators() std::string generator = ""; convert(i, generator); - std::string name = "H" + dimension + "*" + getDomainString() + generator; - Chain* chain = new Chain(_cellComplex->getCells(j), - chains->getCoeffVector(j,i), _cellComplex, + std::string name = "H" + dimension + "*" + + getDomainString(_domain, _subdomain) + generator; + std::set<Cell*, Less_Cell> cells; + cellComplex->getCells(cells, j); + Chain* chain = new Chain(cells, + chains->getCoeffVector(j,i), cellComplex, _model, name, chains->getTorsion(j,i)); - _generators[dim-j].push_back(chain); + _generators[chain->createPGroup()] = chain; if(chain->getSize() != 0){ HRank[dim-j] = HRank[dim-j] + 1; if(chain->getTorsion() != 1){ @@ -261,25 +278,26 @@ void Homology::findDualGenerators() } - if(j == 0 && _cellComplex->getNumOmitted() > 0){ - for(int i = 0; i < _cellComplex->getNumOmitted(); i++){ + if(j == 0 && cellComplex->getNumOmitted() > 0){ + for(int i = 0; i < cellComplex->getNumOmitted(); i++){ std::string generator; convert(i+1, generator); std::string name - = "H" + dimension + "*" + getDomainString() + generator; - std::vector<int> coeffs (_cellComplex->getOmitted(i).size(),1); - Chain* chain = new Chain(_cellComplex->getOmitted(i), coeffs, - _cellComplex, _model, name, 1); - _generators[dim-j].push_back(chain); + = "H" + dimension + "*" + + getDomainString(_domain, _subdomain) + generator; + std::vector<int> coeffs (cellComplex->getOmitted(i).size(),1); + Chain* chain = new Chain(cellComplex->getOmitted(i), coeffs, + cellComplex, _model, name, 1); + _generators[chain->createPGroup()] = chain; if(chain->getSize() != 0) HRank[dim-j] = HRank[dim-j] + 1; } } - - } - - createPViews(); + if(_fileName != "") writeGeneratorsMSH(); + + delete cellComplex; + delete chains; Msg::Info("Ranks of homology spaces for the dual cell complex:"); Msg::Info("H0* = %d", HRank[0]); @@ -288,74 +306,183 @@ void Homology::findDualGenerators() Msg::Info("H3* = %d", HRank[3]); if(omitted != 0) Msg::Info("The computation of %d highest dimension dual generators was omitted.", omitted); - delete chains; - - Msg::Debug("H0* = %d \n", HRank[0]); - Msg::Debug("H1* = %d \n", HRank[1]); - Msg::Debug("H2* = %d \n", HRank[2]); - Msg::Debug("H3* = %d \n", HRank[3]); - Msg::StatusBar(1, false, "Homology"); Msg::StatusBar(2, false, "H0*: %d, H1*: %d, H2*: %d, H3*: %d.", HRank[0], HRank[1], HRank[2], HRank[3]); - - return; } void Homology::computeBettiNumbers() { + CellComplex* cellComplex = createCellComplex(_domainEntities, + _subdomainEntities); + Msg::Info("Running coreduction..."); Msg::StatusBar(1, false, "Computing..."); double t1 = Cpu(); - _cellComplex->computeBettiNumbers(); + cellComplex->computeBettiNumbers(); double t2 = Cpu(); Msg::Info("Betti number computation complete (%g s).", t2- t1); - Msg::Info("H0 = %d", _cellComplex->getBettiNumber(0)); - Msg::Info("H1 = %d", _cellComplex->getBettiNumber(1)); - Msg::Info("H2 = %d", _cellComplex->getBettiNumber(2)); - Msg::Info("H3 = %d", _cellComplex->getBettiNumber(3)); + Msg::Info("H0 = %d", cellComplex->getBettiNumber(0)); + Msg::Info("H1 = %d", cellComplex->getBettiNumber(1)); + Msg::Info("H2 = %d", cellComplex->getBettiNumber(2)); + Msg::Info("H3 = %d", cellComplex->getBettiNumber(3)); Msg::StatusBar(1, false, "Homology"); Msg::StatusBar(2, false, "H0: %d, H1: %d, H2: %d, H3: %d.", - _cellComplex->getBettiNumber(0), - _cellComplex->getBettiNumber(1), - _cellComplex->getBettiNumber(2), - _cellComplex->getBettiNumber(3)); + cellComplex->getBettiNumber(0), + cellComplex->getBettiNumber(1), + cellComplex->getBettiNumber(2), + cellComplex->getBettiNumber(3)); + + if(_fileName != "") cellComplex->writeBettiNumbers(_fileName); + delete cellComplex; +} + +void Homology::findHomSequence(){ + + CellComplex* cellComplex = new CellComplex(_domainEntities, + _subdomainEntities); + Msg::Info("Reducing the Cell Complex..."); + Msg::StatusBar(1, false, "Reducing..."); + double t1 = Cpu(); + + printf("Cell Complex: \n %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + cellComplex->reduceComplex(false); + + printf(" %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + cellComplex->combine(3); + cellComplex->reduction(2); + cellComplex->combine(2); + cellComplex->reduction(1); + cellComplex->combine(1); + + cellComplex->storeCells(1); + + printf(" %d volumes, %d faces, %d edges and %d vertices. \n", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + cellComplex->checkCoherence(); + + double t2 = Cpu(); + Msg::Info("Cell Complex reduction complete (%g s).", t2 - t1); + Msg::Info("%d volumes, %d faces, %d edges and %d vertices.", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + Msg::StatusBar(2, false, "%d V, %d F, %d E, %d N.", + cellComplex->getSize(3), cellComplex->getSize(2), + cellComplex->getSize(1), cellComplex->getSize(0)); + + Msg::Info("Computing homology spaces..."); + Msg::StatusBar(1, false, "Computing..."); + t1 = Cpu(); - if(_fileName != "") writeBettiNumbers(); - return; + for(int task = 0; task < 3; task++){ + ChainComplex* chains = new ChainComplex(cellComplex, task); + std::string domainString = ""; + std::vector<int> empty; + if(task == 0) domainString = getDomainString(_domain, _subdomain); + else if(task == 1) domainString = getDomainString(_domain, empty); + else if(task == 2) domainString = getDomainString(_subdomain, empty); + chains->computeHomology(); + t2 = Cpu(); + Msg::Info("Homology Computation complete (%g s).", t2 - t1); + + int HRank[4]; + for(int j = 0; j < 4; j++){ + HRank[j] = 0; + std::string dimension = ""; + convert(j, dimension); + for(int i = 1; i <= chains->getBasisSize(j); i++){ + + std::string generator = ""; + convert(i, generator); + + std::string name = "H" + dimension + domainString + generator; + std::set<Cell*, Less_Cell> cells; + cellComplex->getCells(cells, j, task); + Chain* chain = new Chain(cells, + chains->getCoeffVector(j,i), + cellComplex, _model, name, + chains->getTorsion(j,i)); + t1 = Cpu(); + int start = chain->getSize(); + //chain->smoothenChain(); + t2 = Cpu(); + //Msg::Info("Smoothened H%d %d from %d cells to %d cells (%g s).", + // j, i, start, chain->getSize(), t2 - t1); + if(chain->getSize() != 0) { + HRank[j] = HRank[j] + 1; + if(chain->getTorsion() != 1){ + Msg::Warning("H%d %d has torsion coefficient %d!", + j, i, chain->getTorsion()); + } + } + _generators[chain->createPGroup()] = chain; + } + + } + if(task == 0){ + Msg::Info("Ranks of relative homology spaces:"); + } + if(task == 1){ + Msg::Info("Ranks of absolute homology spaces:"); + } + if(task == 2){ + Msg::Info("Ranks of absolute homology spaces of relative subdomain:"); + } + Msg::Info("H0 = %d", HRank[0]); + Msg::Info("H1 = %d", HRank[1]); + Msg::Info("H2 = %d", HRank[2]); + Msg::Info("H3 = %d", HRank[3]); + + Msg::StatusBar(1, false, "Homology"); + Msg::StatusBar(2, false, "H0: %d, H1: %d, H2: %d, H3: %d.", + HRank[0], HRank[1], HRank[2], HRank[3]); + delete chains; + } + + if(_fileName != "") writeGeneratorsMSH(); + delete cellComplex; } -void Homology::restoreHomology() +/*void Homology::restoreHomology() { - _cellComplex->restoreComplex(); + cellComplexy->restoreComplex(); for(int i = 0; i < 4; i++) _generators[i].clear(); -} + }*/ -std::string Homology::getDomainString() +std::string Homology::getDomainString(const std::vector<int>& domain, + const std::vector<int>& subdomain) { std::string domainString = "({"; - if(_domain.empty()) domainString += "0"; + if(domain.empty()) domainString += "0"; else{ - for(unsigned int i = 0; i < _domain.size(); i++){ + for(unsigned int i = 0; i < domain.size(); i++){ std::string temp = ""; - convert(_domain.at(i),temp); + convert(domain.at(i),temp); domainString += temp; - if (_domain.size()-1 > i){ + if (domain.size()-1 > i){ domainString += ", "; } } } domainString += "}"; - if(!_subdomain.empty()){ + if(!subdomain.empty()){ domainString += ", {"; - for(unsigned int i = 0; i < _subdomain.size(); i++){ + for(unsigned int i = 0; i < subdomain.size(); i++){ std::string temp = ""; - convert(_subdomain.at(i),temp); + convert(subdomain.at(i),temp); domainString += temp; - if (_subdomain.size()-1 > i){ + if (subdomain.size()-1 > i){ domainString += ", "; } } @@ -365,16 +492,6 @@ std::string Homology::getDomainString() return domainString; } -void Homology::createPViews() -{ - for(int i = 0; i < 4; i++){ - for(unsigned int j = 0; j < _generators[i].size(); j++){ - Chain* chain = _generators[i].at(j); - chain->createPView(); - } - } -} - bool Homology::writeGeneratorsMSH(bool binary) { if(_fileName.empty()) return false; diff --git a/Geo/Homology.h b/Geo/Homology.h index 3547f08bbd592dec8c3532ce9bad183ed6bd30f4..62d1fd224171664d0293380bb020d3bb6a2b3445 100644 --- a/Geo/Homology.h +++ b/Geo/Homology.h @@ -27,17 +27,21 @@ class Homology { private: - // base cell complex and the model of the homology computation - CellComplex* _cellComplex; + // the model of the homology computation GModel* _model; // domain and the relative subdomain of the homology computation std::vector<int> _domain; std::vector<int> _subdomain; - + std::vector<GEntity*> _domainEntities; + std::vector<GEntity*> _subdomainEntities; + // generator chains - std::vector<Chain*> _generators[4]; - + //std::vector<Chain*> _generators[4]; + //std::vector<int> _pGroups; + + std::map<int, Chain*> _generators; + std::string _fileName; public: @@ -46,30 +50,31 @@ class Homology std::vector<int> physicalSubdomain); ~Homology(); + CellComplex* createCellComplex(std::vector<GEntity*>& domainEntities, + std::vector<GEntity*>& subdomainEntities); + void setFileName(std::string fileName) { _fileName = fileName; } // Find the generators/duals of homology spaces, // or just compute the ranks of homology spaces - void findGenerators(); + void findGenerators(CellComplex* cellComplex=NULL, + bool omit=true, std::string domainString=""); void findDualGenerators(); void computeBettiNumbers(); - bool swapSubdomain() { return _cellComplex->swapSubdomain(); } + void findHomSequence(); + + //bool swapSubdomain() { return _cellComplex->swapSubdomain(); } // Restore the cell complex to its original state before cell reductions - void restoreHomology(); + //void restoreHomology(); // Create a string describing the generator - std::string getDomainString(); + std::string getDomainString(const std::vector<int>& domain, + const std::vector<int>& subdomain); - // create PViews of the generators and save the chain mesh elements - // to the mesh of the model - void createPViews(); // write the generators to a file bool writeGeneratorsMSH(bool binary=false); - bool writeBettiNumbers() { - return _cellComplex->writeBettiNumbers(_fileName); } - }; #endif diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index dd6e0cdbfb2fb4ee925710041e046981e55d7e7f..61b95dfecf2c57d847a12bd9d8abff4084fcebda 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -142,6 +142,7 @@ Hole return tHole; HomRank return tHomRank; HomGen return tHomGen; HomCut return tHomCut; +HomSeq return tHomSeq; Hypot return tHypot; In return tIn; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 2b42190d4af9b1a8761f7e382274b06b4d193326..efd62cfb978bd138affef7191bea0924ac99080e 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,7 +28,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -47,7 +46,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.3" +#define YYBISON_VERSION "2.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -55,17 +54,133 @@ /* Pure parsers. */ #define YYPURE 0 +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse gmsh_yyparse -#define yylex gmsh_yylex -#define yyerror gmsh_yyerror -#define yylval gmsh_yylval -#define yychar gmsh_yychar -#define yydebug gmsh_yydebug -#define yynerrs gmsh_yynerrs +#define yyparse gmsh_yyparse +#define yylex gmsh_yylex +#define yyerror gmsh_yyerror +#define yylval gmsh_yylval +#define yychar gmsh_yychar +#define yydebug gmsh_yydebug +#define yynerrs gmsh_yynerrs + + +/* Copy the first part of user declarations. */ + +/* Line 189 of yacc.c */ +#line 1 "Gmsh.y" + +// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle +// +// See the LICENSE.txt file for license information. Please report all +// bugs and problems to <gmsh@geuz.org>. + +#include <string.h> +#include <stdarg.h> +#include <time.h> +#include "GmshConfig.h" +#include "GmshMessage.h" +#include "fullMatrix.h" +#include "MallocUtils.h" +#include "ListUtils.h" +#include "TreeUtils.h" +#include "StringUtils.h" +#include "Numeric.h" +#include "Context.h" +#include "GModel.h" +#include "Geo.h" +#include "GeoInterpolation.h" +#include "Options.h" +#include "Colors.h" +#include "Parser.h" +#include "OpenFile.h" +#include "CommandLine.h" +#include "FunctionManager.h" +#include "ColorTable.h" +#include "OS.h" +#include "CreateFile.h" +#include "gmshSurface.h" +#include "gmshLevelset.h" + +#if defined(HAVE_MESH) +#include "Generator.h" +#include "Field.h" +#include "BackgroundMesh.h" +#endif + +#if defined(HAVE_POST) +#include "PView.h" +#include "PViewDataList.h" +#include "PluginManager.h" +#endif + +#if defined(HAVE_OPENGL) +#include "drawContext.h" +#endif + +#if defined(HAVE_KBIPACK) +#include "Homology.h" +#endif + +// Global parser variables +std::string gmsh_yyname; +int gmsh_yyerrorstate = 0; +int gmsh_yyviewindex = 0; +std::map<std::string, std::vector<double> > gmsh_yysymbols; + +// Static parser variables (accessible only in this file) +static std::map<std::string, std::string > gmsh_yystringsymbols; +#if defined(HAVE_POST) +static PViewDataList *ViewData; +#endif +static std::vector<double> ViewCoord; +static std::vector<double> *ViewValueList = 0; +static int *ViewNumList = 0; +static ExtrudeParams extr; +static int curPhysDim = 0; +static gmshSurface *myGmshSurface = 0; +#define MAX_RECUR_LOOPS 100 +static int ImbricatedLoop = 0; +static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS]; +static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS]; +static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3]; +static const char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS]; + +void yyerror(const char *s); +void yymsg(int level, const char *fmt, ...); +void skip_until(const char *skip, const char *until); +int PrintListOfDouble(char *format, List_T *list, char *buffer); +fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); + + +/* Line 189 of yacc.c */ +#line 166 "Gmsh.tab.cpp" + +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif /* Tokens. */ @@ -188,261 +303,32 @@ tHomRank = 369, tHomGen = 370, tHomCut = 371, - tAFFECTDIVIDE = 372, - tAFFECTTIMES = 373, - tAFFECTMINUS = 374, - tAFFECTPLUS = 375, - tOR = 376, - tAND = 377, - tNOTEQUAL = 378, - tEQUAL = 379, - tGREATEROREQUAL = 380, - tLESSOREQUAL = 381, - UNARYPREC = 382, - tMINUSMINUS = 383, - tPLUSPLUS = 384 + tHomSeq = 372, + tAFFECTDIVIDE = 373, + tAFFECTTIMES = 374, + tAFFECTMINUS = 375, + tAFFECTPLUS = 376, + tOR = 377, + tAND = 378, + tNOTEQUAL = 379, + tEQUAL = 380, + tGREATEROREQUAL = 381, + tLESSOREQUAL = 382, + UNARYPREC = 383, + tMINUSMINUS = 384, + tPLUSPLUS = 385 }; #endif -/* Tokens. */ -#define tDOUBLE 258 -#define tSTRING 259 -#define tBIGSTR 260 -#define tEND 261 -#define tAFFECT 262 -#define tDOTS 263 -#define tPi 264 -#define tMPI_Rank 265 -#define tMPI_Size 266 -#define tEuclidian 267 -#define tCoordinates 268 -#define tExp 269 -#define tLog 270 -#define tLog10 271 -#define tSqrt 272 -#define tSin 273 -#define tAsin 274 -#define tCos 275 -#define tAcos 276 -#define tTan 277 -#define tRand 278 -#define tAtan 279 -#define tAtan2 280 -#define tSinh 281 -#define tCosh 282 -#define tTanh 283 -#define tFabs 284 -#define tFloor 285 -#define tCeil 286 -#define tFmod 287 -#define tModulo 288 -#define tHypot 289 -#define tPrintf 290 -#define tSprintf 291 -#define tStrCat 292 -#define tStrPrefix 293 -#define tStrRelative 294 -#define tBoundingBox 295 -#define tDraw 296 -#define tToday 297 -#define tSyncModel 298 -#define tCreateTopology 299 -#define tDistanceFunction 300 -#define tPoint 301 -#define tCircle 302 -#define tEllipse 303 -#define tLine 304 -#define tSphere 305 -#define tPolarSphere 306 -#define tSurface 307 -#define tSpline 308 -#define tVolume 309 -#define tCharacteristic 310 -#define tLength 311 -#define tParametric 312 -#define tElliptic 313 -#define tPlane 314 -#define tRuled 315 -#define tTransfinite 316 -#define tComplex 317 -#define tPhysical 318 -#define tCompound 319 -#define tUsing 320 -#define tPlugin 321 -#define tDegenerated 322 -#define tOCCShape 323 -#define tRotate 324 -#define tTranslate 325 -#define tSymmetry 326 -#define tDilate 327 -#define tExtrude 328 -#define tLevelset 329 -#define tLoop 330 -#define tRecombine 331 -#define tSmoother 332 -#define tSplit 333 -#define tDelete 334 -#define tCoherence 335 -#define tIntersect 336 -#define tLayers 337 -#define tHole 338 -#define tAlias 339 -#define tAliasWithOptions 340 -#define tText2D 341 -#define tText3D 342 -#define tInterpolationScheme 343 -#define tTime 344 -#define tCombine 345 -#define tBSpline 346 -#define tBezier 347 -#define tNurbs 348 -#define tNurbsOrder 349 -#define tNurbsKnots 350 -#define tColor 351 -#define tColorTable 352 -#define tFor 353 -#define tIn 354 -#define tEndFor 355 -#define tIf 356 -#define tEndIf 357 -#define tExit 358 -#define tField 359 -#define tReturn 360 -#define tCall 361 -#define tFunction 362 -#define tShow 363 -#define tHide 364 -#define tGetValue 365 -#define tGMSH_MAJOR_VERSION 366 -#define tGMSH_MINOR_VERSION 367 -#define tGMSH_PATCH_VERSION 368 -#define tHomRank 369 -#define tHomGen 370 -#define tHomCut 371 -#define tAFFECTDIVIDE 372 -#define tAFFECTTIMES 373 -#define tAFFECTMINUS 374 -#define tAFFECTPLUS 375 -#define tOR 376 -#define tAND 377 -#define tNOTEQUAL 378 -#define tEQUAL 379 -#define tGREATEROREQUAL 380 -#define tLESSOREQUAL 381 -#define UNARYPREC 382 -#define tMINUSMINUS 383 -#define tPLUSPLUS 384 - - - - -/* Copy the first part of user declarations. */ -#line 1 "Gmsh.y" - -// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle -// -// See the LICENSE.txt file for license information. Please report all -// bugs and problems to <gmsh@geuz.org>. - -#include <string.h> -#include <stdarg.h> -#include <time.h> -#include "GmshConfig.h" -#include "GmshMessage.h" -#include "fullMatrix.h" -#include "MallocUtils.h" -#include "ListUtils.h" -#include "TreeUtils.h" -#include "StringUtils.h" -#include "Numeric.h" -#include "Context.h" -#include "GModel.h" -#include "Geo.h" -#include "GeoInterpolation.h" -#include "Options.h" -#include "Colors.h" -#include "Parser.h" -#include "OpenFile.h" -#include "CommandLine.h" -#include "FunctionManager.h" -#include "ColorTable.h" -#include "OS.h" -#include "CreateFile.h" -#include "gmshSurface.h" -#include "gmshLevelset.h" - -#if defined(HAVE_MESH) -#include "Generator.h" -#include "Field.h" -#include "BackgroundMesh.h" -#endif - -#if defined(HAVE_POST) -#include "PView.h" -#include "PViewDataList.h" -#include "PluginManager.h" -#endif - -#if defined(HAVE_OPENGL) -#include "drawContext.h" -#endif - -#if defined(HAVE_KBIPACK) -#include "Homology.h" -#endif - -// Global parser variables -std::string gmsh_yyname; -int gmsh_yyerrorstate = 0; -int gmsh_yyviewindex = 0; -std::map<std::string, std::vector<double> > gmsh_yysymbols; - -// Static parser variables (accessible only in this file) -static std::map<std::string, std::string > gmsh_yystringsymbols; -#if defined(HAVE_POST) -static PViewDataList *ViewData; -#endif -static std::vector<double> ViewCoord; -static std::vector<double> *ViewValueList = 0; -static int *ViewNumList = 0; -static ExtrudeParams extr; -static int curPhysDim = 0; -static gmshSurface *myGmshSurface = 0; -#define MAX_RECUR_LOOPS 100 -static int ImbricatedLoop = 0; -static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS]; -static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS]; -static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3]; -static const char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS]; - -void yyerror(const char *s); -void yymsg(int level, const char *fmt, ...); -void skip_until(const char *skip, const char *until); -int PrintListOfDouble(char *format, List_T *list, char *buffer); -fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); - - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE 0 -#endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 -#endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 85 "Gmsh.y" { + +/* Line 214 of yacc.c */ +#line 85 "Gmsh.y" + char *c; int i; unsigned int u; @@ -450,22 +336,23 @@ typedef union YYSTYPE double v[5]; Shape s; List_T *l; -} -/* Line 193 of yacc.c. */ -#line 456 "Gmsh.tab.cpp" - YYSTYPE; + + + +/* Line 214 of yacc.c */ +#line 344 "Gmsh.tab.cpp" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif - /* Copy the second part of user declarations. */ -/* Line 216 of yacc.c. */ -#line 469 "Gmsh.tab.cpp" +/* Line 264 of yacc.c */ +#line 356 "Gmsh.tab.cpp" #ifdef short # undef short @@ -515,7 +402,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if defined YYENABLE_NLS && YYENABLE_NLS +# if YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -540,14 +427,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int i) +YYID (int yyi) #else static int -YYID (i) - int i; +YYID (yyi) + int yyi; #endif { - return i; + return yyi; } #endif @@ -628,9 +515,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss; - YYSTYPE yyvs; - }; + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -664,12 +551,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack) \ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack, Stack, yysize); \ - Stack = &yyptr->Stack; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -680,20 +567,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6594 +#define YYLAST 6752 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 150 +#define YYNTOKENS 151 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 81 /* YYNRULES -- Number of rules. */ -#define YYNRULES 383 +#define YYNRULES 384 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1362 +#define YYNSTATES 1373 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 384 +#define YYMAXUTOK 385 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -704,16 +591,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, 135, 2, 145, 2, 134, 2, 2, - 140, 141, 132, 130, 146, 131, 144, 133, 2, 2, + 2, 2, 2, 136, 2, 146, 2, 135, 2, 2, + 141, 142, 133, 131, 147, 132, 145, 134, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 126, 2, 127, 121, 2, 2, 2, 2, 2, 2, + 127, 2, 128, 122, 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, 142, 2, 143, 139, 2, 2, 2, 2, 2, + 2, 143, 2, 144, 140, 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, 147, 2, 148, 149, 2, 2, 2, + 2, 2, 2, 148, 2, 149, 150, 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, @@ -738,8 +625,8 @@ static const yytype_uint8 yytranslate[] = 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 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, 122, 123, 124, 125, - 128, 129, 136, 137, 138 + 115, 116, 117, 118, 119, 120, 121, 123, 124, 125, + 126, 129, 130, 137, 138, 139 }; #if YYDEBUG @@ -772,248 +659,249 @@ static const yytype_uint16 yyprhs[] = 1413, 1432, 1434, 1437, 1443, 1451, 1461, 1464, 1474, 1475, 1477, 1478, 1482, 1483, 1485, 1486, 1489, 1490, 1493, 1501, 1508, 1517, 1523, 1529, 1536, 1547, 1558, 1569, 1580, 1583, - 1587, 1599, 1611, 1623, 1625, 1629, 1632, 1635, 1638, 1642, - 1646, 1650, 1654, 1658, 1662, 1666, 1670, 1674, 1678, 1682, - 1686, 1690, 1694, 1700, 1705, 1710, 1715, 1720, 1725, 1730, - 1735, 1740, 1745, 1750, 1757, 1762, 1767, 1772, 1777, 1782, - 1787, 1794, 1801, 1808, 1813, 1818, 1823, 1828, 1833, 1838, - 1843, 1848, 1853, 1858, 1863, 1870, 1875, 1880, 1885, 1890, - 1895, 1900, 1907, 1914, 1921, 1926, 1928, 1930, 1932, 1934, - 1936, 1938, 1940, 1942, 1948, 1953, 1958, 1961, 1967, 1971, - 1978, 1983, 1991, 1998, 2000, 2003, 2006, 2010, 2014, 2026, - 2036, 2044, 2052, 2054, 2058, 2060, 2062, 2065, 2069, 2074, - 2080, 2082, 2084, 2087, 2091, 2095, 2101, 2106, 2108, 2110, - 2114, 2121, 2123, 2125, 2129, 2133, 2143, 2151, 2153, 2159, - 2163, 2170, 2172, 2176, 2178, 2180, 2184, 2191, 2193, 2195, - 2202, 2207, 2212, 2217 + 1587, 1599, 1611, 1623, 1635, 1637, 1641, 1644, 1647, 1650, + 1654, 1658, 1662, 1666, 1670, 1674, 1678, 1682, 1686, 1690, + 1694, 1698, 1702, 1706, 1712, 1717, 1722, 1727, 1732, 1737, + 1742, 1747, 1752, 1757, 1762, 1769, 1774, 1779, 1784, 1789, + 1794, 1799, 1806, 1813, 1820, 1825, 1830, 1835, 1840, 1845, + 1850, 1855, 1860, 1865, 1870, 1875, 1882, 1887, 1892, 1897, + 1902, 1907, 1912, 1919, 1926, 1933, 1938, 1940, 1942, 1944, + 1946, 1948, 1950, 1952, 1954, 1960, 1965, 1970, 1973, 1979, + 1983, 1990, 1995, 2003, 2010, 2012, 2015, 2018, 2022, 2026, + 2038, 2048, 2056, 2064, 2066, 2070, 2072, 2074, 2077, 2081, + 2086, 2092, 2094, 2096, 2099, 2103, 2107, 2113, 2118, 2120, + 2122, 2126, 2133, 2135, 2137, 2141, 2145, 2155, 2163, 2165, + 2171, 2175, 2182, 2184, 2188, 2190, 2192, 2196, 2203, 2205, + 2207, 2214, 2219, 2224, 2229 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 151, 0, -1, 152, -1, 1, 6, -1, -1, 152, - 153, -1, 156, -1, 155, -1, 174, -1, 178, -1, - 183, -1, 187, -1, 188, -1, 189, -1, 192, -1, - 213, -1, 214, -1, 215, -1, 191, -1, 190, -1, - 186, -1, 216, -1, 127, -1, 127, 127, -1, 35, - 140, 5, 141, 6, -1, 35, 140, 5, 141, 154, - 229, 6, -1, 35, 140, 5, 146, 225, 141, 6, - -1, 35, 140, 5, 146, 225, 141, 154, 229, 6, - -1, 4, 5, 147, 157, 148, 6, -1, 84, 4, - 142, 217, 143, 6, -1, 85, 4, 142, 217, 143, - 6, -1, -1, 157, 160, -1, 157, 164, -1, 157, - 167, -1, 157, 169, -1, 157, 170, -1, 217, -1, - 158, 146, 217, -1, 217, -1, 159, 146, 217, -1, - -1, -1, 4, 161, 140, 158, 141, 162, 147, 159, - 148, 6, -1, 229, -1, 163, 146, 229, -1, -1, - 86, 140, 217, 146, 217, 146, 217, 141, 165, 147, - 163, 148, 6, -1, 229, -1, 166, 146, 229, -1, - -1, 87, 140, 217, 146, 217, 146, 217, 146, 217, - 141, 168, 147, 166, 148, 6, -1, 88, 147, 221, - 148, 147, 221, 148, 6, -1, 88, 147, 221, 148, - 147, 221, 148, 147, 221, 148, 147, 221, 148, 6, - -1, -1, 89, 171, 147, 159, 148, 6, -1, 7, - -1, 120, -1, 119, -1, 118, -1, 117, -1, 138, - -1, 137, -1, 4, 172, 217, 6, -1, 4, 142, - 217, 143, 172, 217, 6, -1, 4, 142, 147, 225, - 148, 143, 172, 222, 6, -1, 4, 142, 143, 7, - 222, 6, -1, 4, 142, 143, 120, 222, 6, -1, - 4, 173, 6, -1, 4, 142, 217, 143, 173, 6, - -1, 4, 7, 230, 6, -1, 4, 144, 4, 7, - 230, 6, -1, 4, 142, 217, 143, 144, 4, 7, - 230, 6, -1, 4, 144, 4, 172, 217, 6, -1, - 4, 142, 217, 143, 144, 4, 172, 217, 6, -1, - 4, 144, 4, 173, 6, -1, 4, 142, 217, 143, - 144, 4, 173, 6, -1, 4, 144, 96, 144, 4, - 7, 226, 6, -1, 4, 142, 217, 143, 144, 96, - 144, 4, 7, 226, 6, -1, 4, 144, 97, 7, - 227, 6, -1, 4, 142, 217, 143, 144, 97, 7, - 227, 6, -1, 4, 104, 7, 217, 6, -1, 104, - 142, 217, 143, 7, 4, 6, -1, 104, 142, 217, - 143, 144, 4, 7, 217, 6, -1, 104, 142, 217, - 143, 144, 4, 7, 230, 6, -1, 104, 142, 217, - 143, 144, 4, 7, 147, 225, 148, 6, -1, 66, - 140, 4, 141, 144, 4, 7, 217, 6, -1, 66, - 140, 4, 141, 144, 4, 7, 230, 6, -1, 217, - -1, 230, -1, -1, 99, 50, 147, 217, 148, -1, - -1, 59, 219, -1, 46, 140, 217, 141, 7, 219, - 6, -1, -1, 63, 46, 179, 140, 175, 141, 7, - 222, 6, -1, 55, 56, 222, 7, 217, 6, -1, - 49, 140, 217, 141, 7, 222, 6, -1, 67, 49, - 222, 6, -1, 53, 140, 217, 141, 7, 222, 6, - -1, 47, 140, 217, 141, 7, 222, 177, 6, -1, - 48, 140, 217, 141, 7, 222, 177, 6, -1, 91, - 140, 217, 141, 7, 222, 6, -1, 92, 140, 217, - 141, 7, 222, 6, -1, 93, 140, 217, 141, 7, - 222, 95, 222, 94, 217, 6, -1, 49, 75, 140, - 217, 141, 7, 222, 6, -1, 64, 49, 140, 217, - 141, 7, 222, 6, -1, -1, 63, 49, 180, 140, - 175, 141, 7, 222, 6, -1, 59, 52, 140, 217, - 141, 7, 222, 6, -1, 60, 52, 140, 217, 141, - 7, 222, 176, 6, -1, 12, 13, 6, -1, 13, - 52, 217, 6, -1, 57, 52, 140, 217, 141, 7, - 5, 5, 5, 6, -1, 50, 140, 217, 141, 7, - 222, 6, -1, 51, 140, 217, 141, 7, 222, 6, - -1, 52, 75, 140, 217, 141, 7, 222, 6, -1, - 64, 52, 140, 217, 141, 7, 222, 208, 6, -1, - 64, 52, 140, 217, 141, 7, 222, 4, 147, 221, - 148, 208, 6, -1, -1, 63, 52, 181, 140, 175, - 141, 7, 222, 6, -1, 62, 54, 140, 217, 141, - 7, 222, 6, -1, 54, 140, 217, 141, 7, 222, - 6, -1, 68, 140, 5, 146, 222, 146, 5, 141, - 6, -1, 64, 54, 140, 217, 141, 7, 222, 6, - -1, -1, 63, 54, 182, 140, 175, 141, 7, 222, - 6, -1, 70, 219, 147, 184, 148, -1, 69, 147, - 219, 146, 219, 146, 217, 148, 147, 184, 148, -1, - 71, 219, 147, 184, 148, -1, 72, 147, 219, 146, - 217, 148, 147, 184, 148, -1, 4, 147, 184, 148, - -1, 81, 49, 147, 225, 148, 52, 147, 217, 148, - -1, 78, 49, 140, 217, 141, 147, 225, 148, 6, - -1, 185, -1, 183, -1, -1, 185, 178, -1, 185, - 46, 147, 225, 148, 6, -1, 185, 49, 147, 225, - 148, 6, -1, 185, 52, 147, 225, 148, 6, -1, - 185, 54, 147, 225, 148, 6, -1, 74, 59, 140, - 217, 141, 7, 222, 6, -1, 74, 59, 140, 217, - 141, 7, 147, 219, 146, 219, 146, 225, 148, 6, - -1, 74, 59, 140, 217, 141, 7, 147, 219, 146, - 219, 146, 219, 146, 225, 148, 6, -1, 74, 50, - 140, 217, 141, 7, 147, 219, 146, 225, 148, 6, - -1, 74, 4, 140, 217, 141, 7, 222, 6, -1, - 74, 4, 140, 217, 141, 7, 5, 6, -1, 74, - 4, 147, 217, 148, 6, -1, 74, 4, 140, 217, - 141, 7, 147, 219, 146, 219, 146, 225, 148, 6, - -1, 79, 147, 185, 148, -1, 79, 104, 142, 217, - 143, 6, -1, 79, 4, 142, 217, 143, 6, -1, + 152, 0, -1, 153, -1, 1, 6, -1, -1, 153, + 154, -1, 157, -1, 156, -1, 175, -1, 179, -1, + 184, -1, 188, -1, 189, -1, 190, -1, 193, -1, + 214, -1, 215, -1, 216, -1, 192, -1, 191, -1, + 187, -1, 217, -1, 128, -1, 128, 128, -1, 35, + 141, 5, 142, 6, -1, 35, 141, 5, 142, 155, + 230, 6, -1, 35, 141, 5, 147, 226, 142, 6, + -1, 35, 141, 5, 147, 226, 142, 155, 230, 6, + -1, 4, 5, 148, 158, 149, 6, -1, 84, 4, + 143, 218, 144, 6, -1, 85, 4, 143, 218, 144, + 6, -1, -1, 158, 161, -1, 158, 165, -1, 158, + 168, -1, 158, 170, -1, 158, 171, -1, 218, -1, + 159, 147, 218, -1, 218, -1, 160, 147, 218, -1, + -1, -1, 4, 162, 141, 159, 142, 163, 148, 160, + 149, 6, -1, 230, -1, 164, 147, 230, -1, -1, + 86, 141, 218, 147, 218, 147, 218, 142, 166, 148, + 164, 149, 6, -1, 230, -1, 167, 147, 230, -1, + -1, 87, 141, 218, 147, 218, 147, 218, 147, 218, + 142, 169, 148, 167, 149, 6, -1, 88, 148, 222, + 149, 148, 222, 149, 6, -1, 88, 148, 222, 149, + 148, 222, 149, 148, 222, 149, 148, 222, 149, 6, + -1, -1, 89, 172, 148, 160, 149, 6, -1, 7, + -1, 121, -1, 120, -1, 119, -1, 118, -1, 139, + -1, 138, -1, 4, 173, 218, 6, -1, 4, 143, + 218, 144, 173, 218, 6, -1, 4, 143, 148, 226, + 149, 144, 173, 223, 6, -1, 4, 143, 144, 7, + 223, 6, -1, 4, 143, 144, 121, 223, 6, -1, + 4, 174, 6, -1, 4, 143, 218, 144, 174, 6, + -1, 4, 7, 231, 6, -1, 4, 145, 4, 7, + 231, 6, -1, 4, 143, 218, 144, 145, 4, 7, + 231, 6, -1, 4, 145, 4, 173, 218, 6, -1, + 4, 143, 218, 144, 145, 4, 173, 218, 6, -1, + 4, 145, 4, 174, 6, -1, 4, 143, 218, 144, + 145, 4, 174, 6, -1, 4, 145, 96, 145, 4, + 7, 227, 6, -1, 4, 143, 218, 144, 145, 96, + 145, 4, 7, 227, 6, -1, 4, 145, 97, 7, + 228, 6, -1, 4, 143, 218, 144, 145, 97, 7, + 228, 6, -1, 4, 104, 7, 218, 6, -1, 104, + 143, 218, 144, 7, 4, 6, -1, 104, 143, 218, + 144, 145, 4, 7, 218, 6, -1, 104, 143, 218, + 144, 145, 4, 7, 231, 6, -1, 104, 143, 218, + 144, 145, 4, 7, 148, 226, 149, 6, -1, 66, + 141, 4, 142, 145, 4, 7, 218, 6, -1, 66, + 141, 4, 142, 145, 4, 7, 231, 6, -1, 218, + -1, 231, -1, -1, 99, 50, 148, 218, 149, -1, + -1, 59, 220, -1, 46, 141, 218, 142, 7, 220, + 6, -1, -1, 63, 46, 180, 141, 176, 142, 7, + 223, 6, -1, 55, 56, 223, 7, 218, 6, -1, + 49, 141, 218, 142, 7, 223, 6, -1, 67, 49, + 223, 6, -1, 53, 141, 218, 142, 7, 223, 6, + -1, 47, 141, 218, 142, 7, 223, 178, 6, -1, + 48, 141, 218, 142, 7, 223, 178, 6, -1, 91, + 141, 218, 142, 7, 223, 6, -1, 92, 141, 218, + 142, 7, 223, 6, -1, 93, 141, 218, 142, 7, + 223, 95, 223, 94, 218, 6, -1, 49, 75, 141, + 218, 142, 7, 223, 6, -1, 64, 49, 141, 218, + 142, 7, 223, 6, -1, -1, 63, 49, 181, 141, + 176, 142, 7, 223, 6, -1, 59, 52, 141, 218, + 142, 7, 223, 6, -1, 60, 52, 141, 218, 142, + 7, 223, 177, 6, -1, 12, 13, 6, -1, 13, + 52, 218, 6, -1, 57, 52, 141, 218, 142, 7, + 5, 5, 5, 6, -1, 50, 141, 218, 142, 7, + 223, 6, -1, 51, 141, 218, 142, 7, 223, 6, + -1, 52, 75, 141, 218, 142, 7, 223, 6, -1, + 64, 52, 141, 218, 142, 7, 223, 209, 6, -1, + 64, 52, 141, 218, 142, 7, 223, 4, 148, 222, + 149, 209, 6, -1, -1, 63, 52, 182, 141, 176, + 142, 7, 223, 6, -1, 62, 54, 141, 218, 142, + 7, 223, 6, -1, 54, 141, 218, 142, 7, 223, + 6, -1, 68, 141, 5, 147, 223, 147, 5, 142, + 6, -1, 64, 54, 141, 218, 142, 7, 223, 6, + -1, -1, 63, 54, 183, 141, 176, 142, 7, 223, + 6, -1, 70, 220, 148, 185, 149, -1, 69, 148, + 220, 147, 220, 147, 218, 149, 148, 185, 149, -1, + 71, 220, 148, 185, 149, -1, 72, 148, 220, 147, + 218, 149, 148, 185, 149, -1, 4, 148, 185, 149, + -1, 81, 49, 148, 226, 149, 52, 148, 218, 149, + -1, 78, 49, 141, 218, 142, 148, 226, 149, 6, + -1, 186, -1, 184, -1, -1, 186, 179, -1, 186, + 46, 148, 226, 149, 6, -1, 186, 49, 148, 226, + 149, 6, -1, 186, 52, 148, 226, 149, 6, -1, + 186, 54, 148, 226, 149, 6, -1, 74, 59, 141, + 218, 142, 7, 223, 6, -1, 74, 59, 141, 218, + 142, 7, 148, 220, 147, 220, 147, 226, 149, 6, + -1, 74, 59, 141, 218, 142, 7, 148, 220, 147, + 220, 147, 220, 147, 226, 149, 6, -1, 74, 50, + 141, 218, 142, 7, 148, 220, 147, 226, 149, 6, + -1, 74, 4, 141, 218, 142, 7, 223, 6, -1, + 74, 4, 141, 218, 142, 7, 5, 6, -1, 74, + 4, 148, 218, 149, 6, -1, 74, 4, 141, 218, + 142, 7, 148, 220, 147, 220, 147, 226, 149, 6, + -1, 79, 148, 186, 149, -1, 79, 104, 143, 218, + 144, 6, -1, 79, 4, 143, 218, 144, 6, -1, 79, 4, 6, -1, 79, 4, 4, 6, -1, 96, - 226, 147, 185, 148, -1, 108, 5, 6, -1, 109, - 5, 6, -1, 108, 147, 185, 148, -1, 109, 147, - 185, 148, -1, 4, 230, 6, -1, 4, 4, 142, - 217, 143, 229, 6, -1, 4, 4, 4, 142, 217, - 143, 6, -1, 4, 217, 6, -1, 66, 140, 4, - 141, 144, 4, 6, -1, 90, 4, 6, -1, 103, - 6, -1, 43, 6, -1, 40, 6, -1, 40, 147, - 217, 146, 217, 146, 217, 146, 217, 146, 217, 146, - 217, 148, 6, -1, 41, 6, -1, 44, 6, -1, - 98, 140, 217, 8, 217, 141, -1, 98, 140, 217, - 8, 217, 8, 217, 141, -1, 98, 4, 99, 147, - 217, 8, 217, 148, -1, 98, 4, 99, 147, 217, - 8, 217, 8, 217, 148, -1, 100, -1, 107, 4, - -1, 105, -1, 106, 4, 6, -1, 101, 140, 217, - 141, -1, 102, -1, 73, 219, 147, 185, 148, -1, - 73, 147, 219, 146, 219, 146, 217, 148, 147, 185, - 148, -1, 73, 147, 219, 146, 219, 146, 219, 146, - 217, 148, 147, 185, 148, -1, -1, 73, 219, 147, - 185, 193, 206, 148, -1, -1, 73, 147, 219, 146, - 219, 146, 217, 148, 147, 185, 194, 206, 148, -1, - -1, 73, 147, 219, 146, 219, 146, 219, 146, 217, - 148, 147, 185, 195, 206, 148, -1, -1, 73, 147, - 185, 196, 206, 148, -1, 73, 46, 147, 217, 146, - 219, 148, 6, -1, 73, 49, 147, 217, 146, 219, - 148, 6, -1, 73, 52, 147, 217, 146, 219, 148, - 6, -1, 73, 46, 147, 217, 146, 219, 146, 219, - 146, 217, 148, 6, -1, 73, 49, 147, 217, 146, - 219, 146, 219, 146, 217, 148, 6, -1, 73, 52, - 147, 217, 146, 219, 146, 219, 146, 217, 148, 6, - -1, 73, 46, 147, 217, 146, 219, 146, 219, 146, - 219, 146, 217, 148, 6, -1, 73, 49, 147, 217, - 146, 219, 146, 219, 146, 219, 146, 217, 148, 6, - -1, 73, 52, 147, 217, 146, 219, 146, 219, 146, - 219, 146, 217, 148, 6, -1, -1, 73, 46, 147, - 217, 146, 219, 148, 197, 147, 206, 148, 6, -1, - -1, 73, 49, 147, 217, 146, 219, 148, 198, 147, - 206, 148, 6, -1, -1, 73, 52, 147, 217, 146, - 219, 148, 199, 147, 206, 148, 6, -1, -1, 73, - 46, 147, 217, 146, 219, 146, 219, 146, 217, 148, - 200, 147, 206, 148, 6, -1, -1, 73, 49, 147, - 217, 146, 219, 146, 219, 146, 217, 148, 201, 147, - 206, 148, 6, -1, -1, 73, 52, 147, 217, 146, - 219, 146, 219, 146, 217, 148, 202, 147, 206, 148, - 6, -1, -1, 73, 46, 147, 217, 146, 219, 146, - 219, 146, 219, 146, 217, 148, 203, 147, 206, 148, - 6, -1, -1, 73, 49, 147, 217, 146, 219, 146, - 219, 146, 219, 146, 217, 148, 204, 147, 206, 148, - 6, -1, -1, 73, 52, 147, 217, 146, 219, 146, - 219, 146, 219, 146, 217, 148, 205, 147, 206, 148, - 6, -1, 207, -1, 206, 207, -1, 82, 147, 217, - 148, 6, -1, 82, 147, 222, 146, 222, 148, 6, - -1, 82, 147, 222, 146, 222, 146, 222, 148, 6, - -1, 76, 6, -1, 83, 140, 217, 141, 7, 222, - 65, 217, 6, -1, -1, 4, -1, -1, 65, 4, - 217, -1, -1, 4, -1, -1, 7, 222, -1, -1, - 7, 217, -1, 61, 49, 223, 7, 217, 209, 6, - -1, 61, 52, 223, 211, 210, 6, -1, 58, 52, - 147, 217, 148, 7, 222, 6, -1, 61, 54, 223, - 211, 6, -1, 76, 52, 223, 212, 6, -1, 77, - 52, 222, 7, 217, 6, -1, 46, 147, 225, 148, - 99, 52, 147, 217, 148, 6, -1, 49, 147, 225, - 148, 99, 52, 147, 217, 148, 6, -1, 49, 147, - 225, 148, 99, 54, 147, 217, 148, 6, -1, 52, - 147, 225, 148, 99, 54, 147, 217, 148, 6, -1, - 80, 6, -1, 80, 4, 6, -1, 114, 140, 229, - 141, 7, 147, 222, 146, 222, 148, 6, -1, 115, - 140, 229, 141, 7, 147, 222, 146, 222, 148, 6, - -1, 116, 140, 229, 141, 7, 147, 222, 146, 222, - 148, 6, -1, 218, -1, 140, 217, 141, -1, 131, - 217, -1, 130, 217, -1, 135, 217, -1, 217, 131, - 217, -1, 217, 130, 217, -1, 217, 132, 217, -1, - 217, 133, 217, -1, 217, 134, 217, -1, 217, 139, - 217, -1, 217, 126, 217, -1, 217, 127, 217, -1, - 217, 129, 217, -1, 217, 128, 217, -1, 217, 125, - 217, -1, 217, 124, 217, -1, 217, 123, 217, -1, - 217, 122, 217, -1, 217, 121, 217, 8, 217, -1, - 14, 140, 217, 141, -1, 15, 140, 217, 141, -1, - 16, 140, 217, 141, -1, 17, 140, 217, 141, -1, - 18, 140, 217, 141, -1, 19, 140, 217, 141, -1, - 20, 140, 217, 141, -1, 21, 140, 217, 141, -1, - 22, 140, 217, 141, -1, 24, 140, 217, 141, -1, - 25, 140, 217, 146, 217, 141, -1, 26, 140, 217, - 141, -1, 27, 140, 217, 141, -1, 28, 140, 217, - 141, -1, 29, 140, 217, 141, -1, 30, 140, 217, - 141, -1, 31, 140, 217, 141, -1, 32, 140, 217, - 146, 217, 141, -1, 33, 140, 217, 146, 217, 141, - -1, 34, 140, 217, 146, 217, 141, -1, 23, 140, - 217, 141, -1, 14, 142, 217, 143, -1, 15, 142, - 217, 143, -1, 16, 142, 217, 143, -1, 17, 142, - 217, 143, -1, 18, 142, 217, 143, -1, 19, 142, - 217, 143, -1, 20, 142, 217, 143, -1, 21, 142, - 217, 143, -1, 22, 142, 217, 143, -1, 24, 142, - 217, 143, -1, 25, 142, 217, 146, 217, 143, -1, - 26, 142, 217, 143, -1, 27, 142, 217, 143, -1, - 28, 142, 217, 143, -1, 29, 142, 217, 143, -1, - 30, 142, 217, 143, -1, 31, 142, 217, 143, -1, - 32, 142, 217, 146, 217, 143, -1, 33, 142, 217, - 146, 217, 143, -1, 34, 142, 217, 146, 217, 143, - -1, 23, 142, 217, 143, -1, 3, -1, 9, -1, - 10, -1, 11, -1, 111, -1, 112, -1, 113, -1, - 4, -1, 4, 149, 147, 217, 148, -1, 4, 142, - 217, 143, -1, 145, 4, 142, 143, -1, 4, 173, - -1, 4, 142, 217, 143, 173, -1, 4, 144, 4, - -1, 4, 142, 217, 143, 144, 4, -1, 4, 144, - 4, 173, -1, 4, 142, 217, 143, 144, 4, 173, - -1, 110, 140, 5, 146, 217, 141, -1, 220, -1, - 131, 219, -1, 130, 219, -1, 219, 131, 219, -1, - 219, 130, 219, -1, 147, 217, 146, 217, 146, 217, - 146, 217, 146, 217, 148, -1, 147, 217, 146, 217, - 146, 217, 146, 217, 148, -1, 147, 217, 146, 217, - 146, 217, 148, -1, 140, 217, 146, 217, 146, 217, - 141, -1, 222, -1, 221, 146, 222, -1, 217, -1, - 224, -1, 147, 148, -1, 147, 225, 148, -1, 131, - 147, 225, 148, -1, 217, 132, 147, 225, 148, -1, - 222, -1, 5, -1, 131, 224, -1, 217, 132, 224, - -1, 217, 8, 217, -1, 217, 8, 217, 8, 217, - -1, 46, 147, 217, 148, -1, 183, -1, 192, -1, - 4, 142, 143, -1, 4, 142, 147, 225, 148, 143, - -1, 217, -1, 224, -1, 225, 146, 217, -1, 225, - 146, 224, -1, 147, 217, 146, 217, 146, 217, 146, - 217, 148, -1, 147, 217, 146, 217, 146, 217, 148, - -1, 4, -1, 4, 144, 96, 144, 4, -1, 147, - 228, 148, -1, 4, 142, 217, 143, 144, 97, -1, - 226, -1, 228, 146, 226, -1, 230, -1, 4, -1, - 4, 144, 4, -1, 4, 142, 217, 143, 144, 4, - -1, 5, -1, 42, -1, 37, 140, 229, 146, 229, - 141, -1, 38, 140, 229, 141, -1, 39, 140, 229, - 141, -1, 36, 140, 229, 141, -1, 36, 140, 229, - 146, 225, 141, -1 + 227, 148, 186, 149, -1, 108, 5, 6, -1, 109, + 5, 6, -1, 108, 148, 186, 149, -1, 109, 148, + 186, 149, -1, 4, 231, 6, -1, 4, 4, 143, + 218, 144, 230, 6, -1, 4, 4, 4, 143, 218, + 144, 6, -1, 4, 218, 6, -1, 66, 141, 4, + 142, 145, 4, 6, -1, 90, 4, 6, -1, 103, + 6, -1, 43, 6, -1, 40, 6, -1, 40, 148, + 218, 147, 218, 147, 218, 147, 218, 147, 218, 147, + 218, 149, 6, -1, 41, 6, -1, 44, 6, -1, + 98, 141, 218, 8, 218, 142, -1, 98, 141, 218, + 8, 218, 8, 218, 142, -1, 98, 4, 99, 148, + 218, 8, 218, 149, -1, 98, 4, 99, 148, 218, + 8, 218, 8, 218, 149, -1, 100, -1, 107, 4, + -1, 105, -1, 106, 4, 6, -1, 101, 141, 218, + 142, -1, 102, -1, 73, 220, 148, 186, 149, -1, + 73, 148, 220, 147, 220, 147, 218, 149, 148, 186, + 149, -1, 73, 148, 220, 147, 220, 147, 220, 147, + 218, 149, 148, 186, 149, -1, -1, 73, 220, 148, + 186, 194, 207, 149, -1, -1, 73, 148, 220, 147, + 220, 147, 218, 149, 148, 186, 195, 207, 149, -1, + -1, 73, 148, 220, 147, 220, 147, 220, 147, 218, + 149, 148, 186, 196, 207, 149, -1, -1, 73, 148, + 186, 197, 207, 149, -1, 73, 46, 148, 218, 147, + 220, 149, 6, -1, 73, 49, 148, 218, 147, 220, + 149, 6, -1, 73, 52, 148, 218, 147, 220, 149, + 6, -1, 73, 46, 148, 218, 147, 220, 147, 220, + 147, 218, 149, 6, -1, 73, 49, 148, 218, 147, + 220, 147, 220, 147, 218, 149, 6, -1, 73, 52, + 148, 218, 147, 220, 147, 220, 147, 218, 149, 6, + -1, 73, 46, 148, 218, 147, 220, 147, 220, 147, + 220, 147, 218, 149, 6, -1, 73, 49, 148, 218, + 147, 220, 147, 220, 147, 220, 147, 218, 149, 6, + -1, 73, 52, 148, 218, 147, 220, 147, 220, 147, + 220, 147, 218, 149, 6, -1, -1, 73, 46, 148, + 218, 147, 220, 149, 198, 148, 207, 149, 6, -1, + -1, 73, 49, 148, 218, 147, 220, 149, 199, 148, + 207, 149, 6, -1, -1, 73, 52, 148, 218, 147, + 220, 149, 200, 148, 207, 149, 6, -1, -1, 73, + 46, 148, 218, 147, 220, 147, 220, 147, 218, 149, + 201, 148, 207, 149, 6, -1, -1, 73, 49, 148, + 218, 147, 220, 147, 220, 147, 218, 149, 202, 148, + 207, 149, 6, -1, -1, 73, 52, 148, 218, 147, + 220, 147, 220, 147, 218, 149, 203, 148, 207, 149, + 6, -1, -1, 73, 46, 148, 218, 147, 220, 147, + 220, 147, 220, 147, 218, 149, 204, 148, 207, 149, + 6, -1, -1, 73, 49, 148, 218, 147, 220, 147, + 220, 147, 220, 147, 218, 149, 205, 148, 207, 149, + 6, -1, -1, 73, 52, 148, 218, 147, 220, 147, + 220, 147, 220, 147, 218, 149, 206, 148, 207, 149, + 6, -1, 208, -1, 207, 208, -1, 82, 148, 218, + 149, 6, -1, 82, 148, 223, 147, 223, 149, 6, + -1, 82, 148, 223, 147, 223, 147, 223, 149, 6, + -1, 76, 6, -1, 83, 141, 218, 142, 7, 223, + 65, 218, 6, -1, -1, 4, -1, -1, 65, 4, + 218, -1, -1, 4, -1, -1, 7, 223, -1, -1, + 7, 218, -1, 61, 49, 224, 7, 218, 210, 6, + -1, 61, 52, 224, 212, 211, 6, -1, 58, 52, + 148, 218, 149, 7, 223, 6, -1, 61, 54, 224, + 212, 6, -1, 76, 52, 224, 213, 6, -1, 77, + 52, 223, 7, 218, 6, -1, 46, 148, 226, 149, + 99, 52, 148, 218, 149, 6, -1, 49, 148, 226, + 149, 99, 52, 148, 218, 149, 6, -1, 49, 148, + 226, 149, 99, 54, 148, 218, 149, 6, -1, 52, + 148, 226, 149, 99, 54, 148, 218, 149, 6, -1, + 80, 6, -1, 80, 4, 6, -1, 114, 141, 230, + 142, 7, 148, 223, 147, 223, 149, 6, -1, 115, + 141, 230, 142, 7, 148, 223, 147, 223, 149, 6, + -1, 116, 141, 230, 142, 7, 148, 223, 147, 223, + 149, 6, -1, 117, 141, 230, 142, 7, 148, 223, + 147, 223, 149, 6, -1, 219, -1, 141, 218, 142, + -1, 132, 218, -1, 131, 218, -1, 136, 218, -1, + 218, 132, 218, -1, 218, 131, 218, -1, 218, 133, + 218, -1, 218, 134, 218, -1, 218, 135, 218, -1, + 218, 140, 218, -1, 218, 127, 218, -1, 218, 128, + 218, -1, 218, 130, 218, -1, 218, 129, 218, -1, + 218, 126, 218, -1, 218, 125, 218, -1, 218, 124, + 218, -1, 218, 123, 218, -1, 218, 122, 218, 8, + 218, -1, 14, 141, 218, 142, -1, 15, 141, 218, + 142, -1, 16, 141, 218, 142, -1, 17, 141, 218, + 142, -1, 18, 141, 218, 142, -1, 19, 141, 218, + 142, -1, 20, 141, 218, 142, -1, 21, 141, 218, + 142, -1, 22, 141, 218, 142, -1, 24, 141, 218, + 142, -1, 25, 141, 218, 147, 218, 142, -1, 26, + 141, 218, 142, -1, 27, 141, 218, 142, -1, 28, + 141, 218, 142, -1, 29, 141, 218, 142, -1, 30, + 141, 218, 142, -1, 31, 141, 218, 142, -1, 32, + 141, 218, 147, 218, 142, -1, 33, 141, 218, 147, + 218, 142, -1, 34, 141, 218, 147, 218, 142, -1, + 23, 141, 218, 142, -1, 14, 143, 218, 144, -1, + 15, 143, 218, 144, -1, 16, 143, 218, 144, -1, + 17, 143, 218, 144, -1, 18, 143, 218, 144, -1, + 19, 143, 218, 144, -1, 20, 143, 218, 144, -1, + 21, 143, 218, 144, -1, 22, 143, 218, 144, -1, + 24, 143, 218, 144, -1, 25, 143, 218, 147, 218, + 144, -1, 26, 143, 218, 144, -1, 27, 143, 218, + 144, -1, 28, 143, 218, 144, -1, 29, 143, 218, + 144, -1, 30, 143, 218, 144, -1, 31, 143, 218, + 144, -1, 32, 143, 218, 147, 218, 144, -1, 33, + 143, 218, 147, 218, 144, -1, 34, 143, 218, 147, + 218, 144, -1, 23, 143, 218, 144, -1, 3, -1, + 9, -1, 10, -1, 11, -1, 111, -1, 112, -1, + 113, -1, 4, -1, 4, 150, 148, 218, 149, -1, + 4, 143, 218, 144, -1, 146, 4, 143, 144, -1, + 4, 174, -1, 4, 143, 218, 144, 174, -1, 4, + 145, 4, -1, 4, 143, 218, 144, 145, 4, -1, + 4, 145, 4, 174, -1, 4, 143, 218, 144, 145, + 4, 174, -1, 110, 141, 5, 147, 218, 142, -1, + 221, -1, 132, 220, -1, 131, 220, -1, 220, 132, + 220, -1, 220, 131, 220, -1, 148, 218, 147, 218, + 147, 218, 147, 218, 147, 218, 149, -1, 148, 218, + 147, 218, 147, 218, 147, 218, 149, -1, 148, 218, + 147, 218, 147, 218, 149, -1, 141, 218, 147, 218, + 147, 218, 142, -1, 223, -1, 222, 147, 223, -1, + 218, -1, 225, -1, 148, 149, -1, 148, 226, 149, + -1, 132, 148, 226, 149, -1, 218, 133, 148, 226, + 149, -1, 223, -1, 5, -1, 132, 225, -1, 218, + 133, 225, -1, 218, 8, 218, -1, 218, 8, 218, + 8, 218, -1, 46, 148, 218, 149, -1, 184, -1, + 193, -1, 4, 143, 144, -1, 4, 143, 148, 226, + 149, 144, -1, 218, -1, 225, -1, 226, 147, 218, + -1, 226, 147, 225, -1, 148, 218, 147, 218, 147, + 218, 147, 218, 149, -1, 148, 218, 147, 218, 147, + 218, 149, -1, 4, -1, 4, 145, 96, 145, 4, + -1, 148, 229, 149, -1, 4, 143, 218, 144, 145, + 97, -1, 227, -1, 229, 147, 227, -1, 231, -1, + 4, -1, 4, 145, 4, -1, 4, 143, 218, 144, + 145, 4, -1, 5, -1, 42, -1, 37, 141, 230, + 147, 230, 142, -1, 38, 141, 230, 142, -1, 39, + 141, 230, 142, -1, 36, 141, 230, 142, -1, 36, + 141, 230, 147, 226, 142, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -1044,20 +932,20 @@ static const yytype_uint16 yyrline[] = 2783, 2798, 2801, 2807, 2816, 2836, 2859, 2863, 2887, 2890, 2906, 2909, 2925, 2928, 2941, 2944, 2950, 2953, 2960, 3016, 3086, 3091, 3158, 3201, 3227, 3250, 3273, 3276, 3285, 3289, - 3306, 3343, 3379, 3419, 3420, 3421, 3422, 3423, 3424, 3425, - 3426, 3427, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, - 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, - 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, - 3462, 3463, 3464, 3465, 3467, 3468, 3469, 3470, 3471, 3472, - 3473, 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3481, 3482, - 3483, 3484, 3485, 3486, 3487, 3496, 3497, 3498, 3499, 3500, - 3501, 3502, 3506, 3519, 3531, 3546, 3556, 3566, 3584, 3589, - 3594, 3604, 3614, 3622, 3626, 3630, 3634, 3638, 3645, 3649, - 3653, 3657, 3664, 3669, 3676, 3681, 3685, 3690, 3694, 3702, - 3713, 3717, 3729, 3737, 3745, 3752, 3763, 3783, 3793, 3803, - 3813, 3833, 3838, 3842, 3846, 3858, 3862, 3874, 3881, 3891, - 3895, 3910, 3915, 3922, 3926, 3939, 3947, 3958, 3962, 3970, - 3978, 3992, 4006, 4010 + 3306, 3343, 3379, 3414, 3454, 3455, 3456, 3457, 3458, 3459, + 3460, 3461, 3462, 3469, 3470, 3471, 3472, 3473, 3474, 3475, + 3476, 3477, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, + 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, + 3496, 3497, 3498, 3499, 3500, 3502, 3503, 3504, 3505, 3506, + 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, + 3517, 3518, 3519, 3520, 3521, 3522, 3531, 3532, 3533, 3534, + 3535, 3536, 3537, 3541, 3554, 3566, 3581, 3591, 3601, 3619, + 3624, 3629, 3639, 3649, 3657, 3661, 3665, 3669, 3673, 3680, + 3684, 3688, 3692, 3699, 3704, 3711, 3716, 3720, 3725, 3729, + 3737, 3748, 3752, 3764, 3772, 3780, 3787, 3798, 3818, 3828, + 3838, 3848, 3868, 3873, 3877, 3881, 3893, 3897, 3909, 3916, + 3926, 3930, 3945, 3950, 3957, 3961, 3974, 3982, 3993, 3997, + 4005, 4013, 4027, 4041, 4045 }; #endif @@ -1086,21 +974,21 @@ static const char *const yytname[] = "tIn", "tEndFor", "tIf", "tEndIf", "tExit", "tField", "tReturn", "tCall", "tFunction", "tShow", "tHide", "tGetValue", "tGMSH_MAJOR_VERSION", "tGMSH_MINOR_VERSION", "tGMSH_PATCH_VERSION", "tHomRank", "tHomGen", - "tHomCut", "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", + "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", + "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", + "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", "CompoundMap", + "Visibility", "Command", "Loop", "Extrude", "$@10", "$@11", "$@12", + "$@13", "$@14", "$@15", "$@16", "$@17", "$@18", "$@19", "$@20", "$@21", + "$@22", "ExtrudeParameters", "ExtrudeParameter", "CompoundMap", "TransfiniteType", "TransfiniteArrangement", "TransfiniteCorners", "RecombineAngle", "Transfinite", "Embedding", "Coherence", "Homology", "FExpr", "FExpr_Single", "VExpr", "VExpr_Single", @@ -1127,54 +1015,55 @@ 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, 63, 376, 377, 378, 379, 60, 62, 380, 381, - 43, 45, 42, 47, 37, 33, 382, 383, 384, 94, - 40, 41, 91, 93, 46, 35, 44, 123, 125, 126 + 375, 376, 63, 377, 378, 379, 380, 60, 62, 381, + 382, 43, 45, 42, 47, 37, 33, 383, 384, 385, + 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, 150, 151, 151, 152, 152, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 154, 154, 155, 155, 155, 155, 156, 156, - 156, 157, 157, 157, 157, 157, 157, 158, 158, 159, - 159, 161, 162, 160, 163, 163, 165, 164, 166, 166, - 168, 167, 169, 169, 171, 170, 172, 172, 172, 172, - 172, 173, 173, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, - 176, 176, 177, 177, 178, 179, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 180, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, - 181, 178, 178, 178, 178, 178, 182, 178, 183, 183, - 183, 183, 183, 183, 183, 184, 184, 185, 185, 185, - 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, - 186, 187, 187, 187, 187, 187, 188, 189, 189, 189, - 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 192, 192, 192, 193, 192, 194, 192, - 195, 192, 196, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 197, 192, 198, 192, 199, 192, 200, - 192, 201, 192, 202, 192, 203, 192, 204, 192, 205, - 192, 206, 206, 207, 207, 207, 207, 207, 208, 208, - 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, - 213, 213, 213, 213, 214, 214, 214, 214, 215, 215, - 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, + 0, 151, 152, 152, 153, 153, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 155, 155, 156, 156, 156, 156, 157, 157, + 157, 158, 158, 158, 158, 158, 158, 159, 159, 160, + 160, 162, 163, 161, 164, 164, 166, 165, 167, 167, + 169, 168, 170, 170, 172, 171, 173, 173, 173, 173, + 173, 174, 174, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 175, 175, 176, 176, + 177, 177, 178, 178, 179, 180, 179, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 181, 179, + 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, + 182, 179, 179, 179, 179, 179, 183, 179, 184, 184, + 184, 184, 184, 184, 184, 185, 185, 186, 186, 186, + 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, + 187, 188, 188, 188, 188, 188, 189, 190, 190, 190, + 190, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 193, 193, 193, 194, 193, 195, 193, + 196, 193, 197, 193, 193, 193, 193, 193, 193, 193, + 193, 193, 193, 198, 193, 199, 193, 200, 193, 201, + 193, 202, 193, 203, 193, 204, 193, 205, 193, 206, + 193, 207, 207, 208, 208, 208, 208, 208, 209, 209, + 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, + 214, 214, 214, 214, 215, 215, 215, 215, 216, 216, + 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 219, 219, 219, 219, 219, 220, 220, - 220, 220, 221, 221, 222, 222, 222, 222, 222, 222, - 223, 223, 224, 224, 224, 224, 224, 224, 224, 224, - 224, 225, 225, 225, 225, 226, 226, 226, 226, 227, - 227, 228, 228, 229, 229, 229, 229, 230, 230, 230, - 230, 230, 230, 230 + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 220, 220, 220, 220, 220, 221, + 221, 221, 221, 222, 222, 223, 223, 223, 223, 223, + 223, 224, 224, 225, 225, 225, 225, 225, 225, 225, + 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, + 228, 228, 229, 229, 230, 230, 230, 230, 231, 231, + 231, 231, 231, 231, 231 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1205,20 +1094,20 @@ static const yytype_uint8 yyr2[] = 18, 1, 2, 5, 7, 9, 2, 9, 0, 1, 0, 3, 0, 1, 0, 2, 0, 2, 7, 6, 8, 5, 5, 6, 10, 10, 10, 10, 2, 3, - 11, 11, 11, 1, 3, 2, 2, 2, 3, 3, + 11, 11, 11, 11, 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, - 6, 6, 6, 4, 4, 4, 4, 4, 4, 4, + 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, - 4, 6, 6, 6, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 5, 4, 4, 2, 5, 3, 6, - 4, 7, 6, 1, 2, 2, 3, 3, 11, 9, - 7, 7, 1, 3, 1, 1, 2, 3, 4, 5, - 1, 1, 2, 3, 3, 5, 4, 1, 1, 3, - 6, 1, 1, 3, 3, 9, 7, 1, 5, 3, - 6, 1, 3, 1, 1, 3, 6, 1, 1, 6, - 4, 4, 4, 6 + 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, 1, 1, + 3, 6, 1, 1, 3, 3, 9, 7, 1, 5, + 3, 6, 1, 3, 1, 1, 3, 6, 1, 1, + 6, 4, 4, 4, 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1232,308 +1121,310 @@ 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, 177, 0, 182, 0, 0, - 179, 0, 0, 0, 0, 0, 0, 0, 5, 7, - 6, 8, 9, 10, 20, 11, 12, 13, 19, 18, - 14, 15, 16, 17, 21, 315, 322, 377, 56, 316, - 317, 318, 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, 378, 0, 0, - 319, 320, 321, 60, 59, 58, 57, 0, 0, 0, - 62, 61, 0, 0, 0, 0, 137, 0, 0, 0, - 253, 0, 0, 0, 0, 169, 0, 171, 168, 172, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 95, 108, 120, 126, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 333, 0, - 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 137, 0, 248, 0, 0, 0, - 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, - 167, 0, 0, 178, 0, 137, 0, 137, 0, 0, - 0, 0, 0, 0, 0, 326, 31, 377, 0, 0, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 5, + 7, 6, 8, 9, 10, 20, 11, 12, 13, 19, + 18, 14, 15, 16, 17, 21, 316, 323, 378, 56, + 317, 318, 319, 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, 379, 0, + 0, 320, 321, 322, 60, 59, 58, 57, 0, 0, + 0, 62, 61, 0, 0, 0, 0, 137, 0, 0, + 0, 254, 0, 0, 0, 0, 169, 0, 171, 168, + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 95, 108, 120, 126, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 334, + 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 137, 0, 248, 0, 0, + 0, 0, 0, 0, 0, 368, 0, 0, 0, 0, + 0, 167, 0, 0, 178, 0, 137, 0, 137, 0, + 0, 0, 0, 0, 0, 0, 0, 327, 31, 378, 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, 322, 256, 255, - 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 136, 0, 135, 0, 68, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 112, 0, 0, 0, 0, 322, 0, 0, - 357, 358, 361, 362, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, - 345, 0, 0, 0, 0, 351, 350, 0, 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 335, 334, 0, 0, 0, 0, 137, 137, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 137, - 0, 0, 0, 0, 236, 0, 0, 0, 154, 0, - 0, 0, 249, 0, 0, 0, 166, 0, 0, 0, - 0, 0, 137, 0, 0, 0, 0, 180, 157, 0, - 158, 0, 374, 0, 373, 0, 0, 0, 0, 328, - 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, + 257, 256, 258, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 136, 0, 135, 0, 68, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 161, 112, 0, 0, 0, 0, 323, + 0, 0, 358, 359, 362, 363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 345, 0, 346, 0, 0, 0, 0, 352, 351, 0, + 234, 234, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 336, 335, 0, 0, 0, 0, + 137, 137, 0, 0, 0, 0, 0, 0, 0, 192, + 0, 137, 0, 0, 0, 0, 236, 0, 0, 0, + 154, 0, 0, 0, 249, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 137, 0, 0, 0, 0, 180, + 157, 0, 158, 0, 375, 0, 374, 0, 0, 0, + 0, 0, 329, 0, 0, 70, 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, 254, 0, 0, 0, 0, 56, 0, 0, - 0, 0, 0, 132, 0, 0, 0, 0, 138, 63, - 0, 271, 270, 269, 268, 264, 265, 267, 266, 259, - 258, 260, 261, 262, 263, 113, 0, 0, 0, 0, - 0, 0, 255, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 99, 0, 0, 0, 0, 337, 336, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, - 0, 0, 0, 0, 0, 0, 155, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 181, 0, 159, 160, 0, 0, 0, 0, 0, - 0, 324, 330, 0, 41, 0, 0, 0, 54, 0, - 32, 33, 34, 35, 36, 273, 294, 274, 295, 275, - 296, 276, 297, 277, 298, 278, 299, 279, 300, 280, - 301, 281, 302, 293, 314, 282, 303, 0, 0, 284, - 305, 285, 306, 286, 307, 287, 308, 288, 309, 289, - 310, 0, 0, 0, 0, 0, 0, 382, 0, 0, - 380, 381, 81, 0, 0, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 75, 0, 0, 0, 0, 325, - 0, 0, 0, 0, 0, 24, 22, 0, 0, 0, - 0, 359, 0, 0, 354, 260, 353, 363, 364, 0, + 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, + 56, 0, 0, 0, 0, 0, 132, 0, 0, 0, + 0, 138, 63, 0, 272, 271, 270, 269, 265, 266, + 268, 267, 260, 259, 261, 262, 263, 264, 113, 0, + 0, 0, 0, 0, 0, 256, 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 230, - 235, 233, 0, 241, 0, 0, 88, 89, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 130, 0, 0, 0, 0, 0, 0, 0, 0, 221, - 0, 183, 0, 0, 0, 0, 0, 237, 242, 0, + 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 232, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 99, 0, 0, 0, 0, 338, + 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 186, 0, 0, 0, 0, 0, 0, 0, 0, 155, + 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 181, 0, 159, 160, 0, 0, + 0, 0, 0, 0, 0, 325, 331, 0, 41, 0, + 0, 0, 54, 0, 32, 33, 34, 35, 36, 274, + 295, 275, 296, 276, 297, 277, 298, 278, 299, 279, + 300, 280, 301, 281, 302, 282, 303, 294, 315, 283, + 304, 0, 0, 285, 306, 286, 307, 287, 308, 288, + 309, 289, 310, 290, 311, 0, 0, 0, 0, 0, + 0, 383, 0, 0, 381, 382, 81, 0, 0, 0, + 0, 0, 56, 0, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 326, 0, 0, 0, 0, 0, 24, + 22, 0, 0, 0, 0, 360, 0, 0, 355, 261, + 354, 364, 365, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 0, 0, 0, + 0, 0, 0, 230, 235, 233, 0, 241, 0, 0, + 88, 89, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 130, 0, 0, 0, 0, 0, + 0, 0, 0, 221, 0, 183, 0, 0, 0, 0, + 0, 237, 242, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, + 0, 376, 0, 0, 0, 0, 0, 0, 328, 0, + 324, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 325, 66, + 67, 0, 0, 0, 0, 0, 69, 71, 73, 0, + 0, 372, 0, 79, 0, 0, 0, 0, 273, 23, + 0, 0, 0, 0, 0, 357, 0, 0, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 0, 0, 375, 0, 0, - 0, 0, 0, 327, 0, 323, 0, 0, 0, 0, - 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 324, 66, 67, 0, 0, 0, 0, - 0, 69, 71, 73, 0, 0, 371, 0, 79, 0, - 0, 0, 0, 272, 23, 0, 0, 0, 0, 0, - 356, 0, 0, 92, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 348, 0, 97, 0, 0, - 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, + 349, 0, 97, 0, 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 193, 222, 0, 0, 0, - 149, 0, 0, 243, 0, 153, 152, 0, 29, 30, - 0, 0, 0, 368, 0, 0, 0, 173, 0, 0, - 0, 0, 0, 0, 163, 329, 162, 0, 0, 0, - 0, 342, 0, 283, 304, 290, 311, 291, 312, 292, - 313, 383, 379, 332, 0, 56, 0, 0, 0, 0, - 64, 0, 0, 0, 369, 0, 0, 0, 0, 25, - 26, 0, 0, 94, 0, 355, 0, 0, 0, 0, - 0, 98, 0, 0, 115, 116, 0, 0, 100, 123, - 349, 0, 0, 0, 90, 0, 238, 0, 0, 0, - 0, 0, 0, 228, 0, 165, 0, 0, 0, 0, - 0, 137, 0, 203, 0, 205, 0, 207, 344, 0, - 0, 0, 0, 187, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 104, 0, 0, 0, 0, 82, 0, - 0, 0, 0, 0, 331, 0, 37, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 76, 0, 0, 77, - 0, 372, 139, 140, 141, 142, 0, 0, 360, 0, - 93, 101, 102, 106, 0, 0, 117, 0, 0, 240, - 110, 0, 0, 231, 122, 0, 0, 0, 0, 107, - 229, 0, 125, 0, 0, 0, 0, 341, 0, 340, - 0, 0, 194, 0, 0, 195, 0, 0, 196, 0, - 0, 0, 0, 0, 0, 148, 0, 0, 147, 0, - 0, 143, 0, 0, 0, 0, 366, 0, 175, 174, - 0, 0, 0, 376, 0, 0, 0, 42, 0, 0, - 0, 343, 0, 0, 0, 65, 72, 74, 0, 80, - 0, 27, 0, 0, 0, 0, 0, 0, 0, 111, - 96, 109, 121, 127, 0, 118, 86, 87, 124, 137, - 0, 131, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 137, 0, 0, 0, 0, 134, 133, 0, 0, - 0, 0, 83, 84, 0, 0, 0, 0, 38, 0, - 0, 0, 40, 55, 0, 370, 0, 244, 245, 246, - 247, 114, 0, 0, 0, 0, 339, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, - 0, 0, 0, 0, 0, 365, 176, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, + 193, 222, 0, 0, 0, 149, 0, 0, 243, 0, + 153, 152, 0, 29, 30, 0, 0, 0, 369, 0, + 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, + 163, 330, 162, 0, 0, 0, 0, 343, 0, 284, + 305, 291, 312, 292, 313, 293, 314, 384, 380, 333, + 0, 56, 0, 0, 0, 0, 64, 0, 0, 0, + 370, 0, 0, 0, 0, 25, 26, 0, 0, 94, + 0, 356, 0, 0, 0, 0, 0, 98, 0, 0, + 115, 116, 0, 0, 100, 123, 350, 0, 0, 0, + 90, 0, 238, 0, 0, 0, 0, 0, 0, 228, + 0, 165, 0, 0, 0, 0, 0, 137, 0, 203, + 0, 205, 0, 207, 345, 0, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 104, + 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, + 0, 332, 0, 37, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 76, 0, 0, 77, 0, 373, 139, + 140, 141, 142, 0, 0, 361, 0, 93, 101, 102, + 106, 0, 0, 117, 0, 0, 240, 110, 0, 0, + 231, 122, 0, 0, 0, 0, 107, 229, 0, 125, + 0, 0, 0, 0, 342, 0, 341, 0, 0, 194, + 0, 0, 195, 0, 0, 196, 0, 0, 0, 0, + 0, 0, 148, 0, 0, 147, 0, 0, 143, 0, + 0, 0, 0, 367, 0, 175, 174, 0, 0, 0, + 377, 0, 0, 0, 0, 42, 0, 0, 0, 344, + 0, 0, 0, 65, 72, 74, 0, 80, 0, 27, + 0, 0, 0, 0, 0, 0, 0, 111, 96, 109, + 121, 127, 0, 118, 86, 87, 124, 137, 0, 131, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 137, + 0, 0, 0, 0, 134, 133, 0, 0, 0, 0, + 83, 84, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 40, 55, 0, 371, 0, 244, 245, 246, 247, + 114, 0, 0, 0, 0, 340, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, + 0, 0, 0, 0, 366, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 228, 129, 0, 209, 0, 0, 211, 0, 0, 213, 0, 0, 0, 224, 0, 184, 0, 137, 0, 0, 0, 105, - 85, 250, 251, 252, 0, 46, 0, 52, 0, 0, - 91, 229, 0, 338, 197, 0, 0, 204, 198, 0, - 0, 206, 199, 0, 0, 208, 0, 0, 0, 190, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 119, - 0, 215, 0, 217, 0, 219, 225, 227, 189, 185, - 0, 0, 0, 0, 43, 0, 50, 0, 0, 0, - 200, 0, 0, 201, 0, 0, 202, 0, 0, 150, - 0, 144, 0, 44, 0, 0, 170, 0, 0, 0, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 210, - 0, 212, 0, 214, 0, 145, 45, 47, 0, 48, - 0, 0, 0, 0, 0, 0, 53, 216, 218, 220, - 49, 51 + 85, 250, 251, 252, 253, 0, 46, 0, 52, 0, + 0, 91, 229, 0, 339, 197, 0, 0, 204, 198, + 0, 0, 206, 199, 0, 0, 208, 0, 0, 0, + 190, 0, 146, 0, 0, 0, 0, 0, 0, 0, + 119, 0, 215, 0, 217, 0, 219, 225, 227, 189, + 185, 0, 0, 0, 0, 43, 0, 50, 0, 0, + 0, 200, 0, 0, 201, 0, 0, 202, 0, 0, + 150, 0, 144, 0, 44, 0, 0, 170, 0, 0, + 0, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 210, 0, 212, 0, 214, 0, 145, 45, 47, 0, + 48, 0, 0, 0, 0, 0, 0, 53, 216, 218, + 220, 49, 51 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 68, 697, 69, 70, 431, 1025, 1031, - 620, 796, 1177, 1322, 621, 1285, 1348, 622, 1324, 623, - 624, 800, 137, 235, 71, 735, 1062, 958, 498, 361, - 362, 363, 364, 330, 301, 302, 74, 75, 76, 77, - 78, 79, 331, 762, 1244, 1300, 575, 1083, 1086, 1089, - 1265, 1269, 1273, 1311, 1314, 1317, 758, 759, 1071, 863, - 732, 550, 583, 81, 82, 83, 84, 348, 140, 373, - 188, 920, 921, 357, 350, 541, 216, 688, 827, 423, - 424 + -1, 2, 3, 69, 701, 70, 71, 434, 1032, 1038, + 624, 801, 1186, 1333, 625, 1296, 1359, 626, 1335, 627, + 628, 805, 138, 237, 72, 739, 1069, 964, 501, 363, + 364, 365, 366, 332, 303, 304, 75, 76, 77, 78, + 79, 80, 333, 766, 1254, 1311, 578, 1090, 1093, 1096, + 1276, 1280, 1284, 1322, 1325, 1328, 762, 763, 1078, 868, + 736, 553, 586, 82, 83, 84, 85, 350, 141, 375, + 189, 926, 927, 359, 352, 544, 217, 692, 832, 425, + 426 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1118 +#define YYPACT_NINF -1108 static const yytype_int16 yypact[] = { - 3350, 49, 70, 3432, -1118, -1118, 1680, 82, 60, -42, - 30, 114, 132, 183, -102, 76, 150, -51, 159, 188, - -47, 198, 199, 286, 303, 331, 340, 361, 226, 334, - 275, 239, 256, 371, 290, 326, -68, -68, 345, 64, - 69, 439, 443, 378, 11, 181, 460, 495, 509, 513, - 382, 386, 387, 14, 29, -1118, 392, -1118, 529, 396, - -1118, 542, 553, 20, 25, 401, 474, 475, -1118, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, 22, 418, 280, -1118, - -1118, -1118, 276, 283, 291, 320, 325, 336, 344, 362, - 368, 428, 437, 440, 450, 456, 465, 470, 537, 574, - 580, 581, 586, 485, 514, 524, 549, -1118, 622, 555, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, 3187, 3187, 3187, - -1118, -1118, 3187, 2732, 95, 671, 36, 3187, 693, 952, - -1118, 709, 713, 3187, 742, -1118, 3187, -1118, -1118, -1118, - 3187, 3114, 3187, 3187, 585, 3187, 3114, 3187, 3187, 608, - 3114, 3187, 3187, 2103, 636, 655, 645, 649, 1825, 1825, - 1825, 668, -1118, -1118, -1118, -1118, 672, 673, 689, 829, - 2103, 831, -68, -68, -68, 3187, 3187, -83, -1118, -50, - -68, 700, 702, 705, 2975, 151, -71, 716, 717, 1825, - 2103, 725, 6, 733, -1118, 873, -1118, 750, 738, 753, - 895, 3187, 3187, 3187, 758, 3187, 756, 805, 3187, 3187, - -1118, 3187, 899, -1118, 900, -1118, 901, -1118, 492, 492, - 492, 766, 3187, 905, 763, -1118, -1118, -1118, 907, 3187, - 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, - 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, - 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, - 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, - 3187, 492, 492, 492, 492, 3187, 909, 489, 776, 776, - 776, 5342, 53, 3114, 4606, 215, 773, 924, 790, 788, - -1118, 792, 2834, 1134, -1118, -1118, 3187, 3187, 3187, 3187, - 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187, - 3187, -1118, -1118, 1337, -85, 3904, 5363, 425, 789, 3114, - -1118, -1118, 1161, -1118, 590, 5384, 5405, 3187, 5426, 591, - 5447, 5468, 3187, 594, 5489, 5510, 2242, 1534, 2236, 931, - -1118, 3187, 3187, 3187, 3187, -1118, -1118, 934, 935, 935, - 3187, 803, 804, 806, 807, 3187, 3187, 3187, 808, 939, - 802, -56, -1118, -1118, 3930, 3956, -68, -68, 36, 36, - 328, 3187, 3187, 3187, 2975, 2975, 3187, 2834, 333, -1118, - 3187, 3187, 3187, 3187, 944, 945, 3187, 947, -1118, 3187, - 3187, 791, -1118, 3114, 3187, 3187, -1118, 5531, 5552, 5573, - 858, 3982, -1118, 812, 2308, 5594, 4629, -1118, -1118, 1154, - -1118, 1257, 601, 814, -1118, 819, 821, 3187, 4652, -8, - 3187, 5, -1118, 5615, 4675, 5636, 4698, 5657, 4721, 5678, - 4744, 5699, 4767, 5720, 4790, 5741, 4813, 5762, 4836, 5783, - 4859, 5804, 4882, 5825, 4905, 4008, 4034, 5846, 4928, 5867, - 4951, 5888, 4974, 5909, 4997, 5930, 5020, 5951, 5043, 4060, - 4086, 4112, 4138, 4164, 4190, 148, 817, 823, 824, 1360, - 820, 3187, -1118, 2103, 2103, 598, 80, 280, 3187, 961, - 966, 18, 828, -1118, -22, -36, -46, 63, -1118, -1118, - 2342, 795, 1202, 667, 667, 539, 539, 539, 539, 558, - 558, 776, 776, 776, 776, -1118, 15, 3114, 3187, 968, - 2937, 3187, 776, -1118, 3187, 3114, 3114, 874, 970, 971, - 5972, 972, 882, 975, 976, 5993, 887, 982, 983, 3114, - -1118, 603, 2381, 3187, 6014, 2585, 6035, 6056, 3187, 2103, - 987, 986, 6077, 3247, 3247, 3247, 3247, 6098, 6119, 6140, - 849, -1118, 2103, -68, 3187, 3187, -1118, -1118, 847, 848, - 3187, 4216, 4242, 4268, 2727, -41, -68, 1575, 6161, 2930, - 6182, 6203, 3187, 991, 3187, 6224, -1118, 5066, 5089, -1118, - 606, 5112, 5135, 993, 994, 997, 854, 3187, 1861, 3187, - 3187, -1118, 24, -1118, -1118, 3187, 1002, 1000, 1001, 1003, - 5158, 46, -1118, 2968, -1118, 869, 871, 865, -1118, 1008, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, 3187, 3187, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, 3187, 3187, 3187, 3187, 3187, 3187, -1118, 3114, 492, - -1118, -1118, -1118, 3187, 5181, 1010, 1012, 876, -1118, 105, - 3187, 1014, 1017, 1396, -1118, 1018, 884, 14, 1021, -1118, - 3114, 3114, 3114, 3114, 3187, -1118, 897, 492, 174, 4294, - -68, -1118, 3114, 3040, 2375, 776, -1118, 1161, -1118, 977, - 2103, 2103, 1023, 2103, 701, 2103, 2103, 1024, 974, 2103, - 2103, 610, -1118, 3114, 1603, 1025, 1026, 1027, 1028, 2490, - -1118, -1118, 1030, -1118, 1035, 902, 6455, -1118, 906, 910, - 912, 1039, 1041, 1043, 1050, 913, 370, 4320, 4346, -1118, - -1118, 3107, -68, -68, -68, 1049, 911, 916, -24, -1118, - 375, -1118, -41, 1053, 1055, 1056, 1057, 6455, -1118, 1625, - 915, 1059, 1060, 1015, 1062, 1063, 2103, 2103, 2103, 1067, - 4372, -1118, 2447, 641, 1083, 1088, 5204, -1118, 946, 948, - 949, 1091, 1090, -1118, 1092, -1118, 960, 3187, 3187, 2103, - 955, -1118, 6245, 5227, 6266, 5250, 6287, 5273, 6308, 5296, - 184, 962, 6329, 506, -1118, -1118, 16, 351, 963, 1098, - 1647, -1118, -1118, -1118, 14, 3187, -1118, 611, -1118, 631, - 635, 638, 642, 6455, -1118, 1100, 48, 3187, 51, 659, - -1118, 3187, 964, 1054, 1054, 2103, 1102, 967, 969, 1103, - 1109, 2103, 973, 1112, 1116, -1118, 663, -1118, 1119, 2103, - 2103, 2103, 1121, 1120, -1118, 2103, 1122, 1123, 1124, 1126, - 2103, 2103, 2103, 397, 1130, 3187, 3187, 3187, 980, 220, - 243, 271, -1118, 2103, 3187, -1118, -1118, 2975, -5, 1964, - -1118, 981, 2520, -1118, 3114, -1118, -1118, 990, -1118, -1118, - 1136, 1138, 1052, -1118, 3187, 3187, 3187, -1118, 1143, 1144, - 1009, 2103, 2103, 2103, -1118, -8, -1118, 3187, 4398, 4424, - 669, -1118, 3187, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -1118, -1118, 2103, 280, 3187, 1148, 1151, 18, - -1118, 1150, 5319, 14, -1118, 1153, 1155, 1157, 1158, -1118, - -1118, 492, 4450, -1118, 1022, 6455, 3187, -68, 1162, 1164, - 1165, -1118, 3187, 3187, -1118, -1118, 1166, 3187, -1118, -1118, - -1118, 1152, 1169, 1170, 1061, 3187, -1118, 1171, 2103, 2103, - 2103, 2103, 1172, 1175, 1176, -1118, 3247, 1040, 3180, 6350, - 2513, 36, -68, 1177, -68, 1178, -68, 1179, 318, 1042, - 6371, 3213, 409, -1118, 1181, 1367, 1184, -68, 1367, 1185, - 670, 3187, -1118, -1118, 2103, 2652, 579, 6392, -1118, 2798, - 1188, 1047, 1048, 1051, -1118, 221, 6455, 3187, 3187, 2103, - 1065, 674, 6455, 1190, 1192, 1754, -1118, 1203, 1193, -1118, - 1075, -1118, -1118, -1118, -1118, -1118, 1214, 3187, -1118, 3428, - 97, -1118, -1118, -1118, 3456, 3484, -1118, 3512, 1218, -1118, - -1118, 1174, 1219, 6455, -1118, 1221, 1224, 1225, 1227, -1118, - 1087, 1229, -1118, 1893, 1231, 1232, 1096, -1118, 3187, -1118, - 1101, 414, -1118, 1097, 458, -1118, 1104, 471, -1118, 1105, - 1233, 2103, 1241, 1107, 3187, -1118, 2659, 488, -1118, 491, - 493, -1118, 1269, 3540, 1204, 3187, -1118, 3187, -1118, -1118, - 3114, 2032, 1272, -1118, 2103, 2103, 2103, -1118, 3187, 4476, - 4502, -1118, 2103, 3187, 1273, -1118, -1118, -1118, 14, -1118, - 1200, -1118, 4528, 1293, 1295, 1307, 1309, 1312, 1195, -1118, - -1118, -1118, -1118, -1118, 2103, -1118, -1118, -1118, -1118, 36, - 2889, -1118, 2975, -41, 2975, -41, 2975, -41, -1118, 675, - 2103, -1118, 3568, -68, 3114, -68, -1118, -1118, 3187, 3596, - 3624, 678, -1118, -1118, 1196, 1197, 1198, 1206, 6455, 3187, - 3187, 679, 6455, -1118, 1316, -1118, 3187, -1118, -1118, -1118, - -1118, -1118, 3187, 682, 1199, 3187, -1118, 3652, 505, 138, - 3680, 515, 147, 3708, 517, 149, 2103, 1317, 1275, 2000, - 1207, 522, 686, 535, 2171, -1118, -1118, 1345, 1350, 1351, - 1352, 3187, 6413, 4554, 31, -1118, 4580, 3736, 1355, -1118, - 3764, 1354, 3187, 1356, 1357, 3187, 1358, 1359, 3187, 1361, - 1213, -1118, 3187, -1118, -41, -1118, 3114, 1362, 2659, -1118, - -1118, -1118, -1118, -1118, 714, -1118, 3187, -1118, 2103, 3187, - -1118, -1118, 1363, -1118, -1118, 1226, 3792, -1118, -1118, 1228, - 3820, -1118, -1118, 1256, 3848, -1118, 1366, 2203, 201, 2139, - 715, -1118, 552, 720, 1368, 1260, 6434, 728, 3876, -1118, - -41, 1373, -41, 1374, -41, 1398, -1118, -1118, -1118, -1118, - -41, 1402, 3114, 1403, -1118, 492, -1118, 1263, 1405, 261, - -1118, 1267, 287, -1118, 1268, 289, -1118, 1270, 324, -1118, - 739, -1118, 744, -1118, 1271, 2103, -1118, 1410, -41, 1413, - -41, 1417, -41, -1118, 1418, 492, 1419, 492, 745, -1118, - 329, -1118, 332, -1118, 346, -1118, -1118, -1118, 748, -1118, - 1421, 1422, 1423, 1424, 492, 1428, -1118, -1118, -1118, -1118, - -1118, -1118 + 3373, 40, 70, 3479, -1108, -1108, 1690, 76, 56, -49, + 1, 120, 133, 137, -62, 83, 89, -47, 138, 146, + -41, 150, 159, 261, 294, 308, 312, 324, 228, 313, + 604, 247, 232, 336, 262, 246, 274, 274, 256, 278, + 62, 356, 359, 371, 11, 26, 376, 427, 432, 440, + 304, 317, 332, 20, 36, -1108, 335, -1108, 448, 334, + -1108, 483, 487, -4, 6, 366, 372, 383, 384, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, 22, 342, 495, + -1108, -1108, -1108, 47, 147, 227, 280, 287, 326, 355, + 433, 439, 473, 514, 540, 544, 552, 553, 558, 577, + 583, 587, 598, 599, 394, 397, 403, 408, -1108, 513, + 419, -1108, -1108, -1108, -1108, -1108, -1108, -1108, 3208, 3208, + 3208, -1108, -1108, 3208, 2749, 14, 562, 214, 3208, 572, + 1166, -1108, 579, 585, 3208, 590, -1108, 3208, -1108, -1108, + -1108, 3208, 3135, 3208, 3208, 458, 3208, 3135, 3208, 3208, + 459, 3135, 3208, 3208, 2116, 462, 472, 468, 499, 1836, + 1836, 1836, 500, -1108, -1108, -1108, -1108, 507, 524, 528, + 623, 2116, 665, 274, 274, 274, 3208, 3208, -77, -1108, + -58, 274, 525, 538, 554, 2995, -32, -11, 578, 588, + 1836, 2116, 602, 33, 560, -1108, 750, -1108, 640, 691, + 695, 783, 3208, 3208, 3208, 649, 3208, 658, 708, 3208, + 3208, -1108, 3208, 811, -1108, 816, -1108, 835, -1108, 466, + 466, 466, 466, 714, 3208, 857, 722, -1108, -1108, -1108, + 856, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, + 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, + 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, + 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, + 3208, 3208, 3208, 466, 466, 466, 466, 3208, 874, 529, + 740, 740, 740, 5499, 65, 3135, 4763, 84, 736, 877, + 742, 751, -1108, 752, 2984, 1193, -1108, -1108, 3208, 3208, + 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208, + 3208, 3208, 3208, -1108, -1108, 1224, -100, 4061, 5520, 504, + 754, 3135, -1108, -1108, 2496, -1108, 208, 5541, 5562, 3208, + 5583, 576, 5604, 5625, 3208, 608, 5646, 5667, 2256, 1542, + 2530, 893, -1108, 3208, 3208, 3208, 3208, -1108, -1108, 912, + 913, 913, 3208, 782, 797, 801, 803, 3208, 3208, 3208, + 795, 935, 799, -54, -1108, -1108, 4087, 4113, 274, 274, + 214, 214, 64, 3208, 3208, 3208, 2995, 2995, 3208, 2984, + 187, -1108, 3208, 3208, 3208, 3208, 940, 941, 3208, 943, + -1108, 3208, 3208, 796, -1108, 3135, 3208, 3208, -1108, 5688, + 5709, 5730, 854, 4139, -1108, 804, 2602, 5751, 4786, -1108, + -1108, 1164, -1108, 1722, 616, 809, -1108, 812, 813, 815, + 3208, 4809, -21, 3208, 17, -1108, 5772, 4832, 5793, 4855, + 5814, 4878, 5835, 4901, 5856, 4924, 5877, 4947, 5898, 4970, + 5919, 4993, 5940, 5016, 5961, 5039, 5982, 5062, 4165, 4191, + 6003, 5085, 6024, 5108, 6045, 5131, 6066, 5154, 6087, 5177, + 6108, 5200, 4217, 4243, 4269, 4295, 4321, 4347, -82, 806, + 817, 818, 1243, 814, 3208, -1108, 2116, 2116, 613, 321, + 495, 3208, 952, 960, 21, 821, -1108, 53, -46, -39, + 71, -1108, -1108, 2670, 800, 781, 618, 618, 491, 491, + 491, 491, 542, 542, 740, 740, 740, 740, -1108, 42, + 3135, 3208, 961, 2956, 3208, 740, -1108, 3208, 3135, 3135, + 870, 963, 964, 6129, 965, 875, 966, 970, 6150, 880, + 974, 976, 3135, -1108, 632, 2396, 3208, 6171, 3060, 6192, + 6213, 3208, 2116, 980, 979, 6234, 3269, 3269, 3269, 3269, + 6255, 6276, 6297, 842, -1108, 2116, 274, 3208, 3208, -1108, + -1108, 839, 840, 3208, 4373, 4399, 4425, 4035, 489, 274, + 1872, 6318, 3201, 6339, 6360, 3208, 986, 3208, 6381, -1108, + 5223, 5246, -1108, 633, 5269, 5292, 988, 989, 990, 853, + 3208, 2012, 3208, 3208, -1108, 34, -1108, -1108, 3208, 995, + 994, 996, 997, 999, 5315, 46, -1108, 3235, -1108, 861, + 866, 862, -1108, 1006, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, 3208, 3208, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -1108, -1108, -1108, 3208, 3208, 3208, 3208, 3208, + 3208, -1108, 3135, 466, -1108, -1108, -1108, 3208, 5338, 1007, + 1008, 871, -1108, 23, 3208, 1010, 1011, 1504, -1108, 1013, + 879, 20, 1012, -1108, 3135, 3135, 3135, 3135, 3208, -1108, + 896, 466, 184, 4451, 274, -1108, 3135, 3372, 2742, 740, + -1108, 2496, -1108, 973, 2116, 2116, 1019, 2116, 732, 2116, + 2116, 1020, 977, 2116, 2116, 638, -1108, 3135, 1615, 1023, + 1025, 1026, 1027, 2988, -1108, -1108, 1029, -1108, 1030, 894, + 6612, -1108, 897, 898, 899, 1031, 1035, 1040, 1047, 905, + 222, 4477, 4503, -1108, -1108, 3475, 274, 274, 274, 1048, + 908, 916, -24, -1108, 243, -1108, 489, 1046, 1052, 1053, + 1054, 6612, -1108, 1904, 911, 1057, 1059, 1014, 1061, 1062, + 2116, 2116, 2116, 1065, 4529, -1108, 2776, 958, 1066, 1067, + 5361, -1108, 924, 925, 926, 927, 1071, 1074, -1108, 1090, + -1108, 962, 3208, 3208, 2116, 951, -1108, 6402, 5384, 6423, + 5407, 6444, 5430, 6465, 5453, 190, 959, 6486, 490, -1108, + -1108, 15, 202, 957, 1097, 2044, -1108, -1108, -1108, 20, + 3208, -1108, 646, -1108, 651, 652, 655, 656, 6612, -1108, + 1099, 50, 3208, 51, 663, -1108, 3208, 968, 1050, 1050, + 2116, 1101, 969, 971, 1104, 1106, 2116, 975, 1107, 1108, + -1108, 664, -1108, 1113, 2116, 2116, 2116, 1117, 1116, -1108, + 2116, 1120, 1122, 1123, 1124, 2116, 2116, 2116, 186, 1127, + 3208, 3208, 3208, 985, -51, -18, 68, -1108, 2116, 3208, + -1108, -1108, 2995, -7, 1976, -1108, 987, 2536, -1108, 3135, + -1108, -1108, 991, -1108, -1108, 1128, 1130, 1042, -1108, 3208, + 3208, 3208, -1108, 1132, 1134, 1000, 2116, 2116, 2116, 2116, + -1108, -21, -1108, 3208, 4555, 4581, 667, -1108, 3208, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + 2116, 495, 3208, 1140, 1143, 21, -1108, 1146, 5476, 20, + -1108, 1149, 1151, 1153, 1155, -1108, -1108, 466, 4607, -1108, + 1005, 6612, 3208, 274, 1156, 1157, 1158, -1108, 3208, 3208, + -1108, -1108, 1159, 3208, -1108, -1108, -1108, 1162, 1163, 1165, + 1069, 3208, -1108, 1167, 2116, 2116, 2116, 2116, 1168, 1171, + 1172, -1108, 3269, 1037, 3503, 6507, 1764, 214, 274, 1174, + 274, 1175, 274, 1178, 582, 1038, 6528, 3531, 285, -1108, + 1180, 1377, 1181, 274, 1377, 1182, 671, 3208, -1108, -1108, + 2116, 2809, 643, 6549, -1108, 2816, 1186, 1044, 1045, 1049, + 1055, -1108, 197, 6612, 3208, 3208, 2116, 1056, 674, 6612, + 1187, 1188, 2184, -1108, 1190, 1194, -1108, 1058, -1108, -1108, + -1108, -1108, -1108, 1195, 3208, -1108, 3559, 102, -1108, -1108, + -1108, 3587, 3615, -1108, 3643, 1201, -1108, -1108, 1170, 1202, + 6612, -1108, 1203, 1216, 1223, 1227, -1108, 1086, 1229, -1108, + 2324, 1231, 1234, 1093, -1108, 3208, -1108, 1094, 316, -1108, + 1096, 325, -1108, 1103, 350, -1108, 1105, 1239, 2116, 1200, + 1110, 3208, -1108, 2676, 352, -1108, 362, 380, -1108, 1241, + 3671, 1160, 3208, -1108, 3208, -1108, -1108, 3135, 2356, 1253, + -1108, 2116, 2116, 2116, 2116, -1108, 3208, 4633, 4659, -1108, + 2116, 3208, 1254, -1108, -1108, -1108, 20, -1108, 1169, -1108, + 4685, 1256, 1257, 1259, 1261, 1262, 1121, -1108, -1108, -1108, + -1108, -1108, 2116, -1108, -1108, -1108, -1108, 214, 3128, -1108, + 2995, 489, 2995, 489, 2995, 489, -1108, 678, 2116, -1108, + 3699, 274, 3135, 274, -1108, -1108, 3208, 3727, 3755, 679, + -1108, -1108, 1125, 1126, 1135, 1136, 1131, 6612, 3208, 3208, + 682, 6612, -1108, 1264, -1108, 3208, -1108, -1108, -1108, -1108, + -1108, 3208, 683, 1154, 3208, -1108, 3783, 411, 144, 3811, + 416, 149, 3839, 437, 253, 2116, 1265, 1207, 2152, 1133, + 461, 686, 474, 2389, -1108, -1108, 1267, 1270, 1296, 1298, + 1299, 3208, 6570, 4711, 25, -1108, 4737, 3867, 1304, -1108, + 3895, 1303, 3208, 1305, 1306, 3208, 1308, 1323, 3208, 1324, + 1161, -1108, 3208, -1108, 489, -1108, 3135, 1325, 2676, -1108, + -1108, -1108, -1108, -1108, -1108, 690, -1108, 3208, -1108, 2116, + 3208, -1108, -1108, 1326, -1108, -1108, 1189, 3923, -1108, -1108, + 1191, 3951, -1108, -1108, 1192, 3979, -1108, 1328, 2464, 269, + 2292, 705, -1108, 486, 718, 1329, 1213, 6591, 719, 4007, + -1108, 489, 1330, 489, 1332, 489, 1335, -1108, -1108, -1108, + -1108, 489, 1336, 3135, 1356, -1108, 466, -1108, 1236, 1373, + 289, -1108, 1237, 315, -1108, 1242, 331, -1108, 1266, 367, + -1108, 724, -1108, 743, -1108, 1268, 2116, -1108, 1376, 489, + 1383, 489, 1406, 489, -1108, 1409, 466, 1411, 466, 748, + -1108, 370, -1108, 379, -1108, 392, -1108, -1108, -1108, 749, + -1108, 1412, 1414, 1415, 1416, 466, 1418, -1108, -1108, -1108, + -1108, -1108, -1108 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1118, -1118, -1118, -1118, 599, -1118, -1118, -1118, -1118, 225, - -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -293, -3, -1118, -100, -1118, 597, 1439, -1118, - -1118, -1118, -1118, 3, -371, -193, -1118, -1118, -1118, -1118, - -1118, -1118, 1444, -1118, -1118, -1118, -1118, -1118, -1118, -1118, - -1118, -1118, -1118, -1118, -1118, -1118, -719, -712, 223, -1118, - -1118, 1093, -1118, -1118, -1118, -1118, -1118, -6, -1118, -20, - -1118, -1117, 561, -67, 347, -107, -667, 510, -1118, -216, + -1108, -1108, -1108, -1108, 584, -1108, -1108, -1108, -1108, 195, + -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -292, -3, -1108, 80, -1108, 581, 1428, -1108, + -1108, -1108, -1108, 3, -367, -193, -1108, -1108, -1108, -1108, + -1108, -1108, 1429, -1108, -1108, -1108, -1108, -1108, -1108, -1108, + -1108, -1108, -1108, -1108, -1108, -1108, -728, -719, 196, -1108, + -1108, 1075, -1108, -1108, -1108, -1108, -1108, -6, -1108, -20, + -1108, -1107, 563, -103, 349, -108, -671, 492, -1108, -222, -2 }; @@ -1544,1473 +1435,1506 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 139, 387, 488, 138, 141, 1181, 73, 568, 569, 614, - 397, 401, 398, 425, 426, 202, 187, 189, 214, 195, - 826, 695, 686, 678, 154, 224, 231, 1193, 159, 159, - 226, 784, 419, 217, 421, 755, 145, 1257, 150, 154, - 299, 756, 757, 888, 334, 151, 886, 376, 377, 339, - 422, 237, 755, 343, 950, 4, 516, 953, 756, 757, - 483, 517, 183, 184, 378, 475, 476, 477, 478, 390, - 5, 755, 185, 196, 376, 377, 391, 756, 757, 186, - 376, 377, 113, 114, 115, 116, 238, 678, 117, 155, - 563, 615, 616, 617, 618, 142, 156, 379, 144, 295, - 160, 692, 358, 359, 155, 35, 36, 37, 38, 817, - 191, 691, 143, 192, 43, 203, 193, 46, 150, 197, - 147, 288, 289, 290, 885, 690, 291, 294, 198, 130, - 131, 303, 394, 123, 124, 125, 126, 323, 148, 300, - 325, 1287, 696, 1003, 326, 332, 335, 336, 399, 338, - 332, 340, 341, 619, 332, 344, 345, 941, 204, 130, - 131, 215, 371, 372, 232, 687, 233, 225, 785, 218, - 380, 234, 227, 484, 388, 696, 886, 146, 1258, 374, - 375, 376, 377, 130, 131, 205, 485, 206, 375, 149, - 792, 296, 297, 680, 183, 184, 577, 123, 124, 125, - 126, 818, 819, 162, 185, 407, 408, 409, 1338, 411, - 693, 194, 414, 415, 755, 416, 152, 130, 131, 598, - 756, 757, 487, 755, 679, 755, 428, 376, 377, 756, - 757, 756, 757, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 168, 1041, 755, 169, 479, - 170, 376, 377, 756, 757, 237, 1233, 332, 176, 667, - 153, 177, 489, 178, 668, 1236, 590, 1239, 389, 157, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 836, 113, 114, 115, 116, - 526, 172, 117, 522, 173, 931, 524, 174, 158, 175, - 526, 530, 123, 124, 125, 126, 535, 755, 161, 162, - 522, 332, 163, 756, 757, 544, 545, 546, 547, 1298, - 376, 377, 130, 131, 552, 164, 566, 567, 935, 557, - 558, 559, 1117, 755, 372, 755, 992, 1118, 993, 756, - 757, 756, 757, 376, 377, 571, 572, 573, 288, 289, - 574, 300, 300, 165, 578, 579, 580, 581, 171, 994, - 585, 995, 166, 587, 588, 794, 179, 332, 591, 592, - 755, 376, 377, 985, 986, 755, 756, 757, 755, 1327, - 698, 756, 757, 167, 756, 757, 239, 996, 240, 997, - 180, 610, 755, 241, 613, 242, 612, 201, 756, 757, - 181, 243, 721, 244, 1199, 1329, 1202, 1331, 1205, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 542, 318, 319, 811, 738, 739, 740, 320, 376, 377, - 245, 1184, 246, 376, 377, 247, 1090, 248, 123, 124, - 125, 126, 1333, 182, 570, 674, 249, 1351, 250, 576, - 1352, 835, 683, 681, 251, 682, 252, 886, 130, 131, - 886, 199, 190, 886, 1353, 200, 422, 237, 333, 208, - 376, 377, 253, 333, 254, 376, 377, 333, 255, 207, - 256, 332, 699, 209, 674, 703, 875, 210, 704, 705, - 707, 887, 211, 934, 936, 1278, 212, 213, 113, 114, - 115, 116, 219, 332, 117, 220, 705, 724, 221, 376, - 377, 228, 729, 746, 376, 377, 222, 736, 736, 736, - 736, 737, 737, 737, 737, 1094, 760, 223, 747, 748, - 1152, 810, 130, 131, 751, 236, 886, 520, 257, 233, - 258, 1309, 136, 1312, 234, 1315, 767, 259, 769, 260, - 261, 1318, 262, 829, 830, 831, 832, 1107, 376, 377, - 263, 780, 264, 782, 783, 839, 265, 886, 266, 786, - 886, 376, 377, 886, 1154, 267, 886, 268, 793, 1340, - 269, 1342, 270, 1344, 229, 230, 856, 1156, 376, 377, - 1080, 376, 377, 376, 377, 281, 130, 131, 886, 285, - 886, 481, 886, 233, 1163, 376, 377, 1164, 234, 1165, - 333, 802, 803, 130, 131, 376, 377, 376, 377, 906, - 792, 1232, 376, 377, 282, 804, 805, 806, 807, 808, - 809, 1235, 332, 1238, 283, 376, 377, 812, 1246, 315, - 316, 317, 318, 319, 820, 298, 523, 271, 320, 272, - 838, 1248, 376, 377, 332, 332, 332, 332, 833, 284, - 317, 318, 319, 523, 333, 286, 332, 320, 1302, 304, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 273, 321, 274, 332, 320, 322, - 275, 277, 276, 278, 349, 337, 279, 1108, 280, 356, - 356, 356, 879, 880, 881, 1046, 526, 526, 527, 532, - 526, 369, 536, 605, 526, 606, 677, 324, 342, 526, - 333, 722, 526, 847, 773, 848, 526, 943, 855, 944, - 356, 395, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 351, 526, 1194, 945, - 320, 526, 907, 946, 526, 353, 947, 1010, 526, 354, - 948, 918, 919, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 352, 7, 8, 526, 320, 954, 360, 526, - 793, 970, 365, 366, 937, 1029, 526, 1030, 1102, 942, - 1123, 1206, 1124, 1207, 526, 1029, 1217, 1224, 1029, 367, - 1228, 952, 526, 368, 1247, 955, 370, 494, 15, 16, - 495, 18, 19, 496, 21, 497, 23, 381, 24, 382, - 26, 27, 383, 29, 30, 31, 392, 393, 33, 34, - 1123, 526, 1284, 1301, 333, 396, 526, 1002, 1303, 988, - 989, 990, 706, 708, 1029, 400, 1307, 998, 1000, 402, - 404, 1001, 50, 51, 52, 526, 333, 1334, 332, 706, - 1335, 1029, 1336, 1350, 1354, 405, 1355, 403, 1015, 1016, - 1017, 406, 410, 412, 413, 417, 418, 420, 427, 429, - 430, 1026, 1024, 432, 480, 320, 1032, 490, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 1035, 491, 492, 1034, 320, 136, 521, 1050, 543, 589, - 493, 548, 549, 553, 554, 561, 555, 556, 562, 560, - 1049, 582, 584, 586, 596, 607, 1054, 1055, 305, 599, - 608, 1057, 609, 669, 670, 671, 673, 684, 1209, 1063, - 685, 689, 1081, 709, 1084, 700, 1087, 710, 711, 713, - 1073, 714, 715, 716, 1074, 1097, 718, 1099, 1100, 719, - 720, 731, 733, 744, 300, 749, 750, 768, 779, 332, - 776, 777, 332, 1171, 778, 1103, 787, 788, 789, 797, - 790, 798, 799, 1111, 801, 333, 814, 1112, 815, 816, - 821, 1119, 1120, 822, 834, 824, 825, 828, 852, 842, - 845, 851, 858, 859, 860, 861, 864, 333, 333, 333, - 333, 1132, 865, 866, 675, 676, 870, 867, 871, 333, - 872, 868, 1279, 869, 873, 882, 884, 1212, 883, 874, - 889, 890, 894, 891, 892, 895, 896, 897, 898, 899, - 333, 903, 1150, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 908, 1162, 1323, - 522, 320, 909, 911, 915, 912, 913, 914, 916, 1169, - 917, 1170, 922, 932, 332, 939, 949, 938, 961, 964, - 730, 956, 1178, 957, 962, 965, 963, 1182, 968, 1346, - 967, 1349, 969, 745, 971, 975, 976, 991, 1007, 978, - 979, 980, 1198, 981, 1201, 987, 1204, 1011, 1360, 1280, - 499, 1283, 1012, 1211, 1013, 1213, 1197, 1014, 1200, 1018, - 1203, 1019, 300, 1020, 1036, 1037, 1039, 1058, 332, 1042, - 1061, 1043, 1214, 1044, 1045, 1048, 7, 8, 1051, 524, - 1052, 1053, 1056, 1222, 1223, 1059, 1060, 1064, 1069, 1070, - 1226, 1075, 1072, 1082, 1085, 1088, 1227, 1095, 1091, 1230, - 1098, 1101, 1113, 1114, 1115, 1320, 1125, 1116, 1126, 1129, - 494, 15, 16, 495, 18, 19, 496, 21, 497, 23, - 1128, 24, 1122, 26, 27, 1032, 29, 30, 31, 1130, - 1131, 33, 34, 1137, 1138, 1139, 1266, 1140, 1282, 1270, - 1141, 1142, 1274, 1143, 1144, 1145, 1277, 1147, 1148, 1158, - 332, 333, 332, 1149, 1153, 50, 51, 52, 1160, 1151, - 1286, 1155, 1157, 1288, 1161, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 7, - 8, 843, 844, 320, 846, 1166, 849, 850, 1173, 1183, - 853, 854, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 525, 318, 319, 332, 1185, 1168, 1187, - 320, 1188, 603, 494, 15, 16, 495, 18, 19, 496, - 21, 497, 23, 1189, 24, 1190, 26, 27, 1191, 29, - 30, 31, 1225, 1241, 33, 34, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 900, 901, 902, - 1242, 320, 1192, 515, 1218, 1219, 1220, 1229, 50, 51, - 52, 1250, 333, 1221, 1245, 333, 1251, 1252, 1253, 1261, - 1264, 1276, 1267, 1268, 1271, 1272, 672, 1275, 1281, 1289, - 85, 327, 1296, 1290, 1304, 1292, 89, 90, 91, 1310, - 1313, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 823, 1294, 1316, 604, 960, 1305, 1319, 1321, - 1325, 1326, 966, 328, 1328, 1330, 1339, 1332, 1337, 1341, - 972, 973, 974, 1343, 1345, 1347, 977, 1356, 1357, 1358, - 1359, 982, 983, 984, 1361, 951, 35, 36, 37, 38, - 39, 959, 72, 523, 999, 43, 1254, 80, 46, 1038, - 1006, 1262, 551, 1009, 0, 0, 0, 333, 306, 307, + 140, 225, 389, 139, 142, 491, 74, 146, 427, 428, + 429, 227, 403, 571, 572, 203, 188, 190, 297, 196, + 831, 618, 682, 1190, 215, 690, 233, 822, 155, 155, + 206, 1268, 207, 421, 160, 423, 160, 399, 893, 400, + 218, 788, 519, 891, 336, 1202, 4, 520, 699, 341, + 424, 239, 759, 345, 378, 379, 956, 959, 760, 761, + 671, 478, 479, 480, 481, 672, 197, 360, 361, 759, + 5, 380, 486, 378, 379, 760, 761, 378, 379, 151, + 378, 379, 114, 115, 116, 117, 152, 240, 118, 143, + 381, 490, 145, 566, 156, 156, 998, 396, 999, 378, + 379, 157, 695, 619, 620, 621, 622, 161, 144, 696, + 298, 299, 198, 378, 379, 204, 391, 131, 132, 823, + 824, 199, 290, 291, 292, 890, 148, 293, 296, 1000, + 392, 1001, 305, 124, 125, 126, 127, 393, 325, 149, + 302, 327, 1009, 150, 226, 328, 334, 337, 338, 147, + 340, 334, 342, 343, 228, 334, 346, 347, 947, 205, + 131, 132, 1298, 373, 374, 234, 623, 235, 216, 691, + 700, 382, 236, 1269, 891, 390, 401, 219, 700, 789, + 376, 377, 378, 379, 131, 132, 487, 488, 241, 377, + 242, 797, 991, 992, 151, 378, 379, 684, 580, 378, + 379, 694, 124, 125, 126, 127, 409, 410, 411, 941, + 413, 573, 163, 416, 417, 1002, 418, 1003, 301, 697, + 759, 601, 131, 132, 153, 759, 760, 761, 431, 1349, + 154, 760, 761, 378, 379, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 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, 169, 1048, 158, + 170, 482, 171, 35, 36, 37, 38, 159, 243, 334, + 244, 162, 43, 1243, 492, 46, 177, 593, 1246, 178, + 163, 179, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 164, 378, 379, + 124, 125, 126, 127, 192, 525, 841, 193, 682, 759, + 194, 529, 937, 533, 579, 760, 761, 529, 538, 1125, + 131, 132, 525, 334, 1126, 759, 165, 547, 548, 549, + 550, 760, 761, 378, 379, 529, 555, 530, 569, 570, + 166, 560, 561, 562, 167, 759, 374, 172, 245, 880, + 246, 760, 761, 180, 378, 379, 168, 574, 575, 576, + 290, 291, 577, 302, 302, 181, 581, 582, 583, 584, + 892, 759, 588, 799, 183, 590, 591, 760, 761, 334, + 594, 595, 1249, 182, 191, 184, 185, 759, 200, 184, + 185, 201, 702, 760, 761, 186, 378, 379, 1309, 186, + 202, 247, 187, 248, 614, 208, 195, 617, 249, 616, + 250, 209, 1101, 1208, 725, 1211, 210, 1214, 1338, 124, + 125, 126, 127, 759, 211, 212, 759, 378, 379, 760, + 761, 816, 760, 761, 221, 759, 378, 379, 213, 131, + 132, 760, 761, 1160, 1340, 1193, 683, 251, 759, 252, + 424, 239, 1162, 214, 760, 761, 220, 222, 678, 840, + 1342, 378, 379, 378, 379, 687, 685, 223, 686, 891, + 238, 224, 891, 378, 379, 891, 253, 1164, 254, 1171, + 239, 335, 114, 115, 116, 117, 335, 229, 118, 1172, + 335, 378, 379, 230, 334, 703, 1344, 678, 707, 1362, + 287, 708, 709, 711, 231, 232, 1289, 1173, 1363, 940, + 942, 114, 115, 116, 117, 283, 334, 118, 284, 709, + 728, 1364, 378, 379, 285, 733, 750, 378, 379, 286, + 740, 740, 740, 740, 741, 741, 741, 741, 1242, 764, + 288, 751, 752, 1245, 815, 759, 300, 755, 378, 379, + 891, 760, 761, 1320, 255, 1323, 256, 1326, 306, 771, + 257, 773, 258, 1329, 1248, 323, 834, 835, 836, 837, + 527, 324, 378, 379, 784, 326, 786, 787, 844, 339, + 344, 891, 790, 353, 891, 378, 379, 891, 1256, 355, + 891, 1351, 798, 1353, 259, 1355, 260, 378, 379, 861, + 354, 1258, 317, 318, 319, 320, 321, 370, 131, 132, + 1087, 322, 891, 1313, 891, 797, 891, 742, 743, 744, + 356, 362, 131, 132, 335, 807, 808, 523, 367, 235, + 173, 1114, 137, 174, 236, 261, 175, 262, 176, 809, + 810, 811, 812, 813, 814, 368, 334, 131, 132, 369, + 372, 817, 484, 383, 235, 319, 320, 321, 825, 236, + 526, 263, 322, 264, 843, 265, 384, 266, 334, 334, + 334, 334, 838, 267, 269, 268, 270, 526, 335, 271, + 334, 272, 385, 402, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 545, 320, 321, 273, 394, + 274, 334, 322, 529, 275, 535, 276, 351, 277, 395, + 278, 1097, 358, 358, 358, 1053, 884, 885, 886, 279, + 281, 280, 282, 398, 371, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 335, 529, 404, 539, 322, 608, + 529, 609, 681, 358, 397, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 529, + 529, 726, 777, 322, 852, 529, 853, 860, 405, 408, + 1203, 1016, 1115, 949, 412, 950, 924, 925, 529, 529, + 951, 952, 529, 529, 953, 954, 414, 415, 7, 8, + 529, 529, 960, 976, 1036, 798, 1037, 419, 529, 943, + 1109, 1131, 420, 1132, 948, 1215, 529, 1216, 1226, 1036, + 1036, 1234, 1238, 529, 406, 1257, 958, 1131, 407, 1295, + 961, 422, 497, 15, 16, 498, 18, 19, 499, 21, + 500, 23, 529, 24, 1312, 26, 27, 430, 29, 30, + 31, 432, 435, 33, 34, 529, 1036, 1314, 1318, 335, + 433, 529, 1008, 1345, 994, 995, 996, 710, 712, 483, + 322, 493, 1004, 1006, 494, 495, 1007, 50, 51, 52, + 1346, 335, 1347, 334, 710, 1036, 1365, 1361, 1366, 137, + 546, 496, 524, 1021, 1022, 1023, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 1033, 1031, 551, + 552, 322, 1039, 556, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 1042, 563, 557, 1041, + 322, 564, 558, 1057, 559, 592, 565, 585, 587, 589, + 599, 610, 602, 673, 611, 612, 1056, 613, 688, 674, + 675, 677, 1061, 1062, 689, 693, 911, 1064, 704, 713, + 714, 715, 717, 719, 718, 1070, 1218, 720, 1088, 722, + 1091, 723, 1094, 724, 735, 737, 1080, 748, 753, 754, + 1081, 1104, 772, 1106, 1107, 780, 781, 782, 783, 791, + 302, 792, 802, 793, 794, 334, 795, 803, 334, 1179, + 804, 1110, 806, 819, 820, 821, 826, 827, 833, 1118, + 829, 335, 830, 1119, 839, 847, 850, 856, 1127, 1128, + 863, 857, 864, 865, 866, 869, 871, 870, 875, 872, + 873, 874, 876, 335, 335, 335, 335, 877, 1140, 679, + 680, 878, 879, 894, 887, 335, 888, 889, 895, 899, + 896, 897, 1290, 900, 1221, 901, 902, 903, 904, 908, + 913, 914, 916, 917, 918, 919, 335, 920, 921, 1158, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 1021, 1022, 1023, 0, 320, 119, 120, 121, - 122, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 1033, 0, 384, 1096, 320, - 0, 0, 129, 0, 0, 0, 0, 386, 0, 0, - 0, 333, 135, 0, 186, 540, 0, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 85, 327, 1065, - 1066, 1067, 1068, 89, 90, 91, 0, 0, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, - 0, 0, 0, 0, 0, 1104, 0, 0, 0, 0, - 328, 0, 0, 0, 0, 0, 0, 7, 8, 0, - 1121, 0, 0, 333, 0, 333, 0, 0, 0, 0, - 0, 0, 0, 35, 36, 37, 38, 39, 0, 857, - 0, 0, 43, 0, 0, 46, 0, 0, 0, 0, - 0, 494, 15, 16, 495, 18, 19, 496, 21, 497, - 23, 893, 24, 0, 26, 27, 0, 29, 30, 31, - 0, 0, 33, 34, 119, 120, 121, 122, 0, 333, - 0, 0, 1159, 940, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 127, 329, 50, 51, 52, 129, - 0, 0, 0, 0, 132, 1174, 1175, 1176, 0, 135, - 0, 0, 540, 85, 86, 87, 0, 88, 0, 89, - 90, 91, 0, 0, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 0, 113, 114, 115, 116, - 0, 1208, 117, 761, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 0, 0, 306, 307, 308, 309, + 318, 319, 320, 321, 1334, 1170, 922, 525, 322, 928, + 912, 938, 944, 923, 945, 955, 1177, 967, 1178, 963, + 970, 334, 971, 974, 975, 734, 962, 968, 977, 969, + 1187, 981, 982, 973, 1357, 1191, 1360, 984, 749, 985, + 986, 987, 993, 997, 1018, 1013, 1019, 1020, 1024, 1017, + 1207, 1025, 1210, 1371, 1213, 1026, 1043, 1044, 1291, 1055, + 1294, 1220, 1046, 1222, 1206, 1049, 1209, 1050, 1212, 1051, + 302, 1052, 1058, 1059, 1060, 1063, 334, 1065, 1068, 1066, + 1223, 1067, 307, 1071, 1076, 1077, 7, 8, 1079, 1082, + 1089, 1092, 1232, 1233, 1095, 1098, 1102, 1105, 1108, 1236, + 1120, 1121, 1122, 1133, 1134, 1237, 1123, 1136, 1240, 502, + 1137, 1139, 1124, 1138, 1130, 1331, 1145, 1168, 1147, 1148, + 497, 15, 16, 498, 18, 19, 499, 21, 500, 23, + 1146, 24, 1149, 26, 27, 1039, 29, 30, 31, 1150, + 518, 33, 34, 1151, 1152, 1153, 1277, 1155, 1293, 1281, + 1156, 1157, 1285, 1159, 1161, 1166, 1288, 1174, 335, 676, + 334, 1163, 334, 1165, 1176, 50, 51, 52, 1169, 1181, + 1192, 1297, 1196, 1197, 1299, 1198, 1194, 1199, 1200, 1201, + 1235, 1251, 1252, 1260, 1227, 1228, 1261, 848, 849, 1231, + 851, 1255, 854, 855, 1229, 1230, 858, 859, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 1127, 0, 0, 0, 320, 0, 0, 1240, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 118, 0, 320, 0, 0, 0, - 119, 120, 121, 122, 0, 0, 0, 123, 124, 125, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 127, 128, 0, 0, 0, 129, 0, 130, 131, 0, - 132, 0, 133, 0, 134, 135, 0, 136, 85, 327, - 355, 0, 0, 0, 89, 90, 91, 0, 0, 92, + 320, 321, 1262, 1239, 1263, 1264, 322, 334, 1272, 1275, + 1287, 1278, 1279, 606, 1282, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1283, + 1286, 1292, 1300, 322, 1307, 1315, 1321, 1301, 1324, 1303, + 1305, 1327, 1330, 905, 906, 907, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 335, 1316, 1332, 335, 322, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1337, + 86, 329, 1350, 322, 1336, 1339, 90, 91, 92, 1352, + 1341, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 1354, 966, 1343, 1356, 1348, 1358, 1367, 972, + 1368, 1369, 1370, 330, 1372, 957, 1265, 978, 979, 980, + 965, 73, 81, 983, 1273, 0, 554, 1045, 988, 989, + 990, 0, 0, 0, 0, 0, 35, 36, 37, 38, + 39, 1005, 526, 0, 0, 43, 0, 1012, 46, 0, + 1015, 0, 0, 0, 0, 0, 335, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1027, + 1028, 1029, 1030, 0, 0, 0, 0, 120, 121, 122, + 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1040, 0, 0, 0, 0, 386, 1103, + 828, 0, 0, 130, 0, 0, 0, 0, 388, 0, + 0, 335, 0, 136, 0, 187, 543, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 329, 1072, 1073, 1074, + 1075, 90, 91, 92, 0, 0, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, + 0, 0, 0, 1111, 0, 0, 0, 0, 330, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, + 0, 0, 0, 0, 0, 335, 0, 335, 0, 0, + 0, 35, 36, 37, 38, 39, 0, 0, 0, 0, + 43, 862, 0, 46, 0, 0, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, + 0, 0, 120, 121, 122, 123, 0, 0, 0, 0, + 0, 1167, 335, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 331, 0, 0, 0, 130, 0, + 0, 0, 0, 133, 1182, 1183, 1184, 1185, 136, 0, + 0, 543, 0, 86, 87, 88, 0, 89, 0, 90, + 91, 92, 0, 0, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 0, 114, 115, 116, 117, + 0, 1217, 118, 0, 7, 8, 0, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 497, 15, + 16, 498, 18, 19, 499, 21, 500, 23, 1250, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 33, + 34, 0, 0, 0, 119, 0, 0, 0, 0, 0, + 120, 121, 122, 123, 0, 0, 0, 0, 124, 125, + 126, 127, 0, 50, 51, 52, 0, 0, 0, 0, + 0, 128, 129, 0, 0, 0, 130, 0, 131, 132, + 0, 133, 0, 134, 0, 135, 136, 0, 137, 86, + 329, 357, 0, 0, 0, 90, 91, 92, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 607, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 330, 0, 7, 8, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 898, 1085, 0, 1086, 43, 0, 0, 46, 497, 15, + 16, 498, 18, 19, 499, 21, 500, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 33, + 34, 0, 0, 0, 0, 0, 120, 121, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 328, 0, 7, 8, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 35, 36, 37, 38, 39, 1146, - 0, 0, 0, 43, 0, 0, 46, 494, 15, 16, - 495, 18, 19, 496, 21, 497, 23, 0, 24, 0, - 26, 27, 0, 29, 30, 31, 0, 0, 33, 34, - 0, 0, 0, 0, 0, 119, 120, 121, 122, 0, + 0, 0, 0, 50, 51, 52, 0, 128, 348, 0, + 0, 0, 130, 0, 0, 0, 0, 133, 0, 86, + 329, 1010, 136, 0, 349, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 765, 330, 0, 7, 8, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 946, 0, 0, 0, 43, 0, 0, 46, 497, 15, + 16, 498, 18, 19, 499, 21, 500, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 33, + 34, 0, 0, 0, 0, 0, 120, 121, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 50, 51, 52, 127, 346, 0, 0, 0, - 129, 0, 0, 0, 0, 132, 0, 85, 327, 1004, - 135, 0, 347, 89, 90, 91, 0, 0, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 781, - 328, 0, 7, 8, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 35, 36, 37, 38, 39, 1172, 0, - 0, 0, 43, 0, 0, 46, 494, 15, 16, 495, - 18, 19, 496, 21, 497, 23, 0, 24, 0, 26, - 27, 0, 29, 30, 31, 0, 0, 33, 34, 0, - 0, 0, 0, 0, 119, 120, 121, 122, 0, 0, + 0, 0, 0, 50, 51, 52, 0, 128, 348, 0, + 0, 0, 130, 0, 0, 0, 0, 133, 0, 86, + 329, 0, 136, 0, 1011, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 785, 330, 0, 7, 8, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 1135, 0, 0, 0, 43, 0, 0, 46, 497, 15, + 16, 498, 18, 19, 499, 21, 500, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 33, + 34, 0, 0, 0, 0, 0, 120, 121, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 51, 52, 127, 346, 0, 0, 0, 129, - 0, 0, 0, 0, 132, 0, 85, 327, 0, 135, - 0, 1005, 89, 90, 91, 0, 0, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1243, 328, - 0, 7, 8, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 35, 36, 37, 38, 39, 1249, 0, 0, - 0, 43, 0, 0, 46, 494, 15, 16, 495, 18, - 19, 496, 21, 497, 23, 0, 24, 0, 26, 27, - 0, 29, 30, 31, 0, 0, 33, 34, 0, 1297, - 0, 0, 0, 119, 120, 121, 122, 0, 0, 0, + 0, 0, 0, 50, 51, 52, 0, 128, 348, 0, + 0, 0, 130, 0, 0, 0, 0, 133, 0, 86, + 329, 0, 136, 0, 349, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1253, 330, 0, 7, 8, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 1154, 0, 0, 0, 43, 0, 0, 46, 497, 15, + 16, 498, 18, 19, 499, 21, 500, 23, 0, 24, + 0, 26, 27, 0, 29, 30, 31, 0, 0, 33, + 34, 0, 1180, 0, 0, 0, 120, 121, 122, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 50, 51, 52, 127, 346, 0, 0, 0, 129, 0, - 0, 0, 0, 132, 524, 85, 327, 0, 135, 0, - 347, 89, 90, 91, 0, 0, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1299, 328, 0, - 0, 0, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 35, 36, 37, 38, 39, 600, 0, 0, 0, - 43, 0, 0, 46, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 0, 0, 0, 0, 0, 0, - 694, 0, 119, 120, 121, 122, 0, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 542, 318, - 319, 0, 127, 329, 0, 320, 0, 129, 0, 0, - 0, 0, 132, 841, 85, 327, 0, 135, 0, 539, - 89, 90, 91, 0, 0, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 328, 0, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 35, 36, 37, 38, 39, 905, 0, 0, 0, 43, - 0, 0, 46, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 119, 120, 121, 122, 0, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 127, 329, 0, 320, 0, 129, 0, 0, 0, - 0, 132, 0, 85, 327, 0, 135, 0, 723, 89, - 90, 91, 0, 0, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 862, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 328, 0, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 0, 35, - 36, 37, 38, 39, 0, 0, 0, 0, 43, 0, - 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 119, 120, 121, 122, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 127, 346, 320, 0, 0, 129, 0, 0, 0, 1078, - 132, 1079, 85, 327, 0, 135, 0, 1008, 89, 90, - 91, 0, 0, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 328, 306, 307, 308, 309, + 0, 0, 0, 50, 51, 52, 0, 128, 331, 0, + 0, 0, 130, 0, 0, 1259, 0, 133, 0, 86, + 329, 0, 136, 0, 542, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1310, 330, 0, 0, 0, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 1308, 0, 0, 0, 43, 0, 0, 46, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 0, 0, 35, 36, - 37, 38, 39, 726, 0, 85, 287, 43, 0, 0, - 46, 89, 90, 91, 0, 0, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 0, 0, 119, - 120, 121, 122, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 384, - 1096, 320, 0, 0, 129, 0, 0, 0, 1105, 386, - 1106, 85, 287, 237, 135, 0, 186, 89, 90, 91, - 0, 0, 92, 93, 94, 95, 96, 97, 98, 99, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 0, 0, 0, 0, 527, 0, 120, 121, 122, 123, + 0, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 128, 331, 322, + 0, 0, 130, 0, 0, 0, 0, 133, 527, 86, + 329, 0, 136, 0, 727, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 330, 0, 0, 0, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 35, 36, 37, 38, 39, + 603, 0, 0, 0, 43, 0, 0, 46, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 528, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, + 0, 0, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 545, 320, 321, 0, 128, 348, 0, + 322, 0, 130, 0, 0, 0, 0, 133, 698, 86, + 329, 0, 136, 0, 1014, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 330, 0, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 0, 35, 36, 37, 38, 39, + 846, 0, 86, 289, 43, 0, 0, 46, 90, 91, + 92, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 0, 113, 114, 115, 116, 0, 0, - 117, 0, 119, 120, 121, 122, 7, 8, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 127, 128, 0, 0, 320, 129, 482, 0, - 0, 0, 132, 564, 0, 292, 0, 135, 0, 293, - 494, 15, 16, 495, 18, 19, 496, 21, 497, 23, - 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, - 0, 33, 34, 0, 0, 0, 0, 0, 119, 120, - 121, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 51, 52, 127, 128, - 0, 0, 0, 129, 0, 0, 0, 0, 132, 0, - 85, 287, 0, 135, 0, 1110, 89, 90, 91, 0, - 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 0, 0, 0, 0, 0, 0, 85, 287, - 0, 0, 0, 0, 89, 90, 91, 0, 0, 92, + 110, 111, 112, 113, 910, 0, 120, 121, 122, 123, + 0, 0, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 386, 1103, 0, + 322, 0, 130, 0, 0, 0, 0, 388, 0, 86, + 289, 239, 136, 0, 187, 90, 91, 92, 0, 0, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 0, 114, 115, 116, 117, 0, 0, 118, 120, + 121, 122, 123, 0, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 128, 129, 322, 0, 0, 130, 0, 0, 0, 0, + 133, 0, 0, 294, 0, 136, 0, 295, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, + 0, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 128, 129, 322, + 0, 0, 130, 0, 0, 0, 1112, 133, 1113, 86, + 289, 0, 136, 0, 1117, 90, 91, 92, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 0, 0, 0, 0, 0, 1195, 0, 1196, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 119, 120, 121, - 122, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 127, 128, 320, - 0, 0, 129, 0, 0, 0, 0, 132, 764, 0, - 701, 0, 135, 0, 702, 119, 120, 121, 122, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 384, 385, 320, 0, 0, - 129, 0, 0, 0, 0, 386, 795, 85, 327, 0, - 135, 0, 186, 89, 90, 91, 0, 0, 92, 93, + 113, 0, 0, 0, 0, 0, 7, 8, 86, 289, + 0, 0, 0, 0, 90, 91, 92, 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 0, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 497, 15, 16, 498, 18, 19, 499, 21, 500, 23, + 0, 24, 0, 26, 27, 0, 29, 30, 31, 0, + 0, 33, 34, 867, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 120, 121, 122, 123, + 0, 0, 0, 0, 0, 50, 51, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 128, 129, 0, + 0, 0, 130, 0, 0, 0, 0, 133, 0, 0, + 705, 0, 136, 0, 706, 120, 121, 122, 123, 0, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 0, 0, 386, 387, 322, 0, + 0, 130, 0, 0, 0, 0, 388, 0, 86, 329, + 0, 136, 0, 187, 90, 91, 92, 0, 0, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 328, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 35, 36, 37, 38, 39, 840, 0, - 85, 287, 43, 0, 0, 46, 89, 90, 91, 0, - 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 0, 330, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 0, 0, 35, 36, 37, 38, 39, 730, + 0, 86, 289, 43, 0, 0, 46, 90, 91, 92, + 0, 0, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 0, 0, 119, 120, 121, 122, 306, 307, + 111, 112, 113, 0, 0, 120, 121, 122, 123, 0, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 127, 329, 320, 0, 0, 129, - 85, 287, 237, 0, 132, 878, 89, 90, 91, 135, - 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 0, 113, 114, 115, 116, 0, 0, 117, - 0, 0, 0, 0, 0, 0, 0, 119, 120, 121, - 122, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 127, 128, 320, - 0, 0, 129, 0, 0, 0, 0, 132, 1076, 0, - 0, 0, 135, 0, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - -4, 1, 320, 0, -4, 0, 0, 119, 120, 121, - 122, 1093, -4, -4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 128, 0, - 0, 0, 129, 0, 0, -4, 0, 132, 0, 0, - -4, -4, 135, -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, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, 0, 0, -4, -4, 6, 0, 0, 0, - -4, -4, -4, -4, 7, 8, -4, 0, -4, 0, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, 0, 0, 0, -4, -4, -4, 9, 0, 0, - 0, 0, 10, 11, 0, 12, 13, 0, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, - 25, 26, 27, 28, 29, 30, 31, 0, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 0, 41, 42, - 43, 44, 45, 46, 0, 0, 47, 48, 0, 0, - 0, 0, 49, 50, 51, 52, 0, 0, 53, 0, - 54, 0, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 0, 0, 0, 0, 65, 66, 67, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 0, 0, 1133, 306, 307, 308, + 318, 319, 320, 321, 0, 0, 128, 331, 322, 0, + 0, 130, 86, 289, 239, 1204, 133, 1205, 90, 91, + 92, 136, 0, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 0, 114, 115, 116, 117, 0, + 0, 118, 0, 0, 0, 0, 0, 0, 120, 121, + 122, 123, 0, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 128, + 129, 322, 0, 0, 130, 0, 0, 0, 0, 133, + 768, 0, 0, 0, 136, 0, 0, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, -4, 1, 322, 0, -4, 0, 120, + 121, 122, 123, 0, 800, -4, -4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 129, 0, 0, 0, 130, 0, 0, -4, 0, + 133, 0, 0, -4, -4, 136, -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, -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, 6, 0, 0, 0, -4, -4, -4, + -4, 7, 8, 0, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 9, 0, 0, 0, 0, 10, + 11, 845, 12, 13, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, + 28, 29, 30, 31, 0, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 0, 41, 42, 43, 44, 45, + 46, 0, 0, 47, 48, 0, 0, 0, 0, 49, + 50, 51, 52, 0, 0, 53, 0, 54, 0, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, + 0, 0, 0, 65, 66, 67, 68, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 883, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 0, 1083, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, + 1100, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 0, 0, 1141, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 0, 0, 1134, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 0, 0, 1135, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 1136, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 0, 0, 1167, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 0, 0, 1210, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 0, 0, 1142, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 1143, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 0, 1144, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, + 1175, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 0, 0, 1219, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 0, 0, 1215, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 0, 0, 1216, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 1231, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 0, 0, 1234, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 0, 0, 1237, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 0, 0, 1224, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 1225, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 0, 1241, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, + 1244, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 0, 0, 1247, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 0, 0, 1260, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 0, 0, 1263, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, - 1291, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 0, 0, 1293, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 0, 0, 1295, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 0, 0, 1271, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 0, 0, 1274, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 0, 0, 1302, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, + 1304, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 0, 0, 1306, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 0, 0, 1308, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 518, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 564, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 0, 0, 1319, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 485, 0, 0, + 0, 0, 567, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 521, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 565, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 597, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 647, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 648, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 661, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 567, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 568, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 600, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 651, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 652, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 662, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 663, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 664, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 665, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 666, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 665, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 666, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 667, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 668, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 669, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 752, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 753, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 754, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 837, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 876, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 670, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 756, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 757, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 758, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 842, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 877, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 904, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 1027, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 1028, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 1047, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 881, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 882, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 909, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 1034, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 1035, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 0, - 0, 0, 1179, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 0, 0, 0, 1180, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 0, 0, 0, 1186, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 0, 0, 0, - 1256, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 0, 0, 0, 1259, 306, 307, 308, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 1054, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, + 1188, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 0, 0, 0, 1189, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 0, + 0, 0, 1195, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 0, 0, 0, 1267, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 486, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 0, 0, 602, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 611, 306, 307, 308, 309, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 0, 0, 0, 1270, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 489, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 0, 0, 626, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 628, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 0, 0, 630, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 632, 306, 307, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 605, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 615, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 0, 0, 630, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 632, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 0, 0, - 634, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 636, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 0, 0, 638, 306, 307, 308, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 0, 0, 634, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 636, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 0, 0, 638, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 640, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 0, 0, 642, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 644, 306, 307, 308, 309, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 640, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 0, 0, 642, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 644, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 0, 0, 646, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 650, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 0, 0, 652, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 654, 306, 307, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 646, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 648, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 0, 0, 650, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 654, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 0, 0, - 656, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 658, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 0, 0, 660, 306, 307, 308, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 0, 0, 656, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 658, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 0, 0, 660, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 771, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 0, 0, 772, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 0, 0, 774, 306, 307, 308, 309, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 662, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 0, 0, 664, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 775, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 0, 0, 775, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 0, - 0, 791, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 0, 0, 813, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 0, 0, 910, 306, 307, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 776, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 0, 0, 778, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 0, 0, 779, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 0, 0, 796, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 0, 0, - 924, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 0, 0, 926, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 0, 0, 928, 306, 307, 308, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 0, 0, 818, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 0, 0, 915, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 0, 0, 930, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 0, 0, 930, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 0, 0, 1040, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 482, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 519, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 528, 306, 307, 308, 309, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 0, + 0, 932, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 0, 0, 934, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 0, 0, 936, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 529, 306, 307, 308, + 320, 321, 0, 0, 0, 0, 322, 0, 0, 0, + 1047, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 485, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 522, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 531, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 532, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 534, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 536, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 537, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 0, 0, 0, 0, 322, 0, 540, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 531, 306, 307, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 541, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 533, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 534, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 537, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 538, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 593, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 594, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 595, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 601, 306, 307, 308, 309, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 596, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 597, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 598, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 604, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 629, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 631, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 633, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 635, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 625, 306, 307, 308, + 320, 321, 0, 0, 0, 0, 322, 0, 637, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 627, 306, 307, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 639, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 629, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 631, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 633, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 635, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 637, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 639, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 641, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 643, 306, 307, 308, 309, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 641, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 643, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 645, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 647, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 649, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 653, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 655, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 657, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 645, 306, 307, 308, + 320, 321, 0, 0, 0, 0, 322, 0, 659, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 649, 306, 307, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 661, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 651, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 653, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 655, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 657, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 659, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 712, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 717, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 725, 306, 307, 308, 309, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 663, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 716, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 721, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 729, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 731, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 732, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 738, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 745, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 727, 306, 307, 308, + 320, 321, 0, 0, 0, 0, 322, 0, 746, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 728, 306, 307, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 747, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 734, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 741, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 742, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 743, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 763, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 765, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 766, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 770, 306, 307, 308, 309, + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 767, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 769, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 770, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 774, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322, 0, 929, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 0, + 0, 0, 0, 322, 0, 931, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 0, 0, 0, 0, 322, 0, 933, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 0, 0, 0, 0, 322, 0, 935, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320, 0, 923, 306, 307, 308, + 320, 321, 0, 0, 0, 0, 322, 0, 939, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 0, 320, 0, 925, 306, 307, + 319, 320, 321, 0, 0, 0, 0, 322, 0, 1084, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 0, 0, 0, 0, 320, 0, 927, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 0, 320, 0, 929, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 320, 0, - 933, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 0, 320, - 0, 1077, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, - 320, 0, 1092, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 0, 320, 0, 1109, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, - 0, 0, 320, 0, 1255, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 320, 0, 1306, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 0, 320 + 318, 319, 320, 321, 0, 0, 0, 0, 322, 0, + 1099, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 0, 0, 0, 0, 322, + 0, 1116, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 0, 0, 0, 0, + 322, 0, 1266, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 0, 0, 0, + 0, 322, 0, 1317, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 0, 0, + 0, 0, 322 }; static const yytype_int16 yycheck[] = { - 6, 194, 295, 6, 6, 1122, 3, 378, 379, 4, - 4, 204, 6, 229, 230, 4, 36, 37, 4, 39, - 687, 6, 4, 7, 75, 5, 4, 1144, 75, 75, - 5, 7, 225, 4, 227, 76, 6, 6, 140, 75, - 4, 82, 83, 762, 151, 147, 758, 130, 131, 156, - 4, 5, 76, 160, 6, 6, 141, 6, 82, 83, - 7, 146, 130, 131, 147, 281, 282, 283, 284, 140, - 0, 76, 140, 4, 130, 131, 147, 82, 83, 147, - 130, 131, 36, 37, 38, 39, 88, 7, 42, 140, - 146, 86, 87, 88, 89, 13, 147, 147, 140, 4, - 147, 147, 169, 170, 140, 69, 70, 71, 72, 4, - 46, 147, 52, 49, 78, 104, 52, 81, 140, 50, - 6, 127, 128, 129, 148, 147, 132, 133, 59, 137, - 138, 137, 199, 117, 118, 119, 120, 143, 6, 136, - 146, 1258, 127, 148, 150, 151, 152, 153, 142, 155, - 156, 157, 158, 148, 160, 161, 162, 824, 147, 137, - 138, 147, 182, 183, 142, 147, 144, 147, 144, 140, - 190, 149, 147, 120, 194, 127, 888, 147, 147, 185, - 186, 130, 131, 137, 138, 4, 293, 6, 194, 6, - 144, 96, 97, 486, 130, 131, 389, 117, 118, 119, - 120, 96, 97, 140, 140, 211, 212, 213, 1325, 215, - 147, 147, 218, 219, 76, 221, 140, 137, 138, 412, - 82, 83, 7, 76, 144, 76, 232, 130, 131, 82, - 83, 82, 83, 239, 240, 241, 242, 243, 244, 245, + 6, 5, 195, 6, 6, 297, 3, 6, 230, 231, + 232, 5, 205, 380, 381, 4, 36, 37, 4, 39, + 691, 4, 7, 1130, 4, 4, 4, 4, 75, 75, + 4, 6, 6, 226, 75, 228, 75, 4, 766, 6, + 4, 7, 142, 762, 152, 1152, 6, 147, 6, 157, + 4, 5, 76, 161, 131, 132, 6, 6, 82, 83, + 142, 283, 284, 285, 286, 147, 4, 170, 171, 76, + 0, 148, 7, 131, 132, 82, 83, 131, 132, 141, + 131, 132, 36, 37, 38, 39, 148, 89, 42, 13, + 148, 7, 141, 147, 141, 141, 147, 200, 149, 131, + 132, 148, 148, 86, 87, 88, 89, 148, 52, 148, + 96, 97, 50, 131, 132, 104, 148, 138, 139, 96, + 97, 59, 128, 129, 130, 149, 6, 133, 134, 147, + 141, 149, 138, 118, 119, 120, 121, 148, 144, 6, + 137, 147, 149, 6, 148, 151, 152, 153, 154, 148, + 156, 157, 158, 159, 148, 161, 162, 163, 829, 148, + 138, 139, 1269, 183, 184, 143, 149, 145, 148, 148, + 128, 191, 150, 148, 893, 195, 143, 141, 128, 145, + 186, 187, 131, 132, 138, 139, 121, 295, 141, 195, + 143, 145, 6, 7, 141, 131, 132, 489, 391, 131, + 132, 148, 118, 119, 120, 121, 212, 213, 214, 7, + 216, 147, 141, 219, 220, 147, 222, 149, 4, 148, + 76, 414, 138, 139, 141, 76, 82, 83, 234, 1336, + 141, 82, 83, 131, 132, 241, 242, 243, 244, 245, 246, 247, 248, 249, 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, 49, 943, 76, 52, 285, - 54, 130, 131, 82, 83, 5, 148, 293, 49, 141, - 140, 52, 295, 54, 146, 148, 403, 148, 147, 140, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 141, 36, 37, 38, 39, - 146, 46, 42, 329, 49, 141, 8, 52, 140, 54, - 146, 337, 117, 118, 119, 120, 342, 76, 140, 140, - 346, 347, 56, 82, 83, 351, 352, 353, 354, 148, - 130, 131, 137, 138, 360, 52, 376, 377, 7, 365, - 366, 367, 141, 76, 384, 76, 146, 146, 148, 82, - 83, 82, 83, 130, 131, 381, 382, 383, 384, 385, - 386, 378, 379, 52, 390, 391, 392, 393, 54, 146, - 396, 148, 52, 399, 400, 611, 140, 403, 404, 405, - 76, 130, 131, 6, 7, 76, 82, 83, 76, 148, - 517, 82, 83, 52, 82, 83, 140, 146, 142, 148, - 49, 427, 76, 140, 430, 142, 429, 49, 82, 83, - 140, 140, 539, 142, 1153, 148, 1155, 148, 1157, 121, + 276, 277, 278, 279, 280, 281, 282, 49, 949, 141, + 52, 287, 54, 69, 70, 71, 72, 141, 141, 295, + 143, 141, 78, 149, 297, 81, 49, 405, 149, 52, + 141, 54, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 56, 131, 132, + 118, 119, 120, 121, 46, 331, 142, 49, 7, 76, + 52, 147, 142, 339, 147, 82, 83, 147, 344, 142, + 138, 139, 348, 349, 147, 76, 52, 353, 354, 355, + 356, 82, 83, 131, 132, 147, 362, 149, 378, 379, + 52, 367, 368, 369, 52, 76, 386, 54, 141, 147, + 143, 82, 83, 141, 131, 132, 52, 383, 384, 385, + 386, 387, 388, 380, 381, 49, 392, 393, 394, 395, + 147, 76, 398, 615, 148, 401, 402, 82, 83, 405, + 406, 407, 149, 141, 148, 131, 132, 76, 52, 131, + 132, 52, 520, 82, 83, 141, 131, 132, 149, 141, + 49, 141, 148, 143, 430, 49, 148, 433, 141, 432, + 143, 4, 147, 1161, 542, 1163, 4, 1165, 149, 118, + 119, 120, 121, 76, 4, 141, 76, 131, 132, 82, + 83, 673, 82, 83, 6, 76, 131, 132, 141, 138, + 139, 82, 83, 147, 149, 1136, 145, 141, 76, 143, + 4, 5, 147, 141, 82, 83, 141, 143, 484, 701, + 149, 131, 132, 131, 132, 491, 489, 4, 490, 1208, + 148, 4, 1211, 131, 132, 1214, 141, 147, 143, 147, + 5, 152, 36, 37, 38, 39, 157, 141, 42, 147, + 161, 131, 132, 141, 520, 521, 149, 523, 524, 149, + 7, 527, 528, 529, 141, 141, 1254, 147, 149, 821, + 822, 36, 37, 38, 39, 141, 542, 42, 141, 545, + 546, 149, 131, 132, 141, 551, 566, 131, 132, 141, + 556, 557, 558, 559, 556, 557, 558, 559, 147, 579, + 141, 567, 568, 147, 672, 76, 4, 573, 131, 132, + 1289, 82, 83, 1301, 141, 1303, 143, 1305, 6, 585, + 141, 587, 143, 1311, 147, 6, 694, 695, 696, 697, + 8, 6, 131, 132, 600, 5, 602, 603, 706, 141, + 141, 1320, 608, 141, 1323, 131, 132, 1326, 147, 141, + 1329, 1339, 615, 1341, 141, 1343, 143, 131, 132, 727, + 148, 147, 131, 132, 133, 134, 135, 4, 138, 139, + 997, 140, 1351, 147, 1353, 145, 1355, 557, 558, 559, + 141, 141, 138, 139, 295, 651, 652, 143, 141, 145, + 46, 8, 148, 49, 150, 141, 52, 143, 54, 665, + 666, 667, 668, 669, 670, 141, 672, 138, 139, 141, + 5, 677, 143, 148, 145, 133, 134, 135, 684, 150, + 331, 141, 140, 143, 704, 141, 148, 143, 694, 695, + 696, 697, 698, 141, 141, 143, 143, 348, 349, 141, + 706, 143, 148, 143, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 141, 141, + 143, 727, 140, 147, 141, 149, 143, 164, 141, 141, + 143, 149, 169, 170, 171, 957, 756, 757, 758, 141, + 141, 143, 143, 141, 181, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 405, 147, 6, 149, 140, 143, + 147, 145, 149, 200, 201, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 147, + 147, 149, 149, 140, 52, 147, 54, 149, 148, 6, + 1157, 899, 149, 147, 145, 149, 802, 803, 147, 147, + 149, 149, 147, 147, 149, 149, 148, 99, 12, 13, + 147, 147, 149, 149, 147, 818, 149, 6, 147, 822, + 149, 147, 6, 149, 830, 147, 147, 149, 149, 147, + 147, 149, 149, 147, 143, 149, 842, 147, 143, 149, + 846, 6, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 147, 57, 149, 59, 60, 143, 62, 63, + 64, 4, 6, 67, 68, 147, 147, 149, 149, 520, + 148, 147, 892, 149, 880, 881, 882, 528, 529, 5, + 140, 145, 888, 889, 7, 143, 892, 91, 92, 93, + 147, 542, 149, 899, 545, 147, 147, 149, 149, 148, + 7, 149, 148, 909, 910, 911, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 923, 921, 7, + 7, 140, 928, 141, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 942, 142, 141, 941, + 140, 6, 141, 963, 141, 149, 147, 7, 7, 6, + 96, 142, 148, 147, 142, 142, 962, 142, 6, 142, + 142, 147, 968, 969, 4, 144, 8, 973, 7, 99, + 7, 7, 7, 7, 99, 981, 1169, 7, 998, 99, + 1000, 7, 1002, 7, 4, 6, 992, 145, 149, 149, + 992, 1011, 6, 1013, 1014, 7, 7, 7, 145, 4, + 997, 7, 141, 7, 7, 1011, 7, 141, 1014, 1117, + 148, 1017, 6, 6, 6, 144, 6, 6, 6, 1025, + 7, 672, 143, 1025, 128, 52, 7, 7, 1034, 1035, + 7, 54, 7, 7, 7, 6, 142, 7, 7, 142, + 142, 142, 7, 694, 695, 696, 697, 7, 1054, 486, + 487, 4, 147, 7, 6, 706, 148, 141, 6, 148, + 7, 7, 1255, 6, 1172, 6, 52, 6, 6, 4, + 4, 4, 148, 148, 148, 148, 727, 6, 4, 1085, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 669, 554, 555, 556, 139, 130, 131, - 140, 1128, 142, 130, 131, 140, 148, 142, 117, 118, - 119, 120, 148, 147, 146, 481, 140, 148, 142, 146, - 148, 697, 488, 486, 140, 487, 142, 1199, 137, 138, - 1202, 52, 147, 1205, 148, 52, 4, 5, 151, 4, - 130, 131, 140, 156, 142, 130, 131, 160, 140, 49, - 142, 517, 518, 4, 520, 521, 146, 4, 524, 525, - 526, 146, 140, 816, 817, 1244, 140, 140, 36, 37, - 38, 39, 140, 539, 42, 6, 542, 543, 142, 130, - 131, 140, 548, 563, 130, 131, 4, 553, 554, 555, - 556, 553, 554, 555, 556, 146, 576, 4, 564, 565, - 146, 668, 137, 138, 570, 147, 1278, 142, 140, 144, - 142, 1290, 147, 1292, 149, 1294, 582, 140, 584, 142, - 140, 1300, 142, 690, 691, 692, 693, 8, 130, 131, - 140, 597, 142, 599, 600, 702, 140, 1309, 142, 605, - 1312, 130, 131, 1315, 146, 140, 1318, 142, 611, 1328, - 140, 1330, 142, 1332, 140, 140, 723, 146, 130, 131, - 991, 130, 131, 130, 131, 140, 137, 138, 1340, 7, - 1342, 142, 1344, 144, 146, 130, 131, 146, 149, 146, - 293, 647, 648, 137, 138, 130, 131, 130, 131, 8, - 144, 146, 130, 131, 140, 661, 662, 663, 664, 665, - 666, 146, 668, 146, 140, 130, 131, 673, 146, 130, - 131, 132, 133, 134, 680, 4, 329, 140, 139, 142, - 700, 146, 130, 131, 690, 691, 692, 693, 694, 140, - 132, 133, 134, 346, 347, 140, 702, 139, 146, 6, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 140, 6, 142, 723, 139, 6, - 140, 140, 142, 142, 163, 140, 140, 148, 142, 168, - 169, 170, 752, 753, 754, 951, 146, 146, 148, 148, - 146, 180, 148, 142, 146, 144, 148, 5, 140, 146, - 403, 148, 146, 52, 148, 54, 146, 146, 148, 148, - 199, 200, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 140, 146, 1149, 148, - 139, 146, 141, 148, 146, 140, 148, 894, 146, 140, - 148, 797, 798, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 147, 12, 13, 146, 139, 148, 140, 146, - 813, 148, 140, 140, 817, 146, 146, 148, 148, 825, - 146, 146, 148, 148, 146, 146, 148, 148, 146, 140, - 148, 837, 146, 4, 148, 841, 5, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 147, 57, 147, - 59, 60, 147, 62, 63, 64, 140, 140, 67, 68, - 146, 146, 148, 148, 517, 140, 146, 887, 148, 875, - 876, 877, 525, 526, 146, 142, 148, 883, 884, 6, - 142, 887, 91, 92, 93, 146, 539, 148, 894, 542, - 146, 146, 148, 148, 146, 142, 148, 147, 904, 905, - 906, 6, 144, 147, 99, 6, 6, 6, 142, 4, - 147, 917, 915, 6, 5, 139, 922, 144, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 936, 7, 142, 935, 139, 147, 147, 957, 7, 148, - 148, 7, 7, 140, 140, 6, 140, 140, 146, 141, - 956, 7, 7, 6, 96, 141, 962, 963, 6, 147, - 141, 967, 141, 146, 141, 141, 146, 6, 1161, 975, - 4, 143, 992, 99, 994, 7, 996, 7, 7, 7, - 986, 99, 7, 7, 986, 1005, 99, 1007, 1008, 7, - 7, 4, 6, 144, 991, 148, 148, 6, 144, 1005, - 7, 7, 1008, 1110, 7, 1011, 4, 7, 7, 140, - 7, 140, 147, 1019, 6, 668, 6, 1019, 6, 143, - 6, 1027, 1028, 6, 127, 7, 142, 6, 54, 52, - 7, 7, 7, 7, 7, 7, 6, 690, 691, 692, - 693, 1047, 7, 141, 483, 484, 7, 141, 7, 702, - 7, 141, 1245, 141, 4, 6, 140, 1164, 147, 146, - 7, 6, 147, 7, 7, 6, 6, 52, 6, 6, - 723, 4, 1078, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 4, 1094, 1305, - 1096, 139, 4, 147, 4, 147, 147, 6, 6, 1105, - 140, 1107, 147, 141, 1110, 7, 6, 144, 6, 6, - 549, 147, 1118, 59, 147, 6, 147, 1123, 6, 1335, - 147, 1337, 6, 562, 5, 4, 6, 147, 147, 7, - 7, 7, 1152, 7, 1154, 5, 1156, 147, 1354, 1246, - 6, 1248, 6, 1163, 6, 1165, 1152, 95, 1154, 6, - 1156, 7, 1149, 144, 6, 4, 6, 5, 1164, 6, - 99, 6, 1168, 6, 6, 143, 12, 13, 6, 8, - 6, 6, 6, 1179, 1180, 6, 6, 6, 6, 4, - 1186, 141, 6, 6, 6, 6, 1192, 6, 146, 1195, - 6, 6, 4, 146, 146, 1302, 6, 146, 6, 6, + 132, 133, 134, 135, 1316, 1101, 6, 1103, 140, 148, + 142, 142, 145, 141, 7, 6, 1112, 6, 1114, 59, + 6, 1117, 6, 6, 6, 552, 148, 148, 5, 148, + 1126, 4, 6, 148, 1346, 1131, 1348, 7, 565, 7, + 7, 7, 5, 148, 6, 148, 6, 95, 6, 148, + 1160, 7, 1162, 1365, 1164, 145, 6, 4, 1256, 144, + 1258, 1171, 6, 1173, 1160, 6, 1162, 6, 1164, 6, + 1157, 6, 6, 6, 6, 6, 1172, 5, 99, 6, + 1176, 6, 6, 6, 6, 4, 12, 13, 6, 142, + 6, 6, 1188, 1189, 6, 147, 6, 6, 6, 1195, + 4, 147, 147, 6, 6, 1201, 147, 7, 1204, 6, + 6, 6, 147, 145, 148, 1313, 5, 7, 6, 6, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 7, 57, 147, 59, 60, 1221, 62, 63, 64, 144, - 6, 67, 68, 5, 50, 6, 1232, 6, 1248, 1235, - 6, 6, 1238, 6, 147, 6, 1242, 6, 6, 6, - 1246, 894, 1248, 147, 147, 91, 92, 93, 7, 148, - 1256, 147, 147, 1259, 147, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 12, - 13, 710, 711, 139, 713, 6, 715, 716, 6, 6, - 719, 720, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 1302, 97, 94, 6, - 139, 6, 148, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 6, 57, 6, 59, 60, 6, 62, - 63, 64, 6, 6, 67, 68, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 776, 777, 778, - 65, 139, 147, 6, 148, 148, 148, 148, 91, 92, - 93, 6, 1005, 147, 147, 1008, 6, 6, 6, 4, - 6, 148, 6, 6, 6, 6, 6, 6, 6, 6, - 3, 4, 6, 147, 6, 147, 9, 10, 11, 6, - 6, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 6, 147, 6, 148, 845, 147, 6, 6, - 147, 6, 851, 46, 147, 147, 6, 147, 147, 6, - 859, 860, 861, 6, 6, 6, 865, 6, 6, 6, - 6, 870, 871, 872, 6, 836, 69, 70, 71, 72, - 73, 844, 3, 1096, 883, 78, 1221, 3, 81, 939, - 889, 1228, 359, 892, -1, -1, -1, 1110, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 911, 912, 913, -1, 139, 110, 111, 112, - 113, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 934, -1, 130, 131, 139, - -1, -1, 135, -1, -1, -1, -1, 140, -1, -1, - -1, 1164, 145, -1, 147, 148, -1, 121, 122, 123, + 50, 57, 6, 59, 60, 1231, 62, 63, 64, 6, + 6, 67, 68, 6, 148, 6, 1242, 6, 1258, 1245, + 6, 148, 1248, 149, 148, 6, 1252, 6, 899, 6, + 1256, 148, 1258, 148, 94, 91, 92, 93, 148, 6, + 6, 1267, 6, 6, 1270, 6, 97, 6, 6, 148, + 6, 6, 65, 6, 149, 149, 6, 714, 715, 148, + 717, 148, 719, 720, 149, 149, 723, 724, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 3, 4, 978, - 979, 980, 981, 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, 1014, -1, -1, -1, -1, - 46, -1, -1, -1, -1, -1, -1, 12, 13, -1, - 1029, -1, -1, 1246, -1, 1248, -1, -1, -1, -1, - -1, -1, -1, 69, 70, 71, 72, 73, -1, 6, - -1, -1, 78, -1, -1, 81, -1, -1, -1, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 6, 57, -1, 59, 60, -1, 62, 63, 64, - -1, -1, 67, 68, 110, 111, 112, 113, -1, 1302, - -1, -1, 1091, 6, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 130, 131, 91, 92, 93, 135, - -1, -1, -1, -1, 140, 1114, 1115, 1116, -1, 145, - -1, -1, 148, 3, 4, 5, -1, 7, -1, 9, + 134, 135, 6, 149, 6, 6, 140, 1313, 4, 6, + 149, 6, 6, 149, 6, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 6, + 6, 6, 6, 140, 6, 6, 6, 148, 6, 148, + 148, 6, 6, 780, 781, 782, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 1011, 148, 6, 1014, 140, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 6, + 3, 4, 6, 140, 148, 148, 9, 10, 11, 6, + 148, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 6, 850, 148, 6, 148, 6, 6, 856, + 6, 6, 6, 46, 6, 841, 1231, 864, 865, 866, + 849, 3, 3, 870, 1238, -1, 361, 945, 875, 876, + 877, -1, -1, -1, -1, -1, 69, 70, 71, 72, + 73, 888, 1103, -1, -1, 78, -1, 894, 81, -1, + 897, -1, -1, -1, -1, -1, 1117, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 916, + 917, 918, 919, -1, -1, -1, -1, 110, 111, 112, + 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 940, -1, -1, -1, -1, 131, 132, + 6, -1, -1, 136, -1, -1, -1, -1, 141, -1, + -1, 1172, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, 4, 984, 985, 986, + 987, 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, 1020, -1, -1, -1, -1, 46, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1036, + -1, -1, -1, -1, -1, 1256, -1, 1258, -1, -1, + -1, 69, 70, 71, 72, 73, -1, -1, -1, -1, + 78, 6, -1, 81, -1, -1, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, -1, -1, -1, -1, + -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, + -1, 1098, 1313, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 131, 132, -1, -1, -1, 136, -1, + -1, -1, -1, 141, 1121, 1122, 1123, 1124, 146, -1, + -1, 149, -1, 3, 4, 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, 37, 38, 39, - -1, 1160, 42, 148, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, -1, -1, 121, 122, 123, 124, + -1, 1168, 42, -1, 12, 13, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 6, -1, -1, -1, 139, -1, -1, 1206, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, 104, -1, 139, -1, -1, -1, - 110, 111, 112, 113, -1, -1, -1, 117, 118, 119, - 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 130, 131, -1, -1, -1, 135, -1, 137, 138, -1, - 140, -1, 142, -1, 144, 145, -1, 147, 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, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 1215, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, 67, + 68, -1, -1, -1, 104, -1, -1, -1, -1, -1, + 110, 111, 112, 113, -1, -1, -1, -1, 118, 119, + 120, 121, -1, 91, 92, 93, -1, -1, -1, -1, + -1, 131, 132, -1, -1, -1, 136, -1, 138, 139, + -1, 141, -1, 143, -1, 145, 146, -1, 148, 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, 149, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 46, -1, 12, 13, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 6, 147, -1, 149, 78, -1, -1, 81, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, 67, + 68, -1, -1, -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 46, -1, 12, 13, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, 69, 70, 71, 72, 73, 6, - -1, -1, -1, 78, -1, -1, 81, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, - 59, 60, -1, 62, 63, 64, -1, -1, 67, 68, - -1, -1, -1, -1, -1, 110, 111, 112, 113, -1, + -1, -1, -1, 91, 92, 93, -1, 131, 132, -1, + -1, -1, 136, -1, -1, -1, -1, 141, -1, 3, + 4, 5, 146, -1, 148, 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, 149, 46, -1, 12, 13, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, 67, + 68, -1, -1, -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, 130, 131, -1, -1, -1, - 135, -1, -1, -1, -1, 140, -1, 3, 4, 5, - 145, -1, 147, 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, 148, - 46, -1, 12, 13, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, 69, 70, 71, 72, 73, 6, -1, - -1, -1, 78, -1, -1, 81, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, - 60, -1, 62, 63, 64, -1, -1, 67, 68, -1, - -1, -1, -1, -1, 110, 111, 112, 113, -1, -1, + -1, -1, -1, 91, 92, 93, -1, 131, 132, -1, + -1, -1, 136, -1, -1, -1, -1, 141, -1, 3, + 4, -1, 146, -1, 148, 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, 149, 46, -1, 12, 13, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, 67, + 68, -1, -1, -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 91, 92, 93, 130, 131, -1, -1, -1, 135, - -1, -1, -1, -1, 140, -1, 3, 4, -1, 145, - -1, 147, 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, 148, 46, - -1, 12, 13, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, 69, 70, 71, 72, 73, 6, -1, -1, - -1, 78, -1, -1, 81, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, - -1, 62, 63, 64, -1, -1, 67, 68, -1, 6, - -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, + -1, -1, -1, 91, 92, 93, -1, 131, 132, -1, + -1, -1, 136, -1, -1, -1, -1, 141, -1, 3, + 4, -1, 146, -1, 148, 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, 149, 46, -1, 12, 13, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, + -1, 59, 60, -1, 62, 63, 64, -1, -1, 67, + 68, -1, 6, -1, -1, -1, 110, 111, 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 91, 92, 93, 130, 131, -1, -1, -1, 135, -1, - -1, -1, -1, 140, 8, 3, 4, -1, 145, -1, - 147, 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, 148, 46, -1, - -1, -1, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, 69, 70, 71, 72, 73, 8, -1, -1, -1, - 78, -1, -1, 81, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, - 8, -1, 110, 111, 112, 113, -1, 121, 122, 123, + -1, -1, -1, 91, 92, 93, -1, 131, 132, -1, + -1, -1, 136, -1, -1, 6, -1, 141, -1, 3, + 4, -1, 146, -1, 148, 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, 149, 46, -1, -1, -1, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 6, -1, -1, -1, 78, -1, -1, 81, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, 130, 131, -1, 139, -1, 135, -1, -1, - -1, -1, 140, 8, 3, 4, -1, 145, -1, 147, - 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, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - 69, 70, 71, 72, 73, 8, -1, -1, -1, 78, - -1, -1, 81, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 110, 111, 112, 113, -1, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, 130, 131, -1, 139, -1, 135, -1, -1, -1, - -1, 140, -1, 3, 4, -1, 145, -1, 147, 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, 65, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 46, -1, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, -1, 69, - 70, 71, 72, 73, -1, -1, -1, -1, 78, -1, - -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - 110, 111, 112, 113, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - 130, 131, 139, -1, -1, 135, -1, -1, -1, 146, - 140, 148, 3, 4, -1, 145, -1, 147, 9, 10, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + -1, -1, -1, -1, 8, -1, 110, 111, 112, 113, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, 131, 132, 140, + -1, -1, 136, -1, -1, -1, -1, 141, 8, 3, + 4, -1, 146, -1, 148, 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, -1, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, 69, 70, 71, 72, 73, + 8, -1, -1, -1, 78, -1, -1, 81, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, + -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, 131, 132, -1, + 140, -1, 136, -1, -1, -1, -1, 141, 8, 3, + 4, -1, 146, -1, 148, 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, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, -1, 69, 70, 71, 72, 73, + 8, -1, 3, 4, 78, -1, -1, 81, 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, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, -1, -1, 69, 70, - 71, 72, 73, 148, -1, 3, 4, 78, -1, -1, - 81, 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, 110, - 111, 112, 113, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, 130, - 131, 139, -1, -1, 135, -1, -1, -1, 146, 140, - 148, 3, 4, 5, 145, -1, 147, 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, 110, 111, 112, 113, 12, 13, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 130, 131, -1, -1, 139, 135, 141, -1, - -1, -1, 140, 146, -1, 143, -1, 145, -1, 147, + 31, 32, 33, 34, 8, -1, 110, 111, 112, 113, + -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, 131, 132, -1, + 140, -1, 136, -1, -1, -1, -1, 141, -1, 3, + 4, 5, 146, -1, 148, 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, 110, + 111, 112, 113, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + 131, 132, 140, -1, -1, 136, -1, -1, -1, -1, + 141, -1, -1, 144, -1, 146, -1, 148, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, + -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, 131, 132, 140, + -1, -1, 136, -1, -1, -1, 147, 141, 149, 3, + 4, -1, 146, -1, 148, 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, 12, 13, 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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, 60, -1, 62, 63, 64, -1, - -1, 67, 68, -1, -1, -1, -1, -1, 110, 111, - 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 91, 92, 93, 130, 131, - -1, -1, -1, 135, -1, -1, -1, -1, 140, -1, - 3, 4, -1, 145, -1, 147, 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, 3, 4, - -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, + -1, 67, 68, 65, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 110, 111, 112, 113, + -1, -1, -1, -1, -1, 91, 92, 93, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 131, 132, -1, + -1, -1, 136, -1, -1, -1, -1, 141, -1, -1, + 144, -1, 146, -1, 148, 110, 111, 112, 113, -1, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, -1, -1, 131, 132, 140, -1, + -1, 136, -1, -1, -1, -1, 141, -1, 3, 4, + -1, 146, -1, 148, 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, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - -1, -1, -1, -1, -1, 146, -1, 148, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, - 113, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 130, 131, 139, - -1, -1, 135, -1, -1, -1, -1, 140, 148, -1, - 143, -1, 145, -1, 147, 110, 111, 112, 113, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 46, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, -1, -1, 69, 70, 71, 72, 73, 149, + -1, 3, 4, 78, -1, -1, 81, 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, 110, 111, 112, 113, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, 130, 131, 139, -1, -1, - 135, -1, -1, -1, -1, 140, 148, 3, 4, -1, - 145, -1, 147, 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, + 132, 133, 134, 135, -1, -1, 131, 132, 140, -1, + -1, 136, 3, 4, 5, 147, 141, 149, 9, 10, + 11, 146, -1, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, 36, 37, 38, 39, -1, + -1, 42, -1, -1, -1, -1, -1, -1, 110, 111, + 112, 113, -1, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, 131, + 132, 140, -1, -1, 136, -1, -1, -1, -1, 141, + 149, -1, -1, -1, 146, -1, -1, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, 0, 1, 140, -1, 4, -1, 110, + 111, 112, 113, -1, 149, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, 69, 70, 71, 72, 73, 148, -1, - 3, 4, 78, -1, -1, 81, 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, 110, 111, 112, 113, 121, 122, + 131, 132, -1, -1, -1, 136, -1, -1, 35, -1, + 141, -1, -1, 40, 41, 146, 43, 44, -1, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, -1, + 57, 58, 59, 60, 61, 62, 63, 64, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, + 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + -1, -1, -1, 90, 91, 92, 93, -1, -1, 96, + -1, 98, -1, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 4, -1, -1, -1, 114, 115, 116, + 117, 12, 13, -1, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 35, -1, -1, -1, -1, 40, + 41, 149, 43, 44, -1, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, -1, 57, 58, 59, 60, + 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, + 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, + 81, -1, -1, 84, 85, -1, -1, -1, -1, 90, + 91, 92, 93, -1, -1, 96, -1, 98, -1, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, -1, + -1, -1, -1, 114, 115, 116, 117, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, 149, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + -1, -1, 149, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, + 149, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, -1, -1, 149, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, 130, 131, 139, -1, -1, 135, - 3, 4, 5, -1, 140, 148, 9, 10, 11, 145, - -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, 36, 37, 38, 39, -1, -1, 42, - -1, -1, -1, -1, -1, -1, -1, 110, 111, 112, - 113, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, 130, 131, 139, - -1, -1, 135, -1, -1, -1, -1, 140, 148, -1, - -1, -1, 145, -1, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - 0, 1, 139, -1, 4, -1, -1, 110, 111, 112, - 113, 148, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 130, 131, -1, - -1, -1, 135, -1, -1, 35, -1, 140, -1, -1, - 40, 41, 145, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, -1, 57, 58, 59, - 60, 61, 62, 63, 64, -1, 66, 67, 68, 69, - 70, 71, 72, 73, 74, -1, 76, 77, 78, 79, - 80, 81, -1, -1, 84, 85, 4, -1, -1, -1, - 90, 91, 92, 93, 12, 13, 96, -1, 98, -1, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - -1, -1, -1, -1, 114, 115, 116, 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, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, - 78, 79, 80, 81, -1, -1, 84, 85, -1, -1, - -1, -1, 90, 91, 92, 93, -1, -1, 96, -1, - 98, -1, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, -1, -1, -1, -1, 114, 115, 116, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, -1, -1, 148, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, -1, -1, 148, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - -1, -1, 148, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, - 148, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, -1, -1, 148, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, -1, -1, 148, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, -1, -1, 148, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - -1, -1, 148, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, - 148, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, -1, -1, 148, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, -1, -1, 148, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, -1, -1, 148, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - -1, -1, 148, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, - 148, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, -1, -1, 148, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, -1, -1, 148, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, -1, -1, 148, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, 146, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, 146, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, 146, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, 146, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, 146, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, 146, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, 146, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, 146, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, 146, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, -1, -1, -1, 146, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, - 146, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, -1, -1, -1, 146, 121, 122, 123, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, -1, -1, 149, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, 149, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + -1, -1, 149, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, + 149, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, -1, -1, 149, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, -1, -1, 149, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, 149, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + -1, -1, 149, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, + 149, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, -1, -1, 149, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, -1, -1, 149, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, -1, -1, 149, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + -1, -1, 149, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, + 149, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, -1, -1, 149, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, -1, -1, 149, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, 142, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 147, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, 147, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 147, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, 147, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 147, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, 147, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 147, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, 147, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, -1, -1, -1, + 147, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, -1, -1, -1, 147, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, -1, -1, -1, -1, 140, -1, -1, -1, -1, + -1, -1, 147, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, -1, -1, -1, 147, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, -1, -1, -1, 147, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, 143, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - -1, -1, 143, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, 143, 121, 122, 123, 124, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, -1, -1, 143, 121, + 135, -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, 143, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, -1, -1, 143, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, 143, 121, 122, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, -1, -1, - 143, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, 143, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, -1, -1, 143, 121, 122, 123, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, 143, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - -1, -1, 143, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, 143, 121, 122, 123, 124, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, -1, -1, 143, 121, + 135, -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, 143, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, -1, -1, 143, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, 143, 121, 122, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, -1, -1, - 143, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, 143, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, -1, -1, 143, 121, 122, 123, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, 143, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - -1, -1, 143, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, -1, -1, 143, 121, 122, 123, 124, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, -1, -1, 143, 121, + 135, -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, -1, - -1, 143, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, -1, -1, 143, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, -1, -1, 143, 121, 122, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, -1, -1, - 143, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, -1, -1, 143, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, -1, -1, 143, 121, 122, 123, + 133, 134, 135, -1, -1, -1, -1, 140, -1, -1, + -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, -1, -1, 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, -1, -1, 143, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - -1, -1, 143, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, + 134, 135, -1, -1, -1, -1, 140, -1, -1, -1, + 144, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, 141, 121, 122, 123, + 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 141, 121, 122, + 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, 141, 121, + 133, 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, 141, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - 141, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, 141, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, 141, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, 141, 121, 122, 123, + 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 141, 121, 122, + 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, 141, 121, + 133, 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, 141, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - 141, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, 141, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, 141, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, 141, 121, 122, 123, + 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 141, 121, 122, + 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, 141, 121, + 133, 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, 141, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - 141, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, 141, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, 141, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, 141, 121, 122, 123, + 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 141, 121, 122, + 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, 141, 121, + 133, 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, 141, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - 141, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, 141, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, 141, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, -1, + -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139, -1, 141, 121, 122, 123, + 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, -1, -1, -1, -1, 139, -1, 141, 121, 122, + 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, -1, -1, -1, -1, 139, -1, 141, 121, + 133, 134, 135, -1, -1, -1, -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, -1, -1, -1, -1, 139, -1, 141, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, -1, -1, -1, -1, 139, -1, - 141, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, -1, -1, -1, -1, 139, - -1, 141, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, -1, -1, -1, -1, - 139, -1, 141, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, -1, -1, -1, - -1, 139, -1, 141, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, -1, -1, - -1, -1, 139, -1, 141, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, -1, - -1, -1, -1, 139, -1, 141, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - -1, -1, -1, -1, 139 + 132, 133, 134, 135, -1, -1, -1, -1, 140, -1, + 142, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, -1, -1, -1, -1, 140, + -1, 142, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, -1, -1, -1, -1, + 140, -1, 142, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, -1, -1, -1, + -1, 140, -1, 142, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, -1, -1, + -1, -1, 140 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 1, 151, 152, 6, 0, 4, 12, 13, 35, + 0, 1, 152, 153, 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, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 84, 85, 90, 91, 92, 93, 96, 98, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 114, 115, 116, 153, 155, - 156, 174, 178, 183, 186, 187, 188, 189, 190, 191, - 192, 213, 214, 215, 216, 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, 104, 110, - 111, 112, 113, 117, 118, 119, 120, 130, 131, 135, - 137, 138, 140, 142, 144, 145, 147, 172, 173, 217, - 218, 230, 13, 52, 140, 6, 147, 6, 6, 6, - 140, 147, 140, 140, 75, 140, 147, 140, 140, 75, - 147, 140, 140, 56, 52, 52, 52, 52, 49, 52, - 54, 54, 46, 49, 52, 54, 49, 52, 54, 140, - 49, 140, 147, 130, 131, 140, 147, 219, 220, 219, - 147, 46, 49, 52, 147, 219, 4, 50, 59, 52, - 52, 49, 4, 104, 147, 4, 6, 49, 4, 4, - 4, 140, 140, 140, 4, 147, 226, 4, 140, 140, - 6, 142, 4, 4, 5, 147, 5, 147, 140, 140, - 140, 4, 142, 144, 149, 173, 147, 5, 230, 140, - 142, 140, 142, 140, 142, 140, 142, 140, 142, 140, - 142, 140, 142, 140, 142, 140, 142, 140, 142, 140, - 142, 140, 142, 140, 142, 140, 142, 140, 142, 140, - 142, 140, 142, 140, 142, 140, 142, 140, 142, 140, - 142, 140, 140, 140, 140, 7, 140, 4, 217, 217, - 217, 217, 143, 147, 217, 4, 96, 97, 4, 4, - 183, 184, 185, 217, 6, 6, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 139, 6, 6, 217, 5, 217, 217, 4, 46, 131, - 183, 192, 217, 224, 225, 217, 217, 140, 217, 225, - 217, 217, 140, 225, 217, 217, 131, 147, 217, 222, - 224, 140, 147, 140, 140, 5, 222, 223, 223, 223, - 140, 179, 180, 181, 182, 140, 140, 140, 4, 222, - 5, 219, 219, 219, 217, 217, 130, 131, 147, 147, - 219, 147, 147, 147, 130, 131, 140, 185, 219, 147, - 140, 147, 140, 140, 223, 222, 140, 4, 6, 142, - 142, 185, 6, 147, 142, 142, 6, 217, 217, 217, - 144, 217, 147, 99, 217, 217, 217, 6, 6, 185, - 6, 185, 4, 229, 230, 229, 229, 142, 217, 4, - 147, 157, 6, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 229, 229, 229, 229, 217, - 5, 142, 141, 7, 120, 225, 143, 7, 172, 173, - 144, 7, 142, 148, 46, 49, 52, 54, 178, 6, - 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, - 217, 217, 217, 217, 217, 6, 141, 146, 146, 141, - 142, 147, 217, 224, 8, 132, 146, 148, 141, 141, - 217, 141, 148, 141, 141, 217, 148, 141, 141, 147, - 148, 225, 132, 7, 217, 217, 217, 217, 7, 7, - 211, 211, 217, 140, 140, 140, 140, 217, 217, 217, - 141, 6, 146, 146, 146, 146, 219, 219, 184, 184, - 146, 217, 217, 217, 217, 196, 146, 185, 217, 217, - 217, 217, 7, 212, 7, 217, 6, 217, 217, 148, - 225, 217, 217, 141, 141, 141, 96, 146, 185, 147, - 8, 141, 143, 148, 148, 142, 144, 141, 141, 141, - 217, 143, 173, 217, 4, 86, 87, 88, 89, 148, - 160, 164, 167, 169, 170, 141, 143, 141, 143, 141, + 105, 106, 107, 108, 109, 114, 115, 116, 117, 154, + 156, 157, 175, 179, 184, 187, 188, 189, 190, 191, + 192, 193, 214, 215, 216, 217, 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, 104, + 110, 111, 112, 113, 118, 119, 120, 121, 131, 132, + 136, 138, 139, 141, 143, 145, 146, 148, 173, 174, + 218, 219, 231, 13, 52, 141, 6, 148, 6, 6, + 6, 141, 148, 141, 141, 75, 141, 148, 141, 141, + 75, 148, 141, 141, 56, 52, 52, 52, 52, 49, + 52, 54, 54, 46, 49, 52, 54, 49, 52, 54, + 141, 49, 141, 148, 131, 132, 141, 148, 220, 221, + 220, 148, 46, 49, 52, 148, 220, 4, 50, 59, + 52, 52, 49, 4, 104, 148, 4, 6, 49, 4, + 4, 4, 141, 141, 141, 4, 148, 227, 4, 141, + 141, 6, 143, 4, 4, 5, 148, 5, 148, 141, + 141, 141, 141, 4, 143, 145, 150, 174, 148, 5, + 231, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, - 143, 141, 143, 141, 143, 141, 143, 146, 146, 141, 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, - 143, 146, 146, 146, 146, 146, 146, 141, 146, 146, - 141, 141, 6, 146, 217, 222, 222, 148, 7, 144, - 172, 173, 230, 217, 6, 4, 4, 147, 227, 143, - 147, 147, 147, 147, 8, 6, 127, 154, 225, 217, - 7, 143, 147, 217, 217, 217, 224, 217, 224, 99, - 7, 7, 141, 7, 99, 7, 7, 141, 99, 7, - 7, 225, 148, 147, 217, 141, 148, 141, 141, 217, - 222, 4, 210, 6, 141, 175, 217, 230, 175, 175, - 175, 141, 141, 141, 144, 222, 219, 217, 217, 148, - 148, 217, 146, 146, 146, 76, 82, 83, 206, 207, - 219, 148, 193, 141, 148, 141, 141, 217, 6, 217, - 141, 143, 143, 148, 143, 143, 7, 7, 7, 144, - 217, 148, 217, 217, 7, 144, 217, 4, 7, 7, - 7, 143, 144, 173, 229, 148, 161, 140, 140, 147, - 171, 6, 217, 217, 217, 217, 217, 217, 217, 217, - 225, 229, 217, 143, 6, 6, 143, 4, 96, 97, - 217, 6, 6, 6, 7, 142, 226, 228, 6, 225, - 225, 225, 225, 217, 127, 229, 141, 146, 219, 225, - 148, 8, 52, 222, 222, 7, 222, 52, 54, 222, - 222, 7, 54, 222, 222, 148, 225, 6, 7, 7, - 7, 7, 65, 209, 6, 7, 141, 141, 141, 141, - 7, 7, 7, 4, 146, 146, 146, 146, 148, 219, - 219, 219, 6, 147, 140, 148, 207, 146, 206, 7, - 6, 7, 7, 6, 147, 6, 6, 52, 6, 6, - 222, 222, 222, 4, 146, 8, 8, 141, 4, 4, - 143, 147, 147, 147, 6, 4, 6, 140, 217, 217, - 221, 222, 147, 141, 143, 141, 143, 141, 143, 141, - 143, 141, 141, 141, 172, 7, 172, 173, 144, 7, - 6, 226, 217, 146, 148, 148, 148, 148, 148, 6, - 6, 154, 217, 6, 148, 217, 147, 59, 177, 177, - 222, 6, 147, 147, 6, 6, 222, 147, 6, 6, - 148, 5, 222, 222, 222, 4, 6, 222, 7, 7, - 7, 7, 222, 222, 222, 6, 7, 5, 217, 217, - 217, 147, 146, 148, 146, 148, 146, 148, 217, 222, - 217, 217, 219, 148, 5, 147, 222, 147, 147, 222, - 225, 147, 6, 6, 95, 217, 217, 217, 6, 7, - 144, 222, 222, 222, 173, 158, 217, 146, 146, 146, - 148, 159, 217, 222, 230, 217, 6, 4, 227, 6, - 143, 226, 6, 6, 6, 6, 229, 146, 143, 217, - 219, 6, 6, 6, 217, 217, 6, 217, 5, 6, - 6, 99, 176, 217, 6, 222, 222, 222, 222, 6, - 4, 208, 6, 217, 230, 141, 148, 141, 146, 148, - 184, 219, 6, 197, 219, 6, 198, 219, 6, 199, - 148, 146, 141, 148, 146, 6, 131, 219, 6, 219, - 219, 6, 148, 217, 222, 146, 148, 8, 148, 141, - 147, 217, 230, 4, 146, 146, 146, 141, 146, 217, - 217, 222, 147, 146, 148, 6, 6, 6, 7, 6, - 144, 6, 217, 148, 148, 148, 148, 5, 50, 6, - 6, 6, 6, 6, 147, 6, 6, 6, 6, 147, - 217, 148, 146, 147, 146, 147, 146, 147, 6, 222, - 7, 147, 217, 146, 146, 146, 6, 148, 94, 217, - 217, 225, 6, 6, 222, 222, 222, 162, 217, 146, - 146, 221, 217, 6, 226, 97, 146, 6, 6, 6, - 6, 6, 147, 221, 184, 146, 148, 217, 219, 206, - 217, 219, 206, 217, 219, 206, 146, 148, 222, 185, - 148, 219, 225, 219, 217, 148, 148, 148, 148, 148, - 148, 147, 217, 217, 148, 6, 217, 217, 148, 148, - 217, 148, 146, 148, 148, 146, 148, 148, 146, 148, - 222, 6, 65, 148, 194, 147, 146, 148, 146, 6, - 6, 6, 6, 6, 159, 141, 146, 6, 147, 146, - 148, 4, 208, 148, 6, 200, 217, 6, 6, 201, - 217, 6, 6, 202, 217, 6, 148, 217, 206, 185, - 225, 6, 219, 225, 148, 165, 217, 221, 217, 6, - 147, 148, 147, 148, 147, 148, 6, 6, 148, 148, - 195, 148, 146, 148, 6, 147, 141, 148, 148, 206, - 6, 203, 206, 6, 204, 206, 6, 205, 206, 6, - 225, 6, 163, 229, 168, 147, 6, 148, 147, 148, - 147, 148, 147, 148, 148, 146, 148, 147, 221, 6, - 206, 6, 206, 6, 206, 6, 229, 6, 166, 229, - 148, 148, 148, 148, 146, 148, 6, 6, 6, 6, - 229, 6 + 143, 141, 143, 141, 143, 141, 143, 141, 143, 141, + 143, 141, 143, 141, 141, 141, 141, 7, 141, 4, + 218, 218, 218, 218, 144, 148, 218, 4, 96, 97, + 4, 4, 184, 185, 186, 218, 6, 6, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 140, 6, 6, 218, 5, 218, 218, 4, + 46, 132, 184, 193, 218, 225, 226, 218, 218, 141, + 218, 226, 218, 218, 141, 226, 218, 218, 132, 148, + 218, 223, 225, 141, 148, 141, 141, 5, 223, 224, + 224, 224, 141, 180, 181, 182, 183, 141, 141, 141, + 4, 223, 5, 220, 220, 220, 218, 218, 131, 132, + 148, 148, 220, 148, 148, 148, 131, 132, 141, 186, + 220, 148, 141, 148, 141, 141, 224, 223, 141, 4, + 6, 143, 143, 186, 6, 148, 143, 143, 6, 218, + 218, 218, 145, 218, 148, 99, 218, 218, 218, 6, + 6, 186, 6, 186, 4, 230, 231, 230, 230, 230, + 143, 218, 4, 148, 158, 6, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 230, 230, + 230, 230, 218, 5, 143, 142, 7, 121, 226, 144, + 7, 173, 174, 145, 7, 143, 149, 46, 49, 52, + 54, 179, 6, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 6, 142, + 147, 147, 142, 143, 148, 218, 225, 8, 133, 147, + 149, 142, 142, 218, 142, 149, 142, 142, 218, 149, + 142, 142, 148, 149, 226, 133, 7, 218, 218, 218, + 218, 7, 7, 212, 212, 218, 141, 141, 141, 141, + 218, 218, 218, 142, 6, 147, 147, 147, 147, 220, + 220, 185, 185, 147, 218, 218, 218, 218, 197, 147, + 186, 218, 218, 218, 218, 7, 213, 7, 218, 6, + 218, 218, 149, 226, 218, 218, 142, 142, 142, 96, + 147, 186, 148, 8, 142, 144, 149, 149, 143, 145, + 142, 142, 142, 142, 218, 144, 174, 218, 4, 86, + 87, 88, 89, 149, 161, 165, 168, 170, 171, 142, + 144, 142, 144, 142, 144, 142, 144, 142, 144, 142, + 144, 142, 144, 142, 144, 142, 144, 142, 144, 142, + 144, 147, 147, 142, 144, 142, 144, 142, 144, 142, + 144, 142, 144, 142, 144, 147, 147, 147, 147, 147, + 147, 142, 147, 147, 142, 142, 6, 147, 218, 223, + 223, 149, 7, 145, 173, 174, 231, 218, 6, 4, + 4, 148, 228, 144, 148, 148, 148, 148, 8, 6, + 128, 155, 226, 218, 7, 144, 148, 218, 218, 218, + 225, 218, 225, 99, 7, 7, 142, 7, 99, 7, + 7, 142, 99, 7, 7, 226, 149, 148, 218, 142, + 149, 142, 142, 218, 223, 4, 211, 6, 142, 176, + 218, 231, 176, 176, 176, 142, 142, 142, 145, 223, + 220, 218, 218, 149, 149, 218, 147, 147, 147, 76, + 82, 83, 207, 208, 220, 149, 194, 142, 149, 142, + 142, 218, 6, 218, 142, 144, 144, 149, 144, 144, + 7, 7, 7, 145, 218, 149, 218, 218, 7, 145, + 218, 4, 7, 7, 7, 7, 144, 145, 174, 230, + 149, 162, 141, 141, 148, 172, 6, 218, 218, 218, + 218, 218, 218, 218, 218, 226, 230, 218, 144, 6, + 6, 144, 4, 96, 97, 218, 6, 6, 6, 7, + 143, 227, 229, 6, 226, 226, 226, 226, 218, 128, + 230, 142, 147, 220, 226, 149, 8, 52, 223, 223, + 7, 223, 52, 54, 223, 223, 7, 54, 223, 223, + 149, 226, 6, 7, 7, 7, 7, 65, 210, 6, + 7, 142, 142, 142, 142, 7, 7, 7, 4, 147, + 147, 147, 147, 149, 220, 220, 220, 6, 148, 141, + 149, 208, 147, 207, 7, 6, 7, 7, 6, 148, + 6, 6, 52, 6, 6, 223, 223, 223, 4, 147, + 8, 8, 142, 4, 4, 144, 148, 148, 148, 148, + 6, 4, 6, 141, 218, 218, 222, 223, 148, 142, + 144, 142, 144, 142, 144, 142, 144, 142, 142, 142, + 173, 7, 173, 174, 145, 7, 6, 227, 218, 147, + 149, 149, 149, 149, 149, 6, 6, 155, 218, 6, + 149, 218, 148, 59, 178, 178, 223, 6, 148, 148, + 6, 6, 223, 148, 6, 6, 149, 5, 223, 223, + 223, 4, 6, 223, 7, 7, 7, 7, 223, 223, + 223, 6, 7, 5, 218, 218, 218, 148, 147, 149, + 147, 149, 147, 149, 218, 223, 218, 218, 220, 149, + 5, 148, 223, 148, 148, 223, 226, 148, 6, 6, + 95, 218, 218, 218, 6, 7, 145, 223, 223, 223, + 223, 174, 159, 218, 147, 147, 147, 149, 160, 218, + 223, 231, 218, 6, 4, 228, 6, 144, 227, 6, + 6, 6, 6, 230, 147, 144, 218, 220, 6, 6, + 6, 218, 218, 6, 218, 5, 6, 6, 99, 177, + 218, 6, 223, 223, 223, 223, 6, 4, 209, 6, + 218, 231, 142, 149, 142, 147, 149, 185, 220, 6, + 198, 220, 6, 199, 220, 6, 200, 149, 147, 142, + 149, 147, 6, 132, 220, 6, 220, 220, 6, 149, + 218, 223, 147, 149, 8, 149, 142, 148, 218, 231, + 4, 147, 147, 147, 147, 142, 147, 218, 218, 223, + 148, 147, 149, 6, 6, 6, 7, 6, 145, 6, + 218, 149, 149, 149, 149, 5, 50, 6, 6, 6, + 6, 6, 148, 6, 6, 6, 6, 148, 218, 149, + 147, 148, 147, 148, 147, 148, 6, 223, 7, 148, + 218, 147, 147, 147, 6, 149, 94, 218, 218, 226, + 6, 6, 223, 223, 223, 223, 163, 218, 147, 147, + 222, 218, 6, 227, 97, 147, 6, 6, 6, 6, + 6, 148, 222, 185, 147, 149, 218, 220, 207, 218, + 220, 207, 218, 220, 207, 147, 149, 223, 186, 149, + 220, 226, 220, 218, 149, 149, 149, 149, 149, 149, + 149, 148, 218, 218, 149, 6, 218, 218, 149, 149, + 218, 149, 147, 149, 149, 147, 149, 149, 147, 149, + 223, 6, 65, 149, 195, 148, 147, 149, 147, 6, + 6, 6, 6, 6, 6, 160, 142, 147, 6, 148, + 147, 149, 4, 209, 149, 6, 201, 218, 6, 6, + 202, 218, 6, 6, 203, 218, 6, 149, 218, 207, + 186, 226, 6, 220, 226, 149, 166, 218, 222, 218, + 6, 148, 149, 148, 149, 148, 149, 6, 6, 149, + 149, 196, 149, 147, 149, 6, 148, 142, 149, 149, + 207, 6, 204, 207, 6, 205, 207, 6, 206, 207, + 6, 226, 6, 164, 230, 169, 148, 6, 149, 148, + 149, 148, 149, 148, 149, 149, 147, 149, 148, 222, + 6, 207, 6, 207, 6, 207, 6, 230, 6, 167, + 230, 149, 149, 149, 149, 147, 149, 6, 6, 6, + 6, 230, 6 }; #define yyerrok (yyerrstatus = 0) @@ -3084,7 +3008,7 @@ while (YYID (0)) we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ @@ -3195,17 +3119,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) #else static void -yy_stack_print (bottom, top) - yytype_int16 *bottom; - yytype_int16 *top; +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; #endif { YYFPRINTF (stderr, "Stack now"); - for (; bottom <= top; ++bottom) - YYFPRINTF (stderr, " %d", *bottom); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } YYFPRINTF (stderr, "\n"); } @@ -3239,11 +3166,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - fprintf (stderr, " $%d = ", yyi + 1); + YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - fprintf (stderr, "\n"); + YYFPRINTF (stderr, "\n"); } } @@ -3523,10 +3450,8 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } - /* Prevent warnings from -Wmissing-prototypes. */ - #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -3542,11 +3467,10 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - -/* The look-ahead symbol. */ +/* The lookahead symbol. */ int yychar; -/* The semantic value of the look-ahead symbol. */ +/* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ @@ -3554,9 +3478,9 @@ int yynerrs; -/*----------. -| yyparse. | -`----------*/ +/*-------------------------. +| yyparse or yypush_parse. | +`-------------------------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -3580,66 +3504,68 @@ yyparse () #endif #endif { - - int yystate; - int yyn; - int yyresult; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - /* Look-ahead token as an internal (translated) token number. */ - int yytoken = 0; -#if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; - char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; -#endif - /* Three stacks and their tools: - `yyss': related to states, - `yyvs': related to semantic values, - `yyls': related to locations. - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss = yyssa; - yytype_int16 *yyssp; + /* The stacks and their tools: + `yyss': related to states. + `yyvs': related to semantic values. - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs = yyvsa; - YYSTYPE *yyvsp; + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; -#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - - YYSIZE_T yystacksize = YYINITDEPTH; + YYSIZE_T yystacksize; + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; + yytoken = 0; + yyss = yyssa; + yyvs = yyvsa; + yystacksize = YYINITDEPTH; + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss; yyvsp = yyvs; @@ -3669,7 +3595,6 @@ yyparse () YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; - /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -3677,7 +3602,6 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); yyss = yyss1; @@ -3700,9 +3624,8 @@ yyparse () (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss); - YYSTACK_RELOCATE (yyvs); - + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -3713,7 +3636,6 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -3723,6 +3645,9 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + if (yystate == YYFINAL) + YYACCEPT; + goto yybackup; /*-----------. @@ -3731,16 +3656,16 @@ yyparse () yybackup: /* Do appropriate processing given the current state. Read a - look-ahead token if we need one and don't already have one. */ + lookahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to look-ahead token. */ + /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a look-ahead token if don't already have one. */ + /* Not known => get a lookahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -3772,20 +3697,16 @@ yybackup: goto yyreduce; } - if (yyn == YYFINAL) - YYACCEPT; - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; + /* Discard the shifted token. */ + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -3825,91 +3746,127 @@ yyreduce: switch (yyn) { case 3: + +/* Line 1455 of yacc.c */ #line 157 "Gmsh.y" { yyerrok; return 1; ;} break; case 6: + +/* Line 1455 of yacc.c */ #line 168 "Gmsh.y" { return 1; ;} break; case 7: + +/* Line 1455 of yacc.c */ #line 169 "Gmsh.y" { return 1; ;} break; case 8: + +/* Line 1455 of yacc.c */ #line 170 "Gmsh.y" { return 1; ;} break; case 9: + +/* Line 1455 of yacc.c */ #line 171 "Gmsh.y" { return 1; ;} break; case 10: + +/* Line 1455 of yacc.c */ #line 172 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 11: + +/* Line 1455 of yacc.c */ #line 173 "Gmsh.y" { return 1; ;} break; case 12: + +/* Line 1455 of yacc.c */ #line 174 "Gmsh.y" { return 1; ;} break; case 13: + +/* Line 1455 of yacc.c */ #line 175 "Gmsh.y" { return 1; ;} break; case 14: + +/* Line 1455 of yacc.c */ #line 176 "Gmsh.y" { List_Delete((yyvsp[(1) - (1)].l)); return 1; ;} break; case 15: + +/* Line 1455 of yacc.c */ #line 177 "Gmsh.y" { return 1; ;} break; case 16: + +/* Line 1455 of yacc.c */ #line 178 "Gmsh.y" { return 1; ;} break; case 17: + +/* Line 1455 of yacc.c */ #line 179 "Gmsh.y" { return 1; ;} break; case 18: + +/* Line 1455 of yacc.c */ #line 180 "Gmsh.y" { return 1; ;} break; case 19: + +/* Line 1455 of yacc.c */ #line 181 "Gmsh.y" { return 1; ;} break; case 20: + +/* Line 1455 of yacc.c */ #line 182 "Gmsh.y" { return 1; ;} break; case 21: + +/* Line 1455 of yacc.c */ #line 183 "Gmsh.y" { return 1; ;} break; case 22: + +/* Line 1455 of yacc.c */ #line 188 "Gmsh.y" { (yyval.c) = (char*)"w"; @@ -3917,6 +3874,8 @@ yyreduce: break; case 23: + +/* Line 1455 of yacc.c */ #line 192 "Gmsh.y" { (yyval.c) = (char*)"a"; @@ -3924,6 +3883,8 @@ yyreduce: break; case 24: + +/* Line 1455 of yacc.c */ #line 199 "Gmsh.y" { Msg::Direct((yyvsp[(3) - (5)].c)); @@ -3932,6 +3893,8 @@ yyreduce: break; case 25: + +/* Line 1455 of yacc.c */ #line 204 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(6) - (7)].c)); @@ -3949,6 +3912,8 @@ yyreduce: break; case 26: + +/* Line 1455 of yacc.c */ #line 218 "Gmsh.y" { char tmpstring[1024]; @@ -3965,6 +3930,8 @@ yyreduce: break; case 27: + +/* Line 1455 of yacc.c */ #line 231 "Gmsh.y" { char tmpstring[1024]; @@ -3991,6 +3958,8 @@ yyreduce: break; case 28: + +/* Line 1455 of yacc.c */ #line 259 "Gmsh.y" { #if defined(HAVE_POST) @@ -4008,6 +3977,8 @@ yyreduce: break; case 29: + +/* Line 1455 of yacc.c */ #line 273 "Gmsh.y" { #if defined(HAVE_POST) @@ -4022,6 +3993,8 @@ yyreduce: break; case 30: + +/* Line 1455 of yacc.c */ #line 284 "Gmsh.y" { #if defined(HAVE_POST) @@ -4036,6 +4009,8 @@ yyreduce: break; case 31: + +/* Line 1455 of yacc.c */ #line 298 "Gmsh.y" { #if defined(HAVE_POST) @@ -4045,26 +4020,36 @@ yyreduce: break; case 37: + +/* Line 1455 of yacc.c */ #line 312 "Gmsh.y" { ViewCoord.push_back((yyvsp[(1) - (1)].d)); ;} break; case 38: + +/* Line 1455 of yacc.c */ #line 314 "Gmsh.y" { ViewCoord.push_back((yyvsp[(3) - (3)].d)); ;} break; case 39: + +/* Line 1455 of yacc.c */ #line 319 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(1) - (1)].d)); ;} break; case 40: + +/* Line 1455 of yacc.c */ #line 321 "Gmsh.y" { if(ViewValueList) ViewValueList->push_back((yyvsp[(3) - (3)].d)); ;} break; case 41: + +/* Line 1455 of yacc.c */ #line 326 "Gmsh.y" { #if defined(HAVE_POST) @@ -4172,6 +4157,8 @@ yyreduce: break; case 42: + +/* Line 1455 of yacc.c */ #line 430 "Gmsh.y" { #if defined(HAVE_POST) @@ -4185,6 +4172,8 @@ yyreduce: break; case 43: + +/* Line 1455 of yacc.c */ #line 440 "Gmsh.y" { #if defined(HAVE_POST) @@ -4194,6 +4183,8 @@ yyreduce: break; case 44: + +/* Line 1455 of yacc.c */ #line 449 "Gmsh.y" { #if defined(HAVE_POST) @@ -4204,6 +4195,8 @@ yyreduce: break; case 45: + +/* Line 1455 of yacc.c */ #line 456 "Gmsh.y" { #if defined(HAVE_POST) @@ -4214,6 +4207,8 @@ yyreduce: break; case 46: + +/* Line 1455 of yacc.c */ #line 466 "Gmsh.y" { #if defined(HAVE_POST) @@ -4226,6 +4221,8 @@ yyreduce: break; case 47: + +/* Line 1455 of yacc.c */ #line 475 "Gmsh.y" { #if defined(HAVE_POST) @@ -4235,6 +4232,8 @@ yyreduce: break; case 48: + +/* Line 1455 of yacc.c */ #line 484 "Gmsh.y" { #if defined(HAVE_POST) @@ -4245,6 +4244,8 @@ yyreduce: break; case 49: + +/* Line 1455 of yacc.c */ #line 491 "Gmsh.y" { #if defined(HAVE_POST) @@ -4255,6 +4256,8 @@ yyreduce: break; case 50: + +/* Line 1455 of yacc.c */ #line 501 "Gmsh.y" { #if defined(HAVE_POST) @@ -4266,6 +4269,8 @@ yyreduce: break; case 51: + +/* Line 1455 of yacc.c */ #line 509 "Gmsh.y" { #if defined(HAVE_POST) @@ -4275,6 +4280,8 @@ yyreduce: break; case 52: + +/* Line 1455 of yacc.c */ #line 519 "Gmsh.y" { #if defined(HAVE_POST) @@ -4294,6 +4301,8 @@ yyreduce: break; case 53: + +/* Line 1455 of yacc.c */ #line 538 "Gmsh.y" { #if defined(HAVE_POST) @@ -4313,6 +4322,8 @@ yyreduce: break; case 54: + +/* Line 1455 of yacc.c */ #line 557 "Gmsh.y" { #if defined(HAVE_POST) @@ -4322,47 +4333,65 @@ yyreduce: break; case 55: + +/* Line 1455 of yacc.c */ #line 563 "Gmsh.y" { ;} break; case 56: + +/* Line 1455 of yacc.c */ #line 570 "Gmsh.y" { (yyval.i) = 0; ;} break; case 57: + +/* Line 1455 of yacc.c */ #line 571 "Gmsh.y" { (yyval.i) = 1; ;} break; case 58: + +/* Line 1455 of yacc.c */ #line 572 "Gmsh.y" { (yyval.i) = 2; ;} break; case 59: + +/* Line 1455 of yacc.c */ #line 573 "Gmsh.y" { (yyval.i) = 3; ;} break; case 60: + +/* Line 1455 of yacc.c */ #line 574 "Gmsh.y" { (yyval.i) = 4; ;} break; case 61: + +/* Line 1455 of yacc.c */ #line 578 "Gmsh.y" { (yyval.i) = 1; ;} break; case 62: + +/* Line 1455 of yacc.c */ #line 579 "Gmsh.y" { (yyval.i) = -1; ;} break; case 63: + +/* Line 1455 of yacc.c */ #line 587 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -4388,6 +4417,8 @@ yyreduce: break; case 64: + +/* Line 1455 of yacc.c */ #line 609 "Gmsh.y" { int index = (int)(yyvsp[(3) - (7)].d); @@ -4418,6 +4449,8 @@ yyreduce: break; case 65: + +/* Line 1455 of yacc.c */ #line 636 "Gmsh.y" { if(List_Nbr((yyvsp[(4) - (9)].l)) != List_Nbr((yyvsp[(8) - (9)].l))){ @@ -4461,6 +4494,8 @@ yyreduce: break; case 66: + +/* Line 1455 of yacc.c */ #line 676 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -4474,6 +4509,8 @@ yyreduce: break; case 67: + +/* Line 1455 of yacc.c */ #line 686 "Gmsh.y" { // appends to the list @@ -4485,6 +4522,8 @@ yyreduce: break; case 68: + +/* Line 1455 of yacc.c */ #line 694 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -4496,6 +4535,8 @@ yyreduce: break; case 69: + +/* Line 1455 of yacc.c */ #line 702 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -4511,6 +4552,8 @@ yyreduce: break; case 70: + +/* Line 1455 of yacc.c */ #line 714 "Gmsh.y" { gmsh_yystringsymbols[(yyvsp[(1) - (4)].c)] = std::string((yyvsp[(3) - (4)].c)); @@ -4520,6 +4563,8 @@ yyreduce: break; case 71: + +/* Line 1455 of yacc.c */ #line 723 "Gmsh.y" { std::string tmp((yyvsp[(5) - (6)].c)); @@ -4529,6 +4574,8 @@ yyreduce: break; case 72: + +/* Line 1455 of yacc.c */ #line 729 "Gmsh.y" { std::string tmp((yyvsp[(8) - (9)].c)); @@ -4538,6 +4585,8 @@ yyreduce: break; case 73: + +/* Line 1455 of yacc.c */ #line 738 "Gmsh.y" { double d = 0.; @@ -4559,6 +4608,8 @@ yyreduce: break; case 74: + +/* Line 1455 of yacc.c */ #line 756 "Gmsh.y" { double d = 0.; @@ -4580,6 +4631,8 @@ yyreduce: break; case 75: + +/* Line 1455 of yacc.c */ #line 774 "Gmsh.y" { double d = 0.; @@ -4592,6 +4645,8 @@ yyreduce: break; case 76: + +/* Line 1455 of yacc.c */ #line 783 "Gmsh.y" { double d = 0.; @@ -4604,6 +4659,8 @@ yyreduce: break; case 77: + +/* Line 1455 of yacc.c */ #line 795 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (8)].c), 0, (yyvsp[(5) - (8)].c), (yyvsp[(7) - (8)].u)); @@ -4612,6 +4669,8 @@ yyreduce: break; case 78: + +/* Line 1455 of yacc.c */ #line 800 "Gmsh.y" { ColorOption(GMSH_SET|GMSH_GUI, (yyvsp[(1) - (11)].c), (int)(yyvsp[(3) - (11)].d), (yyvsp[(8) - (11)].c), (yyvsp[(10) - (11)].u)); @@ -4620,6 +4679,8 @@ yyreduce: break; case 79: + +/* Line 1455 of yacc.c */ #line 808 "Gmsh.y" { GmshColorTable *ct = GetColorTable(0); @@ -4643,6 +4704,8 @@ yyreduce: break; case 80: + +/* Line 1455 of yacc.c */ #line 828 "Gmsh.y" { GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (9)].d)); @@ -4666,6 +4729,8 @@ yyreduce: break; case 81: + +/* Line 1455 of yacc.c */ #line 851 "Gmsh.y" { #if defined(HAVE_MESH) @@ -4678,6 +4743,8 @@ yyreduce: break; case 82: + +/* Line 1455 of yacc.c */ #line 860 "Gmsh.y" { #if defined(HAVE_MESH) @@ -4689,6 +4756,8 @@ yyreduce: break; case 83: + +/* Line 1455 of yacc.c */ #line 868 "Gmsh.y" { #if defined(HAVE_MESH) @@ -4714,6 +4783,8 @@ yyreduce: break; case 84: + +/* Line 1455 of yacc.c */ #line 890 "Gmsh.y" { #if defined(HAVE_MESH) @@ -4740,6 +4811,8 @@ yyreduce: break; case 85: + +/* Line 1455 of yacc.c */ #line 913 "Gmsh.y" { #if defined(HAVE_MESH) @@ -4768,6 +4841,8 @@ yyreduce: break; case 86: + +/* Line 1455 of yacc.c */ #line 941 "Gmsh.y" { #if defined(HAVE_POST) @@ -4783,6 +4858,8 @@ yyreduce: break; case 87: + +/* Line 1455 of yacc.c */ #line 953 "Gmsh.y" { #if defined(HAVE_POST) @@ -4798,6 +4875,8 @@ yyreduce: break; case 88: + +/* Line 1455 of yacc.c */ #line 970 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(1) - (1)].d); @@ -4805,6 +4884,8 @@ yyreduce: break; case 89: + +/* Line 1455 of yacc.c */ #line 974 "Gmsh.y" { (yyval.i) = GModel::current()->setPhysicalName @@ -4815,6 +4896,8 @@ yyreduce: break; case 90: + +/* Line 1455 of yacc.c */ #line 984 "Gmsh.y" { (yyval.l) = 0; @@ -4822,6 +4905,8 @@ yyreduce: break; case 91: + +/* Line 1455 of yacc.c */ #line 988 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(Vertex*)); @@ -4835,6 +4920,8 @@ yyreduce: break; case 92: + +/* Line 1455 of yacc.c */ #line 1000 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = 0.; @@ -4842,6 +4929,8 @@ yyreduce: break; case 93: + +/* Line 1455 of yacc.c */ #line 1004 "Gmsh.y" { for(int i = 0; i < 4; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; @@ -4849,6 +4938,8 @@ yyreduce: break; case 94: + +/* Line 1455 of yacc.c */ #line 1014 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -4875,6 +4966,8 @@ yyreduce: break; case 95: + +/* Line 1455 of yacc.c */ #line 1037 "Gmsh.y" { curPhysDim = 0; @@ -4882,6 +4975,8 @@ yyreduce: break; case 96: + +/* Line 1455 of yacc.c */ #line 1041 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); @@ -4901,6 +4996,8 @@ yyreduce: break; case 97: + +/* Line 1455 of yacc.c */ #line 1057 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -4923,6 +5020,8 @@ yyreduce: break; case 98: + +/* Line 1455 of yacc.c */ #line 1079 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -4944,6 +5043,8 @@ yyreduce: break; case 99: + +/* Line 1455 of yacc.c */ #line 1097 "Gmsh.y" { for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -4968,6 +5069,8 @@ yyreduce: break; case 100: + +/* Line 1455 of yacc.c */ #line 1119 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -4989,6 +5092,8 @@ yyreduce: break; case 101: + +/* Line 1455 of yacc.c */ #line 1137 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); @@ -5022,6 +5127,8 @@ yyreduce: break; case 102: + +/* Line 1455 of yacc.c */ #line 1167 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); @@ -5055,6 +5162,8 @@ yyreduce: break; case 103: + +/* Line 1455 of yacc.c */ #line 1197 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -5076,6 +5185,8 @@ yyreduce: break; case 104: + +/* Line 1455 of yacc.c */ #line 1215 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -5097,6 +5208,8 @@ yyreduce: break; case 105: + +/* Line 1455 of yacc.c */ #line 1233 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); @@ -5126,6 +5239,8 @@ yyreduce: break; case 106: + +/* Line 1455 of yacc.c */ #line 1259 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); @@ -5146,6 +5261,8 @@ yyreduce: break; case 107: + +/* Line 1455 of yacc.c */ #line 1276 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); @@ -5165,6 +5282,8 @@ yyreduce: break; case 108: + +/* Line 1455 of yacc.c */ #line 1292 "Gmsh.y" { curPhysDim = 1; @@ -5172,6 +5291,8 @@ yyreduce: break; case 109: + +/* Line 1455 of yacc.c */ #line 1296 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); @@ -5191,6 +5312,8 @@ yyreduce: break; case 110: + +/* Line 1455 of yacc.c */ #line 1315 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); @@ -5212,6 +5335,8 @@ yyreduce: break; case 111: + +/* Line 1455 of yacc.c */ #line 1333 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d), type = 0; @@ -5254,6 +5379,8 @@ yyreduce: break; case 112: + +/* Line 1455 of yacc.c */ #line 1372 "Gmsh.y" { myGmshSurface = 0; @@ -5263,6 +5390,8 @@ yyreduce: break; case 113: + +/* Line 1455 of yacc.c */ #line 1378 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); @@ -5272,6 +5401,8 @@ yyreduce: break; case 114: + +/* Line 1455 of yacc.c */ #line 1384 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); @@ -5282,6 +5413,8 @@ yyreduce: break; case 115: + +/* Line 1455 of yacc.c */ #line 1391 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -5310,6 +5443,8 @@ yyreduce: break; case 116: + +/* Line 1455 of yacc.c */ #line 1416 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -5338,6 +5473,8 @@ yyreduce: break; case 117: + +/* Line 1455 of yacc.c */ #line 1441 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); @@ -5357,6 +5494,8 @@ yyreduce: break; case 118: + +/* Line 1455 of yacc.c */ #line 1457 "Gmsh.y" { int num = (int)(yyvsp[(4) - (9)].d); @@ -5378,6 +5517,8 @@ yyreduce: break; case 119: + +/* Line 1455 of yacc.c */ #line 1476 "Gmsh.y" { int num = (int)(yyvsp[(4) - (13)].d); @@ -5412,6 +5553,8 @@ yyreduce: break; case 120: + +/* Line 1455 of yacc.c */ #line 1507 "Gmsh.y" { curPhysDim = 2; @@ -5419,6 +5562,8 @@ yyreduce: break; case 121: + +/* Line 1455 of yacc.c */ #line 1511 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); @@ -5438,6 +5583,8 @@ yyreduce: break; case 122: + +/* Line 1455 of yacc.c */ #line 1531 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); @@ -5459,6 +5606,8 @@ yyreduce: break; case 123: + +/* Line 1455 of yacc.c */ #line 1549 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); @@ -5479,6 +5628,8 @@ yyreduce: break; case 124: + +/* Line 1455 of yacc.c */ #line 1567 "Gmsh.y" { #if defined(HAVE_OCC) @@ -5495,6 +5646,8 @@ yyreduce: break; case 125: + +/* Line 1455 of yacc.c */ #line 1580 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); @@ -5514,6 +5667,8 @@ yyreduce: break; case 126: + +/* Line 1455 of yacc.c */ #line 1596 "Gmsh.y" { curPhysDim = 3; @@ -5521,6 +5676,8 @@ yyreduce: break; case 127: + +/* Line 1455 of yacc.c */ #line 1600 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); @@ -5540,6 +5697,8 @@ yyreduce: break; case 128: + +/* Line 1455 of yacc.c */ #line 1622 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); @@ -5548,6 +5707,8 @@ yyreduce: break; case 129: + +/* Line 1455 of yacc.c */ #line 1627 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); @@ -5556,6 +5717,8 @@ yyreduce: break; case 130: + +/* Line 1455 of yacc.c */ #line 1632 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); @@ -5564,6 +5727,8 @@ yyreduce: break; case 131: + +/* Line 1455 of yacc.c */ #line 1637 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); @@ -5572,6 +5737,8 @@ yyreduce: break; case 132: + +/* Line 1455 of yacc.c */ #line 1642 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); @@ -5595,6 +5762,8 @@ yyreduce: break; case 133: + +/* Line 1455 of yacc.c */ #line 1662 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -5604,6 +5773,8 @@ yyreduce: break; case 134: + +/* Line 1455 of yacc.c */ #line 1668 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); @@ -5615,16 +5786,22 @@ yyreduce: break; case 135: + +/* Line 1455 of yacc.c */ #line 1678 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 136: + +/* Line 1455 of yacc.c */ #line 1679 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 137: + +/* Line 1455 of yacc.c */ #line 1684 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); @@ -5632,6 +5809,8 @@ yyreduce: break; case 138: + +/* Line 1455 of yacc.c */ #line 1688 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); @@ -5639,6 +5818,8 @@ yyreduce: break; case 139: + +/* Line 1455 of yacc.c */ #line 1692 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ @@ -5665,6 +5846,8 @@ yyreduce: break; case 140: + +/* Line 1455 of yacc.c */ #line 1715 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ @@ -5691,6 +5874,8 @@ yyreduce: break; case 141: + +/* Line 1455 of yacc.c */ #line 1738 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ @@ -5717,6 +5902,8 @@ yyreduce: break; case 142: + +/* Line 1455 of yacc.c */ #line 1761 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ @@ -5743,6 +5930,8 @@ yyreduce: break; case 143: + +/* Line 1455 of yacc.c */ #line 1789 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5767,6 +5956,8 @@ yyreduce: break; case 144: + +/* Line 1455 of yacc.c */ #line 1811 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5790,6 +5981,8 @@ yyreduce: break; case 145: + +/* Line 1455 of yacc.c */ #line 1832 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5814,6 +6007,8 @@ yyreduce: break; case 146: + +/* Line 1455 of yacc.c */ #line 1853 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5837,6 +6032,8 @@ yyreduce: break; case 147: + +/* Line 1455 of yacc.c */ #line 1873 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5952,6 +6149,8 @@ yyreduce: break; case 148: + +/* Line 1455 of yacc.c */ #line 1985 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5974,6 +6173,8 @@ yyreduce: break; case 149: + +/* Line 1455 of yacc.c */ #line 2004 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -5997,6 +6198,8 @@ yyreduce: break; case 150: + +/* Line 1455 of yacc.c */ #line 2025 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) @@ -6103,6 +6306,8 @@ yyreduce: break; case 151: + +/* Line 1455 of yacc.c */ #line 2133 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -6115,6 +6320,8 @@ yyreduce: break; case 152: + +/* Line 1455 of yacc.c */ #line 2142 "Gmsh.y" { #if defined(HAVE_MESH) @@ -6124,6 +6331,8 @@ yyreduce: break; case 153: + +/* Line 1455 of yacc.c */ #line 2148 "Gmsh.y" { #if defined(HAVE_POST) @@ -6142,6 +6351,8 @@ yyreduce: break; case 154: + +/* Line 1455 of yacc.c */ #line 2163 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ @@ -6173,6 +6384,8 @@ yyreduce: break; case 155: + +/* Line 1455 of yacc.c */ #line 2191 "Gmsh.y" { #if defined(HAVE_POST) @@ -6188,6 +6401,8 @@ yyreduce: break; case 156: + +/* Line 1455 of yacc.c */ #line 2208 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -6200,6 +6415,8 @@ yyreduce: break; case 157: + +/* Line 1455 of yacc.c */ #line 2222 "Gmsh.y" { for(int i = 0; i < 4; i++) @@ -6209,6 +6426,8 @@ yyreduce: break; case 158: + +/* Line 1455 of yacc.c */ #line 2228 "Gmsh.y" { for(int i = 0; i < 4; i++) @@ -6218,6 +6437,8 @@ yyreduce: break; case 159: + +/* Line 1455 of yacc.c */ #line 2234 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -6230,6 +6451,8 @@ yyreduce: break; case 160: + +/* Line 1455 of yacc.c */ #line 2243 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -6242,6 +6465,8 @@ yyreduce: break; case 161: + +/* Line 1455 of yacc.c */ #line 2257 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ @@ -6287,6 +6512,8 @@ yyreduce: break; case 162: + +/* Line 1455 of yacc.c */ #line 2299 "Gmsh.y" { #if defined(HAVE_POST) @@ -6307,6 +6534,8 @@ yyreduce: break; case 163: + +/* Line 1455 of yacc.c */ #line 2316 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) @@ -6325,6 +6554,8 @@ yyreduce: break; case 164: + +/* Line 1455 of yacc.c */ #line 2331 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ @@ -6347,6 +6578,8 @@ yyreduce: break; case 165: + +/* Line 1455 of yacc.c */ #line 2350 "Gmsh.y" { #if defined(HAVE_POST) @@ -6362,6 +6595,8 @@ yyreduce: break; case 166: + +/* Line 1455 of yacc.c */ #line 2362 "Gmsh.y" { #if defined(HAVE_POST) @@ -6389,6 +6624,8 @@ yyreduce: break; case 167: + +/* Line 1455 of yacc.c */ #line 2386 "Gmsh.y" { exit(0); @@ -6396,6 +6633,8 @@ yyreduce: break; case 168: + +/* Line 1455 of yacc.c */ #line 2390 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to @@ -6406,6 +6645,8 @@ yyreduce: break; case 169: + +/* Line 1455 of yacc.c */ #line 2397 "Gmsh.y" { CTX::instance()->forcedBBox = 0; @@ -6415,6 +6656,8 @@ yyreduce: break; case 170: + +/* Line 1455 of yacc.c */ #line 2403 "Gmsh.y" { CTX::instance()->forcedBBox = 1; @@ -6423,6 +6666,8 @@ yyreduce: break; case 171: + +/* Line 1455 of yacc.c */ #line 2408 "Gmsh.y" { #if defined(HAVE_OPENGL) @@ -6432,6 +6677,8 @@ yyreduce: break; case 172: + +/* Line 1455 of yacc.c */ #line 2414 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); @@ -6439,6 +6686,8 @@ yyreduce: break; case 173: + +/* Line 1455 of yacc.c */ #line 2424 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); @@ -6459,6 +6708,8 @@ yyreduce: break; case 174: + +/* Line 1455 of yacc.c */ #line 2441 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); @@ -6479,6 +6730,8 @@ yyreduce: break; case 175: + +/* Line 1455 of yacc.c */ #line 2458 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); @@ -6501,6 +6754,8 @@ yyreduce: break; case 176: + +/* Line 1455 of yacc.c */ #line 2477 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); @@ -6523,6 +6778,8 @@ yyreduce: break; case 177: + +/* Line 1455 of yacc.c */ #line 2496 "Gmsh.y" { if(ImbricatedLoop <= 0){ @@ -6556,6 +6813,8 @@ yyreduce: break; case 178: + +/* Line 1455 of yacc.c */ #line 2526 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction @@ -6567,6 +6826,8 @@ yyreduce: break; case 179: + +/* Line 1455 of yacc.c */ #line 2534 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction @@ -6576,6 +6837,8 @@ yyreduce: break; case 180: + +/* Line 1455 of yacc.c */ #line 2540 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction @@ -6586,6 +6849,8 @@ yyreduce: break; case 181: + +/* Line 1455 of yacc.c */ #line 2547 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); @@ -6593,12 +6858,16 @@ yyreduce: break; case 182: + +/* Line 1455 of yacc.c */ #line 2551 "Gmsh.y" { ;} break; case 183: + +/* Line 1455 of yacc.c */ #line 2560 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6610,6 +6879,8 @@ yyreduce: break; case 184: + +/* Line 1455 of yacc.c */ #line 2568 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6621,6 +6892,8 @@ yyreduce: break; case 185: + +/* Line 1455 of yacc.c */ #line 2576 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6632,6 +6905,8 @@ yyreduce: break; case 186: + +/* Line 1455 of yacc.c */ #line 2584 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6639,6 +6914,8 @@ yyreduce: break; case 187: + +/* Line 1455 of yacc.c */ #line 2588 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6650,6 +6927,8 @@ yyreduce: break; case 188: + +/* Line 1455 of yacc.c */ #line 2596 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6657,6 +6936,8 @@ yyreduce: break; case 189: + +/* Line 1455 of yacc.c */ #line 2600 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6668,6 +6949,8 @@ yyreduce: break; case 190: + +/* Line 1455 of yacc.c */ #line 2608 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6675,6 +6958,8 @@ yyreduce: break; case 191: + +/* Line 1455 of yacc.c */ #line 2612 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6686,6 +6971,8 @@ yyreduce: break; case 192: + +/* Line 1455 of yacc.c */ #line 2620 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6693,6 +6980,8 @@ yyreduce: break; case 193: + +/* Line 1455 of yacc.c */ #line 2624 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6703,6 +6992,8 @@ yyreduce: break; case 194: + +/* Line 1455 of yacc.c */ #line 2633 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6713,6 +7004,8 @@ yyreduce: break; case 195: + +/* Line 1455 of yacc.c */ #line 2640 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6723,6 +7016,8 @@ yyreduce: break; case 196: + +/* Line 1455 of yacc.c */ #line 2647 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6733,6 +7028,8 @@ yyreduce: break; case 197: + +/* Line 1455 of yacc.c */ #line 2654 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6743,6 +7040,8 @@ yyreduce: break; case 198: + +/* Line 1455 of yacc.c */ #line 2661 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6753,6 +7052,8 @@ yyreduce: break; case 199: + +/* Line 1455 of yacc.c */ #line 2668 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6763,6 +7064,8 @@ yyreduce: break; case 200: + +/* Line 1455 of yacc.c */ #line 2675 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6773,6 +7076,8 @@ yyreduce: break; case 201: + +/* Line 1455 of yacc.c */ #line 2682 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6783,6 +7088,8 @@ yyreduce: break; case 202: + +/* Line 1455 of yacc.c */ #line 2689 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6793,6 +7100,8 @@ yyreduce: break; case 203: + +/* Line 1455 of yacc.c */ #line 2696 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6800,6 +7109,8 @@ yyreduce: break; case 204: + +/* Line 1455 of yacc.c */ #line 2700 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6810,6 +7121,8 @@ yyreduce: break; case 205: + +/* Line 1455 of yacc.c */ #line 2707 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6817,6 +7130,8 @@ yyreduce: break; case 206: + +/* Line 1455 of yacc.c */ #line 2711 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6827,6 +7142,8 @@ yyreduce: break; case 207: + +/* Line 1455 of yacc.c */ #line 2718 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6834,6 +7151,8 @@ yyreduce: break; case 208: + +/* Line 1455 of yacc.c */ #line 2722 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6844,6 +7163,8 @@ yyreduce: break; case 209: + +/* Line 1455 of yacc.c */ #line 2729 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6851,6 +7172,8 @@ yyreduce: break; case 210: + +/* Line 1455 of yacc.c */ #line 2733 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6861,6 +7184,8 @@ yyreduce: break; case 211: + +/* Line 1455 of yacc.c */ #line 2740 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6868,6 +7193,8 @@ yyreduce: break; case 212: + +/* Line 1455 of yacc.c */ #line 2744 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6878,6 +7205,8 @@ yyreduce: break; case 213: + +/* Line 1455 of yacc.c */ #line 2751 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6885,6 +7214,8 @@ yyreduce: break; case 214: + +/* Line 1455 of yacc.c */ #line 2755 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6895,6 +7226,8 @@ yyreduce: break; case 215: + +/* Line 1455 of yacc.c */ #line 2762 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6902,6 +7235,8 @@ yyreduce: break; case 216: + +/* Line 1455 of yacc.c */ #line 2766 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6912,6 +7247,8 @@ yyreduce: break; case 217: + +/* Line 1455 of yacc.c */ #line 2773 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6919,6 +7256,8 @@ yyreduce: break; case 218: + +/* Line 1455 of yacc.c */ #line 2777 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6929,6 +7268,8 @@ yyreduce: break; case 219: + +/* Line 1455 of yacc.c */ #line 2784 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; @@ -6936,6 +7277,8 @@ yyreduce: break; case 220: + +/* Line 1455 of yacc.c */ #line 2788 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); @@ -6946,18 +7289,24 @@ yyreduce: break; case 221: + +/* Line 1455 of yacc.c */ #line 2799 "Gmsh.y" { ;} break; case 222: + +/* Line 1455 of yacc.c */ #line 2802 "Gmsh.y" { ;} break; case 223: + +/* Line 1455 of yacc.c */ #line 2808 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; @@ -6970,6 +7319,8 @@ yyreduce: break; case 224: + +/* Line 1455 of yacc.c */ #line 2817 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; @@ -6993,6 +7344,8 @@ yyreduce: break; case 225: + +/* Line 1455 of yacc.c */ #line 2837 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); @@ -7019,6 +7372,8 @@ yyreduce: break; case 226: + +/* Line 1455 of yacc.c */ #line 2860 "Gmsh.y" { extr.mesh.Recombine = true; @@ -7026,6 +7381,8 @@ yyreduce: break; case 227: + +/* Line 1455 of yacc.c */ #line 2864 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); @@ -7048,6 +7405,8 @@ yyreduce: break; case 228: + +/* Line 1455 of yacc.c */ #line 2887 "Gmsh.y" { (yyval.i) = 1; // harmonic @@ -7055,6 +7414,8 @@ yyreduce: break; case 229: + +/* Line 1455 of yacc.c */ #line 2891 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Harmonic")) @@ -7070,6 +7431,8 @@ yyreduce: break; case 230: + +/* Line 1455 of yacc.c */ #line 2906 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; @@ -7077,6 +7440,8 @@ yyreduce: break; case 231: + +/* Line 1455 of yacc.c */ #line 2910 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) @@ -7093,6 +7458,8 @@ yyreduce: break; case 232: + +/* Line 1455 of yacc.c */ #line 2925 "Gmsh.y" { (yyval.i) = -1; // left @@ -7100,6 +7467,8 @@ yyreduce: break; case 233: + +/* Line 1455 of yacc.c */ #line 2929 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) @@ -7113,6 +7482,8 @@ yyreduce: break; case 234: + +/* Line 1455 of yacc.c */ #line 2941 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); @@ -7120,6 +7491,8 @@ yyreduce: break; case 235: + +/* Line 1455 of yacc.c */ #line 2945 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); @@ -7127,6 +7500,8 @@ yyreduce: break; case 236: + +/* Line 1455 of yacc.c */ #line 2950 "Gmsh.y" { (yyval.i) = 45; @@ -7134,6 +7509,8 @@ yyreduce: break; case 237: + +/* Line 1455 of yacc.c */ #line 2954 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); @@ -7141,6 +7518,8 @@ yyreduce: break; case 238: + +/* Line 1455 of yacc.c */ #line 2961 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; @@ -7200,6 +7579,8 @@ yyreduce: break; case 239: + +/* Line 1455 of yacc.c */ #line 3017 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); @@ -7273,6 +7654,8 @@ yyreduce: break; case 240: + +/* Line 1455 of yacc.c */ #line 3087 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); @@ -7281,6 +7664,8 @@ yyreduce: break; case 241: + +/* Line 1455 of yacc.c */ #line 3092 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); @@ -7351,6 +7736,8 @@ yyreduce: break; case 242: + +/* Line 1455 of yacc.c */ #line 3159 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ @@ -7397,6 +7784,8 @@ yyreduce: break; case 243: + +/* Line 1455 of yacc.c */ #line 3202 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -7420,6 +7809,8 @@ yyreduce: break; case 244: + +/* Line 1455 of yacc.c */ #line 3228 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); @@ -7446,6 +7837,8 @@ yyreduce: break; case 245: + +/* Line 1455 of yacc.c */ #line 3251 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); @@ -7472,18 +7865,24 @@ yyreduce: break; case 246: + +/* Line 1455 of yacc.c */ #line 3274 "Gmsh.y" { ;} break; case 247: + +/* Line 1455 of yacc.c */ #line 3277 "Gmsh.y" { ;} break; case 248: + +/* Line 1455 of yacc.c */ #line 3286 "Gmsh.y" { ReplaceAllDuplicates(); @@ -7491,6 +7890,8 @@ yyreduce: break; case 249: + +/* Line 1455 of yacc.c */ #line 3290 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) @@ -7504,6 +7905,8 @@ yyreduce: break; case 250: + +/* Line 1455 of yacc.c */ #line 3307 "Gmsh.y" { @@ -7543,6 +7946,8 @@ yyreduce: break; case 251: + +/* Line 1455 of yacc.c */ #line 3344 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); @@ -7581,6 +7986,8 @@ yyreduce: break; case 252: + +/* Line 1455 of yacc.c */ #line 3380 "Gmsh.y" { List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); @@ -7619,47 +8026,105 @@ yyreduce: break; case 253: -#line 3419 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (1)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3415 "Gmsh.y" + { + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (11)].l)); + std::vector<int> domain; + + for (int i = 0; i < List_Nbr(temp); i++){ + int item = 0; + List_Read(temp, i, &item); + domain.push_back(item); + } + List_Delete((yyvsp[(7) - (11)].l)); + List_Delete(temp); + + List_T *temp2 = ListOfDouble2ListOfInt((yyvsp[(9) - (11)].l)); + std::vector<int> subdomain; + for (int i = 0; i < List_Nbr(temp2); i++){ + int item = 0; + List_Read(temp2, i, &item); + subdomain.push_back(item); + } + List_Delete((yyvsp[(9) - (11)].l)); + List_Delete(temp2); + + std::string fileName = ""; + fileName = (yyvsp[(3) - (11)].c); + + #if defined(HAVE_KBIPACK) + Homology* homology = new Homology(GModel::current(), domain, subdomain); + homology->setFileName(fileName); + homology->findHomSequence(); + delete homology; + #else + yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation."); + #endif + ;} break; case 254: -#line 3420 "Gmsh.y" - { (yyval.d) = (yyvsp[(2) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3454 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 255: -#line 3421 "Gmsh.y" - { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3455 "Gmsh.y" + { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 256: -#line 3422 "Gmsh.y" - { (yyval.d) = (yyvsp[(2) - (2)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3456 "Gmsh.y" + { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 257: -#line 3423 "Gmsh.y" - { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3457 "Gmsh.y" + { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 258: -#line 3424 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3458 "Gmsh.y" + { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 259: -#line 3425 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3459 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 260: -#line 3426 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3460 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 261: -#line 3428 "Gmsh.y" + +/* Line 1455 of yacc.c */ +#line 3461 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} + break; + + case 262: + +/* Line 1455 of yacc.c */ +#line 3463 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -7668,308 +8133,430 @@ yyreduce: ;} break; - case 262: -#line 3434 "Gmsh.y" - { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} - break; - case 263: -#line 3435 "Gmsh.y" - { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3469 "Gmsh.y" + { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 264: -#line 3436 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3470 "Gmsh.y" + { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 265: -#line 3437 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3471 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 266: -#line 3438 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3472 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 267: -#line 3439 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3473 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 268: -#line 3440 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3474 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 269: -#line 3441 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3475 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 270: -#line 3442 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3476 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 271: -#line 3443 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3477 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 272: -#line 3444 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3478 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 273: -#line 3445 "Gmsh.y" - { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3479 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 274: -#line 3446 "Gmsh.y" - { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3480 "Gmsh.y" + { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 275: -#line 3447 "Gmsh.y" - { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3481 "Gmsh.y" + { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 276: -#line 3448 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3482 "Gmsh.y" + { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 3449 "Gmsh.y" - { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3483 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 3450 "Gmsh.y" - { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3484 "Gmsh.y" + { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 3451 "Gmsh.y" - { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3485 "Gmsh.y" + { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 280: -#line 3452 "Gmsh.y" - { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3486 "Gmsh.y" + { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 3453 "Gmsh.y" - { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3487 "Gmsh.y" + { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 3454 "Gmsh.y" - { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3488 "Gmsh.y" + { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 3455 "Gmsh.y" - { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} + +/* Line 1455 of yacc.c */ +#line 3489 "Gmsh.y" + { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 3456 "Gmsh.y" - { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3490 "Gmsh.y" + { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 285: -#line 3457 "Gmsh.y" - { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3491 "Gmsh.y" + { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 3458 "Gmsh.y" - { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3492 "Gmsh.y" + { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 287: -#line 3459 "Gmsh.y" - { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3493 "Gmsh.y" + { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 288: -#line 3460 "Gmsh.y" - { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3494 "Gmsh.y" + { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 289: -#line 3461 "Gmsh.y" - { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3495 "Gmsh.y" + { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 290: -#line 3462 "Gmsh.y" - { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3496 "Gmsh.y" + { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 291: -#line 3463 "Gmsh.y" + +/* Line 1455 of yacc.c */ +#line 3497 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 292: -#line 3464 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3498 "Gmsh.y" + { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 293: -#line 3465 "Gmsh.y" - { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} + +/* Line 1455 of yacc.c */ +#line 3499 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 294: -#line 3467 "Gmsh.y" - { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3500 "Gmsh.y" + { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 295: -#line 3468 "Gmsh.y" - { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3502 "Gmsh.y" + { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 296: -#line 3469 "Gmsh.y" - { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3503 "Gmsh.y" + { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 297: -#line 3470 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3504 "Gmsh.y" + { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 298: -#line 3471 "Gmsh.y" - { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3505 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 299: -#line 3472 "Gmsh.y" - { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3506 "Gmsh.y" + { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 300: -#line 3473 "Gmsh.y" - { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3507 "Gmsh.y" + { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 301: -#line 3474 "Gmsh.y" - { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3508 "Gmsh.y" + { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 302: -#line 3475 "Gmsh.y" - { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3509 "Gmsh.y" + { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 303: -#line 3476 "Gmsh.y" - { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3510 "Gmsh.y" + { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 304: -#line 3477 "Gmsh.y" - { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} + +/* Line 1455 of yacc.c */ +#line 3511 "Gmsh.y" + { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 305: -#line 3478 "Gmsh.y" - { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3512 "Gmsh.y" + { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 306: -#line 3479 "Gmsh.y" - { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3513 "Gmsh.y" + { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 307: -#line 3480 "Gmsh.y" - { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3514 "Gmsh.y" + { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 308: -#line 3481 "Gmsh.y" - { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3515 "Gmsh.y" + { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 309: -#line 3482 "Gmsh.y" - { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3516 "Gmsh.y" + { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 310: -#line 3483 "Gmsh.y" - { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3517 "Gmsh.y" + { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 311: -#line 3484 "Gmsh.y" - { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3518 "Gmsh.y" + { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 312: -#line 3485 "Gmsh.y" + +/* Line 1455 of yacc.c */ +#line 3519 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 313: -#line 3486 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} + +/* Line 1455 of yacc.c */ +#line 3520 "Gmsh.y" + { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 314: -#line 3487 "Gmsh.y" - { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} + +/* Line 1455 of yacc.c */ +#line 3521 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 315: -#line 3496 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (1)].d); ;} + +/* Line 1455 of yacc.c */ +#line 3522 "Gmsh.y" + { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 316: -#line 3497 "Gmsh.y" - { (yyval.d) = 3.141592653589793; ;} + +/* Line 1455 of yacc.c */ +#line 3531 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 317: -#line 3498 "Gmsh.y" - { (yyval.d) = Msg::GetCommRank(); ;} + +/* Line 1455 of yacc.c */ +#line 3532 "Gmsh.y" + { (yyval.d) = 3.141592653589793; ;} break; case 318: -#line 3499 "Gmsh.y" - { (yyval.d) = Msg::GetCommSize(); ;} + +/* Line 1455 of yacc.c */ +#line 3533 "Gmsh.y" + { (yyval.d) = Msg::GetCommRank(); ;} break; case 319: -#line 3500 "Gmsh.y" - { (yyval.d) = GetGmshMajorVersion(); ;} + +/* Line 1455 of yacc.c */ +#line 3534 "Gmsh.y" + { (yyval.d) = Msg::GetCommSize(); ;} break; case 320: -#line 3501 "Gmsh.y" - { (yyval.d) = GetGmshMinorVersion(); ;} + +/* Line 1455 of yacc.c */ +#line 3535 "Gmsh.y" + { (yyval.d) = GetGmshMajorVersion(); ;} break; case 321: -#line 3502 "Gmsh.y" - { (yyval.d) = GetGmshPatchVersion(); ;} + +/* Line 1455 of yacc.c */ +#line 3536 "Gmsh.y" + { (yyval.d) = GetGmshMinorVersion(); ;} break; case 322: -#line 3507 "Gmsh.y" + +/* Line 1455 of yacc.c */ +#line 3537 "Gmsh.y" + { (yyval.d) = GetGmshPatchVersion(); ;} + break; + + case 323: + +/* Line 1455 of yacc.c */ +#line 3542 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7981,8 +8568,10 @@ yyreduce: ;} break; - case 323: -#line 3520 "Gmsh.y" + case 324: + +/* Line 1455 of yacc.c */ +#line 3555 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7996,8 +8585,10 @@ yyreduce: ;} break; - case 324: -#line 3532 "Gmsh.y" + case 325: + +/* Line 1455 of yacc.c */ +#line 3567 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -8014,8 +8605,10 @@ yyreduce: ;} break; - case 325: -#line 3547 "Gmsh.y" + case 326: + +/* Line 1455 of yacc.c */ +#line 3582 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -8027,8 +8620,10 @@ yyreduce: ;} break; - case 326: -#line 3557 "Gmsh.y" + case 327: + +/* Line 1455 of yacc.c */ +#line 3592 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -8040,8 +8635,10 @@ yyreduce: ;} break; - case 327: -#line 3567 "Gmsh.y" + case 328: + +/* Line 1455 of yacc.c */ +#line 3602 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -8058,24 +8655,30 @@ yyreduce: ;} break; - case 328: -#line 3585 "Gmsh.y" + case 329: + +/* Line 1455 of yacc.c */ +#line 3620 "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 329: -#line 3590 "Gmsh.y" + case 330: + +/* Line 1455 of yacc.c */ +#line 3625 "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 330: -#line 3595 "Gmsh.y" + case 331: + +/* Line 1455 of yacc.c */ +#line 3630 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -8087,8 +8690,10 @@ yyreduce: ;} break; - case 331: -#line 3605 "Gmsh.y" + case 332: + +/* Line 1455 of yacc.c */ +#line 3640 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -8100,124 +8705,158 @@ yyreduce: ;} break; - case 332: -#line 3615 "Gmsh.y" + case 333: + +/* Line 1455 of yacc.c */ +#line 3650 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 333: -#line 3623 "Gmsh.y" + case 334: + +/* Line 1455 of yacc.c */ +#line 3658 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 334: -#line 3627 "Gmsh.y" + case 335: + +/* Line 1455 of yacc.c */ +#line 3662 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 335: -#line 3631 "Gmsh.y" + case 336: + +/* Line 1455 of yacc.c */ +#line 3666 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 336: -#line 3635 "Gmsh.y" + case 337: + +/* Line 1455 of yacc.c */ +#line 3670 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 337: -#line 3639 "Gmsh.y" + case 338: + +/* Line 1455 of yacc.c */ +#line 3674 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 338: -#line 3646 "Gmsh.y" + case 339: + +/* Line 1455 of yacc.c */ +#line 3681 "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 339: -#line 3650 "Gmsh.y" + case 340: + +/* Line 1455 of yacc.c */ +#line 3685 "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 340: -#line 3654 "Gmsh.y" + case 341: + +/* Line 1455 of yacc.c */ +#line 3689 "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 341: -#line 3658 "Gmsh.y" + case 342: + +/* Line 1455 of yacc.c */ +#line 3693 "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 342: -#line 3665 "Gmsh.y" + case 343: + +/* Line 1455 of yacc.c */ +#line 3700 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 343: -#line 3670 "Gmsh.y" + case 344: + +/* Line 1455 of yacc.c */ +#line 3705 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 344: -#line 3677 "Gmsh.y" + case 345: + +/* Line 1455 of yacc.c */ +#line 3712 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 345: -#line 3682 "Gmsh.y" + case 346: + +/* Line 1455 of yacc.c */ +#line 3717 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 346: -#line 3686 "Gmsh.y" + case 347: + +/* Line 1455 of yacc.c */ +#line 3721 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 347: -#line 3691 "Gmsh.y" + case 348: + +/* Line 1455 of yacc.c */ +#line 3726 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 348: -#line 3695 "Gmsh.y" + case 349: + +/* Line 1455 of yacc.c */ +#line 3730 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8227,8 +8866,10 @@ yyreduce: ;} break; - case 349: -#line 3703 "Gmsh.y" + case 350: + +/* Line 1455 of yacc.c */ +#line 3738 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8238,15 +8879,19 @@ yyreduce: ;} break; - case 350: -#line 3714 "Gmsh.y" + case 351: + +/* Line 1455 of yacc.c */ +#line 3749 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 351: -#line 3718 "Gmsh.y" + case 352: + +/* Line 1455 of yacc.c */ +#line 3753 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -8257,8 +8902,10 @@ yyreduce: ;} break; - case 352: -#line 3730 "Gmsh.y" + case 353: + +/* Line 1455 of yacc.c */ +#line 3765 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8268,8 +8915,10 @@ yyreduce: ;} break; - case 353: -#line 3738 "Gmsh.y" + case 354: + +/* Line 1455 of yacc.c */ +#line 3773 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -8279,8 +8928,10 @@ yyreduce: ;} break; - case 354: -#line 3746 "Gmsh.y" + case 355: + +/* Line 1455 of yacc.c */ +#line 3781 "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)); @@ -8289,8 +8940,10 @@ yyreduce: ;} break; - case 355: -#line 3753 "Gmsh.y" + case 356: + +/* Line 1455 of yacc.c */ +#line 3788 "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)){ @@ -8303,8 +8956,10 @@ yyreduce: ;} break; - case 356: -#line 3764 "Gmsh.y" + case 357: + +/* Line 1455 of yacc.c */ +#line 3799 "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 @@ -8326,8 +8981,10 @@ yyreduce: ;} break; - case 357: -#line 3784 "Gmsh.y" + case 358: + +/* Line 1455 of yacc.c */ +#line 3819 "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++){ @@ -8339,8 +8996,10 @@ yyreduce: ;} break; - case 358: -#line 3794 "Gmsh.y" + case 359: + +/* Line 1455 of yacc.c */ +#line 3829 "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++){ @@ -8352,8 +9011,10 @@ yyreduce: ;} break; - case 359: -#line 3804 "Gmsh.y" + case 360: + +/* Line 1455 of yacc.c */ +#line 3839 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -8365,8 +9026,10 @@ yyreduce: ;} break; - case 360: -#line 3814 "Gmsh.y" + case 361: + +/* Line 1455 of yacc.c */ +#line 3849 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -8385,30 +9048,38 @@ yyreduce: ;} break; - case 361: -#line 3834 "Gmsh.y" + case 362: + +/* Line 1455 of yacc.c */ +#line 3869 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 362: -#line 3839 "Gmsh.y" + case 363: + +/* Line 1455 of yacc.c */ +#line 3874 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 363: -#line 3843 "Gmsh.y" + case 364: + +/* Line 1455 of yacc.c */ +#line 3878 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 364: -#line 3847 "Gmsh.y" + case 365: + +/* Line 1455 of yacc.c */ +#line 3882 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -8419,22 +9090,28 @@ yyreduce: ;} break; - case 365: -#line 3859 "Gmsh.y" + case 366: + +/* Line 1455 of yacc.c */ +#line 3894 "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 366: -#line 3863 "Gmsh.y" + case 367: + +/* Line 1455 of yacc.c */ +#line 3898 "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 367: -#line 3875 "Gmsh.y" + case 368: + +/* Line 1455 of yacc.c */ +#line 3910 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -8443,8 +9120,10 @@ yyreduce: ;} break; - case 368: -#line 3882 "Gmsh.y" + case 369: + +/* Line 1455 of yacc.c */ +#line 3917 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -8453,15 +9132,19 @@ yyreduce: ;} break; - case 369: -#line 3892 "Gmsh.y" + case 370: + +/* Line 1455 of yacc.c */ +#line 3927 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 370: -#line 3896 "Gmsh.y" + case 371: + +/* Line 1455 of yacc.c */ +#line 3931 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -8475,30 +9158,38 @@ yyreduce: ;} break; - case 371: -#line 3911 "Gmsh.y" + case 372: + +/* Line 1455 of yacc.c */ +#line 3946 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 372: -#line 3916 "Gmsh.y" + case 373: + +/* Line 1455 of yacc.c */ +#line 3951 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 373: -#line 3923 "Gmsh.y" + case 374: + +/* Line 1455 of yacc.c */ +#line 3958 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 374: -#line 3927 "Gmsh.y" + case 375: + +/* Line 1455 of yacc.c */ +#line 3962 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -8513,8 +9204,10 @@ yyreduce: ;} break; - case 375: -#line 3940 "Gmsh.y" + case 376: + +/* Line 1455 of yacc.c */ +#line 3975 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -8524,8 +9217,10 @@ yyreduce: ;} break; - case 376: -#line 3948 "Gmsh.y" + case 377: + +/* Line 1455 of yacc.c */ +#line 3983 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -8535,15 +9230,19 @@ yyreduce: ;} break; - case 377: -#line 3959 "Gmsh.y" + case 378: + +/* Line 1455 of yacc.c */ +#line 3994 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 378: -#line 3963 "Gmsh.y" + case 379: + +/* Line 1455 of yacc.c */ +#line 3998 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -8553,8 +9252,10 @@ yyreduce: ;} break; - case 379: -#line 3971 "Gmsh.y" + case 380: + +/* Line 1455 of yacc.c */ +#line 4006 "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)); @@ -8564,8 +9265,10 @@ yyreduce: ;} break; - case 380: -#line 3979 "Gmsh.y" + case 381: + +/* Line 1455 of yacc.c */ +#line 4014 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8581,8 +9284,10 @@ yyreduce: ;} break; - case 381: -#line 3993 "Gmsh.y" + case 382: + +/* Line 1455 of yacc.c */ +#line 4028 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -8598,15 +9303,19 @@ yyreduce: ;} break; - case 382: -#line 4007 "Gmsh.y" + case 383: + +/* Line 1455 of yacc.c */ +#line 4042 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 383: -#line 4011 "Gmsh.y" + case 384: + +/* Line 1455 of yacc.c */ +#line 4046 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -8628,8 +9337,9 @@ yyreduce: break; -/* Line 1267 of yacc.c. */ -#line 8633 "Gmsh.tab.cpp" + +/* Line 1455 of yacc.c */ +#line 9343 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8640,7 +9350,6 @@ yyreduce: *++yyvsp = yyval; - /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -8705,7 +9414,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse look-ahead token after an + /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -8722,7 +9431,7 @@ yyerrlab: } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -8779,9 +9488,6 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } - if (yyn == YYFINAL) - YYACCEPT; - *++yyvsp = yylval; @@ -8806,7 +9512,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#ifndef yyoverflow +#if !defined(yyoverflow) || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -8817,7 +9523,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEOF && yychar != YYEMPTY) + if (yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered @@ -8843,7 +9549,9 @@ yyreturn: } -#line 4031 "Gmsh.y" + +/* Line 1675 of yacc.c */ +#line 4066 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 66eeb7d93f7d97f26269d1d4f8e13357a82a684b..d84b268b98e6b9e7a2c826407a18247418ab37ab 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -1,24 +1,23 @@ -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,10 +28,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -153,157 +153,32 @@ tHomRank = 369, tHomGen = 370, tHomCut = 371, - tAFFECTDIVIDE = 372, - tAFFECTTIMES = 373, - tAFFECTMINUS = 374, - tAFFECTPLUS = 375, - tOR = 376, - tAND = 377, - tNOTEQUAL = 378, - tEQUAL = 379, - tGREATEROREQUAL = 380, - tLESSOREQUAL = 381, - UNARYPREC = 382, - tMINUSMINUS = 383, - tPLUSPLUS = 384 + tHomSeq = 372, + tAFFECTDIVIDE = 373, + tAFFECTTIMES = 374, + tAFFECTMINUS = 375, + tAFFECTPLUS = 376, + tOR = 377, + tAND = 378, + tNOTEQUAL = 379, + tEQUAL = 380, + tGREATEROREQUAL = 381, + tLESSOREQUAL = 382, + UNARYPREC = 383, + tMINUSMINUS = 384, + tPLUSPLUS = 385 }; #endif -/* Tokens. */ -#define tDOUBLE 258 -#define tSTRING 259 -#define tBIGSTR 260 -#define tEND 261 -#define tAFFECT 262 -#define tDOTS 263 -#define tPi 264 -#define tMPI_Rank 265 -#define tMPI_Size 266 -#define tEuclidian 267 -#define tCoordinates 268 -#define tExp 269 -#define tLog 270 -#define tLog10 271 -#define tSqrt 272 -#define tSin 273 -#define tAsin 274 -#define tCos 275 -#define tAcos 276 -#define tTan 277 -#define tRand 278 -#define tAtan 279 -#define tAtan2 280 -#define tSinh 281 -#define tCosh 282 -#define tTanh 283 -#define tFabs 284 -#define tFloor 285 -#define tCeil 286 -#define tFmod 287 -#define tModulo 288 -#define tHypot 289 -#define tPrintf 290 -#define tSprintf 291 -#define tStrCat 292 -#define tStrPrefix 293 -#define tStrRelative 294 -#define tBoundingBox 295 -#define tDraw 296 -#define tToday 297 -#define tSyncModel 298 -#define tCreateTopology 299 -#define tDistanceFunction 300 -#define tPoint 301 -#define tCircle 302 -#define tEllipse 303 -#define tLine 304 -#define tSphere 305 -#define tPolarSphere 306 -#define tSurface 307 -#define tSpline 308 -#define tVolume 309 -#define tCharacteristic 310 -#define tLength 311 -#define tParametric 312 -#define tElliptic 313 -#define tPlane 314 -#define tRuled 315 -#define tTransfinite 316 -#define tComplex 317 -#define tPhysical 318 -#define tCompound 319 -#define tUsing 320 -#define tPlugin 321 -#define tDegenerated 322 -#define tOCCShape 323 -#define tRotate 324 -#define tTranslate 325 -#define tSymmetry 326 -#define tDilate 327 -#define tExtrude 328 -#define tLevelset 329 -#define tLoop 330 -#define tRecombine 331 -#define tSmoother 332 -#define tSplit 333 -#define tDelete 334 -#define tCoherence 335 -#define tIntersect 336 -#define tLayers 337 -#define tHole 338 -#define tAlias 339 -#define tAliasWithOptions 340 -#define tText2D 341 -#define tText3D 342 -#define tInterpolationScheme 343 -#define tTime 344 -#define tCombine 345 -#define tBSpline 346 -#define tBezier 347 -#define tNurbs 348 -#define tNurbsOrder 349 -#define tNurbsKnots 350 -#define tColor 351 -#define tColorTable 352 -#define tFor 353 -#define tIn 354 -#define tEndFor 355 -#define tIf 356 -#define tEndIf 357 -#define tExit 358 -#define tField 359 -#define tReturn 360 -#define tCall 361 -#define tFunction 362 -#define tShow 363 -#define tHide 364 -#define tGetValue 365 -#define tGMSH_MAJOR_VERSION 366 -#define tGMSH_MINOR_VERSION 367 -#define tGMSH_PATCH_VERSION 368 -#define tHomRank 369 -#define tHomGen 370 -#define tHomCut 371 -#define tAFFECTDIVIDE 372 -#define tAFFECTTIMES 373 -#define tAFFECTMINUS 374 -#define tAFFECTPLUS 375 -#define tOR 376 -#define tAND 377 -#define tNOTEQUAL 378 -#define tEQUAL 379 -#define tGREATEROREQUAL 380 -#define tLESSOREQUAL 381 -#define UNARYPREC 382 -#define tMINUSMINUS 383 -#define tPLUSPLUS 384 - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 85 "Gmsh.y" { + +/* Line 1676 of yacc.c */ +#line 85 "Gmsh.y" + char *c; int i; unsigned int u; @@ -311,14 +186,17 @@ typedef union YYSTYPE double v[5]; Shape s; List_T *l; -} -/* Line 1529 of yacc.c. */ -#line 317 "Gmsh.tab.hpp" - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +#line 194 "Gmsh.tab.hpp" +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE gmsh_yylval; + diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index d3e97c9b50618e46cdabbaa0ee31be4ddaeebd96..955f3f4f6a07d378be4ce46f197f8f847cb8787e 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -113,7 +113,7 @@ fullMatrix<double> ListOfListOfDouble2Matrix(List_T *list); %token tColor tColorTable tFor tIn tEndFor tIf tEndIf tExit %token tField tReturn tCall tFunction tShow tHide tGetValue %token tGMSH_MAJOR_VERSION tGMSH_MINOR_VERSION tGMSH_PATCH_VERSION -%token tHomRank tHomGen tHomCut +%token tHomRank tHomGen tHomCut tHomSeq %type <d> FExpr FExpr_Single @@ -3411,6 +3411,41 @@ Homology : yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation."); #endif } + | tHomSeq '(' StringExprVar ')' tAFFECT '{' ListOfDouble ',' ListOfDouble '}' tEND + { + List_T *temp = ListOfDouble2ListOfInt($7); + std::vector<int> domain; + + for (int i = 0; i < List_Nbr(temp); i++){ + int item = 0; + List_Read(temp, i, &item); + domain.push_back(item); + } + List_Delete($7); + List_Delete(temp); + + List_T *temp2 = ListOfDouble2ListOfInt($9); + std::vector<int> subdomain; + for (int i = 0; i < List_Nbr(temp2); i++){ + int item = 0; + List_Read(temp2, i, &item); + subdomain.push_back(item); + } + List_Delete($9); + List_Delete(temp2); + + std::string fileName = ""; + fileName = $3; + + #if defined(HAVE_KBIPACK) + Homology* homology = new Homology(GModel::current(), domain, subdomain); + homology->setFileName(fileName); + homology->findHomSequence(); + delete homology; + #else + yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation."); + #endif + } ; // G E N E R A L diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 8dd9c8f32f7af5e0b2843b8c9b98011c4b417f77..c2773b48c05da971e77c9967f73535e9bc9889fe 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -73,7 +73,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -160,7 +161,15 @@ typedef unsigned int flex_uint32_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -172,12 +181,7 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -extern yy_size_t gmsh_yyleng; +extern int gmsh_yyleng; extern FILE *gmsh_yyin, *gmsh_yyout; @@ -203,6 +207,11 @@ extern FILE *gmsh_yyin, *gmsh_yyout; #define unput(c) yyunput( c, (yytext_ptr) ) +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -220,7 +229,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -290,8 +299,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when gmsh_yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t gmsh_yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int gmsh_yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -319,7 +328,7 @@ static void gmsh_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE gmsh_yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE gmsh_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char *bytes,int len ); void *gmsh_yyalloc (yy_size_t ); void *gmsh_yyrealloc (void *,yy_size_t ); @@ -379,8 +388,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 150 -#define YY_END_OF_BUFFER 151 +#define YY_NUM_RULES 151 +#define YY_END_OF_BUFFER 152 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,79 +397,79 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[645] = +static yyconst flex_int16_t yy_accept[648] = { 0, - 0, 0, 151, 149, 1, 1, 149, 5, 149, 6, - 149, 149, 149, 149, 149, 144, 21, 2, 149, 16, - 149, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 149, 28, 24, 19, 25, 17, 26, - 18, 0, 146, 3, 4, 20, 145, 144, 0, 29, - 27, 30, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 89, 88, 148, 148, - - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 107, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 134, 135, 148, 148, - 148, 148, 148, 148, 148, 23, 22, 0, 145, 0, - 0, 147, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 49, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 63, - 148, 148, 148, 148, 148, 76, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 96, 148, 148, 148, 148, 148, 148, 148, 148, 148, - - 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 121, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 140, 148, 148, 148, 148, 148, 0, 146, 0, - 0, 145, 31, 148, 148, 148, 148, 35, 37, 148, - 148, 148, 57, 148, 44, 148, 148, 148, 148, 148, - 148, 148, 48, 148, 148, 148, 148, 62, 148, 148, - 148, 148, 71, 148, 72, 148, 148, 75, 148, 148, - 148, 82, 83, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 94, 148, 95, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 117, 148, - - 148, 148, 148, 131, 122, 148, 148, 148, 148, 120, - 148, 148, 148, 148, 148, 148, 136, 139, 148, 148, - 148, 148, 10, 15, 9, 8, 148, 12, 14, 0, - 145, 33, 148, 148, 148, 39, 148, 148, 148, 148, - 148, 148, 148, 52, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 69, 148, 148, 73, 74, 148, - 148, 148, 148, 148, 148, 87, 148, 148, 92, 148, - 148, 148, 97, 148, 148, 148, 103, 148, 104, 148, - 148, 108, 148, 109, 148, 148, 148, 148, 148, 116, - 148, 148, 148, 125, 148, 148, 148, 148, 148, 148, - - 148, 141, 148, 142, 148, 11, 148, 13, 148, 32, - 36, 38, 148, 41, 148, 148, 148, 45, 148, 148, - 148, 148, 148, 148, 148, 148, 59, 61, 148, 148, - 68, 148, 148, 148, 148, 148, 148, 86, 85, 148, - 148, 148, 98, 93, 148, 148, 148, 100, 148, 148, - 148, 113, 148, 112, 148, 118, 115, 148, 123, 124, - 148, 128, 148, 148, 148, 148, 148, 148, 148, 143, - 7, 148, 40, 42, 148, 148, 148, 148, 148, 47, - 51, 148, 148, 148, 148, 65, 148, 148, 148, 66, - 148, 148, 148, 148, 148, 84, 148, 148, 148, 148, - - 148, 148, 148, 148, 148, 148, 148, 127, 148, 148, - 126, 148, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 54, 148, 148, 148, 64, 67, 148, 77, 148, - 148, 148, 78, 148, 148, 99, 101, 102, 105, 148, - 106, 148, 148, 119, 148, 148, 132, 148, 148, 148, - 148, 148, 148, 148, 46, 148, 148, 148, 148, 70, - 148, 148, 148, 148, 90, 148, 148, 114, 129, 148, - 133, 148, 138, 148, 148, 56, 148, 53, 148, 148, - 148, 148, 148, 148, 148, 110, 148, 148, 148, 148, - 43, 148, 55, 148, 60, 148, 148, 148, 148, 111, - - 130, 137, 148, 148, 148, 148, 148, 148, 148, 148, - 148, 148, 148, 148, 148, 148, 148, 50, 58, 148, - 148, 148, 148, 148, 148, 148, 148, 148, 34, 148, - 148, 148, 148, 148, 148, 148, 148, 79, 80, 81, - 148, 148, 91, 0 + 0, 0, 152, 150, 1, 1, 150, 5, 150, 6, + 150, 150, 150, 150, 150, 145, 21, 2, 150, 16, + 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 150, 28, 24, 19, 25, 17, 26, + 18, 0, 147, 3, 4, 20, 146, 145, 0, 29, + 27, 30, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 90, 89, 149, 149, + + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 108, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 135, 136, 149, 149, + 149, 149, 149, 149, 149, 23, 22, 0, 146, 0, + 0, 148, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 49, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 63, + 149, 149, 149, 149, 149, 76, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 97, 149, 149, 149, 149, 149, 149, 149, 149, 149, + + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 122, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 141, 149, 149, 149, 149, 149, 0, 147, 0, + 0, 146, 31, 149, 149, 149, 149, 35, 37, 149, + 149, 149, 57, 149, 44, 149, 149, 149, 149, 149, + 149, 149, 48, 149, 149, 149, 149, 62, 149, 149, + 149, 149, 71, 149, 72, 149, 149, 75, 149, 149, + 149, 82, 83, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 95, 149, 96, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 118, + + 149, 149, 149, 149, 132, 123, 149, 149, 149, 149, + 121, 149, 149, 149, 149, 149, 149, 137, 140, 149, + 149, 149, 149, 10, 15, 9, 8, 149, 12, 14, + 0, 146, 33, 149, 149, 149, 39, 149, 149, 149, + 149, 149, 149, 149, 52, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 69, 149, 149, 73, 74, + 149, 149, 149, 149, 149, 149, 149, 88, 149, 149, + 93, 149, 149, 149, 98, 149, 149, 149, 104, 149, + 105, 149, 149, 109, 149, 110, 149, 149, 149, 149, + 149, 117, 149, 149, 149, 126, 149, 149, 149, 149, + + 149, 149, 149, 142, 149, 143, 149, 11, 149, 13, + 149, 32, 36, 38, 149, 41, 149, 149, 149, 45, + 149, 149, 149, 149, 149, 149, 149, 149, 59, 61, + 149, 149, 68, 149, 149, 149, 149, 149, 149, 86, + 85, 149, 87, 149, 149, 99, 94, 149, 149, 149, + 101, 149, 149, 149, 114, 149, 113, 149, 119, 116, + 149, 124, 125, 149, 129, 149, 149, 149, 149, 149, + 149, 149, 144, 7, 149, 40, 42, 149, 149, 149, + 149, 149, 47, 51, 149, 149, 149, 149, 65, 149, + 149, 149, 66, 149, 149, 149, 149, 149, 84, 149, + + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 128, 149, 149, 127, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 54, 149, 149, 149, 64, 67, + 149, 77, 149, 149, 149, 78, 149, 149, 100, 102, + 103, 106, 149, 107, 149, 149, 120, 149, 149, 133, + 149, 149, 149, 149, 149, 149, 149, 46, 149, 149, + 149, 149, 70, 149, 149, 149, 149, 91, 149, 149, + 115, 130, 149, 134, 149, 139, 149, 149, 56, 149, + 53, 149, 149, 149, 149, 149, 149, 149, 111, 149, + 149, 149, 149, 43, 149, 55, 149, 60, 149, 149, + + 149, 149, 112, 131, 138, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 50, 58, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 34, 149, 149, 149, 149, 149, 149, 149, 149, + 79, 80, 81, 149, 149, 92, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -507,157 +516,157 @@ static yyconst flex_int32_t yy_meta[73] = 2, 1 } ; -static yyconst flex_int16_t yy_base[646] = +static yyconst flex_int16_t yy_base[649] = { 0, - 0, 0, 766, 767, 767, 767, 744, 767, 758, 767, - 742, 64, 65, 63, 75, 77, 767, 767, 741, 740, - 739, 46, 48, 66, 51, 65, 78, 46, 45, 71, - 0, 700, 90, 80, 692, 76, 99, 100, 103, 155, - 693, 696, 704, 682, 767, 767, 767, 767, 767, 767, - 767, 742, 161, 767, 767, 767, 166, 181, 190, 767, - 767, 767, 0, 692, 696, 701, 694, 701, 686, 675, - 679, 62, 689, 696, 679, 156, 690, 59, 683, 692, - 681, 687, 687, 87, 687, 683, 673, 672, 668, 671, - 688, 663, 677, 127, 665, 683, 0, 659, 663, 652, - - 96, 662, 166, 689, 669, 655, 692, 666, 652, 644, - 0, 125, 27, 658, 653, 160, 646, 653, 649, 649, - 647, 167, 643, 642, 641, 131, 0, 0, 668, 643, - 651, 653, 644, 641, 629, 767, 767, 224, 229, 238, - 244, 249, 632, 648, 186, 635, 634, 635, 636, 631, - 632, 630, 630, 623, 636, 633, 623, 174, 619, 627, - 633, 628, 627, 630, 608, 620, 239, 617, 608, 0, - 609, 607, 613, 609, 618, 0, 618, 636, 621, 613, - 612, 243, 602, 634, 609, 594, 607, 604, 605, 604, - 640, 592, 606, 585, 602, 608, 597, 600, 582, 586, - - 591, 584, 595, 582, 590, 579, 572, 590, 585, 567, - 580, 573, 581, 576, 575, 564, 244, 576, 569, 577, - 598, 570, 576, 563, 562, 554, 224, 279, 284, 293, - 298, 303, 0, 555, 558, 562, 569, 0, 600, 559, - 562, 562, 0, 545, 0, 563, 552, 545, 544, 551, - 214, 555, 0, 539, 544, 537, 536, 0, 539, 539, - 546, 542, 0, 530, 0, 545, 531, 0, 528, 546, - 544, 0, 0, 524, 538, 541, 522, 546, 522, 520, - 520, 517, 524, 0, 567, 0, 209, 522, 514, 523, - 513, 517, 519, 522, 517, 506, 507, 504, 0, 510, - - 504, 501, 515, 0, 0, 499, 500, 84, 503, 0, - 514, 497, 508, 511, 506, 521, 0, 0, 485, 490, - 500, 494, 0, 0, 494, 0, 499, 492, 0, 308, - 313, 503, 483, 487, 486, 0, 485, 480, 487, 484, - 491, 488, 487, 495, 477, 484, 468, 478, 481, 480, - 479, 478, 213, 465, 0, 477, 476, 0, 0, 470, - 251, 467, 458, 463, 462, 0, 482, 455, 0, 454, - 463, 452, 0, 468, 459, 453, 0, 465, 0, 460, - 461, 0, 450, 0, 467, 455, 458, 446, 453, 0, - 449, 451, 450, 0, 435, 434, 447, 440, 447, 430, - - 434, 0, 179, 0, 442, 0, 439, 0, 436, 0, - 0, 475, 438, 0, 429, 430, 421, 0, 426, 437, - 432, 413, 422, 421, 437, 415, 0, 0, 224, 422, - 0, 421, 424, 414, 308, 450, 406, 0, 0, 415, - 433, 418, 0, 0, 417, 408, 395, 0, 404, 399, - 416, 0, 401, 0, 406, 0, 0, 409, 0, 0, - 407, 0, 406, 410, 405, 392, 404, 398, 405, 0, - 0, 386, 0, 0, 397, 409, 397, 398, 398, 0, - 0, 395, 397, 383, 395, 0, 377, 391, 392, 0, - 379, 405, 400, 393, 383, 0, 399, 383, 366, 374, - - 378, 377, 364, 369, 371, 365, 360, 0, 367, 356, - 0, 350, 368, 359, 352, 362, 391, 354, 350, 361, - 354, 0, 345, 348, 343, 0, 0, 348, 0, 369, - 368, 379, 0, 380, 337, 0, 0, 0, 0, 346, - 0, 349, 348, 0, 329, 342, 0, 339, 340, 343, - 356, 332, 333, 335, 0, 338, 337, 327, 335, 0, - 345, 344, 353, 340, 0, 332, 317, 0, 0, 312, - 0, 313, 0, 316, 307, 0, 311, 0, 310, 316, - 322, 325, 324, 323, 337, 0, 316, 315, 314, 299, - 0, 298, 0, 302, 0, 317, 316, 315, 321, 0, - - 0, 0, 302, 301, 302, 327, 326, 325, 315, 290, - 300, 278, 307, 306, 305, 298, 284, 0, 0, 301, - 300, 299, 297, 273, 305, 304, 303, 308, 0, 295, - 268, 267, 260, 193, 187, 165, 160, 0, 0, 0, - 132, 105, 0, 767, 96 + 0, 0, 769, 770, 770, 770, 747, 770, 761, 770, + 745, 64, 65, 63, 75, 77, 770, 770, 744, 743, + 742, 46, 48, 66, 51, 65, 78, 46, 45, 71, + 0, 703, 90, 80, 695, 76, 99, 100, 103, 155, + 696, 699, 707, 685, 770, 770, 770, 770, 770, 770, + 770, 745, 161, 770, 770, 770, 166, 181, 190, 770, + 770, 770, 0, 695, 699, 704, 697, 704, 689, 678, + 682, 62, 692, 699, 682, 156, 693, 59, 686, 695, + 684, 690, 690, 87, 690, 686, 676, 675, 671, 674, + 691, 666, 680, 127, 668, 686, 0, 662, 666, 655, + + 96, 665, 166, 692, 672, 658, 695, 669, 655, 647, + 0, 125, 27, 661, 656, 160, 649, 656, 652, 652, + 650, 167, 646, 645, 644, 131, 0, 0, 671, 646, + 654, 656, 647, 644, 632, 770, 770, 224, 229, 238, + 244, 249, 635, 651, 186, 638, 637, 638, 639, 634, + 635, 633, 633, 626, 639, 636, 626, 174, 622, 630, + 636, 631, 630, 633, 611, 623, 239, 620, 611, 0, + 612, 610, 616, 612, 621, 0, 621, 639, 624, 616, + 615, 243, 605, 637, 612, 597, 610, 607, 608, 607, + 643, 595, 609, 588, 605, 611, 600, 603, 585, 589, + + 594, 587, 598, 585, 593, 582, 575, 593, 588, 570, + 583, 576, 584, 579, 578, 567, 248, 579, 572, 580, + 601, 573, 579, 566, 565, 557, 230, 261, 285, 294, + 299, 304, 0, 558, 561, 565, 572, 0, 603, 562, + 565, 565, 0, 548, 0, 566, 555, 548, 547, 554, + 232, 558, 0, 542, 547, 540, 539, 0, 542, 542, + 549, 545, 0, 533, 0, 548, 534, 0, 531, 549, + 547, 0, 0, 527, 541, 544, 539, 524, 548, 524, + 522, 522, 519, 526, 0, 569, 0, 209, 524, 516, + 525, 515, 519, 521, 524, 519, 508, 509, 506, 0, + + 512, 506, 503, 517, 0, 0, 501, 502, 84, 505, + 0, 516, 499, 510, 513, 508, 523, 0, 0, 487, + 492, 502, 496, 0, 0, 496, 0, 501, 494, 0, + 309, 314, 505, 485, 489, 488, 0, 487, 482, 489, + 486, 493, 490, 489, 497, 479, 486, 470, 480, 483, + 482, 481, 480, 231, 467, 0, 479, 478, 0, 0, + 472, 297, 469, 460, 465, 464, 460, 0, 483, 456, + 0, 455, 464, 453, 0, 469, 460, 454, 0, 466, + 0, 461, 462, 0, 451, 0, 468, 456, 459, 447, + 454, 0, 450, 452, 451, 0, 436, 435, 448, 441, + + 448, 431, 435, 0, 179, 0, 443, 0, 440, 0, + 437, 0, 0, 476, 439, 0, 430, 431, 422, 0, + 427, 438, 433, 414, 423, 422, 438, 416, 0, 0, + 230, 423, 0, 422, 425, 415, 310, 451, 407, 0, + 0, 416, 0, 434, 419, 0, 0, 418, 409, 396, + 0, 405, 400, 417, 0, 402, 0, 407, 0, 0, + 410, 0, 0, 408, 0, 407, 411, 406, 393, 405, + 399, 406, 0, 0, 387, 0, 0, 398, 410, 398, + 399, 399, 0, 0, 396, 398, 384, 396, 0, 378, + 392, 393, 0, 380, 406, 401, 394, 384, 0, 400, + + 384, 367, 375, 379, 378, 365, 370, 372, 366, 361, + 0, 368, 357, 0, 351, 369, 360, 353, 363, 392, + 355, 351, 362, 355, 0, 346, 349, 344, 0, 0, + 349, 0, 370, 369, 380, 0, 381, 338, 0, 0, + 0, 0, 347, 0, 350, 349, 0, 330, 343, 0, + 340, 341, 344, 357, 333, 334, 336, 0, 339, 338, + 328, 336, 0, 346, 345, 354, 341, 0, 333, 318, + 0, 0, 313, 0, 314, 0, 317, 308, 0, 312, + 0, 311, 317, 323, 326, 325, 324, 338, 0, 317, + 316, 315, 300, 0, 299, 0, 303, 0, 318, 317, + + 316, 322, 0, 0, 0, 303, 302, 303, 328, 327, + 326, 316, 291, 301, 279, 308, 307, 306, 299, 285, + 0, 0, 302, 301, 299, 298, 274, 306, 305, 303, + 281, 0, 268, 253, 234, 239, 193, 187, 165, 160, + 0, 0, 0, 132, 105, 0, 770, 96 } ; -static yyconst flex_int16_t yy_def[646] = +static yyconst flex_int16_t yy_def[649] = { 0, - 644, 1, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 644, 644, 644, 644, 644, - 644, 644, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 644, 644, 644, - 644, 644, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 644, - 644, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, - 645, 645, 645, 0, 644 + 647, 1, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 647, 647, 647, 647, 647, + 647, 647, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 647, 647, 647, + 647, 647, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 647, 647, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, + 648, 648, 648, 648, 648, 648, 0, 647 } ; -static yyconst flex_int16_t yy_nxt[840] = +static yyconst flex_int16_t yy_nxt[843] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -673,87 +682,88 @@ static yyconst flex_int16_t yy_nxt[840] = 107, 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, 643, 86, 84, 87, 88, 100, 89, 108, 105, - 101, 169, 393, 90, 102, 109, 115, 170, 394, 103, + 83, 646, 86, 84, 87, 88, 100, 89, 108, 105, + 101, 169, 395, 90, 102, 109, 115, 170, 396, 103, 116, 171, 110, 111, 188, 112, 119, 120, 113, 117, - 121, 114, 189, 122, 123, 118, 642, 124, 125, 127, + 121, 114, 189, 122, 123, 118, 645, 124, 125, 127, 128, 200, 126, 53, 53, 53, 53, 53, 139, 139, - 139, 139, 139, 181, 182, 129, 641, 138, 219, 220, + 139, 139, 139, 181, 182, 129, 644, 138, 219, 220, 201, 57, 140, 58, 58, 58, 58, 58, 141, 141, - 640, 130, 142, 142, 142, 142, 142, 59, 206, 156, + 643, 130, 142, 142, 142, 142, 142, 59, 206, 156, 235, 138, 157, 158, 131, 159, 140, 132, 191, 160, - 213, 250, 639, 214, 207, 192, 236, 237, 638, 215, - 468, 59, 228, 228, 251, 469, 229, 229, 229, 229, - 229, 139, 139, 139, 139, 139, 231, 231, 374, 375, + 213, 250, 642, 214, 207, 192, 236, 237, 641, 215, + 471, 59, 228, 228, 251, 472, 229, 229, 229, 229, + 229, 139, 139, 139, 139, 139, 231, 231, 376, 377, 232, 232, 232, 232, 232, 230, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 260, 274, 311, 261, - 346, 275, 323, 347, 486, 324, 429, 430, 487, 230, - 325, 312, 276, 313, 326, 435, 327, 328, 436, 637, - 329, 229, 229, 229, 229, 229, 229, 229, 229, 229, - - 229, 330, 330, 636, 635, 331, 331, 331, 331, 331, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 492, 634, 633, 632, 631, 630, 629, 628, 493, 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, - 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, - 496, 495, 494, 491, 490, 489, 488, 485, 484, 483, - 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, - 472, 471, 470, 467, 466, 465, 464, 463, 462, 461, - - 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, - 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, - 440, 439, 438, 437, 434, 433, 432, 431, 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, 403, 402, 401, 400, 399, 398, 397, - 396, 395, 392, 391, 390, 389, 388, 387, 386, 385, - 384, 383, 382, 381, 380, 379, 378, 377, 376, 373, - 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, - 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, - - 352, 351, 350, 349, 348, 345, 344, 343, 342, 341, - 340, 339, 338, 337, 336, 335, 334, 333, 332, 322, - 321, 320, 319, 318, 317, 316, 315, 314, 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, 280, 279, - 278, 277, 273, 272, 271, 270, 269, 268, 267, 266, - 265, 264, 263, 262, 259, 258, 257, 256, 255, 254, - 253, 252, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 234, 233, 227, 226, 225, 224, - - 223, 222, 221, 218, 217, 216, 212, 211, 210, 209, - 208, 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, 106, 99, 62, - 61, 60, 47, 46, 45, 644, 3, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644 + 142, 142, 142, 142, 142, 142, 260, 274, 640, 261, + 639, 275, 312, 229, 229, 229, 229, 229, 324, 230, + 489, 325, 276, 277, 490, 313, 326, 314, 347, 638, + 327, 348, 328, 329, 431, 432, 330, 229, 229, 229, + + 229, 229, 331, 331, 637, 636, 332, 332, 332, 332, + 332, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 332, 332, 332, 332, 332, 332, 332, 332, 332, + 332, 437, 495, 635, 438, 634, 633, 632, 631, 630, + 496, 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, 506, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 494, 493, 492, 491, 488, 487, + 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, + 476, 475, 474, 473, 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, 445, + 444, 443, 442, 441, 440, 439, 436, 435, 434, 433, + 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, 403, 402, 401, + 400, 399, 398, 397, 394, 393, 392, 391, 390, 389, + 388, 387, 386, 385, 384, 383, 382, 381, 380, 379, + 378, 375, 374, 373, 372, 371, 370, 369, 368, 367, + 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, + + 356, 355, 354, 353, 352, 351, 350, 349, 346, 345, + 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, + 334, 333, 323, 322, 321, 320, 319, 318, 317, 316, + 315, 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, 280, 279, 278, 273, 272, 271, 270, 269, + 268, 267, 266, 265, 264, 263, 262, 259, 258, 257, + 256, 255, 254, 253, 252, 249, 248, 247, 246, 245, + 244, 243, 242, 241, 240, 239, 238, 234, 233, 227, + + 226, 225, 224, 223, 222, 221, 218, 217, 216, 212, + 211, 210, 209, 208, 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, + 106, 99, 62, 61, 60, 47, 46, 45, 647, 3, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647 } ; -static yyconst flex_int16_t yy_chk[840] = +static yyconst flex_int16_t yy_chk[843] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -764,89 +774,90 @@ static yyconst flex_int16_t yy_chk[840] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, 14, 28, 113, 15, 113, 12, 13, 15, 16, 23, 16, - 16, 16, 16, 16, 22, 15, 28, 645, 23, 29, + 16, 16, 16, 16, 22, 15, 28, 648, 23, 29, 36, 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, 642, 27, 26, 27, 27, 33, 27, 36, 34, - 33, 84, 308, 27, 33, 37, 38, 84, 308, 33, + 26, 645, 27, 26, 27, 27, 33, 27, 36, 34, + 33, 84, 309, 27, 33, 37, 38, 84, 309, 33, 38, 84, 37, 37, 101, 37, 39, 39, 37, 38, - 39, 37, 101, 39, 39, 38, 641, 39, 39, 40, + 39, 37, 101, 39, 39, 38, 644, 39, 39, 40, 40, 112, 39, 53, 53, 53, 53, 53, 57, 57, - 57, 57, 57, 94, 94, 40, 637, 53, 126, 126, + 57, 57, 57, 94, 94, 40, 640, 53, 126, 126, 112, 58, 57, 58, 58, 58, 58, 58, 59, 59, - 636, 40, 59, 59, 59, 59, 59, 58, 116, 76, + 639, 40, 59, 59, 59, 59, 59, 58, 116, 76, 145, 53, 76, 76, 40, 76, 57, 40, 103, 76, - 122, 158, 635, 122, 116, 103, 145, 145, 634, 122, - 403, 58, 138, 138, 158, 403, 138, 138, 138, 138, - 138, 139, 139, 139, 139, 139, 140, 140, 287, 287, + 122, 158, 638, 122, 116, 103, 145, 145, 637, 122, + 405, 58, 138, 138, 158, 405, 138, 138, 138, 138, + 138, 139, 139, 139, 139, 139, 140, 140, 288, 288, 140, 140, 140, 140, 140, 139, 141, 141, 141, 141, - 141, 142, 142, 142, 142, 142, 167, 182, 217, 167, - 251, 182, 227, 251, 429, 227, 353, 353, 429, 139, - 227, 217, 182, 217, 227, 361, 227, 227, 361, 633, - 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, - - 229, 230, 230, 632, 631, 230, 230, 230, 230, 230, - 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, - 330, 330, 330, 330, 330, 331, 331, 331, 331, 331, - 435, 630, 628, 627, 626, 625, 624, 623, 435, 622, - 621, 620, 617, 616, 615, 614, 613, 612, 611, 610, - 609, 608, 607, 606, 605, 604, 603, 599, 598, 597, - 596, 594, 592, 590, 589, 588, 587, 585, 584, 583, - 582, 581, 580, 579, 577, 575, 574, 572, 570, 567, - 566, 564, 563, 562, 561, 559, 558, 557, 556, 554, - 553, 552, 551, 550, 549, 548, 546, 545, 543, 542, - - 540, 535, 534, 532, 531, 530, 528, 525, 524, 523, - 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, - 510, 509, 507, 506, 505, 504, 503, 502, 501, 500, - 499, 498, 497, 495, 494, 493, 492, 491, 489, 488, - 487, 485, 484, 483, 482, 479, 478, 477, 476, 475, - 472, 469, 468, 467, 466, 465, 464, 463, 461, 458, - 455, 453, 451, 450, 449, 447, 446, 445, 442, 441, - 440, 437, 436, 434, 433, 432, 430, 426, 425, 424, - 423, 422, 421, 420, 419, 417, 416, 415, 413, 412, - 409, 407, 405, 401, 400, 399, 398, 397, 396, 395, - - 393, 392, 391, 389, 388, 387, 386, 385, 383, 381, - 380, 378, 376, 375, 374, 372, 371, 370, 368, 367, - 365, 364, 363, 362, 360, 357, 356, 354, 352, 351, - 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, - 340, 339, 338, 337, 335, 334, 333, 332, 328, 327, - 325, 322, 321, 320, 319, 316, 315, 314, 313, 312, - 311, 309, 307, 306, 303, 302, 301, 300, 298, 297, - 296, 295, 294, 293, 292, 291, 290, 289, 288, 285, - 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, - 271, 270, 269, 267, 266, 264, 262, 261, 260, 259, - - 257, 256, 255, 254, 252, 250, 249, 248, 247, 246, - 244, 242, 241, 240, 239, 237, 236, 235, 234, 226, - 225, 224, 223, 222, 221, 220, 219, 218, 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, 179, 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, 35, 32, 21, - 20, 19, 11, 9, 7, 3, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, - 644, 644, 644, 644, 644, 644, 644, 644, 644 + 141, 142, 142, 142, 142, 142, 167, 182, 636, 167, + 635, 182, 217, 228, 228, 228, 228, 228, 227, 139, + 431, 227, 182, 182, 431, 217, 227, 217, 251, 634, + 227, 251, 227, 227, 354, 354, 227, 229, 229, 229, + + 229, 229, 230, 230, 633, 631, 230, 230, 230, 230, + 230, 231, 231, 231, 231, 231, 232, 232, 232, 232, + 232, 331, 331, 331, 331, 331, 332, 332, 332, 332, + 332, 362, 437, 630, 362, 629, 628, 627, 626, 625, + 437, 624, 623, 620, 619, 618, 617, 616, 615, 614, + 613, 612, 611, 610, 609, 608, 607, 606, 602, 601, + 600, 599, 597, 595, 593, 592, 591, 590, 588, 587, + 586, 585, 584, 583, 582, 580, 578, 577, 575, 573, + 570, 569, 567, 566, 565, 564, 562, 561, 560, 559, + 557, 556, 555, 554, 553, 552, 551, 549, 548, 546, + + 545, 543, 538, 537, 535, 534, 533, 531, 528, 527, + 526, 524, 523, 522, 521, 520, 519, 518, 517, 516, + 515, 513, 512, 510, 509, 508, 507, 506, 505, 504, + 503, 502, 501, 500, 498, 497, 496, 495, 494, 492, + 491, 490, 488, 487, 486, 485, 482, 481, 480, 479, + 478, 475, 472, 471, 470, 469, 468, 467, 466, 464, + 461, 458, 456, 454, 453, 452, 450, 449, 448, 445, + 444, 442, 439, 438, 436, 435, 434, 432, 428, 427, + 426, 425, 424, 423, 422, 421, 419, 418, 417, 415, + 414, 411, 409, 407, 403, 402, 401, 400, 399, 398, + + 397, 395, 394, 393, 391, 390, 389, 388, 387, 385, + 383, 382, 380, 378, 377, 376, 374, 373, 372, 370, + 369, 367, 366, 365, 364, 363, 361, 358, 357, 355, + 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, + 343, 342, 341, 340, 339, 338, 336, 335, 334, 333, + 329, 328, 326, 323, 322, 321, 320, 317, 316, 315, + 314, 313, 312, 310, 308, 307, 304, 303, 302, 301, + 299, 298, 297, 296, 295, 294, 293, 292, 291, 290, + 289, 286, 284, 283, 282, 281, 280, 279, 278, 277, + 276, 275, 274, 271, 270, 269, 267, 266, 264, 262, + + 261, 260, 259, 257, 256, 255, 254, 252, 250, 249, + 248, 247, 246, 244, 242, 241, 240, 239, 237, 236, + 235, 234, 226, 225, 224, 223, 222, 221, 220, 219, + 218, 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, 179, 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, + 35, 32, 21, 20, 19, 11, 9, 7, 3, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647, 647, 647, 647, 647, 647, 647, 647, 647, + 647, 647 } ; static yy_state_type yy_last_accepting_state; @@ -903,7 +914,7 @@ void skipline(void); #define YY_NO_UNISTD_H #endif -#line 907 "Gmsh.yy.cpp" +#line 918 "Gmsh.yy.cpp" #define INITIAL 0 @@ -942,7 +953,7 @@ FILE *gmsh_yyget_out (void ); void gmsh_yyset_out (FILE * out_str ); -yy_size_t gmsh_yyget_leng (void ); +int gmsh_yyget_leng (void ); char *gmsh_yyget_text (void ); @@ -984,7 +995,12 @@ static int input (void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -992,7 +1008,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout ) +#define ECHO do { if (fwrite( gmsh_yytext, gmsh_yyleng, 1, gmsh_yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -1003,7 +1019,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - yy_size_t n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( gmsh_yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1088,7 +1104,7 @@ YY_DECL #line 49 "Gmsh.l" -#line 1092 "Gmsh.yy.cpp" +#line 1108 "Gmsh.yy.cpp" if ( !(yy_init) ) { @@ -1141,13 +1157,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 >= 645 ) + if ( yy_current_state >= 648 ) 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] != 767 ); + while ( yy_base[yy_current_state] != 770 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1605,315 +1621,320 @@ return tHomCut; case 87: YY_RULE_SETUP #line 145 "Gmsh.l" -return tHypot; +return tHomSeq; YY_BREAK case 88: YY_RULE_SETUP -#line 147 "Gmsh.l" -return tIn; +#line 146 "Gmsh.l" +return tHypot; YY_BREAK case 89: YY_RULE_SETUP #line 148 "Gmsh.l" -return tIf; +return tIn; YY_BREAK case 90: YY_RULE_SETUP #line 149 "Gmsh.l" -return tIntersect; +return tIf; YY_BREAK case 91: YY_RULE_SETUP #line 150 "Gmsh.l" -return tInterpolationScheme; +return tIntersect; YY_BREAK case 92: YY_RULE_SETUP -#line 152 "Gmsh.l" -return tNurbsKnots; +#line 151 "Gmsh.l" +return tInterpolationScheme; YY_BREAK case 93: YY_RULE_SETUP -#line 154 "Gmsh.l" -return tLength; +#line 153 "Gmsh.l" +return tNurbsKnots; YY_BREAK case 94: YY_RULE_SETUP #line 155 "Gmsh.l" -return tLine; +return tLength; YY_BREAK case 95: YY_RULE_SETUP #line 156 "Gmsh.l" -return tLoop; +return tLine; YY_BREAK case 96: YY_RULE_SETUP #line 157 "Gmsh.l" -return tLog; +return tLoop; YY_BREAK case 97: YY_RULE_SETUP #line 158 "Gmsh.l" -return tLog10; +return tLog; YY_BREAK case 98: YY_RULE_SETUP #line 159 "Gmsh.l" -return tLayers; +return tLog10; YY_BREAK case 99: YY_RULE_SETUP #line 160 "Gmsh.l" -return tLevelset; +return tLayers; YY_BREAK case 100: YY_RULE_SETUP -#line 162 "Gmsh.l" -return tModulo; +#line 161 "Gmsh.l" +return tLevelset; YY_BREAK case 101: YY_RULE_SETUP #line 163 "Gmsh.l" -return tMPI_Rank; +return tModulo; YY_BREAK case 102: YY_RULE_SETUP #line 164 "Gmsh.l" -return tMPI_Size; +return tMPI_Rank; YY_BREAK case 103: YY_RULE_SETUP -#line 166 "Gmsh.l" -return tNurbs; +#line 165 "Gmsh.l" +return tMPI_Size; YY_BREAK case 104: YY_RULE_SETUP -#line 168 "Gmsh.l" -return tNurbsOrder; +#line 167 "Gmsh.l" +return tNurbs; YY_BREAK case 105: YY_RULE_SETUP #line 169 "Gmsh.l" -return tOCCShape; +return tNurbsOrder; YY_BREAK case 106: YY_RULE_SETUP -#line 171 "Gmsh.l" -return tPhysical; +#line 170 "Gmsh.l" +return tOCCShape; YY_BREAK case 107: YY_RULE_SETUP #line 172 "Gmsh.l" -return tPi; +return tPhysical; YY_BREAK case 108: YY_RULE_SETUP #line 173 "Gmsh.l" -return tPlane; +return tPi; YY_BREAK case 109: YY_RULE_SETUP #line 174 "Gmsh.l" -return tPoint; +return tPlane; YY_BREAK case 110: YY_RULE_SETUP #line 175 "Gmsh.l" -return tParametric; +return tPoint; YY_BREAK case 111: YY_RULE_SETUP #line 176 "Gmsh.l" -return tPolarSphere; +return tParametric; YY_BREAK case 112: YY_RULE_SETUP #line 177 "Gmsh.l" -return tPrintf; +return tPolarSphere; YY_BREAK case 113: YY_RULE_SETUP #line 178 "Gmsh.l" -return tPlugin; +return tPrintf; YY_BREAK case 114: YY_RULE_SETUP -#line 180 "Gmsh.l" -return tRecombine; +#line 179 "Gmsh.l" +return tPlugin; YY_BREAK case 115: YY_RULE_SETUP #line 181 "Gmsh.l" -return tRotate; +return tRecombine; YY_BREAK case 116: YY_RULE_SETUP #line 182 "Gmsh.l" -return tRuled; +return tRotate; YY_BREAK case 117: YY_RULE_SETUP #line 183 "Gmsh.l" -return tRand; +return tRuled; YY_BREAK case 118: YY_RULE_SETUP #line 184 "Gmsh.l" -return tReturn; +return tRand; YY_BREAK case 119: YY_RULE_SETUP -#line 186 "Gmsh.l" -return tSmoother; +#line 185 "Gmsh.l" +return tReturn; YY_BREAK case 120: YY_RULE_SETUP #line 187 "Gmsh.l" -return tSqrt; +return tSmoother; YY_BREAK case 121: YY_RULE_SETUP #line 188 "Gmsh.l" -return tSin; +return tSqrt; YY_BREAK case 122: YY_RULE_SETUP #line 189 "Gmsh.l" -return tSinh; +return tSin; YY_BREAK case 123: YY_RULE_SETUP #line 190 "Gmsh.l" -return tSphere; +return tSinh; YY_BREAK case 124: YY_RULE_SETUP #line 191 "Gmsh.l" -return tSpline; +return tSphere; YY_BREAK case 125: YY_RULE_SETUP #line 192 "Gmsh.l" -return tSplit; +return tSpline; YY_BREAK case 126: YY_RULE_SETUP #line 193 "Gmsh.l" -return tSurface; +return tSplit; YY_BREAK case 127: YY_RULE_SETUP #line 194 "Gmsh.l" -return tSprintf; +return tSurface; YY_BREAK case 128: YY_RULE_SETUP #line 195 "Gmsh.l" -return tStrCat; +return tSprintf; YY_BREAK case 129: YY_RULE_SETUP #line 196 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 130: YY_RULE_SETUP #line 197 "Gmsh.l" -return tStrRelative; +return tStrPrefix; YY_BREAK case 131: YY_RULE_SETUP #line 198 "Gmsh.l" -return tShow; +return tStrRelative; YY_BREAK case 132: YY_RULE_SETUP #line 199 "Gmsh.l" -return tSymmetry; +return tShow; YY_BREAK case 133: YY_RULE_SETUP #line 200 "Gmsh.l" -return tSyncModel; +return tSymmetry; YY_BREAK case 134: YY_RULE_SETUP -#line 202 "Gmsh.l" -return tText2D; +#line 201 "Gmsh.l" +return tSyncModel; YY_BREAK case 135: YY_RULE_SETUP #line 203 "Gmsh.l" -return tText3D; +return tText2D; YY_BREAK case 136: YY_RULE_SETUP #line 204 "Gmsh.l" -return tTime; +return tText3D; YY_BREAK case 137: YY_RULE_SETUP #line 205 "Gmsh.l" -return tTransfinite; +return tTime; YY_BREAK case 138: YY_RULE_SETUP #line 206 "Gmsh.l" -return tTranslate; +return tTransfinite; YY_BREAK case 139: YY_RULE_SETUP #line 207 "Gmsh.l" -return tTanh; +return tTranslate; YY_BREAK case 140: YY_RULE_SETUP #line 208 "Gmsh.l" -return tTan; +return tTanh; YY_BREAK case 141: YY_RULE_SETUP #line 209 "Gmsh.l" -return tToday; +return tTan; YY_BREAK case 142: YY_RULE_SETUP -#line 211 "Gmsh.l" -return tUsing; +#line 210 "Gmsh.l" +return tToday; YY_BREAK case 143: YY_RULE_SETUP -#line 213 "Gmsh.l" -return tVolume; +#line 212 "Gmsh.l" +return tUsing; YY_BREAK case 144: -#line 216 "Gmsh.l" +YY_RULE_SETUP +#line 214 "Gmsh.l" +return tVolume; + YY_BREAK case 145: #line 217 "Gmsh.l" case 146: #line 218 "Gmsh.l" case 147: +#line 219 "Gmsh.l" +case 148: YY_RULE_SETUP -#line 218 "Gmsh.l" +#line 219 "Gmsh.l" { gmsh_yylval.d = atof((char *)gmsh_yytext); return tDOUBLE; } YY_BREAK -case 148: +case 149: YY_RULE_SETUP -#line 220 "Gmsh.l" +#line 221 "Gmsh.l" { gmsh_yylval.c = strsave((char*)gmsh_yytext); return tSTRING; } YY_BREAK -case 149: +case 150: YY_RULE_SETUP -#line 222 "Gmsh.l" +#line 223 "Gmsh.l" return gmsh_yytext[0]; YY_BREAK -case 150: +case 151: YY_RULE_SETUP -#line 224 "Gmsh.l" +#line 225 "Gmsh.l" ECHO; YY_BREAK -#line 1917 "Gmsh.yy.cpp" +#line 1938 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2099,7 +2120,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2113,7 +2134,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2144,7 +2165,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), num_to_read ); + (yy_n_chars), (size_t) num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -2205,7 +2226,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 >= 645 ) + if ( yy_current_state >= 648 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2233,11 +2254,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 >= 645 ) + if ( yy_current_state >= 648 ) 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 == 644); + yy_is_jam = (yy_current_state == 647); return yy_is_jam ? 0 : yy_current_state; } @@ -2254,7 +2275,7 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register yy_size_t number_to_move = (yy_n_chars) + 2; + register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = @@ -2303,7 +2324,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -2327,7 +2348,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( gmsh_yywrap( ) ) - return 0; + return EOF; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -2579,7 +2600,7 @@ void gmsh_yypop_buffer_state (void) */ static void gmsh_yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -2671,16 +2692,17 @@ YY_BUFFER_STATE gmsh_yy_scan_string (yyconst char * yystr ) /** Setup the input buffer state to scan the given bytes. The next call to gmsh_yylex() will * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE gmsh_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n, i; + yy_size_t n; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -2762,7 +2784,7 @@ FILE *gmsh_yyget_out (void) /** Get the length of the current token. * */ -yy_size_t gmsh_yyget_leng (void) +int gmsh_yyget_leng (void) { return gmsh_yyleng; } @@ -2910,7 +2932,7 @@ void gmsh_yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 224 "Gmsh.l" +#line 225 "Gmsh.l"