diff --git a/Common/Makefile b/Common/Makefile index 21f7446ee4a71968470aaf94cf9a1bb59094e936..effeb787c0f23c89b8c5012cfd0612bb0ad9b8b0 100644 --- a/Common/Makefile +++ b/Common/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.83 2006-01-28 18:44:19 geuzaine Exp $ +# $Id: Makefile,v 1.84 2006-01-28 21:13:35 geuzaine Exp $ # # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # @@ -87,7 +87,7 @@ Views.o: Views.cpp Gmsh.h Message.h ../DataStr/Malloc.h ../DataStr/List.h \ ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \ ../DataStr/Tree.h ../Numeric/Numeric.h Views.h ColorTable.h \ VertexArray.h SmoothNormals.h GmshMatrix.h AdaptiveViews.h Context.h \ - Options.h xyzv.h + Options.h # 1 "/Users/geuzaine/.gmsh/Common//" ViewsIO.o: ViewsIO.cpp Gmsh.h Message.h ../DataStr/Malloc.h \ ../DataStr/List.h ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h \ diff --git a/Common/Views.cpp b/Common/Views.cpp index 1aa656a213423f2edf3773115987c4f3ce609494..6150e536238e582518e6c2eaaa82bd6b15824291 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.183 2006-01-27 21:15:30 geuzaine Exp $ +// $Id: Views.cpp,v 1.184 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -29,7 +29,6 @@ #include "Context.h" #include "Options.h" #include "ColorTable.h" -#include "xyzv.h" #include "SmoothNormals.h" #if defined(HAVE_MATH_EVAL) @@ -894,7 +893,54 @@ void Post_View::splitCurvedElements() // Smoothing +struct xyzv { + double x, y, z, *vals; + int nbvals; + int nboccurences; + static double eps; + xyzv(double xx, double yy, double zz) + : x(xx), y(yy), z(zz), vals(0), nbvals(0), nboccurences(0) {} + ~xyzv(){ if(vals) delete [] vals; } + void update(int n, double *v) + { + if(!vals) { + vals = new double[n]; + for(int i = 0; i < n; i++) + vals[i] = 0.0; + nbvals = n; + nboccurences = 0; + } + else if(nbvals != n) { + throw n; + } + double x1 = (double)(nboccurences) / (double)(nboccurences + 1); + double x2 = 1. / (double)(nboccurences + 1); + for(int i = 0; i < nbvals; i++) + vals[i] = (x1 * vals[i] + x2 * v[i]); + nboccurences++; + } +}; + +struct lessthanxyzv { + bool operator () (const xyzv & p2, const xyzv & p1)const + { + if(p1.x - p2.x > xyzv::eps) + return true; + if(p1.x - p2.x < -xyzv::eps) + return false; + if(p1.y - p2.y > xyzv::eps) + return true; + if(p1.y - p2.y < -xyzv::eps) + return false; + if(p1.z - p2.z > xyzv::eps) + return true; + return false; + } +}; + double xyzv::eps = 1.e-12; +typedef set < xyzv, lessthanxyzv > xyzv_cont; +typedef xyzv_cont::const_iterator xyzv_iter; void generate_connectivities(List_T * list, int nbList, int nbTimeStep, int nbVert, xyzv_cont & connectivities) diff --git a/Common/xyzv.h b/Common/xyzv.h deleted file mode 100644 index 95ff83220df0110584a874c80b66e137fb91776e..0000000000000000000000000000000000000000 --- a/Common/xyzv.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef _XYZV_H_ -#define _XYZV_H_ - -// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle -// -// 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems to <gmsh@geuz.org>. - -#include <set> - -using namespace std; - -struct xyzv -{ - double x, y, z, *vals; - int nbvals; - int nboccurences; - static double eps; - xyzv(double xx, double yy, double zz) - : x(xx), y(yy), z(zz), vals(0), nbvals(0), nboccurences(0) - { - } - ~xyzv() - { - if(vals) delete [] vals; - } - xyzv(const xyzv & other) - { - x = other.x; - y = other.y; - z = other.z; - nbvals = other.nbvals; - nboccurences = other.nboccurences; - if(other.vals && other.nbvals) { - vals = new double[other.nbvals]; - for(int i = 0; i < nbvals; i++) - vals[i] = other.vals[i]; - } - } - xyzv & operator =(const xyzv &other) - { - if(this != &other) { - x = other.x; - y = other.y; - z = other.z; - nbvals = other.nbvals; - nboccurences = other.nboccurences; - if(other.vals && other.nbvals) { - vals = new double[other.nbvals]; - for(int i = 0; i < nbvals; i++) - vals[i] = other.vals[i]; - } - } - return *this; - } - void update(int n, double *v) - { - if(!vals) { - vals = new double[n]; - for(int i = 0; i < n; i++) - vals[i] = 0.0; - nbvals = n; - nboccurences = 0; - } - else if(nbvals != n) { - throw n; - } - double x1 = (double)(nboccurences) / (double)(nboccurences + 1); - double x2 = 1. / (double)(nboccurences + 1); - for(int i = 0; i < nbvals; i++) - vals[i] = (x1 * vals[i] + x2 * v[i]); - nboccurences++; - } -}; - -struct lessthanxyzv -{ - bool operator () (const xyzv & p2, const xyzv & p1)const - { - if(p1.x - p2.x > xyzv::eps) - return true; - if(p1.x - p2.x < -xyzv::eps) - return false; - if(p1.y - p2.y > xyzv::eps) - return true; - if(p1.y - p2.y < -xyzv::eps) - return false; - if(p1.z - p2.z > xyzv::eps) - return true; - return false; - } -}; - -typedef set < xyzv, lessthanxyzv > xyzv_cont; -typedef xyzv_cont::const_iterator xyzv_iter; - -#endif diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp index eba11165f8b0dae71af4eeaca2266020f0672c6b..dc13926e1efc0c47b7d00c0d1ab86d4317cc1b24 100644 --- a/Geo/CAD.cpp +++ b/Geo/CAD.cpp @@ -1,4 +1,4 @@ -// $Id: CAD.cpp,v 1.93 2006-01-14 22:32:58 geuzaine Exp $ +// $Id: CAD.cpp,v 1.94 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -2092,19 +2092,7 @@ void ReplaceAllDuplicates(Mesh * m) } -// Intersection routines -// FIXME: this code is full of crap :-) - -/* - S = (sx(u,v),sy(u,v),sz(u,v)) - C = (cx(w),cy(w),cz(w)) - - sx - cx = 0 - sy - cy = 0 - sz - cz = 0 - - 3eqs 3incs -*/ +// Projection of point on curve or surface static Curve *CURVE, *CURVE_2; static Surface *SURFACE; @@ -2341,12 +2329,6 @@ bool ProjectPointOnSurface(Surface * s, Vertex * p, double *u, double *v) deb = 0; } - if(p->Num == 160) { - lmin += 1.e90; - if(p->Num == 133) - UMAX = s->ku[s->Nu + s->OrderU]; - } - if(try_a_value(SURFACE, VERTEX, SURFACE->ku[0] + VERTEX->u, SURFACE->kv[0], u, v)) return true; @@ -2409,6 +2391,14 @@ bool ProjectPointOnSurface(Surface * s, Vertex * p, double *u, double *v) return true; } +// Intersection of curves/surfaces (FIXME: this code is full of crap) + +// S = (sx(u,v),sy(u,v),sz(u,v)) C = (cx(w),cy(w),cz(w)) +// sx - cx = 0 +// sy - cy = 0 +// sz - cz = 0 +// 3eqs 3unk + bool IntersectCurveSurface(Curve * c, Surface * s) { double x[4]; diff --git a/Geo/Makefile b/Geo/Makefile index 4a1de8b95896974a3afa80326399a7c92155c91a..7173ab1b3d0ab8b06ac07a9bf89d91bfe5f25c9c 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.71 2006-01-28 18:44:19 geuzaine Exp $ +# $Id: Makefile,v 1.72 2006-01-28 21:13:35 geuzaine Exp $ # # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # @@ -32,7 +32,6 @@ SRC = CAD.cpp \ ExtrudeParams.cpp \ Geo.cpp \ GeoUtils.cpp \ - StepGeomDatabase.cpp \ ExtractContour.cpp \ Print_Geo.cpp @@ -111,20 +110,6 @@ GeoUtils.o: GeoUtils.cpp ../Common/Gmsh.h ../Common/Message.h \ ../Mesh/Metric.h ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h \ ../Mesh/Matrix.h ExtrudeParams.h # 1 "/Users/geuzaine/.gmsh/Geo//" -StepGeomDatabase.o: StepGeomDatabase.cpp ../Common/Gmsh.h \ - ../Common/Message.h ../DataStr/Malloc.h ../DataStr/List.h \ - ../DataStr/Tree.h ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h \ - ../DataStr/Tree.h ../Numeric/Numeric.h Geo.h GeoUtils.h ../Mesh/Mesh.h \ - ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Vertex.h ../Mesh/Simplex.h \ - ../Mesh/Vertex.h ../Mesh/Element.h ../Mesh/Face.h ../Mesh/Vertex.h \ - ../Mesh/Element.h ../Mesh/Edge.h ../Mesh/Vertex.h ../Mesh/Simplex.h \ - ../Geo/ExtrudeParams.h ../Common/VertexArray.h \ - ../Common/SmoothNormals.h ../Mesh/Metric.h ../Mesh/Vertex.h \ - ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h ../Mesh/Nurbs.h \ - ../Mesh/Vertex.h ../Mesh/Mesh.h CAD.h ExtrudeParams.h \ - StepGeomDatabase.h ../Mesh/Create.h ../Mesh/Vertex.h ../Mesh/Mesh.h \ - ../Common/Context.h -# 1 "/Users/geuzaine/.gmsh/Geo//" ExtractContour.o: ExtractContour.cpp ../Common/Gmsh.h ../Common/Message.h \ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \ ../DataStr/avl.h ../DataStr/Tools.h ../DataStr/List.h ../DataStr/Tree.h \ diff --git a/Geo/StepGeomDatabase.cpp b/Geo/StepGeomDatabase.cpp deleted file mode 100644 index 5f735c8a30e34923e4af20f78cd9141c523ed0f5..0000000000000000000000000000000000000000 --- a/Geo/StepGeomDatabase.cpp +++ /dev/null @@ -1,820 +0,0 @@ -// $Id: StepGeomDatabase.cpp,v 1.19 2006-01-06 00:34:24 geuzaine Exp $ -// -// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle -// -// 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems to <gmsh@geuz.org>. - -#include "Gmsh.h" -#include "Numeric.h" -#include "Geo.h" -#include "GeoUtils.h" -#include "Nurbs.h" -#include "CAD.h" -#include "StepGeomDatabase.h" -#include "Create.h" -#include "Context.h" - -// WARNING: NOT FUNCTIONAL AT THE MOMENT -- NEEDS TO BE PORTED TO THE NEW -// GEO CREATION INTERFACES (SEE "TODO"s) - -extern Context_T CTX; -extern Mesh *THEM; - -static Step_Solid_BRep_t *BREP = NULL; - -Step_Solid_BRep_t *Create_Step_Solid_BRep(void) -{ - Step_Solid_BRep_t *NEWBREP; - NEWBREP = (Step_Solid_BRep_t *) Malloc(sizeof(Step_Solid_BRep_t)); - NEWBREP->AllDirections = List_Create(10, 10, sizeof(Step_Direction_t)); - NEWBREP->AllVectors = List_Create(10, 10, sizeof(Step_Vector_t)); - NEWBREP->AllCartesian_Points = List_Create(10, 10, sizeof(Step_Cartesian_Point_t)); - NEWBREP->AllVertex_Points = List_Create(10, 10, sizeof(Step_Vertex_Point_t)); - NEWBREP->AllCurves = List_Create(10, 10, sizeof(Step_Curve_t)); - NEWBREP->AllSurfaces = List_Create(10, 10, sizeof(Step_Surface_t)); - NEWBREP->AllClosed_Shells = List_Create(10, 10, sizeof(Step_Closed_Shell_t)); - NEWBREP->AllFaces_Outer_Bound = List_Create(10, 10, sizeof(Step_Face_Outer_Bound_t)); - NEWBREP->AllOriented_Edges = List_Create(10, 10, sizeof(Step_Oriented_Edge_t)); - NEWBREP->AllEdge_Loops = List_Create(10, 10, sizeof(Step_Edge_Loop_t)); - NEWBREP->AllEdge_Curves = List_Create(10, 10, sizeof(Step_Edge_Curve_t)); - NEWBREP->AllAdvanced_Faces = List_Create(10, 10, sizeof(Step_Advanced_Face_t)); - NEWBREP->AllAxis2_Placement3D = List_Create(10, 10, sizeof(Step_Axis2_Placement3D_t)); - NEWBREP->AllClosed_Shells = List_Create(10, 10, sizeof(Step_Closed_Shell_t)); - BREP = NEWBREP; - return NEWBREP; -} - -// Directions - -void Add_Direction(int Num, char *name, double x, double y, double z) -{ - Step_Direction_t Dir; - if(!BREP) - return; - Dir.Pos.X = x; - Dir.Pos.Y = y; - Dir.Pos.Z = z; - Dir.Num = Num; - List_Add(BREP->AllDirections, &Dir); -} - -static int comparedir(const void *a, const void *b) -{ - return (((Step_Direction_t *) a)->Num - ((Step_Direction_t *) b)->Num); -} - -Step_Direction_t *Get_Direction(int Num) -{ - Step_Direction_t Dir; - if(!BREP) - return NULL; - Dir.Num = Num; - return (Step_Direction_t *) List_PQuery(BREP->AllDirections, &Dir, - comparedir); -} - -// Axis2_Placement3D - -void Add_Axis2_Placement3D(int Num, int dir1, int dir2, int ver) -{ - Step_Axis2_Placement3D_t Axe; - if(!BREP) - return; - Axe.Num = Num; - Axe.Step_Cartesian_Point = ver; - Axe.Step_Direction1 = dir1; - Axe.Step_Direction2 = dir2; - List_Add(BREP->AllAxis2_Placement3D, &Axe); -} - -static int compareax(const void *a, const void *b) -{ - return (((Step_Axis2_Placement3D_t *) a)->Num - - ((Step_Axis2_Placement3D_t *) b)->Num); -} - -Step_Axis2_Placement3D_t *Get_Axis2_Placement3D(int Num) -{ - Step_Axis2_Placement3D_t Axe; - if(!BREP) - return NULL; - Axe.Num = Num; - return (Step_Axis2_Placement3D_t *) List_PQuery(BREP->AllAxis2_Placement3D, - &Axe, compareax); -} - -// Vectors - -void Add_Vector(int Num, char *name, int Dir, double l) -{ - Step_Vector_t Vec; - if(!BREP) - return; - Vec.Lenght = l; - Vec.Step_Direction = Dir; - Vec.Num = Num; - List_Add(BREP->AllVectors, &Vec); -} - -static int comparevec(const void *a, const void *b) -{ - return (((Step_Vector_t *) a)->Num - ((Step_Vector_t *) b)->Num); -} - -Step_Vector_t *Get_Vector(int Num) -{ - Step_Vector_t Vec; - if(!BREP) - return NULL; - Vec.Num = Num; - return (Step_Vector_t *) List_PQuery(BREP->AllVectors, &Vec, comparevec); -} - -// Cartesian_Points - -void Add_Cartesian_Point(int Num, char *name, double x, double y, double z) -{ - Step_Cartesian_Point_t CP; - - if(!BREP) { - return; - } - CP.Pos.X = x; - CP.Pos.Y = y; - CP.Pos.Z = z; - CP.Num = Num; - - List_Add(BREP->AllCartesian_Points, &CP); -} -static int comparecp(const void *a, const void *b) -{ - return (((Step_Cartesian_Point_t *) a)->Num - - ((Step_Cartesian_Point_t *) b)->Num); -} - -Step_Cartesian_Point_t *Get_Cartesian_Point(int Num) -{ - Step_Cartesian_Point_t CP; - if(!BREP) - return NULL; - CP.Num = Num; - return (Step_Cartesian_Point_t *) List_PQuery(BREP->AllCartesian_Points, - &CP, comparecp); -} - -// Vertex_Points - -void Add_Vertex_Point(int Num, char *name, int cp) -{ - Step_Vertex_Point_t VP; - if(!BREP) - return; - VP.Cartesian_Point = cp; - VP.Num = Num; - List_Add(BREP->AllVertex_Points, &VP); -} -static int comparevp(const void *a, const void *b) -{ - return (((Step_Vertex_Point_t *) a)->Num - - ((Step_Vertex_Point_t *) b)->Num); -} - -Step_Vertex_Point_t *Get_Vertex_Point(int Num) -{ - Step_Vertex_Point_t VP; - if(!BREP) - return NULL; - VP.Num = Num; - return (Step_Vertex_Point_t *) List_PQuery(BREP->AllVertex_Points, &VP, - comparevp); -} - - -// Curves - -void Add_Line(int Num, char *name, int begin, int dir) -{ - Step_Curve_t Curve; - if(!BREP) - return; - Curve.Num = Num; - Curve.Typ = STEP_LINE; - Curve.Curve.Line.Step_Cartesian_Point = begin; - Curve.Curve.Line.Step_Vector = dir; - List_Add(BREP->AllCurves, &Curve); -} - -void Add_Circle(int Num, char *name, int axis, double radius) -{ - Step_Curve_t Curve; - if(!BREP) - return; - Curve.Num = Num; - Curve.Typ = STEP_CIRC; - Curve.Curve.Circle.Radius1 = radius; - Curve.Curve.Circle.Radius2 = radius; - Curve.Curve.Circle.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllCurves, &Curve); -} - -void Add_Ellipse(int Num, char *name, int axis, double radius1, - double radius2) -{ - Step_Curve_t Curve; - if(!BREP) - return; - Curve.Num = Num; - Curve.Typ = STEP_ELLP; - Curve.Curve.Circle.Radius1 = radius1; - Curve.Curve.Circle.Radius2 = radius2; - Curve.Curve.Circle.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllCurves, &Curve); -} - -void Add_BSpline_Curve_With_Knots(int Num, char *name, int Order, - List_T * lcp, List_T * multk, - List_T * knots, double udeb, double uend) -{ - Step_Curve_t Curve; - int i, j, mult; - double d; - - if(!BREP) - return; - Curve.Num = Num; - Curve.Typ = STEP_BSPL; - Curve.Curve.BSpline.ListOf_Knots = - List_Create(List_Nbr(lcp) + Order + 1, 1, sizeof(double)); - // Adding knots with their multiplicity - for(i = 0; i < List_Nbr(multk); i++) { - List_Read(multk, i, &d); - mult = (int)d; - List_Read(knots, i, &d); - for(j = 0; j < mult; j++) { - List_Add(Curve.Curve.BSpline.ListOf_Knots, &d); - } - } - Curve.Curve.BSpline.ListOf_Cartesian_Points = - List_Create(List_Nbr(lcp), 1, sizeof(int)); - for(i = 0; i < List_Nbr(lcp); i++) { - List_Read(lcp, i, &d); - j = (int)d; - List_Add(Curve.Curve.BSpline.ListOf_Cartesian_Points, &j); - } - Curve.Curve.BSpline.Order = Order; - Curve.Curve.BSpline.Ubeg = udeb; - Curve.Curve.BSpline.Uend = uend; - List_Add(BREP->AllCurves, &Curve); -} - -static int comparecur(const void *a, const void *b) -{ - return (((Step_Curve_t *) a)->Num - ((Step_Curve_t *) b)->Num); -} - -Step_Curve_t *Get_Curve(int Num) -{ - Step_Curve_t C; - if(!BREP) - return NULL; - C.Num = Num; - return (Step_Curve_t *) List_PQuery(BREP->AllCurves, &C, comparecur); -} - -// Edge_Curves - -void Add_Edge_Curve(int Num, char *name, int beg, int end, int curve) -{ - Step_Edge_Curve_t EC; - if(!BREP) - return; - EC.Num = Num; - EC.Step_Vertex_Point_Begin = beg; - EC.Step_Vertex_Point_End = end; - EC.Step_Curve = curve; - List_Add(BREP->AllEdge_Curves, &EC); -} - -static int compareec(const void *a, const void *b) -{ - return (((Step_Edge_Curve_t *) a)->Num - ((Step_Edge_Curve_t *) b)->Num); -} - -Step_Edge_Curve_t *Get_Edge_Curve(int Num) -{ - Step_Edge_Curve_t EC; - if(!BREP) - return NULL; - EC.Num = Num; - return (Step_Edge_Curve_t *) List_PQuery(BREP->AllEdge_Curves, &EC, - compareec); -} - -// Oriented_Edges - -void Add_Oriented_Edge(int Num, char *name, int ec, bool dir) -{ - Step_Oriented_Edge_t OE; - if(!BREP) - return; - OE.Num = Num; - OE.Step_Edge_Curve = ec; - OE.dir = dir; - List_Add(BREP->AllOriented_Edges, &OE); -} - -static int compareoe(const void *a, const void *b) -{ - return (((Step_Oriented_Edge_t *) a)->Num - - ((Step_Oriented_Edge_t *) b)->Num); -} - -Step_Oriented_Edge_t *Get_Oriented_Edge(int Num) -{ - Step_Oriented_Edge_t OE; - if(!BREP) - return NULL; - OE.Num = Num; - return (Step_Oriented_Edge_t *) List_PQuery(BREP->AllOriented_Edges, &OE, - compareoe); -} - -// Edge_Loops - -void Add_Edge_Loop(int Num, char *name, List_T * list) -{ - Step_Edge_Loop_t EL; - if(!BREP) - return; - EL.Num = Num; - EL.ListOf_Step_Oriented_Edge = list; - List_Add(BREP->AllEdge_Loops, &EL); -} - -static int compareel(const void *a, const void *b) -{ - return (((Step_Edge_Loop_t *) a)->Num - ((Step_Edge_Loop_t *) b)->Num); -} - -Step_Edge_Loop_t *Get_Edge_Loop(int Num) -{ - Step_Edge_Loop_t EL; - if(!BREP) - return NULL; - EL.Num = Num; - return (Step_Edge_Loop_t *) List_PQuery(BREP->AllEdge_Loops, &EL, - compareel); -} - -// Faces_Outer_Bounds - -void Add_Face_Outer_Bound(int Num, char *name, int el, bool dir, bool outer) -{ - Step_Face_Outer_Bound_t F; - if(!BREP) - return; - F.Num = Num; - F.Step_Edge_Loop = el; - F.dir = dir; - F.outer = outer; - List_Add(BREP->AllFaces_Outer_Bound, &F); -} - -static int comparefab(const void *a, const void *b) -{ - return (((Step_Face_Outer_Bound_t *) a)->Num - - ((Step_Face_Outer_Bound_t *) b)->Num); -} - -Step_Face_Outer_Bound_t *Get_Face_Outer_Bound(int Num) -{ - Step_Face_Outer_Bound_t F; - if(!BREP) - return NULL; - F.Num = Num; - return (Step_Face_Outer_Bound_t *) List_PQuery(BREP->AllFaces_Outer_Bound, - &F, comparefab); -} - -// Advanced_Faces - -void Add_Advanced_Face(int Num, char *name, List_T * el, int surf, bool dir) -{ - Step_Advanced_Face_t F; - if(!BREP) - return; - F.Num = Num; - F.ListOf_Step_Face_Outer_Bound = el; - F.Step_Surface = surf; - F.dir = dir; - List_Add(BREP->AllAdvanced_Faces, &F); -} - -static int compareaf(const void *a, const void *b) -{ - return (((Step_Advanced_Face_t *) a)->Num - - ((Step_Advanced_Face_t *) b)->Num); -} - -Step_Advanced_Face_t *Get_Advanced_Face(int Num) -{ - Step_Advanced_Face_t F; - if(!BREP) - return NULL; - F.Num = Num; - return (Step_Advanced_Face_t *) List_PQuery(BREP->AllAdvanced_Faces, &F, - compareaf); -} - -// Surfaces - -void Add_Plane(int Num, char *name, int axis) -{ - Step_Surface_t Surface; - if(!BREP) - return; - Surface.Num = Num; - Surface.Typ = STEP_PLAN; - Surface.Surface.Plane.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllSurfaces, &Surface); -} - -void Add_Cylinder(int Num, char *name, int axis, double radius) -{ - Step_Surface_t S; - if(!BREP) - return; - S.Num = Num; - S.Typ = STEP_CYLD; - S.Surface.Quadric.Radius1 = radius; - S.Surface.Quadric.Radius2 = 0.0; - S.Surface.Quadric.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllSurfaces, &S); -} - -void Add_Torus(int Num, char *name, int axis, double radius1, double radius2) -{ - Step_Surface_t S; - if(!BREP) - return; - S.Num = Num; - S.Typ = STEP_TORD; - S.Surface.Quadric.Radius1 = radius1; - S.Surface.Quadric.Radius2 = radius2; - S.Surface.Quadric.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllSurfaces, &S); -} - -void Add_Cone(int Num, char *name, int axis, double radius1, double radius2) -{ - Step_Surface_t S; - if(!BREP) - return; - S.Num = Num; - S.Typ = STEP_CONE; - S.Surface.Quadric.Radius1 = radius1; - S.Surface.Quadric.Radius2 = radius2; - S.Surface.Quadric.Step_Axis2_Placement3D = axis; - List_Add(BREP->AllSurfaces, &S); -} - - -void Add_BSpline_Surface_With_Knots(int Num, char *name, int OrderU, - int OrderV, List_T * lcp, List_T * lmu, - List_T * lmv, List_T * lku, List_T * lkv, - double udeb, double uend, double vdeb, - double vend) -{ - Step_Surface_t Surface; - int i, j, mult; - double d; - - if(!BREP) - return; - - Surface.Surface.BSpline.ListOf_KnotsU = - List_Create(List_Nbr(lku) + OrderU + 1, 1, sizeof(double)); - Surface.Surface.BSpline.ListOf_KnotsV = - List_Create(List_Nbr(lkv) + OrderV + 1, 1, sizeof(double)); - - // Adding knots with their multiplicity - for(i = 0; i < List_Nbr(lmu); i++) { - List_Read(lmu, i, &d); - mult = (int)d; - List_Read(lku, i, &d); - for(j = 0; j < mult; j++) { - List_Add(Surface.Surface.BSpline.ListOf_KnotsU, &d); - } - } - for(i = 0; i < List_Nbr(lmv); i++) { - List_Read(lmv, i, &d); - mult = (int)d; - List_Read(lkv, i, &d); - for(j = 0; j < mult; j++) { - List_Add(Surface.Surface.BSpline.ListOf_KnotsV, &d); - } - } - - // Adding the points ! - Surface.Surface.BSpline.ListOf_Cartesian_Points = lcp; - - Surface.Num = Num; - Surface.Typ = STEP_BSPL; - Surface.Surface.BSpline.OrderU = OrderU; - Surface.Surface.BSpline.OrderV = OrderV; - Surface.Surface.BSpline.Ubeg = udeb; - Surface.Surface.BSpline.Uend = uend; - Surface.Surface.BSpline.Vbeg = vdeb; - Surface.Surface.BSpline.Vend = vend; - List_Add(BREP->AllSurfaces, &Surface); -} - -static int comparesur(const void *a, const void *b) -{ - return (((Step_Surface_t *) a)->Num - ((Step_Surface_t *) b)->Num); -} - -Step_Surface_t *Get_Surface(int Num) -{ - Step_Surface_t S; - if(!BREP) - return NULL; - S.Num = Num; - return (Step_Surface_t *) List_PQuery(BREP->AllSurfaces, &S, comparesur); -} - -// Closed_Shells - -void Add_Closed_Shell(int Num, char *name, List_T * list) -{ - Step_Closed_Shell_t S; - if(!BREP) - return; - S.Num = Num; - S.ListOf_Step_Advanced_Face = list; - List_Add(BREP->AllClosed_Shells, &S); -} - -static int comparecs(const void *a, const void *b) -{ - return (((Step_Closed_Shell_t *) a)->Num - - ((Step_Closed_Shell_t *) b)->Num); -} - -Step_Closed_Shell_t *Get_Closed_Shell(int Num) -{ - Step_Closed_Shell_t F; - if(!BREP) - return NULL; - F.Num = Num; - return (Step_Closed_Shell_t *) List_PQuery(BREP->AllClosed_Shells, &F, - comparecs); -} - -// Closed_Shells - -void Resolve_BREP(void) -{ - int i, j, k, l; - double d; - int obj, err; - Step_Vertex_Point_t vp; - Step_Direction_t *d1, *d2; - Step_Cartesian_Point_t *pcp, cp; - Step_Edge_Curve_t ec; - Step_Curve_t *pc; - Step_Advanced_Face_t af, *paf; - Step_Surface_t s; - Step_Surface_t *ps; - Step_Face_Outer_Bound_t *pfab; - Step_Edge_Loop_t *pel; - Step_Oriented_Edge_t *poe; - Step_Axis2_Placement3D_t *axs; - Step_Closed_Shell_t cs; - List_T *ListInt, *ListIntBis; - double ubeg, uend, n[3], t[3], p[3], XMIN = 0., XMAX = 0., YMIN = 0., YMAX = 0., ZMIN = 0., ZMAX = 0.; - int fob; - - ListInt = List_Create(2, 2, sizeof(int)); - ListIntBis = List_Create(2, 2, sizeof(int)); - - for(i = 0; i < List_Nbr(BREP->AllCartesian_Points); i++) { - List_Read(BREP->AllCartesian_Points, i, &cp); - if(!i) { - XMAX = cp.Pos.X; - YMAX = cp.Pos.Y; - ZMAX = cp.Pos.Z; - XMIN = cp.Pos.X; - YMIN = cp.Pos.Y; - ZMIN = cp.Pos.Z; - } - else { - XMAX = MAX(cp.Pos.X, XMAX); - YMAX = MAX(cp.Pos.Y, YMAX); - ZMAX = MAX(cp.Pos.Z, ZMAX); - XMIN = MIN(cp.Pos.X, XMIN); - YMIN = MIN(cp.Pos.Y, YMIN); - ZMIN = MIN(cp.Pos.Z, ZMIN); - } - } - CTX.lc = sqrt(SQR(XMIN - XMAX) + SQR(YMIN - YMAX) + SQR(ZMIN - ZMAX)); - - // resolving cartesian_points - for(i = 0; i < List_Nbr(BREP->AllCartesian_Points); i++) { - List_Read(BREP->AllCartesian_Points, i, &cp); - //TODO Cdbpts101(cp.Num, cp.Pos.X, cp.Pos.Y, cp.Pos.Z, L * .01, 1); - } - - // resolving vertex_points - for(i = 0; i < List_Nbr(BREP->AllVertex_Points); i++) { - List_Read(BREP->AllVertex_Points, i, &vp); - if((pcp = Get_Cartesian_Point(vp.Cartesian_Point))) { - //TODO Cdbpts101(vp.Num, pcp->Pos.X, pcp->Pos.Y, pcp->Pos.Z, L * .01, 1); - } - } - - // resolving Edge_Curves - for(i = 0; i < List_Nbr(BREP->AllEdge_Curves); i++) { - List_Read(BREP->AllEdge_Curves, i, &ec); - if((pc = Get_Curve(ec.Step_Curve))) { - if(pc->Typ == STEP_LINE) { - List_Add(ListInt, &ec.Step_Vertex_Point_Begin); - List_Add(ListInt, &ec.Step_Vertex_Point_End); - //TODO Cdbseg101(ec.Num, MSH_SEGM_LINE, 1, NULL, ListInt, -1, -1, 0., 1., - // NULL, NULL, NULL); - List_Reset(ListInt); - } - else if(pc->Typ == STEP_BSPL) { - List_Read(pc->Curve.BSpline.ListOf_Knots, 0, &ubeg); - List_Read(pc->Curve.BSpline.ListOf_Knots, - List_Nbr(pc->Curve.BSpline.ListOf_Knots) - 1, &uend); - // TODO - //AddCurveInDataBase(ec.Num, - // MSH_SEGM_NURBS, - // pc->Curve.BSpline.Order, - // pc->Curve.BSpline.ListOf_Cartesian_Points, - // pc->Curve.BSpline.ListOf_Knots, - // ec.Step_Vertex_Point_Begin, - // ec.Step_Vertex_Point_End, ubeg, uend); - } - else if(pc->Typ == STEP_CIRC || pc->Typ == STEP_ELLP) { - axs = Get_Axis2_Placement3D(pc->Curve.Circle.Step_Axis2_Placement3D); - pcp = Get_Cartesian_Point(axs->Step_Cartesian_Point); - d1 = Get_Direction(axs->Step_Direction1); - d2 = Get_Direction(axs->Step_Direction2); - n[0] = d1->Pos.X; - n[1] = d1->Pos.Y; - n[2] = d1->Pos.Z; - - List_Add(ListInt, &ec.Step_Vertex_Point_Begin); - List_Add(ListInt, &pcp->Num); - List_Add(ListInt, &ec.Step_Vertex_Point_End); - //AddCircleInDataBase(ec.Num, MSH_SEGM_CIRC, ListInt, n); - List_Reset(ListInt); - } - } - } - - // resolving Surfaces - for(i = 0; i < List_Nbr(BREP->AllSurfaces); i++) { - List_Read(BREP->AllSurfaces, i, &s); - if(s.Typ == STEP_BSPL) { - CreateNurbsSurfaceSupport(s.Num, - s.Surface.BSpline.OrderV, - s.Surface.BSpline.OrderU, - s.Surface.BSpline.ListOf_Cartesian_Points, - s.Surface.BSpline.ListOf_KnotsV, - s.Surface.BSpline.ListOf_KnotsU); - - } - } - - // resolving Advanced_Faces - - for(i = 0; i < List_Nbr(BREP->AllAdvanced_Faces); i++) { - err = 0; - List_Read(BREP->AllAdvanced_Faces, i, &af); - fob = 0; - for(j = 0; j < List_Nbr(af.ListOf_Step_Face_Outer_Bound); j++) { - List_Read(af.ListOf_Step_Face_Outer_Bound, j, &d); - obj = (int)d; - if((pfab = Get_Face_Outer_Bound(obj)) && (!j || fob)) { - if(pfab->outer) - fob = 1; - if((pel = Get_Edge_Loop(pfab->Step_Edge_Loop))) { - for(k = 0; k < List_Nbr(pel->ListOf_Step_Oriented_Edge); k++) { - List_Read(pel->ListOf_Step_Oriented_Edge, k, &d); - obj = (int)d; - if((poe = Get_Oriented_Edge(obj))) { - l = (poe->dir) ? poe->Step_Edge_Curve : -poe->Step_Edge_Curve; - List_Add(ListInt, &l); - } - else - err = 1; - } - } - else - err = 1; - if(!err) { - //TODO Cdbz101(pfab->Num, MSH_SEGM_LOOP, 0, 0, 0, 0, 0, NULL, NULL, ListInt); - List_Add(ListIntBis, &pfab->Num); - } - List_Reset(ListInt); - } - else - err = 0; - } - if(!err && (ps = Get_Surface(af.Step_Surface))) { - if(ps->Typ == STEP_PLAN) { - //TODO Cdbz101(af.Num, MSH_SURF_PLAN, 0, 0, 0, 0, 0, NULL, NULL, ListIntBis); - } - else if(ps->Typ == STEP_CYLD || ps->Typ == STEP_CONE - /*|| ps->Typ == STEP_TORD || ps->Typ == STEP_CONE */ ) { - axs = - Get_Axis2_Placement3D(ps->Surface.Quadric.Step_Axis2_Placement3D); - pcp = Get_Cartesian_Point(axs->Step_Cartesian_Point); - d1 = Get_Direction(axs->Step_Direction1); - d2 = Get_Direction(axs->Step_Direction2); - n[0] = d1->Pos.X; - n[1] = d1->Pos.Y; - n[2] = d1->Pos.Z; - t[0] = d2->Pos.X; - t[1] = d2->Pos.Y; - t[2] = d2->Pos.Z; - p[0] = pcp->Pos.X; - p[1] = pcp->Pos.Y; - p[2] = pcp->Pos.Z; - int typ = 0; - switch (ps->Typ) { - case STEP_CYLD: - typ = MSH_SURF_CYLNDR; - break; - case STEP_TORD: - typ = MSH_SURF_TORUS; - break; - case STEP_CONE: - typ = MSH_SURF_CONE; - break; - } - if(FindSurface(af.Num, THEM)){ - Msg(GERROR, "Surface %d already exists", af.Num); - } - else{ - Surface *s = Create_Surface(af.Num, typ); - for(int i = 0; i < 3; i++) - s->Cyl.xaxis[i] = t[i]; - for(int i = 0; i < 3; i++) - s->Cyl.zaxis[i] = n[i]; - for(int i = 0; i < 3; i++) - s->Cyl.center[i] = p[i]; - s->Cyl.radius1 = ps->Surface.Quadric.Radius1; - s->Cyl.radius2 = ps->Surface.Quadric.Radius2; - setSurfaceGeneratrices(s, ListIntBis); - s->Support = s; - End_Surface(s); - Tree_Add(THEM->Surfaces, &s); - } - } - else if(ps->Typ == STEP_BSPL) { - //TODO Cdbz101(af.Num, MSH_SURF_TRIMMED, 0, 0, 0, 0, af.Step_Surface, NULL, - // NULL, ListIntBis); - } - } - List_Reset(ListIntBis); - } - - // resolving closed shells (sheila) - for(i = 0; i < List_Nbr(BREP->AllClosed_Shells); i++) { - List_Reset(ListInt); - List_Read(BREP->AllClosed_Shells, i, &cs); - for(j = 0; j < List_Nbr(cs.ListOf_Step_Advanced_Face); j++) { - List_Read(cs.ListOf_Step_Advanced_Face, j, &d); - obj = (int)d; - if((paf = Get_Advanced_Face(obj))) { - List_Add(ListInt, &paf->Num); - } - } - //TODO Cdbz101(cs.Num + 1000000, MSH_SURF_LOOP, 0, 0, 0, 0, 0, NULL, NULL, ListInt); - List_Reset(ListInt); - j = cs.Num + 1000000; - List_Add(ListInt, &j); - //TODO Cdbz101(cs.Num, MSH_VOLUME, 0, 0, 0, 0, 0, NULL, NULL, ListInt); - } -} - - diff --git a/Geo/StepGeomDatabase.h b/Geo/StepGeomDatabase.h deleted file mode 100644 index 47c6ddea521204d5039d7f8f2bcf5031b1883793..0000000000000000000000000000000000000000 --- a/Geo/StepGeomDatabase.h +++ /dev/null @@ -1,223 +0,0 @@ -#ifndef _STEP_GEOM_DATABASE_H_ -#define _STEP_GEOM_DATABASE_H_ - -// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle -// -// 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 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -// USA. -// -// Please report all bugs and problems to <gmsh@geuz.org>. - -#include "List.h" - -typedef struct{ - double X, Y, Z; -} Step_Coord_t; - -typedef struct{ - int Num; - char *Name; - Step_Coord_t Pos; -}Step_Direction_t; - -typedef struct{ - int Num; - char *Name; - int Step_Direction; - double Lenght; -}Step_Vector_t; - -typedef struct{ - int Num; - char *Name; - int Cartesian_Point; -}Step_Vertex_Point_t; - -typedef struct{ - int Num; - char *Name; - Step_Coord_t Pos; -}Step_Cartesian_Point_t; - - -#define STEP_LINE 1 -#define STEP_CIRC 3 -#define STEP_ELLP 6 -#define STEP_PARA 7 -#define STEP_HYPB 8 - -typedef struct{ - int Step_Cartesian_Point; - int Step_Vector; -}Step_Line_t; - -typedef struct{ - int Step_Axis2_Placement3D; - double Radius1; - double Radius2; -}Step_Circle_t; - -typedef struct{ - int Order; - List_T *ListOf_Cartesian_Points; - List_T *ListOf_Knots; - double Ubeg, Uend; -}Step_BSpline_Curve_With_Knots_t; - -typedef struct{ - int Num; - int Typ; - char *Name; - union{ - Step_BSpline_Curve_With_Knots_t BSpline; - Step_Line_t Line; - Step_Circle_t Circle; - }Curve; -}Step_Curve_t; - - -#define STEP_PLAN 1 -#define STEP_CYLD 2 -#define STEP_TORD 3 -#define STEP_CONE 4 -#define STEP_BSPL 5 - -typedef struct{ - int Num; - int Step_Cartesian_Point; - int Step_Direction1; - int Step_Direction2; -}Step_Axis2_Placement3D_t; - -typedef struct{ - int Step_Axis2_Placement3D; -}Step_Plane_t; - -typedef struct{ - int Step_Axis2_Placement3D; - double Radius1; - double Radius2; -}Step_Quadric_t; - -typedef struct{ - int OrderU, OrderV; - List_T *ListOf_Cartesian_Points; - List_T *ListOf_KnotsU; - List_T *ListOf_KnotsV; - double Ubeg, Uend, Vbeg, Vend; -}Step_BSpline_Surface_With_Knots_t; - -typedef struct{ - int Num; - int Typ; - char *Name; - union{ - Step_BSpline_Surface_With_Knots_t BSpline; - Step_Plane_t Plane; - Step_Quadric_t Quadric; - }Surface; -}Step_Surface_t; - -typedef struct{ - int Num; - char *Name; - int Step_Vertex_Point_Begin; - int Step_Vertex_Point_End; - int Step_Curve; -}Step_Edge_Curve_t; - -typedef struct{ - int Num; - char Name; - int Step_Edge_Curve; - bool dir; -}Step_Oriented_Edge_t; - -typedef struct{ - int Num; - char Name; - List_T *ListOf_Step_Oriented_Edge; -}Step_Edge_Loop_t; - -typedef struct{ - int Num; - char Name; - int Step_Edge_Loop; - bool dir; - bool outer; -}Step_Face_Outer_Bound_t; - -typedef struct{ - int Num; - char Name; - List_T *ListOf_Step_Face_Outer_Bound; - int Step_Surface; - bool dir; -}Step_Advanced_Face_t; - -typedef struct{ - int Num; - char Name; - List_T *ListOf_Step_Advanced_Face; -}Step_Closed_Shell_t; - -typedef struct{ - List_T *AllDirections; - List_T *AllVectors; - List_T *AllCartesian_Points; - List_T *AllVertex_Points; - List_T *AllCurves; - List_T *AllEdge_Curves; - List_T *AllSurfaces; - List_T *AllAxis2_Placement3D; - List_T *AllClosed_Shells; - List_T *AllFaces_Outer_Bound; - List_T *AllOriented_Edges; - List_T *AllEdge_Loops; - List_T *AllAdvanced_Faces; -}Step_Solid_BRep_t; - -Step_Solid_BRep_t *Create_Step_Solid_BRep(void); - -void Add_Direction (int Num, char *name, double x, double y, double z); -void Add_Vector (int Num, char *name, int Dir, double l); -void Add_Cartesian_Point (int Num, char *name, double x, double y, double z); -void Add_Vertex_Point (int Num, char *name, int cp); -void Add_Line (int Num, char *name, int begin, int dir); -void Add_Circle (int Num, char *name, int axis, double Radius); -void Add_Ellipse (int Num, char *name, int axis, double Radius, double r2); -void Add_Cylinder (int Num, char *name, int axis, double Radius); -void Add_Torus (int Num, char *name, int axis, double radius1, double radius2); -void Add_Cone (int Num, char *name, int axis, double radius1, double radius2); -void Add_Edge_Curve (int Num, char *name, int beg, int end, int curve); -void Add_Vertex_Point (int num, char *name, int cp); -void Add_Oriented_Edge (int Num, char *name, int ec, bool dir); -void Add_Edge_Loop (int Num, char *name, List_T * list); -void Add_Face_Outer_Bound (int Num, char *name, int el, bool dir, bool outer); -void Add_Advanced_Face (int Num, char *name, List_T * lfob, int surf, bool dir); -void Add_Closed_Shell (int Num, char *name, List_T * laf); -void Add_BSpline_Curve_With_Knots (int Num, char *name, int Order, List_T * lcp, - List_T * lm, List_T * lk, double udeb, double uend); -void Add_Plane (int Num, char *name, int axis); -void Add_Axis2_Placement3D (int Num, int cp, int dir1, int dir2); -void Add_Closed_Shell (int Num, char *name, List_T * list); -void Resolve_BREP (void); -void Add_BSpline_Surface_With_Knots (int Num,char *name,int OrderU,int OrderV, - List_T * lcp, List_T * lmu, List_T * lmv, - List_T * lku,List_T * lkv, - double udeb,double uend, - double vdeb,double vend); - -#endif diff --git a/Mesh/Utils.cpp b/Mesh/Utils.cpp index 58366d45c1af7aa4625a8b8d4e8676961e6408a4..5b86c707f8af27f4711141c2b6700c66edb2a33c 100644 --- a/Mesh/Utils.cpp +++ b/Mesh/Utils.cpp @@ -1,4 +1,4 @@ -// $Id: Utils.cpp,v 1.30 2006-01-06 00:34:26 geuzaine Exp $ +// $Id: Utils.cpp,v 1.31 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -37,6 +37,7 @@ #else #define NRANSI #include "nrutil.h" +void dsvdcmp(double **a, int m, int n, double w[], double **v); #endif extern Context_T CTX; diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h index 3265f240296105df13bf43b8655422db211db51f..da87bf8344832ae411d859999e5129d0a8b9f50c 100644 --- a/Numeric/Numeric.h +++ b/Numeric/Numeric.h @@ -88,7 +88,6 @@ void gradSimplex(double *x, double *y, double *z, double *v, double *grad); /* Numerical routines implemented using either Numerical Recipes or the GSL */ -void dsvdcmp(double **a, int m, int n, double w[], double **v); double brent(double ax, double bx, double cx, double (*f)(double), double tol, double *xmin); void mnbrak(double *ax, double *bx, double *cx, double *fa, double *fb, diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index cc6f7e144e454e9fbbb1522c148c5b22c006ba0c..cdc9a1cba4355eb5c8fb88ad90fc9f43a47bd19c 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.l,v 1.74 2006-01-06 00:34:27 geuzaine Exp $ +// $Id: Gmsh.l,v 1.75 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -235,54 +235,6 @@ T3 return tText3D; INTERPOLATION_SCHEME return tInterpolationScheme; TIME return tTime; - -CARTESIAN_POINT return tCARTESIAN_POINT; -B_SPLINE_SURFACE_WITH_KNOTS return tB_SPLINE_SURFACE_WITH_KNOTS; -B_SPLINE_CURVE_WITH_KNOTS return tB_SPLINE_CURVE_WITH_KNOTS; -.UNSPECIFIED. return tUNSPECIFIED; -.CONTINUOUS. return tCONTINUOUS; -".F." return tFALSE; -".T." return tTRUE; -".U." return tU; -".V." return tV; -ORIENTED_EDGE return tORIENTED_EDGE; -EDGE_CURVE return tEDGE_CURVE; -EDGE_LOOP return tEDGE_LOOP; -ELLIPSE return tELLIPSE; -VERTEX_POINT return tVERTEX_POINT; -FACE_OUTER_BOUND return tFACE_OUTER_BOUND; -FACE_BOUND return tFACE_BOUND; -ADVANCED_FACE return tADVANCED_FACE; -LINE return tLine; -VECTOR return tVECTOR; -DIRECTION return tDIRECTION; -AXIS2_PLACEMENT_3D return tAXIS2_PLACEMENT_3D; -PLANE return tPLANE; -HEADER return tHEADER; -DATA return tDATA; -FILE_SCHEMA return tFILE_SCHEMA; -FILE_NAME return tFILE_NAME; -FILE_DESCRIPTION return tFILE_DESCRIPTION; -"ISO-10303-21" return tISO; -"END-ISO-10303-21" return tENDISO; -ENDSEC return tENDSEC; -CLOSED_SHELL return tCLOSED_SHELL; -ADVANCED_BREP_SHAPE_REPRESENTATION return tADVANCED_BREP_SHAPE_REPRESENTATION; -MANIFOLD_SOLID_BREP return tMANIFOLD_SOLID_BREP; -CYLINDRICAL_SURFACE return tCYLINDRICAL_SURFACE; -CONICAL_SURFACE return tCONICAL_SURFACE; -TOROIDAL_SURFACE return tTOROIDAL_SURFACE; -CIRCLE return tCIRCLE; -TRIMMED_CURVE return tTRIMMED_CURVE; -GEOMETRIC_SET return tGEOMETRIC_SET; -COMPOSITE_CURVE_SEGMENT return tCOMPOSITE_CURVE_SEGMENT; -COMPOSITE_CURVE return tCOMPOSITE_CURVE; -PRODUCT_DEFINITION return tPRODUCT_DEFINITION; -PRODUCT_DEFINITION_SHAPE return tPRODUCT_DEFINITION_SHAPE; -SHAPE_DEFINITION_REPRESENTATION return tSHAPE_DEFINITION_REPRESENTATION; - -{stepid} {yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;} - {digit}+ | {digit}+"."{digit}*({exp})? | {digit}*"."{digit}+({exp})? | diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 8c624c3eaca638669f475e025404944b1d0ee1dd..2956085aac1ad913bc79a67f9e65832ac226fe42 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -107,68 +107,25 @@ #define tGMSH_MAJOR_VERSION 357 #define tGMSH_MINOR_VERSION 358 #define tGMSH_PATCH_VERSION 359 -#define tB_SPLINE_SURFACE_WITH_KNOTS 360 -#define tB_SPLINE_CURVE_WITH_KNOTS 361 -#define tCARTESIAN_POINT 362 -#define tTRUE 363 -#define tFALSE 364 -#define tUNSPECIFIED 365 -#define tU 366 -#define tV 367 -#define tEDGE_CURVE 368 -#define tVERTEX_POINT 369 -#define tORIENTED_EDGE 370 -#define tPLANE 371 -#define tFACE_OUTER_BOUND 372 -#define tEDGE_LOOP 373 -#define tADVANCED_FACE 374 -#define tVECTOR 375 -#define tDIRECTION 376 -#define tAXIS2_PLACEMENT_3D 377 -#define tISO 378 -#define tENDISO 379 -#define tENDSEC 380 -#define tDATA 381 -#define tHEADER 382 -#define tFILE_DESCRIPTION 383 -#define tFILE_SCHEMA 384 -#define tFILE_NAME 385 -#define tMANIFOLD_SOLID_BREP 386 -#define tCLOSED_SHELL 387 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 388 -#define tFACE_BOUND 389 -#define tCYLINDRICAL_SURFACE 390 -#define tCONICAL_SURFACE 391 -#define tCIRCLE 392 -#define tTRIMMED_CURVE 393 -#define tGEOMETRIC_SET 394 -#define tCOMPOSITE_CURVE_SEGMENT 395 -#define tCONTINUOUS 396 -#define tCOMPOSITE_CURVE 397 -#define tTOROIDAL_SURFACE 398 -#define tPRODUCT_DEFINITION 399 -#define tPRODUCT_DEFINITION_SHAPE 400 -#define tSHAPE_DEFINITION_REPRESENTATION 401 -#define tELLIPSE 402 -#define tAFFECTPLUS 403 -#define tAFFECTMINUS 404 -#define tAFFECTTIMES 405 -#define tAFFECTDIVIDE 406 -#define tOR 407 -#define tAND 408 -#define tEQUAL 409 -#define tNOTEQUAL 410 -#define tAPPROXEQUAL 411 -#define tLESSOREQUAL 412 -#define tGREATEROREQUAL 413 -#define tCROSSPRODUCT 414 -#define tPLUSPLUS 415 -#define tMINUSMINUS 416 -#define UNARYPREC 417 +#define tAFFECTPLUS 360 +#define tAFFECTMINUS 361 +#define tAFFECTTIMES 362 +#define tAFFECTDIVIDE 363 +#define tOR 364 +#define tAND 365 +#define tEQUAL 366 +#define tNOTEQUAL 367 +#define tAPPROXEQUAL 368 +#define tLESSOREQUAL 369 +#define tGREATEROREQUAL 370 +#define tCROSSPRODUCT 371 +#define tPLUSPLUS 372 +#define tMINUSMINUS 373 +#define UNARYPREC 374 #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.249 2006-01-14 22:32:58 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.250 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -204,7 +161,6 @@ #include "Draw.h" #include "Create.h" #include "Views.h" -#include "StepGeomDatabase.h" #include "Options.h" #include "Colors.h" #include "Parser.h" @@ -244,7 +200,7 @@ void skip_until(char *skip, char *until); int PrintListOfDouble(char *format, List_T *list, char *buffer); int CheckViewErrorFlags(Post_View *v); -#line 79 "Gmsh.y" +#line 78 "Gmsh.y" typedef union { char *c; int i; @@ -264,26 +220,26 @@ typedef union { -#define YYFINAL 1536 +#define YYFINAL 1169 #define YYFLAG -32768 -#define YYNTBASE 183 +#define YYNTBASE 140 -#define YYTRANSLATE(x) ((unsigned)(x) <= 417 ? yytranslate[x] : 254) +#define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 203) static const short 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, 169, 2, 179, 2, 167, 2, 2, 174, - 175, 165, 163, 180, 164, 178, 166, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 159, - 2, 161, 153, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 126, 2, 136, 2, 124, 2, 2, 131, + 132, 122, 120, 137, 121, 135, 123, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 116, + 2, 118, 110, 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, - 176, 2, 177, 173, 2, 2, 2, 2, 2, 2, + 133, 2, 134, 130, 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, 181, 2, 182, 2, 2, 2, 2, 2, + 2, 2, 138, 2, 139, 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, 2, 2, @@ -307,341 +263,279 @@ static const short yytranslate[] = { 0, 77, 78, 79, 80, 81, 82, 83, 84, 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, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, - 158, 160, 162, 168, 170, 171, 172 + 107, 108, 109, 111, 112, 113, 114, 115, 117, 119, + 125, 127, 128, 129 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, - 0, 2, 4, 7, 8, 11, 13, 15, 17, 20, - 23, 26, 29, 32, 40, 46, 64, 74, 98, 130, - 146, 158, 170, 186, 196, 210, 220, 232, 246, 256, - 266, 278, 288, 300, 310, 322, 336, 350, 362, 376, - 394, 404, 416, 428, 442, 454, 464, 465, 468, 470, - 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, - 492, 494, 496, 502, 510, 517, 526, 527, 530, 533, - 536, 539, 542, 544, 548, 550, 554, 555, 556, 567, - 569, 573, 574, 588, 590, 594, 595, 611, 620, 621, - 628, 630, 632, 634, 636, 638, 640, 642, 647, 655, - 665, 672, 676, 683, 690, 700, 707, 717, 723, 732, - 741, 753, 760, 770, 780, 790, 798, 807, 820, 827, - 835, 843, 851, 861, 869, 879, 897, 905, 913, 925, - 934, 947, 956, 965, 974, 987, 1010, 1031, 1040, 1049, - 1058, 1066, 1075, 1081, 1093, 1099, 1109, 1111, 1113, 1115, - 1116, 1119, 1126, 1133, 1140, 1147, 1152, 1159, 1166, 1173, - 1178, 1185, 1189, 1194, 1200, 1204, 1208, 1213, 1218, 1222, - 1230, 1234, 1242, 1246, 1249, 1252, 1268, 1271, 1278, 1287, - 1296, 1307, 1309, 1312, 1314, 1318, 1323, 1325, 1331, 1343, - 1357, 1358, 1366, 1367, 1381, 1382, 1398, 1407, 1416, 1425, - 1438, 1451, 1464, 1479, 1494, 1509, 1510, 1523, 1524, 1537, - 1538, 1551, 1552, 1569, 1570, 1587, 1588, 1605, 1606, 1625, - 1626, 1645, 1646, 1665, 1667, 1670, 1680, 1688, 1691, 1698, - 1708, 1718, 1727, 1737, 1746, 1755, 1762, 1767, 1770, 1773, - 1775, 1777, 1779, 1781, 1783, 1785, 1789, 1792, 1795, 1798, - 1802, 1806, 1810, 1814, 1818, 1822, 1826, 1830, 1834, 1838, - 1842, 1846, 1850, 1854, 1860, 1865, 1870, 1875, 1880, 1885, - 1890, 1895, 1900, 1905, 1910, 1917, 1922, 1927, 1932, 1937, - 1942, 1947, 1954, 1961, 1968, 1973, 1978, 1983, 1988, 1993, - 1998, 2003, 2008, 2013, 2018, 2023, 2030, 2035, 2040, 2045, - 2050, 2055, 2060, 2067, 2074, 2081, 2086, 2088, 2090, 2092, - 2094, 2096, 2098, 2100, 2102, 2107, 2112, 2115, 2121, 2125, - 2132, 2137, 2145, 2152, 2154, 2157, 2160, 2164, 2168, 2180, - 2190, 2198, 2206, 2207, 2211, 2213, 2217, 2218, 2222, 2226, - 2228, 2232, 2234, 2236, 2240, 2245, 2249, 2255, 2260, 2262, - 2264, 2266, 2270, 2275, 2282, 2290, 2292, 2294, 2298, 2302, - 2312, 2320, 2322, 2328, 2332, 2339, 2341, 2345, 2347, 2349, - 2356, 2361, 2366, 2371, 2378, 2385 + 0, 2, 5, 6, 9, 11, 13, 15, 17, 19, + 21, 23, 25, 27, 29, 31, 33, 35, 37, 43, + 51, 58, 67, 68, 71, 74, 77, 80, 83, 85, + 89, 91, 95, 96, 97, 108, 110, 114, 115, 129, + 131, 135, 136, 152, 161, 162, 169, 171, 173, 175, + 177, 179, 181, 183, 188, 196, 206, 213, 217, 224, + 231, 241, 248, 258, 264, 273, 282, 294, 301, 311, + 321, 331, 339, 348, 361, 368, 376, 384, 392, 402, + 410, 420, 438, 446, 454, 466, 475, 488, 497, 506, + 515, 528, 551, 572, 581, 590, 599, 607, 616, 622, + 634, 640, 650, 652, 654, 656, 657, 660, 667, 674, + 681, 688, 693, 700, 707, 714, 719, 726, 730, 735, + 741, 745, 749, 754, 759, 763, 771, 775, 783, 787, + 790, 793, 809, 812, 819, 828, 837, 848, 850, 853, + 855, 859, 864, 866, 872, 884, 898, 899, 907, 908, + 922, 923, 939, 948, 957, 966, 979, 992, 1005, 1020, + 1035, 1050, 1051, 1064, 1065, 1078, 1079, 1092, 1093, 1110, + 1111, 1128, 1129, 1146, 1147, 1166, 1167, 1186, 1187, 1206, + 1208, 1211, 1221, 1229, 1232, 1239, 1249, 1259, 1268, 1278, + 1287, 1296, 1303, 1308, 1311, 1314, 1316, 1320, 1323, 1326, + 1329, 1333, 1337, 1341, 1345, 1349, 1353, 1357, 1361, 1365, + 1369, 1373, 1377, 1381, 1385, 1391, 1396, 1401, 1406, 1411, + 1416, 1421, 1426, 1431, 1436, 1441, 1448, 1453, 1458, 1463, + 1468, 1473, 1478, 1485, 1492, 1499, 1504, 1509, 1514, 1519, + 1524, 1529, 1534, 1539, 1544, 1549, 1554, 1561, 1566, 1571, + 1576, 1581, 1586, 1591, 1598, 1605, 1612, 1617, 1619, 1621, + 1623, 1625, 1627, 1629, 1631, 1633, 1638, 1643, 1646, 1652, + 1656, 1663, 1668, 1676, 1683, 1685, 1688, 1691, 1695, 1699, + 1711, 1721, 1729, 1737, 1738, 1742, 1746, 1748, 1752, 1754, + 1756, 1760, 1765, 1769, 1775, 1780, 1782, 1784, 1786, 1790, + 1795, 1802, 1810, 1812, 1814, 1818, 1822, 1832, 1840, 1842, + 1848, 1852, 1859, 1861, 1865, 1867, 1869, 1876, 1881, 1886, + 1891, 1898, 1905 }; -static const short yyrhs[] = { 184, - 0, 189, 0, 1, 6, 0, 0, 184, 185, 0, - 186, 0, 188, 0, 187, 0, 124, 6, 0, 125, - 6, 0, 127, 6, 0, 126, 6, 0, 128, 6, - 0, 129, 174, 243, 180, 5, 175, 6, 0, 130, - 174, 243, 175, 6, 0, 131, 174, 5, 180, 5, - 180, 243, 180, 243, 180, 5, 180, 5, 180, 5, - 175, 6, 0, 3, 7, 108, 174, 5, 180, 241, - 175, 6, 0, 3, 7, 107, 174, 5, 180, 239, - 180, 247, 180, 238, 180, 238, 180, 238, 180, 247, - 180, 247, 180, 238, 175, 6, 0, 3, 7, 106, - 174, 5, 180, 239, 180, 239, 180, 245, 180, 238, - 180, 238, 180, 238, 180, 238, 180, 247, 180, 247, - 180, 247, 180, 247, 180, 238, 175, 6, 0, 3, - 7, 114, 174, 5, 180, 3, 180, 3, 180, 3, - 180, 238, 175, 6, 0, 3, 7, 118, 174, 5, - 180, 3, 180, 238, 175, 6, 0, 3, 7, 135, - 174, 5, 180, 3, 180, 238, 175, 6, 0, 3, - 7, 116, 174, 5, 180, 165, 180, 165, 180, 239, - 180, 238, 175, 6, 0, 3, 7, 119, 174, 5, - 180, 247, 175, 6, 0, 3, 7, 120, 174, 5, - 180, 247, 180, 3, 180, 238, 175, 6, 0, 3, - 7, 115, 174, 5, 180, 3, 175, 6, 0, 3, - 7, 121, 174, 5, 180, 3, 180, 239, 175, 6, - 0, 3, 7, 123, 174, 5, 180, 3, 180, 3, - 180, 3, 175, 6, 0, 3, 7, 122, 174, 5, - 180, 241, 175, 6, 0, 3, 7, 117, 174, 5, - 180, 3, 175, 6, 0, 3, 7, 44, 174, 5, - 180, 3, 180, 3, 175, 6, 0, 3, 7, 133, - 174, 5, 180, 247, 175, 6, 0, 3, 7, 134, - 174, 5, 180, 247, 180, 3, 175, 6, 0, 3, - 7, 132, 174, 5, 180, 3, 175, 6, 0, 3, - 7, 136, 174, 5, 180, 3, 180, 239, 175, 6, - 0, 3, 7, 137, 174, 5, 180, 3, 180, 239, - 180, 239, 175, 6, 0, 3, 7, 144, 174, 5, - 180, 3, 180, 239, 180, 239, 175, 6, 0, 3, - 7, 138, 174, 5, 180, 3, 180, 239, 175, 6, - 0, 3, 7, 148, 174, 5, 180, 3, 180, 239, - 180, 239, 175, 6, 0, 3, 7, 139, 174, 5, - 180, 3, 180, 247, 180, 247, 180, 238, 180, 238, - 175, 6, 0, 3, 7, 140, 174, 5, 180, 247, - 175, 6, 0, 3, 7, 141, 174, 142, 180, 238, - 180, 3, 175, 6, 0, 3, 7, 143, 174, 5, - 180, 247, 180, 238, 175, 6, 0, 3, 7, 145, - 174, 5, 180, 5, 180, 3, 180, 3, 175, 6, - 0, 3, 7, 146, 174, 5, 180, 5, 180, 3, - 175, 6, 0, 3, 7, 147, 174, 3, 180, 3, - 175, 6, 0, 0, 189, 190, 0, 192, 0, 191, - 0, 210, 0, 211, 0, 212, 0, 215, 0, 216, - 0, 217, 0, 218, 0, 221, 0, 236, 0, 237, - 0, 220, 0, 219, 0, 33, 174, 5, 175, 6, - 0, 33, 174, 5, 180, 249, 175, 6, 0, 4, - 5, 181, 193, 182, 6, 0, 4, 5, 4, 241, - 181, 193, 182, 6, 0, 0, 193, 196, 0, 193, - 200, 0, 193, 203, 0, 193, 205, 0, 193, 206, - 0, 239, 0, 194, 180, 239, 0, 239, 0, 195, - 180, 239, 0, 0, 0, 4, 197, 174, 194, 175, - 198, 181, 195, 182, 6, 0, 253, 0, 199, 180, - 253, 0, 0, 76, 174, 239, 180, 239, 180, 239, - 175, 201, 181, 199, 182, 6, 0, 253, 0, 202, - 180, 253, 0, 0, 77, 174, 239, 180, 239, 180, - 239, 180, 239, 175, 204, 181, 202, 182, 6, 0, - 78, 181, 246, 182, 181, 246, 182, 6, 0, 0, - 79, 207, 181, 195, 182, 6, 0, 7, 0, 149, - 0, 150, 0, 151, 0, 152, 0, 170, 0, 171, - 0, 4, 208, 239, 6, 0, 4, 176, 239, 177, - 208, 239, 6, 0, 4, 176, 181, 249, 182, 177, - 208, 247, 6, 0, 4, 176, 177, 7, 247, 6, - 0, 4, 209, 6, 0, 4, 176, 239, 177, 209, - 6, 0, 4, 178, 4, 7, 253, 6, 0, 4, - 176, 239, 177, 178, 4, 7, 253, 6, 0, 4, - 178, 4, 208, 239, 6, 0, 4, 176, 239, 177, - 178, 4, 208, 239, 6, 0, 4, 178, 4, 209, - 6, 0, 4, 176, 239, 177, 178, 4, 209, 6, - 0, 4, 178, 88, 178, 4, 7, 250, 6, 0, - 4, 176, 239, 177, 178, 88, 178, 4, 7, 250, - 6, 0, 4, 178, 89, 7, 251, 6, 0, 4, - 176, 239, 177, 178, 89, 7, 251, 6, 0, 60, - 174, 4, 175, 178, 4, 7, 239, 6, 0, 60, - 174, 4, 175, 178, 4, 7, 253, 6, 0, 41, - 174, 239, 175, 7, 241, 6, 0, 56, 41, 174, - 239, 175, 7, 247, 6, 0, 72, 41, 247, 7, - 181, 239, 180, 239, 180, 239, 182, 6, 0, 48, - 49, 247, 7, 239, 6, 0, 44, 174, 239, 175, - 7, 247, 6, 0, 46, 174, 239, 175, 7, 247, - 6, 0, 42, 174, 239, 175, 7, 247, 6, 0, - 42, 174, 239, 175, 7, 247, 52, 241, 6, 0, - 43, 174, 239, 175, 7, 247, 6, 0, 43, 174, - 239, 175, 7, 247, 52, 241, 6, 0, 50, 174, - 239, 175, 7, 181, 239, 180, 239, 180, 5, 180, - 5, 180, 5, 182, 6, 0, 81, 174, 239, 175, - 7, 247, 6, 0, 82, 174, 239, 175, 7, 247, - 6, 0, 83, 174, 239, 175, 7, 247, 87, 247, - 84, 239, 6, 0, 44, 67, 174, 239, 175, 7, - 247, 6, 0, 72, 44, 247, 7, 181, 239, 180, - 239, 180, 239, 182, 6, 0, 56, 44, 174, 239, - 175, 7, 247, 6, 0, 52, 45, 174, 239, 175, - 7, 247, 6, 0, 53, 45, 174, 239, 175, 7, - 247, 6, 0, 99, 45, 174, 239, 175, 7, 181, - 239, 180, 247, 182, 6, 0, 83, 45, 85, 86, - 174, 239, 175, 7, 245, 87, 181, 247, 180, 247, - 182, 84, 181, 239, 180, 239, 182, 6, 0, 83, - 45, 174, 239, 175, 7, 245, 87, 181, 247, 180, - 247, 182, 84, 181, 239, 180, 239, 182, 6, 0, - 45, 67, 174, 239, 175, 7, 247, 6, 0, 56, - 45, 174, 239, 175, 7, 247, 6, 0, 55, 47, - 174, 239, 175, 7, 247, 6, 0, 47, 174, 239, - 175, 7, 247, 6, 0, 56, 47, 174, 239, 175, - 7, 247, 6, 0, 62, 241, 181, 213, 182, 0, - 61, 181, 241, 180, 241, 180, 239, 182, 181, 213, - 182, 0, 63, 241, 181, 213, 182, 0, 64, 181, - 241, 180, 239, 182, 181, 213, 182, 0, 215, 0, - 214, 0, 212, 0, 0, 214, 211, 0, 214, 41, - 181, 249, 182, 6, 0, 214, 44, 181, 249, 182, - 6, 0, 214, 45, 181, 249, 182, 6, 0, 214, - 47, 181, 249, 182, 6, 0, 66, 181, 214, 182, - 0, 66, 4, 176, 239, 177, 6, 0, 74, 4, - 176, 239, 177, 6, 0, 75, 4, 176, 239, 177, - 6, 0, 69, 181, 214, 182, 0, 69, 4, 176, - 239, 177, 6, 0, 69, 4, 6, 0, 69, 4, - 4, 6, 0, 88, 250, 181, 214, 182, 0, 100, - 253, 6, 0, 101, 253, 6, 0, 100, 181, 214, - 182, 0, 101, 181, 214, 182, 0, 4, 253, 6, - 0, 4, 4, 176, 239, 177, 253, 6, 0, 4, - 239, 6, 0, 60, 174, 4, 175, 178, 4, 6, - 0, 80, 4, 6, 0, 95, 6, 0, 38, 6, - 0, 38, 181, 239, 180, 239, 180, 239, 180, 239, - 180, 239, 180, 239, 182, 6, 0, 39, 6, 0, - 90, 174, 239, 8, 239, 175, 0, 90, 174, 239, - 8, 239, 8, 239, 175, 0, 90, 4, 91, 181, - 239, 8, 239, 182, 0, 90, 4, 91, 181, 239, - 8, 239, 8, 239, 182, 0, 92, 0, 98, 4, - 0, 96, 0, 97, 4, 6, 0, 93, 174, 239, - 175, 0, 94, 0, 65, 241, 181, 214, 182, 0, - 65, 181, 241, 180, 241, 180, 239, 182, 181, 214, - 182, 0, 65, 181, 241, 180, 241, 180, 241, 180, - 239, 182, 181, 214, 182, 0, 0, 65, 241, 181, - 214, 222, 234, 182, 0, 0, 65, 181, 241, 180, - 241, 180, 239, 182, 181, 214, 223, 234, 182, 0, - 0, 65, 181, 241, 180, 241, 180, 241, 180, 239, - 182, 181, 214, 224, 234, 182, 0, 65, 41, 181, - 239, 180, 241, 182, 6, 0, 65, 44, 181, 239, - 180, 241, 182, 6, 0, 65, 45, 181, 239, 180, - 241, 182, 6, 0, 65, 41, 181, 239, 180, 241, - 180, 241, 180, 239, 182, 6, 0, 65, 44, 181, - 239, 180, 241, 180, 241, 180, 239, 182, 6, 0, - 65, 45, 181, 239, 180, 241, 180, 241, 180, 239, - 182, 6, 0, 65, 41, 181, 239, 180, 241, 180, - 241, 180, 241, 180, 239, 182, 6, 0, 65, 44, - 181, 239, 180, 241, 180, 241, 180, 241, 180, 239, - 182, 6, 0, 65, 45, 181, 239, 180, 241, 180, - 241, 180, 241, 180, 239, 182, 6, 0, 0, 65, - 41, 181, 239, 180, 241, 182, 225, 181, 234, 182, - 6, 0, 0, 65, 44, 181, 239, 180, 241, 182, - 226, 181, 234, 182, 6, 0, 0, 65, 45, 181, - 239, 180, 241, 182, 227, 181, 234, 182, 6, 0, - 0, 65, 41, 181, 239, 180, 241, 180, 241, 180, - 239, 182, 228, 181, 234, 182, 6, 0, 0, 65, - 44, 181, 239, 180, 241, 180, 241, 180, 239, 182, - 229, 181, 234, 182, 6, 0, 0, 65, 45, 181, - 239, 180, 241, 180, 241, 180, 239, 182, 230, 181, - 234, 182, 6, 0, 0, 65, 41, 181, 239, 180, - 241, 180, 241, 180, 241, 180, 239, 182, 231, 181, - 234, 182, 6, 0, 0, 65, 44, 181, 239, 180, - 241, 180, 241, 180, 241, 180, 239, 182, 232, 181, - 234, 182, 6, 0, 0, 65, 45, 181, 239, 180, - 241, 180, 241, 180, 241, 180, 239, 182, 233, 181, - 234, 182, 6, 0, 235, 0, 234, 235, 0, 73, - 181, 247, 180, 247, 180, 247, 182, 6, 0, 73, - 181, 247, 180, 247, 182, 6, 0, 68, 6, 0, - 54, 44, 247, 7, 239, 6, 0, 54, 44, 247, - 7, 239, 57, 59, 239, 6, 0, 54, 44, 247, - 7, 239, 57, 58, 239, 6, 0, 54, 45, 181, - 239, 182, 7, 247, 6, 0, 54, 45, 181, 239, - 182, 7, 247, 4, 6, 0, 51, 45, 181, 239, - 182, 7, 247, 6, 0, 54, 47, 181, 239, 182, - 7, 247, 6, 0, 68, 45, 247, 7, 239, 6, - 0, 68, 45, 247, 6, 0, 70, 6, 0, 71, - 6, 0, 109, 0, 110, 0, 111, 0, 112, 0, - 113, 0, 240, 0, 174, 239, 175, 0, 164, 239, - 0, 163, 239, 0, 169, 239, 0, 239, 164, 239, - 0, 239, 163, 239, 0, 239, 165, 239, 0, 239, - 166, 239, 0, 239, 167, 239, 0, 239, 173, 239, - 0, 239, 159, 239, 0, 239, 161, 239, 0, 239, - 160, 239, 0, 239, 162, 239, 0, 239, 156, 239, - 0, 239, 157, 239, 0, 239, 155, 239, 0, 239, - 154, 239, 0, 239, 153, 239, 8, 239, 0, 12, - 174, 239, 175, 0, 13, 174, 239, 175, 0, 14, - 174, 239, 175, 0, 15, 174, 239, 175, 0, 16, - 174, 239, 175, 0, 17, 174, 239, 175, 0, 18, - 174, 239, 175, 0, 19, 174, 239, 175, 0, 20, - 174, 239, 175, 0, 22, 174, 239, 175, 0, 23, - 174, 239, 180, 239, 175, 0, 24, 174, 239, 175, - 0, 25, 174, 239, 175, 0, 26, 174, 239, 175, - 0, 27, 174, 239, 175, 0, 28, 174, 239, 175, - 0, 29, 174, 239, 175, 0, 30, 174, 239, 180, - 239, 175, 0, 31, 174, 239, 180, 239, 175, 0, - 32, 174, 239, 180, 239, 175, 0, 21, 174, 239, - 175, 0, 12, 176, 239, 177, 0, 13, 176, 239, - 177, 0, 14, 176, 239, 177, 0, 15, 176, 239, - 177, 0, 16, 176, 239, 177, 0, 17, 176, 239, - 177, 0, 18, 176, 239, 177, 0, 19, 176, 239, - 177, 0, 20, 176, 239, 177, 0, 22, 176, 239, - 177, 0, 23, 176, 239, 180, 239, 177, 0, 24, - 176, 239, 177, 0, 25, 176, 239, 177, 0, 26, - 176, 239, 177, 0, 27, 176, 239, 177, 0, 28, - 176, 239, 177, 0, 29, 176, 239, 177, 0, 30, - 176, 239, 180, 239, 177, 0, 31, 176, 239, 180, - 239, 177, 0, 32, 176, 239, 180, 239, 177, 0, - 21, 176, 239, 177, 0, 3, 0, 9, 0, 10, - 0, 11, 0, 103, 0, 104, 0, 105, 0, 4, - 0, 4, 176, 239, 177, 0, 179, 4, 176, 177, - 0, 4, 209, 0, 4, 176, 239, 177, 209, 0, - 4, 178, 4, 0, 4, 176, 239, 177, 178, 4, - 0, 4, 178, 4, 209, 0, 4, 176, 239, 177, - 178, 4, 209, 0, 102, 174, 5, 180, 239, 175, - 0, 242, 0, 164, 241, 0, 163, 241, 0, 241, - 164, 241, 0, 241, 163, 241, 0, 181, 239, 180, - 239, 180, 239, 180, 239, 180, 239, 182, 0, 181, - 239, 180, 239, 180, 239, 180, 239, 182, 0, 181, - 239, 180, 239, 180, 239, 182, 0, 174, 239, 180, - 239, 180, 239, 175, 0, 0, 174, 244, 175, 0, - 5, 0, 244, 180, 5, 0, 0, 181, 246, 182, - 0, 174, 246, 175, 0, 247, 0, 246, 180, 247, - 0, 239, 0, 248, 0, 181, 249, 182, 0, 164, - 181, 249, 182, 0, 239, 8, 239, 0, 239, 8, - 239, 8, 239, 0, 41, 181, 239, 182, 0, 212, - 0, 215, 0, 221, 0, 4, 176, 177, 0, 164, - 4, 176, 177, 0, 4, 176, 181, 249, 182, 177, - 0, 164, 4, 176, 181, 249, 182, 177, 0, 239, - 0, 248, 0, 249, 180, 239, 0, 249, 180, 248, - 0, 181, 239, 180, 239, 180, 239, 180, 239, 182, - 0, 181, 239, 180, 239, 180, 239, 182, 0, 4, - 0, 4, 178, 88, 178, 4, 0, 181, 252, 182, - 0, 4, 176, 239, 177, 178, 89, 0, 250, 0, - 252, 180, 250, 0, 5, 0, 40, 0, 35, 174, - 253, 180, 253, 175, 0, 36, 174, 253, 175, 0, - 37, 174, 253, 175, 0, 34, 174, 253, 175, 0, - 34, 174, 253, 180, 249, 175, 0, 34, 174, 4, - 178, 4, 175, 0, 34, 174, 4, 176, 239, 177, - 178, 4, 175, 0 +static const short yyrhs[] = { 141, + 0, 1, 6, 0, 0, 141, 142, 0, 144, 0, + 143, 0, 162, 0, 163, 0, 164, 0, 167, 0, + 168, 0, 169, 0, 170, 0, 173, 0, 188, 0, + 189, 0, 172, 0, 171, 0, 33, 131, 5, 132, + 6, 0, 33, 131, 5, 137, 198, 132, 6, 0, + 4, 5, 138, 145, 139, 6, 0, 4, 5, 4, + 192, 138, 145, 139, 6, 0, 0, 145, 148, 0, + 145, 152, 0, 145, 155, 0, 145, 157, 0, 145, + 158, 0, 190, 0, 146, 137, 190, 0, 190, 0, + 147, 137, 190, 0, 0, 0, 4, 149, 131, 146, + 132, 150, 138, 147, 139, 6, 0, 202, 0, 151, + 137, 202, 0, 0, 76, 131, 190, 137, 190, 137, + 190, 132, 153, 138, 151, 139, 6, 0, 202, 0, + 154, 137, 202, 0, 0, 77, 131, 190, 137, 190, + 137, 190, 137, 190, 132, 156, 138, 154, 139, 6, + 0, 78, 138, 195, 139, 138, 195, 139, 6, 0, + 0, 79, 159, 138, 147, 139, 6, 0, 7, 0, + 106, 0, 107, 0, 108, 0, 109, 0, 127, 0, + 128, 0, 4, 160, 190, 6, 0, 4, 133, 190, + 134, 160, 190, 6, 0, 4, 133, 138, 198, 139, + 134, 160, 196, 6, 0, 4, 133, 134, 7, 196, + 6, 0, 4, 161, 6, 0, 4, 133, 190, 134, + 161, 6, 0, 4, 135, 4, 7, 202, 6, 0, + 4, 133, 190, 134, 135, 4, 7, 202, 6, 0, + 4, 135, 4, 160, 190, 6, 0, 4, 133, 190, + 134, 135, 4, 160, 190, 6, 0, 4, 135, 4, + 161, 6, 0, 4, 133, 190, 134, 135, 4, 161, + 6, 0, 4, 135, 88, 135, 4, 7, 199, 6, + 0, 4, 133, 190, 134, 135, 88, 135, 4, 7, + 199, 6, 0, 4, 135, 89, 7, 200, 6, 0, + 4, 133, 190, 134, 135, 89, 7, 200, 6, 0, + 60, 131, 4, 132, 135, 4, 7, 190, 6, 0, + 60, 131, 4, 132, 135, 4, 7, 202, 6, 0, + 41, 131, 190, 132, 7, 192, 6, 0, 56, 41, + 131, 190, 132, 7, 196, 6, 0, 72, 41, 196, + 7, 138, 190, 137, 190, 137, 190, 139, 6, 0, + 48, 49, 196, 7, 190, 6, 0, 44, 131, 190, + 132, 7, 196, 6, 0, 46, 131, 190, 132, 7, + 196, 6, 0, 42, 131, 190, 132, 7, 196, 6, + 0, 42, 131, 190, 132, 7, 196, 52, 192, 6, + 0, 43, 131, 190, 132, 7, 196, 6, 0, 43, + 131, 190, 132, 7, 196, 52, 192, 6, 0, 50, + 131, 190, 132, 7, 138, 190, 137, 190, 137, 5, + 137, 5, 137, 5, 139, 6, 0, 81, 131, 190, + 132, 7, 196, 6, 0, 82, 131, 190, 132, 7, + 196, 6, 0, 83, 131, 190, 132, 7, 196, 87, + 196, 84, 190, 6, 0, 44, 67, 131, 190, 132, + 7, 196, 6, 0, 72, 44, 196, 7, 138, 190, + 137, 190, 137, 190, 139, 6, 0, 56, 44, 131, + 190, 132, 7, 196, 6, 0, 52, 45, 131, 190, + 132, 7, 196, 6, 0, 53, 45, 131, 190, 132, + 7, 196, 6, 0, 99, 45, 131, 190, 132, 7, + 138, 190, 137, 196, 139, 6, 0, 83, 45, 85, + 86, 131, 190, 132, 7, 194, 87, 138, 196, 137, + 196, 139, 84, 138, 190, 137, 190, 139, 6, 0, + 83, 45, 131, 190, 132, 7, 194, 87, 138, 196, + 137, 196, 139, 84, 138, 190, 137, 190, 139, 6, + 0, 45, 67, 131, 190, 132, 7, 196, 6, 0, + 56, 45, 131, 190, 132, 7, 196, 6, 0, 55, + 47, 131, 190, 132, 7, 196, 6, 0, 47, 131, + 190, 132, 7, 196, 6, 0, 56, 47, 131, 190, + 132, 7, 196, 6, 0, 62, 192, 138, 165, 139, + 0, 61, 138, 192, 137, 192, 137, 190, 139, 138, + 165, 139, 0, 63, 192, 138, 165, 139, 0, 64, + 138, 192, 137, 190, 139, 138, 165, 139, 0, 167, + 0, 166, 0, 164, 0, 0, 166, 163, 0, 166, + 41, 138, 198, 139, 6, 0, 166, 44, 138, 198, + 139, 6, 0, 166, 45, 138, 198, 139, 6, 0, + 166, 47, 138, 198, 139, 6, 0, 66, 138, 166, + 139, 0, 66, 4, 133, 190, 134, 6, 0, 74, + 4, 133, 190, 134, 6, 0, 75, 4, 133, 190, + 134, 6, 0, 69, 138, 166, 139, 0, 69, 4, + 133, 190, 134, 6, 0, 69, 4, 6, 0, 69, + 4, 4, 6, 0, 88, 199, 138, 166, 139, 0, + 100, 202, 6, 0, 101, 202, 6, 0, 100, 138, + 166, 139, 0, 101, 138, 166, 139, 0, 4, 202, + 6, 0, 4, 4, 133, 190, 134, 202, 6, 0, + 4, 190, 6, 0, 60, 131, 4, 132, 135, 4, + 6, 0, 80, 4, 6, 0, 95, 6, 0, 38, + 6, 0, 38, 138, 190, 137, 190, 137, 190, 137, + 190, 137, 190, 137, 190, 139, 6, 0, 39, 6, + 0, 90, 131, 190, 8, 190, 132, 0, 90, 131, + 190, 8, 190, 8, 190, 132, 0, 90, 4, 91, + 138, 190, 8, 190, 139, 0, 90, 4, 91, 138, + 190, 8, 190, 8, 190, 139, 0, 92, 0, 98, + 4, 0, 96, 0, 97, 4, 6, 0, 93, 131, + 190, 132, 0, 94, 0, 65, 192, 138, 166, 139, + 0, 65, 138, 192, 137, 192, 137, 190, 139, 138, + 166, 139, 0, 65, 138, 192, 137, 192, 137, 192, + 137, 190, 139, 138, 166, 139, 0, 0, 65, 192, + 138, 166, 174, 186, 139, 0, 0, 65, 138, 192, + 137, 192, 137, 190, 139, 138, 166, 175, 186, 139, + 0, 0, 65, 138, 192, 137, 192, 137, 192, 137, + 190, 139, 138, 166, 176, 186, 139, 0, 65, 41, + 138, 190, 137, 192, 139, 6, 0, 65, 44, 138, + 190, 137, 192, 139, 6, 0, 65, 45, 138, 190, + 137, 192, 139, 6, 0, 65, 41, 138, 190, 137, + 192, 137, 192, 137, 190, 139, 6, 0, 65, 44, + 138, 190, 137, 192, 137, 192, 137, 190, 139, 6, + 0, 65, 45, 138, 190, 137, 192, 137, 192, 137, + 190, 139, 6, 0, 65, 41, 138, 190, 137, 192, + 137, 192, 137, 192, 137, 190, 139, 6, 0, 65, + 44, 138, 190, 137, 192, 137, 192, 137, 192, 137, + 190, 139, 6, 0, 65, 45, 138, 190, 137, 192, + 137, 192, 137, 192, 137, 190, 139, 6, 0, 0, + 65, 41, 138, 190, 137, 192, 139, 177, 138, 186, + 139, 6, 0, 0, 65, 44, 138, 190, 137, 192, + 139, 178, 138, 186, 139, 6, 0, 0, 65, 45, + 138, 190, 137, 192, 139, 179, 138, 186, 139, 6, + 0, 0, 65, 41, 138, 190, 137, 192, 137, 192, + 137, 190, 139, 180, 138, 186, 139, 6, 0, 0, + 65, 44, 138, 190, 137, 192, 137, 192, 137, 190, + 139, 181, 138, 186, 139, 6, 0, 0, 65, 45, + 138, 190, 137, 192, 137, 192, 137, 190, 139, 182, + 138, 186, 139, 6, 0, 0, 65, 41, 138, 190, + 137, 192, 137, 192, 137, 192, 137, 190, 139, 183, + 138, 186, 139, 6, 0, 0, 65, 44, 138, 190, + 137, 192, 137, 192, 137, 192, 137, 190, 139, 184, + 138, 186, 139, 6, 0, 0, 65, 45, 138, 190, + 137, 192, 137, 192, 137, 192, 137, 190, 139, 185, + 138, 186, 139, 6, 0, 187, 0, 186, 187, 0, + 73, 138, 196, 137, 196, 137, 196, 139, 6, 0, + 73, 138, 196, 137, 196, 139, 6, 0, 68, 6, + 0, 54, 44, 196, 7, 190, 6, 0, 54, 44, + 196, 7, 190, 57, 59, 190, 6, 0, 54, 44, + 196, 7, 190, 57, 58, 190, 6, 0, 54, 45, + 138, 190, 139, 7, 196, 6, 0, 54, 45, 138, + 190, 139, 7, 196, 4, 6, 0, 51, 45, 138, + 190, 139, 7, 196, 6, 0, 54, 47, 138, 190, + 139, 7, 196, 6, 0, 68, 45, 196, 7, 190, + 6, 0, 68, 45, 196, 6, 0, 70, 6, 0, + 71, 6, 0, 191, 0, 131, 190, 132, 0, 121, + 190, 0, 120, 190, 0, 126, 190, 0, 190, 121, + 190, 0, 190, 120, 190, 0, 190, 122, 190, 0, + 190, 123, 190, 0, 190, 124, 190, 0, 190, 130, + 190, 0, 190, 116, 190, 0, 190, 118, 190, 0, + 190, 117, 190, 0, 190, 119, 190, 0, 190, 113, + 190, 0, 190, 114, 190, 0, 190, 112, 190, 0, + 190, 111, 190, 0, 190, 110, 190, 8, 190, 0, + 12, 131, 190, 132, 0, 13, 131, 190, 132, 0, + 14, 131, 190, 132, 0, 15, 131, 190, 132, 0, + 16, 131, 190, 132, 0, 17, 131, 190, 132, 0, + 18, 131, 190, 132, 0, 19, 131, 190, 132, 0, + 20, 131, 190, 132, 0, 22, 131, 190, 132, 0, + 23, 131, 190, 137, 190, 132, 0, 24, 131, 190, + 132, 0, 25, 131, 190, 132, 0, 26, 131, 190, + 132, 0, 27, 131, 190, 132, 0, 28, 131, 190, + 132, 0, 29, 131, 190, 132, 0, 30, 131, 190, + 137, 190, 132, 0, 31, 131, 190, 137, 190, 132, + 0, 32, 131, 190, 137, 190, 132, 0, 21, 131, + 190, 132, 0, 12, 133, 190, 134, 0, 13, 133, + 190, 134, 0, 14, 133, 190, 134, 0, 15, 133, + 190, 134, 0, 16, 133, 190, 134, 0, 17, 133, + 190, 134, 0, 18, 133, 190, 134, 0, 19, 133, + 190, 134, 0, 20, 133, 190, 134, 0, 22, 133, + 190, 134, 0, 23, 133, 190, 137, 190, 134, 0, + 24, 133, 190, 134, 0, 25, 133, 190, 134, 0, + 26, 133, 190, 134, 0, 27, 133, 190, 134, 0, + 28, 133, 190, 134, 0, 29, 133, 190, 134, 0, + 30, 133, 190, 137, 190, 134, 0, 31, 133, 190, + 137, 190, 134, 0, 32, 133, 190, 137, 190, 134, + 0, 21, 133, 190, 134, 0, 3, 0, 9, 0, + 10, 0, 11, 0, 103, 0, 104, 0, 105, 0, + 4, 0, 4, 133, 190, 134, 0, 136, 4, 133, + 134, 0, 4, 161, 0, 4, 133, 190, 134, 161, + 0, 4, 135, 4, 0, 4, 133, 190, 134, 135, + 4, 0, 4, 135, 4, 161, 0, 4, 133, 190, + 134, 135, 4, 161, 0, 102, 131, 5, 137, 190, + 132, 0, 193, 0, 121, 192, 0, 120, 192, 0, + 192, 121, 192, 0, 192, 120, 192, 0, 138, 190, + 137, 190, 137, 190, 137, 190, 137, 190, 139, 0, + 138, 190, 137, 190, 137, 190, 137, 190, 139, 0, + 138, 190, 137, 190, 137, 190, 139, 0, 131, 190, + 137, 190, 137, 190, 132, 0, 0, 138, 195, 139, + 0, 131, 195, 132, 0, 196, 0, 195, 137, 196, + 0, 190, 0, 197, 0, 138, 198, 139, 0, 121, + 138, 198, 139, 0, 190, 8, 190, 0, 190, 8, + 190, 8, 190, 0, 41, 138, 190, 139, 0, 164, + 0, 167, 0, 173, 0, 4, 133, 134, 0, 121, + 4, 133, 134, 0, 4, 133, 138, 198, 139, 134, + 0, 121, 4, 133, 138, 198, 139, 134, 0, 190, + 0, 197, 0, 198, 137, 190, 0, 198, 137, 197, + 0, 138, 190, 137, 190, 137, 190, 137, 190, 139, + 0, 138, 190, 137, 190, 137, 190, 139, 0, 4, + 0, 4, 135, 88, 135, 4, 0, 138, 201, 139, + 0, 4, 133, 190, 134, 135, 89, 0, 199, 0, + 201, 137, 199, 0, 5, 0, 40, 0, 35, 131, + 202, 137, 202, 132, 0, 36, 131, 202, 132, 0, + 37, 131, 202, 132, 0, 34, 131, 202, 132, 0, + 34, 131, 202, 137, 198, 132, 0, 34, 131, 4, + 135, 4, 132, 0, 34, 131, 4, 133, 190, 134, + 135, 4, 132, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 157, 159, 160, 170, 172, 175, 177, 178, 181, 187, - 192, 193, 194, 197, 201, 204, 210, 215, 221, 229, - 234, 238, 244, 249, 253, 258, 262, 265, 270, 274, - 278, 282, 287, 291, 294, 298, 302, 306, 310, 314, - 318, 321, 325, 328, 332, 335, 342, 344, 347, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 364, 370, 387, 395, 404, 412, 413, 414, - 415, 416, 419, 422, 426, 429, 433, 624, 642, 652, - 658, 665, 673, 679, 685, 692, 700, 706, 714, 719, - 726, 728, 729, 730, 731, 734, 736, 739, 774, 813, - 867, 884, 895, 914, 928, 945, 971, 998, 1012, 1029, - 1043, 1060, 1080, 1103, 1113, 1128, 1148, 1164, 1183, 1202, - 1220, 1238, 1256, 1282, 1300, 1326, 1346, 1370, 1394, 1420, - 1437, 1455, 1474, 1493, 1532, 1557, 1576, 1595, 1611, 1631, - 1648, 1665, 1685, 1691, 1696, 1701, 1708, 1710, 1711, 1714, - 1719, 1723, 1739, 1755, 1771, 1791, 1806, 1812, 1818, 1829, - 1839, 1849, 1863, 1881, 1895, 1904, 1910, 1921, 1934, 1979, - 1994, 2010, 2020, 2042, 2046, 2051, 2056, 2067, 2084, 2100, - 2126, 2153, 2185, 2192, 2197, 2203, 2207, 2215, 2224, 2232, - 2240, 2245, 2253, 2258, 2266, 2271, 2281, 2288, 2295, 2302, - 2309, 2316, 2323, 2330, 2337, 2344, 2349, 2356, 2361, 2368, - 2373, 2380, 2385, 2392, 2397, 2404, 2409, 2416, 2421, 2428, - 2433, 2440, 2445, 2455, 2459, 2464, 2491, 2515, 2523, 2542, - 2560, 2578, 2607, 2642, 2669, 2696, 2710, 2728, 2733, 2742, - 2744, 2745, 2746, 2747, 2750, 2752, 2753, 2754, 2755, 2756, - 2757, 2758, 2759, 2766, 2767, 2768, 2769, 2770, 2771, 2772, - 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, - 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791, 2792, - 2793, 2794, 2795, 2796, 2797, 2799, 2800, 2801, 2802, 2803, - 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, - 2814, 2815, 2816, 2817, 2818, 2819, 2824, 2829, 2830, 2831, - 2832, 2833, 2834, 2838, 2851, 2871, 2885, 2898, 2921, 2939, - 2957, 2975, 2993, 3000, 3005, 3009, 3013, 3017, 3023, 3028, - 3032, 3036, 3042, 3046, 3051, 3055, 3060, 3064, 3068, 3074, - 3080, 3087, 3093, 3097, 3101, 3112, 3119, 3130, 3150, 3160, - 3170, 3180, 3197, 3216, 3240, 3268, 3274, 3278, 3282, 3294, - 3299, 3311, 3318, 3339, 3344, 3358, 3364, 3370, 3375, 3383, - 3391, 3405, 3419, 3423, 3442, 3464 + 143, 145, 150, 152, 155, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 172, 178, + 195, 203, 212, 220, 221, 222, 223, 224, 227, 230, + 234, 237, 241, 432, 450, 460, 466, 473, 481, 487, + 493, 500, 508, 514, 522, 527, 534, 536, 537, 538, + 539, 542, 544, 547, 582, 621, 675, 692, 703, 722, + 736, 753, 779, 806, 820, 837, 851, 868, 888, 911, + 921, 936, 956, 972, 991, 1010, 1028, 1046, 1064, 1090, + 1108, 1134, 1154, 1178, 1202, 1228, 1245, 1263, 1282, 1301, + 1340, 1365, 1384, 1403, 1419, 1439, 1456, 1473, 1493, 1499, + 1504, 1509, 1516, 1518, 1519, 1522, 1527, 1531, 1547, 1563, + 1579, 1599, 1614, 1620, 1626, 1637, 1647, 1657, 1671, 1689, + 1703, 1712, 1718, 1729, 1742, 1787, 1802, 1818, 1828, 1850, + 1854, 1859, 1864, 1875, 1892, 1908, 1934, 1961, 1993, 2000, + 2005, 2011, 2015, 2023, 2032, 2040, 2048, 2053, 2061, 2066, + 2074, 2079, 2089, 2096, 2103, 2110, 2117, 2124, 2131, 2138, + 2145, 2152, 2157, 2164, 2169, 2176, 2181, 2188, 2193, 2200, + 2205, 2212, 2217, 2224, 2229, 2236, 2241, 2248, 2253, 2263, + 2267, 2272, 2299, 2323, 2331, 2350, 2368, 2386, 2415, 2450, + 2477, 2504, 2518, 2536, 2541, 2550, 2552, 2553, 2554, 2555, + 2556, 2557, 2558, 2559, 2566, 2567, 2568, 2569, 2570, 2571, + 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, + 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, + 2592, 2593, 2594, 2595, 2596, 2597, 2599, 2600, 2601, 2602, + 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, + 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2624, 2629, 2630, + 2631, 2632, 2633, 2634, 2638, 2651, 2671, 2685, 2698, 2721, + 2739, 2757, 2775, 2793, 2800, 2805, 2809, 2813, 2817, 2823, + 2828, 2832, 2836, 2842, 2846, 2850, 2856, 2862, 2869, 2875, + 2879, 2883, 2894, 2901, 2912, 2932, 2942, 2952, 2962, 2979, + 2998, 3022, 3050, 3056, 3060, 3064, 3076, 3081, 3093, 3100, + 3121, 3126, 3140, 3146, 3152, 3157, 3165, 3173, 3187, 3201, + 3205, 3224, 3246 }; #endif @@ -662,1738 +556,1561 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "tBSpline","tBezier","tNurbs","tOrder","tWith","tBounds","tKnots","tColor","tColorTable", "tFor","tIn","tEndFor","tIf","tEndIf","tExit","tReturn","tCall","tFunction", "tTrimmed","tShow","tHide","tGetValue","tGMSH_MAJOR_VERSION","tGMSH_MINOR_VERSION", -"tGMSH_PATCH_VERSION","tB_SPLINE_SURFACE_WITH_KNOTS","tB_SPLINE_CURVE_WITH_KNOTS", -"tCARTESIAN_POINT","tTRUE","tFALSE","tUNSPECIFIED","tU","tV","tEDGE_CURVE","tVERTEX_POINT", -"tORIENTED_EDGE","tPLANE","tFACE_OUTER_BOUND","tEDGE_LOOP","tADVANCED_FACE", -"tVECTOR","tDIRECTION","tAXIS2_PLACEMENT_3D","tISO","tENDISO","tENDSEC","tDATA", -"tHEADER","tFILE_DESCRIPTION","tFILE_SCHEMA","tFILE_NAME","tMANIFOLD_SOLID_BREP", -"tCLOSED_SHELL","tADVANCED_BREP_SHAPE_REPRESENTATION","tFACE_BOUND","tCYLINDRICAL_SURFACE", -"tCONICAL_SURFACE","tCIRCLE","tTRIMMED_CURVE","tGEOMETRIC_SET","tCOMPOSITE_CURVE_SEGMENT", -"tCONTINUOUS","tCOMPOSITE_CURVE","tTOROIDAL_SURFACE","tPRODUCT_DEFINITION","tPRODUCT_DEFINITION_SHAPE", -"tSHAPE_DEFINITION_REPRESENTATION","tELLIPSE","tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES", -"tAFFECTDIVIDE","'?'","tOR","tAND","tEQUAL","tNOTEQUAL","tAPPROXEQUAL","'<'", -"tLESSOREQUAL","'>'","tGREATEROREQUAL","'+'","'-'","'*'","'/'","'%'","tCROSSPRODUCT", -"'!'","tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'","'['","']'","'.'", -"'#'","','","'{'","'}'","All","StepFormatItems","StepFormatItem","StepSpecial", -"StepHeaderItem","StepDataItem","GeoFormatItems","GeoFormatItem","Printf","View", -"Views","ElementCoords","ElementValues","Element","@1","@2","Text2DValues","Text2D", +"tGMSH_PATCH_VERSION","tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE", +"'?'","tOR","tAND","tEQUAL","tNOTEQUAL","tAPPROXEQUAL","'<'","tLESSOREQUAL", +"'>'","tGREATEROREQUAL","'+'","'-'","'*'","'/'","'%'","tCROSSPRODUCT","'!'", +"tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'","'['","']'","'.'","'#'", +"','","'{'","'}'","All","GeoFormatItems","GeoFormatItem","Printf","View","Views", +"ElementCoords","ElementValues","Element","@1","@2","Text2DValues","Text2D", "@3","Text3DValues","Text3D","@4","InterpolationMatrix","Time","@5","NumericAffectation", "NumericIncrement","Affectation","Shape","Transform","MultipleShape","ListOfShapes", "Duplicata","Delete","Colorify","Visibility","Command","Loop","Extrude","@6", "@7","@8","@9","@10","@11","@12","@13","@14","@15","@16","@17","ExtrudeParameters", -"ExtrudeParameter","Transfinite","Coherence","BoolExpr","FExpr","FExpr_Single", -"VExpr","VExpr_Single","ListOfStrings","RecursiveListOfStrings","ListOfListOfDouble", -"RecursiveListOfListOfDouble","ListOfDouble","FExpr_Multi","RecursiveListOfDouble", -"ColorExpr","ListOfColor","RecursiveListOfColor","StringExpr", NULL +"ExtrudeParameter","Transfinite","Coherence","FExpr","FExpr_Single","VExpr", +"VExpr_Single","ListOfListOfDouble","RecursiveListOfListOfDouble","ListOfDouble", +"FExpr_Multi","RecursiveListOfDouble","ColorExpr","ListOfColor","RecursiveListOfColor", +"StringExpr", NULL }; #endif static const short yyr1[] = { 0, - 183, 183, 183, 184, 184, 185, 185, 185, 186, 186, - 186, 186, 186, 187, 187, 187, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 189, 189, 190, 190, + 140, 140, 141, 141, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 143, 143, + 144, 144, 145, 145, 145, 145, 145, 145, 146, 146, + 147, 147, 149, 150, 148, 151, 151, 153, 152, 154, + 154, 156, 155, 157, 159, 158, 160, 160, 160, 160, + 160, 161, 161, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 164, 164, + 164, 164, 165, 165, 165, 166, 166, 166, 166, 166, + 166, 167, 167, 167, 167, 168, 168, 168, 168, 169, + 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, + 171, 171, 171, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 173, 173, 173, 174, 173, 175, 173, + 176, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 177, 173, 178, 173, 179, 173, 180, 173, 181, + 173, 182, 173, 183, 173, 184, 173, 185, 173, 186, + 186, 187, 187, 187, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 191, 191, 192, 192, 193, 193, 193, 193, - 193, 193, 194, 194, 195, 195, 197, 198, 196, 199, - 199, 201, 200, 202, 202, 204, 203, 205, 207, 206, - 208, 208, 208, 208, 208, 209, 209, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 212, 212, 212, 212, 213, 213, 213, 214, - 214, 214, 214, 214, 214, 215, 215, 215, 215, 216, - 216, 216, 216, 217, 218, 218, 218, 218, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 221, 221, 221, - 222, 221, 223, 221, 224, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 225, 221, 226, 221, 227, - 221, 228, 221, 229, 221, 230, 221, 231, 221, 232, - 221, 233, 221, 234, 234, 235, 235, 235, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 237, 237, 238, - 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, - 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, - 240, 240, 240, 241, 241, 241, 241, 241, 242, 242, - 242, 242, 243, 243, 244, 244, 245, 245, 245, 246, - 246, 247, 247, 247, 247, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 249, 249, 249, 249, 250, - 250, 250, 250, 251, 251, 252, 252, 253, 253, 253, - 253, 253, 253, 253, 253, 253 + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, + 191, 191, 191, 191, 192, 192, 192, 192, 192, 193, + 193, 193, 193, 194, 194, 194, 195, 195, 196, 196, + 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 198, 198, 198, 198, 199, 199, 199, 199, + 200, 200, 201, 201, 202, 202, 202, 202, 202, 202, + 202, 202, 202 }; static const short yyr2[] = { 0, - 1, 1, 2, 0, 2, 1, 1, 1, 2, 2, - 2, 2, 2, 7, 5, 17, 9, 23, 31, 15, - 11, 11, 15, 9, 13, 9, 11, 13, 9, 9, - 11, 9, 11, 9, 11, 13, 13, 11, 13, 17, - 9, 11, 11, 13, 11, 9, 0, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 7, 6, 8, 0, 2, 2, 2, - 2, 2, 1, 3, 1, 3, 0, 0, 10, 1, - 3, 0, 13, 1, 3, 0, 15, 8, 0, 6, - 1, 1, 1, 1, 1, 1, 1, 4, 7, 9, - 6, 3, 6, 6, 9, 6, 9, 5, 8, 8, - 11, 6, 9, 9, 9, 7, 8, 12, 6, 7, - 7, 7, 9, 7, 9, 17, 7, 7, 11, 8, - 12, 8, 8, 8, 12, 22, 20, 8, 8, 8, - 7, 8, 5, 11, 5, 9, 1, 1, 1, 0, - 2, 6, 6, 6, 6, 4, 6, 6, 6, 4, - 6, 3, 4, 5, 3, 3, 4, 4, 3, 7, - 3, 7, 3, 2, 2, 15, 2, 6, 8, 8, - 10, 1, 2, 1, 3, 4, 1, 5, 11, 13, - 0, 7, 0, 13, 0, 15, 8, 8, 8, 12, - 12, 12, 14, 14, 14, 0, 12, 0, 12, 0, - 12, 0, 16, 0, 16, 0, 16, 0, 18, 0, - 18, 0, 18, 1, 2, 9, 7, 2, 6, 9, - 9, 8, 9, 8, 8, 6, 4, 2, 2, 1, - 1, 1, 1, 1, 1, 3, 2, 2, 2, 3, + 1, 2, 0, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 5, 7, + 6, 8, 0, 2, 2, 2, 2, 2, 1, 3, + 1, 3, 0, 0, 10, 1, 3, 0, 13, 1, + 3, 0, 15, 8, 0, 6, 1, 1, 1, 1, + 1, 1, 1, 4, 7, 9, 6, 3, 6, 6, + 9, 6, 9, 5, 8, 8, 11, 6, 9, 9, + 9, 7, 8, 12, 6, 7, 7, 7, 9, 7, + 9, 17, 7, 7, 11, 8, 12, 8, 8, 8, + 12, 22, 20, 8, 8, 8, 7, 8, 5, 11, + 5, 9, 1, 1, 1, 0, 2, 6, 6, 6, + 6, 4, 6, 6, 6, 4, 6, 3, 4, 5, + 3, 3, 4, 4, 3, 7, 3, 7, 3, 2, + 2, 15, 2, 6, 8, 8, 10, 1, 2, 1, + 3, 4, 1, 5, 11, 13, 0, 7, 0, 13, + 0, 15, 8, 8, 8, 12, 12, 12, 14, 14, + 14, 0, 12, 0, 12, 0, 12, 0, 16, 0, + 16, 0, 16, 0, 18, 0, 18, 0, 18, 1, + 2, 9, 7, 2, 6, 9, 9, 8, 9, 8, + 8, 6, 4, 2, 2, 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, + 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, - 4, 4, 6, 6, 6, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 2, 5, 3, 6, - 4, 7, 6, 1, 2, 2, 3, 3, 11, 9, - 7, 7, 0, 3, 1, 3, 0, 3, 3, 1, - 3, 1, 1, 3, 4, 3, 5, 4, 1, 1, - 1, 3, 4, 6, 7, 1, 1, 3, 3, 9, - 7, 1, 5, 3, 6, 1, 3, 1, 1, 6, - 4, 4, 4, 6, 6, 9 + 4, 4, 6, 6, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, + 4, 4, 4, 6, 6, 6, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 4, 2, 5, 3, + 6, 4, 7, 6, 1, 2, 2, 3, 3, 11, + 9, 7, 7, 0, 3, 3, 1, 3, 1, 1, + 3, 4, 3, 5, 4, 1, 1, 1, 3, 4, + 6, 7, 1, 1, 3, 3, 9, 7, 1, 5, + 3, 6, 1, 3, 1, 1, 6, 4, 4, 4, + 6, 6, 9 }; static const short yydefact[] = { 0, - 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 6, 8, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 182, 0, 187, 0, - 184, 0, 0, 0, 0, 0, 48, 50, 49, 51, - 52, 53, 54, 55, 56, 57, 62, 61, 58, 59, - 60, 0, 9, 10, 12, 11, 13, 333, 333, 0, - 307, 314, 368, 91, 308, 309, 310, 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, 369, 0, 311, 312, 313, 92, 93, 94, - 95, 0, 0, 0, 96, 97, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 0, 175, 0, 177, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 0, 0, 150, - 238, 239, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 362, 0, 0, 0, 0, 0, 174, 0, 183, - 0, 368, 150, 0, 150, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 67, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 314, 248, 247, 249, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 171, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 314, 0, 0, 0, 349, 350, 351, - 342, 0, 343, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 326, 325, 0, - 0, 0, 0, 150, 150, 0, 0, 0, 0, 0, - 0, 0, 0, 150, 0, 0, 0, 0, 162, 0, - 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, - 0, 0, 0, 150, 0, 0, 0, 185, 0, 0, - 165, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 335, 0, 0, 0, 0, 0, 319, + 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 138, 0, 143, 0, 140, 0, 0, 0, + 0, 0, 4, 6, 5, 7, 8, 9, 10, 11, + 12, 13, 18, 17, 14, 15, 16, 258, 265, 315, + 47, 259, 260, 261, 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, 316, + 0, 262, 263, 264, 48, 49, 50, 51, 0, 0, + 0, 52, 53, 0, 0, 0, 0, 0, 0, 0, + 196, 0, 0, 131, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 246, 0, 0, 356, 357, 0, 0, 91, 0, - 0, 0, 0, 0, 98, 0, 263, 262, 260, 261, - 256, 258, 257, 259, 251, 250, 252, 253, 254, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, + 0, 0, 0, 106, 0, 0, 106, 194, 195, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, + 0, 0, 0, 0, 130, 0, 139, 0, 315, 106, + 0, 106, 0, 0, 0, 268, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 328, 327, 149, 0, 148, 147, - 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 156, 151, 237, 0, 163, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 186, 0, 167, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 334, 0, - 0, 15, 0, 315, 321, 67, 77, 0, 0, 0, - 89, 0, 68, 69, 70, 71, 72, 265, 286, 266, - 287, 267, 288, 268, 289, 269, 290, 270, 291, 271, - 292, 272, 293, 273, 294, 285, 306, 274, 295, 0, - 0, 276, 297, 277, 298, 278, 299, 279, 300, 280, - 301, 281, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 373, 0, 0, 371, 372, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, - 0, 316, 0, 63, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 352, 0, 0, 0, 0, 344, - 346, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 143, 145, - 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 265, 199, 198, 200, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 58, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 0, 0, 0, + 296, 297, 298, 289, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 277, 276, 0, 0, 0, 0, 106, 106, 0, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, + 0, 118, 0, 0, 0, 0, 0, 0, 129, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, + 141, 0, 0, 121, 0, 122, 0, 270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, - 0, 333, 0, 318, 0, 0, 0, 0, 0, 0, - 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 315, 101, 358, 359, 0, - 0, 0, 0, 0, 103, 104, 106, 0, 0, 366, - 0, 112, 264, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 348, 353, 0, 345, 0, 119, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 157, 0, 0, 0, - 0, 236, 161, 0, 0, 158, 159, 0, 0, 0, - 337, 0, 363, 0, 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 240, 241, 242, 243, 244, 0, 0, 0, 0, - 0, 0, 0, 14, 0, 320, 170, 0, 0, 0, - 0, 0, 340, 0, 275, 296, 282, 303, 283, 304, - 284, 305, 0, 375, 374, 370, 323, 0, 91, 0, - 0, 0, 0, 99, 0, 0, 0, 364, 64, 0, - 116, 122, 0, 124, 0, 0, 120, 0, 121, 141, - 0, 0, 347, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, - 0, 150, 0, 206, 0, 208, 0, 210, 0, 0, - 228, 0, 192, 225, 0, 0, 0, 0, 0, 0, - 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, + 0, 0, 303, 304, 0, 0, 47, 0, 0, 0, + 0, 0, 54, 0, 214, 213, 211, 212, 207, 209, + 208, 210, 202, 201, 203, 204, 205, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 279, 278, 105, 0, 104, 103, 0, 0, + 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, + 0, 112, 107, 193, 0, 119, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 322, 66, 0, 73, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 0, 109, 0, 0, 110, - 0, 367, 0, 0, 0, 130, 138, 354, 0, 0, - 234, 133, 134, 0, 0, 0, 232, 235, 140, 117, - 132, 139, 142, 0, 0, 0, 332, 0, 331, 0, - 0, 197, 0, 0, 198, 0, 0, 199, 0, 0, - 0, 0, 152, 153, 154, 155, 0, 0, 337, 0, - 0, 0, 0, 0, 361, 0, 180, 179, 0, 0, - 0, 0, 17, 0, 26, 0, 30, 0, 24, 0, - 0, 29, 0, 34, 32, 0, 0, 0, 0, 0, - 0, 41, 0, 0, 0, 0, 0, 46, 0, 0, - 78, 0, 0, 0, 341, 0, 0, 0, 0, 100, - 105, 107, 0, 113, 0, 0, 123, 125, 355, 0, - 231, 230, 233, 114, 115, 150, 0, 146, 0, 0, - 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, - 339, 338, 0, 0, 0, 0, 0, 0, 337, 0, + 0, 0, 142, 0, 123, 124, 266, 272, 23, 33, + 0, 0, 0, 45, 0, 24, 25, 26, 27, 28, + 216, 237, 217, 238, 218, 239, 219, 240, 220, 241, + 221, 242, 222, 243, 223, 244, 224, 245, 236, 257, + 225, 246, 0, 0, 227, 248, 228, 249, 229, 250, + 230, 251, 231, 252, 232, 253, 0, 0, 0, 0, + 0, 0, 0, 0, 320, 0, 0, 318, 319, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, + 0, 0, 0, 0, 267, 0, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 299, 0, 0, + 0, 0, 291, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 99, 101, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 74, 0, 0, 0, 76, 90, 376, 0, 365, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 0, 0, 0, 0, 0, 0, - 0, 360, 181, 0, 31, 0, 0, 0, 0, 21, - 0, 27, 0, 33, 22, 35, 0, 38, 0, 42, - 43, 0, 0, 45, 0, 0, 0, 0, 0, 0, - 111, 0, 0, 144, 0, 212, 0, 0, 214, 0, - 0, 216, 0, 0, 189, 0, 150, 0, 0, 0, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 88, 0, 0, 329, 200, 0, 0, 207, 201, 0, - 0, 209, 202, 0, 0, 211, 0, 195, 0, 227, - 118, 131, 0, 0, 135, 0, 0, 0, 0, 25, - 28, 36, 0, 37, 44, 39, 0, 0, 0, 0, - 0, 0, 0, 218, 0, 220, 0, 222, 194, 190, + 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, + 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 266, 57, 305, 306, 0, + 0, 0, 0, 0, 59, 60, 62, 0, 0, 313, + 0, 68, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 295, 300, 0, 292, 0, 75, + 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 86, 0, 0, 0, 203, 0, 0, 204, - 0, 0, 205, 0, 0, 226, 0, 0, 0, 0, - 20, 23, 0, 0, 0, 80, 0, 176, 0, 0, - 0, 0, 0, 0, 0, 196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 0, 215, 0, - 217, 0, 0, 0, 0, 0, 40, 16, 81, 83, - 0, 84, 126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 219, 221, 223, 0, 0, 0, 0, 85, - 87, 0, 0, 0, 0, 0, 137, 0, 0, 0, - 0, 0, 136, 0, 18, 0, 0, 0, 0, 0, - 0, 0, 19, 0, 0, 0 + 0, 0, 0, 0, 0, 180, 113, 0, 0, 0, + 0, 192, 117, 0, 0, 114, 115, 0, 0, 0, + 284, 0, 310, 0, 0, 0, 134, 0, 271, 126, + 0, 0, 0, 0, 0, 287, 0, 226, 247, 233, + 254, 234, 255, 235, 256, 0, 322, 321, 317, 274, + 0, 47, 0, 0, 0, 0, 55, 0, 0, 0, + 311, 20, 0, 72, 78, 0, 80, 0, 0, 76, + 0, 77, 97, 0, 0, 294, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, + 0, 0, 0, 0, 106, 0, 162, 0, 164, 0, + 166, 0, 0, 184, 0, 148, 181, 0, 0, 0, + 0, 0, 0, 83, 84, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 273, 22, 0, 29, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 65, 0, + 0, 66, 0, 314, 0, 0, 0, 86, 94, 301, + 0, 0, 190, 89, 90, 0, 0, 0, 188, 191, + 96, 73, 88, 95, 98, 0, 0, 0, 283, 0, + 282, 0, 0, 153, 0, 0, 154, 0, 0, 155, + 0, 0, 0, 0, 108, 109, 110, 111, 0, 0, + 284, 0, 0, 0, 0, 0, 308, 0, 136, 135, + 0, 34, 0, 0, 0, 288, 0, 0, 0, 0, + 56, 61, 63, 0, 69, 0, 0, 79, 81, 302, + 0, 187, 186, 189, 70, 71, 106, 0, 102, 0, + 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, + 0, 286, 285, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 32, 46, 323, 0, 312, 0, 0, + 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, + 307, 137, 0, 0, 0, 0, 0, 67, 0, 0, + 100, 0, 168, 0, 0, 170, 0, 0, 172, 0, + 0, 145, 0, 106, 0, 0, 0, 0, 0, 0, + 85, 0, 0, 38, 0, 44, 0, 0, 280, 156, + 0, 0, 163, 157, 0, 0, 165, 158, 0, 0, + 167, 0, 151, 0, 183, 74, 87, 0, 0, 91, + 0, 0, 0, 0, 0, 0, 174, 0, 176, 0, + 178, 150, 146, 0, 0, 0, 0, 35, 0, 42, + 0, 0, 0, 159, 0, 0, 160, 0, 0, 161, + 0, 0, 182, 0, 0, 0, 36, 0, 132, 0, + 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, + 0, 0, 0, 169, 0, 171, 0, 173, 0, 0, + 0, 37, 39, 0, 40, 82, 0, 0, 0, 0, + 0, 0, 0, 175, 177, 179, 0, 0, 41, 43, + 0, 0, 0, 93, 0, 92, 0, 0, 0 }; -static const short yydefgoto[] = { 1534, - 2, 14, 15, 16, 17, 3, 67, 68, 69, 452, - 1095, 1101, 653, 827, 1270, 1455, 654, 1409, 1491, 655, - 1457, 656, 657, 831, 141, 253, 70, 585, 348, 568, - 569, 349, 74, 75, 76, 77, 78, 350, 767, 1346, - 1421, 1143, 1146, 1149, 1376, 1380, 1384, 1438, 1441, 1444, - 905, 906, 80, 81, 957, 351, 144, 368, 178, 248, - 445, 1056, 972, 973, 353, 507, 204, 721, 861, 145 +static const short yydefgoto[] = { 1167, + 2, 53, 54, 55, 360, 867, 873, 526, 667, 989, + 1116, 527, 1082, 1144, 528, 1118, 529, 530, 671, 118, + 196, 56, 493, 291, 476, 477, 292, 60, 61, 62, + 63, 64, 293, 640, 1043, 1094, 915, 918, 921, 1061, + 1065, 1069, 1105, 1108, 1111, 745, 746, 66, 67, 294, + 121, 311, 155, 859, 775, 776, 296, 415, 181, 594, + 701, 122 }; -static const short yypact[] = { 2531, - 37, 43, 2680,-32768, 50, 76, 91, 106, 115, 131, - -66, -25, -15,-32768,-32768,-32768,-32768, 1768, 5, 9, - 185, 42, 54, 58, -19, 145, 109, 125, 171, 153, - 179, 235, 295, 27, 302, 458, 191, 194, -96, -96, - 224, 396, 1, 367, 13, 414, 441, 102, 461, 478, - 489, 334, 364, -22, 16, 31,-32768, 369,-32768, 543, --32768, 558, 562, 537, 19, 26,-32768,-32768,-32768,-32768, +static const short yypact[] = { 2276, + 30, 2661,-32768, 1612, -91, 8, 48, -57, -54, -38, + -44, 46, 28, 39, 129, 106, 147, 242, 252, 246, + 234, 205, 207, 218, -78, -78, 227, 365, 6, 304, + 9, 385, 392, 87, 407, 430, 449, 293, 343, -36, + 12, 7,-32768, 346,-32768, 478,-32768, 505, 509, 474, + 22, 29,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 315, 16, +-32768,-32768,-32768,-32768, 142, 180, 299, 379, 415, 425, + 429, 440, 490, 515, 516, 527, 535, 542, 547, 548, + 554, 559, 560, 563, 566, 405, 411, 416, 428,-32768, + 439,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1825, 1825, + 1825,-32768,-32768, 1825, 1216, 15, 551, 1825, 587, 961, +-32768, 593, 608,-32768, 1825,-32768, 1825, 1825, 1825, 443, + 1825, 486, 1825, 1825, 1149, 1825, 488, 496, 506, 1149, + 513, 521, 555, 571, 599, 612, 613, 639, -78, -78, + -78, 1825, 1825, -23,-32768, 194, -78, 565, 601, 629, + 1452, 266, 631,-32768, 1149, 31,-32768,-32768,-32768, 1149, + 1149, 636, 637, 765, 1825, 1825, -56, 1825, 644, 1825, + 634, 700, 1825, 1825,-32768, 786,-32768, 662,-32768,-32768, + 789,-32768, 790, 1825, 793,-32768, -78,-32768, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 391, 453, 453, 453, 795, 483, 668, 668, 668, 4731, + 794, 1661, 3981, 275, 667, 797, 672, 988,-32768,-32768, + 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 1825, 1825,-32768, -59, 2461, 4754, 4777, + 4800, 1825, 4823, 1825, 4846, 4869, 534, 669, 1482, 1661, +-32768,-32768,-32768, 1021, 799,-32768, 4892, 1825, 1825, 1825, + 801, 1825, 1825, 1825, 1825, 1825, 1825, 1825, 678, -76, +-32768,-32768, 3211, 3233, -78, -78, 540, 540, -21, 1825, + 1825, 1825, 1452, 1452, 1825, 14,-32768, 1825, 2337, 247, + 805,-32768, 1825, 2358, 806, 808, 1825, 1825,-32768, 4915, + 4938, 726, 1825, 4961, 728, 3255,-32768, 682, 2106, 4984, +-32768, 1825, 2403,-32768, 2448,-32768, 4006, -26, 300, 4, + 5007, 4031, 5030, 4056, 5053, 4081, 5076, 4106, 5099, 4131, + 5122, 4156, 5145, 4181, 5168, 4206, 5191, 4231, 5214, 4256, + 5237, 4281, 3277, 3299, 5260, 4306, 5283, 4331, 5306, 4356, + 5329, 4381, 5352, 4406, 5375, 4431, 3321, 3343, 3365, 3387, + 3409, 3431, 244, 173, 684, 690, 691, 687, 1825,-32768, + 1149, 1855, 1021,-32768, 461, 236, 453, 1825, 819, 822, + 17, 694,-32768, 2121, 409, 467, 512, 512, 533, 533, + 533, 533, 394, 394, 668, 668, 668, 668, 824, 1661, + 1825, 825, 826, 827, 5398, 828, 5421, 829, 830, 1279, + 1825, 549, 1661, 561, 1825, 1825, 831, 2683, 5444, 5467, + 1825, 2707, 2731, 5490, 5513, 5536, 5559, 5582, 696, -78, + 1825, 1825,-32768,-32768,-32768, 703, 966,-32768, 704, 1825, + 3453, 3475, 3497, 2350, -78, 2469, 4456, -83, -52, -42, + 2,-32768,-32768,-32768, 1825,-32768, 4481,-32768, 701, 706, + 4506, 4531, 839, 840, 719, 5605, 844, 717, 1825, 2514, + 1825, 1825,-32768, 5628,-32768,-32768, 272,-32768,-32768,-32768, + 727, 730, 715,-32768, 851,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 2560,-32768,-32768,-32768,-32768,-32768, 413, 413, 448, --32768, 280, 17,-32768,-32768,-32768,-32768, -125, -45, 182, - 270, 352, 387, 447, 453, 482, 493, 499, 510, 514, - 517, 526, 530, 541, 549, 550, 585, 586, 418, 428, - 433, 457,-32768, 472,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 2013, 2013, 2013,-32768,-32768, 2013, 1445, 141, 571, - 2013, 629, 825,-32768, 643, 655,-32768, 2013,-32768, 2013, - 2013, 2013, 487, 2013, 492, 2013, 2013, 1272, 2013, 471, - 500, 513, 1272, 520, 531, 533, 545, 556, 557, 566, - 690, -96, -96, -96, 2013, 2013, -87,-32768, -57, -96, - 569, 575, 583, 1665, -53, 591,-32768, 1272, 28,-32768, --32768,-32768, 1272, 1272, 608, 625, 765, 2013, 2013, -48, - 2013, 624, 2013, 640, 716, 2013, 2013,-32768, 829,-32768, - 671,-32768,-32768, 847,-32768, 851, 686, 694, 702, 711, - 731, 736, 737, 738, 739, 740, 741, 742, 743, 744, - 745, 747, 748, 749, 750, 752, 753, 758, 759, 760, - 761, 762, 763, 764, 766, 767, 859, 695, 770, 768, - 2013, 861,-32768, -96,-32768, 2013, 2013, 2013, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 2013, 2013, 381, 476, 476, - 476, 934, 463, 769, 769, 769, 4946, 939, 1945, 4196, - 278, 771, 943, 777, 860,-32768,-32768, 2013, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 2013, - 2013, 2013,-32768, -80, 3250, 4969, 4992, 5015, 2013, 5038, - 2013, 5061, 5084, 477, 773, 1721, 1945,-32768,-32768,-32768, - 1828, 948,-32768, 5107, 2013, 2013, 2013, 950, 2013, 2013, - 2013, 2013, 2013, 2013, 2013, 783, 155,-32768,-32768, 3272, - 3294, -96, -96, 647, 647, 327, 2013, 2013, 2013, 1665, - 1665, 2013, 337,-32768, 2013, 848, 169, 953,-32768, 2013, - 2236, 954, 955, 2013, 2013,-32768, 5130, 5153, 874, 2013, - 5176, 875, 3316,-32768, 784, 1937, 5199,-32768, 2013, 2257, --32768, 2305,-32768, 961, 964, 965, 966, 968, 969, 970, - 971, 972, 978, 988, 989, 990, 991, 992, 994, 998, - 999, 1000, 1001, 1002, 1003, 1006, 870, 1013, 1023, 1024, - 1029, 1032, 1034,-32768, 39, 1035, 1031, 1036, 4221, 217, - -16, 10, 5222, 4246, 5245, 4271, 5268, 4296, 5291, 4321, - 5314, 4346, 5337, 4371, 5360, 4396, 5383, 4421, 5406, 4446, - 5429, 4471, 5452, 4496, 3338, 3360, 5475, 4521, 5498, 4546, - 5521, 4571, 5544, 4596, 5567, 4621, 5590, 4646, 3382, 3404, - 3426, 3448, 3470, 3492, 379, 150, 787, 867, 872, 868, - 2013,-32768, 1272, 2220, 1828,-32768, 590, 219, 476, 2013, - 1043, 1046, 18, 876,-32768, 1972, 449, 1014, 582, 582, - 685, 685, 685, 685, 258, 258, 769, 769, 769, 769, - 1045, 1945, 2013, 1047, 1049, 1050, 5613, 1051, 5636, 1052, - 1053, 1486, 2013, 494, 1945, 595, 2013, 2013, 1054, 2043, - 5659, 5682, 2013, 2481, 2742, 5705, 5728, 5751, 5774, 5797, - 887, -96, 2013, 2013,-32768,-32768,-32768, 884, 2741,-32768, - 885, 2013, 3514, 3536, 3558, 3222, -96, 2326, 4671, -21, - -39, -37, 29,-32768,-32768,-32768, 2013,-32768, 4696,-32768, - 871, 889, 4721, 4746, 1061, 1064, 898, 5820, 1068, 899, - 2013, 2385, 2013, 2013,-32768, 5843,-32768,-32768, 901, 903, - 904, 905, 906, 907, 909, 910, 911, 913, 914, 916, - 917, 918, 919, 920, 921, 923, 924, 925, 926, 928, - 929, 930, 931, 932, 933, 951, 952, 956,-32768, 1109, - 959,-32768, 957, 317,-32768,-32768,-32768, 967, 980, 949, --32768, 1132,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2013, - 2013,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 2013, 2013, 2013, 2013, 2013, 2013, 2013, - 1135,-32768, 1945, 476,-32768,-32768, 2013, 4771, 1134, 1945, - 987, 285, 2013, 1136, 1137, 962,-32768, 1138, 1007, 16, - 1159,-32768, 2013,-32768, 151, 3580, -96, 1272, 1272, 1160, - 1272, 1161, 1272, 1272,-32768, 1945, 2766, 1542, 596,-32768, - 2005, 996, 963, 1165, 1175, 1178, 626, 1179, 1181, 1183, - 1184, 1185, 1187, 1188, 1162, 359, 3602, 3624,-32768,-32768, - 2790, -96, -96, -96, 368,-32768, 282, 1190, 1945, 1945, - 1945, 1945, 1225, 1193, 2013, 2013, 1194, 1195, 1272, 1272, - 2013, 1196, 1272, 1198, 3646,-32768, 2103, 663, 1197, 1202, - 2013, 2013, -96, 1203, 1204, 1044, 1205, 1207, 1272, 1272, - 1209, -96, 1211, 1213, 1272, 1272, 1214, 1215, 1216, 1219, - 1220, 1272, 486, 1272, 1221, 1222, 1223, 1226, 1230,-32768, - 1229, 413, 1232,-32768, 1231, 14, 1065, 2013, 2013, 1272, - 1057,-32768, 5866, 4796, 5889, 4821, 5912, 4846, 5935, 4871, - 4896, 1066, 228, 1069, 5958, 366,-32768, 1828,-32768, 12, - 326, 1062, 1218, 1240,-32768,-32768,-32768, 16, 2013,-32768, - 614,-32768, 6234, 1237, 2013, 23, 21, 46, 1272, 1239, - 1272, 1242, 1243, 615,-32768,-32768, 1945,-32768, 2013,-32768, - 2013, 1272, 1272, 1272,-32768, 475, 1272, 1272, 1272, 1272, - 1272, 1272, 1272, 636, 2013, 2013, 2013, 1070, 220, 229, - 275, 1665, 1246, 1072, -32,-32768,-32768, 618, 632, 633, - 660,-32768,-32768, 3668, 3690,-32768,-32768, 1250, 1251, 5981, - 143, 1171,-32768, 2013, 2013, 2013,-32768, 1079, 1081, 3712, - 3734, 231, 1083, 1089, 1086, 1094, 1091, 1098, 1097, 1099, - 279, 1100, 1103, 1130, 1126, 1127, 1128, 1131, 1140, 1141, - 1139,-32768,-32768,-32768,-32768,-32768, 1143, 1144, 1146, 1147, - 1148, 1142, 1149,-32768, 1150, 217,-32768, 1304, 2013, 3756, - 3778, 664,-32768, 2013,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1153,-32768,-32768,-32768,-32768, 1272, 476, 2013, - 1306, 1312, 18,-32768, 1326, 4921, 16,-32768,-32768, 3800, --32768,-32768, -96,-32768, -96, 1333,-32768, 1334,-32768,-32768, - 1164, 674, 6234, 3822, 1336, 1337, 1338, 2013, 2013, 802, - 1342, 1343, 1344, 1345, 1347, 1349,-32768, 2048, 2814, 6004, - 2645, 647, -96, 1350, -96, 1351, -96, 1352, 2838, 378, --32768, 1272,-32768,-32768, 1354, 1355, 1356, 1357, 2013, 2013, --32768,-32768, 1311, 1272, 1272, 1277, 1272, 2682, 307, 6027, - 2013, 1362, 2013, 1272, 1361, 1367, 1363, 1245, 1377, 486, - 1402, 1409, 2013, 1413, 1426, 1424, 1425, 1429, 486, 2013, - 2013, 2013, 1272, 1427, 1435, 486, 2013, 1436, 1437, 1438, - 2013, 413,-32768,-32768, 304, 6234, 2013, 2013, 1272, 1262, - 687, 6234, 1443, 1446, 1472, 1261,-32768, 1476, 1478,-32768, - 1264,-32768, 2013, 38, 59,-32768,-32768,-32768, 1305, 2013, --32768,-32768,-32768, 1366, 1439, 1479,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1475, 1480, 1307,-32768, 2013,-32768, 1309, - 401,-32768, 1353, 404,-32768, 1359, 408,-32768, 1360, 1394, - 2013, 1313,-32768,-32768,-32768,-32768, 3844, 3866, 143, 329, - 691, 1395, 1403, 2013,-32768, 2013,-32768,-32768, 3888, 1317, - 3910, 1358,-32768, 1364,-32768, 1397,-32768, 1368,-32768, 1398, - 6050,-32768, 1399,-32768,-32768, 1405, 1406, 6073, 3932, 6096, - 1404,-32768, 1407, 1408, 3954, 1417, 1410,-32768, 3976, 1430, --32768, 2013, 3998, 4020,-32768, 1272, 2013, 1518, 1411,-32768, --32768,-32768, 16,-32768, 1447, 4042,-32768,-32768,-32768, 4064, --32768,-32768,-32768,-32768,-32768, 647, 2712,-32768, 1665, 282, - 1665, 282, 1665, 282,-32768, 2862, 1272, 2013, 2013, 1448, --32768,-32768, 1272, 2013, 2886, 2910, 1272, 1531, 143, 486, - 1539, 2013, 1581, 486, 1601, 1608, 1607, 1609, 1610, 2013, - 1611, 1272, 1612, 1614, 2013, 1618, 1617, 2013, 1620, 1452, - 6234, 2013, 2013, 692, 6234,-32768,-32768, 1621,-32768, 2013, - 1638, 1469, 2013,-32768, 2934, 437, -28, 2958, 456, -26, - 2982, 474, -4, 2408, 1471, 700, 3006, 3030, 1473, 1477, - 1694,-32768,-32768, 1474,-32768, 1481, 1482, 1484, 4086,-32768, - 1483,-32768, 1491,-32768,-32768,-32768, 6119,-32768, 1490,-32768, --32768, 6142, 1496,-32768, 6165, 1492, 2013, 6188, 4108, 1647, --32768, 4130, 1493,-32768, 3054, 1653, 2013, 1692, 1693, 2013, - 1695, 1696, 2013, 1697,-32768, 282,-32768, 1272, 1698, 1701, - 1702, 1272, 1272,-32768, 1703, 486, 486, 486, 486, 1704, - 1706, 1707, 486, 1708, 1709, 1711, 1713, 701,-32768, 2013, --32768, 2013, 1715,-32768,-32768, 1541, 3078,-32768,-32768, 1545, - 3102,-32768,-32768, 1546, 3126,-32768, 2, 2469, 1547,-32768, --32768,-32768, 1548, 1572,-32768, 1575, 1576, 1582, 1583,-32768, --32768,-32768, 1579,-32768,-32768,-32768, 1580, 1755, 1584, 6211, - 3150, 1586, 282, 1756, 282, 1757, 282, 1758,-32768,-32768, - 282, 1770, 1272, 1690, 486, 486, 1795, 1800, 486, 1802, --32768, 476,-32768, 1803, 1805, 11,-32768, 1630, 36,-32768, - 1631, 45,-32768, 1632, 49,-32768, 1633, 1635, 1634, 1637, --32768,-32768, 1643, 1644, 706,-32768, 1639,-32768, 1640, 1815, - 282, 1821, 282, 1824, 282,-32768, 1747, 2013, 486, 1272, - 1826, 1827, 476, 1829, 476, 1831,-32768, 138,-32768, 214, --32768, 225, 1657, 4152, 1660, 1661,-32768,-32768,-32768,-32768, - 717,-32768,-32768, 1836, 1837, 1839, 2013, 2013, 486, 1272, - 476, 1846,-32768,-32768,-32768, 4174, 3174, 1682, 1683,-32768, --32768, 2013, 1858, 1272, 486, 3198,-32768, 1685, 1691, 1862, - 1272, 1863,-32768, 1699,-32768, 1272, 1700, 1272, 1712, 486, - 1714, 1868,-32768, 1875, 1876,-32768 +-32768,-32768, 1825, 1825,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 1825, 1825, 1825, 1825, + 1825, 1825, 1825, 855,-32768, 1661, 453,-32768,-32768, 1825, + 4556, 856, 1661, 733, 105, 1825, 858, 862, 1249,-32768, + 863, 736, 12, 865,-32768, 1825,-32768, 333, 3519, -78, + 1149, 1149, 866, 1149, 867, 1149, 1149,-32768, 1661, 2755, + 1415, 568,-32768, 2136, 1882, 734, 868, 869, 870, 835, + 872, 873, 876, 877, 878, 879, 880, 886, 216, 3541, + 3563,-32768,-32768, 2779, -78, -78, -78, 220,-32768, 95, + 885, 1661, 1661, 1661, 1661, 1897, 887, 1825, 1825, 888, + 889, 1149, 1149, 1825, 890, 1149, 892, 3585,-32768, 2151, + 791, 891, 895,-32768, 894, 13, 785, 1825, 1825, 1149, + 779,-32768, 5651, 4581, 5674, 4606, 5697, 4631, 5720, 4656, + 4681, 788, 360, 792, 5743, 239,-32768, 1021,-32768, 11, + 355, 783, 915, 1912,-32768,-32768,-32768, 12, 1825,-32768, + 569,-32768, 2076, 919, 1825, 41, 32, 33, 1149, 920, + 1149, 921, 922, 572,-32768,-32768, 1661,-32768, 1825,-32768, + 1825, 1149, 1149, 1149,-32768, 493, 1149, 1149, 1149, 1149, + 1149, 1149, 1149, 602, 1825, 1825, 1825, 798, -69, 135, + 334, 1452, 923, 800, -27,-32768,-32768, 573, 577, 581, + 582,-32768,-32768, 3607, 3629,-32768,-32768, 924, 925, 5766, + 53, 846,-32768, 1825, 1825, 1825,-32768, 802, -26,-32768, + 929, 1825, 3651, 3673, 585,-32768, 1825,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 807,-32768,-32768,-32768,-32768, + 1149, 453, 1825, 931, 937, 17,-32768, 944, 4706, 12, +-32768,-32768, 3695,-32768,-32768, -78,-32768, -78, 954,-32768, + 956,-32768,-32768, 809, 586, 2076, 3717, 957, 958, 963, + 1825, 1825, 722, 965, 967, 968, 972, 973, 974,-32768, + 1790, 2803, 5789, 2044, 540, -78, 976, -78, 977, -78, + 978, 2827, 302,-32768, 1149,-32768,-32768, 979, 980, 983, + 984, 1825, 1825,-32768,-32768, 985, 1149, 1149, 904, 1149, + 2173, 664, 5812, 1825,-32768,-32768, 367, 2076, 1825, 1825, + 1149, 859, 597, 2076, 989, 993, 994, 1927,-32768, 996, + 995,-32768, 882,-32768, 1825, 61, 66,-32768,-32768,-32768, + 871, 1825,-32768,-32768,-32768, 1942, 1957, 998,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 1972, 1009, 893,-32768, 1825, +-32768, 884, 374,-32768, 896, 417,-32768, 897, 420,-32768, + 899, 901, 1825, 903,-32768,-32768,-32768,-32768, 3739, 3761, + 53, 369, 598, 905, 940, 1825,-32768, 1825,-32768,-32768, + 3783,-32768, 1825, 3805, 3827,-32768, 1149, 1825, 1020, 900, +-32768,-32768,-32768, 12,-32768, 939, 3849,-32768,-32768,-32768, + 3871,-32768,-32768,-32768,-32768,-32768, 540, 2653,-32768, 1452, + 95, 1452, 95, 1452, 95,-32768, 2851, 1149, 1825, 1825, + 955,-32768,-32768, 1149, 1825, 2875, 2899, 1149, 906, 2076, + 1825, 1825, 615, 2076,-32768,-32768, 1035,-32768, 1825, 1040, + 907, 1825,-32768, 2923, 424, 3, 2947, 457, 211, 2971, + 475, 215, 2559, 912, 616, 2995, 3019, 914, 917, 2091, +-32768,-32768, 927, 1825, 5835, 3893, 1050,-32768, 3915, 932, +-32768, 3043, 1052, 1825, 1054, 1055, 1825, 1056, 1058, 1825, + 1064,-32768, 95,-32768, 1149, 1070, 1080, 1081, 1149, 1149, +-32768, 1082, 619,-32768, 1825,-32768, 1825, 1084,-32768,-32768, + 952, 3067,-32768,-32768, 975, 3091,-32768,-32768, 981, 3115, +-32768, 258, 2580, 953,-32768,-32768,-32768, 959, 964,-32768, + 1087, 982, 5858, 3139, 986, 95, 1088, 95, 1089, 95, + 1109,-32768,-32768, 95, 1110, 1149, 1033,-32768, 453,-32768, + 1115, 1117, 262,-32768, 991, 278,-32768, 1010, 279,-32768, + 1011, 305,-32768, 987, 1016, 620,-32768, 1017,-32768, 997, + 1118, 95, 1121, 95, 1150, 95,-32768, 1098, 1825, 453, + 1177, 453, 1178,-32768, 317,-32768, 320,-32768, 321, 1047, + 3937,-32768,-32768, 626,-32768,-32768, 1180, 1181, 1182, 1825, + 1825, 453, 1186,-32768,-32768,-32768, 3959, 3163,-32768,-32768, + 1825, 1188, 3187,-32768, 1189,-32768, 1196, 1197,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1235, --32768, 551,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, -299, -14,-32768, 1874, 4, -364, - -88, 6,-32768,-32768,-32768,-32768,-32768, 1879,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - -1129, -889,-32768,-32768, -660, -18,-32768, 41,-32768, -83, --32768, -1109, -1029, -155, -251, -337, -707, 890,-32768, -64 +-32768,-32768,-32768,-32768, 679,-32768, 175,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -250, + -3,-32768, 1198, 5, -315, -162, 10,-32768,-32768,-32768, +-32768,-32768, 1199,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, -949, -637,-32768,-32768, -4, +-32768, 219,-32768, 271, -825, 18, -164, -284, -562, 408, +-32768, -2 }; -#define YYLAST 6407 - - -static const short yytable[] = { 143, - 214, 216, 352, 142, 186, 249, 72, 358, 73, 546, - 571, 510, 860, 647, 147, 1044, 189, 647, 94, 202, - 254, 719, 200, 212, 1160, 1161, 1002, 153, 1001, 155, - 212, 388, 387, 389, 205, 903, 399, 392, 393, 903, - 904, 903, 4, 1217, 904, 5, 904, 153, 256, 1240, - 257, 1004, 119, 120, 121, 122, 82, 506, 123, 119, - 120, 121, 122, 903, 1218, 123, 173, 174, 904, 903, - 163, 164, 1003, 165, 904, 372, 373, 175, 903, 177, - 179, 83, 185, 904, 176, 648, 649, 650, 651, 648, - 649, 650, 651, 374, 531, 506, 84, 1005, 386, 532, - 1287, 391, 1290, 903, 1293, 372, 373, 88, 904, 372, - 373, 85, 903, 304, 305, 306, 903, 904, 307, 310, - 86, 904, 315, 375, 410, 400, 412, 384, 258, 335, - 259, 336, 337, 338, 154, 340, 87, 342, 343, 1306, - 354, 770, 193, 771, 311, 194, 372, 373, 89, 1043, - 995, 201, 150, 1338, 154, 1341, 370, 371, 90, 769, - 128, 129, 130, 131, 646, 371, 6, 7, 8, 9, - 10, 11, 12, 13, 586, 587, 1274, 1344, 146, 397, - 398, 187, 401, 1419, 403, 372, 373, 406, 407, 148, - 149, 652, 1460, 190, 725, 968, 203, 255, 720, 213, - 372, 373, 157, 390, 206, 903, 215, 739, 713, 772, - 904, 155, 367, 639, 369, 150, 1387, 1462, 640, 158, - 376, 372, 373, 160, 383, 94, 1464, 151, 312, 313, - 1466, 152, 449, 496, 497, 498, 499, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 161, - 506, 903, 156, 1436, 509, 1439, 904, 1442, 851, 1112, - 505, 1445, 903, 506, 451, 578, 511, 904, 157, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 1166, 602, 1054, 372, 373, 1494, - 537, 212, 539, 1055, 702, 864, 159, 305, 505, 703, - 710, 1478, 989, 1480, 562, 1482, 550, 551, 552, 162, - 554, 555, 556, 557, 558, 559, 560, 709, 166, 903, - 119, 120, 121, 122, 904, 260, 123, 261, 573, 574, - 575, 304, 305, 576, 171, 843, 579, 128, 129, 130, - 131, 589, 852, 853, 172, 593, 594, 567, 567, 570, - 570, 598, 372, 373, 495, 212, 135, 136, 135, 136, - 606, 372, 373, 372, 373, 1495, 712, 1044, 874, 1033, - 1044, 1034, 985, 1044, 180, 1065, 1496, 710, 1035, 1178, - 1036, 188, 565, 566, 119, 120, 121, 122, 1187, 191, - 123, 369, 329, 330, 331, 1194, 128, 129, 130, 131, - 332, 908, 909, 910, 911, 645, 181, 372, 373, 182, - 183, 372, 373, 262, 715, 263, 192, 135, 136, 135, - 136, 506, 250, 1074, 1037, 251, 1038, 252, 849, 318, - 319, 320, 321, 322, 195, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 128, 129, 130, 131, 1201, 332, - 212, 196, 708, 1202, 506, 305, 135, 136, 1167, 372, - 373, 716, 197, 714, 823, 135, 136, 1044, 167, 372, - 373, 168, 169, 1241, 170, 1278, 572, 198, 1099, 119, - 120, 121, 122, 505, 726, 123, 577, 506, 506, 506, - 506, 372, 373, 708, 737, 264, 505, 265, 741, 742, - 372, 373, 1018, 1019, 747, 135, 136, 199, 895, 1012, - 372, 373, 207, 823, 757, 758, 1044, 902, 208, 1044, - 988, 990, 1044, 761, 700, 1044, 701, 1151, 173, 174, - 266, 209, 267, 372, 373, 210, 372, 373, 773, 175, - 372, 373, 867, 868, 314, 870, 184, 872, 873, 825, - 1229, 211, 785, 1231, 787, 788, 247, 1233, 1044, 1307, - 1044, 298, 1044, 1311, 952, 953, 954, 955, 956, 372, - 373, 299, 756, 320, 321, 322, 300, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1337, 765, 372, 373, - 268, 332, 269, 918, 919, 506, 270, 922, 271, 824, - 301, 885, 135, 136, 316, 1340, 372, 373, 501, 844, - 252, 1027, 1028, 938, 939, 302, 135, 136, 333, 944, - 945, 355, 542, 1343, 252, 272, 951, 273, 958, 334, - 339, 833, 834, 135, 136, 341, 274, 1140, 275, 738, - 926, 252, 276, 356, 277, 835, 836, 837, 838, 839, - 840, 841, 886, 278, 505, 279, 357, 280, 845, 281, - 282, 848, 283, 366, 854, 1396, 1397, 1398, 1399, 284, - 359, 285, 1403, 286, 863, 287, 361, 38, 39, 40, - 41, 360, 43, 1006, 288, 1008, 289, 505, 362, 708, - 49, 50, 290, 292, 291, 293, 1015, 1016, 1017, 363, - 364, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 965, 365, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 377, - 505, 505, 505, 505, 332, 378, 914, 915, 294, 296, - 295, 297, 920, 379, 1449, 1450, 385, 866, 1453, 710, - 396, 711, 930, 931, 710, 710, 740, 878, 318, 319, - 320, 321, 322, 394, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 997, 710, 998, 1011, 710, 332, 1045, - 395, 402, 899, 900, 901, 1126, 405, 1127, 1485, 970, - 971, 710, 710, 1046, 1047, 318, 319, 320, 321, 322, - 404, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 317, 824, 1104, 932, 408, 332, 991, 927, 1508, 710, - 996, 1048, 941, 1099, 409, 1100, 1000, 327, 328, 329, - 330, 331, 411, 710, 1519, 1119, 413, 332, 505, 414, - 1013, 1282, 1014, 444, 450, 515, 1207, 415, 1208, 1531, - 1099, 1099, 1242, 1330, 446, 416, 1029, 1030, 1031, 1348, - 1207, 1349, 1408, 1039, 417, 1473, 1152, 1474, 580, 23, - 24, 581, 582, 27, 583, 29, 1501, 30, 1502, 32, - 33, 1163, 35, 36, 418, 1058, 1059, 1060, 1172, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 48, - 429, 430, 431, 432, 1105, 433, 434, 1191, 52, 53, - 54, 435, 436, 437, 438, 439, 440, 441, 500, 442, - 443, 332, 1040, 1205, 447, 503, 64, 448, 512, 513, - 1096, 1093, 514, 543, 548, 1102, 553, 561, 588, 597, - 591, 592, 600, 1135, 603, 609, 704, 857, 610, 611, - 612, 1106, 613, 614, 615, 616, 617, 318, 319, 320, - 321, 322, 618, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 619, 620, 621, 622, 623, 332, 624, 1124, - 1125, 880, 625, 626, 627, 628, 629, 630, 1200, 1134, - 631, 632, 318, 319, 320, 321, 322, 633, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 634, 635, 584, - 1157, 1158, 332, 636, 637, 567, 642, 570, 638, 641, - 643, 705, 1169, 1114, 1171, 1115, 706, 707, 717, 718, - 724, 775, 722, 727, 1181, 728, 729, 731, 733, 734, - 743, 1188, 1189, 1190, 755, 759, 760, 779, 1195, 776, - 780, 781, 1199, 1141, 783, 1144, 784, 1147, 1203, 1204, - 790, 1296, 791, 792, 793, 794, 795, 1300, 796, 797, - 798, 1304, 799, 800, 1216, 801, 802, 803, 804, 805, - 806, 1220, 807, 808, 809, 810, 1319, 811, 812, 813, - 814, 815, 816, 820, 318, 319, 320, 321, 322, 1227, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 830, - 817, 818, 1236, 821, 332, 819, 822, 832, 842, 847, - 828, 855, 856, 881, 858, 1245, 1294, 1246, 318, 319, - 320, 321, 322, 829, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 850, 862, 894, 869, 871, 332, 321, - 322, 882, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 883, 859, 1271, 884, 887, 332, 888, 1275, 889, - 890, 891, 1389, 892, 893, 907, 1393, 1394, 913, 916, - 917, 923, 921, 928, 929, 933, 934, 936, 935, 937, - 1285, 940, 1288, 942, 1291, 943, 946, 947, 948, 1297, - 1298, 949, 950, 959, 993, 1301, 960, 961, 962, 567, - 912, 570, 963, 1309, 964, 966, 967, 974, 969, 992, - 984, 1317, 999, 986, 1007, 994, 1322, 1009, 1010, 1325, - 1032, 1041, 1042, 1328, 1329, 1051, 1052, 1057, 1388, 1061, - 1062, 1332, 1066, 1067, 1335, 1068, 1212, 1447, 1069, 1286, - 1070, 1289, 1071, 1292, 91, 344, 1072, 1076, 1073, 1075, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 1077, 1078, 1079, 1080, 1102, 1094, - 1081, 1107, 345, 1084, 1486, 1108, 1090, 1159, 1377, 1082, - 1083, 1381, 1085, 1086, 1385, 1087, 1088, 1089, 1091, 1092, - 1103, 1110, 38, 39, 40, 41, 42, 43, 1116, 1117, - 1118, 1121, 1122, 1123, 1509, 49, 50, 1128, 1129, 1130, - 1131, 1410, 1132, 1411, 1133, 1142, 1145, 1148, 1518, 1153, - 1154, 1155, 1156, 1162, 1170, 1524, 1173, 1456, 1175, 1174, - 1527, 1221, 1529, 124, 125, 126, 127, 318, 319, 320, - 321, 322, 1177, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 318, 319, 320, 321, 322, 332, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 1179, 1489, 1176, - 1492, 1180, 332, 318, 319, 320, 321, 322, 1182, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 1183, 1184, - 1185, 1186, 1192, 332, 132, 346, 1510, 1193, 1196, 1197, - 134, 1215, 1206, 1198, 1222, 137, 1209, 91, 303, 1484, - 140, 1210, 347, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 1211, 1506, 1507, - 1224, 1219, 1213, 1214, 1223, 1225, 1244, 1226, 91, 303, - 1228, 1248, 1237, 1516, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 318, 319, - 320, 321, 322, 1276, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 1230, 1299, 1279, 1305, 1250, 332, 1232, - 1234, 1308, 1253, 1251, 91, 303, 124, 125, 126, 127, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 1235, 1243, 1252, 1254, 1256, 1257, - 1258, 1263, 1264, 1262, 1267, 1277, 1310, 124, 125, 126, - 127, 318, 319, 320, 321, 322, 1266, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1312, 132, 133, 1269, - 1313, 332, 1314, 134, 1315, 1316, 1318, 1320, 137, 1321, - 1323, 308, 1324, 140, 1326, 309, 1331, 318, 319, 320, - 321, 322, 1327, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1333, 124, 125, 126, 127, 332, 132, 133, - 1334, 1347, 1371, 1352, 134, 1355, 1353, 1360, 1375, 137, - 1356, 1357, 735, 1358, 140, 1361, 736, 91, 303, 1363, - 1365, 1367, 1373, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 1378, 1379, 1354, - 1382, 1383, 1386, 1390, 132, 133, 1391, 1392, 1395, 1400, - 134, 1401, 1402, 1404, 1405, 137, 1406, 1407, 876, 1412, - 140, 1413, 877, 91, 544, 1415, 1417, 1423, 1422, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 1424, 1425, 1426, 1427, 1428, 1429, 1430, - 1431, 1437, 1440, 1443, 1432, 1435, 124, 125, 126, 127, - 91, 92, 93, 1448, 94, 1446, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 1451, 119, 120, 121, 122, 1452, 1454, 123, 1458, 1459, - 1461, 1463, 1465, 1469, 1467, 1468, 1470, 1471, 1472, 1475, - 1477, 1476, 124, 125, 126, 127, 1479, 380, 381, 1481, - 1483, 1487, 1488, 134, 1490, 547, 1493, 1497, 382, 1499, - 1500, 1503, 1504, 140, 1505, 176, 318, 319, 320, 321, - 322, 1511, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 1514, 1515, 1517, 1521, 1522, 332, 1523, 1525, 124, - 125, 126, 127, 1533, 1535, 1536, 71, 1368, 1526, 1528, - 826, 79, 1109, 132, 133, 0, 0, 0, 1532, 134, - 0, 1530, 0, 0, 137, 0, 0, 0, 0, 140, - 0, 545, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 129, 130, 131, +#define YYLAST 5990 + + +static const short yytable[] = { 120, + 119, 329, 479, 418, 334, 454, 58, 520, 177, 163, + 182, 59, 166, 124, 130, 179, 520, 71, 254, 197, + 592, 1006, 130, 1009, 132, 1012, 189, 353, 342, 355, + 700, 932, 933, 189, 331, 3, 332, 805, 807, 123, + 743, 150, 151, 315, 316, 744, 804, 127, 191, 193, + 315, 316, 152, 126, 642, 96, 97, 98, 99, 153, + 470, 100, 96, 97, 98, 99, 958, 836, 100, 837, + 743, 959, 439, 127, 343, 744, 128, 440, 131, 521, + 522, 523, 524, 806, 808, 643, 131, 414, 521, 522, + 523, 524, 129, 1072, 178, 644, 315, 316, 315, 316, + 112, 113, 255, 256, 247, 248, 249, 847, 691, 250, + 253, 846, 132, 258, 317, 480, 105, 106, 107, 108, + 278, 993, 279, 280, 281, 414, 283, 170, 285, 286, + 171, 297, 134, 315, 316, 798, 1103, 183, 1106, 645, + 1109, 1035, 525, 164, 1112, 125, 167, 313, 314, 180, + 485, 771, 295, 198, 593, 598, 314, 301, 133, 190, + 315, 316, 743, 333, 486, 586, 192, 744, 612, 134, + 340, 341, 1135, 344, 1137, 346, 1139, 135, 349, 350, + 315, 316, 330, 857, 510, 315, 316, 335, 336, 357, + 858, 137, 692, 693, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 136, 884, 404, 405, + 406, 407, 71, 154, 156, 144, 162, 413, 145, 146, + 419, 147, 494, 495, 315, 316, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 838, 199, 839, 200, 414, 189, 445, 743, 447, + 143, 417, 743, 744, 248, 413, 138, 744, 414, 140, + 141, 683, 142, 458, 459, 460, 139, 462, 463, 464, + 465, 466, 467, 468, 575, 96, 97, 98, 99, 576, + 201, 100, 202, 315, 316, 481, 482, 483, 247, 248, + 484, 475, 475, 487, 714, 743, 478, 478, 497, 743, + 744, 318, 501, 502, 744, 315, 316, 148, 506, 315, + 316, 105, 106, 107, 108, 743, 743, 514, 165, 1038, + 744, 744, 735, 1041, 518, 149, 742, 748, 749, 750, + 751, 792, 112, 113, 157, 112, 113, 310, 847, 312, + 585, 847, 743, 663, 847, 319, 573, 744, 574, 326, + 105, 106, 107, 108, 743, 315, 316, 743, 743, 744, + 168, 997, 744, 744, 403, 189, 1092, 169, 112, 113, + 1121, 112, 113, 327, 581, 158, 663, 248, 159, 160, + 172, 414, 587, 589, 588, 359, 1123, 1125, 689, 315, + 316, 315, 316, 175, 96, 97, 98, 99, 582, 203, + 100, 204, 815, 173, 847, 413, 599, 519, 923, 791, + 793, 112, 113, 1127, 414, 581, 610, 194, 413, 195, + 614, 615, 174, 315, 316, 1147, 620, 189, 1148, 1149, + 105, 106, 107, 108, 704, 847, 630, 631, 847, 583, + 840, 847, 841, 176, 847, 634, 184, 414, 414, 414, + 414, 112, 113, 185, 150, 151, 96, 97, 98, 99, + 646, 788, 100, 315, 316, 152, 583, 847, 942, 847, + 982, 847, 161, 943, 658, 871, 660, 661, 186, 205, + 970, 206, 187, 664, 665, 272, 273, 274, 188, 912, + 263, 264, 265, 275, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 473, 474, 241, 315, 316, 275, 315, + 316, 242, 312, 315, 316, 207, 243, 208, 673, 674, + 821, 822, 414, 972, 257, 209, 974, 210, 244, 211, + 1034, 212, 675, 676, 677, 678, 679, 680, 681, 245, + 213, 413, 214, 282, 684, 685, 315, 316, 688, 264, + 265, 694, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 703, 259, 1037, 315, 316, 275, 583, 276, 584, + 24, 25, 26, 27, 413, 29, 581, 830, 831, 112, + 113, 1040, 277, 35, 36, 409, 284, 195, 707, 708, + 215, 710, 216, 712, 713, 298, 299, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 300, 413, 413, 413, + 413, 275, 309, 754, 755, 217, 219, 218, 220, 760, + 302, 1001, 270, 271, 272, 273, 274, 221, 303, 222, + 112, 113, 275, 773, 774, 223, 450, 224, 195, 758, + 759, 938, 225, 762, 226, 112, 113, 227, 229, 228, + 230, 611, 664, 195, 231, 304, 232, 794, 629, 233, + 235, 234, 236, 237, 799, 238, 239, 583, 240, 613, + 803, 305, 320, 638, 583, 800, 718, 801, 583, 583, + 814, 848, 413, 583, 816, 849, 817, 583, 583, 850, + 851, 871, 583, 872, 891, 898, 809, 899, 811, 306, + 832, 833, 834, 948, 871, 949, 983, 842, 321, 818, + 819, 820, 307, 308, 823, 824, 825, 826, 827, 828, + 829, 871, 1045, 1027, 1046, 948, 1130, 1081, 1131, 861, + 862, 863, 1152, 328, 1153, 865, 322, 868, 337, 338, + 339, 347, 874, 261, 262, 263, 264, 265, 345, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 878, 877, + 348, 351, 352, 275, 354, 356, 358, 275, 766, 408, + 411, 420, 939, 421, 422, 456, 451, 461, 876, 469, + 496, 505, 499, 1013, 500, 508, 896, 897, 706, 511, + 577, 578, 579, 580, 590, 591, 906, 595, 907, 597, + 628, 600, 601, 602, 604, 606, 607, 616, 648, 475, + 725, 632, 633, 649, 478, 652, 653, 929, 930, 654, + 656, 657, 670, 739, 740, 741, 672, 668, 682, 941, + 669, 687, 924, 695, 944, 945, 690, 696, 699, 698, + 702, 721, 709, 711, 722, 723, 724, 935, 727, 728, + 957, 1073, 729, 730, 731, 732, 733, 961, 946, 734, + 747, 726, 753, 756, 757, 763, 761, 768, 769, 770, + 261, 262, 263, 264, 265, 968, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 772, 777, 795, 977, 787, + 275, 796, 767, 789, 802, 810, 812, 813, 844, 854, + 855, 986, 860, 987, 866, 835, 879, 845, 990, 864, + 880, 875, 890, 994, 261, 262, 263, 264, 265, 882, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 888, + 843, 889, 893, 894, 275, 1004, 260, 1007, 895, 1010, + 900, 475, 901, 902, 1016, 1017, 478, 903, 904, 905, + 1020, 914, 917, 920, 925, 926, 1025, 1026, 927, 928, + 934, 931, 950, 423, 1029, 1015, 947, 1032, 951, 952, + 955, 1019, 954, 964, 960, 1023, 488, 9, 10, 489, + 490, 13, 491, 15, 966, 16, 956, 18, 19, 874, + 21, 22, 969, 985, 886, 995, 887, 998, 455, 1062, + 967, 996, 1066, 971, 973, 1070, 975, 34, 976, 978, + 1028, 1018, 984, 1024, 1030, 1031, 38, 39, 40, 1044, + 1083, 1049, 1084, 1050, 913, 1056, 916, 1060, 919, 1063, + 1064, 1067, 1074, 1068, 50, 1052, 1078, 1079, 1058, 1071, + 261, 262, 263, 264, 265, 1075, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 1076, 1077, 1080, 1085, 1086, + 275, 1095, 1098, 1104, 1107, 1096, 1117, 261, 262, 263, + 264, 265, 1097, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 1088, 1114, 1110, 1113, 1115, 275, 1090, 1099, + 1119, 1120, 1102, 1134, 1141, 1128, 1136, 1142, 1122, 1145, + 261, 262, 263, 264, 265, 1133, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 1157, 1158, 1124, 1126, 1159, + 275, 68, 287, 1129, 1132, 1138, 1163, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 1140, 1143, 1146, 1150, 1154, 1155, 1156, 1005, 288, + 1008, 1160, 1011, 1164, 1166, 1168, 1169, 666, 1053, 57, + 65, 981, 0, 881, 0, 0, 0, 0, 0, 24, + 25, 26, 27, 28, 29, 0, 0, 0, 68, 246, + 0, 0, 35, 36, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, + 101, 102, 103, 104, 697, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 109, 289, + 0, 0, 0, 0, 111, 0, 0, 0, 0, 114, + 0, 68, 246, 0, 117, 0, 290, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 0, 0, 0, 0, 0, 0, 101, 102, 103, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 109, 110, 0, 0, 0, + 0, 111, 0, 0, 0, 0, 114, 0, 0, 251, + 0, 117, 0, 252, 0, 0, 0, 0, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 109, 110, + 0, 0, 0, 0, 111, 0, 0, 0, 0, 114, + 0, 0, 608, 0, 117, 0, 609, 68, 246, 0, + 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 68, 246, 0, 0, 0, 0, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 68, 452, 0, 0, 0, 0, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 132, 133, 0, 0, 0, 0, 134, 135, 136, 0, - 0, 137, 0, 138, 604, 139, 140, 91, 344, 0, - 0, 0, 0, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 0, 0, 723, - 318, 319, 320, 321, 322, 345, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 0, 0, 0, 38, 39, 40, 41, 42, - 43, 0, 879, 0, 0, 91, 303, 0, 49, 50, - 0, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 0, 124, 125, 126, 127, - 91, 303, 212, 0, 0, 0, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 0, 119, 120, 121, 122, 0, 0, 123, 0, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 132, 504, 332, - 925, 0, 0, 134, 124, 125, 126, 127, 137, 0, - 0, 0, 0, 140, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 0, 124, - 125, 126, 127, 0, 0, 0, 0, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 132, 133, 332, 0, 0, - 0, 134, 0, 0, 0, 0, 137, 0, 0, 0, - 0, 140, 0, 0, 0, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 132, 133, 0, 0, 0, 332, 134, 0, 0, 0, - 0, 137, 91, 544, 744, 0, 140, 0, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 0, 0, 0, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 580, 23, 24, 581, - 582, 27, 583, 29, 0, 30, 0, 32, 33, 0, - 35, 36, 0, 0, 0, 0, 0, 580, 23, 24, - 581, 582, 27, 583, 29, 0, 30, 48, 32, 33, - 0, 35, 36, 0, 0, 0, 52, 53, 54, 0, - 0, 124, 125, 126, 127, 0, 0, 0, 48, 0, - 0, 0, 0, 0, 64, 0, 0, 52, 53, 54, - 0, 0, 0, 0, 0, 580, 23, 24, 581, 582, - 27, 583, 29, 0, 30, 64, 32, 33, 0, 35, - 36, 0, 0, 0, 0, 0, 580, 23, 24, 581, - 582, 27, 583, 29, 0, 30, 48, 32, 33, 0, - 35, 36, 132, 133, 0, 52, 53, 54, 134, 0, - 0, 0, 0, 137, 0, 0, 0, 48, 140, 0, - 0, 0, 0, 64, 0, 0, 52, 53, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 590, 0, 0, - 0, 0, 0, 0, 64, 580, 23, 24, 581, 582, - 27, 583, 29, 0, 30, 0, 32, 33, 607, 35, - 36, 0, 0, 0, 0, 0, 0, 0, 580, 23, - 24, 581, 582, 27, 583, 29, 48, 30, 0, 32, - 33, 0, 35, 36, 0, 52, 53, 54, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 64, 0, 0, 608, 0, 52, 53, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 766, 0, 580, - 23, 24, 581, 582, 27, 583, 29, 0, 30, 0, - 32, 33, 0, 35, 36, 0, 0, 0, 0, 0, - -4, 1, 0, -4, -47, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 53, 54, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -47, 0, 0, 786, 64, -47, -47, - 0, -47, -47, -47, -47, -47, -47, -47, -47, 0, - -47, -47, -47, -47, -47, -47, -47, 0, 0, 1345, - -47, -47, -47, -47, -47, -47, -47, 0, -47, -47, - -47, -47, -47, 217, -47, -47, 0, 0, 0, 0, - -47, -47, -47, -47, 0, 0, 0, 0, -47, 0, - -47, 0, -47, -47, -47, -47, -47, -47, -47, -47, - -47, -47, 0, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 1420, 0, 0, 332, -4, -4, -4, -4, -4, -4, - -4, -4, 748, 0, 0, 218, 219, 220, 0, 0, - 0, 0, 0, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 18, 0, 0, 0, 0, 0, 0, - 0, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 0, 241, 242, 243, 244, 245, 246, 0, 0, - 0, 0, 19, 0, 0, 0, 0, 20, 21, 0, - 22, 23, 24, 25, 26, 27, 28, 29, 0, 30, - 31, 32, 33, 34, 35, 36, 0, 0, 0, 37, - 38, 39, 40, 41, 42, 43, 0, 44, 45, 46, - 47, 48, 0, 49, 50, 0, 0, 0, 0, 51, - 52, 53, 54, 0, 0, 0, 0, 55, 0, 56, - 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 580, 23, 24, 581, 582, 27, 583, 29, 0, - 30, 0, 32, 33, 0, 35, 36, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 48, 0, 0, 0, 0, 332, 0, 0, - 0, 52, 53, 54, 1138, 0, 1139, 0, 0, 0, - 0, 0, 0, 0, 318, 319, 320, 321, 322, 64, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, - 0, 1164, 0, 1165, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, - 0, 1283, 0, 1284, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 318, 319, - 320, 321, 322, 749, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 318, 319, 320, 321, 322, 875, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 0, 0, 318, 319, 320, 321, - 322, 898, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, - 318, 319, 320, 321, 322, 1136, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 0, 0, 318, 319, 320, 321, 322, 1150, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 318, 319, - 320, 321, 322, 1295, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 318, 319, 320, 321, 322, 1302, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 0, 0, 318, 319, 320, 321, - 322, 1303, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, - 318, 319, 320, 321, 322, 1336, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 0, 0, 318, 319, 320, 321, 322, 1339, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 318, 319, - 320, 321, 322, 1342, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 318, 319, 320, 321, 322, 1350, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 0, 0, 318, 319, 320, 321, - 322, 1351, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, - 318, 319, 320, 321, 322, 1374, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 0, 0, 318, 319, 320, 321, 322, 1414, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 0, 0, 318, 319, - 320, 321, 322, 1416, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 318, 319, 320, 321, 322, 1418, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 0, 0, 318, 319, 320, 321, - 322, 1434, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 0, 0, - 318, 319, 320, 321, 322, 1513, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 0, 0, 318, 319, 320, 321, 322, 1520, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 502, 0, 0, 0, - 0, 563, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 533, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 563, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 564, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 601, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 680, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 681, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 694, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 695, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 696, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 697, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 698, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 699, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 762, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 763, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 764, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 865, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 896, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 897, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 924, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 1049, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 1050, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 1063, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 1064, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 1097, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 1098, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 1113, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 1120, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 1238, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 1239, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 1247, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 1249, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 1260, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 1265, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 1268, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 1272, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 1273, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 1280, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 1281, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 318, 319, 320, 321, 322, 1359, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 318, 319, 320, 321, 322, 1370, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 318, 319, 320, 321, 322, 1372, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 318, 319, 320, 321, - 322, 1498, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 318, 319, - 320, 321, 322, 1512, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 508, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 644, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 659, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 661, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 663, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 665, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 667, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 669, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 671, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 673, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 675, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 677, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 679, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 683, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 685, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 687, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 689, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 691, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 693, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 768, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 774, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 777, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 778, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 846, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 976, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 978, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 980, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 982, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 0, 0, 983, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 0, 0, 1111, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 502, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 534, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 535, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 536, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 538, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 540, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 541, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 332, - 0, 549, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 595, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 0, 596, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 599, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 605, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 658, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 660, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 662, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 664, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 666, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 332, - 0, 668, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 670, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 0, 672, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 674, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 676, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 678, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 682, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 684, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 686, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 688, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 332, - 0, 690, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 692, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 0, 730, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 732, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 745, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 746, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 750, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 751, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 752, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 753, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 332, - 0, 754, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 782, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 0, 789, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 975, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 977, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 979, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 981, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 987, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 1053, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332, 0, 1137, 318, - 319, 320, 321, 322, 0, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 0, 0, 0, 0, 0, 332, - 0, 1168, 318, 319, 320, 321, 322, 0, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 0, 0, 0, - 0, 0, 332, 0, 1255, 318, 319, 320, 321, 322, - 0, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 0, 0, 0, 0, 0, 332, 0, 1259, 318, 319, - 320, 321, 322, 0, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 0, 0, 0, 0, 0, 332, 0, - 1261, 318, 319, 320, 321, 322, 0, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 0, 0, 0, 0, - 0, 332, 0, 1362, 318, 319, 320, 321, 322, 0, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 0, - 0, 0, 0, 0, 332, 0, 1364, 318, 319, 320, - 321, 322, 0, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 0, 0, 0, 0, 0, 332, 0, 1366, - 318, 319, 320, 321, 322, 0, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 0, 0, 0, 0, 0, - 332, 0, 1369, 318, 319, 320, 321, 322, 0, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 0, 0, - 0, 0, 0, 332, 0, 1433, 318, 319, 320, 321, - 322, 0, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 0, 0, 0, 0, 0, 332 + 0, 0, 0, 0, 109, 110, 0, 0, 0, 0, + 111, 0, 0, 0, 0, 114, 0, 0, 716, 0, + 117, 0, 717, 101, 102, 103, 104, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 323, 324, 0, 0, 0, 0, 111, 0, 0, + 0, 0, 325, 101, 102, 103, 104, 117, 0, 153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 110, 0, 0, 0, 0, 111, 0, 0, + 0, 0, 114, 0, 68, 69, 70, 117, 71, 453, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 0, 96, 97, 98, 99, 0, + 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 68, 287, 0, 0, 0, 0, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 101, 102, 103, 104, 105, 106, 107, + 108, 24, 25, 26, 27, 28, 29, 0, 0, 0, + 0, 109, 110, 0, 35, 36, 0, 111, 112, 113, + 0, 0, 114, 0, 115, 0, 116, 117, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 101, 102, 103, 104, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 109, 412, 0, 0, 0, 0, 111, 0, 0, 0, + 0, 114, 68, 246, 189, 0, 117, 0, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 0, 96, 97, 98, 99, 68, 246, 100, + 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 68, 452, 0, + 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 720, 0, 0, + 0, 101, 102, 103, 104, 0, 0, 0, 0, 0, + 0, 0, 752, 0, 0, 0, 0, 0, 0, 109, + 110, 0, 0, 0, 0, 111, 0, 797, 0, 0, + 114, 0, 0, 0, 0, 117, 101, 102, 103, 104, + 0, 0, 953, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 110, 0, 962, 0, 0, + 111, 0, 0, 0, 0, 114, 101, 102, 103, 104, + 117, 0, 963, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 110, 0, 965, 0, 0, + 111, 0, 0, 0, 0, 114, 0, 0, 0, 0, + 117, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 261, 262, 263, 264, + 265, 275, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 261, 262, 263, 264, 265, 275, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 261, 262, 263, 264, + 265, 275, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 261, 262, 263, 264, 265, 275, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 261, 262, 263, 264, + 265, 275, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 261, 262, 263, 264, 265, 275, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 1051, 0, 0, 0, + 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 512, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 719, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 261, 262, 263, 264, 265, 765, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, + 910, 0, 911, 0, 0, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 261, 262, 263, 264, 265, 275, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 261, 262, 263, 264, 265, + 275, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 261, 262, 263, 264, 265, 275, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 261, 262, 263, 264, 265, + 275, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 261, 262, 263, 264, 265, 275, 266, 267, 268, 269, + 270, 271, 272, 273, 274, -3, 1, 0, 0, -3, + 275, 0, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 0, 0, -3, 936, + 0, 937, 0, -3, -3, 0, -3, -3, -3, -3, + -3, -3, -3, -3, 0, -3, -3, -3, -3, -3, + -3, -3, 0, 0, 0, -3, -3, -3, -3, -3, + -3, -3, 0, -3, -3, -3, -3, -3, 0, -3, + -3, 0, 0, 0, 0, -3, -3, -3, -3, 0, + 0, 0, 0, -3, 0, -3, 0, -3, -3, -3, + -3, -3, -3, -3, -3, -3, -3, 488, 9, 10, + 489, 490, 13, 491, 15, 0, 16, 0, 18, 19, + 0, 21, 22, 0, 0, 0, 0, 0, 488, 9, + 10, 489, 490, 13, 491, 15, 0, 16, 34, 18, + 19, 0, 21, 22, 0, 0, 0, 38, 39, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 50, 0, 0, 38, 39, + 40, 0, 0, 488, 9, 10, 489, 490, 13, 491, + 15, 0, 16, 0, 18, 19, 50, 21, 22, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 34, 492, 0, 0, 0, 275, + 0, 410, 0, 38, 39, 40, 471, 0, 488, 9, + 10, 489, 490, 13, 491, 15, 498, 16, 0, 18, + 19, 50, 21, 22, 0, 0, 0, 0, 0, 488, + 9, 10, 489, 490, 13, 491, 15, 0, 16, 34, + 18, 19, 0, 21, 22, 0, 0, 0, 38, 39, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 515, 0, 0, 0, 0, 50, 0, 0, 38, + 39, 40, 0, 0, 488, 9, 10, 489, 490, 13, + 491, 15, 0, 16, 0, 18, 19, 50, 21, 22, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 34, 516, 0, 0, 0, + 275, 0, 0, 0, 38, 39, 40, 441, 0, 488, + 9, 10, 489, 490, 13, 491, 15, 639, 16, 0, + 18, 19, 50, 21, 22, 0, 0, 0, 0, 0, + 488, 9, 10, 489, 490, 13, 491, 15, 0, 16, + 34, 18, 19, 0, 21, 22, 0, 0, 0, 38, + 39, 40, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 659, 0, 0, 0, 0, 50, 0, 0, + 38, 39, 40, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 1042, 6, 7, + 0, 8, 9, 10, 11, 12, 13, 14, 15, 0, + 16, 17, 18, 19, 20, 21, 22, 0, 1093, 0, + 23, 24, 25, 26, 27, 28, 29, 0, 30, 31, + 32, 33, 34, 0, 35, 36, 0, 0, 0, 0, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 0, + 42, 0, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 0, 0, 0, 1002, + 0, 1003, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 261, 262, 263, 264, + 265, 617, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 261, 262, 263, 264, 265, 621, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 261, 262, 263, 264, 265, 622, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 261, 262, + 263, 264, 265, 715, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 0, 0, 261, 262, 263, 264, 265, 738, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 261, 262, 263, 264, + 265, 908, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 261, 262, 263, 264, 265, 922, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 261, 262, 263, 264, 265, 1014, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 261, 262, + 263, 264, 265, 1021, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 0, 0, 261, 262, 263, 264, 265, 1022, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 261, 262, 263, 264, + 265, 1033, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 261, 262, 263, 264, 265, 1036, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 261, 262, 263, 264, 265, 1039, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 261, 262, + 263, 264, 265, 1047, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 0, 0, 261, 262, 263, 264, 265, 1048, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 261, 262, 263, 264, + 265, 1059, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 261, 262, 263, 264, 265, 1087, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 261, 262, 263, 264, 265, 1089, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 0, 0, 261, 262, + 263, 264, 265, 1091, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 0, 0, 261, 262, 263, 264, 265, 1101, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 0, 0, 261, 262, 263, 264, + 265, 1162, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 0, 0, + 261, 262, 263, 264, 265, 1165, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 471, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 472, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 509, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 553, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 554, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 567, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 568, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 569, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 570, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 571, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 572, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 635, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 636, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 637, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 705, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 736, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 737, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 764, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 852, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 853, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 869, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 870, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 885, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 892, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 979, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 980, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 988, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 991, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 992, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 999, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 261, 262, 263, 264, 265, 1000, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 261, 262, 263, 264, 265, 1055, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 261, 262, 263, 264, + 265, 1057, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 261, 262, + 263, 264, 265, 1151, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 261, 262, 263, 264, 265, 1161, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 416, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 517, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 532, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 534, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 536, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 538, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 540, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 542, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 544, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 546, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 548, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 550, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 552, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 556, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 558, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 560, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 562, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 564, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 566, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 641, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 647, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 650, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 651, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 686, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 779, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 781, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 783, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 785, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 0, 0, 786, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 0, 0, 883, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 410, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 442, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 443, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 0, 0, 0, 0, 0, 275, + 0, 444, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 446, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 448, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 449, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 0, 0, 0, 0, + 0, 275, 0, 457, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 503, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 0, 0, 0, 0, 0, 275, 0, 504, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 507, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 513, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 531, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 0, 0, 0, 0, 0, 275, + 0, 533, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 535, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 537, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 539, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 0, 0, 0, 0, + 0, 275, 0, 541, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 543, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 0, 0, 0, 0, 0, 275, 0, 545, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 547, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 549, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 551, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 0, 0, 0, 0, 0, 275, + 0, 555, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 557, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 559, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 561, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 0, 0, 0, 0, + 0, 275, 0, 563, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 565, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 0, 0, 0, 0, 0, 275, 0, 603, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 605, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 618, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 619, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 0, 0, 0, 0, 0, 275, + 0, 623, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 624, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 625, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 626, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 0, 0, 0, 0, + 0, 275, 0, 627, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 655, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 0, 0, 0, 0, 0, 275, 0, 662, + 261, 262, 263, 264, 265, 0, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 0, 0, + 275, 0, 778, 261, 262, 263, 264, 265, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, + 0, 0, 0, 275, 0, 780, 261, 262, 263, 264, + 265, 0, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 0, 0, 275, 0, 782, 261, + 262, 263, 264, 265, 0, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 0, 0, 0, 0, 0, 275, + 0, 784, 261, 262, 263, 264, 265, 0, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, + 0, 0, 275, 0, 790, 261, 262, 263, 264, 265, + 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 0, 0, 275, 0, 856, 261, 262, + 263, 264, 265, 0, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 0, 0, 275, 0, + 909, 261, 262, 263, 264, 265, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 0, 0, 0, 0, + 0, 275, 0, 940, 261, 262, 263, 264, 265, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 0, 0, 275, 0, 1054, 261, 262, 263, + 264, 265, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 0, 0, 0, 0, 0, 275, 0, 1100 }; -static const short yycheck[] = { 18, - 65, 66, 158, 18, 4, 89, 3, 163, 3, 347, - 375, 311, 720, 4, 6, 905, 4, 4, 7, 4, - 4, 4, 45, 5, 1054, 1055, 6, 67, 6, 67, - 5, 4, 188, 6, 4, 68, 85, 193, 194, 68, - 73, 68, 6, 6, 73, 3, 73, 67, 174, 1159, - 176, 6, 34, 35, 36, 37, 7, 309, 40, 34, - 35, 36, 37, 68, 6, 40, 163, 164, 73, 68, - 44, 45, 52, 47, 73, 163, 164, 174, 68, 39, - 40, 6, 42, 73, 181, 76, 77, 78, 79, 76, - 77, 78, 79, 181, 175, 347, 6, 52, 187, 180, - 1230, 190, 1232, 68, 1234, 163, 164, 174, 73, 163, - 164, 6, 68, 132, 133, 134, 68, 73, 137, 138, - 6, 73, 141, 181, 213, 174, 215, 181, 174, 148, - 176, 150, 151, 152, 174, 154, 6, 156, 157, 1249, - 159, 181, 41, 181, 4, 44, 163, 164, 174, 182, - 858, 174, 174, 182, 174, 182, 175, 176, 174, 181, - 149, 150, 151, 152, 181, 184, 124, 125, 126, 127, - 128, 129, 130, 131, 6, 7, 1206, 182, 174, 198, - 199, 181, 201, 182, 203, 163, 164, 206, 207, 181, - 6, 182, 182, 181, 532, 182, 181, 181, 181, 181, - 163, 164, 174, 176, 174, 68, 181, 545, 508, 181, - 73, 67, 172, 175, 174, 174, 1346, 182, 180, 49, - 180, 163, 164, 45, 184, 7, 182, 174, 88, 89, - 182, 174, 251, 298, 299, 300, 301, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 45, - 532, 68, 174, 1413, 7, 1415, 73, 1417, 4, 997, - 309, 1421, 68, 545, 254, 384, 311, 73, 174, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 8, 404, 174, 163, 164, 182, - 339, 5, 341, 181, 175, 175, 174, 346, 347, 180, - 180, 1461, 7, 1463, 180, 1465, 355, 356, 357, 45, - 359, 360, 361, 362, 363, 364, 365, 503, 47, 68, - 34, 35, 36, 37, 73, 174, 40, 176, 377, 378, - 379, 380, 381, 382, 174, 703, 385, 149, 150, 151, - 152, 390, 88, 89, 181, 394, 395, 374, 375, 374, - 375, 400, 163, 164, 4, 5, 170, 171, 170, 171, - 409, 163, 164, 163, 164, 182, 178, 1287, 736, 180, - 1290, 182, 175, 1293, 181, 175, 182, 180, 180, 1070, - 182, 45, 372, 373, 34, 35, 36, 37, 1079, 6, - 40, 381, 165, 166, 167, 1086, 149, 150, 151, 152, - 173, 769, 770, 771, 772, 450, 41, 163, 164, 44, - 45, 163, 164, 174, 509, 176, 6, 170, 171, 170, - 171, 703, 5, 175, 180, 176, 182, 178, 710, 153, - 154, 155, 156, 157, 4, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 149, 150, 151, 152, 175, 173, - 5, 4, 501, 180, 736, 504, 170, 171, 182, 163, - 164, 510, 4, 508, 178, 170, 171, 1387, 41, 163, - 164, 44, 45, 175, 47, 1213, 180, 174, 180, 34, - 35, 36, 37, 532, 533, 40, 180, 769, 770, 771, - 772, 163, 164, 542, 543, 174, 545, 176, 547, 548, - 163, 164, 58, 59, 553, 170, 171, 174, 180, 877, - 163, 164, 174, 178, 563, 564, 1436, 180, 6, 1439, - 850, 851, 1442, 572, 176, 1445, 178, 180, 163, 164, - 174, 4, 176, 163, 164, 4, 163, 164, 587, 174, - 163, 164, 728, 729, 4, 731, 181, 733, 734, 644, - 180, 45, 601, 180, 603, 604, 174, 180, 1478, 1250, - 1480, 174, 1482, 1254, 109, 110, 111, 112, 113, 163, - 164, 174, 562, 155, 156, 157, 174, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 180, 577, 163, 164, - 174, 173, 176, 779, 780, 877, 174, 783, 176, 644, - 174, 6, 170, 171, 6, 180, 163, 164, 176, 704, - 178, 6, 7, 799, 800, 174, 170, 171, 6, 805, - 806, 181, 176, 180, 178, 174, 812, 176, 814, 5, - 174, 680, 681, 170, 171, 174, 174, 1032, 176, 176, - 8, 178, 174, 174, 176, 694, 695, 696, 697, 698, - 699, 700, 57, 174, 703, 176, 174, 174, 707, 176, - 174, 710, 176, 4, 713, 1356, 1357, 1358, 1359, 174, - 181, 176, 1363, 174, 723, 176, 174, 61, 62, 63, - 64, 181, 66, 869, 174, 871, 176, 736, 174, 738, - 74, 75, 174, 174, 176, 176, 882, 883, 884, 174, - 174, 887, 888, 889, 890, 891, 892, 893, 822, 174, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 181, - 769, 770, 771, 772, 173, 181, 775, 776, 174, 174, - 176, 176, 781, 181, 1425, 1426, 176, 727, 1429, 180, - 6, 182, 791, 792, 180, 180, 182, 182, 153, 154, - 155, 156, 157, 176, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 180, 180, 182, 182, 180, 173, 182, - 176, 178, 762, 763, 764, 4, 91, 6, 1469, 828, - 829, 180, 180, 182, 182, 153, 154, 155, 156, 157, - 181, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 6, 846, 988, 793, 6, 173, 851, 175, 1499, 180, - 859, 182, 802, 180, 174, 182, 865, 163, 164, 165, - 166, 167, 6, 180, 1515, 182, 6, 173, 877, 174, - 879, 1226, 881, 5, 4, 6, 180, 174, 182, 1530, - 180, 180, 182, 182, 180, 174, 895, 896, 897, 180, - 180, 182, 182, 902, 174, 180, 1042, 182, 41, 42, - 43, 44, 45, 46, 47, 48, 180, 50, 182, 52, - 53, 1057, 55, 56, 174, 924, 925, 926, 1064, 174, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 72, - 174, 174, 174, 174, 989, 174, 174, 1083, 81, 82, - 83, 174, 174, 174, 174, 174, 174, 174, 5, 174, - 174, 173, 902, 1099, 175, 7, 99, 180, 178, 7, - 969, 966, 176, 181, 7, 974, 7, 175, 6, 86, - 7, 7, 88, 1028, 181, 5, 180, 6, 5, 5, - 5, 990, 5, 5, 5, 5, 5, 153, 154, 155, - 156, 157, 5, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 5, 5, 5, 5, 5, 173, 5, 1018, - 1019, 6, 5, 5, 5, 5, 5, 5, 1092, 1028, - 5, 142, 153, 154, 155, 156, 157, 5, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 5, 5, 182, - 1049, 1050, 173, 5, 3, 1032, 6, 1032, 5, 5, - 5, 175, 1061, 1003, 1063, 1005, 175, 180, 6, 4, - 6, 181, 177, 7, 1073, 7, 7, 7, 7, 7, - 7, 1080, 1081, 1082, 178, 182, 182, 7, 1087, 181, - 7, 174, 1091, 1033, 7, 1035, 178, 1037, 1097, 1098, - 180, 1237, 180, 180, 180, 180, 180, 1243, 180, 180, - 180, 1247, 180, 180, 1113, 180, 180, 180, 180, 180, - 180, 1120, 180, 180, 180, 180, 1262, 180, 180, 180, - 180, 180, 180, 5, 153, 154, 155, 156, 157, 1138, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 181, - 180, 180, 1151, 175, 173, 180, 180, 6, 4, 6, - 174, 6, 6, 181, 7, 1164, 1235, 1166, 153, 154, - 155, 156, 157, 174, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 177, 6, 4, 7, 7, 173, 156, - 157, 7, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 7, 176, 1202, 7, 7, 173, 7, 1207, 7, - 7, 7, 1348, 7, 7, 6, 1352, 1353, 6, 6, - 6, 4, 7, 7, 3, 3, 3, 3, 165, 3, - 1229, 3, 1231, 3, 1233, 3, 3, 3, 3, 1238, - 1239, 3, 3, 3, 7, 1244, 5, 5, 3, 1226, - 6, 1226, 3, 1252, 6, 4, 6, 181, 174, 178, - 175, 1260, 6, 175, 6, 6, 1265, 6, 6, 1268, - 181, 6, 181, 1272, 1273, 6, 6, 87, 1347, 181, - 180, 1280, 180, 175, 1283, 180, 6, 1423, 175, 1229, - 180, 1231, 175, 1233, 3, 4, 180, 175, 180, 180, +static const short yycheck[] = { 4, + 4, 164, 318, 254, 167, 290, 2, 4, 45, 4, + 4, 2, 4, 6, 67, 4, 4, 7, 4, 4, + 4, 971, 67, 973, 67, 975, 5, 190, 85, 192, + 593, 857, 858, 5, 4, 6, 6, 6, 6, 131, + 68, 120, 121, 120, 121, 73, 6, 131, 51, 52, + 120, 121, 131, 6, 138, 34, 35, 36, 37, 138, + 137, 40, 34, 35, 36, 37, 6, 137, 40, 139, + 68, 6, 132, 131, 131, 73, 131, 137, 131, 76, + 77, 78, 79, 52, 52, 138, 131, 252, 76, 77, + 78, 79, 131, 1043, 131, 138, 120, 121, 120, 121, + 127, 128, 88, 89, 109, 110, 111, 745, 4, 114, + 115, 139, 67, 118, 138, 137, 106, 107, 108, 109, + 125, 947, 127, 128, 129, 290, 131, 41, 133, 134, + 44, 136, 131, 120, 121, 698, 1086, 131, 1088, 138, + 1090, 139, 139, 138, 1094, 138, 138, 152, 153, 138, + 137, 139, 135, 138, 138, 440, 161, 140, 131, 138, + 120, 121, 68, 133, 327, 416, 138, 73, 453, 131, + 175, 176, 1122, 178, 1124, 180, 1126, 49, 183, 184, + 120, 121, 165, 131, 347, 120, 121, 170, 171, 194, + 138, 45, 88, 89, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 131, 800, 241, 242, + 243, 244, 7, 25, 26, 41, 28, 252, 44, 45, + 254, 47, 6, 7, 120, 121, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 137, 131, 139, 133, 440, 5, 282, 68, 284, + 47, 7, 68, 73, 289, 290, 45, 73, 453, 44, + 45, 576, 47, 298, 299, 300, 45, 302, 303, 304, + 305, 306, 307, 308, 132, 34, 35, 36, 37, 137, + 131, 40, 133, 120, 121, 320, 321, 322, 323, 324, + 325, 317, 318, 328, 609, 68, 317, 318, 333, 68, + 73, 138, 337, 338, 73, 120, 121, 131, 343, 120, + 121, 106, 107, 108, 109, 68, 68, 352, 45, 139, + 73, 73, 137, 139, 358, 138, 137, 642, 643, 644, + 645, 7, 127, 128, 138, 127, 128, 149, 1006, 151, + 135, 1009, 68, 135, 1012, 157, 133, 73, 135, 161, + 106, 107, 108, 109, 68, 120, 121, 68, 68, 73, + 6, 954, 73, 73, 4, 5, 139, 6, 127, 128, + 139, 127, 128, 138, 409, 41, 135, 412, 44, 45, + 4, 576, 416, 418, 417, 197, 139, 139, 583, 120, + 121, 120, 121, 131, 34, 35, 36, 37, 411, 131, + 40, 133, 717, 4, 1072, 440, 441, 138, 137, 690, + 691, 127, 128, 139, 609, 450, 451, 133, 453, 135, + 455, 456, 4, 120, 121, 139, 461, 5, 139, 139, + 106, 107, 108, 109, 132, 1103, 471, 472, 1106, 137, + 137, 1109, 139, 131, 1112, 480, 131, 642, 643, 644, + 645, 127, 128, 6, 120, 121, 34, 35, 36, 37, + 495, 132, 40, 120, 121, 131, 137, 1135, 132, 1137, + 132, 1139, 138, 137, 509, 137, 511, 512, 4, 131, + 137, 133, 4, 517, 517, 122, 123, 124, 45, 835, + 112, 113, 114, 130, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 315, 316, 131, 120, 121, 130, 120, + 121, 131, 324, 120, 121, 131, 131, 133, 553, 554, + 58, 59, 717, 137, 4, 131, 137, 133, 131, 131, + 137, 133, 567, 568, 569, 570, 571, 572, 573, 131, + 131, 576, 133, 131, 577, 580, 120, 121, 583, 113, + 114, 586, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 596, 6, 137, 120, 121, 130, 137, 6, 139, + 61, 62, 63, 64, 609, 66, 611, 6, 7, 127, + 128, 137, 5, 74, 75, 133, 131, 135, 601, 602, + 131, 604, 133, 606, 607, 138, 131, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 131, 642, 643, 644, + 645, 130, 4, 648, 649, 131, 131, 133, 133, 654, + 138, 967, 120, 121, 122, 123, 124, 131, 138, 133, + 127, 128, 130, 668, 669, 131, 133, 133, 135, 652, + 653, 8, 131, 656, 133, 127, 128, 131, 131, 133, + 133, 133, 686, 135, 131, 131, 133, 691, 470, 131, + 131, 133, 133, 131, 699, 133, 131, 137, 133, 139, + 705, 131, 138, 485, 137, 137, 139, 139, 137, 137, + 139, 139, 717, 137, 719, 139, 721, 137, 137, 139, + 139, 137, 137, 139, 139, 4, 709, 6, 711, 131, + 735, 736, 737, 137, 137, 139, 139, 742, 138, 722, + 723, 724, 131, 131, 727, 728, 729, 730, 731, 732, + 733, 137, 137, 139, 139, 137, 137, 139, 139, 764, + 765, 766, 137, 133, 139, 769, 138, 772, 133, 133, + 6, 138, 777, 110, 111, 112, 113, 114, 135, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 793, 792, + 91, 6, 131, 130, 6, 6, 4, 130, 8, 5, + 7, 135, 139, 7, 133, 7, 138, 7, 791, 132, + 6, 86, 7, 976, 7, 88, 821, 822, 600, 138, + 137, 132, 132, 137, 6, 4, 831, 134, 831, 6, + 135, 7, 7, 7, 7, 7, 7, 7, 138, 835, + 6, 139, 139, 138, 835, 7, 7, 852, 853, 131, + 7, 135, 138, 635, 636, 637, 6, 131, 4, 864, + 131, 6, 845, 6, 869, 870, 134, 6, 133, 7, + 6, 138, 7, 7, 7, 7, 7, 860, 7, 7, + 885, 1044, 7, 7, 7, 7, 7, 892, 871, 4, + 6, 57, 6, 6, 6, 4, 7, 7, 4, 6, + 110, 111, 112, 113, 114, 910, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 131, 138, 135, 923, 132, + 130, 7, 132, 132, 6, 6, 6, 6, 6, 6, + 6, 936, 87, 938, 6, 138, 6, 138, 943, 138, + 4, 135, 134, 948, 110, 111, 112, 113, 114, 6, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 6, + 742, 6, 6, 6, 130, 970, 6, 972, 6, 974, + 6, 967, 6, 6, 979, 980, 967, 6, 6, 6, + 985, 6, 6, 6, 6, 6, 991, 992, 6, 6, + 87, 7, 4, 6, 999, 978, 138, 1002, 6, 6, + 6, 984, 7, 6, 134, 988, 41, 42, 43, 44, + 45, 46, 47, 48, 6, 50, 135, 52, 53, 1024, + 55, 56, 139, 84, 806, 6, 808, 89, 8, 1034, + 138, 132, 1037, 138, 138, 1040, 138, 72, 138, 137, + 6, 87, 138, 138, 5, 139, 81, 82, 83, 138, + 1055, 138, 1057, 137, 836, 6, 838, 6, 840, 6, + 6, 6, 1045, 6, 99, 139, 1049, 1050, 137, 6, + 110, 111, 112, 113, 114, 6, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 6, 6, 6, 5, 138, + 130, 139, 6, 6, 6, 137, 1099, 110, 111, 112, + 113, 114, 139, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 138, 1096, 6, 6, 84, 130, 138, 138, + 6, 5, 137, 6, 1129, 139, 6, 1130, 138, 1132, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 1150, 1151, 138, 138, 1152, + 130, 3, 4, 138, 138, 6, 1161, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 84, 6, 6, 138, 6, 6, 6, 970, 41, + 972, 6, 974, 6, 6, 0, 0, 519, 1024, 2, + 2, 931, -1, 796, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, -1, -1, -1, 3, 4, + -1, -1, 74, 75, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, + 102, 103, 104, 105, 6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, 131, + -1, 3, 4, -1, 136, -1, 138, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, -1, -1, -1, -1, 102, 103, 104, + 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 120, 121, -1, -1, -1, + -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, + -1, 136, -1, 138, -1, -1, -1, -1, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 102, 103, 104, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, + -1, -1, -1, -1, 126, -1, -1, -1, -1, 131, + -1, -1, 134, -1, 136, -1, 138, 3, 4, -1, + -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 175, 180, 180, 180, 1327, 6, - 180, 6, 41, 175, 1470, 4, 175, 7, 1337, 180, - 180, 1340, 180, 180, 1343, 180, 180, 180, 180, 180, - 178, 6, 61, 62, 63, 64, 65, 66, 6, 6, - 177, 6, 6, 6, 1500, 74, 75, 6, 6, 6, - 6, 1370, 6, 1372, 6, 6, 6, 6, 1514, 6, - 6, 6, 6, 87, 3, 1521, 6, 1432, 6, 3, - 1526, 6, 1528, 102, 103, 104, 105, 153, 154, 155, - 156, 157, 6, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 153, 154, 155, 156, 157, 173, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 6, 1473, 165, - 1475, 3, 173, 153, 154, 155, 156, 157, 6, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 3, 6, - 6, 3, 6, 173, 163, 164, 1501, 3, 3, 3, - 169, 178, 181, 6, 6, 174, 4, 3, 4, 1468, - 179, 6, 181, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 6, 1497, 1498, - 6, 177, 7, 6, 6, 6, 84, 181, 3, 4, - 182, 175, 180, 1512, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 153, 154, - 155, 156, 157, 6, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 181, 87, 89, 6, 180, 173, 181, - 181, 3, 175, 180, 3, 4, 102, 103, 104, 105, + 29, 30, 31, 32, 3, 4, -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 181, 181, 180, 180, 180, 175, - 175, 175, 175, 180, 175, 175, 6, 102, 103, 104, - 105, 153, 154, 155, 156, 157, 180, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 6, 163, 164, 180, - 3, 173, 6, 169, 6, 6, 6, 6, 174, 6, - 3, 177, 6, 179, 5, 181, 6, 153, 154, 155, - 156, 157, 181, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 5, 102, 103, 104, 105, 173, 163, 164, - 182, 181, 6, 181, 169, 182, 180, 175, 6, 174, - 180, 180, 177, 180, 179, 175, 181, 3, 4, 180, - 175, 180, 180, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 6, 6, 6, - 6, 6, 6, 6, 163, 164, 6, 6, 6, 6, - 169, 6, 6, 6, 6, 174, 6, 5, 177, 5, - 179, 181, 181, 3, 4, 181, 181, 180, 182, 9, + 29, 30, 31, 32, -1, -1, 102, 103, 104, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 120, 121, -1, -1, -1, -1, + 126, -1, -1, -1, -1, 131, -1, -1, 134, -1, + 136, -1, 138, 102, 103, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, -1, 131, 102, 103, 104, 105, 136, -1, 138, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, -1, 131, -1, 3, 4, 5, 136, 7, 138, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, -1, 34, 35, 36, 37, -1, + -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 182, 180, 180, 175, 175, 180, 180, - 6, 6, 6, 6, 181, 180, 102, 103, 104, 105, - 3, 4, 5, 84, 7, 6, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 6, 34, 35, 36, 37, 6, 5, 40, 6, 5, - 181, 181, 181, 180, 182, 181, 180, 175, 175, 181, - 6, 182, 102, 103, 104, 105, 6, 163, 164, 6, - 84, 6, 6, 169, 6, 8, 6, 181, 174, 180, - 180, 6, 6, 179, 6, 181, 153, 154, 155, 156, - 157, 6, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 180, 180, 6, 180, 175, 173, 6, 6, 102, - 103, 104, 105, 6, 0, 0, 3, 1327, 180, 180, - 646, 3, 993, 163, 164, -1, -1, -1, 175, 169, - -1, 180, -1, -1, 174, -1, -1, -1, -1, 179, - -1, 181, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 149, 150, 151, 152, + 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, + -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, + 109, 61, 62, 63, 64, 65, 66, -1, -1, -1, + -1, 120, 121, -1, 74, 75, -1, 126, 127, 128, + -1, -1, 131, -1, 133, -1, 135, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 163, 164, -1, -1, -1, -1, 169, 170, 171, -1, - -1, 174, -1, 176, 8, 178, 179, 3, 4, -1, - -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, -1, -1, 8, - 153, 154, 155, 156, 157, 41, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, -1, 8, -1, -1, 3, 4, -1, 74, 75, - -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, -1, 102, 103, 104, 105, - 3, 4, 5, -1, -1, -1, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, 34, 35, 36, 37, -1, -1, 40, -1, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, 163, 164, 173, - 8, -1, -1, 169, 102, 103, 104, 105, 174, -1, - -1, -1, -1, 179, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, -1, -1, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, 163, 164, 173, -1, -1, - -1, 169, -1, -1, -1, -1, 174, -1, -1, -1, - -1, 179, -1, -1, -1, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 163, 164, -1, -1, -1, 173, 169, -1, -1, -1, - -1, 174, 3, 4, 182, -1, 179, -1, 9, 10, + -1, -1, 102, 103, 104, 105, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + -1, 131, 3, 4, 5, -1, 136, -1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, -1, -1, -1, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, 41, 42, 43, 44, - 45, 46, 47, 48, -1, 50, -1, 52, 53, -1, - 55, 56, -1, -1, -1, -1, -1, 41, 42, 43, - 44, 45, 46, 47, 48, -1, 50, 72, 52, 53, - -1, 55, 56, -1, -1, -1, 81, 82, 83, -1, - -1, 102, 103, 104, 105, -1, -1, -1, 72, -1, - -1, -1, -1, -1, 99, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, - 46, 47, 48, -1, 50, 99, 52, 53, -1, 55, - 56, -1, -1, -1, -1, -1, 41, 42, 43, 44, - 45, 46, 47, 48, -1, 50, 72, 52, 53, -1, - 55, 56, 163, 164, -1, 81, 82, 83, 169, -1, - -1, -1, -1, 174, -1, -1, -1, 72, 179, -1, - -1, -1, -1, 99, -1, -1, 81, 82, 83, -1, - -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, - -1, -1, -1, -1, 99, 41, 42, 43, 44, 45, - 46, 47, 48, -1, 50, -1, 52, 53, 182, 55, - 56, -1, -1, -1, -1, -1, -1, -1, 41, 42, - 43, 44, 45, 46, 47, 48, 72, 50, -1, 52, - 53, -1, 55, 56, -1, 81, 82, 83, -1, -1, + 31, 32, -1, 34, 35, 36, 37, 3, 4, 40, + -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 3, 4, -1, + -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 6, -1, -1, + -1, 102, 103, 104, 105, -1, -1, -1, -1, -1, + -1, -1, 6, -1, -1, -1, -1, -1, -1, 120, + 121, -1, -1, -1, -1, 126, -1, 6, -1, -1, + 131, -1, -1, -1, -1, 136, 102, 103, 104, 105, + -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 120, 121, -1, 6, -1, -1, + 126, -1, -1, -1, -1, 131, 102, 103, 104, 105, + 136, -1, 6, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 120, 121, -1, 6, -1, -1, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + 136, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 110, 111, 112, 113, + 114, 130, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 110, 111, 112, 113, 114, 130, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 110, 111, 112, 113, + 114, 130, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 110, 111, 112, 113, 114, 130, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 110, 111, 112, 113, + 114, 130, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 110, 111, 112, 113, 114, 130, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 6, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 110, 111, 112, 113, 114, 8, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, -1, 139, -1, -1, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 110, 111, 112, 113, 114, 130, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 110, 111, 112, 113, 114, + 130, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 110, 111, 112, 113, 114, 130, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 110, 111, 112, 113, 114, + 130, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 110, 111, 112, 113, 114, 130, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 0, 1, -1, -1, 4, + 130, -1, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, 33, 137, + -1, 139, -1, 38, 39, -1, 41, 42, 43, 44, + 45, 46, 47, 48, -1, 50, 51, 52, 53, 54, + 55, 56, -1, -1, -1, 60, 61, 62, 63, 64, + 65, 66, -1, 68, 69, 70, 71, 72, -1, 74, + 75, -1, -1, -1, -1, 80, 81, 82, 83, -1, + -1, -1, -1, 88, -1, 90, -1, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 41, 42, 43, + 44, 45, 46, 47, 48, -1, 50, -1, 52, 53, + -1, 55, 56, -1, -1, -1, -1, -1, 41, 42, + 43, 44, 45, 46, 47, 48, -1, 50, 72, 52, + 53, -1, 55, 56, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, 72, - -1, -1, -1, 99, -1, -1, 182, -1, 81, 82, + -1, -1, -1, -1, -1, 99, -1, -1, 81, 82, + 83, -1, -1, 41, 42, 43, 44, 45, 46, 47, + 48, -1, 50, -1, 52, 53, 99, 55, 56, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 72, 139, -1, -1, -1, 130, + -1, 132, -1, 81, 82, 83, 137, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 139, 50, -1, 52, + 53, 99, 55, 56, -1, -1, -1, -1, -1, 41, + 42, 43, 44, 45, 46, 47, 48, -1, 50, 72, + 52, 53, -1, 55, 56, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 99, 182, -1, 41, - 42, 43, 44, 45, 46, 47, 48, -1, 50, -1, - 52, 53, -1, 55, 56, -1, -1, -1, -1, -1, - 0, 1, -1, 3, 4, -1, -1, -1, -1, -1, - 72, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 72, 139, -1, -1, -1, -1, 99, -1, -1, 81, + 82, 83, -1, -1, 41, 42, 43, 44, 45, 46, + 47, 48, -1, 50, -1, 52, 53, 99, 55, 56, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 72, 139, -1, -1, -1, + 130, -1, -1, -1, 81, 82, 83, 137, -1, 41, + 42, 43, 44, 45, 46, 47, 48, 139, 50, -1, + 52, 53, 99, 55, 56, -1, -1, -1, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, + 72, 52, 53, -1, 55, 56, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, -1, -1, 182, 99, 38, 39, + -1, 72, 139, -1, -1, -1, -1, 99, -1, -1, + 81, 82, 83, -1, 4, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 99, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 33, -1, -1, -1, 139, 38, 39, -1, 41, 42, 43, 44, 45, 46, 47, 48, -1, - 50, 51, 52, 53, 54, 55, 56, -1, -1, 182, + 50, 51, 52, 53, 54, 55, 56, -1, 139, -1, 60, 61, 62, 63, 64, 65, 66, -1, 68, 69, - 70, 71, 72, 44, 74, 75, -1, -1, -1, -1, + 70, 71, 72, -1, 74, 75, -1, -1, -1, -1, 80, 81, 82, 83, -1, -1, -1, -1, 88, -1, 90, -1, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, -1, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - 182, -1, -1, 173, 124, 125, 126, 127, 128, 129, - 130, 131, 182, -1, -1, 106, 107, 108, -1, -1, - -1, -1, -1, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 4, -1, -1, -1, -1, -1, -1, - -1, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, -1, 143, 144, 145, 146, 147, 148, -1, -1, - -1, -1, 33, -1, -1, -1, -1, 38, 39, -1, - 41, 42, 43, 44, 45, 46, 47, 48, -1, 50, - 51, 52, 53, 54, 55, 56, -1, -1, -1, 60, - 61, 62, 63, 64, 65, 66, -1, 68, 69, 70, - 71, 72, -1, 74, 75, -1, -1, -1, -1, 80, - 81, 82, 83, -1, -1, -1, -1, 88, -1, 90, - -1, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 41, 42, 43, 44, 45, 46, 47, 48, -1, - 50, -1, 52, 53, -1, 55, 56, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 72, -1, -1, -1, -1, 173, -1, -1, - -1, 81, 82, 83, 180, -1, 182, -1, -1, -1, - -1, -1, -1, -1, 153, 154, 155, 156, 157, 99, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, - -1, 180, -1, 182, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, - -1, 180, -1, 182, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, 153, 154, - 155, 156, 157, 182, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 153, 154, 155, 156, 157, 182, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, -1, -1, 153, 154, 155, 156, - 157, 182, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, -1, -1, - 153, 154, 155, 156, 157, 182, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, -1, -1, 153, 154, 155, 156, 157, 182, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, 153, 154, - 155, 156, 157, 182, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 153, 154, 155, 156, 157, 182, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, -1, -1, 153, 154, 155, 156, - 157, 182, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, -1, -1, - 153, 154, 155, 156, 157, 182, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, -1, -1, 153, 154, 155, 156, 157, 182, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, 153, 154, - 155, 156, 157, 182, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 153, 154, 155, 156, 157, 182, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, -1, -1, 153, 154, 155, 156, - 157, 182, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, -1, -1, - 153, 154, 155, 156, 157, 182, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, -1, -1, 153, 154, 155, 156, 157, 182, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, -1, -1, 153, 154, - 155, 156, 157, 182, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 153, 154, 155, 156, 157, 182, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, -1, -1, 153, 154, 155, 156, - 157, 182, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, -1, -1, - 153, 154, 155, 156, 157, 182, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, -1, -1, 153, 154, 155, 156, 157, 182, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, -1, -1, -1, - -1, 180, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 153, 154, 155, 156, 157, 180, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 153, 154, 155, 156, 157, 180, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 153, 154, 155, 156, 157, 180, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 153, 154, 155, 156, - 157, 180, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 153, 154, - 155, 156, 157, 180, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - -1, -1, 177, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, -1, -1, 177, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 175, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, -1, -1, 173, - -1, 175, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 175, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, -1, 175, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 175, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, -1, -1, 173, - -1, 175, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 175, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, -1, 175, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 175, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, -1, -1, 173, - -1, 175, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 175, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, -1, 175, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 175, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, -1, -1, 173, - -1, 175, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 175, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, -1, 175, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173, -1, 175, 153, - 154, 155, 156, 157, -1, 159, 160, 161, 162, 163, - 164, 165, 166, 167, -1, -1, -1, -1, -1, 173, - -1, 175, 153, 154, 155, 156, 157, -1, 159, 160, - 161, 162, 163, 164, 165, 166, 167, -1, -1, -1, - -1, -1, 173, -1, 175, 153, 154, 155, 156, 157, - -1, 159, 160, 161, 162, 163, 164, 165, 166, 167, - -1, -1, -1, -1, -1, 173, -1, 175, 153, 154, - 155, 156, 157, -1, 159, 160, 161, 162, 163, 164, - 165, 166, 167, -1, -1, -1, -1, -1, 173, -1, - 175, 153, 154, 155, 156, 157, -1, 159, 160, 161, - 162, 163, 164, 165, 166, 167, -1, -1, -1, -1, - -1, 173, -1, 175, 153, 154, 155, 156, 157, -1, - 159, 160, 161, 162, 163, 164, 165, 166, 167, -1, - -1, -1, -1, -1, 173, -1, 175, 153, 154, 155, - 156, 157, -1, 159, 160, 161, 162, 163, 164, 165, - 166, 167, -1, -1, -1, -1, -1, 173, -1, 175, - 153, 154, 155, 156, 157, -1, 159, 160, 161, 162, - 163, 164, 165, 166, 167, -1, -1, -1, -1, -1, - 173, -1, 175, 153, 154, 155, 156, 157, -1, 159, - 160, 161, 162, 163, 164, 165, 166, 167, -1, -1, - -1, -1, -1, 173, -1, 175, 153, 154, 155, 156, - 157, -1, 159, 160, 161, 162, 163, 164, 165, 166, - 167, -1, -1, -1, -1, -1, 173 + 100, 101, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + -1, 139, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, 110, 111, 112, 113, + 114, 139, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, -1, -1, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 110, 111, 112, 113, 114, 139, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, -1, -1, 110, 111, + 112, 113, 114, 139, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + -1, -1, 110, 111, 112, 113, 114, 139, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, 110, 111, 112, 113, + 114, 139, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, -1, -1, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 110, 111, 112, 113, 114, 139, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, -1, -1, 110, 111, + 112, 113, 114, 139, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + -1, -1, 110, 111, 112, 113, 114, 139, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, 110, 111, 112, 113, + 114, 139, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, -1, -1, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 110, 111, 112, 113, 114, 139, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, -1, -1, 110, 111, + 112, 113, 114, 139, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + -1, -1, 110, 111, 112, 113, 114, 139, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, 110, 111, 112, 113, + 114, 139, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, -1, -1, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 110, 111, 112, 113, 114, 139, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, -1, -1, 110, 111, + 112, 113, 114, 139, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + -1, -1, 110, 111, 112, 113, 114, 139, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, -1, -1, 110, 111, 112, 113, + 114, 139, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, -1, -1, + 110, 111, 112, 113, 114, 139, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 110, 111, 112, 113, 114, 137, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 110, 111, 112, 113, 114, 137, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 110, 111, 112, 113, + 114, 137, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 110, 111, + 112, 113, 114, 137, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 110, 111, 112, 113, 114, 137, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, -1, -1, 134, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 132, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, 132, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 132, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, -1, 130, + -1, 132, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 132, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, 132, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 132, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + -1, 130, -1, 132, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 132, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, -1, 130, -1, 132, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 132, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, 132, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 132, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, -1, 130, + -1, 132, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 132, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, 132, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 132, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + -1, 130, -1, 132, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 132, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, -1, 130, -1, 132, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 132, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, 132, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 132, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, -1, 130, + -1, 132, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 132, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, 132, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 132, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + -1, 130, -1, 132, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 132, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, -1, 130, -1, 132, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 132, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, 132, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 132, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, -1, 130, + -1, 132, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 132, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, 132, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 132, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + -1, 130, -1, 132, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 132, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, -1, 130, -1, 132, + 110, 111, 112, 113, 114, -1, 116, 117, 118, 119, + 120, 121, 122, 123, 124, -1, -1, -1, -1, -1, + 130, -1, 132, 110, 111, 112, 113, 114, -1, 116, + 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, + -1, -1, -1, 130, -1, 132, 110, 111, 112, 113, + 114, -1, 116, 117, 118, 119, 120, 121, 122, 123, + 124, -1, -1, -1, -1, -1, 130, -1, 132, 110, + 111, 112, 113, 114, -1, 116, 117, 118, 119, 120, + 121, 122, 123, 124, -1, -1, -1, -1, -1, 130, + -1, 132, 110, 111, 112, 113, 114, -1, 116, 117, + 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, + -1, -1, 130, -1, 132, 110, 111, 112, 113, 114, + -1, 116, 117, 118, 119, 120, 121, 122, 123, 124, + -1, -1, -1, -1, -1, 130, -1, 132, 110, 111, + 112, 113, 114, -1, 116, 117, 118, 119, 120, 121, + 122, 123, 124, -1, -1, -1, -1, -1, 130, -1, + 132, 110, 111, 112, 113, 114, -1, 116, 117, 118, + 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, + -1, 130, -1, 132, 110, 111, 112, 113, 114, -1, + 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, + -1, -1, -1, -1, 130, -1, 132, 110, 111, 112, + 113, 114, -1, 116, 117, 118, 119, 120, 121, 122, + 123, 124, -1, -1, -1, -1, -1, 130, -1, 132 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -2938,290 +2655,75 @@ yyreduce: switch (yyn) { -case 3: -#line 160 "Gmsh.y" +case 2: +#line 145 "Gmsh.y" { yyerrok; return 1; ; break;} +case 5: +#line 156 "Gmsh.y" +{ return 1; ; + break;} case 6: -#line 176 "Gmsh.y" +#line 157 "Gmsh.y" { return 1; ; break;} case 7: -#line 177 "Gmsh.y" +#line 158 "Gmsh.y" { return 1; ; break;} case 8: -#line 178 "Gmsh.y" +#line 159 "Gmsh.y" { return 1; ; break;} case 9: -#line 183 "Gmsh.y" -{ - yymsg(INFO, "Reading Step Iso-10303-21 data"); - Create_Step_Solid_BRep(); - ; - break;} -case 10: -#line 188 "Gmsh.y" -{ - Resolve_BREP (); - yymsg(INFO, "Read Step Iso-10303-21 data"); - ; - break;} -case 14: -#line 199 "Gmsh.y" -{ - ; - break;} -case 15: -#line 202 "Gmsh.y" -{ - ; - break;} -case 16: -#line 206 "Gmsh.y" -{ - ; - break;} -case 17: -#line 212 "Gmsh.y" -{ - Add_Cartesian_Point((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]); - ; - break;} -case 18: -#line 218 "Gmsh.y" -{ - Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1.); - ; - break;} -case 19: -#line 225 "Gmsh.y" -{ - Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l, - yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. ); - ; - break;} -case 20: -#line 231 "Gmsh.y" -{ - Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d); - ; - break;} -case 21: -#line 235 "Gmsh.y" -{ - Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 1); - ; - break;} -case 22: -#line 239 "Gmsh.y" -{ - // check the norm! Face_Bound : hole outside surface! - yymsg(INFO, "Found a face bound"); - Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 0); - ; - break;} -case 23: -#line 246 "Gmsh.y" -{ - Add_Oriented_Edge((int)yyvsp[-14].d, yyvsp[-10].c, (int)yyvsp[-4].d, yyvsp[-2].i); - ; - break;} -case 24: -#line 250 "Gmsh.y" -{ - Add_Edge_Loop((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].l); - ; - break;} -case 25: -#line 255 "Gmsh.y" -{ - Add_Advanced_Face((int)yyvsp[-12].d, yyvsp[-8].c, yyvsp[-6].l, (int)yyvsp[-4].d, yyvsp[-2].i); - ; - break;} -case 26: -#line 259 "Gmsh.y" -{ - Add_Vertex_Point((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d); - ; - break;} -case 27: -#line 263 "Gmsh.y" -{ - ; - break;} -case 28: -#line 267 "Gmsh.y" -{ - Add_Axis2_Placement3D ((int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d); - ; - break;} -case 29: -#line 271 "Gmsh.y" -{ - Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]); - ; - break;} -case 30: -#line 275 "Gmsh.y" -{ - Add_Plane((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d); - ; - break;} -case 31: -#line 279 "Gmsh.y" -{ - Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d); - ; - break;} -case 32: -#line 283 "Gmsh.y" -{ - yymsg(INFO, "Found a closed shell"); - Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l); - ; - break;} -case 33: -#line 289 "Gmsh.y" -{ - ; - break;} -case 34: -#line 292 "Gmsh.y" -{ - ; - break;} -case 35: -#line 295 "Gmsh.y" -{ - Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d); - ; - break;} -case 36: -#line 299 "Gmsh.y" -{ - Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); - ; - break;} -case 37: -#line 303 "Gmsh.y" -{ - Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); - ; - break;} -case 38: -#line 307 "Gmsh.y" -{ - Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d); - ; - break;} -case 39: -#line 311 "Gmsh.y" -{ - Add_Ellipse((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); - ; - break;} -case 40: -#line 316 "Gmsh.y" -{ - ; - break;} -case 41: -#line 319 "Gmsh.y" -{ - ; - break;} -case 42: -#line 323 "Gmsh.y" -{ - ; - break;} -case 43: -#line 326 "Gmsh.y" -{ - ; - break;} -case 44: -#line 330 "Gmsh.y" -{ - ; - break;} -case 45: -#line 333 "Gmsh.y" -{ - ; - break;} -case 46: -#line 336 "Gmsh.y" -{ - ; - break;} -case 49: -#line 348 "Gmsh.y" -{ return 1; ; - break;} -case 50: -#line 349 "Gmsh.y" -{ return 1; ; - break;} -case 51: -#line 350 "Gmsh.y" -{ return 1; ; - break;} -case 52: -#line 351 "Gmsh.y" -{ return 1; ; - break;} -case 53: -#line 352 "Gmsh.y" +#line 160 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} -case 54: -#line 353 "Gmsh.y" +case 10: +#line 161 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} -case 55: -#line 354 "Gmsh.y" +case 11: +#line 162 "Gmsh.y" { return 1; ; break;} -case 56: -#line 355 "Gmsh.y" +case 12: +#line 163 "Gmsh.y" { return 1; ; break;} -case 57: -#line 356 "Gmsh.y" +case 13: +#line 164 "Gmsh.y" { return 1; ; break;} -case 58: -#line 357 "Gmsh.y" +case 14: +#line 165 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} -case 59: -#line 358 "Gmsh.y" +case 15: +#line 166 "Gmsh.y" { return 1; ; break;} -case 60: -#line 359 "Gmsh.y" +case 16: +#line 167 "Gmsh.y" { return 1; ; break;} -case 61: -#line 360 "Gmsh.y" +case 17: +#line 168 "Gmsh.y" { return 1; ; break;} -case 62: -#line 361 "Gmsh.y" +case 18: +#line 169 "Gmsh.y" { return 1; ; break;} -case 63: -#line 366 "Gmsh.y" +case 19: +#line 174 "Gmsh.y" { Msg(DIRECT, yyvsp[-2].c); Free(yyvsp[-2].c); ; break;} -case 64: -#line 371 "Gmsh.y" +case 20: +#line 179 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring); @@ -3235,8 +2737,8 @@ case 64: List_Delete(yyvsp[-2].l); ; break;} -case 65: -#line 389 "Gmsh.y" +case 21: +#line 197 "Gmsh.y" { if(!strcmp(yyvsp[-5].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-4].c); @@ -3244,8 +2746,8 @@ case 65: Free(yyvsp[-5].c); Free(yyvsp[-4].c); ; break;} -case 66: -#line 396 "Gmsh.y" +case 22: +#line 204 "Gmsh.y" { if(!strcmp(yyvsp[-7].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-6].c); @@ -3253,8 +2755,8 @@ case 66: Free(yyvsp[-7].c); Free(yyvsp[-6].c); Free(yyvsp[-5].c); ; break;} -case 67: -#line 406 "Gmsh.y" +case 23: +#line 214 "Gmsh.y" { View = BeginView(1); for(int i = 0; i < VIEW_NB_ELEMENT_TYPES; i++){ @@ -3262,24 +2764,24 @@ case 67: } ; break;} -case 73: -#line 421 "Gmsh.y" +case 29: +#line 229 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} -case 74: -#line 423 "Gmsh.y" +case 30: +#line 231 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} -case 75: -#line 428 "Gmsh.y" +case 31: +#line 236 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} -case 76: -#line 430 "Gmsh.y" +case 32: +#line 238 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} -case 77: -#line 435 "Gmsh.y" +case 33: +#line 243 "Gmsh.y" { if(!strcmp(yyvsp[0].c, "SP")){ ViewElementIdx = 0; ViewNumNodes = 1; ViewNumComp = 1; @@ -3470,8 +2972,8 @@ case 77: ViewCoordIdx = 0; ; break;} -case 78: -#line 625 "Gmsh.y" +case 34: +#line 433 "Gmsh.y" { if(ViewValueList){ if(ViewCoordIdx != 3 * ViewNumNodes){ @@ -3490,8 +2992,8 @@ case 78: } ; break;} -case 79: -#line 643 "Gmsh.y" +case 35: +#line 451 "Gmsh.y" { if(ViewValueList){ if((List_Nbr(ViewValueList) - ViewNumListTmp) % (ViewNumComp * ViewNumNodes)) @@ -3500,22 +3002,22 @@ case 79: } ; break;} -case 80: -#line 654 "Gmsh.y" +case 36: +#line 462 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} -case 81: -#line 659 "Gmsh.y" +case 37: +#line 467 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} -case 82: -#line 667 "Gmsh.y" +case 38: +#line 475 "Gmsh.y" { List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d); List_Add(View->T2D, &yyvsp[-1].d); @@ -3523,28 +3025,28 @@ case 82: List_Add(View->T2D, &d); ; break;} -case 83: -#line 674 "Gmsh.y" +case 39: +#line 482 "Gmsh.y" { View->NbT2++; ; break;} -case 84: -#line 681 "Gmsh.y" +case 40: +#line 489 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} -case 85: -#line 686 "Gmsh.y" +case 41: +#line 494 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} -case 86: -#line 694 "Gmsh.y" +case 42: +#line 502 "Gmsh.y" { List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d); List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); @@ -3552,59 +3054,59 @@ case 86: List_Add(View->T3D, &d); ; break;} -case 87: -#line 701 "Gmsh.y" +case 43: +#line 509 "Gmsh.y" { View->NbT3++; ; break;} -case 88: -#line 709 "Gmsh.y" +case 44: +#line 517 "Gmsh.y" { View->adaptive = new Adaptive_Post_View(View, yyvsp[-5].l, yyvsp[-2].l); ; break;} -case 89: -#line 716 "Gmsh.y" +case 45: +#line 524 "Gmsh.y" { ViewValueList = View->Time; ; break;} -case 90: -#line 720 "Gmsh.y" +case 46: +#line 528 "Gmsh.y" { ; break;} -case 91: -#line 727 "Gmsh.y" +case 47: +#line 535 "Gmsh.y" { yyval.i = 0; ; break;} -case 92: -#line 728 "Gmsh.y" +case 48: +#line 536 "Gmsh.y" { yyval.i = 1; ; break;} -case 93: -#line 729 "Gmsh.y" +case 49: +#line 537 "Gmsh.y" { yyval.i = 2; ; break;} -case 94: -#line 730 "Gmsh.y" +case 50: +#line 538 "Gmsh.y" { yyval.i = 3; ; break;} -case 95: -#line 731 "Gmsh.y" +case 51: +#line 539 "Gmsh.y" { yyval.i = 4; ; break;} -case 96: -#line 735 "Gmsh.y" +case 52: +#line 543 "Gmsh.y" { yyval.i = 1; ; break;} -case 97: -#line 736 "Gmsh.y" +case 53: +#line 544 "Gmsh.y" { yyval.i = -1; ; break;} -case 98: -#line 744 "Gmsh.y" +case 54: +#line 552 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -3636,8 +3138,8 @@ case 98: } ; break;} -case 99: -#line 775 "Gmsh.y" +case 55: +#line 583 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-6].c; @@ -3677,8 +3179,8 @@ case 99: } ; break;} -case 100: -#line 814 "Gmsh.y" +case 56: +#line 622 "Gmsh.y" { if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)){ yymsg(GERROR, "Incompatible array dimensions in affectation"); @@ -3733,8 +3235,8 @@ case 100: List_Delete(yyvsp[-1].l); ; break;} -case 101: -#line 868 "Gmsh.y" +case 57: +#line 676 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3752,8 +3254,8 @@ case 101: List_Delete(yyvsp[-1].l); ; break;} -case 102: -#line 885 "Gmsh.y" +case 58: +#line 693 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -3765,8 +3267,8 @@ case 102: Free(yyvsp[-2].c); ; break;} -case 103: -#line 896 "Gmsh.y" +case 59: +#line 704 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3783,8 +3285,8 @@ case 103: Free(yyvsp[-5].c); ; break;} -case 104: -#line 915 "Gmsh.y" +case 60: +#line 723 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3799,8 +3301,8 @@ case 104: Free(yyvsp[-5].c); Free(yyvsp[-3].c); //FIXME: somtimes leak $5 ; break;} -case 105: -#line 929 "Gmsh.y" +case 61: +#line 737 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3815,8 +3317,8 @@ case 105: Free(yyvsp[-8].c); Free(yyvsp[-3].c); //FIXME: somtimes leak $8 ; break;} -case 106: -#line 946 "Gmsh.y" +case 62: +#line 754 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3843,8 +3345,8 @@ case 106: Free(yyvsp[-5].c); Free(yyvsp[-3].c); ; break;} -case 107: -#line 972 "Gmsh.y" +case 63: +#line 780 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3872,8 +3374,8 @@ case 107: Free(yyvsp[-8].c); Free(yyvsp[-3].c); ; break;} -case 108: -#line 999 "Gmsh.y" +case 64: +#line 807 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3888,8 +3390,8 @@ case 108: Free(yyvsp[-4].c); Free(yyvsp[-2].c); ; break;} -case 109: -#line 1013 "Gmsh.y" +case 65: +#line 821 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3904,8 +3406,8 @@ case 109: Free(yyvsp[-7].c); Free(yyvsp[-2].c); ; break;} -case 110: -#line 1030 "Gmsh.y" +case 66: +#line 838 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3920,8 +3422,8 @@ case 110: Free(yyvsp[-7].c); Free(yyvsp[-3].c); ; break;} -case 111: -#line 1044 "Gmsh.y" +case 67: +#line 852 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3936,8 +3438,8 @@ case 111: Free(yyvsp[-10].c); Free(yyvsp[-3].c); ; break;} -case 112: -#line 1061 "Gmsh.y" +case 68: +#line 869 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -3958,8 +3460,8 @@ case 112: List_Delete(yyvsp[-1].l); ; break;} -case 113: -#line 1081 "Gmsh.y" +case 69: +#line 889 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d); if(!ct) @@ -3980,8 +3482,8 @@ case 113: List_Delete(yyvsp[-1].l); ; break;} -case 114: -#line 1104 "Gmsh.y" +case 70: +#line 912 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].d); @@ -3992,8 +3494,8 @@ case 114: Free(yyvsp[-6].c); Free(yyvsp[-3].c); ; break;} -case 115: -#line 1114 "Gmsh.y" +case 71: +#line 922 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].c); @@ -4004,8 +3506,8 @@ case 115: Free(yyvsp[-6].c); Free(yyvsp[-3].c); // FIXME: sometimes leak $8 ; break;} -case 116: -#line 1133 "Gmsh.y" +case 72: +#line 941 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPoint(num, THEM)){ @@ -4022,8 +3524,8 @@ case 116: yyval.s.Num = num; ; break;} -case 117: -#line 1149 "Gmsh.y" +case 73: +#line 957 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT, THEM)){ @@ -4040,8 +3542,8 @@ case 117: yyval.s.Num = num; ; break;} -case 118: -#line 1165 "Gmsh.y" +case 74: +#line 973 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){ double p; @@ -4061,8 +3563,8 @@ case 118: yyval.s.Num = 0; ; break;} -case 119: -#line 1184 "Gmsh.y" +case 75: +#line 992 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -4079,8 +3581,8 @@ case 119: yyval.s.Num = 0; ; break;} -case 120: -#line 1203 "Gmsh.y" +case 76: +#line 1011 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num, THEM)){ @@ -4099,8 +3601,8 @@ case 120: yyval.s.Num = num; ; break;} -case 121: -#line 1221 "Gmsh.y" +case 77: +#line 1029 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num, THEM)){ @@ -4119,8 +3621,8 @@ case 121: yyval.s.Num = num; ; break;} -case 122: -#line 1239 "Gmsh.y" +case 78: +#line 1047 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num, THEM)){ @@ -4139,8 +3641,8 @@ case 122: yyval.s.Num = num; ; break;} -case 123: -#line 1257 "Gmsh.y" +case 79: +#line 1065 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num, THEM)){ @@ -4167,8 +3669,8 @@ case 123: yyval.s.Num = num; ; break;} -case 124: -#line 1283 "Gmsh.y" +case 80: +#line 1091 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num, THEM)){ @@ -4187,8 +3689,8 @@ case 124: yyval.s.Num = num; ; break;} -case 125: -#line 1301 "Gmsh.y" +case 81: +#line 1109 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num, THEM)){ @@ -4215,8 +3717,8 @@ case 125: yyval.s.Num = num; ; break;} -case 126: -#line 1328 "Gmsh.y" +case 82: +#line 1136 "Gmsh.y" { int num = (int)yyvsp[-14].d; if(FindCurve(num, THEM)){ @@ -4236,8 +3738,8 @@ case 126: yyval.s.Num = num; ; break;} -case 127: -#line 1347 "Gmsh.y" +case 83: +#line 1155 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -4262,8 +3764,8 @@ case 127: yyval.s.Num = num; ; break;} -case 128: -#line 1371 "Gmsh.y" +case 84: +#line 1179 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -4288,8 +3790,8 @@ case 128: yyval.s.Num = num; ; break;} -case 129: -#line 1395 "Gmsh.y" +case 85: +#line 1203 "Gmsh.y" { int num = (int)yyvsp[-8].d; if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){ @@ -4316,8 +3818,8 @@ case 129: yyval.s.Num = num; ; break;} -case 130: -#line 1421 "Gmsh.y" +case 86: +#line 1229 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindEdgeLoop(num, THEM)){ @@ -4335,8 +3837,8 @@ case 130: yyval.s.Num = num; ; break;} -case 131: -#line 1438 "Gmsh.y" +case 87: +#line 1246 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){ double p; @@ -4355,8 +3857,8 @@ case 131: yyval.s.Num = 0; ; break;} -case 132: -#line 1456 "Gmsh.y" +case 88: +#line 1264 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE, THEM)){ @@ -4373,8 +3875,8 @@ case 132: yyval.s.Num = num; ; break;} -case 133: -#line 1475 "Gmsh.y" +case 89: +#line 1283 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurface(num, THEM)){ @@ -4394,8 +3896,8 @@ case 133: yyval.s.Num = num; ; break;} -case 134: -#line 1494 "Gmsh.y" +case 90: +#line 1302 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if(FindSurface(num, THEM)){ @@ -4435,8 +3937,8 @@ case 134: yyval.s.Num = num; ; break;} -case 135: -#line 1533 "Gmsh.y" +case 91: +#line 1341 "Gmsh.y" { int num = (int)yyvsp[-8].d; Surface *support = FindSurface((int)yyvsp[-4].d, THEM); @@ -4462,8 +3964,8 @@ case 135: yyval.s.Num = num; ; break;} -case 136: -#line 1560 "Gmsh.y" +case 92: +#line 1368 "Gmsh.y" { int num = (int)yyvsp[-16].d; if(FindSurface(num, THEM)){ @@ -4481,8 +3983,8 @@ case 136: yyval.s.Num = num; ; break;} -case 137: -#line 1579 "Gmsh.y" +case 93: +#line 1387 "Gmsh.y" { int num = (int)yyvsp[-16].d; if(FindSurface(num, THEM)){ @@ -4500,8 +4002,8 @@ case 137: yyval.s.Num = num; ; break;} -case 138: -#line 1596 "Gmsh.y" +case 94: +#line 1404 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurfaceLoop(num, THEM)){ @@ -4518,8 +4020,8 @@ case 138: yyval.s.Num = num; ; break;} -case 139: -#line 1612 "Gmsh.y" +case 95: +#line 1420 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE, THEM)){ @@ -4536,8 +4038,8 @@ case 139: yyval.s.Num = num; ; break;} -case 140: -#line 1632 "Gmsh.y" +case 96: +#line 1440 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num, THEM)){ @@ -4555,8 +4057,8 @@ case 140: yyval.s.Num = num; ; break;} -case 141: -#line 1649 "Gmsh.y" +case 97: +#line 1457 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num, THEM)){ @@ -4574,8 +4076,8 @@ case 141: yyval.s.Num = num; ; break;} -case 142: -#line 1666 "Gmsh.y" +case 98: +#line 1474 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME, THEM)){ @@ -4592,60 +4094,60 @@ case 142: yyval.s.Num = num; ; break;} -case 143: -#line 1687 "Gmsh.y" +case 99: +#line 1495 "Gmsh.y" { TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 144: -#line 1692 "Gmsh.y" +case 100: +#line 1500 "Gmsh.y" { RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 145: -#line 1697 "Gmsh.y" +case 101: +#line 1505 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 146: -#line 1702 "Gmsh.y" +case 102: +#line 1510 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 147: -#line 1709 "Gmsh.y" +case 103: +#line 1517 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 148: -#line 1710 "Gmsh.y" +case 104: +#line 1518 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 149: -#line 1711 "Gmsh.y" +case 105: +#line 1519 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 150: -#line 1716 "Gmsh.y" +case 106: +#line 1524 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} -case 151: -#line 1720 "Gmsh.y" +case 107: +#line 1528 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} -case 152: -#line 1724 "Gmsh.y" +case 108: +#line 1532 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4662,8 +4164,8 @@ case 152: } ; break;} -case 153: -#line 1740 "Gmsh.y" +case 109: +#line 1548 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4680,8 +4182,8 @@ case 153: } ; break;} -case 154: -#line 1756 "Gmsh.y" +case 110: +#line 1564 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4698,8 +4200,8 @@ case 154: } ; break;} -case 155: -#line 1772 "Gmsh.y" +case 111: +#line 1580 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4716,8 +4218,8 @@ case 155: } ; break;} -case 156: -#line 1793 "Gmsh.y" +case 112: +#line 1601 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -4731,32 +4233,32 @@ case 156: List_Delete(yyvsp[-1].l); ; break;} -case 157: -#line 1807 "Gmsh.y" +case 113: +#line 1615 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 158: -#line 1813 "Gmsh.y" +case 114: +#line 1621 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 159: -#line 1819 "Gmsh.y" +case 115: +#line 1627 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 160: -#line 1831 "Gmsh.y" +case 116: +#line 1639 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4766,8 +4268,8 @@ case 160: List_Delete(yyvsp[-1].l); ; break;} -case 161: -#line 1840 "Gmsh.y" +case 117: +#line 1648 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")){ RemoveViewByIndex((int)yyvsp[-2].d); @@ -4778,8 +4280,8 @@ case 161: Free(yyvsp[-4].c); ; break;} -case 162: -#line 1850 "Gmsh.y" +case 118: +#line 1658 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){ Init_Mesh(THEM); @@ -4794,8 +4296,8 @@ case 162: Free(yyvsp[-1].c); ; break;} -case 163: -#line 1864 "Gmsh.y" +case 119: +#line 1672 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){ for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){ @@ -4810,8 +4312,8 @@ case 163: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 164: -#line 1883 "Gmsh.y" +case 120: +#line 1691 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4821,8 +4323,8 @@ case 164: List_Delete(yyvsp[-1].l); ; break;} -case 165: -#line 1897 "Gmsh.y" +case 121: +#line 1705 "Gmsh.y" { int m = (CTX.visibility_mode == 2) ? VIS_MESH : ((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH); @@ -4831,16 +4333,16 @@ case 165: Free(yyvsp[-1].c); ; break;} -case 166: -#line 1905 "Gmsh.y" +case 122: +#line 1713 "Gmsh.y" { for(int i = 2; i < 6; i++) SetVisibilityByNumber(yyvsp[-1].c, i, 0); Free(yyvsp[-1].c); ; break;} -case 167: -#line 1911 "Gmsh.y" +case 123: +#line 1719 "Gmsh.y" { int m = (CTX.visibility_mode == 2) ? VIS_MESH : ((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH); @@ -4852,8 +4354,8 @@ case 167: List_Delete(yyvsp[-1].l); ; break;} -case 168: -#line 1922 "Gmsh.y" +case 124: +#line 1730 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4863,8 +4365,8 @@ case 168: List_Delete(yyvsp[-1].l); ; break;} -case 169: -#line 1936 "Gmsh.y" +case 125: +#line 1744 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ char tmpstring[1024]; @@ -4909,8 +4411,8 @@ case 169: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 170: -#line 1980 "Gmsh.y" +case 126: +#line 1788 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -4926,8 +4428,8 @@ case 170: Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c); ; break;} -case 171: -#line 1995 "Gmsh.y" +case 127: +#line 1803 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ long sleep_time = GetTime(); @@ -4944,8 +4446,8 @@ case 171: Free(yyvsp[-2].c); ; break;} -case 172: -#line 2011 "Gmsh.y" +case 128: +#line 1819 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -4956,8 +4458,8 @@ case 172: Free(yyvsp[-4].c); Free(yyvsp[-1].c); ; break;} -case 173: -#line 2021 "Gmsh.y" +case 129: +#line 1829 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews")) CombineViews(0, 1, CTX.post.combine_remove_orig); @@ -4980,28 +4482,28 @@ case 173: Free(yyvsp[-1].c); ; break;} -case 174: -#line 2043 "Gmsh.y" +case 130: +#line 1851 "Gmsh.y" { exit(0); ; break;} -case 175: -#line 2047 "Gmsh.y" +case 131: +#line 1855 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ; break;} -case 176: -#line 2052 "Gmsh.y" +case 132: +#line 1860 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} -case 177: -#line 2057 "Gmsh.y" +case 133: +#line 1865 "Gmsh.y" { #if defined(HAVE_FLTK) if(!CTX.batch) // we're in interactive mode @@ -5009,8 +4511,8 @@ case 177: #endif ; break;} -case 178: -#line 2070 "Gmsh.y" +case 134: +#line 1878 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -5026,8 +4528,8 @@ case 178: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 179: -#line 2085 "Gmsh.y" +case 135: +#line 1893 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -5044,8 +4546,8 @@ case 179: skip_until("For", "EndFor"); ; break;} -case 180: -#line 2101 "Gmsh.y" +case 136: +#line 1909 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -5072,8 +4574,8 @@ case 180: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 181: -#line 2127 "Gmsh.y" +case 137: +#line 1935 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -5101,8 +4603,8 @@ case 181: skip_until("For", "EndFor"); ; break;} -case 182: -#line 2154 "Gmsh.y" +case 138: +#line 1962 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -5135,8 +4637,8 @@ case 182: } ; break;} -case 183: -#line 2186 "Gmsh.y" +case 139: +#line 1994 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -5144,34 +4646,34 @@ case 183: //FIXME: wee leak $2 ; break;} -case 184: -#line 2193 "Gmsh.y" +case 140: +#line 2001 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} -case 185: -#line 2198 "Gmsh.y" +case 141: +#line 2006 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); //FIXME: wee leak $2 ; break;} -case 186: -#line 2204 "Gmsh.y" +case 142: +#line 2012 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} -case 187: -#line 2208 "Gmsh.y" +case 143: +#line 2016 "Gmsh.y" { ; break;} -case 188: -#line 2217 "Gmsh.y" +case 144: +#line 2025 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-1].l, @@ -5180,8 +4682,8 @@ case 188: List_Delete(yyvsp[-1].l); ; break;} -case 189: -#line 2225 "Gmsh.y" +case 145: +#line 2033 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-1].l, @@ -5190,8 +4692,8 @@ case 189: List_Delete(yyvsp[-1].l); ; break;} -case 190: -#line 2233 "Gmsh.y" +case 146: +#line 2041 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, @@ -5200,15 +4702,15 @@ case 190: List_Delete(yyvsp[-1].l); ; break;} -case 191: -#line 2241 "Gmsh.y" +case 147: +#line 2049 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 192: -#line 2246 "Gmsh.y" +case 148: +#line 2054 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -5217,15 +4719,15 @@ case 192: List_Delete(yyvsp[-3].l); ; break;} -case 193: -#line 2254 "Gmsh.y" +case 149: +#line 2062 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 194: -#line 2259 "Gmsh.y" +case 150: +#line 2067 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -5234,15 +4736,15 @@ case 194: List_Delete(yyvsp[-3].l); ; break;} -case 195: -#line 2267 "Gmsh.y" +case 151: +#line 2075 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 196: -#line 2272 "Gmsh.y" +case 152: +#line 2080 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -5251,8 +4753,8 @@ case 196: List_Delete(yyvsp[-3].l); ; break;} -case 197: -#line 2282 "Gmsh.y" +case 153: +#line 2090 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -5260,8 +4762,8 @@ case 197: NULL, yyval.l); ; break;} -case 198: -#line 2289 "Gmsh.y" +case 154: +#line 2097 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -5269,8 +4771,8 @@ case 198: NULL, yyval.l); ; break;} -case 199: -#line 2296 "Gmsh.y" +case 155: +#line 2104 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -5278,8 +4780,8 @@ case 199: NULL, yyval.l); ; break;} -case 200: -#line 2303 "Gmsh.y" +case 156: +#line 2111 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -5287,8 +4789,8 @@ case 200: NULL, yyval.l); ; break;} -case 201: -#line 2310 "Gmsh.y" +case 157: +#line 2118 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5296,8 +4798,8 @@ case 201: NULL, yyval.l); ; break;} -case 202: -#line 2317 "Gmsh.y" +case 158: +#line 2125 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5305,8 +4807,8 @@ case 202: NULL, yyval.l); ; break;} -case 203: -#line 2324 "Gmsh.y" +case 159: +#line 2132 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -5314,8 +4816,8 @@ case 203: NULL, yyval.l); ; break;} -case 204: -#line 2331 "Gmsh.y" +case 160: +#line 2139 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -5323,8 +4825,8 @@ case 204: NULL, yyval.l); ; break;} -case 205: -#line 2338 "Gmsh.y" +case 161: +#line 2146 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -5332,15 +4834,15 @@ case 205: NULL, yyval.l); ; break;} -case 206: -#line 2345 "Gmsh.y" +case 162: +#line 2153 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 207: -#line 2350 "Gmsh.y" +case 163: +#line 2158 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -5348,15 +4850,15 @@ case 207: &extr, yyval.l); ; break;} -case 208: -#line 2357 "Gmsh.y" +case 164: +#line 2165 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 209: -#line 2362 "Gmsh.y" +case 165: +#line 2170 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5364,15 +4866,15 @@ case 209: &extr, yyval.l); ; break;} -case 210: -#line 2369 "Gmsh.y" +case 166: +#line 2177 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 211: -#line 2374 "Gmsh.y" +case 167: +#line 2182 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5380,15 +4882,15 @@ case 211: &extr, yyval.l); ; break;} -case 212: -#line 2381 "Gmsh.y" +case 168: +#line 2189 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 213: -#line 2386 "Gmsh.y" +case 169: +#line 2194 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -5396,15 +4898,15 @@ case 213: &extr, yyval.l); ; break;} -case 214: -#line 2393 "Gmsh.y" +case 170: +#line 2201 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 215: -#line 2398 "Gmsh.y" +case 171: +#line 2206 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -5412,15 +4914,15 @@ case 215: &extr, yyval.l); ; break;} -case 216: -#line 2405 "Gmsh.y" +case 172: +#line 2213 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 217: -#line 2410 "Gmsh.y" +case 173: +#line 2218 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5428,15 +4930,15 @@ case 217: &extr, yyval.l); ; break;} -case 218: -#line 2417 "Gmsh.y" +case 174: +#line 2225 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 219: -#line 2422 "Gmsh.y" +case 175: +#line 2230 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5444,15 +4946,15 @@ case 219: &extr, yyval.l); ; break;} -case 220: -#line 2429 "Gmsh.y" +case 176: +#line 2237 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 221: -#line 2434 "Gmsh.y" +case 177: +#line 2242 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5460,15 +4962,15 @@ case 221: &extr, yyval.l); ; break;} -case 222: -#line 2441 "Gmsh.y" +case 178: +#line 2249 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 223: -#line 2446 "Gmsh.y" +case 179: +#line 2254 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5476,18 +4978,18 @@ case 223: &extr, yyval.l); ; break;} -case 224: -#line 2457 "Gmsh.y" +case 180: +#line 2265 "Gmsh.y" { ; break;} -case 225: -#line 2460 "Gmsh.y" +case 181: +#line 2268 "Gmsh.y" { ; break;} -case 226: -#line 2466 "Gmsh.y" +case 182: +#line 2274 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5514,8 +5016,8 @@ case 226: List_Delete(yyvsp[-2].l); ; break;} -case 227: -#line 2492 "Gmsh.y" +case 183: +#line 2300 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5540,14 +5042,14 @@ case 227: List_Delete(yyvsp[-2].l); ; break;} -case 228: -#line 2516 "Gmsh.y" +case 184: +#line 2324 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 229: -#line 2525 "Gmsh.y" +case 185: +#line 2333 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5566,8 +5068,8 @@ case 229: List_Delete(yyvsp[-3].l); ; break;} -case 230: -#line 2543 "Gmsh.y" +case 186: +#line 2351 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5586,8 +5088,8 @@ case 230: List_Delete(yyvsp[-6].l); ; break;} -case 231: -#line 2561 "Gmsh.y" +case 187: +#line 2369 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5606,8 +5108,8 @@ case 231: List_Delete(yyvsp[-6].l); ; break;} -case 232: -#line 2579 "Gmsh.y" +case 188: +#line 2387 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -5637,8 +5139,8 @@ case 232: List_Delete(yyvsp[-1].l); ; break;} -case 233: -#line 2608 "Gmsh.y" +case 189: +#line 2416 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d, THEM); if(!s) @@ -5674,8 +5176,8 @@ case 233: Free(yyvsp[-1].c); ; break;} -case 234: -#line 2643 "Gmsh.y" +case 190: +#line 2451 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -5703,8 +5205,8 @@ case 234: List_Delete(yyvsp[-1].l); ; break;} -case 235: -#line 2670 "Gmsh.y" +case 191: +#line 2478 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d, THEM); if(!v) @@ -5732,8 +5234,8 @@ case 235: List_Delete(yyvsp[-1].l); ; break;} -case 236: -#line 2697 "Gmsh.y" +case 192: +#line 2505 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5748,8 +5250,8 @@ case 236: List_Delete(yyvsp[-3].l); ; break;} -case 237: -#line 2711 "Gmsh.y" +case 193: +#line 2519 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5763,72 +5265,52 @@ case 237: List_Delete(yyvsp[-1].l); ; break;} -case 238: -#line 2730 "Gmsh.y" -{ - ReplaceAllDuplicates(THEM); - ; - break;} -case 239: -#line 2734 "Gmsh.y" -{ - IntersectAllSegmentsTogether(); - ; - break;} -case 240: -#line 2743 "Gmsh.y" -{yyval.i = 1;; - break;} -case 241: -#line 2744 "Gmsh.y" -{yyval.i = 0;; - break;} -case 242: -#line 2745 "Gmsh.y" -{yyval.i = -1;; - break;} -case 243: -#line 2746 "Gmsh.y" -{yyval.i = -1;; +case 194: +#line 2538 "Gmsh.y" +{ + ReplaceAllDuplicates(THEM); + ; break;} -case 244: -#line 2747 "Gmsh.y" -{yyval.i = -1;; +case 195: +#line 2542 "Gmsh.y" +{ + IntersectAllSegmentsTogether(); + ; break;} -case 245: -#line 2751 "Gmsh.y" +case 196: +#line 2551 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 246: -#line 2752 "Gmsh.y" +case 197: +#line 2552 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} -case 247: -#line 2753 "Gmsh.y" +case 198: +#line 2553 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} -case 248: -#line 2754 "Gmsh.y" +case 199: +#line 2554 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 249: -#line 2755 "Gmsh.y" +case 200: +#line 2555 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} -case 250: -#line 2756 "Gmsh.y" +case 201: +#line 2556 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} -case 251: -#line 2757 "Gmsh.y" +case 202: +#line 2557 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} -case 252: -#line 2758 "Gmsh.y" +case 203: +#line 2558 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} -case 253: -#line 2760 "Gmsh.y" +case 204: +#line 2560 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5836,248 +5318,248 @@ case 253: yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} -case 254: -#line 2766 "Gmsh.y" +case 205: +#line 2566 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} -case 255: -#line 2767 "Gmsh.y" +case 206: +#line 2567 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} -case 256: -#line 2768 "Gmsh.y" +case 207: +#line 2568 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} -case 257: -#line 2769 "Gmsh.y" +case 208: +#line 2569 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} -case 258: -#line 2770 "Gmsh.y" +case 209: +#line 2570 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} -case 259: -#line 2771 "Gmsh.y" +case 210: +#line 2571 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} -case 260: -#line 2772 "Gmsh.y" +case 211: +#line 2572 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} -case 261: -#line 2773 "Gmsh.y" +case 212: +#line 2573 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} -case 262: -#line 2774 "Gmsh.y" +case 213: +#line 2574 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} -case 263: -#line 2775 "Gmsh.y" +case 214: +#line 2575 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} -case 264: -#line 2776 "Gmsh.y" +case 215: +#line 2576 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} -case 265: -#line 2777 "Gmsh.y" +case 216: +#line 2577 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 266: -#line 2778 "Gmsh.y" +case 217: +#line 2578 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 267: -#line 2779 "Gmsh.y" +case 218: +#line 2579 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 268: -#line 2780 "Gmsh.y" +case 219: +#line 2580 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 269: -#line 2781 "Gmsh.y" +case 220: +#line 2581 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 270: -#line 2782 "Gmsh.y" +case 221: +#line 2582 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 271: -#line 2783 "Gmsh.y" +case 222: +#line 2583 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 272: -#line 2784 "Gmsh.y" +case 223: +#line 2584 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 273: -#line 2785 "Gmsh.y" +case 224: +#line 2585 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 274: -#line 2786 "Gmsh.y" +case 225: +#line 2586 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 275: -#line 2787 "Gmsh.y" +case 226: +#line 2587 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 276: -#line 2788 "Gmsh.y" +case 227: +#line 2588 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 277: -#line 2789 "Gmsh.y" +case 228: +#line 2589 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 278: -#line 2790 "Gmsh.y" +case 229: +#line 2590 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 279: -#line 2791 "Gmsh.y" +case 230: +#line 2591 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 280: -#line 2792 "Gmsh.y" +case 231: +#line 2592 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 281: -#line 2793 "Gmsh.y" +case 232: +#line 2593 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 282: -#line 2794 "Gmsh.y" +case 233: +#line 2594 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 283: -#line 2795 "Gmsh.y" +case 234: +#line 2595 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 284: -#line 2796 "Gmsh.y" +case 235: +#line 2596 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 285: -#line 2797 "Gmsh.y" +case 236: +#line 2597 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 286: -#line 2799 "Gmsh.y" +case 237: +#line 2599 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 287: -#line 2800 "Gmsh.y" +case 238: +#line 2600 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 288: -#line 2801 "Gmsh.y" +case 239: +#line 2601 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 289: -#line 2802 "Gmsh.y" +case 240: +#line 2602 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 290: -#line 2803 "Gmsh.y" +case 241: +#line 2603 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 291: -#line 2804 "Gmsh.y" +case 242: +#line 2604 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 292: -#line 2805 "Gmsh.y" +case 243: +#line 2605 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 293: -#line 2806 "Gmsh.y" +case 244: +#line 2606 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 294: -#line 2807 "Gmsh.y" +case 245: +#line 2607 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 295: -#line 2808 "Gmsh.y" +case 246: +#line 2608 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 296: -#line 2809 "Gmsh.y" +case 247: +#line 2609 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 297: -#line 2810 "Gmsh.y" +case 248: +#line 2610 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 298: -#line 2811 "Gmsh.y" +case 249: +#line 2611 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 299: -#line 2812 "Gmsh.y" +case 250: +#line 2612 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 300: -#line 2813 "Gmsh.y" +case 251: +#line 2613 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 301: -#line 2814 "Gmsh.y" +case 252: +#line 2614 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 302: -#line 2815 "Gmsh.y" +case 253: +#line 2615 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 303: -#line 2816 "Gmsh.y" +case 254: +#line 2616 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 304: -#line 2817 "Gmsh.y" +case 255: +#line 2617 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 305: -#line 2818 "Gmsh.y" +case 256: +#line 2618 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 306: -#line 2819 "Gmsh.y" +case 257: +#line 2619 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 307: -#line 2828 "Gmsh.y" +case 258: +#line 2628 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 308: -#line 2829 "Gmsh.y" +case 259: +#line 2629 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 309: -#line 2830 "Gmsh.y" +case 260: +#line 2630 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} -case 310: -#line 2831 "Gmsh.y" +case 261: +#line 2631 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} -case 311: -#line 2832 "Gmsh.y" +case 262: +#line 2632 "Gmsh.y" { yyval.d = GMSH_MAJOR_VERSION; ; break;} -case 312: -#line 2833 "Gmsh.y" +case 263: +#line 2633 "Gmsh.y" { yyval.d = GMSH_MINOR_VERSION; ; break;} -case 313: -#line 2834 "Gmsh.y" +case 264: +#line 2634 "Gmsh.y" { yyval.d = GMSH_PATCH_VERSION; ; break;} -case 314: -#line 2839 "Gmsh.y" +case 265: +#line 2639 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -6091,8 +5573,8 @@ case 314: Free(yyvsp[0].c); ; break;} -case 315: -#line 2852 "Gmsh.y" +case 266: +#line 2652 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -6113,8 +5595,8 @@ case 315: Free(yyvsp[-3].c); ; break;} -case 316: -#line 2872 "Gmsh.y" +case 267: +#line 2672 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -6129,8 +5611,8 @@ case 316: Free(yyvsp[-2].c); ; break;} -case 317: -#line 2886 "Gmsh.y" +case 268: +#line 2686 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -6144,8 +5626,8 @@ case 317: Free(yyvsp[-1].c); ; break;} -case 318: -#line 2899 "Gmsh.y" +case 269: +#line 2699 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -6166,8 +5648,8 @@ case 318: Free(yyvsp[-4].c); ; break;} -case 319: -#line 2922 "Gmsh.y" +case 270: +#line 2722 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6186,8 +5668,8 @@ case 319: Free(yyvsp[-2].c); Free(yyvsp[0].c); ; break;} -case 320: -#line 2940 "Gmsh.y" +case 271: +#line 2740 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6206,8 +5688,8 @@ case 320: Free(yyvsp[-5].c); Free(yyvsp[0].c); ; break;} -case 321: -#line 2958 "Gmsh.y" +case 272: +#line 2758 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6226,8 +5708,8 @@ case 321: Free(yyvsp[-3].c); Free(yyvsp[-1].c); ; break;} -case 322: -#line 2976 "Gmsh.y" +case 273: +#line 2776 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -6246,138 +5728,118 @@ case 322: Free(yyvsp[-6].c); Free(yyvsp[-1].c); ; break;} -case 323: -#line 2994 "Gmsh.y" +case 274: +#line 2794 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} -case 324: -#line 3002 "Gmsh.y" +case 275: +#line 2802 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} -case 325: -#line 3006 "Gmsh.y" +case 276: +#line 2806 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} -case 326: -#line 3010 "Gmsh.y" +case 277: +#line 2810 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 327: -#line 3014 "Gmsh.y" +case 278: +#line 2814 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} -case 328: -#line 3018 "Gmsh.y" +case 279: +#line 2818 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} -case 329: -#line 3025 "Gmsh.y" +case 280: +#line 2825 "Gmsh.y" { yyval.v[0] = yyvsp[-9].d; yyval.v[1] = yyvsp[-7].d; yyval.v[2] = yyvsp[-5].d; yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d; ; break;} -case 330: -#line 3029 "Gmsh.y" +case 281: +#line 2829 "Gmsh.y" { yyval.v[0] = yyvsp[-7].d; yyval.v[1] = yyvsp[-5].d; yyval.v[2] = yyvsp[-3].d; yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0; ; break;} -case 331: -#line 3033 "Gmsh.y" +case 282: +#line 2833 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 332: -#line 3037 "Gmsh.y" +case 283: +#line 2837 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 333: -#line 3044 "Gmsh.y" -{ - ; - break;} -case 334: -#line 3047 "Gmsh.y" -{ - ; - break;} -case 335: -#line 3053 "Gmsh.y" -{ - ; - break;} -case 336: -#line 3056 "Gmsh.y" -{ - ; - break;} -case 337: -#line 3062 "Gmsh.y" +case 284: +#line 2844 "Gmsh.y" { ; break;} -case 338: -#line 3065 "Gmsh.y" +case 285: +#line 2847 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 339: -#line 3069 "Gmsh.y" +case 286: +#line 2851 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 340: -#line 3076 "Gmsh.y" +case 287: +#line 2858 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 341: -#line 3081 "Gmsh.y" +case 288: +#line 2863 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 342: -#line 3089 "Gmsh.y" +case 289: +#line 2871 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 343: -#line 3094 "Gmsh.y" +case 290: +#line 2876 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 344: -#line 3098 "Gmsh.y" +case 291: +#line 2880 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 345: -#line 3102 "Gmsh.y" +case 292: +#line 2884 "Gmsh.y" { yyval.l = yyvsp[-1].l; double *pd; @@ -6387,16 +5849,16 @@ case 345: } ; break;} -case 346: -#line 3114 "Gmsh.y" +case 293: +#line 2896 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) List_Add(yyval.l, &d); ; break;} -case 347: -#line 3120 "Gmsh.y" +case 294: +#line 2902 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){ @@ -6408,8 +5870,8 @@ case 347: List_Add(yyval.l, &d); ; break;} -case 348: -#line 3131 "Gmsh.y" +case 295: +#line 2913 "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 @@ -6430,8 +5892,8 @@ case 348: } ; break;} -case 349: -#line 3151 "Gmsh.y" +case 296: +#line 2933 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6442,8 +5904,8 @@ case 349: List_Delete(yyvsp[0].l); ; break;} -case 350: -#line 3161 "Gmsh.y" +case 297: +#line 2943 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6454,8 +5916,8 @@ case 350: List_Delete(yyvsp[0].l); ; break;} -case 351: -#line 3171 "Gmsh.y" +case 298: +#line 2953 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6466,8 +5928,8 @@ case 351: List_Delete(yyvsp[0].l); ; break;} -case 352: -#line 3181 "Gmsh.y" +case 299: +#line 2963 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6485,8 +5947,8 @@ case 352: Free(yyvsp[-2].c); ; break;} -case 353: -#line 3198 "Gmsh.y" +case 300: +#line 2980 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6506,8 +5968,8 @@ case 353: Free(yyvsp[-2].c); ; break;} -case 354: -#line 3217 "Gmsh.y" +case 301: +#line 2999 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6532,8 +5994,8 @@ case 354: List_Delete(yyvsp[-2].l); ; break;} -case 355: -#line 3241 "Gmsh.y" +case 302: +#line 3023 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6560,27 +6022,27 @@ case 355: List_Delete(yyvsp[-2].l); ; break;} -case 356: -#line 3270 "Gmsh.y" +case 303: +#line 3052 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 357: -#line 3275 "Gmsh.y" +case 304: +#line 3057 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 358: -#line 3279 "Gmsh.y" +case 305: +#line 3061 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 359: -#line 3283 "Gmsh.y" +case 306: +#line 3065 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6590,20 +6052,20 @@ case 359: List_Delete(yyvsp[0].l); ; break;} -case 360: -#line 3296 "Gmsh.y" +case 307: +#line 3078 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 361: -#line 3300 "Gmsh.y" +case 308: +#line 3082 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 362: -#line 3312 "Gmsh.y" +case 309: +#line 3094 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6611,8 +6073,8 @@ case 362: Free(yyvsp[0].c); ; break;} -case 363: -#line 3319 "Gmsh.y" +case 310: +#line 3101 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6632,14 +6094,14 @@ case 363: Free(yyvsp[-4].c); Free(yyvsp[0].c); ; break;} -case 364: -#line 3341 "Gmsh.y" +case 311: +#line 3123 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 365: -#line 3345 "Gmsh.y" +case 312: +#line 3127 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6652,27 +6114,27 @@ case 365: Free(yyvsp[-5].c); ; break;} -case 366: -#line 3360 "Gmsh.y" +case 313: +#line 3142 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 367: -#line 3365 "Gmsh.y" +case 314: +#line 3147 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 368: -#line 3372 "Gmsh.y" +case 315: +#line 3154 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 369: -#line 3376 "Gmsh.y" +case 316: +#line 3158 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6681,8 +6143,8 @@ case 369: yyval.c[strlen(yyval.c) - 1] = '\0'; ; break;} -case 370: -#line 3384 "Gmsh.y" +case 317: +#line 3166 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6691,8 +6153,8 @@ case 370: Free(yyvsp[-1].c); ; break;} -case 371: -#line 3392 "Gmsh.y" +case 318: +#line 3174 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6707,8 +6169,8 @@ case 371: Free(yyvsp[-1].c); ; break;} -case 372: -#line 3406 "Gmsh.y" +case 319: +#line 3188 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6723,14 +6185,14 @@ case 372: Free(yyvsp[-1].c); ; break;} -case 373: -#line 3420 "Gmsh.y" +case 320: +#line 3202 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} -case 374: -#line 3424 "Gmsh.y" +case 321: +#line 3206 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6750,8 +6212,8 @@ case 374: List_Delete(yyvsp[-1].l); ; break;} -case 375: -#line 3443 "Gmsh.y" +case 322: +#line 3225 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6774,8 +6236,8 @@ case 375: } ; break;} -case 376: -#line 3465 "Gmsh.y" +case 323: +#line 3247 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -7020,7 +6482,7 @@ yyerrhandle: } return 1; } -#line 3488 "Gmsh.y" +#line 3270 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 31ef5417bf4384090799d1263019b23d06f12db9..96e801b6559312a4deed33757883c8f718d1861b 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -110,64 +110,21 @@ typedef union { #define tGMSH_MAJOR_VERSION 357 #define tGMSH_MINOR_VERSION 358 #define tGMSH_PATCH_VERSION 359 -#define tB_SPLINE_SURFACE_WITH_KNOTS 360 -#define tB_SPLINE_CURVE_WITH_KNOTS 361 -#define tCARTESIAN_POINT 362 -#define tTRUE 363 -#define tFALSE 364 -#define tUNSPECIFIED 365 -#define tU 366 -#define tV 367 -#define tEDGE_CURVE 368 -#define tVERTEX_POINT 369 -#define tORIENTED_EDGE 370 -#define tPLANE 371 -#define tFACE_OUTER_BOUND 372 -#define tEDGE_LOOP 373 -#define tADVANCED_FACE 374 -#define tVECTOR 375 -#define tDIRECTION 376 -#define tAXIS2_PLACEMENT_3D 377 -#define tISO 378 -#define tENDISO 379 -#define tENDSEC 380 -#define tDATA 381 -#define tHEADER 382 -#define tFILE_DESCRIPTION 383 -#define tFILE_SCHEMA 384 -#define tFILE_NAME 385 -#define tMANIFOLD_SOLID_BREP 386 -#define tCLOSED_SHELL 387 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 388 -#define tFACE_BOUND 389 -#define tCYLINDRICAL_SURFACE 390 -#define tCONICAL_SURFACE 391 -#define tCIRCLE 392 -#define tTRIMMED_CURVE 393 -#define tGEOMETRIC_SET 394 -#define tCOMPOSITE_CURVE_SEGMENT 395 -#define tCONTINUOUS 396 -#define tCOMPOSITE_CURVE 397 -#define tTOROIDAL_SURFACE 398 -#define tPRODUCT_DEFINITION 399 -#define tPRODUCT_DEFINITION_SHAPE 400 -#define tSHAPE_DEFINITION_REPRESENTATION 401 -#define tELLIPSE 402 -#define tAFFECTPLUS 403 -#define tAFFECTMINUS 404 -#define tAFFECTTIMES 405 -#define tAFFECTDIVIDE 406 -#define tOR 407 -#define tAND 408 -#define tEQUAL 409 -#define tNOTEQUAL 410 -#define tAPPROXEQUAL 411 -#define tLESSOREQUAL 412 -#define tGREATEROREQUAL 413 -#define tCROSSPRODUCT 414 -#define tPLUSPLUS 415 -#define tMINUSMINUS 416 -#define UNARYPREC 417 +#define tAFFECTPLUS 360 +#define tAFFECTMINUS 361 +#define tAFFECTTIMES 362 +#define tAFFECTDIVIDE 363 +#define tOR 364 +#define tAND 365 +#define tEQUAL 366 +#define tNOTEQUAL 367 +#define tAPPROXEQUAL 368 +#define tLESSOREQUAL 369 +#define tGREATEROREQUAL 370 +#define tCROSSPRODUCT 371 +#define tPLUSPLUS 372 +#define tMINUSMINUS 373 +#define UNARYPREC 374 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 6a32f11afce0047aa75b3e78490a107541391f4e..bebff6b14dfb6848345b200e106540d00846320d 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.216 2006-01-14 22:32:58 geuzaine Exp $ +// $Id: Gmsh.y,v 1.217 2006-01-28 21:13:35 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -35,7 +35,6 @@ #include "Draw.h" #include "Create.h" #include "Views.h" -#include "StepGeomDatabase.h" #include "Options.h" #include "Colors.h" #include "Parser.h" @@ -108,28 +107,15 @@ int CheckViewErrorFlags(Post_View *v); %token tReturn tCall tFunction tTrimmed tShow tHide tGetValue %token tGMSH_MAJOR_VERSION tGMSH_MINOR_VERSION tGMSH_PATCH_VERSION -%token tB_SPLINE_SURFACE_WITH_KNOTS -%token tB_SPLINE_CURVE_WITH_KNOTS -%token tCARTESIAN_POINT -%token tTRUE tFALSE tUNSPECIFIED tU tV tEDGE_CURVE tVERTEX_POINT tORIENTED_EDGE tPLANE -%token tFACE_OUTER_BOUND tEDGE_LOOP tADVANCED_FACE tVECTOR tDIRECTION tAXIS2_PLACEMENT_3D -%token tISO tENDISO tENDSEC tDATA tHEADER tFILE_DESCRIPTION tFILE_SCHEMA tFILE_NAME -%token tMANIFOLD_SOLID_BREP tCLOSED_SHELL tADVANCED_BREP_SHAPE_REPRESENTATION -%token tFACE_BOUND tCYLINDRICAL_SURFACE tCONICAL_SURFACE tCIRCLE tTRIMMED_CURVE -%token tGEOMETRIC_SET tCOMPOSITE_CURVE_SEGMENT tCOMPOSITE_CURVE_SEGMENT tCONTINUOUS -%token tCOMPOSITE_CURVE tTOROIDAL_SURFACE tPRODUCT_DEFINITION tPRODUCT_DEFINITION_SHAPE -%token tSHAPE_DEFINITION_REPRESENTATION tELLIPSE - %type <d> FExpr FExpr_Single %type <v> VExpr VExpr_Single -%type <i> BoolExpr NumericAffectation NumericIncrement +%type <i> NumericAffectation NumericIncrement %type <u> ColorExpr %type <c> StringExpr %type <l> FExpr_Multi ListOfDouble RecursiveListOfDouble %type <l> ListOfListOfDouble RecursiveListOfListOfDouble %type <l> ListOfColor RecursiveListOfColor %type <l> ListOfShapes Duplicata Transform Extrude MultipleShape -%type <l> ListOfStrings %type <s> Shape // Operators (with ascending priority): cf. C language @@ -155,188 +141,10 @@ int CheckViewErrorFlags(Post_View *v); %% All : - StepFormatItems - | GeoFormatItems + GeoFormatItems | error tEND { yyerrok; return 1; } ; - -// S T E P I S O - 1 0 3 0 3 - 2 1 F I L E F O R M A T - -// FIXME: The STEP interface is incomplete. All the strings and most -// of the lists are leaked in this (unused and unusable...) part of -// the parser. - -StepFormatItems : - // nothing - | StepFormatItems StepFormatItem -; - -StepFormatItem : - StepSpecial { return 1; } - | StepDataItem { return 1; } - | StepHeaderItem { return 1; } -; - -StepSpecial : - tISO tEND - { - yymsg(INFO, "Reading Step Iso-10303-21 data"); - Create_Step_Solid_BRep(); - } - | tENDISO tEND - { - Resolve_BREP (); - yymsg(INFO, "Read Step Iso-10303-21 data"); - } - | tDATA tEND - | tENDSEC tEND - | tHEADER tEND -; - -StepHeaderItem : - tFILE_DESCRIPTION '(' ListOfStrings ',' tBIGSTR ')' tEND - { - } - | tFILE_SCHEMA '(' ListOfStrings ')' tEND - { - } - | tFILE_NAME '(' tBIGSTR ',' tBIGSTR ',' ListOfStrings ',' - ListOfStrings ',' tBIGSTR ',' tBIGSTR ',' tBIGSTR ')' tEND - { - } -; - -StepDataItem : - tDOUBLE tAFFECT tCARTESIAN_POINT '(' tBIGSTR ',' VExpr ')' tEND - { - Add_Cartesian_Point((int)$1, $5, $7[0], $7[1], $7[2]); - } - | tDOUBLE tAFFECT tB_SPLINE_CURVE_WITH_KNOTS - '(' tBIGSTR ',' FExpr ',' ListOfDouble ',' BoolExpr ',' BoolExpr ',' - BoolExpr ',' ListOfDouble ',' ListOfDouble ',' BoolExpr ')' tEND - { - Add_BSpline_Curve_With_Knots ((int)$1, $5, (int) $7, $9, $17, $19, 0., 1.); - } - | tDOUBLE tAFFECT tB_SPLINE_SURFACE_WITH_KNOTS - '(' tBIGSTR ',' FExpr ',' FExpr ',' ListOfListOfDouble ',' BoolExpr ',' - BoolExpr ',' BoolExpr ',' BoolExpr ',' ListOfDouble ',' ListOfDouble ',' - ListOfDouble ',' ListOfDouble ',' BoolExpr ')' tEND - { - Add_BSpline_Surface_With_Knots ((int)$1, $5, (int) $7, (int) $9, $11, $21, - $23, $25, $27, 0., 1., 0., 1. ); - } - | tDOUBLE tAFFECT tEDGE_CURVE '(' tBIGSTR ',' tDOUBLE ',' tDOUBLE ',' - tDOUBLE ',' BoolExpr ')' tEND - { - Add_Edge_Curve ((int)$1, $5 , (int)$7 , (int)$9, (int)$11); - } - | tDOUBLE tAFFECT tFACE_OUTER_BOUND '(' tBIGSTR ',' tDOUBLE ',' BoolExpr ')' tEND - { - Add_Face_Outer_Bound((int)$1, $5, (int)$7, $9, 1); - } - | tDOUBLE tAFFECT tFACE_BOUND '(' tBIGSTR ',' tDOUBLE ',' BoolExpr ')' tEND - { - // check the norm! Face_Bound : hole outside surface! - yymsg(INFO, "Found a face bound"); - Add_Face_Outer_Bound((int)$1, $5, (int)$7, $9, 0); - } - | tDOUBLE tAFFECT tORIENTED_EDGE '(' tBIGSTR ',' '*' ',' '*' ',' FExpr ',' - BoolExpr ')' tEND - { - Add_Oriented_Edge((int)$1, $5, (int)$11, $13); - } - | tDOUBLE tAFFECT tEDGE_LOOP '(' tBIGSTR ',' ListOfDouble ')' tEND - { - Add_Edge_Loop((int)$1, $5, $7); - } - | tDOUBLE tAFFECT tADVANCED_FACE '(' tBIGSTR ',' ListOfDouble ',' - tDOUBLE ',' BoolExpr ')' tEND - { - Add_Advanced_Face((int)$1, $5, $7, (int)$9, $11); - } - | tDOUBLE tAFFECT tVERTEX_POINT '(' tBIGSTR ',' tDOUBLE ')' tEND - { - Add_Vertex_Point((int)$1, $5, (int)$7); - } - | tDOUBLE tAFFECT tVECTOR '(' tBIGSTR ',' tDOUBLE ',' FExpr ')' tEND - { - } - | tDOUBLE tAFFECT tAXIS2_PLACEMENT_3D '(' tBIGSTR ',' tDOUBLE ',' - tDOUBLE ',' tDOUBLE ')' tEND - { - Add_Axis2_Placement3D ((int)$1, (int)$9, (int)$11, (int)$7); - } - | tDOUBLE tAFFECT tDIRECTION '(' tBIGSTR ',' VExpr ')' tEND - { - Add_Direction((int)$1 , $5, $7[0], $7[1], $7[2]); - } - | tDOUBLE tAFFECT tPLANE '(' tBIGSTR ',' tDOUBLE ')' tEND - { - Add_Plane((int)$1, $5, (int)$7); - } - | tDOUBLE tAFFECT tLine '(' tBIGSTR ',' tDOUBLE ',' tDOUBLE ')' tEND - { - Add_Line ((int)$1, $5 , (int) $7, (int)$9); - } - | tDOUBLE tAFFECT tCLOSED_SHELL '(' tBIGSTR ',' ListOfDouble ')' tEND - { - yymsg(INFO, "Found a closed shell"); - Add_Closed_Shell((int)$1, $5 , $7); - } - | tDOUBLE tAFFECT tADVANCED_BREP_SHAPE_REPRESENTATION - '(' tBIGSTR ',' ListOfDouble ',' tDOUBLE')' tEND - { - } - | tDOUBLE tAFFECT tMANIFOLD_SOLID_BREP '(' tBIGSTR ',' tDOUBLE ')' tEND - { - } - | tDOUBLE tAFFECT tCYLINDRICAL_SURFACE '(' tBIGSTR ',' tDOUBLE ',' FExpr ')' tEND - { - Add_Cylinder ((int)$1, $5 , (int)$7, $9); - } - | tDOUBLE tAFFECT tCONICAL_SURFACE '(' tBIGSTR ',' tDOUBLE ',' FExpr ',' FExpr ')' tEND - { - Add_Cone ((int)$1, $5 , (int)$7, $9, $11); - } - | tDOUBLE tAFFECT tTOROIDAL_SURFACE '(' tBIGSTR ',' tDOUBLE ',' FExpr ',' FExpr ')' tEND - { - Add_Torus ((int)$1, $5 , (int)$7, $9, $11); - } - | tDOUBLE tAFFECT tCIRCLE '(' tBIGSTR ',' tDOUBLE ',' FExpr ')' tEND - { - Add_Circle((int) $1, $5, (int) $7, $9); - } - | tDOUBLE tAFFECT tELLIPSE '(' tBIGSTR ',' tDOUBLE ',' FExpr ',' FExpr ')' tEND - { - Add_Ellipse((int) $1, $5, (int) $7, $9, $11); - } - | tDOUBLE tAFFECT tTRIMMED_CURVE '(' tBIGSTR ',' tDOUBLE ',' - ListOfDouble ',' ListOfDouble ',' BoolExpr ',' BoolExpr ')' tEND - { - } - | tDOUBLE tAFFECT tGEOMETRIC_SET '(' tBIGSTR ',' ListOfDouble')' tEND - { - } - | tDOUBLE tAFFECT tCOMPOSITE_CURVE_SEGMENT - '(' tCONTINUOUS ',' BoolExpr ',' tDOUBLE ')' tEND - { - } - | tDOUBLE tAFFECT tCOMPOSITE_CURVE '(' tBIGSTR ',' ListOfDouble ',' BoolExpr ')' tEND - { - } - | tDOUBLE tAFFECT tPRODUCT_DEFINITION - '(' tBIGSTR ',' tBIGSTR ',' tDOUBLE',' tDOUBLE ')' tEND - { - } - | tDOUBLE tAFFECT tPRODUCT_DEFINITION_SHAPE '(' tBIGSTR ',' tBIGSTR ',' tDOUBLE ')' tEND - { - } - | tDOUBLE tAFFECT tSHAPE_DEFINITION_REPRESENTATION '(' tDOUBLE ',' tDOUBLE ')' tEND - { - } -; - // G E O F I L E F O R M A T GeoFormatItems : @@ -2739,14 +2547,6 @@ Coherence : // G E N E R A L -BoolExpr : - tTRUE {$$ = 1;} - | tFALSE {$$ = 0;} - | tUNSPECIFIED {$$ = -1;} - | tU {$$ = -1;} - | tV {$$ = -1;} -; - FExpr : FExpr_Single { $$ = $1; } | '(' FExpr ')' { $$ = $2; } @@ -3039,24 +2839,6 @@ VExpr_Single : } ; -ListOfStrings : - // nothing - { - } - | '(' RecursiveListOfStrings ')' - { - } -; - -RecursiveListOfStrings : - tBIGSTR - { - } - | RecursiveListOfStrings ',' tBIGSTR - { - } -; - ListOfListOfDouble : // nothing { diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index e88c80e49b5a7da4010eb9ad59fe8bbe7ee448a3..9120412bce50441b0e2b001b743f680c7c4ad50b 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.248 2006-01-14 22:32:58 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.249 2006-01-28 21:13:36 geuzaine Exp $ */ #define FLEX_SCANNER @@ -283,127 +283,74 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 185 -#define YY_END_OF_BUFFER 186 -static yyconst short int yy_accept[1071] = +#define YY_NUM_RULES 140 +#define YY_END_OF_BUFFER 141 +static yyconst short int yy_accept[583] = { 0, - 0, 0, 186, 184, 1, 1, 184, 5, 184, 184, - 6, 184, 184, 184, 184, 184, 179, 18, 2, 184, - 13, 184, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 184, 184, 0, 0, 26, - 178, 22, 16, 23, 14, 24, 15, 0, 181, 0, - 0, 0, 0, 3, 4, 17, 20, 180, 179, 0, - 28, 25, 29, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 82, 81, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 97, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 130, - 131, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 21, 27, 0, 0, 19, 0, 139, 140, - 141, 142, 180, 0, 0, 182, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 49, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 62, 183, - 183, 183, 183, 183, 183, 73, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 88, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 111, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 124, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 0, 0, 0, 181, - - 0, 0, 180, 183, 183, 183, 183, 30, 183, 183, - 183, 183, 34, 36, 183, 183, 183, 183, 183, 42, - 183, 183, 183, 183, 183, 183, 57, 183, 46, 183, - 183, 183, 183, 183, 183, 48, 157, 183, 183, 183, - 61, 183, 183, 183, 0, 183, 183, 183, 183, 69, - 183, 183, 183, 70, 183, 72, 183, 183, 183, 183, - 183, 79, 183, 183, 0, 183, 183, 151, 183, 183, - 86, 183, 87, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 108, - 183, 183, 183, 183, 183, 120, 112, 183, 183, 110, - - 183, 183, 183, 183, 183, 133, 183, 183, 123, 183, - 183, 183, 183, 183, 183, 183, 129, 10, 9, 8, - 183, 11, 12, 0, 0, 0, 180, 183, 183, 183, - 183, 32, 183, 183, 183, 38, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 54, 183, 183, 183, 183, 183, 183, 183, 183, - 0, 183, 183, 183, 68, 183, 183, 183, 71, 183, - 183, 183, 183, 183, 80, 183, 0, 183, 84, 183, - 183, 89, 183, 183, 183, 183, 94, 183, 95, 155, - 183, 183, 183, 98, 183, 99, 100, 183, 183, 183, - - 183, 183, 107, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 126, 183, 183, 127, 183, 183, 183, - 183, 0, 0, 183, 183, 183, 183, 183, 31, 35, - 37, 183, 183, 183, 41, 183, 44, 183, 170, 183, - 183, 183, 183, 183, 183, 51, 183, 183, 183, 183, - 183, 58, 59, 183, 183, 183, 183, 0, 163, 183, - 183, 67, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 156, 183, 0, 183, 90, 85, 183, - 183, 183, 91, 183, 183, 183, 183, 104, 103, 183, - 183, 109, 106, 183, 113, 183, 117, 183, 183, 183, - - 183, 183, 183, 183, 183, 183, 152, 183, 128, 7, - 0, 0, 183, 183, 183, 183, 183, 39, 183, 43, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 47, 53, 183, 183, 183, 183, 146, 0, 64, - 183, 183, 65, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 0, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 116, 183, 183, - 114, 183, 183, 183, 183, 183, 125, 183, 0, 0, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 0, 63, 66, 183, 183, 183, 183, 183, 74, - 183, 183, 183, 183, 75, 183, 0, 183, 183, 92, - 93, 183, 183, 183, 96, 183, 183, 183, 183, 183, - 115, 183, 183, 183, 183, 183, 0, 0, 183, 183, - 183, 183, 183, 40, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 52, 183, 153, 60, 183, 145, 0, - 183, 183, 183, 159, 183, 183, 183, 183, 183, 183, - 0, 83, 183, 183, 183, 183, 183, 105, 183, 118, - 183, 183, 183, 183, 122, 183, 0, 0, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - - 183, 183, 56, 183, 55, 144, 0, 149, 183, 183, - 183, 183, 183, 183, 183, 183, 0, 183, 183, 183, - 102, 183, 183, 183, 183, 183, 183, 183, 0, 0, - 183, 183, 183, 183, 183, 183, 183, 183, 45, 183, - 183, 183, 183, 183, 183, 0, 183, 183, 158, 183, - 183, 183, 183, 183, 0, 183, 183, 183, 101, 183, - 119, 183, 183, 121, 183, 138, 0, 138, 183, 183, - 183, 183, 183, 183, 183, 183, 164, 183, 183, 183, - 183, 0, 183, 183, 183, 183, 183, 183, 183, 161, - 183, 183, 183, 183, 183, 183, 147, 137, 183, 150, - - 137, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 0, 183, 183, 172, 183, 183, 183, 183, 183, 143, - 183, 183, 183, 171, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 50, 0, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 134, 174, 168, 183, 0, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 33, 183, 183, - 183, 183, 162, 148, 160, 183, 183, 183, 183, 183, - 183, 183, 169, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 154, 183, 183, - - 183, 183, 76, 77, 78, 183, 183, 175, 183, 183, - 183, 183, 183, 167, 183, 166, 183, 183, 183, 183, - 183, 183, 132, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 173, 183, 183, 183, 183, 183, 176, 183, 183, 136, - 183, 183, 183, 183, 183, 183, 135, 183, 183, 183, - 183, 183, 183, 183, 183, 177, 183, 183, 165, 0 + 0, 0, 141, 139, 1, 1, 139, 5, 139, 6, + 139, 139, 139, 139, 139, 134, 18, 2, 139, 13, + 139, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 139, 139, 26, 22, 16, 23, + 14, 24, 15, 0, 136, 3, 4, 17, 20, 135, + 134, 0, 28, 25, 29, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 82, 81, 138, + + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 97, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 130, 131, 138, 138, 138, + 138, 138, 138, 138, 138, 21, 27, 19, 0, 135, + 0, 0, 137, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 49, 138, 138, 138, 138, 138, 138, 138, 62, + 138, 138, 138, 138, 73, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 88, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + + 138, 138, 138, 138, 138, 138, 111, 138, 138, 138, + 138, 138, 138, 138, 124, 138, 138, 138, 138, 138, + 138, 138, 0, 136, 0, 0, 135, 30, 138, 138, + 138, 138, 34, 36, 138, 138, 138, 138, 42, 57, + 138, 46, 138, 138, 138, 138, 138, 138, 48, 138, + 138, 61, 138, 138, 138, 138, 69, 138, 70, 138, + 72, 138, 138, 138, 79, 138, 138, 138, 138, 138, + 138, 86, 138, 87, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 108, 138, 138, 138, + 138, 120, 112, 138, 138, 110, 138, 138, 138, 138, + + 138, 133, 123, 138, 138, 138, 138, 138, 129, 10, + 9, 8, 138, 11, 12, 0, 135, 32, 138, 138, + 138, 38, 138, 138, 138, 138, 138, 138, 138, 138, + 54, 138, 138, 138, 138, 138, 138, 138, 68, 138, + 71, 138, 138, 138, 80, 138, 138, 84, 138, 138, + 89, 138, 138, 138, 94, 95, 138, 138, 98, 138, + 99, 100, 138, 138, 138, 138, 138, 107, 138, 138, + 138, 138, 138, 138, 138, 126, 138, 138, 127, 138, + 138, 138, 31, 35, 37, 138, 138, 41, 138, 44, + 138, 138, 51, 138, 138, 138, 138, 58, 59, 138, + + 138, 138, 67, 138, 138, 138, 138, 138, 138, 138, + 90, 85, 138, 138, 91, 138, 138, 104, 103, 138, + 138, 109, 106, 113, 138, 117, 138, 138, 138, 138, + 138, 138, 138, 128, 7, 138, 39, 138, 43, 138, + 138, 138, 138, 138, 47, 53, 138, 64, 138, 138, + 65, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 116, 138, 138, 114, 138, 138, + 138, 125, 138, 138, 138, 138, 138, 138, 138, 138, + 63, 66, 74, 138, 138, 138, 75, 138, 138, 92, + 93, 138, 96, 138, 138, 138, 138, 115, 138, 138, + + 138, 40, 138, 138, 138, 52, 138, 60, 138, 138, + 138, 138, 83, 138, 138, 105, 118, 138, 138, 122, + 138, 138, 56, 138, 55, 138, 138, 138, 138, 102, + 138, 138, 138, 138, 45, 138, 138, 138, 138, 138, + 101, 119, 121, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 50, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 33, 138, 138, 138, + 138, 138, 138, 138, 138, 76, 77, 78, 138, 138, + 132, 0 } ; static yyconst int yy_ec[256] = @@ -411,17 +358,17 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 4, 5, 6, 1, 1, 7, 8, 1, - 1, 9, 10, 1, 11, 12, 13, 14, 15, 16, - 17, 18, 18, 18, 18, 18, 18, 19, 20, 21, - 22, 23, 1, 1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 40, - 1, 49, 1, 1, 50, 1, 51, 52, 53, 54, - - 55, 56, 57, 58, 59, 40, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 1, 76, 1, 77, 1, 1, 1, 1, + 1, 2, 4, 5, 1, 1, 1, 6, 7, 1, + 1, 8, 9, 1, 10, 11, 12, 13, 14, 15, + 16, 17, 17, 17, 17, 17, 17, 18, 19, 20, + 21, 22, 1, 1, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 39, 39, 39, + 1, 46, 1, 1, 47, 1, 48, 49, 50, 51, + + 52, 53, 54, 55, 56, 39, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 1, 73, 1, 74, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -438,422 +385,244 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[78] = +static yyconst int yy_meta[75] = { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 3, 3, 3, 3, 1, 1, - 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 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, 1, 1 } ; -static yyconst short int yy_base[1076] = +static yyconst short int yy_base[584] = { 0, - 0, 0, 1329, 52, 53, 1330, 58, 55, 72, 75, - 59, 69, 82, 83, 106, 116, 129, 67, 84, 108, - 114, 137, 127, 122, 173, 143, 192, 190, 157, 212, - 220, 89, 163, 237, 235, 165, 241, 254, 265, 280, - 315, 135, 240, 156, 281, 199, 300, 1290, 1290, 1330, - 346, 1330, 1330, 1330, 1330, 1330, 1330, 1314, 353, 1313, - 1312, 94, 1311, 1330, 1330, 1330, 1330, 358, 373, 382, - 1330, 1330, 1330, 0, 1284, 1276, 1283, 1287, 1254, 1258, - 1263, 1256, 179, 1249, 1271, 1237, 1241, 1248, 1268, 1267, - 1269, 208, 1271, 101, 1246, 1253, 1236, 232, 1259, 1260, - - 1239, 1238, 1247, 1232, 1266, 1260, 1267, 1232, 1238, 258, - 1265, 1255, 1237, 1224, 1223, 1219, 1222, 1246, 1241, 1213, - 1257, 1226, 1214, 1235, 1239, 0, 1207, 1211, 1237, 1199, - 1209, 1208, 43, 1233, 1237, 1214, 1200, 1234, 1211, 1240, - 1225, 1195, 1187, 0, 86, 161, 53, 1197, 137, 1190, - 1197, 1233, 1192, 1192, 211, 1187, 1186, 1185, 1189, 0, - 0, 1214, 1208, 1216, 1184, 1192, 117, 1186, 232, 1183, - 1174, 1170, 1330, 1330, 1204, 1198, 1330, 400, 1330, 1330, - 1330, 1330, 405, 420, 388, 425, 1202, 1214, 1195, 1194, - 1167, 1183, 352, 1170, 1169, 1164, 1169, 1190, 1169, 1164, - - 1161, 1182, 1198, 1181, 1183, 1189, 1188, 1158, 1156, 1156, - 1149, 1162, 1159, 1149, 245, 1154, 1187, 1182, 1154, 1157, - 1135, 1145, 1177, 1172, 72, 1144, 210, 1133, 0, 1134, - 1172, 1171, 1130, 1133, 1142, 0, 1142, 1158, 1162, 1147, - 1164, 1135, 1125, 1160, 1176, 1131, 1116, 1156, 1128, 1125, - 1126, 1165, 1114, 1146, 1127, 1106, 1123, 1146, 1118, 1135, - 1144, 1119, 1101, 1105, 1110, 1103, 1110, 1101, 1106, 1108, - 1097, 1090, 1108, 1103, 1118, 1084, 1097, 1095, 1094, 1083, - 316, 1095, 1088, 1121, 1110, 1111, 1088, 1094, 1081, 1081, - 1079, 1098, 1097, 1069, 1080, 391, 1094, 1097, 431, 449, - - 458, 463, 468, 1092, 1097, 1094, 1116, 0, 1063, 1066, - 1070, 1077, 0, 1111, 1075, 1066, 1089, 1068, 1068, 0, - 1093, 1085, 1091, 1080, 1091, 1079, 0, 1045, 0, 1063, - 1052, 1045, 1044, 1051, 1048, 0, 0, 1082, 1038, 1037, - 0, 1046, 1054, 1064, 1070, 1073, 1035, 1035, 1042, 0, - 1027, 1046, 1045, 0, 1027, 0, 1024, 1064, 1041, 1039, - 1061, 0, 1019, 1046, 1071, 1018, 1016, 0, 1016, 1013, - 0, 1067, 0, 1051, 208, 1018, 1010, 1040, 1009, 1047, - 1030, 1011, 1013, 1016, 1011, 1000, 1001, 998, 999, 0, - 1003, 997, 994, 1008, 1033, 0, 0, 997, 996, 0, - - 1007, 990, 1001, 1004, 999, 0, 1021, 1016, 0, 977, - 982, 987, 991, 1009, 1018, 983, 0, 0, 0, 0, - 989, 0, 0, 1011, 1014, 473, 478, 1009, 1014, 1011, - 988, 991, 968, 972, 971, 0, 980, 969, 999, 963, - 260, 987, 1000, 1000, 984, 1001, 997, 962, 969, 966, - 965, 976, 955, 962, 973, 960, 959, 960, 308, 970, - 969, 984, 234, 942, 0, 954, 327, 470, 0, 948, - 963, 294, 944, 963, 0, 964, 988, 933, 0, 932, - 941, 0, 960, 946, 937, 931, 0, 951, 0, 0, - 967, 937, 938, 0, 927, 0, 0, 933, 933, 935, - - 923, 930, 0, 934, 928, 913, 912, 925, 918, 925, - 908, 949, 947, 0, 351, 919, 0, 932, 925, 916, - 913, 932, 942, 930, 938, 939, 925, 904, 0, 0, - 946, 892, 905, 922, 0, 895, 0, 925, 0, 906, - 923, 919, 912, 891, 882, 0, 887, 898, 893, 874, - 914, 0, 0, 894, 900, 905, 914, 903, 0, 325, - 881, 0, 884, 900, 893, 908, 911, 908, 869, 891, - 316, 907, 860, 0, 891, 911, 872, 0, 0, 891, - 862, 849, 0, 895, 879, 852, 869, 0, 0, 851, - 859, 0, 0, 890, 0, 860, 0, 859, 863, 858, - - 845, 887, 883, 850, 857, 853, 0, 856, 0, 0, - 861, 872, 859, 875, 869, 865, 830, 0, 834, 0, - 869, 839, 871, 852, 850, 842, 859, 849, 834, 835, - 835, 0, 0, 848, 816, 843, 845, 0, 871, 0, - 813, 827, 0, 835, 835, 835, 840, 844, 811, 841, - 839, 834, 827, 814, 833, 853, 813, 838, 804, 808, - 835, 811, 793, 798, 790, 794, 828, 0, 796, 785, - 0, 779, 817, 801, 787, 780, 0, 809, 809, 817, - 807, 794, 814, 818, 783, 773, 789, 813, 800, 805, - 807, 791, 804, 763, 757, 84, 117, 167, 172, 202, - - 231, 262, 0, 0, 250, 286, 311, 323, 330, 0, - 351, 345, 371, 398, 0, 401, 409, 358, 379, 0, - 0, 382, 423, 392, 0, 394, 399, 426, 384, 402, - 0, 420, 445, 439, 444, 462, 457, 470, 459, 479, - 473, 480, 471, 0, 484, 447, 463, 486, 465, 472, - 493, 456, 460, 0, 465, 0, 0, 493, 0, 508, - 496, 483, 484, 0, 491, 478, 488, 489, 500, 489, - 522, 0, 492, 507, 508, 484, 474, 0, 507, 0, - 469, 499, 498, 474, 0, 512, 503, 518, 505, 507, - 525, 522, 523, 487, 509, 510, 482, 517, 522, 532, - - 518, 525, 0, 493, 0, 0, 545, 0, 513, 532, - 541, 524, 517, 518, 519, 538, 555, 534, 546, 545, - 0, 512, 539, 522, 534, 538, 525, 544, 0, 555, - 582, 557, 570, 570, 562, 530, 559, 565, 0, 569, - 573, 565, 581, 561, 543, 599, 589, 576, 0, 588, - 572, 573, 574, 582, 606, 587, 593, 592, 0, 593, - 0, 585, 582, 0, 585, 1330, 0, 0, 590, 602, - 659, 604, 574, 589, 606, 604, 0, 596, 614, 597, - 581, 624, 604, 600, 601, 617, 618, 619, 611, 1330, - 617, 622, 614, 609, 624, 626, 0, 1330, 605, 0, - - 0, 619, 593, 634, 649, 637, 630, 650, 633, 630, - 673, 641, 654, 0, 646, 647, 648, 640, 664, 0, - 660, 661, 670, 0, 653, 653, 634, 648, 673, 657, - 673, 674, 662, 0, 688, 668, 668, 665, 667, 668, - 669, 662, 670, 676, 689, 685, 667, 650, 673, 692, - 0, 671, 0, 693, 708, 697, 688, 694, 695, 696, - 703, 705, 699, 695, 705, 710, 720, 0, 706, 689, - 698, 717, 1330, 0, 0, 704, 705, 706, 714, 705, - 709, 698, 0, 710, 723, 708, 706, 725, 728, 718, - 719, 720, 730, 731, 723, 720, 734, 0, 732, 732, - - 735, 738, 0, 0, 0, 731, 729, 719, 742, 721, - 722, 730, 738, 0, 747, 0, 734, 738, 737, 745, - 749, 753, 0, 751, 742, 756, 748, 736, 750, 764, - 761, 751, 753, 758, 750, 755, 753, 755, 754, 761, - 0, 771, 772, 773, 760, 765, 0, 767, 763, 0, - 763, 764, 780, 767, 786, 774, 0, 769, 770, 782, - 791, 778, 774, 781, 787, 0, 782, 784, 0, 1330, - 819, 822, 825, 828, 831 + 0, 0, 704, 705, 705, 705, 682, 705, 696, 705, + 680, 66, 67, 65, 77, 79, 705, 705, 679, 678, + 677, 47, 58, 66, 68, 68, 81, 48, 30, 55, + 0, 637, 85, 46, 629, 631, 95, 97, 99, 152, + 629, 632, 636, 639, 617, 668, 705, 705, 705, 705, + 705, 705, 705, 677, 158, 705, 705, 705, 705, 163, + 178, 208, 705, 705, 705, 0, 626, 630, 635, 628, + 68, 621, 610, 614, 621, 51, 623, 630, 613, 143, + 618, 617, 626, 611, 614, 620, 141, 621, 608, 607, + 603, 606, 624, 598, 612, 600, 619, 0, 594, 598, + + 587, 597, 596, 127, 624, 603, 589, 601, 587, 579, + 0, 96, 91, 96, 589, 146, 582, 589, 585, 585, + 72, 580, 579, 578, 582, 0, 0, 605, 579, 587, + 158, 581, 578, 569, 565, 705, 705, 705, 218, 223, + 232, 238, 243, 568, 584, 236, 571, 570, 565, 570, + 571, 566, 563, 566, 564, 564, 557, 570, 567, 557, + 120, 562, 564, 567, 545, 555, 556, 156, 545, 0, + 546, 544, 547, 556, 0, 556, 575, 560, 551, 541, + 574, 548, 533, 546, 543, 544, 581, 532, 546, 525, + 542, 538, 541, 523, 527, 532, 525, 532, 523, 528, + + 530, 519, 512, 530, 525, 507, 520, 518, 517, 506, + 241, 518, 511, 542, 513, 519, 506, 506, 504, 496, + 507, 218, 256, 274, 283, 288, 293, 0, 496, 499, + 503, 510, 0, 542, 508, 499, 502, 502, 0, 0, + 485, 0, 503, 492, 485, 484, 491, 488, 0, 479, + 478, 0, 487, 480, 480, 487, 0, 472, 0, 474, + 0, 471, 489, 487, 0, 468, 493, 468, 466, 466, + 463, 0, 515, 0, 62, 469, 461, 461, 465, 467, + 470, 465, 454, 455, 452, 453, 0, 457, 451, 448, + 462, 0, 0, 452, 451, 0, 462, 445, 456, 459, + + 454, 0, 0, 434, 439, 444, 448, 442, 0, 0, + 0, 0, 448, 0, 0, 298, 303, 454, 433, 437, + 436, 0, 445, 434, 429, 155, 434, 441, 438, 437, + 446, 427, 434, 433, 432, 433, 178, 418, 0, 430, + 0, 424, 191, 421, 0, 440, 412, 0, 411, 420, + 0, 426, 417, 411, 0, 0, 419, 420, 0, 409, + 0, 0, 415, 415, 417, 405, 412, 0, 411, 396, + 395, 408, 401, 408, 391, 0, 146, 404, 0, 403, + 400, 397, 0, 0, 437, 385, 398, 0, 389, 0, + 390, 381, 0, 386, 397, 392, 373, 0, 0, 394, + + 211, 385, 0, 388, 378, 298, 415, 370, 399, 383, + 0, 0, 374, 361, 0, 366, 383, 0, 0, 365, + 373, 0, 0, 0, 375, 0, 374, 378, 373, 360, + 367, 374, 370, 0, 0, 354, 0, 358, 0, 364, + 377, 364, 365, 365, 0, 0, 347, 0, 347, 361, + 0, 350, 377, 372, 365, 354, 371, 354, 346, 350, + 337, 342, 334, 338, 0, 341, 330, 0, 324, 334, + 327, 0, 337, 327, 366, 328, 324, 335, 328, 337, + 0, 0, 0, 347, 346, 357, 0, 358, 314, 0, + 0, 323, 0, 322, 325, 306, 319, 0, 318, 321, + + 335, 0, 310, 311, 313, 0, 316, 0, 327, 326, + 335, 322, 0, 313, 301, 0, 0, 293, 294, 0, + 297, 288, 0, 292, 0, 309, 308, 307, 322, 0, + 292, 299, 298, 283, 0, 282, 303, 302, 301, 307, + 0, 0, 0, 287, 286, 314, 313, 312, 302, 276, + 286, 295, 294, 293, 285, 271, 0, 289, 287, 286, + 285, 260, 293, 292, 291, 270, 0, 257, 248, 247, + 244, 229, 228, 226, 192, 0, 0, 0, 174, 159, + 0, 705, 102 } ; -static yyconst short int yy_def[1076] = +static yyconst short int yy_def[584] = { 0, - 1070, 1, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1070, 1070, - - 1070, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1070, 1070, 1070, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1070, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1070, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072, 1070, - 1073, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1070, 1074, 1071, 1071, 1071, - 1075, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1070, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1070, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 0, - 1070, 1070, 1070, 1070, 1070 + 582, 1, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 582, 582, 582, 582, 582, + 582, 582, 582, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 582, 582, 582, 582, 582, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 582, 582, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, + 583, 0, 582 } ; -static yyconst short int yy_nxt[1408] = +static yyconst short int yy_nxt[780] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 17, 17, 17, 17, 18, 19, + 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 32, - 39, 40, 41, 42, 43, 44, 32, 32, 4, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 45, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 46, 47, 48, 48, 50, - 48, 52, 345, 48, 48, 51, 51, 51, 51, 51, - 53, 54, 48, 56, 48, 49, 49, 48, 49, 252, - - 48, 49, 49, 55, 57, 181, 253, 48, 48, 48, - 49, 268, 49, 346, 75, 49, 269, 58, 49, 59, - 59, 59, 59, 59, 64, 49, 49, 49, 65, 71, - 176, 48, 77, 48, 60, 72, 264, 66, 754, 48, - 68, 48, 69, 69, 69, 69, 69, 75, 61, 62, - 63, 49, 75, 76, 48, 265, 70, 49, 73, 49, - 75, 208, 48, 84, 67, 77, 99, 289, 75, 209, - 77, 85, 49, 78, 100, 290, 86, 755, 77, 79, - 49, 75, 75, 70, 118, 87, 77, 80, 75, 271, - 75, 88, 119, 81, 82, 83, 89, 101, 75, 77, - - 77, 102, 168, 756, 90, 272, 77, 91, 77, 103, - 92, 120, 104, 111, 171, 75, 77, 75, 105, 266, - 93, 112, 757, 94, 48, 128, 106, 95, 107, 195, - 96, 97, 267, 77, 137, 77, 98, 75, 348, 121, - 113, 349, 49, 205, 206, 75, 758, 196, 484, 485, - 114, 115, 108, 116, 109, 77, 124, 292, 134, 117, - 75, 125, 75, 77, 110, 75, 75, 169, 129, 759, - 122, 278, 293, 135, 173, 126, 760, 279, 77, 75, - 77, 138, 127, 77, 77, 123, 761, 130, 140, 213, - 75, 131, 214, 215, 141, 132, 334, 77, 136, 216, - - 133, 560, 561, 170, 142, 75, 75, 139, 77, 335, - 152, 143, 144, 762, 145, 148, 228, 146, 536, 149, - 147, 174, 229, 77, 77, 48, 230, 537, 150, 571, - 160, 161, 572, 555, 151, 172, 763, 153, 154, 651, - 75, 401, 556, 49, 155, 156, 162, 652, 157, 158, - 764, 564, 163, 159, 402, 164, 403, 765, 77, 51, - 51, 51, 51, 51, 565, 165, 59, 59, 59, 59, - 59, 183, 183, 183, 183, 183, 766, 310, 166, 640, - 178, 167, 767, 641, 68, 184, 69, 69, 69, 69, - 69, 185, 185, 311, 312, 186, 186, 186, 186, 186, - - 70, 186, 186, 186, 186, 186, 604, 178, 768, 299, - 299, 605, 184, 300, 300, 300, 300, 300, 183, 183, - 183, 183, 183, 769, 770, 771, 772, 70, 773, 302, - 302, 774, 301, 303, 303, 303, 303, 303, 186, 186, - 186, 186, 186, 418, 300, 300, 300, 300, 300, 775, - 776, 419, 777, 778, 779, 420, 780, 421, 422, 301, - 781, 423, 300, 300, 300, 300, 300, 426, 426, 782, - 783, 427, 427, 427, 427, 427, 303, 303, 303, 303, - 303, 303, 303, 303, 303, 303, 427, 427, 427, 427, - 427, 427, 427, 427, 427, 427, 566, 784, 785, 786, - - 787, 788, 789, 790, 792, 793, 567, 791, 794, 795, - 797, 568, 798, 799, 800, 801, 802, 803, 804, 805, - 806, 807, 808, 809, 810, 796, 811, 812, 813, 814, - 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, - 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, - 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, - 865, 867, 866, 866, 869, 866, 866, 866, 866, 866, - 866, 866, 866, 866, 866, 870, 871, 872, 873, 874, - - 866, 866, 866, 866, 866, 875, 876, 877, 878, 879, - 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, - 890, 891, 892, 893, 894, 895, 896, 897, 899, 900, - 866, 902, 903, 904, 905, 906, 907, 908, 909, 910, - 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, - 921, 922, 923, 924, 925, 926, 927, 866, 866, 898, - 898, 928, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 929, 930, 931, 932, 933, 898, 898, 898, - 898, 898, 934, 935, 936, 937, 938, 939, 940, 941, - 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, - - 952, 953, 954, 955, 956, 957, 958, 898, 959, 960, - 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, - 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 898, 898, 985, 986, 987, 988, - 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, - 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, - 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, - 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, - 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, - - 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, - 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - 1069, 74, 866, 753, 866, 868, 752, 868, 898, 751, - 898, 901, 750, 901, 749, 748, 747, 746, 745, 744, - 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, - 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, - 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, - 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, - 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, - 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, - - 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, - 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, - 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, - 653, 650, 649, 648, 647, 646, 645, 644, 643, 642, - 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, - 629, 628, 627, 626, 625, 624, 623, 622, 621, 620, - 619, 618, 617, 616, 615, 614, 613, 612, 611, 610, - 609, 608, 607, 606, 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, 570, 569, 563, 562, 559, - 558, 557, 554, 553, 552, 551, 550, 549, 548, 547, - 546, 545, 544, 543, 542, 541, 540, 539, 538, 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, 493, 492, 491, 490, 489, 488, 487, 486, 483, + 30, 31, 32, 33, 34, 35, 36, 37, 31, 38, + 39, 40, 41, 42, 43, 4, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 45, 46, 50, 54, 52, 55, 55, 55, + 55, 55, 93, 105, 56, 95, 51, 53, 57, 60, + 97, 61, 61, 61, 61, 61, 67, 58, 72, 94, + + 96, 352, 353, 66, 68, 62, 106, 98, 154, 73, + 69, 70, 71, 76, 99, 148, 155, 77, 74, 81, + 78, 79, 59, 82, 75, 85, 80, 86, 88, 208, + 62, 83, 101, 149, 84, 209, 102, 87, 89, 90, + 103, 91, 109, 195, 115, 104, 197, 92, 116, 110, + 111, 199, 112, 119, 120, 113, 200, 117, 114, 198, + 121, 122, 196, 118, 123, 124, 126, 127, 247, 125, + 55, 55, 55, 55, 55, 140, 140, 140, 140, 140, + 187, 248, 128, 255, 139, 581, 256, 188, 60, 141, + 61, 61, 61, 61, 61, 202, 169, 159, 431, 129, + + 160, 161, 170, 432, 62, 217, 171, 162, 580, 139, + 389, 203, 130, 218, 141, 131, 142, 142, 579, 390, + 143, 143, 143, 143, 143, 406, 223, 223, 407, 62, + 224, 224, 224, 224, 224, 140, 140, 140, 140, 140, + 226, 226, 401, 402, 227, 227, 227, 227, 227, 225, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 230, 578, 448, 577, 576, 297, 449, 310, 224, 224, + 224, 224, 224, 575, 225, 311, 231, 232, 298, 312, + 299, 313, 314, 574, 573, 315, 224, 224, 224, 224, + 224, 316, 316, 572, 571, 317, 317, 317, 317, 317, + + 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, + 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, + 453, 570, 569, 568, 567, 566, 565, 564, 454, 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, 493, + + 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, - - 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, - 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, - 432, 431, 430, 429, 428, 425, 424, 417, 416, 415, - 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, - 404, 400, 399, 398, 397, 396, 395, 394, 393, 392, - 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, - 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, - 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, - 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, - - 351, 350, 347, 344, 343, 342, 341, 340, 339, 338, - 337, 336, 333, 332, 331, 330, 329, 328, 327, 326, - 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, - 315, 314, 313, 309, 308, 307, 306, 305, 304, 298, - 297, 296, 295, 294, 291, 288, 287, 286, 285, 284, - 283, 282, 281, 280, 277, 276, 275, 274, 273, 270, - 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, - 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, - 231, 227, 226, 225, 224, 223, 222, 221, 220, 219, - - 218, 217, 212, 211, 210, 207, 204, 203, 202, 201, - 200, 199, 198, 197, 194, 193, 192, 191, 190, 189, - 188, 187, 182, 180, 179, 177, 176, 175, 1070, 3, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - - 1070, 1070, 1070, 1070, 1070, 1070, 1070 + 462, 461, 460, 459, 458, 457, 456, 455, 452, 451, + 450, 447, 446, 445, 444, 443, 442, 441, 440, 439, + 438, 437, 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, 405, + 404, 403, 400, 399, 398, 397, 396, 395, 394, 393, + 392, 391, 388, 387, 386, 385, 384, 383, 382, 381, + + 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 359, 358, 357, 356, 355, 354, 351, 350, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, + 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, + 318, 309, 308, 307, 306, 305, 304, 303, 302, 301, + 300, 296, 295, 294, 293, 292, 291, 290, 289, 288, + 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, + + 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, + 257, 254, 253, 252, 251, 250, 249, 246, 245, 244, + 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, + 233, 229, 228, 222, 221, 220, 219, 216, 215, 214, + 213, 212, 211, 210, 207, 206, 205, 204, 201, 194, + 193, 192, 191, 190, 189, 186, 185, 184, 183, 182, + 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, + 168, 167, 166, 165, 164, 163, 158, 157, 156, 153, + 152, 151, 150, 147, 146, 145, 144, 138, 137, 136, + 135, 134, 133, 132, 108, 107, 100, 65, 64, 63, + + 49, 48, 47, 582, 3, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582 } ; -static yyconst short int yy_chk[1408] = +static yyconst short int yy_chk[780] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -862,154 +631,84 @@ static yyconst short int yy_chk[1408] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, 5, 7, - 8, 10, 225, 7, 11, 9, 9, 9, 9, 9, - 12, 13, 18, 14, 12, 4, 5, 9, 8, 133, - - 10, 7, 11, 13, 14, 62, 133, 13, 14, 19, - 18, 147, 12, 225, 32, 9, 147, 15, 10, 15, - 15, 15, 15, 15, 16, 13, 14, 19, 16, 20, - 62, 15, 32, 20, 15, 21, 145, 16, 696, 21, - 17, 16, 17, 17, 17, 17, 17, 24, 15, 15, - 15, 20, 23, 23, 17, 145, 17, 21, 22, 16, - 42, 94, 22, 24, 16, 24, 26, 167, 26, 94, - 23, 24, 17, 23, 26, 167, 24, 697, 42, 23, - 22, 44, 29, 17, 29, 24, 26, 23, 33, 149, - 36, 24, 29, 23, 23, 23, 25, 26, 25, 44, - - 29, 26, 42, 698, 25, 149, 33, 25, 36, 26, - 25, 29, 26, 28, 44, 28, 25, 27, 27, 146, - 25, 28, 699, 25, 46, 33, 27, 25, 27, 83, - 25, 25, 146, 28, 36, 27, 25, 30, 227, 30, - 28, 227, 46, 92, 92, 31, 700, 83, 375, 375, - 28, 28, 27, 28, 27, 30, 31, 169, 35, 28, - 35, 31, 34, 31, 27, 43, 37, 43, 34, 701, - 30, 155, 169, 35, 46, 31, 702, 155, 35, 38, - 34, 37, 31, 43, 37, 30, 705, 34, 38, 98, - 39, 34, 98, 98, 38, 34, 215, 38, 35, 98, - - 34, 463, 463, 43, 38, 40, 45, 37, 39, 215, - 40, 38, 38, 706, 38, 39, 110, 38, 441, 39, - 38, 47, 110, 40, 45, 47, 110, 441, 39, 472, - 41, 41, 472, 459, 39, 45, 707, 40, 40, 571, - 41, 281, 459, 47, 40, 40, 41, 571, 40, 40, - 708, 467, 41, 40, 281, 41, 281, 709, 41, 51, - 51, 51, 51, 51, 467, 41, 59, 59, 59, 59, - 59, 68, 68, 68, 68, 68, 711, 193, 41, 560, - 59, 41, 712, 560, 69, 68, 69, 69, 69, 69, - 69, 70, 70, 193, 193, 70, 70, 70, 70, 70, - - 69, 185, 185, 185, 185, 185, 515, 59, 713, 178, - 178, 515, 68, 178, 178, 178, 178, 178, 183, 183, - 183, 183, 183, 714, 716, 717, 718, 69, 719, 184, - 184, 722, 183, 184, 184, 184, 184, 184, 186, 186, - 186, 186, 186, 296, 299, 299, 299, 299, 299, 723, - 724, 296, 726, 727, 728, 296, 729, 296, 296, 183, - 730, 296, 300, 300, 300, 300, 300, 301, 301, 732, - 733, 301, 301, 301, 301, 301, 302, 302, 302, 302, - 302, 303, 303, 303, 303, 303, 426, 426, 426, 426, - 426, 427, 427, 427, 427, 427, 468, 734, 735, 736, - - 737, 738, 739, 740, 741, 742, 468, 740, 743, 745, - 746, 468, 747, 748, 749, 750, 751, 752, 753, 755, - 758, 760, 761, 762, 763, 745, 765, 766, 767, 768, - 769, 770, 771, 773, 774, 775, 776, 777, 779, 781, - 782, 783, 784, 786, 787, 788, 789, 790, 791, 792, - 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, - 804, 807, 809, 810, 811, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 822, 823, 824, 825, 826, 827, - 828, 830, 831, 831, 832, 831, 831, 831, 831, 831, - 831, 831, 831, 831, 831, 833, 834, 835, 836, 837, - - 831, 831, 831, 831, 831, 838, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 860, 862, 863, 865, 869, 870, - 831, 872, 873, 874, 875, 876, 878, 879, 880, 881, - 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, - 893, 894, 895, 896, 899, 902, 903, 831, 831, 871, - 871, 904, 871, 871, 871, 871, 871, 871, 871, 871, - 871, 871, 905, 906, 907, 908, 909, 871, 871, 871, - 871, 871, 910, 911, 912, 913, 915, 916, 917, 918, - 919, 921, 922, 923, 925, 926, 927, 928, 929, 930, - - 931, 932, 933, 935, 936, 937, 938, 871, 939, 940, - 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, - 952, 954, 955, 956, 957, 958, 959, 960, 961, 962, - 963, 964, 965, 966, 871, 871, 967, 969, 970, 971, - 972, 976, 977, 978, 979, 980, 981, 982, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 999, 1000, 1001, 1002, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1015, 1017, 1018, 1019, 1020, 1021, - 1022, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1042, 1043, - - 1044, 1045, 1046, 1048, 1049, 1051, 1052, 1053, 1054, 1055, - 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1067, - 1068, 1071, 1072, 695, 1072, 1073, 694, 1073, 1074, 693, - 1074, 1075, 692, 1075, 691, 690, 689, 688, 687, 686, - 685, 684, 683, 682, 681, 680, 679, 678, 676, 675, - 674, 673, 672, 670, 669, 667, 666, 665, 664, 663, - 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, - 652, 651, 650, 649, 648, 647, 646, 645, 644, 642, - 641, 639, 637, 636, 635, 634, 631, 630, 629, 628, - 627, 626, 625, 624, 623, 622, 621, 619, 617, 616, - - 615, 614, 613, 612, 611, 608, 606, 605, 604, 603, - 602, 601, 600, 599, 598, 596, 594, 591, 590, 587, - 586, 585, 584, 582, 581, 580, 577, 576, 575, 573, - 572, 570, 569, 568, 567, 566, 565, 564, 563, 561, - 558, 557, 556, 555, 554, 551, 550, 549, 548, 547, - 545, 544, 543, 542, 541, 540, 538, 536, 534, 533, - 532, 531, 528, 527, 526, 525, 524, 523, 522, 521, - 520, 519, 518, 516, 513, 512, 511, 510, 509, 508, - 507, 506, 505, 504, 502, 501, 500, 499, 498, 495, - 493, 492, 491, 488, 486, 485, 484, 483, 481, 480, - - 478, 477, 476, 474, 473, 471, 470, 466, 464, 462, - 461, 460, 458, 457, 456, 455, 454, 453, 452, 451, - 450, 449, 448, 447, 446, 445, 444, 443, 442, 440, - 439, 438, 437, 435, 434, 433, 432, 431, 430, 429, - 428, 425, 424, 421, 416, 415, 414, 413, 412, 411, - 410, 408, 407, 405, 404, 403, 402, 401, 399, 398, - 395, 394, 393, 392, 391, 389, 388, 387, 386, 385, - 384, 383, 382, 381, 380, 379, 378, 377, 376, 374, - 372, 370, 369, 367, 366, 365, 364, 363, 361, 360, - 359, 358, 357, 355, 353, 352, 351, 349, 348, 347, - - 346, 345, 344, 343, 342, 340, 339, 338, 335, 334, - 333, 332, 331, 330, 328, 326, 325, 324, 323, 322, - 321, 319, 318, 317, 316, 315, 314, 312, 311, 310, - 309, 307, 306, 305, 304, 298, 297, 295, 294, 293, - 292, 291, 290, 289, 288, 287, 286, 285, 284, 283, - 282, 280, 279, 278, 277, 276, 275, 274, 273, 272, - 271, 270, 269, 268, 267, 266, 265, 264, 263, 262, - 261, 260, 259, 258, 257, 256, 255, 254, 253, 252, - 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, - 241, 240, 239, 238, 237, 235, 234, 233, 232, 231, - - 230, 228, 226, 224, 223, 222, 221, 220, 219, 218, - 217, 216, 214, 213, 212, 211, 210, 209, 208, 207, - 206, 205, 204, 203, 202, 201, 200, 199, 198, 197, - 196, 195, 194, 192, 191, 190, 189, 188, 187, 176, - 175, 172, 171, 170, 168, 166, 165, 164, 163, 162, - 159, 158, 157, 156, 154, 153, 152, 151, 150, 148, - 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, - 132, 131, 130, 129, 128, 127, 125, 124, 123, 122, - 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, - 111, 109, 108, 107, 106, 105, 104, 103, 102, 101, - - 100, 99, 97, 96, 95, 93, 91, 90, 89, 88, - 87, 86, 85, 84, 82, 81, 80, 79, 78, 77, - 76, 75, 63, 61, 60, 58, 49, 48, 3, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, - - 1070, 1070, 1070, 1070, 1070, 1070, 1070 + 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, + 14, 14, 28, 34, 15, 29, 12, 13, 15, 16, + 30, 16, 16, 16, 16, 16, 22, 15, 23, 28, + + 29, 275, 275, 583, 22, 16, 34, 30, 76, 23, + 22, 22, 22, 24, 30, 71, 76, 24, 23, 25, + 24, 24, 15, 25, 23, 26, 24, 26, 27, 121, + 16, 25, 33, 71, 25, 121, 33, 26, 27, 27, + 33, 27, 37, 112, 38, 33, 113, 27, 38, 37, + 37, 114, 37, 39, 39, 37, 114, 38, 37, 113, + 39, 39, 112, 38, 39, 39, 40, 40, 161, 39, + 55, 55, 55, 55, 55, 60, 60, 60, 60, 60, + 104, 161, 40, 168, 55, 580, 168, 104, 61, 60, + 61, 61, 61, 61, 61, 116, 87, 80, 377, 40, + + 80, 80, 87, 377, 61, 131, 87, 80, 579, 55, + 326, 116, 40, 131, 60, 40, 62, 62, 575, 326, + 62, 62, 62, 62, 62, 343, 139, 139, 343, 61, + 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, + 141, 141, 337, 337, 141, 141, 141, 141, 141, 140, + 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, + 146, 574, 401, 573, 572, 211, 401, 222, 223, 223, + 223, 223, 223, 571, 140, 222, 146, 146, 211, 222, + 211, 222, 222, 570, 569, 222, 224, 224, 224, 224, + 224, 225, 225, 568, 566, 225, 225, 225, 225, 225, + + 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, + 316, 316, 316, 316, 316, 317, 317, 317, 317, 317, + 406, 565, 564, 563, 562, 561, 560, 559, 406, 558, + 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, + 546, 545, 544, 540, 539, 538, 537, 536, 534, 533, + 532, 531, 529, 528, 527, 526, 524, 522, 521, 519, + 518, 515, 514, 512, 511, 510, 509, 507, 505, 504, + 503, 501, 500, 499, 497, 496, 495, 494, 492, 489, + 488, 486, 485, 484, 480, 479, 478, 477, 476, 475, + 474, 473, 471, 470, 469, 467, 466, 464, 463, 462, + + 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, + 450, 449, 447, 444, 443, 442, 441, 440, 438, 436, + 433, 432, 431, 430, 429, 428, 427, 425, 421, 420, + 417, 416, 414, 413, 410, 409, 408, 407, 405, 404, + 402, 400, 397, 396, 395, 394, 392, 391, 389, 387, + 386, 385, 382, 381, 380, 378, 375, 374, 373, 372, + 371, 370, 369, 367, 366, 365, 364, 363, 360, 358, + 357, 354, 353, 352, 350, 349, 347, 346, 344, 342, + 340, 338, 336, 335, 334, 333, 332, 331, 330, 329, + 328, 327, 325, 324, 323, 321, 320, 319, 318, 313, + + 308, 307, 306, 305, 304, 301, 300, 299, 298, 297, + 295, 294, 291, 290, 289, 288, 286, 285, 284, 283, + 282, 281, 280, 279, 278, 277, 276, 273, 271, 270, + 269, 268, 267, 266, 264, 263, 262, 260, 258, 256, + 255, 254, 253, 251, 250, 248, 247, 246, 245, 244, + 243, 241, 238, 237, 236, 235, 234, 232, 231, 230, + 229, 221, 220, 219, 218, 217, 216, 215, 214, 213, + 212, 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, 182, + + 181, 180, 179, 178, 177, 176, 174, 173, 172, 171, + 169, 167, 166, 165, 164, 163, 162, 160, 159, 158, + 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, + 147, 145, 144, 135, 134, 133, 132, 130, 129, 128, + 125, 124, 123, 122, 120, 119, 118, 117, 115, 110, + 109, 108, 107, 106, 105, 103, 102, 101, 100, 99, + 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, + 86, 85, 84, 83, 82, 81, 79, 78, 77, 75, + 74, 73, 72, 70, 69, 68, 67, 54, 46, 45, + 44, 43, 42, 41, 36, 35, 32, 21, 20, 19, + + 11, 9, 7, 3, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582 } ; static yy_state_type yy_last_accepting_state; @@ -1026,7 +725,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.248 2006-01-14 22:32:58 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.249 2006-01-28 21:13:36 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -1087,7 +786,7 @@ void skipline(void); && ferror( yyin ) ) \ Msg(FATAL, "Input in flex scanner failed"); -#line 1091 "Gmsh.yy.cpp" +#line 790 "Gmsh.yy.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1241,7 +940,7 @@ YY_DECL #line 80 "Gmsh.l" -#line 1245 "Gmsh.yy.cpp" +#line 944 "Gmsh.yy.cpp" if ( yy_init ) { @@ -1292,13 +991,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 >= 1071 ) + if ( yy_current_state >= 583 ) 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] != 1330 ); + while ( yy_base[yy_current_state] != 705 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1990,257 +1689,32 @@ YY_RULE_SETUP return tTime; YY_BREAK case 134: -YY_RULE_SETUP #line 239 "Gmsh.l" -return tCARTESIAN_POINT; - YY_BREAK case 135: -YY_RULE_SETUP #line 240 "Gmsh.l" -return tB_SPLINE_SURFACE_WITH_KNOTS; - YY_BREAK case 136: -YY_RULE_SETUP #line 241 "Gmsh.l" -return tB_SPLINE_CURVE_WITH_KNOTS; - YY_BREAK case 137: YY_RULE_SETUP -#line 242 "Gmsh.l" -return tUNSPECIFIED; +#line 241 "Gmsh.l" +{yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK case 138: YY_RULE_SETUP #line 243 "Gmsh.l" -return tCONTINUOUS; +{yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK case 139: YY_RULE_SETUP -#line 244 "Gmsh.l" -return tFALSE; - YY_BREAK -case 140: -YY_RULE_SETUP #line 245 "Gmsh.l" -return tTRUE; - YY_BREAK -case 141: -YY_RULE_SETUP -#line 246 "Gmsh.l" -return tU; - YY_BREAK -case 142: -YY_RULE_SETUP -#line 247 "Gmsh.l" -return tV; - YY_BREAK -case 143: -YY_RULE_SETUP -#line 248 "Gmsh.l" -return tORIENTED_EDGE; - YY_BREAK -case 144: -YY_RULE_SETUP -#line 249 "Gmsh.l" -return tEDGE_CURVE; - YY_BREAK -case 145: -YY_RULE_SETUP -#line 250 "Gmsh.l" -return tEDGE_LOOP; - YY_BREAK -case 146: -YY_RULE_SETUP -#line 251 "Gmsh.l" -return tELLIPSE; - YY_BREAK -case 147: -YY_RULE_SETUP -#line 252 "Gmsh.l" -return tVERTEX_POINT; - YY_BREAK -case 148: -YY_RULE_SETUP -#line 253 "Gmsh.l" -return tFACE_OUTER_BOUND; - YY_BREAK -case 149: -YY_RULE_SETUP -#line 254 "Gmsh.l" -return tFACE_BOUND; - YY_BREAK -case 150: -YY_RULE_SETUP -#line 255 "Gmsh.l" -return tADVANCED_FACE; - YY_BREAK -case 151: -YY_RULE_SETUP -#line 256 "Gmsh.l" -return tLine; - YY_BREAK -case 152: -YY_RULE_SETUP -#line 257 "Gmsh.l" -return tVECTOR; - YY_BREAK -case 153: -YY_RULE_SETUP -#line 258 "Gmsh.l" -return tDIRECTION; - YY_BREAK -case 154: -YY_RULE_SETUP -#line 259 "Gmsh.l" -return tAXIS2_PLACEMENT_3D; - YY_BREAK -case 155: -YY_RULE_SETUP -#line 260 "Gmsh.l" -return tPLANE; - YY_BREAK -case 156: -YY_RULE_SETUP -#line 261 "Gmsh.l" -return tHEADER; - YY_BREAK -case 157: -YY_RULE_SETUP -#line 262 "Gmsh.l" -return tDATA; - YY_BREAK -case 158: -YY_RULE_SETUP -#line 263 "Gmsh.l" -return tFILE_SCHEMA; - YY_BREAK -case 159: -YY_RULE_SETUP -#line 264 "Gmsh.l" -return tFILE_NAME; - YY_BREAK -case 160: -YY_RULE_SETUP -#line 265 "Gmsh.l" -return tFILE_DESCRIPTION; - YY_BREAK -case 161: -YY_RULE_SETUP -#line 266 "Gmsh.l" -return tISO; - YY_BREAK -case 162: -YY_RULE_SETUP -#line 267 "Gmsh.l" -return tENDISO; - YY_BREAK -case 163: -YY_RULE_SETUP -#line 268 "Gmsh.l" -return tENDSEC; - YY_BREAK -case 164: -YY_RULE_SETUP -#line 269 "Gmsh.l" -return tCLOSED_SHELL; - YY_BREAK -case 165: -YY_RULE_SETUP -#line 270 "Gmsh.l" -return tADVANCED_BREP_SHAPE_REPRESENTATION; - YY_BREAK -case 166: -YY_RULE_SETUP -#line 271 "Gmsh.l" -return tMANIFOLD_SOLID_BREP; - YY_BREAK -case 167: -YY_RULE_SETUP -#line 272 "Gmsh.l" -return tCYLINDRICAL_SURFACE; - YY_BREAK -case 168: -YY_RULE_SETUP -#line 273 "Gmsh.l" -return tCONICAL_SURFACE; - YY_BREAK -case 169: -YY_RULE_SETUP -#line 274 "Gmsh.l" -return tTOROIDAL_SURFACE; - YY_BREAK -case 170: -YY_RULE_SETUP -#line 275 "Gmsh.l" -return tCIRCLE; - YY_BREAK -case 171: -YY_RULE_SETUP -#line 276 "Gmsh.l" -return tTRIMMED_CURVE; - YY_BREAK -case 172: -YY_RULE_SETUP -#line 277 "Gmsh.l" -return tGEOMETRIC_SET; - YY_BREAK -case 173: -YY_RULE_SETUP -#line 278 "Gmsh.l" -return tCOMPOSITE_CURVE_SEGMENT; - YY_BREAK -case 174: -YY_RULE_SETUP -#line 279 "Gmsh.l" -return tCOMPOSITE_CURVE; - YY_BREAK -case 175: -YY_RULE_SETUP -#line 280 "Gmsh.l" -return tPRODUCT_DEFINITION; - YY_BREAK -case 176: -YY_RULE_SETUP -#line 281 "Gmsh.l" -return tPRODUCT_DEFINITION_SHAPE; - YY_BREAK -case 177: -YY_RULE_SETUP -#line 282 "Gmsh.l" -return tSHAPE_DEFINITION_REPRESENTATION; - YY_BREAK -case 178: -YY_RULE_SETUP -#line 284 "Gmsh.l" -{yylval.d = (double)atoi((char*)(yytext+1)); return tDOUBLE;} - YY_BREAK -case 179: -#line 287 "Gmsh.l" -case 180: -#line 288 "Gmsh.l" -case 181: -#line 289 "Gmsh.l" -case 182: -YY_RULE_SETUP -#line 289 "Gmsh.l" -{yylval.d = atof((char *)yytext); return tDOUBLE;} - YY_BREAK -case 183: -YY_RULE_SETUP -#line 291 "Gmsh.l" -{yylval.c = strsave((char*)yytext); return tSTRING;} - YY_BREAK -case 184: -YY_RULE_SETUP -#line 293 "Gmsh.l" return yytext[0]; YY_BREAK -case 185: +case 140: YY_RULE_SETUP -#line 295 "Gmsh.l" +#line 247 "Gmsh.l" ECHO; YY_BREAK -#line 2244 "Gmsh.yy.cpp" +#line 1718 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2532,7 +2006,7 @@ static yy_state_type yy_get_previous_state() 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 >= 1071 ) + if ( yy_current_state >= 583 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2567,11 +2041,11 @@ yy_state_type yy_current_state; 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 >= 1071 ) + if ( yy_current_state >= 583 ) 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 == 1070); + yy_is_jam = (yy_current_state == 582); return yy_is_jam ? 0 : yy_current_state; } @@ -3126,7 +2600,7 @@ int main() return 0; } #endif -#line 295 "Gmsh.l" +#line 247 "Gmsh.l" #undef yywrap diff --git a/Parser/Makefile b/Parser/Makefile index 95a13f43200b570a764057ce810922e847d2d920..0afc388345bd89eed7936ca23eeab8855c3b7020 100644 --- a/Parser/Makefile +++ b/Parser/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.79 2006-01-28 18:44:19 geuzaine Exp $ +# $Id: Makefile,v 1.80 2006-01-28 21:13:36 geuzaine Exp $ # # Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle # @@ -91,10 +91,10 @@ Gmsh.tab.o: Gmsh.tab.cpp ../Plugin/PluginManager.h ../Plugin/Plugin.h \ ../Mesh/Vertex.h ../Mesh/Simplex.h ../Mesh/Mesh.h ../Mesh/Matrix.h \ ../Mesh/Nurbs.h ../Mesh/Vertex.h ../Mesh/Mesh.h ../Geo/CAD.h \ ../Geo/ExtrudeParams.h ../Graphics/Draw.h ../Mesh/Create.h \ - ../Mesh/Vertex.h ../Mesh/Mesh.h ../Geo/StepGeomDatabase.h \ - ../Common/Colors.h ../Common/Options.h Parser.h OpenFile.h \ - ../Common/CommandLine.h FunctionManager.h ../Common/Timer.h \ - ../Graphics/CreateFile.h ../Common/Visibility.h ../Common/GmshVersion.h + ../Mesh/Vertex.h ../Mesh/Mesh.h ../Common/Colors.h ../Common/Options.h \ + Parser.h OpenFile.h ../Common/CommandLine.h FunctionManager.h \ + ../Common/Timer.h ../Graphics/CreateFile.h ../Common/Visibility.h \ + ../Common/GmshVersion.h # 1 "/Users/geuzaine/.gmsh/Parser//" Gmsh.yy.o: Gmsh.yy.cpp ../Common/Gmsh.h ../Common/Message.h \ ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \