/*  A Bison parser, made from GetDP.y
    by GNU Bison version 1.28  */

#define YYBISON 1  /* Identify Bison output.  */

#define	tINT	257
#define	tFLOAT	258
#define	tSTRING	259
#define	tBIGSTR	260
#define	tEND	261
#define	tDOTS	262
#define	tStrCat	263
#define	tSprintf	264
#define	tPrintf	265
#define	tRead	266
#define	tFor	267
#define	tEndFor	268
#define	tIf	269
#define	tElse	270
#define	tEndIf	271
#define	tFlag	272
#define	tHelp	273
#define	tCpu	274
#define	tCheck	275
#define	tInclude	276
#define	tConstant	277
#define	tList	278
#define	tListAlt	279
#define	tLinSpace	280
#define	tLogSpace	281
#define	tListFromFile	282
#define	tDefineConstant	283
#define	tPi	284
#define	t0D	285
#define	t1D	286
#define	t2D	287
#define	t3D	288
#define	tExp	289
#define	tLog	290
#define	tLog10	291
#define	tSqrt	292
#define	tSin	293
#define	tAsin	294
#define	tCos	295
#define	tAcos	296
#define	tTan	297
#define	tAtan	298
#define	tAtan2	299
#define	tSinh	300
#define	tCosh	301
#define	tTanh	302
#define	tFabs	303
#define	tFloor	304
#define	tCeil	305
#define	tFmod	306
#define	tModulo	307
#define	tHypot	308
#define	tSolidAngle	309
#define	tTrace	310
#define	tOrder	311
#define	tCrossProduct	312
#define	tDofValue	313
#define	tMHTransform	314
#define	tMHJacNL	315
#define	tGroup	316
#define	tDefineGroup	317
#define	tAll	318
#define	tInSupport	319
#define	tMovingBand2D	320
#define	tDefineFunction	321
#define	tConstraint	322
#define	tRegion	323
#define	tSubRegion	324
#define	tRegionRef	325
#define	tSubRegionRef	326
#define	tFilter	327
#define	tCoefficient	328
#define	tValue	329
#define	tTimeFunction	330
#define	tBranch	331
#define	tNode	332
#define	tLoop	333
#define	tNameOfResolution	334
#define	tJacobian	335
#define	tCase	336
#define	tIntegration	337
#define	tFMMIntegration	338
#define	tMatrix	339
#define	tType	340
#define	tSubType	341
#define	tCriterion	342
#define	tGeoElement	343
#define	tNumberOfPoints	344
#define	tMaxNumberOfPoints	345
#define	tNumberOfDivisions	346
#define	tMaxNumberOfDivisions	347
#define	tStoppingCriterion	348
#define	tFunctionSpace	349
#define	tName	350
#define	tBasisFunction	351
#define	tNameOfCoef	352
#define	tFunction	353
#define	tdFunction	354
#define	tSubFunction	355
#define	tSubdFunction	356
#define	tSupport	357
#define	tEntity	358
#define	tSubSpace	359
#define	tNameOfBasisFunction	360
#define	tGlobalQuantity	361
#define	tEntityType	362
#define	tEntitySubType	363
#define	tNameOfConstraint	364
#define	tFormulation	365
#define	tQuantity	366
#define	tNameOfSpace	367
#define	tIndexOfSystem	368
#define	tSymmetry	369
#define	tEquation	370
#define	tGalerkin	371
#define	tdeRham	372
#define	tGlobalTerm	373
#define	tGlobalEquation	374
#define	tDiscreteGeometry	375
#define	tDt	376
#define	tDtDof	377
#define	tDtDt	378
#define	tDtDtDof	379
#define	tJacNL	380
#define	tNeverDt	381
#define	tDtNL	382
#define	tAtAnteriorTimeStep	383
#define	tIn	384
#define	tFull_Matrix	385
#define	tResolution	386
#define	tDefineSystem	387
#define	tNameOfFormulation	388
#define	tNameOfMesh	389
#define	tFrequency	390
#define	tSolver	391
#define	tOriginSystem	392
#define	tDestinationSystem	393
#define	tOperation	394
#define	tOperationEnd	395
#define	tSetTime	396
#define	tDTime	397
#define	tSetFrequency	398
#define	tFourierTransform	399
#define	tFourierTransformJ	400
#define	tLanczos	401
#define	tEigenSolve	402
#define	tEigenSolveJac	403
#define	tPerturbation	404
#define	tUpdate	405
#define	tUpdateConstraint	406
#define	tBreak	407
#define	tEvaluate	408
#define	tTimeLoopTheta	409
#define	tTime0	410
#define	tTimeMax	411
#define	tTheta	412
#define	tTimeLoopNewmark	413
#define	tBeta	414
#define	tGamma	415
#define	tIterativeLoop	416
#define	tNbrMaxIteration	417
#define	tRelaxationFactor	418
#define	tIterativeTimeReduction	419
#define	tDivisionCoefficient	420
#define	tChangeOfState	421
#define	tChangeOfCoordinates	422
#define	tChangeOfCoordinates2	423
#define	tSystemCommand	424
#define	tGenerateFMMGroups	425
#define	tGenerateOnly	426
#define	tGenerateOnlyJac	427
#define	tSolveJac_AdaptRelax	428
#define	tSaveSolutionExtendedMH	429
#define	tSaveSolutionMHtoTime	430
#define	tInit_MovingBand2D	431
#define	tMesh_MovingBand2D	432
#define	tGenerate_MH_Moving	433
#define	tGenerate_MH_Moving_Separate	434
#define	tAdd_MH_Moving	435
#define	tGenerateGroup	436
#define	tGenerateJacGroup	437
#define	tSaveMesh	438
#define	tDeformeMesh	439
#define	tDummyFrequency	440
#define	tPostProcessing	441
#define	tNameOfSystem	442
#define	tPostOperation	443
#define	tNameOfPostProcessing	444
#define	tUsingPost	445
#define	tAppend	446
#define	tPlot	447
#define	tPrint	448
#define	tPrintGroup	449
#define	tEcho	450
#define	tWrite	451
#define	tAdapt	452
#define	tOnGlobal	453
#define	tOnRegion	454
#define	tOnElementsOf	455
#define	tOnGrid	456
#define	tOnSection	457
#define	tOnPoint	458
#define	tOnLine	459
#define	tOnPlane	460
#define	tOnBox	461
#define	tWithArgument	462
#define	tFile	463
#define	tDepth	464
#define	tDimension	465
#define	tComma	466
#define	tTimeStep	467
#define	tHarmonicToTime	468
#define	tFormat	469
#define	tHeader	470
#define	tFooter	471
#define	tSkin	472
#define	tSmoothing	473
#define	tTarget	474
#define	tSort	475
#define	tIso	476
#define	tNoNewLine	477
#define	tDecomposeInSimplex	478
#define	tChangeOfValues	479
#define	tTimeLegend	480
#define	tFrequencyLegend	481
#define	tEigenvalueLegend	482
#define	tEvaluationPoints	483
#define	tStore	484
#define	tLastTimeStepOnly	485
#define	tStr	486
#define	tDate	487
#define	tDEF	488
#define	tOR	489
#define	tAND	490
#define	tEQUAL	491
#define	tNOTEQUAL	492
#define	tAPPROXEQUAL	493
#define	tLESSOREQUAL	494
#define	tGREATEROREQUAL	495
#define	tLESSLESS	496
#define	tGREATERGREATER	497
#define	tCROSSPRODUCT	498
#define	UNARYPREC	499
#define	tSHOW	500

#line 1 "GetDP.y"

/* $Id: GetDP.tab.c,v 1.104 2006/03/10 18:09:23 geuzaine Exp $ */
/*
 * Copyright (C) 1997-2006 P. Dular, C. Geuzaine
 *
 * 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 <getdp@geuz.org>.
 *
 * Contributor(s):
 *   Ruth Sabariego
 *   Johan Gyselinck
 */

/* Modifs a faire:

   Patrick: definir des structures avec valeurs par defaut,
   e.g. BasisFunction_D = ...  (dans un fichier a part).

   Christophe: introduire les listes au sein des expressions (comme
   c'est fait dans les expression-cst), afin de gerer les vecteurs,
   tenseurs, etc., directement, et pas par l'intermediaire d'une
   fonction de creation. */

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <time.h>

#include "Data_Passive.h"
#include "Data_Active.h"
#include "Data_DefineE.h"
#include "Malloc.h"
#include "Tools.h"
#include "Init_Problem.h"
#include "Print_ProblemStructure.h"
#include "BF_Function.h"
#include "Quadrature.h"
#include "Cal_Value.h"
#include "Parser.h"
#include "Message.h"
#include "Magic.h"

void hack_fsetpos(void) ;
void hack_fsetpos_printf(void) ;

void Check_NameOfStructNotExist(char * Struct, List_T * List_L, void * data,
				int (*fcmp)(const void *a, const void *b)) ;
int  Add_Group(struct Group * Group_P, char * Name, int Flag_Plus, int Num_Index) ;
int  Add_Group_2(struct Group * Group_P, char * Name, int Flag_Add, 
		 int Flag_Plus, int Num_Index1, int Num_Index2) ;
int  Num_Group(struct Group * Group_P, char * Name, int Num_Group) ;
int  Add_Expression(struct Expression * Expression_P, char * Name, int Flag_Plus) ;
void Pro_DefineQuantityIndex(List_T * WholeQuantity_L,int DefineQuantityIndexEqu,
			     int * NbrQuantityIndex, int ** QuantityIndexTable,
			     int ** QuantityTraceGroupIndexTable) ;
void Pro_DefineQuantityIndex_1(List_T * WholeQuantity_L, int TraceGroupIndex) ;
void Help(char *topic) ;
int  Print_ListOfDouble(char *format, List_T *list, char *buffer) ;


void yyerror(char *s) ;
void vyyerror(char *fmt, ...) ;
int  yylex();

extern FILE            *yyin ;
extern long int         yylinenum ;
extern char             yyname[MAX_FILE_NAME_LENGTH], yyincludename[MAX_FILE_NAME_LENGTH] ;
extern int              yycolnum, yyincludenum ;
extern char            *yytext ;

extern int                     ErrorLevel, InteractiveLevel ;
extern struct Problem          Problem_S ;
extern struct PostProcessing   InteractivePostProcessing_S ;
extern struct PostSubOperation InteractivePostSubOperation_S ;
extern int                     InteractiveCompute ;

List_T  * ConstantTable_L, * ListDummy_L ;
List_T  * ListOfInt_L, * ListOfTwoInt_L ;
List_T  * ListOfPointer_L, * ListOfPointer2_L, * ListOfChar_L ;
List_T  * Current_BasisFunction_L, * Current_SubSpace_L, * Current_GlobalQuantity_L ;
List_T  * Current_WholeQuantity_L, * Current_System_L ;
List_T  * Operation_L ;

int      Nbr_Index, Flag_MultipleIndex, Flag1 ;
List_T  * ListOfFormulation ;
List_T  * ListOfBasisFunction, * ListOfEntityIndex ;

List_T  * ListOfInt_Lnew ;
int     * ListOfInt_P ;

char     tmpstr[1024] ;

int      i, j, k, l, FlagError ;
int      Num_BasisFunction = 1 ;
int      YaccLevel = 0 ;
int      Type_TermOperator, Type_Function, Type_SuppList ;
int      Quantity_TypeOperator, Quantity_Index ;
int      Current_DofIndexInWholeQuantity, Last_DofIndexInWholeQuantity ;
int      Current_NoDofIndexInWholeQuantity ;
int      Current_System ;
int      Nbr_Arguments ;
int      Constraint_Index ;
int      TypeOperatorDofInTrace, DefineQuantityIndexDofInTrace ;

double   d ;

time_t date_info;

FILE* File;

struct Constant  Constant_S, Constant1_S, Constant2_S ;

struct Expression             Expression_S, * Expression_P ;
struct ExpressionPerRegion      ExpressionPerRegion_S ;

struct Group                  Group_S ;

struct Constraint             Constraint_S, * Constraint_P ;
struct ConstraintPerRegion      ConstraintPerRegion_S, * ConstraintPerRegion_P ;
struct MultiConstraintPerRegion MultiConstraintPerRegion_S ;

struct JacobianMethod         JacobianMethod_S ;
struct JacobianCase             JacobianCase_S ;

struct IntegrationMethod      IntegrationMethod_S ;
struct IntegrationCase          IntegrationCase_S ;
struct Quadrature               QuadratureCase_S ;

struct FunctionSpace          FunctionSpace_S ;
struct BasisFunction            BasisFunction_S ;
void  (*FunctionDummy)();
struct GlobalBasisFunction        GlobalBasisFunction_S ;
struct SubSpace                 SubSpace_S ;
struct GlobalQuantity           GlobalQuantity_S ;
struct ConstraintInFS           ConstraintInFS_S ;

struct Formulation            Formulation_S ;
struct DefineQuantity           DefineQuantity_S ;
struct EquationTerm             EquationTerm_S ;
struct WholeQuantity            WholeQuantity_S, *WholeQuantity_P ;

struct GlobalEquationTerm       GlobalEquationTerm_S ;

struct Resolution             Resolution_S ;
struct DefineSystem             DefineSystem_S ;
struct Operation                Operation_S, * Operation_P ;
struct ChangeOfState            ChangeOfState_S ;

struct PostProcessing         PostProcessing_S ;
struct PostQuantity             PostQuantity_S ;
struct PostQuantityTerm           PostQuantityTerm_S ;

struct PostOperation          PostOperation_S ;
struct PostSubOperation         PostSubOperation_S ;

#define MAX_RECUR_LOOPS 100
static double x0, x1, step;
static int ImbricatedLoop = 0, do_next;
static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS];
static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS];
static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3];
static char *LoopControlVariablesNameTab[MAX_RECUR_LOOPS];


#line 183 "GetDP.y"
typedef union {
  char    *c ;
  int     i ;
  double  d ;
  List_T  *l ;
  struct TwoInt t ;
} YYSTYPE;
#include <stdio.h>

#ifndef __cplusplus
#ifndef __STDC__
#define const
#endif
#endif



#define	YYFINAL		2035
#define	YYFLAG		-32768
#define	YYNTBASE	269

#define YYTRANSLATE(x) ((unsigned)(x) <= 500 ? yytranslate[x] : 459)

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,   253,     2,   261,   262,   251,     2,     2,   256,
   257,   249,   247,   266,   248,   260,   250,     2,     2,     2,
     2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
     2,   243,   235,   267,     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,
   258,     2,   259,   255,     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,   264,     2,   265,   268,     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,     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,     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,     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,     3,     4,     5,     6,
     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    17,    18,    19,    20,    21,    22,    23,    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,    49,    50,    51,    52,    53,    54,    55,    56,
    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    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,   153,   154,   155,   156,
   157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
   167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
   177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
   187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
   197,   198,   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,   236,   237,
   238,   239,   240,   242,   244,   245,   246,   252,   254,   263
};

#if YYDEBUG != 0
static const short yyprhs[] = {     0,
     0,     1,     4,     5,     6,    10,    15,    20,    25,    30,
    35,    40,    45,    50,    55,    60,    62,    64,    67,    69,
    72,    76,    80,    84,    88,    92,    96,    99,   102,   106,
   110,   114,   118,   122,   126,   130,   134,   138,   142,   146,
   147,   150,   151,   154,   159,   165,   171,   177,   179,   185,
   187,   189,   190,   191,   210,   211,   218,   221,   223,   225,
   228,   230,   232,   234,   236,   237,   241,   245,   247,   249,
   253,   254,   258,   263,   265,   269,   273,   277,   283,   289,
   297,   299,   300,   304,   311,   312,   314,   319,   320,   323,
   327,   328,   331,   337,   344,   352,   354,   356,   357,   361,
   366,   371,   372,   375,   376,   380,   382,   386,   387,   390,
   392,   393,   394,   402,   406,   410,   417,   421,   425,   429,
   433,   437,   441,   445,   449,   453,   457,   461,   465,   469,
   473,   476,   479,   482,   486,   488,   492,   495,   497,   500,
   501,   507,   508,   516,   517,   529,   539,   544,   549,   550,
   558,   565,   568,   571,   574,   577,   581,   584,   588,   592,
   595,   599,   601,   605,   606,   610,   617,   618,   623,   624,
   627,   631,   636,   637,   642,   643,   646,   650,   654,   659,
   660,   665,   666,   669,   673,   677,   682,   683,   688,   689,
   692,   696,   700,   705,   706,   711,   712,   715,   719,   723,
   727,   731,   735,   739,   740,   743,   747,   749,   751,   752,
   755,   759,   764,   768,   773,   779,   780,   785,   788,   789,
   792,   796,   800,   804,   808,   812,   816,   824,   828,   832,
   836,   840,   844,   852,   860,   868,   869,   872,   876,   878,
   880,   881,   884,   888,   893,   897,   902,   907,   912,   917,
   918,   923,   926,   927,   930,   934,   938,   943,   948,   956,
   960,   964,   968,   972,   973,   974,   975,   994,   995,  1000,
  1001,  1004,  1008,  1012,  1016,  1018,  1022,  1023,  1027,  1029,
  1033,  1034,  1038,  1039,  1044,  1045,  1048,  1052,  1056,  1060,
  1061,  1066,  1069,  1070,  1073,  1077,  1081,  1085,  1089,  1090,
  1093,  1097,  1099,  1101,  1102,  1105,  1109,  1114,  1118,  1123,
  1128,  1129,  1134,  1137,  1138,  1141,  1145,  1149,  1153,  1157,
  1161,  1162,  1168,  1172,  1173,  1179,  1183,  1187,  1191,  1195,
  1199,  1200,  1204,  1205,  1208,  1211,  1214,  1219,  1224,  1229,
  1234,  1235,  1238,  1242,  1246,  1250,  1251,  1254,  1258,  1262,
  1266,  1270,  1271,  1274,  1275,  1276,  1286,  1290,  1294,  1298,
  1301,  1305,  1311,  1312,  1315,  1319,  1320,  1321,  1331,  1332,
  1334,  1336,  1338,  1340,  1342,  1344,  1346,  1351,  1355,  1356,
  1359,  1363,  1365,  1367,  1368,  1371,  1375,  1380,  1385,  1386,
  1392,  1394,  1395,  1400,  1403,  1404,  1407,  1411,  1415,  1419,
  1423,  1427,  1431,  1435,  1439,  1441,  1443,  1447,  1448,  1452,
  1454,  1458,  1459,  1463,  1464,  1467,  1471,  1475,  1480,  1485,
  1490,  1495,  1501,  1507,  1510,  1518,  1530,  1538,  1552,  1564,
  1574,  1582,  1590,  1598,  1608,  1618,  1628,  1640,  1652,  1664,
  1670,  1688,  1702,  1718,  1730,  1744,  1745,  1753,  1754,  1762,
  1770,  1782,  1788,  1794,  1804,  1814,  1824,  1830,  1836,  1848,
  1858,  1873,  1888,  1896,  1909,  1920,  1928,  1936,  1944,  1946,
  1948,  1950,  1951,  1954,  1958,  1962,  1965,  1966,  1969,  1973,
  1977,  1981,  1985,  1990,  1991,  1994,  1998,  2002,  2006,  2010,
  2014,  2019,  2020,  2023,  2027,  2031,  2035,  2039,  2044,  2045,
  2048,  2052,  2056,  2060,  2064,  2068,  2073,  2078,  2083,  2084,
  2089,  2090,  2093,  2097,  2101,  2105,  2109,  2113,  2117,  2118,
  2121,  2125,  2127,  2129,  2130,  2133,  2137,  2142,  2146,  2150,
  2155,  2156,  2161,  2164,  2167,  2168,  2171,  2175,  2180,  2181,
  2187,  2193,  2194,  2197,  2198,  2205,  2209,  2213,  2217,  2221,
  2222,  2225,  2229,  2231,  2233,  2234,  2237,  2241,  2245,  2249,
  2253,  2258,  2259,  2268,  2269,  2270,  2274,  2282,  2290,  2299,
  2311,  2318,  2319,  2330,  2332,  2336,  2343,  2345,  2347,  2349,
  2351,  2352,  2356,  2358,  2361,  2364,  2377,  2380,  2396,  2401,
  2414,  2432,  2455,  2468,  2469,  2472,  2476,  2481,  2486,  2490,
  2493,  2496,  2500,  2504,  2508,  2512,  2516,  2519,  2523,  2527,
  2531,  2535,  2539,  2543,  2547,  2553,  2556,  2559,  2563,  2573,
  2577,  2580,  2590,  2593,  2603,  2606,  2616,  2622,  2626,  2629,
  2630,  2633,  2640,  2649,  2658,  2669,  2671,  2676,  2678,  2684,
  2689,  2694,  2702,  2707,  2715,  2721,  2725,  2729,  2737,  2743,
  2752,  2753,  2757,  2763,  2769,  2771,  2773,  2775,  2777,  2779,
  2781,  2783,  2785,  2787,  2789,  2791,  2793,  2795,  2797,  2799,
  2801,  2803,  2805,  2807,  2809,  2811,  2813,  2817,  2820,  2823,
  2827,  2831,  2835,  2839,  2843,  2847,  2851,  2855,  2859,  2863,
  2867,  2871,  2875,  2879,  2884,  2889,  2894,  2899,  2904,  2909,
  2914,  2919,  2924,  2929,  2936,  2941,  2946,  2951,  2956,  2961,
  2966,  2973,  2980,  2987,  2990,  2992,  2994,  2996,  2998,  3000,
  3002,  3004,  3006,  3007,  3009,  3011,  3015,  3017,  3019,  3023,
  3027,  3031,  3037,  3041,  3046,  3051,  3058,  3067,  3076,  3082,
  3088,  3090,  3092,  3094,  3096,  3098,  3103,  3110,  3112
};

static const short yyrhs[] = {    -1,
   270,   271,     0,     0,     0,   271,   272,   273,     0,    62,
   264,   276,   265,     0,    99,   264,   297,   265,     0,    68,
   264,   332,   265,     0,    81,   264,   317,   265,     0,    83,
   264,   323,   265,     0,    95,   264,   339,   265,     0,   111,
   264,   362,   265,     0,   132,   264,   388,   265,     0,   187,
   264,   418,   265,     0,   189,   264,   429,   265,     0,   433,
     0,   447,     0,    22,   457,     0,   274,     0,    19,     7,
     0,    19,   194,     7,     0,    19,    21,     7,     0,    19,
    36,     7,     0,    19,    20,     7,     0,    19,    19,     7,
     0,    19,     5,     7,     0,    20,     7,     0,    21,     7,
     0,    21,    62,     7,     0,    21,    99,     7,     0,    21,
    68,     7,     0,    21,    81,     7,     0,    21,    83,     7,
     0,    21,    95,     7,     0,    21,   111,     7,     0,    21,
   132,     7,     0,    21,   187,     7,     0,    21,   189,     7,
     0,    21,     3,     7,     0,     0,   275,   437,     0,     0,
   276,   277,     0,   456,   234,   281,     7,     0,     5,   296,
   234,   281,     7,     0,     5,   294,   234,   281,     7,     0,
    63,   258,   292,   259,     7,     0,   278,     0,   456,   247,
   234,   281,     7,     0,   447,     0,   446,     0,     0,     0,
   456,   258,   450,   259,   234,    66,   279,   258,   261,   289,
   280,   266,   261,   289,   266,   450,   259,     7,     0,     0,
   285,   258,   286,   282,   287,   259,     0,   261,   289,     0,
   281,     0,   456,     0,   456,   295,     0,    69,     0,     5,
     0,   289,     0,    64,     0,     0,   293,   288,   289,     0,
   293,    65,   456,     0,     5,     0,   291,     0,   264,   290,
   265,     0,     0,   290,   293,   291,     0,   290,   293,   248,
   291,     0,     3,     0,   256,   450,   257,     0,   267,   453,
   267,     0,     3,     8,   450,     0,   256,   450,   257,     8,
   450,     0,     3,     8,   450,     8,   450,     0,   256,   450,
   257,     8,   450,     8,   450,     0,   456,     0,     0,   292,
   293,     5,     0,   292,   293,     5,   264,   450,   265,     0,
     0,   266,     0,   264,   261,   450,   265,     0,     0,   264,
   265,     0,   264,   450,   265,     0,     0,   297,   298,     0,
    67,   258,   299,   259,     7,     0,     5,   258,   259,   234,
   300,     7,     0,     5,   258,   283,   259,   234,   300,     7,
     0,   447,     0,   446,     0,     0,   299,   293,     5,     0,
    23,   258,   450,   259,     0,    99,   258,     5,   259,     0,
     0,   301,   304,     0,     0,   264,   303,   265,     0,   300,
     0,   303,   266,   300,     0,     0,   305,   306,     0,   309,
     0,     0,     0,   306,   235,   307,   306,     8,   308,   306,
     0,   306,   249,   306,     0,   306,   252,   306,     0,    58,
   258,   306,   266,   306,   259,     0,   306,   250,   306,     0,
   306,   247,   306,     0,   306,   248,   306,     0,   306,   251,
   306,     0,   306,   255,   306,     0,   306,   241,   306,     0,
   306,   243,   306,     0,   306,   242,   306,     0,   306,   244,
   306,     0,   306,   238,   306,     0,   306,   239,   306,     0,
   306,   240,   306,     0,   306,   237,   306,     0,   306,   236,
   306,     0,   248,   306,     0,   247,   306,     0,   253,   306,
     0,   256,   306,   257,     0,   451,     0,   449,   314,   316,
     0,     5,   387,     0,   387,     0,   387,   314,     0,     0,
   122,   310,   258,   304,   259,     0,     0,   129,   311,   258,
   304,   266,     3,   259,     0,     0,    60,   258,     5,   258,
   312,   304,   259,   259,   264,   450,   265,     0,    61,   258,
     5,   259,   264,   450,   266,   450,   265,     0,    55,   258,
   387,   259,     0,    57,   258,   387,   259,     0,     0,    56,
   313,   258,   304,   266,   283,   259,     0,   241,     5,   243,
   258,   304,   259,     0,   262,     5,     0,   262,   213,     0,
   262,   143,     0,   262,     3,     0,   309,   261,     3,     0,
   261,     3,     0,   309,   263,   450,     0,   258,   260,   259,
     0,   258,   259,     0,   258,   315,   259,     0,   306,     0,
   315,   266,   306,     0,     0,   264,   453,   265,     0,   264,
    69,   258,   283,   259,   265,     0,     0,   317,   264,   318,
   265,     0,     0,   318,   319,     0,    96,     5,     7,     0,
    82,   264,   320,   265,     0,     0,   320,   264,   321,   265,
     0,     0,   321,   322,     0,    69,   283,     7,     0,    69,
    64,     7,     0,    81,     5,   316,     7,     0,     0,   323,
   264,   324,   265,     0,     0,   324,   325,     0,    96,     5,
     7,     0,    88,   300,     7,     0,    82,   264,   326,   265,
     0,     0,   326,   264,   327,   265,     0,     0,   327,   328,
     0,    86,     5,     7,     0,    87,     5,     7,     0,    82,
   264,   329,   265,     0,     0,   329,   264,   330,   265,     0,
     0,   330,   331,     0,    89,     5,     7,     0,    90,   450,
     7,     0,    91,   450,     7,     0,    92,   450,     7,     0,
    93,   450,     7,     0,    94,   450,     7,     0,     0,   332,
   333,     0,   264,   334,   265,     0,   447,     0,   446,     0,
     0,   334,   335,     0,    96,   456,     7,     0,    96,     5,
   294,     7,     0,    86,     5,     7,     0,    82,   264,   336,
   265,     0,    82,     5,   264,   336,   265,     0,     0,   336,
   264,   337,   265,     0,   336,   446,     0,     0,   337,   338,
     0,    86,     5,     7,     0,    69,   283,     7,     0,    70,
   283,     7,     0,    76,   300,     7,     0,    75,   300,     7,
     0,    80,   456,     7,     0,    77,   264,   451,   293,   451,
   265,     7,     0,    71,   283,     7,     0,    72,   283,     7,
     0,    99,   300,     7,     0,    74,   300,     7,     0,    73,
   300,     7,     0,    99,   258,   300,   266,   300,   259,     7,
     0,    74,   258,   300,   266,   300,   259,     7,     0,    73,
   258,   300,   266,   300,   259,     7,     0,     0,   339,   340,
     0,   264,   341,   265,     0,   447,     0,   446,     0,     0,
   341,   342,     0,    96,   456,     7,     0,    96,     5,   294,
     7,     0,    86,     5,     7,     0,    97,   264,   343,   265,
     0,   105,   264,   349,   265,     0,   107,   264,   356,   265,
     0,    68,   264,   359,   265,     0,     0,   343,   264,   344,
   265,     0,   343,   446,     0,     0,   344,   345,     0,    96,
     5,     7,     0,    98,     5,     7,     0,    98,     5,   294,
     7,     0,    99,     5,   346,     7,     0,   100,   264,     5,
   293,     5,   265,     7,     0,   101,   302,     7,     0,   102,
   302,     7,     0,   103,   283,     7,     0,   104,   283,     7,
     0,     0,     0,     0,   264,   112,     5,     7,   111,     5,
   294,     7,   347,    62,   284,     7,   348,   132,     5,   295,
     7,   265,     0,     0,   349,   264,   350,   265,     0,     0,
   350,   351,     0,    96,     5,     7,     0,   106,   352,     7,
     0,    98,   354,     7,     0,     5,     0,   264,   353,   265,
     0,     0,   353,   293,     5,     0,     5,     0,   264,   355,
   265,     0,     0,   355,   293,     5,     0,     0,   356,   264,
   357,   265,     0,     0,   357,   358,     0,    96,   456,     7,
     0,    86,     5,     7,     0,    98,     5,     7,     0,     0,
   359,   264,   360,   265,     0,   359,   446,     0,     0,   360,
   361,     0,    98,     5,     7,     0,   108,   285,     7,     0,
   109,   288,     7,     0,   110,   456,     7,     0,     0,   362,
   363,     0,   264,   364,   265,     0,   447,     0,   446,     0,
     0,   364,   365,     0,    96,   456,     7,     0,    96,     5,
   294,     7,     0,    86,     5,     7,     0,   112,   264,   366,
   265,     0,   116,   264,   372,   265,     0,     0,   366,   264,
   367,   265,     0,   366,   446,     0,     0,   367,   368,     0,
    96,   456,     7,     0,    86,   107,     7,     0,    86,   117,
     7,     0,    86,     5,     7,     0,   186,   452,     7,     0,
     0,   113,   456,   369,   371,     7,     0,   114,     3,     7,
     0,     0,   258,   370,   304,   259,     7,     0,   130,   283,
     7,     0,    83,     5,     7,     0,    84,     5,     7,     0,
    81,     5,     7,     0,   115,     3,     7,     0,     0,   258,
   456,   259,     0,     0,   372,   373,     0,   372,   447,     0,
   372,   446,     0,   117,   264,   378,   265,     0,   118,   264,
   378,   265,     0,   119,   264,   382,   265,     0,   120,   264,
   374,   265,     0,     0,   374,   375,     0,    86,     5,     7,
     0,   110,     5,     7,     0,   264,   376,   265,     0,     0,
   376,   377,     0,    78,   387,     7,     0,    79,   387,     7,
     0,   116,   387,     7,     0,   130,   283,     7,     0,     0,
   378,   379,     0,     0,     0,   386,   258,   380,   304,   381,
   266,   304,   259,     7,     0,   130,   283,     7,     0,    81,
     5,     7,     0,    83,     5,     7,     0,   131,     7,     0,
    84,     5,     7,     0,    85,   258,     3,   259,     7,     0,
     0,   382,   383,     0,   130,   283,     7,     0,     0,     0,
   386,   258,   384,   304,   385,   266,   387,   259,     7,     0,
     0,   122,     0,   123,     0,   124,     0,   125,     0,   126,
     0,   127,     0,   128,     0,   264,     5,   456,   265,     0,
   264,   456,   265,     0,     0,   388,   389,     0,   264,   390,
   265,     0,   447,     0,   446,     0,     0,   390,   391,     0,
    96,   456,     7,     0,    96,     5,   294,     7,     0,   133,
   264,   393,   265,     0,     0,   140,   392,   264,   400,   265,
     0,   446,     0,     0,   393,   264,   394,   265,     0,   393,
   446,     0,     0,   394,   395,     0,    96,   456,     7,     0,
    86,     5,     7,     0,   134,   396,     7,     0,   135,   457,
     7,     0,   138,   398,     7,     0,   139,   456,     7,     0,
   136,   452,     7,     0,   137,   457,     7,     0,   446,     0,
   456,     0,   264,   397,   265,     0,     0,   397,   293,   456,
     0,   456,     0,   264,   399,   265,     0,     0,   399,   293,
   456,     0,     0,   400,   401,     0,     5,   456,     7,     0,
   142,   300,     7,     0,   155,   264,   407,   265,     0,   159,
   264,   409,   265,     0,   162,   264,   411,   265,     0,   165,
   264,   413,   265,     0,     5,   258,   456,   259,     7,     0,
   142,   258,   300,   259,     7,     0,   153,     7,     0,    15,
   258,   300,   259,   264,   400,   265,     0,    15,   258,   300,
   259,   264,   400,   265,    16,   264,   400,   265,     0,   144,
   258,   456,   266,   300,   259,     7,     0,   171,   258,   456,
   266,   300,   266,   300,   266,   300,   266,   300,   259,     7,
     0,   171,   258,   456,   266,   300,   266,   300,   266,   300,
   259,     7,     0,   171,   258,   456,   266,   300,   266,   300,
   259,     7,     0,   172,   258,   456,   266,   452,   259,     7,
     0,   173,   258,   456,   266,   452,   259,     7,     0,   151,
   258,   456,   266,   300,   259,     7,     0,   152,   258,   456,
   266,   283,   266,   456,   259,     7,     0,   145,   258,   456,
   266,   456,   266,   452,   259,     7,     0,   146,   258,   456,
   266,   456,   266,   450,   259,     7,     0,   147,   258,   456,
   266,   450,   266,   452,   266,   450,   259,     7,     0,   148,
   258,   456,   266,   450,   266,   450,   266,   450,   259,     7,
     0,   149,   258,   456,   266,   450,   266,   450,   266,   450,
   259,     7,     0,   154,   258,   300,   259,     7,     0,   150,
   258,   456,   266,   456,   266,   456,   266,   450,   266,   452,
   266,   450,   266,   450,   259,     7,     0,   155,   258,   450,
   266,   450,   266,   300,   266,   300,   259,   264,   400,   265,
     0,   159,   258,   450,   266,   450,   266,   300,   266,   450,
   266,   450,   259,   264,   400,   265,     0,   162,   258,   450,
   266,   450,   266,   300,   259,   264,   400,   265,     0,   162,
   258,   450,   266,   450,   266,   300,   266,   450,   259,   264,
   400,   265,     0,     0,   194,   402,   258,   404,   405,   259,
     7,     0,     0,   197,   403,   258,   404,   405,   259,     7,
     0,   168,   258,   283,   266,   300,   259,     7,     0,   168,
   258,   283,   266,   300,   266,   450,   266,   300,   259,     7,
     0,   189,   258,   456,   259,     7,     0,   170,   258,   457,
   259,     7,     0,   174,   258,   456,   266,   452,   266,   450,
   259,     7,     0,   175,   258,   456,   266,   450,   266,   457,
   259,     7,     0,   176,   258,   456,   266,   452,   266,   457,
   259,     7,     0,   177,   264,   456,   265,     7,     0,   178,
   264,   456,   265,     7,     0,   184,   264,   456,   266,   283,
   266,   457,   266,   300,   265,     7,     0,   184,   264,   456,
   266,   283,   266,   457,   265,     7,     0,   179,   258,   456,
   266,   456,   266,   450,   266,   450,   259,   264,   400,   265,
     7,     0,   180,   258,   456,   266,   456,   266,   450,   266,
   450,   259,   264,   400,   265,     7,     0,   181,   258,   456,
   266,   450,   259,     7,     0,   185,   264,     5,   266,     5,
   266,   135,   457,   266,     4,   265,     7,     0,   185,   264,
     5,   266,     5,   266,   135,   457,   265,     7,     0,   185,
   264,     5,   266,     5,   265,     7,     0,   182,   258,   456,
   266,   456,   259,     7,     0,   183,   258,   456,   266,   456,
   259,     7,     0,   446,     0,   302,     0,   456,     0,     0,
   405,   406,     0,   266,   209,   457,     0,   266,   213,   452,
     0,   266,   452,     0,     0,   407,   408,     0,   156,   450,
     7,     0,   157,   450,     7,     0,   143,   300,     7,     0,
   158,   300,     7,     0,   140,   264,   400,   265,     0,     0,
   409,   410,     0,   156,   450,     7,     0,   157,   450,     7,
     0,   143,   300,     7,     0,   160,   450,     7,     0,   161,
   450,     7,     0,   140,   264,   400,   265,     0,     0,   411,
   412,     0,   163,   450,     7,     0,    88,   450,     7,     0,
   164,   300,     7,     0,    18,   450,     7,     0,   140,   264,
   400,   265,     0,     0,   413,   414,     0,   163,   450,     7,
     0,   166,   450,     7,     0,    88,   450,     7,     0,    18,
   450,     7,     0,   133,   456,     7,     0,   167,   264,   415,
   265,     0,   140,   264,   400,   265,     0,   141,   264,   400,
   265,     0,     0,   415,   264,   416,   265,     0,     0,   416,
   417,     0,    86,     5,     7,     0,   112,     5,     7,     0,
   130,   283,     7,     0,    88,   450,     7,     0,    99,   300,
     7,     0,    18,     5,     7,     0,     0,   418,   419,     0,
   264,   420,   265,     0,   447,     0,   446,     0,     0,   420,
   421,     0,    96,   456,     7,     0,    96,     5,   294,     7,
     0,   134,   456,     7,     0,   188,   456,     7,     0,   112,
   264,   422,   265,     0,     0,   422,   264,   423,   265,     0,
   422,   447,     0,   422,   446,     0,     0,   423,   424,     0,
    96,   456,     7,     0,    75,   264,   425,   265,     0,     0,
   425,   117,   264,   426,   265,     0,   425,     5,   264,   426,
   265,     0,     0,   426,   427,     0,     0,   386,   258,   428,
   304,   259,     7,     0,    86,     5,     7,     0,   130,   283,
     7,     0,    81,     5,     7,     0,    83,     5,     7,     0,
     0,   429,   430,     0,   264,   431,   265,     0,   447,     0,
   446,     0,     0,   431,   432,     0,    96,   456,     7,     0,
   190,   456,     7,     0,   215,     5,     7,     0,   192,   457,
     7,     0,   140,   264,   435,   265,     0,     0,   189,   456,
   191,   456,   434,   264,   435,   265,     0,     0,     0,   435,
   436,   437,     0,   193,   258,   439,   442,   443,   259,     7,
     0,   194,   258,   439,   442,   443,   259,     7,     0,   194,
   258,     6,   266,   300,   443,   259,     7,     0,   194,   258,
     6,   266,   232,   258,   457,   259,   443,   259,     7,     0,
   196,   258,     6,   443,   259,     7,     0,     0,   195,   258,
   283,   438,   266,   130,   283,   443,   259,     7,     0,   446,
     0,   456,   441,   266,     0,   456,   441,   440,     5,   441,
   266,     0,   249,     0,   250,     0,   247,     0,   248,     0,
     0,   258,   283,   259,     0,   199,     0,   200,   283,     0,
   201,   283,     0,   203,   264,   264,   453,   265,   264,   453,
   265,   264,   453,   265,   265,     0,   202,   283,     0,   202,
   264,   300,   266,   300,   266,   300,   265,   264,   452,   266,
   452,   266,   452,   265,     0,   204,   264,   453,   265,     0,
   205,   264,   264,   453,   265,   264,   453,   265,   265,   264,
   450,   265,     0,   206,   264,   264,   453,   265,   264,   453,
   265,   264,   453,   265,   265,   264,   450,   266,   450,   265,
     0,   207,   264,   264,   453,   265,   264,   453,   265,   264,
   453,   265,   264,   453,   265,   265,   264,   450,   266,   450,
   266,   450,   265,     0,   200,   283,   208,     5,   264,   450,
   266,   450,   265,   264,   450,   265,     0,     0,   443,   444,
     0,   266,   209,   457,     0,   266,   209,   243,   457,     0,
   266,   209,   246,   457,     0,   266,   210,   450,     0,   266,
   218,     0,   266,   219,     0,   266,   214,   450,     0,   266,
   215,     5,     0,   266,   216,   445,     0,   266,   217,   445,
     0,   266,   215,   445,     0,   266,   212,     0,   266,   211,
   450,     0,   266,   213,   452,     0,   266,   198,     5,     0,
   266,   221,     5,     0,   266,   220,   450,     0,   266,    75,
   452,     0,   266,   222,   450,     0,   266,   222,   264,   453,
   265,     0,   266,   223,     0,   266,   224,     0,   266,   136,
   452,     0,   266,   168,   264,   300,   266,   300,   266,   300,
   265,     0,   266,   225,   302,     0,   266,   226,     0,   266,
   226,   264,   450,   266,   450,   266,   450,   265,     0,   266,
   227,     0,   266,   227,   264,   450,   266,   450,   266,   450,
   265,     0,   266,   228,     0,   266,   228,   264,   450,   266,
   450,   266,   450,   265,     0,   266,   229,   264,   453,   265,
     0,   266,   230,     3,     0,   266,   231,     0,     0,   445,
     6,     0,    13,   256,   450,     8,   450,   257,     0,    13,
   256,   450,     8,   450,     8,   450,   257,     0,    13,     5,
   130,   264,   450,     8,   450,   265,     0,    13,     5,   130,
   264,   450,     8,   450,     8,   450,   265,     0,    14,     0,
    15,   256,   450,   257,     0,    17,     0,    29,   258,   448,
   259,     7,     0,   456,   234,   452,     7,     0,   456,   234,
     6,     7,     0,   456,   234,   232,   258,   457,   259,     7,
     0,   456,   234,   458,     7,     0,   456,   234,    28,   258,
   457,   259,     7,     0,    11,   256,     6,   257,     7,     0,
    11,   456,     7,     0,    11,   261,     7,     0,    11,   256,
     6,   266,   453,   257,     7,     0,    12,   256,   456,   257,
     7,     0,    12,   256,   456,   257,   258,   450,   259,     7,
     0,     0,   448,   293,     5,     0,   448,   293,     5,   234,
   450,     0,   448,   293,     5,   234,     6,     0,    35,     0,
    36,     0,    37,     0,    38,     0,    39,     0,    40,     0,
    41,     0,    42,     0,    43,     0,    44,     0,    45,     0,
    46,     0,    47,     0,    48,     0,    49,     0,    50,     0,
    51,     0,    52,     0,    53,     0,    54,     0,   456,     0,
   451,     0,   256,   450,   257,     0,   248,   450,     0,   253,
   450,     0,   450,   248,   450,     0,   450,   247,   450,     0,
   450,   249,   450,     0,   450,   250,   450,     0,   450,   251,
   450,     0,   450,   255,   450,     0,   450,   241,   450,     0,
   450,   243,   450,     0,   450,   242,   450,     0,   450,   244,
   450,     0,   450,   238,   450,     0,   450,   239,   450,     0,
   450,   237,   450,     0,   450,   236,   450,     0,    35,   258,
   450,   259,     0,    36,   258,   450,   259,     0,    37,   258,
   450,   259,     0,    38,   258,   450,   259,     0,    39,   258,
   450,   259,     0,    40,   258,   450,   259,     0,    41,   258,
   450,   259,     0,    42,   258,   450,   259,     0,    43,   258,
   450,   259,     0,    44,   258,   450,   259,     0,    45,   258,
   450,   266,   450,   259,     0,    46,   258,   450,   259,     0,
    47,   258,   450,   259,     0,    48,   258,   450,   259,     0,
    49,   258,   450,   259,     0,    50,   258,   450,   259,     0,
    51,   258,   450,   259,     0,    52,   258,   450,   266,   450,
   259,     0,    53,   258,   450,   266,   450,   259,     0,    54,
   258,   450,   266,   450,   259,     0,   450,   261,     0,     4,
     0,     3,     0,    30,     0,    31,     0,    32,     0,    33,
     0,    34,     0,   456,     0,     0,   450,     0,   454,     0,
   264,   453,   265,     0,   450,     0,   454,     0,   453,   266,
   450,     0,   453,   266,   454,     0,   450,     8,   450,     0,
   450,     8,   450,     8,   450,     0,     5,   264,   265,     0,
     5,   264,   453,   265,     0,    24,   258,     5,   259,     0,
    25,   258,     5,   266,     5,   259,     0,    26,   258,   450,
   266,   450,   266,   450,   259,     0,    27,   258,   450,   266,
   450,   266,   450,   259,     0,     5,   268,   264,   450,   265,
     0,   455,   268,   264,   450,   265,     0,     5,     0,   455,
     0,     6,     0,   456,     0,   458,     0,    10,   256,   457,
   257,     0,    10,   256,   457,   266,   453,   257,     0,   233,
     0,     9,   258,   457,   266,   457,   259,     0
};

#endif

#if YYDEBUG != 0
static const short yyrline[] = { 0,
   339,   356,   376,   379,   382,   385,   388,   389,   390,   391,
   392,   393,   394,   395,   396,   398,   400,   402,   407,   416,
   419,   421,   423,   425,   427,   429,   431,   433,   435,   437,
   439,   441,   443,   445,   447,   449,   451,   453,   455,   458,
   466,   480,   483,   487,   492,   498,   504,   506,   508,   511,
   513,   516,   528,   535,   543,   554,   562,   571,   578,   593,
   623,   628,   639,   642,   646,   651,   654,   670,   683,   692,
   697,   704,   711,   720,   728,   735,   746,   755,   763,   777,
   790,   825,   829,   839,   856,   856,   859,   865,   868,   872,
   881,   884,   887,   891,   911,   955,   957,   961,   964,   981,
   990,   997,  1000,  1005,  1011,  1015,  1020,  1025,  1031,  1038,
  1042,  1055,  1070,  1084,  1090,  1096,  1102,  1108,  1114,  1120,
  1126,  1132,  1138,  1144,  1150,  1156,  1162,  1168,  1174,  1180,
  1187,  1193,  1195,  1204,  1208,  1214,  1288,  1322,  1331,  1343,
  1345,  1357,  1359,  1371,  1373,  1387,  1399,  1405,  1411,  1413,
  1442,  1468,  1481,  1487,  1494,  1500,  1507,  1514,  1524,  1527,
  1528,  1531,  1534,  1537,  1542,  1545,  1558,  1565,  1570,  1575,
  1579,  1586,  1591,  1596,  1601,  1607,  1611,  1616,  1619,  1655,
  1663,  1668,  1677,  1681,  1690,  1693,  1698,  1703,  1708,  1716,
  1720,  1732,  1742,  1747,  1752,  1757,  1769,  1773,  1823,  1826,
  1829,  1832,  1835,  1844,  1851,  1854,  1861,  1863,  1866,  1875,
  1879,  1888,  1896,  1905,  1908,  1924,  1931,  1936,  1943,  1953,
  1957,  1969,  1974,  1980,  1985,  1993,  2001,  2010,  2028,  2037,
  2045,  2053,  2063,  2073,  2083,  2101,  2109,  2112,  2119,  2121,
  2125,  2133,  2137,  2146,  2154,  2163,  2166,  2169,  2172,  2177,
  2185,  2202,  2209,  2226,  2230,  2235,  2240,  2245,  2259,  2279,
  2284,  2289,  2294,  2323,  2327,  2332,  2342,  2404,  2412,  2419,
  2426,  2430,  2439,  2442,  2447,  2465,  2470,  2474,  2491,  2505,
  2510,  2517,  2530,  2538,  2546,  2554,  2558,  2567,  2578,  2590,
  2597,  2634,  2641,  2653,  2657,  2692,  2695,  2698,  2711,  2718,
  2721,  2728,  2730,  2734,  2741,  2745,  2754,  2762,  2772,  2774,
  2779,  2785,  2790,  2794,  2813,  2817,  2822,  2826,  2829,  2839,
  2843,  2851,  2875,  2880,  2886,  3197,  3202,  3211,  3220,  3229,
  3234,  3237,  3275,  3282,  3287,  3292,  3299,  3304,  3307,  3310,
  3319,  3327,  3330,  3342,  3352,  3364,  3373,  3376,  3380,  3382,
  3384,  3390,  3411,  3415,  3426,  3504,  3550,  3555,  3564,  3573,
  3578,  3587,  3596,  3613,  3617,  3632,  3641,  3695,  3711,  3714,
  3715,  3716,  3717,  3718,  3719,  3720,  3724,  3747,  3769,  3776,
  3779,  3786,  3788,  3792,  3800,  3804,  3813,  3821,  3824,  3826,
  3829,  3833,  3839,  3844,  3852,  3868,  3872,  3877,  3886,  3889,
  3894,  3899,  3904,  3909,  3914,  3918,  3929,  3934,  3939,  3949,
  3961,  3965,  3970,  3981,  3990,  3999,  4025,  4032,  4038,  4044,
  4050,  4058,  4080,  4087,  4093,  4104,  4115,  4128,  4143,  4158,
  4173,  4193,  4214,  4226,  4246,  4263,  4282,  4303,  4317,  4331,
  4338,  4372,  4385,  4399,  4412,  4425,  4432,  4434,  4441,  4443,
  4454,  4466,  4476,  4484,  4497,  4510,  4524,  4534,  4544,  4558,
  4572,  4590,  4609,  4620,  4635,  4650,  4665,  4680,  4695,  4705,
  4711,  4721,  4727,  4730,  4734,  4744,  4757,  4769,  4773,  4779,
  4783,  4787,  4792,  4801,  4814,  4818,  4824,  4828,  4832,  4836,
  4841,  4850,  4862,  4865,  4871,  4875,  4879,  4883,  4892,  4907,
  4910,  4916,  4920,  4924,  4929,  4939,  4945,  4951,  4960,  4964,
  4968,  4982,  4985,  4997,  5026,  5029,  5032,  5040,  5056,  5064,
  5067,  5074,  5076,  5079,  5089,  5092,  5100,  5108,  5121,  5126,
  5131,  5135,  5138,  5140,  5145,  5152,  5156,  5160,  5165,  5171,
  5177,  5190,  5201,  5204,  5212,  5240,  5251,  5256,  5265,  5281,
  5289,  5292,  5297,  5299,  5302,  5311,  5314,  5322,  5334,  5345,
  5350,  5355,  5373,  5382,  5386,  5391,  5401,  5408,  5413,  5422,
  5431,  5440,  5446,  5451,  5458,  5472,  5494,  5497,  5498,  5499,
  5502,  5506,  5510,  5518,  5525,  5532,  5556,  5563,  5575,  5588,
  5608,  5634,  5667,  5687,  5720,  5723,  5731,  5738,  5745,  5749,
  5753,  5757,  5761,  5771,  5776,  5781,  5801,  5805,  5812,  5822,
  5831,  5840,  5847,  5855,  5859,  5868,  5872,  5876,  5884,  5890,
  5894,  5902,  5909,  5917,  5924,  5932,  5939,  5947,  5951,  5959,
  5966,  6014,  6031,  6047,  6067,  6087,  6125,  6129,  6140,  6144,
  6159,  6165,  6171,  6177,  6188,  6193,  6209,  6214,  6226,  6236,
  6252,  6255,  6261,  6267,  6278,  6280,  6281,  6282,  6283,  6284,
  6285,  6286,  6287,  6288,  6289,  6290,  6291,  6292,  6293,  6294,
  6295,  6296,  6297,  6298,  6299,  6302,  6304,  6305,  6306,  6307,
  6308,  6309,  6310,  6311,  6312,  6313,  6314,  6315,  6316,  6317,
  6318,  6319,  6320,  6321,  6322,  6323,  6324,  6325,  6326,  6327,
  6328,  6329,  6330,  6331,  6332,  6333,  6334,  6335,  6336,  6337,
  6338,  6339,  6340,  6344,  6347,  6350,  6351,  6352,  6353,  6354,
  6355,  6356,  6372,  6377,  6383,  6386,  6391,  6399,  6402,  6405,
  6415,  6423,  6434,  6450,  6472,  6487,  6525,  6533,  6543,  6553,
  6562,  6567,  6572,  6577,  6592,  6597,  6602,  6621,  6630
};
#endif


#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)

static const char * const yytname[] = {   "$","error","$undefined.","tINT","tFLOAT",
"tSTRING","tBIGSTR","tEND","tDOTS","tStrCat","tSprintf","tPrintf","tRead","tFor",
"tEndFor","tIf","tElse","tEndIf","tFlag","tHelp","tCpu","tCheck","tInclude",
"tConstant","tList","tListAlt","tLinSpace","tLogSpace","tListFromFile","tDefineConstant",
"tPi","t0D","t1D","t2D","t3D","tExp","tLog","tLog10","tSqrt","tSin","tAsin",
"tCos","tAcos","tTan","tAtan","tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor",
"tCeil","tFmod","tModulo","tHypot","tSolidAngle","tTrace","tOrder","tCrossProduct",
"tDofValue","tMHTransform","tMHJacNL","tGroup","tDefineGroup","tAll","tInSupport",
"tMovingBand2D","tDefineFunction","tConstraint","tRegion","tSubRegion","tRegionRef",
"tSubRegionRef","tFilter","tCoefficient","tValue","tTimeFunction","tBranch",
"tNode","tLoop","tNameOfResolution","tJacobian","tCase","tIntegration","tFMMIntegration",
"tMatrix","tType","tSubType","tCriterion","tGeoElement","tNumberOfPoints","tMaxNumberOfPoints",
"tNumberOfDivisions","tMaxNumberOfDivisions","tStoppingCriterion","tFunctionSpace",
"tName","tBasisFunction","tNameOfCoef","tFunction","tdFunction","tSubFunction",
"tSubdFunction","tSupport","tEntity","tSubSpace","tNameOfBasisFunction","tGlobalQuantity",
"tEntityType","tEntitySubType","tNameOfConstraint","tFormulation","tQuantity",
"tNameOfSpace","tIndexOfSystem","tSymmetry","tEquation","tGalerkin","tdeRham",
"tGlobalTerm","tGlobalEquation","tDiscreteGeometry","tDt","tDtDof","tDtDt","tDtDtDof",
"tJacNL","tNeverDt","tDtNL","tAtAnteriorTimeStep","tIn","tFull_Matrix","tResolution",
"tDefineSystem","tNameOfFormulation","tNameOfMesh","tFrequency","tSolver","tOriginSystem",
"tDestinationSystem","tOperation","tOperationEnd","tSetTime","tDTime","tSetFrequency",
"tFourierTransform","tFourierTransformJ","tLanczos","tEigenSolve","tEigenSolveJac",
"tPerturbation","tUpdate","tUpdateConstraint","tBreak","tEvaluate","tTimeLoopTheta",
"tTime0","tTimeMax","tTheta","tTimeLoopNewmark","tBeta","tGamma","tIterativeLoop",
"tNbrMaxIteration","tRelaxationFactor","tIterativeTimeReduction","tDivisionCoefficient",
"tChangeOfState","tChangeOfCoordinates","tChangeOfCoordinates2","tSystemCommand",
"tGenerateFMMGroups","tGenerateOnly","tGenerateOnlyJac","tSolveJac_AdaptRelax",
"tSaveSolutionExtendedMH","tSaveSolutionMHtoTime","tInit_MovingBand2D","tMesh_MovingBand2D",
"tGenerate_MH_Moving","tGenerate_MH_Moving_Separate","tAdd_MH_Moving","tGenerateGroup",
"tGenerateJacGroup","tSaveMesh","tDeformeMesh","tDummyFrequency","tPostProcessing",
"tNameOfSystem","tPostOperation","tNameOfPostProcessing","tUsingPost","tAppend",
"tPlot","tPrint","tPrintGroup","tEcho","tWrite","tAdapt","tOnGlobal","tOnRegion",
"tOnElementsOf","tOnGrid","tOnSection","tOnPoint","tOnLine","tOnPlane","tOnBox",
"tWithArgument","tFile","tDepth","tDimension","tComma","tTimeStep","tHarmonicToTime",
"tFormat","tHeader","tFooter","tSkin","tSmoothing","tTarget","tSort","tIso",
"tNoNewLine","tDecomposeInSimplex","tChangeOfValues","tTimeLegend","tFrequencyLegend",
"tEigenvalueLegend","tEvaluationPoints","tStore","tLastTimeStepOnly","tStr",
"tDate","tDEF","'?'","tOR","tAND","tEQUAL","tNOTEQUAL","tAPPROXEQUAL","'<'",
"tLESSOREQUAL","'>'","tGREATEROREQUAL","tLESSLESS","tGREATERGREATER","'+'","'-'",
"'*'","'/'","'%'","tCROSSPRODUCT","'!'","UNARYPREC","'^'","'('","')'","'['",
"']'","'.'","'#'","'$'","tSHOW","'{'","'}'","','","'@'","'~'","Stats","@1","ProblemDefinitions",
"@2","ProblemDefinition","Interactive","@3","Groups","Group","MovingBand2DGroup",
"@4","@5","ReducedGroupRHS","@6","GroupRHS","GroupRHS_MultipleIndex","FunctionForGroup",
"ListOfRegionOrAll","SuppListOfRegion","SuppListTypeForGroup","ListOfRegion",
"RecursiveListOfRegion","IRegion","DefineGroups","Comma","DefineDimension","MultipleIndex",
"Index","Functions","Function","DefineFunctions","Expression","@7","ListOfExpression",
"RecursiveListOfExpression","WholeQuantityExpression","@8","WholeQuantity","@9",
"@10","WholeQuantity_Single","@11","@12","@13","@14","ArgumentsForFunction",
"RecursiveListOfQuantity","ParametersForFunction","JacobianMethods","JacobianMethod",
"JacobianMethodTerm","JacobianCases","JacobianCase","JacobianCaseTerm","IntegrationMethods",
"IntegrationMethod","IntegrationMethodTerm","IntegrationCases","IntegrationCase",
"IntegrationCaseTerm","QuadratureCases","QuadratureCase","QuadratureCaseTerm",
"Constraints","BracedConstraint","Constraint","ConstraintTerm","ConstraintCases",
"ConstraintCase","ConstraintCaseTerm","FunctionSpaces","BracedFunctionSpace",
"FunctionSpace","FunctionSpaceTerm","BasisFunctions","BasisFunction","BasisFunctionTerm",
"OptionalParametersForBasisFunction","@15","@16","SubSpaces","SubSpace","SubSpaceTerm",
"ListOfBasisFunction","RecursiveListOfBasisFunction","ListOfBasisFunctionCoef",
"RecursiveListOfBasisFunctionCoef","GlobalQuantities","GlobalQuantity","GlobalQuantityTerm",
"ConstraintInFSs","ConstraintInFS","ConstraintInFSTerm","Formulations","BracedFormulation",
"Formulation","FormulationTerm","DefineQuantities","DefineQuantity","DefineQuantityTerm",
"@17","@18","IndexInFunctionSpace","Equations","EquationTerm","GlobalEquation",
"GlobalEquationTerm","GlobalEquationTermTerm","GlobalEquationTermTermTerm","LocalTerm",
"LocalTermTerm","@19","@20","GlobalTerm","GlobalTermTerm","@21","@22","TermOperator",
"Quantity_Def","Resolutions","BracedResolution","Resolution","ResolutionTerm",
"@23","DefineSystems","DefineSystem","DefineSystemTerm","ListOfFormulation",
"RecursiveListOfFormulation","ListOfSystem","RecursiveListOfSystem","Operation",
"OperationTerm","@24","@25","PrintOperation","PrintOperationOptions","PrintOperationOption",
"TimeLoopTheta","TimeLoopThetaTerm","TimeLoopNewmark","TimeLoopNewmarkTerm",
"IterativeLoop","IterativeLoopTerm","IterativeTimeReduction","IterativeTimeReductionTerm",
"ChangeOfStates","ChangeOfState","ChangeOfStateTerm","PostProcessings","BracedPostProcessing",
"PostProcessing","PostProcessingTerm","PostQuantities","PostQuantity","PostQuantityTerm",
"SubPostQuantities","SubPostQuantity","SubPostQuantityTerm","@26","PostOperations",
"BracedPostOperation","PostOperation","PostOperationTerm","SeparatePostOperation",
"@27","PostSubOperations","@28","PostSubOperation","@29","PostQuantitiesToPrint",
"Combination","PostQuantitySupport","PrintSubType","PrintOptions","PrintOption",
"ParsedStrings","Loop","Affectation","DefineConstants","NameForFunction","FExpr",
"OneFExpr","ListOfFExpr","RecursiveListOfFExpr","MultiFExpr","StringIndex","String__Index",
"CharExpr","StrCat", NULL
};
#endif

static const short yyr1[] = {     0,
   270,   269,   271,   272,   271,   273,   273,   273,   273,   273,
   273,   273,   273,   273,   273,   273,   273,   273,   273,   274,
   274,   274,   274,   274,   274,   274,   274,   274,   274,   274,
   274,   274,   274,   274,   274,   274,   274,   274,   274,   275,
   274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
   277,   279,   280,   278,   282,   281,   281,   283,   283,   284,
   285,   285,   286,   286,   287,   287,   287,   288,   289,   289,
   290,   290,   290,   291,   291,   291,   291,   291,   291,   291,
   291,   292,   292,   292,   293,   293,   294,   295,   295,   296,
   297,   297,   298,   298,   298,   298,   298,   299,   299,   300,
   300,   301,   300,   302,   302,   303,   303,   305,   304,   306,
   307,   308,   306,   306,   306,   306,   306,   306,   306,   306,
   306,   306,   306,   306,   306,   306,   306,   306,   306,   306,
   306,   306,   306,   309,   309,   309,   309,   309,   309,   310,
   309,   311,   309,   312,   309,   309,   309,   309,   313,   309,
   309,   309,   309,   309,   309,   309,   309,   309,   314,   314,
   314,   315,   315,   316,   316,   316,   317,   317,   318,   318,
   319,   319,   320,   320,   321,   321,   322,   322,   322,   323,
   323,   324,   324,   325,   325,   325,   326,   326,   327,   327,
   328,   328,   328,   329,   329,   330,   330,   331,   331,   331,
   331,   331,   331,   332,   332,   333,   333,   333,   334,   334,
   335,   335,   335,   335,   335,   336,   336,   336,   337,   337,
   338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
   338,   338,   338,   338,   338,   339,   339,   340,   340,   340,
   341,   341,   342,   342,   342,   342,   342,   342,   342,   343,
   343,   343,   344,   344,   345,   345,   345,   345,   345,   345,
   345,   345,   345,   346,   347,   348,   346,   349,   349,   350,
   350,   351,   351,   351,   352,   352,   353,   353,   354,   354,
   355,   355,   356,   356,   357,   357,   358,   358,   358,   359,
   359,   359,   360,   360,   361,   361,   361,   361,   362,   362,
   363,   363,   363,   364,   364,   365,   365,   365,   365,   365,
   366,   366,   366,   367,   367,   368,   368,   368,   368,   368,
   369,   368,   368,   370,   368,   368,   368,   368,   368,   368,
   371,   371,   372,   372,   372,   372,   373,   373,   373,   373,
   374,   374,   375,   375,   375,   376,   376,   377,   377,   377,
   377,   378,   378,   380,   381,   379,   379,   379,   379,   379,
   379,   379,   382,   382,   383,   384,   385,   383,   386,   386,
   386,   386,   386,   386,   386,   386,   387,   387,   388,   388,
   389,   389,   389,   390,   390,   391,   391,   391,   392,   391,
   391,   393,   393,   393,   394,   394,   395,   395,   395,   395,
   395,   395,   395,   395,   395,   396,   396,   397,   397,   398,
   398,   399,   399,   400,   400,   401,   401,   401,   401,   401,
   401,   401,   401,   401,   401,   401,   401,   401,   401,   401,
   401,   401,   401,   401,   401,   401,   401,   401,   401,   401,
   401,   401,   401,   401,   401,   402,   401,   403,   401,   401,
   401,   401,   401,   401,   401,   401,   401,   401,   401,   401,
   401,   401,   401,   401,   401,   401,   401,   401,   401,   404,
   404,   405,   405,   406,   406,   406,   407,   407,   408,   408,
   408,   408,   408,   409,   409,   410,   410,   410,   410,   410,
   410,   411,   411,   412,   412,   412,   412,   412,   413,   413,
   414,   414,   414,   414,   414,   414,   414,   414,   415,   415,
   416,   416,   417,   417,   417,   417,   417,   417,   418,   418,
   419,   419,   419,   420,   420,   421,   421,   421,   421,   421,
   422,   422,   422,   422,   423,   423,   424,   424,   425,   425,
   425,   426,   426,   428,   427,   427,   427,   427,   427,   429,
   429,   430,   430,   430,   431,   431,   432,   432,   432,   432,
   432,   434,   433,   435,   436,   435,   437,   437,   437,   437,
   437,   438,   437,   437,   439,   439,   440,   440,   440,   440,
   441,   441,   442,   442,   442,   442,   442,   442,   442,   442,
   442,   442,   442,   443,   443,   444,   444,   444,   444,   444,
   444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
   444,   444,   444,   444,   444,   444,   444,   444,   444,   444,
   444,   444,   444,   444,   444,   444,   444,   444,   444,   445,
   445,   446,   446,   446,   446,   446,   446,   446,   447,   447,
   447,   447,   447,   447,   447,   447,   447,   447,   447,   447,
   448,   448,   448,   448,   449,   449,   449,   449,   449,   449,
   449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
   449,   449,   449,   449,   449,   450,   450,   450,   450,   450,
   450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
   450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
   450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
   450,   450,   450,   450,   451,   451,   451,   451,   451,   451,
   451,   451,   452,   452,   452,   452,   453,   453,   453,   453,
   454,   454,   454,   454,   454,   454,   454,   454,   455,   455,
   456,   456,   457,   457,   457,   457,   457,   457,   458
};

static const short yyr2[] = {     0,
     0,     2,     0,     0,     3,     4,     4,     4,     4,     4,
     4,     4,     4,     4,     4,     1,     1,     2,     1,     2,
     3,     3,     3,     3,     3,     3,     2,     2,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     0,
     2,     0,     2,     4,     5,     5,     5,     1,     5,     1,
     1,     0,     0,    18,     0,     6,     2,     1,     1,     2,
     1,     1,     1,     1,     0,     3,     3,     1,     1,     3,
     0,     3,     4,     1,     3,     3,     3,     5,     5,     7,
     1,     0,     3,     6,     0,     1,     4,     0,     2,     3,
     0,     2,     5,     6,     7,     1,     1,     0,     3,     4,
     4,     0,     2,     0,     3,     1,     3,     0,     2,     1,
     0,     0,     7,     3,     3,     6,     3,     3,     3,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     2,     2,     2,     3,     1,     3,     2,     1,     2,     0,
     5,     0,     7,     0,    11,     9,     4,     4,     0,     7,
     6,     2,     2,     2,     2,     3,     2,     3,     3,     2,
     3,     1,     3,     0,     3,     6,     0,     4,     0,     2,
     3,     4,     0,     4,     0,     2,     3,     3,     4,     0,
     4,     0,     2,     3,     3,     4,     0,     4,     0,     2,
     3,     3,     4,     0,     4,     0,     2,     3,     3,     3,
     3,     3,     3,     0,     2,     3,     1,     1,     0,     2,
     3,     4,     3,     4,     5,     0,     4,     2,     0,     2,
     3,     3,     3,     3,     3,     3,     7,     3,     3,     3,
     3,     3,     7,     7,     7,     0,     2,     3,     1,     1,
     0,     2,     3,     4,     3,     4,     4,     4,     4,     0,
     4,     2,     0,     2,     3,     3,     4,     4,     7,     3,
     3,     3,     3,     0,     0,     0,    18,     0,     4,     0,
     2,     3,     3,     3,     1,     3,     0,     3,     1,     3,
     0,     3,     0,     4,     0,     2,     3,     3,     3,     0,
     4,     2,     0,     2,     3,     3,     3,     3,     0,     2,
     3,     1,     1,     0,     2,     3,     4,     3,     4,     4,
     0,     4,     2,     0,     2,     3,     3,     3,     3,     3,
     0,     5,     3,     0,     5,     3,     3,     3,     3,     3,
     0,     3,     0,     2,     2,     2,     4,     4,     4,     4,
     0,     2,     3,     3,     3,     0,     2,     3,     3,     3,
     3,     0,     2,     0,     0,     9,     3,     3,     3,     2,
     3,     5,     0,     2,     3,     0,     0,     9,     0,     1,
     1,     1,     1,     1,     1,     1,     4,     3,     0,     2,
     3,     1,     1,     0,     2,     3,     4,     4,     0,     5,
     1,     0,     4,     2,     0,     2,     3,     3,     3,     3,
     3,     3,     3,     3,     1,     1,     3,     0,     3,     1,
     3,     0,     3,     0,     2,     3,     3,     4,     4,     4,
     4,     5,     5,     2,     7,    11,     7,    13,    11,     9,
     7,     7,     7,     9,     9,     9,    11,    11,    11,     5,
    17,    13,    15,    11,    13,     0,     7,     0,     7,     7,
    11,     5,     5,     9,     9,     9,     5,     5,    11,     9,
    14,    14,     7,    12,    10,     7,     7,     7,     1,     1,
     1,     0,     2,     3,     3,     2,     0,     2,     3,     3,
     3,     3,     4,     0,     2,     3,     3,     3,     3,     3,
     4,     0,     2,     3,     3,     3,     3,     4,     0,     2,
     3,     3,     3,     3,     3,     4,     4,     4,     0,     4,
     0,     2,     3,     3,     3,     3,     3,     3,     0,     2,
     3,     1,     1,     0,     2,     3,     4,     3,     3,     4,
     0,     4,     2,     2,     0,     2,     3,     4,     0,     5,
     5,     0,     2,     0,     6,     3,     3,     3,     3,     0,
     2,     3,     1,     1,     0,     2,     3,     3,     3,     3,
     4,     0,     8,     0,     0,     3,     7,     7,     8,    11,
     6,     0,    10,     1,     3,     6,     1,     1,     1,     1,
     0,     3,     1,     2,     2,    12,     2,    15,     4,    12,
    17,    22,    12,     0,     2,     3,     4,     4,     3,     2,
     2,     3,     3,     3,     3,     3,     2,     3,     3,     3,
     3,     3,     3,     3,     5,     2,     2,     3,     9,     3,
     2,     9,     2,     9,     2,     9,     5,     3,     2,     0,
     2,     6,     8,     8,    10,     1,     4,     1,     5,     4,
     4,     7,     4,     7,     5,     3,     3,     7,     5,     8,
     0,     3,     5,     5,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
     1,     1,     1,     1,     1,     1,     3,     2,     2,     3,
     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
     3,     3,     3,     4,     4,     4,     4,     4,     4,     4,
     4,     4,     4,     6,     4,     4,     4,     4,     4,     4,
     6,     6,     6,     2,     1,     1,     1,     1,     1,     1,
     1,     1,     0,     1,     1,     3,     1,     1,     3,     3,
     3,     5,     3,     4,     4,     6,     8,     8,     5,     5,
     1,     1,     1,     1,     1,     4,     6,     1,     6
};

static const short yydefact[] = {     1,
     3,     4,    40,   741,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     5,    19,     0,    16,    17,   742,     0,     0,     0,
     0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
    27,     0,    28,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   743,     0,     0,   748,   744,    18,   745,
   651,    42,   204,   167,   180,   236,    91,   299,   379,   519,
   550,     0,     0,   636,     0,   638,     0,     0,     0,     0,
    41,   574,     0,   723,     0,     0,   647,   646,     0,    26,
    25,    24,    22,    23,    21,    39,    29,    31,    32,    33,
    34,    30,    35,    36,    37,    38,     0,     0,    85,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   716,   715,
   741,     0,     0,     0,     0,     0,     0,   717,   718,   719,
   720,   721,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   724,   676,     0,
   725,   722,     0,     0,     0,     0,     0,     0,     0,     0,
    86,     0,   741,     0,     6,    43,    48,    51,    50,     0,
   209,     8,   205,   208,   207,   169,     9,   182,    10,   241,
    11,   237,   240,   239,   741,     0,     7,    92,    97,    96,
   304,    12,   300,   303,   302,   384,    13,   380,   383,   382,
   524,    14,   520,   523,   522,   555,    15,   551,   554,   553,
   562,     0,     0,     0,     0,   581,     0,     0,   741,    61,
     0,    58,   572,     0,    59,   594,     0,     0,   641,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,   678,   679,     0,   727,     0,
   728,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   714,   640,   643,   739,
   645,     0,   649,     0,     0,   746,     0,   639,   652,     0,
     0,     0,    82,   723,     0,     0,     0,     0,     0,     0,
     0,    98,     0,     0,     0,     0,     0,     0,     0,   637,
   583,     0,     0,     0,     0,     0,     0,     0,     0,   594,
     0,     0,   102,   594,    74,     0,    71,     0,    57,    69,
    81,     0,     0,     0,   740,   733,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   677,   726,     0,   731,   693,   692,   690,
   691,   686,   688,   687,   689,   681,   680,   682,   683,   684,
   685,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    85,   741,     0,     0,     0,     0,     0,     0,   206,   210,
     0,     0,   168,   170,     0,   102,     0,   181,   183,     0,
     0,     0,     0,     0,     0,   238,   242,     0,     0,    85,
     0,     0,     0,     0,   301,   305,     0,     0,   389,   381,
   385,   391,     0,     0,     0,     0,   521,   525,     0,     0,
     0,     0,     0,   552,   556,   564,     0,     0,   584,   585,
   102,   587,     0,     0,     0,     0,     0,     0,     0,   579,
   580,   577,   578,   575,     0,     0,     0,     0,   594,   108,
     0,     0,     0,    85,     0,     0,    64,    55,    63,     0,
     0,   595,   734,   735,     0,     0,     0,     0,   694,   695,
   696,   697,   698,   699,   700,   701,   702,   703,     0,   705,
   706,   707,   708,   709,   710,     0,     0,     0,     0,   729,
   730,     0,   648,     0,   749,   747,   654,   653,     0,    90,
    62,     0,     0,     0,     0,    44,     0,     0,     0,   216,
     0,   741,     0,   173,     0,   187,     0,     0,   290,     0,
   741,     0,   250,   268,   283,   102,     0,     0,     0,     0,
   741,     0,   311,   333,   741,     0,   392,     0,   741,     0,
   531,     0,     0,     0,   564,     0,     0,     0,   565,     0,
     0,   632,     0,     0,     0,     0,     0,     0,     0,     0,
   582,   581,     0,     0,     0,     0,   103,     0,     0,    77,
    75,    70,     0,    76,     0,    85,   571,   723,   723,     0,
     0,     0,     0,     0,   607,   723,     0,   630,   630,   630,
   600,   601,     0,     0,     0,   616,   617,   104,   621,   623,
   625,     0,     0,   629,     0,     0,     0,   644,     0,     0,
     0,     0,   642,   732,   650,    87,    46,    45,    47,    83,
    49,     0,   216,     0,   213,     0,     0,   211,     0,   171,
     0,   185,   184,     0,   245,     0,   243,     0,     0,     0,
     0,   102,    93,    99,   308,     0,   306,     0,     0,     0,
   386,     0,   414,     0,   526,     0,   528,   529,   557,   565,
   558,   560,   559,   563,     0,     0,     0,     0,   102,     0,
   589,     0,     0,     0,   567,     0,     0,     0,     0,     0,
   741,   655,   656,   657,   658,   659,   660,   661,   662,   663,
   664,   665,   666,   667,   668,   669,   670,   671,   672,   673,
   674,     0,   149,     0,     0,     0,     0,   140,   142,     0,
     0,     0,     0,     0,     0,     0,     0,   109,   110,   138,
     0,   135,   722,   568,     0,     0,     0,    72,   594,     0,
     0,   613,   618,   102,   610,     0,     0,   596,   599,   608,
   609,   602,   603,   606,   604,   605,   612,   611,     0,   614,
   102,   620,     0,     0,     0,     0,   628,   736,     0,     0,
   704,   711,   712,   713,     0,    52,     0,   219,   214,   218,
   212,   175,   172,   189,   186,   293,   249,   292,   244,   253,
   246,   252,   270,   247,   285,   248,    94,     0,   307,   314,
   309,   313,     0,     0,     0,     0,   310,   334,   336,   335,
   387,   395,   388,   394,     0,   527,   535,   530,   534,   533,
   561,   566,     0,   634,   633,     0,     0,     0,     0,     0,
     0,   576,   100,   101,   594,   569,   137,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   132,   131,   133,     0,
   157,   155,   152,   154,   153,   741,     0,   111,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   139,   164,    79,
    78,    73,     0,    56,    68,     0,     0,     0,   597,   598,
   631,     0,   106,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   215,     0,     0,     0,     0,     0,     0,     0,
    95,     0,   352,   352,   363,   341,     0,     0,     0,   102,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,   446,   448,   390,   415,   469,     0,     0,
     0,   102,     0,     0,     0,     0,     0,     0,   108,     0,
     0,     0,     0,   108,   108,     0,   134,     0,   378,     0,
   130,   129,   126,   127,   128,   122,   124,   123,   125,   118,
   119,   114,   117,   120,   115,   121,   156,   158,   160,     0,
   162,     0,     0,   136,     0,     0,    67,    66,   102,   615,
   105,   102,     0,     0,     0,   627,   737,   738,    84,     0,
     0,     0,     0,     0,   102,   102,   102,   102,     0,     0,
     0,   102,   217,   220,     0,     0,   174,   176,     0,     0,
     0,   188,   190,     0,     0,     0,     0,   291,   294,     0,
     0,     0,     0,   104,   104,     0,     0,   251,   254,     0,
     0,     0,   269,   271,     0,     0,     0,   284,   286,     0,
     0,     0,     0,     0,     0,     0,     0,     0,   723,   324,
   312,   315,   369,   369,   369,     0,     0,     0,     0,     0,
   723,     0,     0,     0,   393,   396,   405,     0,     0,   102,
   102,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   424,   102,     0,   477,     0,   484,     0,   492,   499,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   532,   536,   635,     0,     0,     0,     0,     0,
     0,     0,   147,     0,   148,     0,   144,     0,     0,     0,
   108,   377,     0,   159,   161,     0,     0,     0,    80,   573,
     0,   107,     0,     0,     0,     0,     0,     0,     0,     0,
   102,     0,   102,     0,     0,     0,     0,     0,     0,   102,
     0,     0,     0,   164,   194,     0,     0,     0,     0,     0,
     0,     0,     0,   264,     0,     0,     0,     0,     0,     0,
   279,   281,     0,   275,   277,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   321,     0,     0,     0,
     0,   108,     0,     0,     0,     0,   370,   371,   372,   373,
   374,   375,   376,     0,     0,   337,   353,     0,   338,     0,
   339,   364,     0,     0,     0,   346,   340,   342,     0,     0,
   408,     0,   406,     0,     0,     0,   412,     0,   410,     0,
     0,   416,     0,     0,   417,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   104,   104,   539,     0,     0,     0,     0,     0,     0,     0,
   570,     0,     0,   108,     0,   141,     0,     0,   112,   163,
     0,   165,   102,     0,     0,     0,    53,   222,   223,   228,
   229,     0,   232,     0,   231,   225,   224,    85,   226,   221,
     0,   230,   178,   177,     0,     0,   191,   192,   295,   296,
   297,   298,   255,   256,     0,     0,     0,    85,   260,   261,
   262,   263,   272,    85,   274,    85,   273,   288,   287,   289,
   329,   327,   328,   319,   317,   318,   316,   331,   323,   330,
   326,   320,     0,     0,     0,     0,     0,     0,   360,   354,
     0,   366,     0,     0,     0,   398,   397,    85,   399,   400,
   403,   404,    85,   401,   402,     0,     0,     0,   102,     0,
     0,     0,     0,     0,     0,   102,     0,     0,     0,     0,
   102,     0,     0,   102,   418,   478,     0,     0,   102,     0,
     0,     0,     0,   419,   485,     0,     0,     0,     0,     0,
   102,   420,   493,     0,     0,     0,     0,     0,     0,     0,
     0,   421,   500,   102,     0,   102,   723,   723,   723,     0,
   723,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   470,   472,   471,   472,     0,   537,     0,   723,     0,
     0,     0,     0,     0,   116,     0,     0,     0,   151,     0,
     0,     0,     0,     0,     0,     0,   102,   102,     0,   102,
   179,   196,   193,   257,     0,   258,     0,   280,     0,   276,
     0,     0,     0,     0,   358,   359,   361,     0,   357,   108,
   365,   108,   343,   344,     0,     0,     0,     0,   345,   347,
   407,     0,   411,     0,   422,   414,   423,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   440,     0,   414,     0,
     0,     0,     0,     0,   414,     0,     0,     0,     0,     0,
     0,     0,     0,   414,     0,     0,     0,     0,     0,   414,
   414,     0,     0,   509,     0,   453,     0,     0,     0,     0,
     0,     0,   457,   458,     0,     0,     0,     0,     0,     0,
     0,   452,     0,     0,     0,     0,   538,     0,     0,     0,
     0,     0,     0,   150,     0,     0,   143,   113,     0,   619,
   622,   624,   626,     0,     0,     0,     0,     0,     0,     0,
     0,   282,   278,     0,   322,   325,     0,   355,   367,     0,
     0,     0,     0,   409,   413,     0,     0,   723,     0,   723,
     0,     0,     0,     0,     0,   102,     0,   481,   479,   480,
   482,   102,     0,   488,   486,   487,   489,   490,   102,   497,
   495,     0,   494,   496,   504,   503,   505,     0,     0,   501,
   502,     0,     0,     0,   102,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   723,
   473,     0,   542,   542,     0,   723,     0,     0,     0,     0,
     0,     0,   166,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,   195,   197,     0,     0,   332,   362,
     0,     0,   348,   349,   350,   351,   425,   427,     0,     0,
     0,     0,     0,     0,   433,     0,     0,   483,     0,   491,
     0,   498,   507,   508,   511,   506,   450,     0,     0,   431,
   432,     0,     0,     0,     0,     0,   463,   467,   468,     0,
   466,     0,   447,     0,   723,   476,   449,   369,   369,   593,
     0,   586,   590,     0,     0,     0,   146,     0,   235,   234,
   227,   233,     0,     0,     0,     0,     0,     0,     0,   259,
   108,     0,     0,     0,     0,     0,     0,     0,     0,     0,
   102,     0,     0,     0,     0,   102,     0,   102,     0,     0,
     0,     0,     0,     0,   102,     0,   474,   475,     0,     0,
     0,     0,   541,     0,   543,   540,   723,     0,     0,     0,
     0,   198,   199,   200,   201,   202,   203,     0,     0,     0,
   414,   435,   436,     0,     0,     0,     0,   434,     0,     0,
   414,     0,     0,     0,     0,   102,     0,     0,   510,   512,
     0,   430,     0,   454,   455,   456,     0,     0,   460,     0,
     0,     0,     0,     0,     0,     0,   544,     0,     0,     0,
   145,     0,     0,     0,     0,     0,     0,     0,     0,   723,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   102,     0,     0,     0,   465,     0,   548,   549,
   546,   547,   108,   588,     0,     0,     0,   265,   356,   368,
   426,   437,   438,   439,     0,   414,     0,   444,   414,   518,
   513,   516,   517,   514,   515,   451,   429,     0,   414,   414,
   459,     0,     0,     0,     0,    54,     0,     0,     0,     0,
     0,     0,     0,     0,   464,     0,   591,     0,     0,     0,
   442,   414,   445,   428,     0,     0,   545,     0,     0,    88,
     0,     0,   461,   462,     0,   266,     0,    60,     0,   443,
     0,     0,    89,     0,     0,     0,   441,   592,    88,     0,
     0,   267,     0,     0,     0
};

static const short yydefgoto[] = {  2033,
     1,     2,     3,    22,    23,    24,   110,   186,   187,   932,
  1536,   242,   616,   243,  2009,   244,   498,   770,   917,   349,
   494,   350,   411,   182,   311,  2018,   312,   115,   208,   440,
   489,   490,  1512,   924,   607,   608,   758,  1010,  1530,   759,
   874,   875,  1354,   869,   908,  1032,  1034,   112,   318,   424,
   669,   935,  1068,   113,   319,   429,   671,   936,  1073,  1386,
  1659,  1756,   111,   193,   317,   420,   664,   934,  1064,   114,
   202,   320,   437,   678,   938,  1089,  1397,  1987,  2022,   679,
   939,  1094,  1246,  1406,  1243,  1404,   680,   940,  1099,   674,
   937,  1079,   116,   213,   323,   446,   688,   942,  1112,  1418,
  1262,  1553,   689,   838,  1116,  1288,  1435,  1570,  1113,  1277,
  1560,  1761,  1115,  1282,  1562,  1762,  1278,   760,   117,   218,
   324,   451,   578,   692,   947,  1126,  1292,  1438,  1298,  1443,
   845,   987,  1169,  1170,  1513,  1633,  1731,  1317,  1466,  1319,
  1475,  1321,  1483,  1322,  1493,  1712,  1845,  1900,   118,   223,
   325,   458,   696,   989,  1174,  1516,  1808,  1865,  1953,   119,
   228,   326,   465,    25,   327,   589,   705,    81,   352,   235,
   485,   342,   340,   354,   502,   784,   988,    26,   109,   761,
   279,   169,   170,   280,   281,    27,   172,    59,    60
};

static const short yypact[] = {-32768,
-32768,    67,  4472,  -190,    79,  -170,   406,    99,  2544,   359,
  -169,  -145,  -138,  -111,  -108,   -61,   -17,    32,    46,    57,
    26,-32768,-32768,   783,-32768,-32768,   -54,    18,    77,   345,
   395,   409,   423,   434,-32768,   464,   487,   497,   500,   513,
-32768,   521,-32768,   524,   530,   539,   562,   567,   582,   604,
   626,   634,   674,-32768,   223,   298,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   422,    42,-32768,   330,-32768,   448,   460,   472,   480,
-32768,-32768,   428,  2454,  4422,   -58,-32768,-32768,   484,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   359,   359,   151,   180,
    80,  -221,   -77,   244,   265,   450,   461,   488,   527,   423,
   625,  4422,  4422,   423,   229,    82,   737,  4422,-32768,-32768,
   -97,   759,   514,   529,   535,   537,   543,-32768,-32768,-32768,
-32768,-32768,   552,   559,   574,   576,   581,   605,   607,   647,
   661,   666,   688,   699,   707,   745,   747,   752,   784,   798,
   800,   801,   802,  4422,  4422,  4422,  4234,   679,-32768,   815,
-32768,-32768,   945,  5115,   994,  4234,    91,   751,   -50,  1021,
-32768,  1028,   -96,   803,-32768,-32768,-32768,-32768,-32768,   172,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  -189,   817,-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,   809,  3149,  5595,   972,   818,   811,   972,   -79,-32768,
    37,-32768,-32768,   820,-32768,-32768,  5145,   613,-32768,  1075,
  1076,  4422,  4422,   359,  4422,  4422,  4422,  4422,  4422,  4422,
  4422,  4422,  4422,  4422,  4422,  4422,  4422,  4422,  4422,  4422,
  4422,  4422,  4422,  4422,   359,   -44,   -44,  5621,   679,   410,
-32768,  4422,  4422,  4422,  4422,  4422,  4422,  4422,  4422,  4422,
  4422,  4422,  4422,  4422,  4422,  4422,-32768,-32768,-32768,-32768,
-32768,    50,-32768,  4422,   359,-32768,  4234,-32768,   851,  2046,
   852,   854,-32768,  2392,   855,  4422,   227,   178,   312,   660,
    61,-32768,   615,   862,   454,   814,   826,  4422,  4422,-32768,
-32768,    82,    82,     7,   827,   839,   840,   842,   843,-32768,
    82,   474,   138,-32768,  1100,  4422,-32768,  4234,-32768,-32768,
-32768,   845,    36,   155,-32768,-32768,   414,   850,   847,  2040,
  2422,   859,  5647,  5673,  5699,  5725,  5751,  5777,  5803,  5829,
  5855,  5881,  4261,  5907,  5933,  5959,  5985,  6011,  6037,  4282,
  4337,  4443,   864,-32768,-32768,  4234,  3393,  2690,  2473,  2725,
  2725,   719,   719,   719,   719,   261,   261,   -44,   -44,   -44,
   -44,  1103,  6063,   865,   141,  4370,  4422,  5175,    85,    85,
   181,  -140,  1119,    85,  6089,    27,  1123,  1124,-32768,-32768,
   876,  1136,-32768,-32768,   878,   113,  1138,-32768,-32768,   880,
  1140,  1141,   883,   902,   903,-32768,-32768,   934,   931,   211,
  1191,  1192,   935,   936,-32768,-32768,  1193,   938,-32768,-32768,
-32768,-32768,  1196,   940,   423,   423,-32768,-32768,   423,   971,
   423,   359,  1200,-32768,-32768,-32768,  3437,  3107,  1029,-32768,
   113,-32768,   980,  4234,   985,   992,   993,   260,   977,-32768,
-32768,-32768,-32768,-32768,  1253,  1002,  1005,  1006,-32768,-32768,
   270,  4422,  6115,   443,   171,  1132,-32768,-32768,-32768,  1259,
  4421,-32768,-32768,-32768,  1262,  4422,  4422,  1261,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  4422,-32768,
-32768,-32768,-32768,-32768,-32768,  4422,  4422,  4422,  1265,   679,
-32768,  4422,-32768,  1266,-32768,-32768,-32768,  6661,  5205,-32768,
-32768,  1271,  1272,  1273,  1264,-32768,  1278,  1056,  1027,-32768,
  1290,   -14,  1291,-32768,  1292,-32768,  1295,  1296,-32768,  1297,
   -14,  1298,-32768,-32768,-32768,   113,  1073,  1301,  1304,  1303,
   -14,  1305,-32768,-32768,   -14,  1306,-32768,  1047,   -14,  1307,
-32768,  1313,  1318,  1319,-32768,  1325,  1326,  1327,  1072,  4422,
  4422,-32768,  1335,  1077,  4234,   505,  4234,  4234,  4234,  1337,
-32768,   818,  4422,  1341,   359,   324,-32768,  2130,  1343,  3681,
  1334,-32768,    58,-32768,    82,   340,-32768,  1893,  1893,  1087,
  1348,   352,  4422,  4422,-32768,  1893,  4422,  1349,-32768,-32768,
-32768,-32768,  4422,  1350,  1177,-32768,-32768,  1092,  1093,  1095,
  1096,  1097,  1382,-32768,  1127,  4464,  4485,-32768,  6141,  6167,
  6193,  6219,-32768,  6661,-32768,-32768,-32768,-32768,-32768,  1125,
-32768,  1321,-32768,   132,-32768,  1129,  1381,-32768,   511,-32768,
   541,-32768,-32768,   231,-32768,  1384,-32768,   249,   544,   549,
  1400,   113,-32768,-32768,-32768,  1402,-32768,   339,   169,  1404,
-32768,   358,-32768,  1405,-32768,   547,-32768,-32768,-32768,  1148,
-32768,-32768,-32768,-32768,   783,   599,  6245,  1151,   113,   550,
-32768,   564,   579,   586,-32768,  1150,  6271,  1158,  1159,  1412,
    69,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,  1163,-32768,  1164,  1165,  1169,  1170,-32768,-32768,  1424,
  2130,  2130,  2130,  2130,  1428,   199,  1429,  6736,   219,  1174,
  1174,-32768,  1178,-32768,  4422,  4422,    59,-32768,-32768,  1176,
   105,-32768,-32768,   113,-32768,   359,   359,-32768,  6661,  6661,
-32768,  6661,-32768,  1431,  1431,  1431,  6661,-32768,  4234,  6661,
   113,-32768,  4422,  4422,  4422,  4234,-32768,-32768,  4422,  4422,
-32768,-32768,-32768,-32768,  4422,-32768,   418,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1433,-32768,-32768,
-32768,-32768,  1179,  1180,  1181,  1182,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  2724,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,  4422,-32768,-32768,  4422,  1183,  1186,  1187,  1189,
  1197,-32768,-32768,-32768,-32768,-32768,-32768,  1203,  1184,  1203,
  2130,  1450,  1452,  1214,  1215,  1236,  1226,  1226,  1226,  6713,
-32768,-32768,-32768,-32768,-32768,    -1,  1224,-32768,  2130,  2130,
  2130,  2130,  2130,  2130,  2130,  2130,  2130,  2130,  2130,  2130,
  2130,  2130,  2130,  2130,  1494,  4422,  1987,-32768,  1235,  6661,
  3730,-32768,   342,-32768,-32768,   423,    37,  1234,-32768,-32768,
-32768,   606,-32768,   608,  4506,  4527,  4548,   616,  6297,  6323,
  5235,  1245,-32768,   708,   109,   -12,    54,   996,   303,   307,
-32768,  1427,-32768,-32768,-32768,-32768,   534,    23,   317,    76,
  1249,  1251,  1254,  1256,  1257,  1260,  1263,  1267,  1270,  1513,
  1274,   193,   196,   269,  1258,  1275,  1276,  1277,  1279,  1280,
  1281,  1285,  1287,  1282,  1283,  1293,  1294,  1300,  1302,  1308,
  1286,  1299,  1309,-32768,-32768,-32768,-32768,-32768,    52,  5265,
  4569,   113,  4234,  4234,  4234,  4234,   365,  1311,-32768,  1314,
  2079,  1310,  1315,-32768,-32768,  1320,-32768,  1289,-32768,  2130,
  2862,  3192,  1243,  1243,  1243,   937,   937,   937,   937,   657,
   657,  1226,  1226,  1226,  1226,  1226,-32768,-32768,-32768,  1317,
  6736,   366,  4181,-32768,  4422,  1517,-32768,-32768,   113,-32768,
-32768,   113,  4422,  4422,  4422,-32768,-32768,-32768,-32768,  1268,
    82,    82,    82,    82,    78,    97,   113,   113,  1333,   423,
  1525,   102,-32768,-32768,     8,  1526,-32768,-32768,  1339,  1531,
  1550,-32768,-32768,  1551,    33,  1554,   423,-32768,-32768,  1556,
  1557,  1559,  1340,  1092,  1092,    82,    82,-32768,-32768,  1567,
    31,    41,-32768,-32768,  1572,   423,  1574,-32768,-32768,  1580,
  1585,  1586,    98,   423,   423,  1595,  1596,    82,  1893,-32768,
-32768,-32768,   941,  1875,   361,    47,  1600,   423,    44,   359,
  1893,   359,    60,   423,-32768,-32768,-32768,   423,  1594,   113,
   113,  1602,   423,   423,   423,   423,   423,   423,   423,   423,
   423,-32768,   113,  4422,-32768,  4422,-32768,  4422,-32768,-32768,
    82,   359,   423,   423,   423,   423,   423,   423,   423,   423,
   423,   423,   423,   423,   423,   423,  1605,   423,  1353,  1354,
  1351,   423,-32768,-32768,-32768,  4422,  1342,   619,   637,   694,
   698,  1607,-32768,  1356,-32768,  2130,-32768,  1355,  1364,  1362,
-32768,-32768,  4068,-32768,-32768,  2130,  1372,   716,  6661,-32768,
  1365,-32768,  4590,  4611,  4632,    37,  1625,  1626,  1627,  1636,
   113,  1637,   113,  1642,  1643,  1669,   982,  1670,  1671,   113,
  1672,  1674,  1676,  1235,-32768,  1677,  1679,  1680,  1681,  1682,
  1683,  1686,    64,  1430,  1690,  1689,  1691,  1692,  1695,  1697,
-32768,-32768,  1699,-32768,-32768,  1700,  1701,  1702,  1703,  1704,
  1705,  1707,  1708,  1711,  1712,  1713,-32768,  1714,  1715,  1717,
  1718,-32768,  1721,  1722,  1725,  1473,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,    82,  1728,-32768,-32768,  1474,-32768,    82,
-32768,-32768,  1480,  1734,  1735,-32768,-32768,-32768,  1737,  1739,
-32768,  1740,-32768,  1745,  1750,  1751,-32768,  1757,-32768,  1758,
  1483,-32768,  1509,  1510,-32768,  1504,  1505,  1506,  1508,  1515,
  1520,  1521,  1527,  1529,  1516,  4653,   646,  4674,   602,  4695,
   597,   430,  1532,  1538,  1534,  1537,  1542,  1547,  1548,  1555,
  1511,  1560,  1558,  1561,  1565,  1566,  1569,  1575,  1581,  1563,
    63,    63,-32768,  1813,  5295,  1562,  1582,  1588,  1590,  1591,
-32768,    82,  6688,-32768,  4422,-32768,  1830,  1598,-32768,  6736,
    82,-32768,   113,  4422,  4422,  4422,-32768,-32768,-32768,-32768,
-32768,  1592,-32768,  1597,-32768,-32768,-32768,  1599,-32768,-32768,
  1604,-32768,-32768,-32768,  1853,   724,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1854,  1752,  1859,  1599,-32768,-32768,
-32768,-32768,-32768,   718,-32768,   725,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1609,-32768,-32768,
-32768,-32768,  1612,  1861,  1865,  1866,  1876,  1871,-32768,-32768,
  1873,-32768,  1874,  1877,   288,-32768,-32768,   728,-32768,-32768,
-32768,-32768,   731,-32768,-32768,  1880,  1618,  1882,   113,   423,
   423,  4422,  4422,  4422,   423,   113,    82,  1883,  4422,  1628,
   113,  4422,  4422,   113,-32768,-32768,  4422,  1629,   113,  4422,
  4422,  4422,  4422,-32768,-32768,  4422,  4422,  4422,  1630,  4422,
   113,-32768,-32768,  4422,  4422,   423,  1644,  1647,  4422,  4422,
  1648,-32768,-32768,   113,  1900,   113,  1893,  1893,  1893,  4422,
  1893,  1906,  1907,   423,   423,  4422,   423,   423,    82,  1911,
  1914,-32768,-32768,-32768,-32768,    20,-32768,  1658,  1893,  4234,
  1684,  4234,  4234,  1693,-32768,  1694,  4716,  1696,-32768,  2130,
  1698,  1685,  5325,  5355,  5385,  1688,   113,   113,   982,   113,
-32768,-32768,-32768,-32768,  1944,-32768,  1946,-32768,  1956,-32768,
  1957,   423,  1958,  1960,-32768,-32768,-32768,  1710,-32768,-32768,
-32768,-32768,-32768,-32768,  1203,  1203,  1203,    82,-32768,-32768,
-32768,   423,-32768,   423,-32768,-32768,-32768,  1719,  1706,  1716,
  4737,  4758,  4779,  1720,  1724,  1723,-32768,  4800,-32768,  1963,
   700,  1004,  1964,  4821,-32768,  1966,  1045,  1080,  1227,  1345,
  4842,  1512,  1541,-32768,  1568,  1969,  1601,  1881,  1970,-32768,
-32768,  1961,  2105,-32768,   368,-32768,  1727,  1726,  1729,  1738,
  4863,  1741,-32768,-32768,  1742,  1743,  6349,  1736,  1753,  1744,
   743,-32768,   369,   437,  1730,  1747,-32768,  4422,  1748,   754,
  4422,   765,   770,-32768,  1754,  4422,-32768,  6736,  1781,-32768,
-32768,-32768,-32768,  1791,  1756,  1794,  1789,  1797,   734,  1972,
  1793,-32768,-32768,  1800,-32768,-32768,  1973,-32768,-32768,  1974,
  1977,  2053,  2055,-32768,-32768,  2993,  2058,  1893,  4422,  1893,
  4422,  4422,   423,  2060,   423,   113,  3047,-32768,-32768,-32768,
-32768,   113,  3119,-32768,-32768,-32768,-32768,-32768,   113,-32768,
-32768,  3304,-32768,-32768,-32768,-32768,-32768,  3358,  3412,-32768,
-32768,   774,  2061,  4422,   113,  2062,  2063,  4422,   359,   359,
  4422,  4422,  2064,  2065,  2066,   359,  2067,  1829,  2068,  1621,
-32768,  2094,-32768,-32768,  5415,  1893,  1846,  5445,  1848,  1850,
  1851,  5475,-32768,    37,  2114,  2119,  2120,  2131,  2132,  4422,
  4422,  4422,  4422,  4422,-32768,-32768,  2028,  2136,-32768,-32768,
  1878,  1884,-32768,-32768,-32768,-32768,  2135,-32768,  1888,  6375,
  1886,  4884,  4905,  1890,-32768,  1889,  1892,-32768,  1923,-32768,
   438,-32768,-32768,-32768,-32768,-32768,-32768,  4926,   451,-32768,
-32768,  6401,  1933,  1934,  4947,  4968,-32768,-32768,-32768,   775,
-32768,   359,-32768,   359,  1893,-32768,-32768,  1980,  2140,-32768,
  1928,-32768,-32768,  1895,  4234,  4422,-32768,  1929,-32768,-32768,
-32768,-32768,  2189,  2273,  2522,  2558,  2775,  2830,  2196,-32768,
-32768,  1203,  1942,  2206,  2207,  4422,  4422,  4422,  4422,  2208,
   113,  4422,  1953,  4422,   479,   113,  2211,   113,  2213,  2217,
  2218,  4422,  4422,  2220,   113,   779,-32768,-32768,  2224,  2225,
  2227,    82,-32768,  1975,-32768,-32768,  1893,  4422,   781,  5505,
  4422,-32768,-32768,-32768,-32768,-32768,-32768,  1978,  1979,  1982,
-32768,-32768,-32768,  6427,  6453,  6479,  4989,-32768,  1985,  5010,
-32768,  6505,  2231,  2232,  4422,   113,  2234,    82,-32768,-32768,
  1991,-32768,   473,-32768,-32768,-32768,  6531,  6557,-32768,  1988,
  2248,  2253,  2254,  2262,  2264,  2265,-32768,  1995,  5031,  2008,
-32768,  6583,  2267,  2268,  2278,  3597,  2285,  2289,  2290,  1893,
  2034,  4422,  3651,  2039,  2297,  2302,  3086,  2303,  2304,  2305,
  2317,  2325,   113,  2069,  2071,  2329,-32768,  2072,-32768,-32768,
-32768,-32768,-32768,-32768,  4422,  2075,  2343,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  2085,-32768,  6609,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2098,-32768,-32768,
-32768,  2351,  2100,  5535,  4422,-32768,  2299,  4422,  3705,  2099,
  3890,  2355,  3944,  3998,-32768,  2357,-32768,  5052,   423,  5073,
-32768,-32768,-32768,-32768,  2358,  2360,-32768,  4422,  2361,  2106,
  4422,  4183,-32768,-32768,  5094,-32768,  2104,-32768,  6635,-32768,
  4422,  2240,-32768,  2366,  5565,  2369,-32768,-32768,  2106,  2368,
  2111,-32768,  2379,  2380,-32768
};

static const short yypgoto[] = {-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,   280,-32768,  -318,-32768,  1312,-32768,-32768,  1323,  -336,
-32768,  -484,-32768,  -406,  -542,   356,-32768,-32768,-32768,-32768,
   844,-32768,  -616,-32768,  -978,-32768,  -671,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,  1632,-32768,  1166,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,  1746,-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,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  1444,-32768,
-32768,-32768,-32768,-32768,-32768,-32768, -1109,  -710,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
 -1445,-32768,-32768,-32768,  1058,   874,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,   668,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,  1818,-32768,  1709,-32768,  2279,
-32768,  1804,  2169,  -320,-32768,   425,    24,   -60,-32768,-32768,
  1110,  -512,  -566,  -175,   -39,-32768,    -3,   -99,   -49
};


#define	YYLAST		6991


static const short yytable[] = {    28,
   302,    32,   439,     4,   545,  1283,    58,   178,   179,   667,
   867,   239,   239,   469,   470,   472,   499,    72,   676,   478,
  1184,   792,   479,   491,  1635,  1189,  1190,     4,   686,    89,
     4,   549,   690,   569,   173,  1241,   694,   541,   345,   345,
     4,     4,   196,   197,   171,  1244,   121,    82,     4,   189,
   195,   772,   773,   204,   210,   215,   220,   225,   230,   781,
   345,   345,     4,     4,     4,   239,    -2,     4,   321,  1069,
  1394,  1222,   357,  1070,  1071,   240,   240,    29,    29,   877,
   878,   879,   880,     4,     4,    33,   239,   613,    61,   541,
     5,     6,    73,    74,    75,   762,    76,   303,   486,   497,
   486,   240,  1253,    58,    58,    41,   190,    28,    11,   915,
    28,    28,    28,    28,    28,    28,   231,   -62,    62,   486,
   236,   236,   245,   248,   486,    63,  1171,    29,   768,   240,
  1676,   405,  1284,   188,   194,   486,  1636,   203,   209,   214,
   219,   224,   229,  1687,    73,    74,    75,  1172,    76,  1693,
   240,  1074,    64,   240,   362,    65,  1285,   998,  1702,  1000,
   486,  1075,  1076,  1077,  1708,  1709,   248,   310,   606,   916,
    29,    29,   495,     4,   487,   383,   487,  1065,   -62,     5,
     6,    73,    74,    75,   183,    76,   198,   199,    29,  1066,
     5,     6,    73,    74,    75,   487,    76,    11,   175,  1001,
   487,   882,    66,   883,  1254,   404,   306,   176,    11,   771,
   296,   487,  1358,    83,  1255,   307,   297,  1011,  1012,  1013,
  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,  1022,  1023,
  1024,  1025,  1026,     4,   237,  1031,   487,   351,   762,   762,
   762,   762,   184,    73,    74,    75,    67,    76,     4,   666,
    58,    84,  1072,    29,     5,     6,    73,    74,    75,   421,
    76,    73,    74,    75,   173,    76,    29,   241,   241,   205,
   471,    58,    11,   422,   171,     5,     6,    73,    74,    75,
  1128,    76,   912,  1423,  1637,   833,   834,   835,   836,    71,
   550,   346,   346,    11,  1242,    68,   769,   122,   596,   347,
   347,    58,   348,   348,  1245,   767,   402,  1291,   416,    69,
  1286,  1287,   417,   346,   346,   386,  1173,   245,  1078,   438,
    70,   241,   418,  1297,   348,   348,   791,   666,   245,   245,
   245,   206,   757,  1131,    30,  1211,    29,   245,  1193,    31,
    85,   884,   241,   191,   192,   241,   531,   452,   304,   351,
    86,    73,    74,    75,  1213,    76,     4,    54,   762,  1220,
    55,    56,   587,     4,    54,  1565,  1566,    55,    56,   488,
    73,    74,    75,  1067,    76,  1526,   762,   762,   762,   762,
   762,   762,   762,   762,   762,   762,   762,   762,   762,   762,
   762,   762,  1095,   425,   762,   808,   809,   536,  1090,   426,
  1091,    87,  1096,  1567,  1097,   314,   386,   427,  1092,   180,
    34,   885,    35,   500,   553,    88,   181,  1568,   315,   710,
   501,   712,   713,   714,    36,    37,    38,     4,   562,   316,
    73,    74,    75,   837,    76,  1926,   386,   614,   572,   544,
    90,    39,   423,   576,   185,  1933,   181,  1484,   913,   580,
  1144,   582,   583,  1146,     4,   584,  1145,   586,    58,  1147,
     5,     6,    73,    74,    75,     4,    76,  1236,  1237,   568,
    91,     5,     6,    73,    74,    75,   181,    76,    11,   905,
   107,   906,  1267,  1268,  1269,  1270,  1271,  1272,  1273,    11,
  1280,   419,     4,    92,   816,   817,  1893,   762,     5,     6,
    73,    74,    75,    93,    76,   719,    94,   200,   201,   293,
   294,   295,   820,   821,  1353,   296,    11,  1485,   600,    95,
  1989,   297,   778,  1991,  1360,   501,  1148,    96,   609,   207,
    97,     4,  1149,  1993,  1994,   501,    98,     5,     6,    73,
    74,    75,  1261,    76,   997,    99,    73,    74,    75,   453,
    76,     4,  1569,   108,  1295,    11,  2012,     5,     6,    73,
    74,    75,  1486,    76,  1894,   454,  1895,  1093,   100,  1487,
  1488,  1098,   123,   101,  1130,    11,   428,  1896,   171,   171,
  1038,  1668,   720,  1669,    57,   123,   171,   455,   102,   501,
  1897,    57,  1489,   413,   776,  1490,  1491,   777,   -65,    40,
  1036,    58,   830,   831,   763,   181,   853,   501,  1898,   351,
   103,   245,   120,   922,  1477,   129,   130,   131,    58,  1117,
   928,   842,   843,  1182,  1195,  1281,  1713,  1729,   840,  1118,
   501,  1196,   104,  1714,  1730,   850,   133,   134,   135,   136,
   105,   456,   138,   139,   140,   141,   142,   143,   144,   145,
   146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   156,   157,   158,   159,   160,   161,   162,  1119,  1120,  1121,
  1122,  1123,  1124,   762,   385,   386,   919,   920,   503,   386,
   106,   808,   933,   762,  1478,    28,   282,   810,   542,   543,
  1395,   128,    28,   547,  1492,  1732,  1843,   818,  1864,  1864,
   441,   822,  1730,  1844,  1378,   124,  1689,   612,   181,  1847,
   442,   832,   839,   211,   212,   844,  1848,   125,   457,   849,
   480,   481,   482,   483,   216,   217,   443,   430,    82,   126,
   444,  1942,  1207,  1208,  1209,  1210,  1479,   127,  1943,   484,
   177,  1468,   246,  1899,  1469,   431,  1223,   763,   763,   763,
   763,   221,   222,   887,   232,   432,   433,  1470,  1471,  1480,
  1481,  1472,  1473,   351,   434,   249,   435,  1238,  1239,   711,
   386,   250,    58,    58,   812,   813,  1051,  1052,  1053,  1054,
  1055,  1056,  1057,  1058,  1059,  1460,   251,  1060,  1461,  1260,
   226,   227,   252,  1061,   253,    73,    74,    75,  1125,    76,
   254,  1462,  1463,  1464,   814,   815,  1062,   823,   824,   255,
   847,   848,   825,   826,   858,   386,   256,  1178,  1179,  1180,
  1181,   298,  1749,  1750,  1751,  1752,  1753,  1754,   859,   386,
   810,   257,  1323,   258,   283,   284,   285,   286,   259,   287,
   288,   289,   290,   860,   386,   291,   292,   293,   294,   295,
   861,   386,  1879,   296,  1670,  1671,  1672,  1198,  1648,   297,
   164,  1482,   260,   854,   261,   165,  1474,   763,   166,  1367,
  1040,   386,  1041,  1042,    73,    74,    75,   356,    76,   445,
  1046,   386,  1008,  1347,   386,   763,   763,   763,   763,   763,
   763,   763,   763,   763,   763,   763,   763,   763,   763,   763,
   763,  1348,   386,   763,   262,   900,   901,   902,   903,   459,
  1465,   904,  1037,   351,   283,   284,   285,   286,   263,   287,
   288,   289,   290,   264,   436,   291,   292,   293,   294,   295,
  1618,  1619,  1620,   296,  1622,   283,   284,   285,   286,   297,
   287,   288,   289,   290,  1129,   265,   291,   292,   293,   294,
   295,   299,  1639,   460,   296,  1428,   266,   447,  1349,   386,
   297,  1431,  1350,   386,   267,   291,   292,   293,   294,   295,
  1127,  1539,  1063,   296,  1983,    77,    78,    79,    80,   297,
  1362,   386,  1548,   181,   129,   130,     4,  1542,  1543,  1550,
   181,  1547,  1571,   181,   448,  1573,   181,  1549,  1755,  1551,
   301,   449,   268,   461,   269,   462,   763,  1727,  1728,   270,
  1690,   138,   139,   140,   141,   142,   305,   762,  1737,   386,
  1294,  1263,  1296,  1264,  1265,  1266,  1657,   308,   463,  1739,
   386,  1572,   309,  1524,  1740,   386,  1574,  1785,  1786,  1854,
  1855,   271,  1531,  1911,  1912,  1920,   386,   245,   245,   245,
   245,  1695,  1324,   785,   786,   272,  1218,   273,   274,   275,
   313,   245,  1267,  1268,  1269,  1270,  1271,  1272,  1273,   171,
  1274,  1275,   328,  1231,   322,   341,   343,   353,   464,   358,
   359,   171,   245,   245,   406,   409,  1696,   410,   414,   466,
   473,  1080,  1248,  1081,  1082,  1083,  1084,  1085,  1086,  1087,
  1256,  1257,   474,   475,   245,   476,   477,   492,   504,   533,
   496,  1769,   505,  1771,  1290,  1293,    58,   508,    58,  1299,
  1300,  1880,   529,   535,  1301,   546,   450,   551,   552,  1306,
  1307,  1308,  1309,  1310,  1311,  1312,  1313,  1314,  1586,   554,
   555,   556,   558,   559,   560,   561,   563,   245,    58,  1325,
  1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,  1334,  1335,
  1336,  1337,  1338,  1806,  1340,   564,   565,   566,  1344,  1811,
   331,   332,   333,   334,   335,   336,   337,   338,   339,   129,
   130,     4,   763,   898,   899,   900,   901,   902,   903,   567,
  1630,   904,   763,   168,   174,   570,   571,   575,   573,   574,
   579,   577,   351,   581,   588,  1276,   138,   139,   140,   141,
   142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
   152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
   162,   233,   234,  1697,   585,   601,   593,   247,  1858,   283,
   284,   285,   286,   595,   287,   288,   289,   290,   597,  1673,
   291,   292,   293,   294,   295,   598,   599,   602,   296,   603,
  1088,   615,   604,   605,   297,   617,   645,   648,   660,   557,
   245,   653,   655,   276,   277,   278,   245,   657,   658,   659,
   283,   284,   285,   286,   661,   287,   288,   289,   290,   662,
   663,   291,   292,   293,   294,   295,   665,   668,   670,   296,
  1918,   672,   673,   675,   677,   297,   682,   683,   684,   685,
   693,   687,   691,   695,   594,   283,   284,   285,   286,   697,
   287,   288,   289,   290,   698,   699,   291,   292,   293,   294,
   295,   701,   702,   703,   296,  1923,   704,  1514,  1514,   708,
   297,   766,   709,   715,  1640,   718,  1642,  1643,   245,   764,
   774,  1698,   775,   783,   788,   791,   793,   245,   794,   795,
   796,   360,   361,  1965,   363,   364,   365,   366,   367,   368,
   369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
   379,   380,   381,   382,   797,   798,   806,   811,   805,   407,
   819,   387,   388,   389,   390,   391,   392,   393,   394,   395,
   396,   397,   398,   399,   400,   401,   827,  1818,   829,   681,
   841,   846,   851,   403,   856,   862,   864,   865,   866,   408,
   868,   870,   871,   168,   164,   415,   872,   873,   876,   165,
   881,   907,   166,   886,   914,  -675,   921,   467,   468,   941,
   789,   999,   943,   944,   945,   946,  1579,  1580,   992,   993,
   994,  1584,   995,   245,  1002,   493,  1003,   171,   171,   171,
   996,   171,   283,   284,   285,   286,   757,   287,   288,   289,
   290,  1004,  1005,   291,   292,   293,   294,   295,  1006,   171,
   904,   296,  1609,   894,   895,   896,   897,   297,  1009,   898,
   899,   900,   901,   902,   903,   530,  1027,   904,  1033,  1039,
  1625,  1626,  1050,  1628,  1629,   245,  1133,  1100,  1134,  1101,
  1102,  1135,  1103,  1136,  1137,   538,   539,  1138,  1700,  1142,
  1139,  1150,  1104,  1200,  1140,   828,   763,  1141,  1206,  1219,
  1224,  1143,  1151,  1152,  1153,  1226,  1154,  1155,  1156,  1105,
  1106,  1107,  1157,  1916,  1158,  1159,  1160,  1701,  1664,  1166,
  1161,  1162,   857,  1192,  1227,  1228,  1108,  1163,   915,  1164,
  1232,  1233,  1167,  1234,   245,  1165,  1168,  1187,  1674,  1183,
  1675,  1240,  1185,  1188,  1703,  1194,  1247,  1191,  1249,  1940,
   283,   284,   285,   286,  1250,   287,   288,   289,   290,  1251,
  1252,   291,   292,   293,   294,   295,  1217,  1258,  1259,   296,
  1302,   610,  1225,  1235,  1289,   297,  1346,  1705,  1305,  1339,
  1341,  1342,  1109,  1351,  1343,   646,   647,   918,  1355,  1793,
  1794,  1352,  1356,   129,   130,   131,  1800,  1357,   649,  1361,
  1363,  1368,  1369,  1370,   923,   650,   651,   652,   171,  1869,
   171,   654,  1371,  1373,   133,   134,   135,   136,  1375,  1376,
   138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   158,   159,   160,   161,   162,  1377,  1379,  1380,  1382,  1774,
  1383,  1776,  1384,  1387,  1110,  1388,  1389,  1390,  1391,  1392,
   171,  1111,  1393,  1396,  1398,  1399,   171,  1400,  1401,   706,
   707,  1402,  1856,  1403,  1857,  1405,  1407,  1408,  1409,  1410,
  1411,  1412,   717,  1413,  1414,    58,    58,  1415,  1416,  1417,
  1419,  1420,    58,  1421,  1422,  1424,  1425,   168,   168,  1426,
  1427,  1430,   779,   780,  1429,   168,   782,  1432,  1433,  1434,
   351,  1446,   787,  1436,   790,  1437,  1439,   283,   284,   285,
   286,  1440,   287,   288,   289,   290,  1441,  1442,   291,   292,
   293,   294,   295,  1444,  1445,   171,   296,  1447,  1448,  1449,
  1450,  1451,   297,  1452,  1458,  1502,   283,   284,   285,   286,
  1453,   287,   288,   289,   290,  1454,  1455,   291,   292,   293,
   294,   295,  1456,  1132,  1457,   296,  1495,  1494,    58,  1496,
    58,   297,  1497,   283,   284,   285,   286,  1498,   287,   288,
   289,   290,  1499,  1500,   291,   292,   293,   294,   295,  1517,
  1501,  1511,   296,  1504,  1503,  1519,  1505,   171,   297,  1804,
  1506,  1507,  1528,  1805,  1508,  1177,   283,   284,   285,   286,
  1509,   287,   288,   289,   290,  1520,  1510,   291,   292,   293,
   294,   295,  1521,  1522,  1523,   296,  1529,  1537,   245,  1541,
  1544,   297,  1538,  1545,   181,  1546,  1552,  1555,   164,  1540,
  1554,  1556,  1557,   165,   910,   911,   166,  1559,  1558,  1561,
  1563,  1576,  1201,  1564,   167,  1202,  1575,  1706,  1577,  1587,
   171,  1589,  1595,  1604,   245,   129,   130,   131,  1212,  1214,
  1215,  1216,   925,   926,   927,  1221,  1616,  1610,   929,   930,
  1611,  1614,  1623,  1624,   931,  1631,   133,   134,   135,   136,
  1632,  1638,   138,   139,   140,   141,   142,   143,   144,   145,
   146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
   156,   157,   158,   159,   160,   161,   162,  1641,  1660,  1650,
  1661,  1644,  1645,  1654,  1647,  1263,  1649,  1264,  1265,  1266,
  1662,  1663,   990,  1802,  1665,   991,  1666,  1710,  1667,  1688,
  1691,  1678,  1694,  1303,  1304,  1704,  1707,  1677,  1757,  1760,
  1763,  1679,  1684,  1764,  1716,  1683,  1315,  1717,  1685,   129,
   130,   721,  1715,  1733,  1724,  2010,  1267,  1268,  1269,  1270,
  1271,  1272,  1273,  1718,  1274,  1275,  1720,  1721,  1722,  1726,
  1734,  1725,  1741,  1736,  1745,  1028,   138,   139,   140,   141,
   142,   722,   723,   724,   725,   726,   727,   728,   729,   730,
   731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
   741,   742,   743,   744,   745,  1743,   746,   747,   129,   130,
     4,  1744,  1746,  1747,  1372,  1748,  1374,  1758,  1759,  1765,
  1859,  1766,  1860,  1381,  1768,  1861,  1775,  1787,  1790,  1791,
  1797,  1798,  1799,  1801,  1803,   138,   139,   140,   141,   142,
   143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
  1807,  1267,  1268,  1269,  1270,  1271,  1272,  1273,   748,  1862,
  1812,  1711,  1814,  1815,  1816,   749,   283,   284,   285,   286,
  1819,   287,   288,   289,   290,  1820,  1821,   291,   292,   293,
   294,   295,   129,   130,   721,   296,  1823,  1822,  1829,  1279,
   164,   297,  1830,  1831,  1199,   165,  1834,  1840,   166,  1832,
  1833,  1836,  1203,  1204,  1205,  1839,   167,  1841,  1868,   138,
   139,   140,   141,   142,   722,   723,   724,   725,   726,   727,
   728,   729,   730,   731,   732,   733,   734,   735,   736,   737,
   738,   739,   740,   741,   742,   743,   744,   745,  1842,   746,
   747,  1850,  1851,  1867,  1871,  1872,   283,   284,   285,   286,
  1878,   287,   288,   289,   290,  1881,  1532,   291,   292,   293,
   294,   295,  1882,  1883,  1888,   296,  1891,  1902,   168,  1904,
  1859,   297,  1860,  1905,  1906,  1861,  1909,   750,  1913,  1914,
   168,  1915,  1917,   751,   752,  1935,  1936,  1924,  1939,   753,
  1925,   666,   754,  1931,  1863,  1029,  1030,   755,   756,  1941,
   757,   748,  1946,  1316,  1947,  1318,  1948,  1320,   749,  1954,
  1949,  1267,  1268,  1269,  1270,  1271,  1272,  1273,  1950,  1862,
  1951,  1952,  1956,  1958,  1959,   283,   284,   285,   286,  1873,
   287,   288,   289,   290,  1960,  1345,   291,   292,   293,   294,
   295,  1962,  1578,   164,   296,  1963,  1964,  1966,   165,  1585,
   297,   166,  1969,  1970,  1590,   506,   407,  1593,  1971,  1973,
  1974,  1975,  1596,   888,   889,   890,   891,   892,   893,   894,
   895,   896,   897,  1976,  1606,   898,   899,   900,   901,   902,
   903,  1977,  1979,   904,  1980,  1981,  1982,  1615,  1985,  1617,
   283,   284,   285,   286,  1186,   287,   288,   289,   290,  1986,
  1988,   291,   292,   293,   294,   295,  1992,  1995,  1996,   296,
  1999,  2004,  2002,  2007,  2013,   297,  2014,  2016,  2023,  2017,
   750,  2026,  2027,  2029,  2031,  2032,   751,   752,  2034,  2035,
  1655,  1656,   753,  1658,  2030,   754,  1229,  1114,  1634,  1385,
   755,   756,   909,   757,   129,   130,   412,   132,  1230,  1515,
    55,  1809,   700,   238,  1866,   716,   344,     0,   807,     0,
     0,     0,     0,   852,     0,   133,   134,   135,   136,   137,
     0,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   157,   158,   159,   160,   161,   162,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,   129,   130,   131,   132,
   240,     0,    55,     0,  1527,     0,     0,     0,     0,     0,
     0,     0,     0,  1533,  1534,  1535,     0,   133,   134,   135,
   136,   137,     0,   138,   139,   140,   141,   142,   143,   144,
   145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   155,   156,   157,   158,   159,   160,   161,   162,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,  1874,  1777,
     0,     0,     0,   297,     0,  1779,     0,     0,     0,     0,
     0,     0,  1781,     0,     0,     0,    42,     0,     0,     0,
    43,     0,     0,     0,     0,     0,     0,     0,  1789,     0,
     0,  1581,  1582,  1583,  1875,     0,     0,     0,  1588,     0,
     0,  1591,  1592,     0,     0,     0,  1594,     0,     0,  1597,
  1598,  1599,  1600,     0,     0,  1601,  1602,  1603,     0,  1605,
     0,     0,     0,  1607,  1608,     0,     0,     0,  1612,  1613,
     0,     0,     0,     0,     0,    44,   168,   168,   168,  1621,
   168,    45,     0,     0,     0,  1627,     0,     0,     0,     0,
     0,     0,     0,   163,    46,     0,    47,     0,   168,     0,
     0,     0,     0,     0,     0,     0,     0,     0,    48,   164,
     0,     0,    49,     0,   165,     0,     0,   166,     0,     0,
     0,     0,   241,     0,    50,   167,     0,   283,   284,   285,
   286,     0,   287,   288,   289,   290,     0,     0,   291,   292,
   293,   294,   295,     0,     0,    51,   296,     0,     0,     0,
     0,     0,   297,     0,  1889,   163,     0,   507,     0,  1901,
     0,  1903,     0,     0,     0,     0,     0,     0,  1910,     0,
     0,   164,     0,     0,     0,     0,   165,     0,     0,   166,
   285,   286,     0,   287,   288,   289,   290,   167,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,   948,     0,
    52,     0,    53,   297,     0,     0,    73,    74,   949,  1938,
    76,     0,     0,     0,     0,     0,     0,  1735,     0,     0,
  1738,     0,     0,     0,     0,  1742,     0,   283,   284,   285,
   286,     0,   287,   288,   289,   290,     0,     0,   291,   292,
   293,   294,   295,     0,     0,     0,   296,     0,     0,     0,
     0,  1876,   297,     0,     0,     0,  1978,   168,  1770,   168,
  1772,  1773,     0,   283,   284,   285,   286,     0,   287,   288,
   289,   290,     0,     0,   291,   292,   293,   294,   295,     0,
     0,     0,   296,     0,     0,     0,     0,     0,   297,     0,
     0,     0,     0,  1788,     0,     0,     0,  1792,     0,     0,
  1795,  1796,     0,     0,     0,     0,  1877,     0,     0,   168,
     0,     0,     0,     0,     0,   168,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1824,
  1825,  1826,  1827,  1828,     0,   950,     0,   951,   952,   953,
   954,   955,   956,   957,   958,   959,   960,   961,   962,     0,
     0,     0,   963,     0,     0,   964,     0,     0,   965,     0,
     0,   966,     0,   967,   968,   969,   970,   971,   972,   973,
   974,   975,   976,   977,   978,   979,   980,   981,   982,     0,
     0,     0,   983,     0,   168,     0,     0,   984,     0,     0,
   985,     0,     0,     0,     0,  1870,   284,   285,   286,     0,
   287,   288,   289,   290,     0,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,  1884,  1885,  1886,  1887,     0,
   297,  1890,     0,  1892,     0,     0,     0,     0,     0,     0,
     0,  1907,  1908,     0,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,   168,  1919,     0,   296,
  1922,     0,     0,     0,     0,   297,     0,     0,   986,     0,
     0,     0,     0,     0,     0,     0,     0,   948,     0,     0,
     0,     0,     0,     0,  1937,    73,    74,   949,     0,    76,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,   168,
     0,  1967,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   948,     0,     0,     0,     0,     0,     0,     0,    73,
    74,   949,     0,    76,  1984,   283,   284,   285,   286,     0,
   287,   288,   289,   290,     0,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,     0,     0,     0,     0,     0,
   297,     0,  1972,     0,  1998,     0,     0,  2000,   890,   891,
   892,   893,   894,   895,   896,   897,     0,     0,   898,   899,
   900,   901,   902,   903,   591,     0,   904,  2015,     0,     0,
  2019,     0,     0,   948,     0,     0,     0,     0,     0,     0,
  2025,    73,    74,   949,   950,    76,   951,   952,   953,   954,
   955,   956,   957,   958,   959,   960,   961,   962,     0,     0,
     0,   963,     0,     0,   964,     0,   329,   965,     0,     0,
   966,     0,   967,   968,   969,   970,   971,   972,   973,   974,
   975,   976,   977,   978,   979,   980,   981,   982,     0,     0,
     0,   983,     0,     0,     0,     0,   984,     0,   950,   985,
   951,   952,   953,   954,   955,   956,   957,   958,   959,   960,
   961,   962,     0,     0,     0,   963,     0,     0,   964,     0,
     0,   965,     0,     0,   966,     0,   967,   968,   969,   970,
   971,   972,   973,   974,   975,   976,   977,   978,   979,   980,
   981,   982,     0,     0,     0,   983,     0,     0,     0,     0,
   984,     0,     0,   985,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1767,     0,     0,
   950,     0,   951,   952,   953,   954,   955,   956,   957,   958,
   959,   960,   961,   962,     0,     0,     0,   963,     0,     0,
   964,     0,     0,   965,     0,     0,   966,     0,   967,   968,
   969,   970,   971,   972,   973,   974,   975,   976,   977,   978,
   979,   980,   981,   982,     0,     0,     0,   983,   948,     0,
     0,  1778,   984,     0,     0,   985,    73,    74,   949,     0,
    76,   283,   284,   285,   286,     0,   287,   288,   289,   290,
     0,     0,   291,   292,   293,   294,   295,     0,     0,     0,
   296,     0,   283,   284,   285,   286,   297,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,   948,   592,     0,     0,     0,   297,     0,     0,
    73,    74,   949,     0,    76,     0,     0,     0,     0,     0,
     0,     0,     0,  1780,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
   532,     0,     0,   296,     0,     0,     0,     0,     0,   297,
     0,     0,     0,     0,     0,     0,   948,     0,     0,     0,
     0,     0,     0,     0,    73,    74,   949,     0,    76,   891,
   892,   893,   894,   895,   896,   897,     0,     0,   898,   899,
   900,   901,   902,   903,   590,   950,   904,   951,   952,   953,
   954,   955,   956,   957,   958,   959,   960,   961,   962,     0,
     0,     0,   963,     0,     0,   964,     0,     0,   965,     0,
     0,   966,     0,   967,   968,   969,   970,   971,   972,   973,
   974,   975,   976,   977,   978,   979,   980,   981,   982,     0,
     0,     0,   983,     0,     0,     0,     0,   984,     0,   950,
   985,   951,   952,   953,   954,   955,   956,   957,   958,   959,
   960,   961,   962,     0,     0,     0,   963,     0,     0,   964,
     0,     0,   965,     0,     0,   966,     0,   967,   968,   969,
   970,   971,   972,   973,   974,   975,   976,   977,   978,   979,
   980,   981,   982,     0,     0,     0,   983,     0,     0,     0,
     0,   984,     0,   950,   985,   951,   952,   953,   954,   955,
   956,   957,   958,   959,   960,   961,   962,     0,  1782,     0,
   963,     0,     0,   964,     0,     0,   965,     0,     0,   966,
     0,   967,   968,   969,   970,   971,   972,   973,   974,   975,
   976,   977,   978,   979,   980,   981,   982,     0,     0,     0,
   983,   948,     0,     0,     0,   984,     0,     0,   985,    73,
    74,   949,     0,    76,     0,     0,     0,     0,     0,     0,
     0,     0,  1783,     0,     0,     0,     0,     0,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,     0,     0,   297,     0,   948,     0,     0,     0,     0,
     0,     0,     0,    73,    74,   949,     0,    76,     0,     0,
     0,     0,   283,   284,   285,   286,  1784,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,   765,     0,
     0,   296,     0,     0,     0,     0,     0,   297,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   948,
     0,     0,     0,     0,     0,     0,     0,    73,    74,   949,
     0,    76,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  1035,   950,     0,
   951,   952,   953,   954,   955,   956,   957,   958,   959,   960,
   961,   962,     0,     0,     0,   963,     0,     0,   964,     0,
     0,   965,     0,     0,   966,     0,   967,   968,   969,   970,
   971,   972,   973,   974,   975,   976,   977,   978,   979,   980,
   981,   982,     0,     0,     0,   983,     0,     0,     0,     0,
   984,     0,   950,   985,   951,   952,   953,   954,   955,   956,
   957,   958,   959,   960,   961,   962,     0,     0,     0,   963,
     0,     0,   964,     0,     0,   965,     0,     0,   966,     0,
   967,   968,   969,   970,   971,   972,   973,   974,   975,   976,
   977,   978,   979,   980,   981,   982,     0,     0,     0,   983,
     0,     0,     0,     0,   984,     0,   950,   985,   951,   952,
   953,   954,   955,   956,   957,   958,   959,   960,   961,   962,
     0,  1961,     0,   963,     0,     0,   964,     0,     0,   965,
     0,     0,   966,     0,   967,   968,   969,   970,   971,   972,
   973,   974,   975,   976,   977,   978,   979,   980,   981,   982,
     0,     0,     0,   983,   948,     0,     0,     0,   984,     0,
     0,   985,    73,    74,   949,     0,    76,     0,     0,     0,
     0,     0,     0,     0,     0,  1968,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,     0,
     0,   297,     0,     0,     0,     0,     0,     0,   948,     0,
     0,     0,     0,     0,     0,     0,    73,    74,   949,     0,
    76,     0,     0,     0,     0,   283,   284,   285,   286,  2001,
   287,   288,   289,   290,     0,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,     0,     0,     0,     0,     0,
   297,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   948,     0,     0,     0,     0,     0,     0,     0,
    73,    74,   949,     0,    76,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,   950,     0,   951,   952,   953,   954,   955,   956,   957,
   958,   959,   960,   961,   962,     0,     0,     0,   963,     0,
     0,   964,     0,     0,   965,     0,     0,   966,     0,   967,
   968,   969,   970,   971,   972,   973,   974,   975,   976,   977,
   978,   979,   980,   981,   982,  1359,     0,     0,   983,     0,
     0,     0,     0,   984,     0,   950,   985,   951,   952,   953,
   954,   955,   956,   957,   958,   959,   960,   961,   962,     0,
     0,     0,   963,     0,     0,   964,     0,     0,   965,     0,
     0,   966,     0,   967,   968,   969,   970,   971,   972,   973,
   974,   975,   976,   977,   978,   979,   980,   981,   982,     0,
     0,     0,   983,     0,     0,     0,     0,   984,     0,   950,
   985,   951,   952,   953,   954,   955,   956,   957,   958,   959,
   960,   961,   962,     0,  2003,     0,   963,     0,     0,   964,
     0,     0,   965,     0,     0,   966,     0,   967,   968,   969,
   970,   971,   972,   973,   974,   975,   976,   977,   978,   979,
   980,   981,   982,   129,   130,   131,   983,   948,     0,     0,
     0,   984,     0,     0,   985,    73,    74,   949,     0,    76,
     0,     0,     0,     0,   133,   134,   135,   136,  2005,     0,
   138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
   148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
   158,   159,   160,   161,   162,     0,   129,   130,   131,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,  1197,
     0,     0,     0,     0,     0,     0,     0,   133,   134,   135,
   136,     0,  2006,   138,   139,   140,   141,   142,   143,   144,
   145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
   155,   156,   157,   158,   159,   160,   161,   162,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,   888,   889,   890,   891,   892,   893,   894,   895,
   896,   897,     0,     0,   898,   899,   900,   901,   902,   903,
     0,     0,   904,     0,   950,     0,   951,   952,   953,   954,
   955,   956,   957,   958,   959,   960,   961,   962,     0,     0,
     0,   963,     0,     0,   964,     0,     0,   965,     0,     0,
   966,     0,   967,   968,   969,   970,   971,   972,   973,   974,
   975,   976,   977,   978,   979,   980,   981,   982,     0,     0,
     0,   983,   129,   130,     4,   537,   984,     0,     0,   985,
     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,     0,     0,   138,
   139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
   149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
   159,   160,   161,   162,   129,   130,     4,     0,   164,     0,
     0,     0,     0,   165,     0,     0,   166,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,  2020,     0,     0,
     0,   138,   139,   140,   141,   142,   143,   144,   145,   146,
   147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
   157,   158,   159,   160,   161,   162,     4,     0,     0,     0,
     0,   164,     5,     6,     0,     0,   165,     0,     0,   166,
     7,     8,     9,    10,     0,   618,   283,   284,   285,   286,
    11,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,   283,   284,   285,
   286,   297,   287,   288,   289,   290,   519,     0,   291,   292,
   293,   294,   295,    12,     0,     0,   296,     0,     0,    13,
     0,     0,   297,     0,     0,     0,     0,   526,     0,     0,
     0,     0,    14,     0,    15,     0,   619,     0,     0,     0,
     0,     0,     0,     0,     0,     0,    16,     0,     0,     0,
    17,     0,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,    18,   291,   292,   293,   294,   295,   620,     0,
     0,   296,     0,     0,     0,     0,     0,   297,     0,     0,
     0,     0,   527,    19,     0,     0,     0,     0,     0,     0,
     0,     0,     0,     0,     0,     0,     0,   164,   621,     0,
     0,     0,   165,     0,     0,   166,     0,     0,     0,   622,
   623,   624,   625,   626,   627,   628,   629,   630,   631,   632,
   633,   634,   635,   636,   637,   638,   639,   640,   641,   642,
   643,   644,     0,     0,     0,     0,     0,     0,    20,     0,
    21,     0,     0,     0,     0,     0,     0,     0,     0,   164,
     0,     0,     0,     0,   165,     0,     0,   166,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,   283,
   284,   285,   286,   297,   287,   288,   289,   290,   528,     0,
   291,   292,   293,   294,   295,     0,     0,     0,   296,     0,
   283,   284,   285,   286,   297,   287,   288,   289,   290,   799,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   283,   284,   285,   286,   297,   287,   288,   289,   290,
   800,     0,   291,   292,   293,   294,   295,     0,     0,     0,
   296,     0,   283,   284,   285,   286,   297,   287,   288,   289,
   290,  1043,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,   283,   284,   285,   286,   297,   287,   288,
   289,   290,  1044,     0,   291,   292,   293,   294,   295,     0,
     0,     0,   296,     0,   283,   284,   285,   286,   297,   287,
   288,   289,   290,  1045,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,   283,   284,   285,   286,   297,
   287,   288,   289,   290,  1176,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,     0,   283,   284,   285,   286,
   297,   287,   288,   289,   290,  1364,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,   283,   284,   285,
   286,   297,   287,   288,   289,   290,  1365,     0,   291,   292,
   293,   294,   295,     0,     0,     0,   296,     0,   283,   284,
   285,   286,   297,   287,   288,   289,   290,  1366,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,   283,
   284,   285,   286,   297,   287,   288,   289,   290,  1459,     0,
   291,   292,   293,   294,   295,     0,     0,     0,   296,     0,
   283,   284,   285,   286,   297,   287,   288,   289,   290,  1467,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   283,   284,   285,   286,   297,   287,   288,   289,   290,
  1476,     0,   291,   292,   293,   294,   295,     0,     0,     0,
   296,     0,   283,   284,   285,   286,   297,   287,   288,   289,
   290,  1646,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,   283,   284,   285,   286,   297,   287,   288,
   289,   290,  1680,     0,   291,   292,   293,   294,   295,     0,
     0,     0,   296,     0,   283,   284,   285,   286,   297,   287,
   288,   289,   290,  1681,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,   283,   284,   285,   286,   297,
   287,   288,   289,   290,  1682,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,     0,   283,   284,   285,   286,
   297,   287,   288,   289,   290,  1686,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,   283,   284,   285,
   286,   297,   287,   288,   289,   290,  1692,     0,   291,   292,
   293,   294,   295,     0,     0,     0,   296,     0,   283,   284,
   285,   286,   297,   287,   288,   289,   290,  1699,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,   283,
   284,   285,   286,   297,   287,   288,   289,   290,  1719,     0,
   291,   292,   293,   294,   295,     0,     0,     0,   296,     0,
   283,   284,   285,   286,   297,   287,   288,   289,   290,  1837,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   283,   284,   285,   286,   297,   287,   288,   289,   290,
  1838,     0,   291,   292,   293,   294,   295,     0,     0,     0,
   296,     0,   283,   284,   285,   286,   297,   287,   288,   289,
   290,  1846,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,   283,   284,   285,   286,   297,   287,   288,
   289,   290,  1852,     0,   291,   292,   293,   294,   295,     0,
     0,     0,   296,     0,   283,   284,   285,   286,   297,   287,
   288,   289,   290,  1853,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,   283,   284,   285,   286,   297,
   287,   288,   289,   290,  1930,     0,   291,   292,   293,   294,
   295,     0,     0,     0,   296,     0,   283,   284,   285,   286,
   297,   287,   288,   289,   290,  1932,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,   283,   284,   285,
   286,   297,   287,   288,   289,   290,  1955,     0,   291,   292,
   293,   294,   295,     0,     0,     0,   296,     0,   283,   284,
   285,   286,   297,   287,   288,   289,   290,  2008,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,   283,
   284,   285,   286,   297,   287,   288,   289,   290,  2011,     0,
   291,   292,   293,   294,   295,     0,     0,     0,   296,     0,
   283,   284,   285,   286,   297,   287,   288,   289,   290,  2021,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,   300,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,   355,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,   540,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,   656,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1049,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1175,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1518,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1651,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1652,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1653,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1810,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1813,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1817,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1921,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  1997,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,     0,     0,   297,     0,     0,     0,  2028,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   330,     0,     0,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,   384,     0,     0,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,   509,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,   510,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,   511,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,   512,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,   513,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,   514,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,   515,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,   516,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,   517,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,   518,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,   520,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,   521,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,   522,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,   523,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,   524,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,   525,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,   534,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,   548,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   611,     0,     0,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,   801,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,   802,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,   803,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,   804,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,   855,     0,     0,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,   863,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,  1047,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,  1048,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,  1723,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,  1835,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,  1849,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,  1927,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,  1928,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,  1929,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,  1934,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,  1944,
     0,   297,   283,   284,   285,   286,     0,   287,   288,   289,
   290,     0,     0,   291,   292,   293,   294,   295,     0,     0,
     0,   296,     0,     0,     0,  1945,     0,   297,   283,   284,
   285,   286,     0,   287,   288,   289,   290,     0,     0,   291,
   292,   293,   294,   295,     0,     0,     0,   296,     0,     0,
     0,  1957,     0,   297,   283,   284,   285,   286,     0,   287,
   288,   289,   290,     0,     0,   291,   292,   293,   294,   295,
     0,     0,     0,   296,     0,     0,     0,  1990,     0,   297,
   283,   284,   285,   286,     0,   287,   288,   289,   290,     0,
     0,   291,   292,   293,   294,   295,     0,     0,     0,   296,
     0,     0,     0,  2024,     0,   297,   283,   284,   285,   286,
     0,   287,   288,   289,   290,     0,     0,   291,   292,   293,
   294,   295,     0,     0,     0,   296,     0,     0,     0,     0,
     0,   297,   888,   889,   890,   891,   892,   893,   894,   895,
   896,   897,     0,     0,   898,   899,   900,   901,   902,   903,
     0,     0,   904,     0,     0,     0,  1525,   888,   889,   890,
   891,   892,   893,   894,   895,   896,   897,     0,     0,   898,
   899,   900,   901,   902,   903,     0,     0,   904,     0,  1007,
   888,   889,   890,   891,   892,   893,   894,   895,   896,   897,
     0,     0,   898,   899,   900,   901,   902,   903,     0,     0,
   904
};

static const short yycheck[] = {     3,
   176,     5,   321,     5,   411,  1115,    10,   107,   108,   552,
   721,     5,     5,   332,   333,   334,   353,    21,   561,   340,
   999,   638,   341,   344,     5,  1004,  1005,     5,   571,    33,
     5,     5,   575,   440,    84,     5,   579,     5,     3,     3,
     5,     5,   264,   265,    84,     5,     5,    24,     5,   110,
   111,   618,   619,   114,   115,   116,   117,   118,   119,   626,
     3,     3,     5,     5,     5,     5,     0,     5,   258,    82,
     7,    64,   248,    86,    87,    69,    69,   268,   268,   751,
   752,   753,   754,     5,     5,   256,     5,   494,   258,     5,
    11,    12,    13,    14,    15,   608,    17,     7,    23,    64,
    23,    69,     5,   107,   108,     7,   110,   111,    29,     5,
   114,   115,   116,   117,   118,   119,   120,   258,   264,    23,
   124,   125,   126,   264,    23,   264,    75,   268,   613,    69,
  1576,   307,    86,   110,   111,    23,   117,   114,   115,   116,
   117,   118,   119,  1589,    13,    14,    15,    96,    17,  1595,
    69,    98,   264,    69,   254,   264,   110,   868,  1604,   870,
    23,   108,   109,   110,  1610,  1611,   264,   264,   489,    65,
   268,   268,   348,     5,    99,   275,    99,    69,   258,    11,
    12,    13,    14,    15,     5,    17,   264,   265,   268,    81,
    11,    12,    13,    14,    15,    99,    17,    29,   257,   871,
    99,     3,   264,     5,   107,   305,   257,   266,    29,   616,
   255,    99,  1191,   268,   117,   266,   261,   889,   890,   891,
   892,   893,   894,   895,   896,   897,   898,   899,   900,   901,
   902,   903,   904,     5,     6,   907,    99,   241,   751,   752,
   753,   754,    63,    13,    14,    15,   264,    17,     5,   264,
   254,   234,   265,   268,    11,    12,    13,    14,    15,    82,
    17,    13,    14,    15,   314,    17,   268,   261,   261,     5,
   264,   275,    29,    96,   314,    11,    12,    13,    14,    15,
   258,    17,   767,  1262,   265,   117,   118,   119,   120,   264,
   264,   256,   256,    29,   264,   264,   615,   256,   474,   264,
   264,   305,   267,   267,   264,   248,   257,   264,    82,   264,
   264,   265,    86,   256,   256,   266,   265,   321,   265,   259,
   264,   261,    96,   264,   267,   267,   264,   264,   332,   333,
   334,    67,   264,   258,   256,   258,   268,   341,  1010,   261,
   264,   143,   261,   264,   265,   261,   386,   324,   258,   353,
     6,    13,    14,    15,   258,    17,     5,     6,   871,   258,
     9,    10,   462,     5,     6,    78,    79,     9,    10,   232,
    13,    14,    15,   265,    17,  1354,   889,   890,   891,   892,
   893,   894,   895,   896,   897,   898,   899,   900,   901,   902,
   903,   904,    86,    82,   907,   264,   265,   257,    96,    88,
    98,     7,    96,   116,    98,   234,   266,    96,   106,   259,
     5,   213,     7,   259,   418,     7,   266,   130,   247,   595,
   266,   597,   598,   599,    19,    20,    21,     5,   432,   258,
    13,    14,    15,   265,    17,  1881,   266,   267,   442,   259,
     7,    36,   265,   447,   265,  1891,   266,    18,   769,   453,
   258,   455,   456,   258,     5,   459,   264,   461,   462,   264,
    11,    12,    13,    14,    15,     5,    17,  1084,  1085,   259,
     7,    11,    12,    13,    14,    15,   266,    17,    29,   261,
   258,   263,   122,   123,   124,   125,   126,   127,   128,    29,
   130,   265,     5,     7,   264,   265,    18,  1010,    11,    12,
    13,    14,    15,     7,    17,   605,     7,   264,   265,   249,
   250,   251,   264,   265,  1186,   255,    29,    88,   259,     7,
  1966,   261,   622,  1969,  1196,   266,   258,     7,   259,   265,
     7,     5,   264,  1979,  1980,   266,     7,    11,    12,    13,
    14,    15,  1109,    17,   865,     7,    13,    14,    15,    96,
    17,     5,   265,   256,  1121,    29,  2002,    11,    12,    13,
    14,    15,   133,    17,    86,   112,    88,   265,     7,   140,
   141,   265,   256,     7,   258,    29,   265,    99,   618,   619,
   917,  1560,   259,  1562,   233,   256,   626,   134,     7,   266,
   112,   233,   163,   314,   243,   166,   167,   246,   259,   194,
   259,   605,   264,   265,   608,   266,     8,   266,   130,   613,
     7,   615,   191,   789,    18,     3,     4,     5,   622,    86,
   796,   264,   265,   259,   259,   265,   259,   259,   689,    96,
   266,   266,     7,   266,   266,   696,    24,    25,    26,    27,
     7,   188,    30,    31,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    54,   134,   135,   136,
   137,   138,   139,  1186,   265,   266,   776,   777,   265,   266,
     7,   264,   265,  1196,    88,   689,     8,   664,   409,   410,
  1233,   264,   696,   414,   265,   259,   259,   674,  1808,  1809,
    86,   678,   266,   266,  1217,   258,     7,   265,   266,   259,
    96,   688,   689,   264,   265,   692,   266,   258,   265,   696,
   247,   248,   249,   250,   264,   265,   112,    68,   705,   258,
   116,   259,  1051,  1052,  1053,  1054,   140,   258,   266,   266,
   257,   140,     6,   265,   143,    86,  1065,   751,   752,   753,
   754,   264,   265,   757,   130,    96,    97,   156,   157,   163,
   164,   160,   161,   767,   105,     7,   107,  1086,  1087,   265,
   266,   258,   776,   777,   264,   265,    69,    70,    71,    72,
    73,    74,    75,    76,    77,   140,   258,    80,   143,  1108,
   264,   265,   258,    86,   258,    13,    14,    15,   265,    17,
   258,   156,   157,   158,   264,   265,    99,   264,   265,   258,
   264,   265,   264,   265,   265,   266,   258,   993,   994,   995,
   996,     7,    89,    90,    91,    92,    93,    94,   265,   266,
   807,   258,  1151,   258,   236,   237,   238,   239,   258,   241,
   242,   243,   244,   265,   266,   247,   248,   249,   250,   251,
   265,   266,  1831,   255,  1565,  1566,  1567,  1033,  1530,   261,
   248,   265,   258,   265,   258,   253,   265,   871,   256,  1206,
   265,   266,   265,   266,    13,    14,    15,   265,    17,   265,
   265,   266,   886,   265,   266,   889,   890,   891,   892,   893,
   894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
   904,   265,   266,   907,   258,   249,   250,   251,   252,    96,
   265,   255,   916,   917,   236,   237,   238,   239,   258,   241,
   242,   243,   244,   258,   265,   247,   248,   249,   250,   251,
  1497,  1498,  1499,   255,  1501,   236,   237,   238,   239,   261,
   241,   242,   243,   244,   948,   258,   247,   248,   249,   250,
   251,     7,  1519,   140,   255,  1274,   258,    96,   265,   266,
   261,  1280,   265,   266,   258,   247,   248,   249,   250,   251,
   947,  1378,   265,   255,  1953,   193,   194,   195,   196,   261,
   265,   266,   265,   266,     3,     4,     5,   264,   265,   265,
   266,  1398,   265,   266,   133,   265,   266,  1404,   265,  1406,
     7,   140,   258,   190,   258,   192,  1010,   265,   266,   258,
     7,    30,    31,    32,    33,    34,   266,  1530,   265,   266,
  1120,    81,  1122,    83,    84,    85,  1539,     7,   215,   265,
   266,  1438,     5,  1352,   265,   266,  1443,   264,   265,   265,
   266,   258,  1361,   265,   266,   265,   266,  1051,  1052,  1053,
  1054,     7,  1152,   629,   630,   258,  1060,   258,   258,   258,
   258,  1065,   122,   123,   124,   125,   126,   127,   128,  1109,
   130,   131,   264,  1077,   258,   258,   266,   258,   265,     5,
     5,  1121,  1086,  1087,   234,   234,     7,   234,   234,   264,
   264,    96,  1096,    98,    99,   100,   101,   102,   103,   104,
  1104,  1105,   264,   264,  1108,   264,   264,     8,   259,     7,
   266,  1678,   266,  1680,  1118,  1119,  1120,   259,  1122,  1123,
  1124,  1832,   259,   259,  1128,     7,   265,     5,     5,  1133,
  1134,  1135,  1136,  1137,  1138,  1139,  1140,  1141,  1457,   264,
     5,   264,     5,   264,     5,     5,   264,  1151,  1152,  1153,
  1154,  1155,  1156,  1157,  1158,  1159,  1160,  1161,  1162,  1163,
  1164,  1165,  1166,  1730,  1168,   264,   264,   234,  1172,  1736,
   199,   200,   201,   202,   203,   204,   205,   206,   207,     3,
     4,     5,  1186,   247,   248,   249,   250,   251,   252,   259,
  1509,   255,  1196,    84,    85,     5,     5,     5,   264,   264,
     5,   264,  1206,   264,     5,   265,    30,    31,    32,    33,
    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    54,   122,   123,     7,   264,   259,   208,   128,  1805,   236,
   237,   238,   239,   264,   241,   242,   243,   244,   264,  1568,
   247,   248,   249,   250,   251,   264,   264,     5,   255,   258,
   265,   130,   258,   258,   261,     7,     5,     7,     5,   426,
  1274,     7,     7,   164,   165,   166,  1280,     7,     7,     7,
   236,   237,   238,   239,     7,   241,   242,   243,   244,   234,
   264,   247,   248,   249,   250,   251,     7,     7,     7,   255,
  1867,     7,     7,     7,     7,   261,   234,     7,     5,     7,
   264,     7,     7,     7,   471,   236,   237,   238,   239,     7,
   241,   242,   243,   244,     7,     7,   247,   248,   249,   250,
   251,     7,     7,     7,   255,  1878,   265,  1341,  1342,     5,
   261,     8,   266,     7,  1520,     5,  1522,  1523,  1352,     7,
   264,     7,     5,     5,     5,   264,   264,  1361,   264,   264,
   264,   252,   253,  1930,   255,   256,   257,   258,   259,   260,
   261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
   271,   272,   273,   274,     3,   259,    66,     7,   264,   261,
     7,   282,   283,   284,   285,   286,   287,   288,   289,   290,
   291,   292,   293,   294,   295,   296,     7,  1744,     7,   566,
     7,     7,   265,   304,   264,   266,   259,   259,     7,   310,
   258,   258,   258,   314,   248,   316,   258,   258,     5,   253,
     3,   258,   256,     5,   259,   258,     6,   328,   329,     7,
   264,   258,   264,   264,   264,   264,  1450,  1451,   266,   264,
   264,  1455,   264,  1457,     5,   346,     5,  1497,  1498,  1499,
   264,  1501,   236,   237,   238,   239,   264,   241,   242,   243,
   244,   258,   258,   247,   248,   249,   250,   251,   243,  1519,
   255,   255,  1486,   241,   242,   243,   244,   261,   265,   247,
   248,   249,   250,   251,   252,   386,     3,   255,   264,   266,
  1504,  1505,   258,  1507,  1508,  1509,   258,    81,   258,    83,
    84,   258,    86,   258,   258,   406,   407,   258,     7,     7,
   258,   264,    96,     7,   258,   682,  1530,   258,   261,     5,
     5,   258,   258,   258,   258,     5,   258,   258,   258,   113,
   114,   115,   258,  1862,   258,   264,   264,     7,  1552,   264,
   258,   258,   709,   265,     5,     5,   130,   258,     5,   258,
     5,     5,   264,     5,  1568,   258,   258,   258,  1572,   259,
  1574,     5,   259,   259,     7,   259,     5,   258,     5,  1898,
   236,   237,   238,   239,     5,   241,   242,   243,   244,     5,
     5,   247,   248,   249,   250,   251,   264,     3,     3,   255,
     7,   492,   264,   264,     5,   261,   265,     7,     7,     5,
   258,   258,   186,     7,   264,   506,   507,   774,   264,  1719,
  1720,   266,   259,     3,     4,     5,  1726,   266,   519,   258,
   266,     7,     7,     7,   791,   526,   527,   528,  1678,  1815,
  1680,   532,     7,     7,    24,    25,    26,    27,     7,     7,
    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52,    53,    54,     7,     7,     7,     7,  1683,
     7,  1685,     7,     7,   258,     7,     7,     7,     7,     7,
  1730,   265,     7,   264,     5,     7,  1736,     7,     7,   590,
   591,     7,  1802,     7,  1804,     7,     7,     7,     7,     7,
     7,     7,   603,     7,     7,  1719,  1720,     7,     7,     7,
     7,     7,  1726,     7,     7,     5,     5,   618,   619,     5,
   258,   258,   623,   624,     7,   626,   627,   258,     5,     5,
  1744,   259,   633,     7,   635,     7,     7,   236,   237,   238,
   239,     7,   241,   242,   243,   244,     7,     7,   247,   248,
   249,   250,   251,     7,     7,  1805,   255,   259,   259,   266,
   266,   266,   261,   266,   259,   265,   236,   237,   238,   239,
   266,   241,   242,   243,   244,   266,   266,   247,   248,   249,
   250,   251,   266,   950,   266,   255,   259,   266,  1802,   266,
  1804,   261,   266,   236,   237,   238,   239,   266,   241,   242,
   243,   244,   266,   266,   247,   248,   249,   250,   251,     7,
   266,   259,   255,   266,   265,   264,   266,  1867,   261,   209,
   266,   266,     3,   213,   266,   992,   236,   237,   238,   239,
   266,   241,   242,   243,   244,   264,   266,   247,   248,   249,
   250,   251,   265,   264,   264,   255,   259,   266,  1862,     7,
     7,   261,   266,   112,   266,     7,   258,     7,   248,   266,
   259,     7,     7,   253,   765,   766,   256,     7,     3,     7,
     7,   264,  1039,     7,   264,  1042,     7,     7,     7,     7,
  1930,   264,   264,   264,  1898,     3,     4,     5,  1055,  1056,
  1057,  1058,   793,   794,   795,  1062,     7,   264,   799,   800,
   264,   264,     7,     7,   805,     5,    24,    25,    26,    27,
     7,   264,    30,    31,    32,    33,    34,    35,    36,    37,
    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
    48,    49,    50,    51,    52,    53,    54,   264,     5,   265,
     5,   259,   259,   266,   259,    81,   259,    83,    84,    85,
     5,     5,   853,   135,     7,   856,     7,     7,   259,     7,
     7,   266,     7,  1130,  1131,     7,     7,   259,     7,     7,
     7,   266,   259,     7,   259,   266,  1143,   259,   266,     3,
     4,     5,   266,   264,   259,  1999,   122,   123,   124,   125,
   126,   127,   128,   266,   130,   131,   266,   266,   266,   266,
   264,   259,   259,   266,   259,   906,    30,    31,    32,    33,
    34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
    44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    54,    55,    56,    57,    58,   265,    60,    61,     3,     4,
     5,   261,   259,   265,  1211,   259,  1213,   265,   259,     7,
    81,     7,    83,  1220,     7,    86,     7,     7,     7,     7,
     7,     7,     7,     7,     7,    30,    31,    32,    33,    34,
    35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
    45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
     7,   122,   123,   124,   125,   126,   127,   128,   122,   130,
   265,     7,   265,   264,   264,   129,   236,   237,   238,   239,
     7,   241,   242,   243,   244,     7,     7,   247,   248,   249,
   250,   251,     3,     4,     5,   255,     5,     7,   111,   265,
   248,   261,     7,   266,  1035,   253,   259,   259,   256,   266,
    16,   266,  1043,  1044,  1045,   266,   264,   266,   264,    30,
    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
    51,    52,    53,    54,    55,    56,    57,    58,   266,    60,
    61,   259,   259,   266,   266,     7,   236,   237,   238,   239,
     5,   241,   242,   243,   244,   264,  1363,   247,   248,   249,
   250,   251,     7,     7,     7,   255,   264,     7,  1109,     7,
    81,   261,    83,     7,     7,    86,     7,   241,     5,     5,
  1121,     5,   258,   247,   248,     5,     5,   259,     5,   253,
   259,   264,   256,   259,   265,   259,   260,   261,   262,   259,
   264,   122,   265,  1144,     7,  1146,     4,  1148,   129,   265,
     7,   122,   123,   124,   125,   126,   127,   128,     7,   130,
     7,     7,   265,     7,     7,   236,   237,   238,   239,     7,
   241,   242,   243,   244,     7,  1176,   247,   248,   249,   250,
   251,     7,  1449,   248,   255,     7,     7,   264,   253,  1456,
   261,   256,   264,     7,  1461,   266,   261,  1464,     7,     7,
     7,     7,  1469,   235,   236,   237,   238,   239,   240,   241,
   242,   243,   244,     7,  1481,   247,   248,   249,   250,   251,
   252,     7,   264,   255,   264,     7,   265,  1494,   264,  1496,
   236,   237,   238,   239,   266,   241,   242,   243,   244,     7,
   266,   247,   248,   249,   250,   251,   259,     7,   259,   255,
    62,     7,   264,     7,     7,   261,     7,     7,   265,   264,
   241,   132,     7,     5,     7,   265,   247,   248,     0,     0,
  1537,  1538,   253,  1540,  2029,   256,  1075,   944,  1515,  1224,
   261,   262,   761,   264,     3,     4,     5,     6,  1076,  1342,
     9,  1734,   585,   125,   265,   602,   238,    -1,   663,    -1,
    -1,    -1,    -1,   705,    -1,    24,    25,    26,    27,    28,
    -1,    30,    31,    32,    33,    34,    35,    36,    37,    38,
    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
    49,    50,    51,    52,    53,    54,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,
    69,    -1,     9,    -1,  1355,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,  1364,  1365,  1366,    -1,    24,    25,    26,
    27,    28,    -1,    30,    31,    32,    33,    34,    35,    36,
    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,     7,  1686,
    -1,    -1,    -1,   261,    -1,  1692,    -1,    -1,    -1,    -1,
    -1,    -1,  1699,    -1,    -1,    -1,     3,    -1,    -1,    -1,
     7,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1715,    -1,
    -1,  1452,  1453,  1454,     7,    -1,    -1,    -1,  1459,    -1,
    -1,  1462,  1463,    -1,    -1,    -1,  1467,    -1,    -1,  1470,
  1471,  1472,  1473,    -1,    -1,  1476,  1477,  1478,    -1,  1480,
    -1,    -1,    -1,  1484,  1485,    -1,    -1,    -1,  1489,  1490,
    -1,    -1,    -1,    -1,    -1,    62,  1497,  1498,  1499,  1500,
  1501,    68,    -1,    -1,    -1,  1506,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   232,    81,    -1,    83,    -1,  1519,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,   248,
    -1,    -1,    99,    -1,   253,    -1,    -1,   256,    -1,    -1,
    -1,    -1,   261,    -1,   111,   264,    -1,   236,   237,   238,
   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,
   249,   250,   251,    -1,    -1,   132,   255,    -1,    -1,    -1,
    -1,    -1,   261,    -1,  1841,   232,    -1,   266,    -1,  1846,
    -1,  1848,    -1,    -1,    -1,    -1,    -1,    -1,  1855,    -1,
    -1,   248,    -1,    -1,    -1,    -1,   253,    -1,    -1,   256,
   238,   239,    -1,   241,   242,   243,   244,   264,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,     5,    -1,
   187,    -1,   189,   261,    -1,    -1,    13,    14,    15,  1896,
    17,    -1,    -1,    -1,    -1,    -1,    -1,  1638,    -1,    -1,
  1641,    -1,    -1,    -1,    -1,  1646,    -1,   236,   237,   238,
   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,
   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,
    -1,     7,   261,    -1,    -1,    -1,  1943,  1678,  1679,  1680,
  1681,  1682,    -1,   236,   237,   238,   239,    -1,   241,   242,
   243,   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,
    -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,   261,    -1,
    -1,    -1,    -1,  1714,    -1,    -1,    -1,  1718,    -1,    -1,
  1721,  1722,    -1,    -1,    -1,    -1,     7,    -1,    -1,  1730,
    -1,    -1,    -1,    -1,    -1,  1736,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1750,
  1751,  1752,  1753,  1754,    -1,   142,    -1,   144,   145,   146,
   147,   148,   149,   150,   151,   152,   153,   154,   155,    -1,
    -1,    -1,   159,    -1,    -1,   162,    -1,    -1,   165,    -1,
    -1,   168,    -1,   170,   171,   172,   173,   174,   175,   176,
   177,   178,   179,   180,   181,   182,   183,   184,   185,    -1,
    -1,    -1,   189,    -1,  1805,    -1,    -1,   194,    -1,    -1,
   197,    -1,    -1,    -1,    -1,  1816,   237,   238,   239,    -1,
   241,   242,   243,   244,    -1,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,  1836,  1837,  1838,  1839,    -1,
   261,  1842,    -1,  1844,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,  1852,  1853,    -1,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,  1867,  1868,    -1,   255,
  1871,    -1,    -1,    -1,    -1,   261,    -1,    -1,   265,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,    -1,
    -1,    -1,    -1,    -1,  1895,    13,    14,    15,    -1,    17,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,  1930,
    -1,  1932,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    13,
    14,    15,    -1,    17,  1955,   236,   237,   238,   239,    -1,
   241,   242,   243,   244,    -1,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,
   261,    -1,     7,    -1,  1985,    -1,    -1,  1988,   237,   238,
   239,   240,   241,   242,   243,   244,    -1,    -1,   247,   248,
   249,   250,   251,   252,     8,    -1,   255,  2008,    -1,    -1,
  2011,    -1,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,
  2021,    13,    14,    15,   142,    17,   144,   145,   146,   147,
   148,   149,   150,   151,   152,   153,   154,   155,    -1,    -1,
    -1,   159,    -1,    -1,   162,    -1,     8,   165,    -1,    -1,
   168,    -1,   170,   171,   172,   173,   174,   175,   176,   177,
   178,   179,   180,   181,   182,   183,   184,   185,    -1,    -1,
    -1,   189,    -1,    -1,    -1,    -1,   194,    -1,   142,   197,
   144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   154,   155,    -1,    -1,    -1,   159,    -1,    -1,   162,    -1,
    -1,   165,    -1,    -1,   168,    -1,   170,   171,   172,   173,
   174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   184,   185,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,
   194,    -1,    -1,   197,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,    -1,
   142,    -1,   144,   145,   146,   147,   148,   149,   150,   151,
   152,   153,   154,   155,    -1,    -1,    -1,   159,    -1,    -1,
   162,    -1,    -1,   165,    -1,    -1,   168,    -1,   170,   171,
   172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
   182,   183,   184,   185,    -1,    -1,    -1,   189,     5,    -1,
    -1,   265,   194,    -1,    -1,   197,    13,    14,    15,    -1,
    17,   236,   237,   238,   239,    -1,   241,   242,   243,   244,
    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,
   255,    -1,   236,   237,   238,   239,   261,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,     5,   257,    -1,    -1,    -1,   261,    -1,    -1,
    13,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,   265,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
     8,    -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,   261,
    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    13,    14,    15,    -1,    17,   238,
   239,   240,   241,   242,   243,   244,    -1,    -1,   247,   248,
   249,   250,   251,   252,     8,   142,   255,   144,   145,   146,
   147,   148,   149,   150,   151,   152,   153,   154,   155,    -1,
    -1,    -1,   159,    -1,    -1,   162,    -1,    -1,   165,    -1,
    -1,   168,    -1,   170,   171,   172,   173,   174,   175,   176,
   177,   178,   179,   180,   181,   182,   183,   184,   185,    -1,
    -1,    -1,   189,    -1,    -1,    -1,    -1,   194,    -1,   142,
   197,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   153,   154,   155,    -1,    -1,    -1,   159,    -1,    -1,   162,
    -1,    -1,   165,    -1,    -1,   168,    -1,   170,   171,   172,
   173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   183,   184,   185,    -1,    -1,    -1,   189,    -1,    -1,    -1,
    -1,   194,    -1,   142,   197,   144,   145,   146,   147,   148,
   149,   150,   151,   152,   153,   154,   155,    -1,   265,    -1,
   159,    -1,    -1,   162,    -1,    -1,   165,    -1,    -1,   168,
    -1,   170,   171,   172,   173,   174,   175,   176,   177,   178,
   179,   180,   181,   182,   183,   184,   185,    -1,    -1,    -1,
   189,     5,    -1,    -1,    -1,   194,    -1,    -1,   197,    13,
    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   265,    -1,    -1,    -1,    -1,    -1,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,    -1,    -1,   261,    -1,     5,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    13,    14,    15,    -1,    17,    -1,    -1,
    -1,    -1,   236,   237,   238,   239,   265,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,     8,    -1,
    -1,   255,    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     5,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    13,    14,    15,
    -1,    17,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,     8,   142,    -1,
   144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
   154,   155,    -1,    -1,    -1,   159,    -1,    -1,   162,    -1,
    -1,   165,    -1,    -1,   168,    -1,   170,   171,   172,   173,
   174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
   184,   185,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,
   194,    -1,   142,   197,   144,   145,   146,   147,   148,   149,
   150,   151,   152,   153,   154,   155,    -1,    -1,    -1,   159,
    -1,    -1,   162,    -1,    -1,   165,    -1,    -1,   168,    -1,
   170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
   180,   181,   182,   183,   184,   185,    -1,    -1,    -1,   189,
    -1,    -1,    -1,    -1,   194,    -1,   142,   197,   144,   145,
   146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
    -1,   265,    -1,   159,    -1,    -1,   162,    -1,    -1,   165,
    -1,    -1,   168,    -1,   170,   171,   172,   173,   174,   175,
   176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
    -1,    -1,    -1,   189,     5,    -1,    -1,    -1,   194,    -1,
    -1,   197,    13,    14,    15,    -1,    17,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,   265,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,    -1,
    -1,   261,    -1,    -1,    -1,    -1,    -1,    -1,     5,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    13,    14,    15,    -1,
    17,    -1,    -1,    -1,    -1,   236,   237,   238,   239,   265,
   241,   242,   243,   244,    -1,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,
   261,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,     5,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    13,    14,    15,    -1,    17,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,   142,    -1,   144,   145,   146,   147,   148,   149,   150,
   151,   152,   153,   154,   155,    -1,    -1,    -1,   159,    -1,
    -1,   162,    -1,    -1,   165,    -1,    -1,   168,    -1,   170,
   171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
   181,   182,   183,   184,   185,     8,    -1,    -1,   189,    -1,
    -1,    -1,    -1,   194,    -1,   142,   197,   144,   145,   146,
   147,   148,   149,   150,   151,   152,   153,   154,   155,    -1,
    -1,    -1,   159,    -1,    -1,   162,    -1,    -1,   165,    -1,
    -1,   168,    -1,   170,   171,   172,   173,   174,   175,   176,
   177,   178,   179,   180,   181,   182,   183,   184,   185,    -1,
    -1,    -1,   189,    -1,    -1,    -1,    -1,   194,    -1,   142,
   197,   144,   145,   146,   147,   148,   149,   150,   151,   152,
   153,   154,   155,    -1,   265,    -1,   159,    -1,    -1,   162,
    -1,    -1,   165,    -1,    -1,   168,    -1,   170,   171,   172,
   173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
   183,   184,   185,     3,     4,     5,   189,     5,    -1,    -1,
    -1,   194,    -1,    -1,   197,    13,    14,    15,    -1,    17,
    -1,    -1,    -1,    -1,    24,    25,    26,    27,   265,    -1,
    30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
    40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
    50,    51,    52,    53,    54,    -1,     3,     4,     5,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    69,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,    25,    26,
    27,    -1,   265,    30,    31,    32,    33,    34,    35,    36,
    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
    47,    48,    49,    50,    51,    52,    53,    54,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,   235,   236,   237,   238,   239,   240,   241,   242,
   243,   244,    -1,    -1,   247,   248,   249,   250,   251,   252,
    -1,    -1,   255,    -1,   142,    -1,   144,   145,   146,   147,
   148,   149,   150,   151,   152,   153,   154,   155,    -1,    -1,
    -1,   159,    -1,    -1,   162,    -1,    -1,   165,    -1,    -1,
   168,    -1,   170,   171,   172,   173,   174,   175,   176,   177,
   178,   179,   180,   181,   182,   183,   184,   185,    -1,    -1,
    -1,   189,     3,     4,     5,     6,   194,    -1,    -1,   197,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    30,
    31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
    41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
    51,    52,    53,    54,     3,     4,     5,    -1,   248,    -1,
    -1,    -1,    -1,   253,    -1,    -1,   256,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   265,    -1,    -1,
    -1,    30,    31,    32,    33,    34,    35,    36,    37,    38,
    39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
    49,    50,    51,    52,    53,    54,     5,    -1,    -1,    -1,
    -1,   248,    11,    12,    -1,    -1,   253,    -1,    -1,   256,
    19,    20,    21,    22,    -1,    75,   236,   237,   238,   239,
    29,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,
   239,   261,   241,   242,   243,   244,   266,    -1,   247,   248,
   249,   250,   251,    62,    -1,    -1,   255,    -1,    -1,    68,
    -1,    -1,   261,    -1,    -1,    -1,    -1,   266,    -1,    -1,
    -1,    -1,    81,    -1,    83,    -1,   136,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    -1,    -1,
    99,    -1,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,   111,   247,   248,   249,   250,   251,   168,    -1,
    -1,   255,    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,
    -1,    -1,   266,   132,    -1,    -1,    -1,    -1,    -1,    -1,
    -1,    -1,    -1,    -1,    -1,    -1,    -1,   248,   198,    -1,
    -1,    -1,   253,    -1,    -1,   256,    -1,    -1,    -1,   209,
   210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
   220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
   230,   231,    -1,    -1,    -1,    -1,    -1,    -1,   187,    -1,
   189,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   248,
    -1,    -1,    -1,    -1,   253,    -1,    -1,   256,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,
   237,   238,   239,   261,   241,   242,   243,   244,   266,    -1,
   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,
   236,   237,   238,   239,   261,   241,   242,   243,   244,   266,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   236,   237,   238,   239,   261,   241,   242,   243,   244,
   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,
   255,    -1,   236,   237,   238,   239,   261,   241,   242,   243,
   244,   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,   236,   237,   238,   239,   261,   241,   242,
   243,   244,   266,    -1,   247,   248,   249,   250,   251,    -1,
    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,   241,
   242,   243,   244,   266,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,
   241,   242,   243,   244,   266,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,
   261,   241,   242,   243,   244,   266,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,
   239,   261,   241,   242,   243,   244,   266,    -1,   247,   248,
   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,
   238,   239,   261,   241,   242,   243,   244,   266,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,
   237,   238,   239,   261,   241,   242,   243,   244,   266,    -1,
   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,
   236,   237,   238,   239,   261,   241,   242,   243,   244,   266,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   236,   237,   238,   239,   261,   241,   242,   243,   244,
   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,
   255,    -1,   236,   237,   238,   239,   261,   241,   242,   243,
   244,   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,   236,   237,   238,   239,   261,   241,   242,
   243,   244,   266,    -1,   247,   248,   249,   250,   251,    -1,
    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,   241,
   242,   243,   244,   266,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,
   241,   242,   243,   244,   266,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,
   261,   241,   242,   243,   244,   266,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,
   239,   261,   241,   242,   243,   244,   266,    -1,   247,   248,
   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,
   238,   239,   261,   241,   242,   243,   244,   266,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,
   237,   238,   239,   261,   241,   242,   243,   244,   266,    -1,
   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,
   236,   237,   238,   239,   261,   241,   242,   243,   244,   266,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   236,   237,   238,   239,   261,   241,   242,   243,   244,
   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,
   255,    -1,   236,   237,   238,   239,   261,   241,   242,   243,
   244,   266,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,   236,   237,   238,   239,   261,   241,   242,
   243,   244,   266,    -1,   247,   248,   249,   250,   251,    -1,
    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,   241,
   242,   243,   244,   266,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,   261,
   241,   242,   243,   244,   266,    -1,   247,   248,   249,   250,
   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,   239,
   261,   241,   242,   243,   244,   266,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,   238,
   239,   261,   241,   242,   243,   244,   266,    -1,   247,   248,
   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,   237,
   238,   239,   261,   241,   242,   243,   244,   266,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,   236,
   237,   238,   239,   261,   241,   242,   243,   244,   266,    -1,
   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,
   236,   237,   238,   239,   261,   241,   242,   243,   244,   266,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,    -1,    -1,   261,    -1,    -1,    -1,   265,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   257,    -1,    -1,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,   257,    -1,    -1,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   257,    -1,    -1,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,   257,    -1,    -1,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,
    -1,   261,   236,   237,   238,   239,    -1,   241,   242,   243,
   244,    -1,    -1,   247,   248,   249,   250,   251,    -1,    -1,
    -1,   255,    -1,    -1,    -1,   259,    -1,   261,   236,   237,
   238,   239,    -1,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,    -1,    -1,    -1,   255,    -1,    -1,
    -1,   259,    -1,   261,   236,   237,   238,   239,    -1,   241,
   242,   243,   244,    -1,    -1,   247,   248,   249,   250,   251,
    -1,    -1,    -1,   255,    -1,    -1,    -1,   259,    -1,   261,
   236,   237,   238,   239,    -1,   241,   242,   243,   244,    -1,
    -1,   247,   248,   249,   250,   251,    -1,    -1,    -1,   255,
    -1,    -1,    -1,   259,    -1,   261,   236,   237,   238,   239,
    -1,   241,   242,   243,   244,    -1,    -1,   247,   248,   249,
   250,   251,    -1,    -1,    -1,   255,    -1,    -1,    -1,    -1,
    -1,   261,   235,   236,   237,   238,   239,   240,   241,   242,
   243,   244,    -1,    -1,   247,   248,   249,   250,   251,   252,
    -1,    -1,   255,    -1,    -1,    -1,   259,   235,   236,   237,
   238,   239,   240,   241,   242,   243,   244,    -1,    -1,   247,
   248,   249,   250,   251,   252,    -1,    -1,   255,    -1,   257,
   235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
    -1,    -1,   247,   248,   249,   250,   251,   252,    -1,    -1,
   255
};
/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
#line 3 "/usr/share/bison.simple"
/* This file comes from bison-1.28.  */

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   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.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

/* This is the parser code that is written into each bison parser
  when the %semantic_parser declaration is not specified in the grammar.
  It was written by Richard Stallman by simplifying the hairy parser
  used when %semantic_parser is specified.  */

#ifndef YYSTACK_USE_ALLOCA
#ifdef alloca
#define YYSTACK_USE_ALLOCA
#else /* alloca not defined */
#ifdef __GNUC__
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C.  */
#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
/* We think this test detects Watcom and Microsoft C.  */
/* This used to test MSDOS, but that is a bad idea
   since that symbol is in the user namespace.  */
#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
#if 0 /* No need for malloc.h, which pollutes the namespace;
	 instead, just don't use alloca.  */
#include <malloc.h>
#endif
#else /* not MSDOS, or __TURBOC__ */
#if defined(_AIX)
/* I don't know what this was needed for, but it pollutes the namespace.
   So I turned it off.   rms, 2 May 1997.  */
/* #include <malloc.h>  */
 #pragma alloca
#define YYSTACK_USE_ALLOCA
#else /* not MSDOS, or __TURBOC__, or _AIX */
#if 0
#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
		 and on HPUX 10.  Eventually we can turn this on.  */
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#endif /* __hpux */
#endif
#endif /* not _AIX */
#endif /* not MSDOS, or __TURBOC__ */
#endif /* not sparc */
#endif /* not GNU C */
#endif /* alloca not defined */
#endif /* YYSTACK_USE_ALLOCA not defined */

#ifdef YYSTACK_USE_ALLOCA
#define YYSTACK_ALLOC alloca
#else
#define YYSTACK_ALLOC malloc
#endif

/* Note: there must be only one dollar sign in this file.
   It is replaced by the list of actions, each action
   as one case of the switch.  */

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		-2
#define YYEOF		0
#define YYACCEPT	goto yyacceptlab
#define YYABORT 	goto yyabortlab
#define YYERROR		goto yyerrlab1
/* Like YYERROR except do call yyerror.
   This remains here temporarily to ease the
   transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */
#define YYFAIL		goto yyerrlab
#define YYRECOVERING()  (!!yyerrstatus)
#define YYBACKUP(token, value) \
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    { yychar = (token), yylval = (value);			\
      yychar1 = YYTRANSLATE (yychar);				\
      YYPOPSTACK;						\
      goto yybackup;						\
    }								\
  else								\
    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
while (0)

#define YYTERROR	1
#define YYERRCODE	256

#ifndef YYPURE
#define YYLEX		yylex()
#endif

#ifdef YYPURE
#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval, &yylloc)
#endif
#else /* not YYLSP_NEEDED */
#ifdef YYLEX_PARAM
#define YYLEX		yylex(&yylval, YYLEX_PARAM)
#else
#define YYLEX		yylex(&yylval)
#endif
#endif /* not YYLSP_NEEDED */
#endif

/* If nonreentrant, generate the variables here */

#ifndef YYPURE

int	yychar;			/*  the lookahead symbol		*/
YYSTYPE	yylval;			/*  the semantic value of the		*/
				/*  lookahead symbol			*/

#ifdef YYLSP_NEEDED
YYLTYPE yylloc;			/*  location data for the lookahead	*/
				/*  symbol				*/
#endif

int yynerrs;			/*  number of parse errors so far       */
#endif  /* not YYPURE */

#if YYDEBUG != 0
int yydebug;			/*  nonzero means print parse trace	*/
/* Since this is uninitialized, it does not stop multiple parsers
   from coexisting.  */
#endif

/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/

#ifndef	YYINITDEPTH
#define YYINITDEPTH 200
#endif

/*  YYMAXDEPTH is the maximum size the stacks can grow to
    (effective only if the built-in stack extension method is used).  */

#if YYMAXDEPTH == 0
#undef YYMAXDEPTH
#endif

#ifndef YYMAXDEPTH
#define YYMAXDEPTH 10000
#endif

/* Define __yy_memcpy.  Note that the size argument
   should be passed with type unsigned int, because that is what the non-GCC
   definitions require.  With GCC, __builtin_memcpy takes an arg
   of type size_t, but it can handle unsigned int.  */

#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
#else				/* not GNU C or C++ */
#ifndef __cplusplus

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (to, from, count)
     char *to;
     char *from;
     unsigned int count;
{
  register char *f = from;
  register char *t = to;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#else /* __cplusplus */

/* This is the most reliable way to avoid incompatibilities
   in available built-in functions on various systems.  */
static void
__yy_memcpy (char *to, char *from, unsigned int count)
{
  register char *t = to;
  register char *f = from;
  register int i = count;

  while (i-- > 0)
    *t++ = *f++;
}

#endif
#endif

#line 217 "/usr/share/bison.simple"

/* The user can define YYPARSE_PARAM as the name of an argument to be passed
   into yyparse.  The argument should have type void *.
   It should actually point to an object.
   Grammar actions can access the variable by casting it
   to the proper pointer type.  */

#ifdef YYPARSE_PARAM
#ifdef __cplusplus
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
#define YYPARSE_PARAM_DECL
#else /* not __cplusplus */
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
#endif /* not __cplusplus */
#else /* not YYPARSE_PARAM */
#define YYPARSE_PARAM_ARG
#define YYPARSE_PARAM_DECL
#endif /* not YYPARSE_PARAM */

/* Prevent warning if -Wstrict-prototypes.  */
#ifdef __GNUC__
#ifdef YYPARSE_PARAM
int yyparse (void *);
#else
int yyparse (void);
#endif
#endif

int
yyparse(YYPARSE_PARAM_ARG)
     YYPARSE_PARAM_DECL
{
  register int yystate;
  register int yyn;
  register short *yyssp;
  register YYSTYPE *yyvsp;
  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */

  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/

  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */

#ifdef YYLSP_NEEDED
  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
  YYLTYPE *yyls = yylsa;
  YYLTYPE *yylsp;

#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
#else
#define YYPOPSTACK   (yyvsp--, yyssp--)
#endif

  int yystacksize = YYINITDEPTH;
  int yyfree_stacks = 0;

#ifdef YYPURE
  int yychar;
  YYSTYPE yylval;
  int yynerrs;
#ifdef YYLSP_NEEDED
  YYLTYPE yylloc;
#endif
#endif

  YYSTYPE yyval;		/*  the variable used to return		*/
				/*  semantic values from the action	*/
				/*  routines				*/

  int yylen;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Starting parse\n");
#endif

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss - 1;
  yyvsp = yyvs;
#ifdef YYLSP_NEEDED
  yylsp = yyls;
#endif

/* Push a new state, which is found in  yystate  .  */
/* In all cases, when you get here, the value and location stacks
   have just been pushed. so pushing a state here evens the stacks.  */
yynewstate:

  *++yyssp = yystate;

  if (yyssp >= yyss + yystacksize - 1)
    {
      /* Give user a chance to reallocate the stack */
      /* Use copies of these so that the &'s don't force the real ones into memory. */
      YYSTYPE *yyvs1 = yyvs;
      short *yyss1 = yyss;
#ifdef YYLSP_NEEDED
      YYLTYPE *yyls1 = yyls;
#endif

      /* Get the current used size of the three stacks, in elements.  */
      int size = yyssp - yyss + 1;

#ifdef yyoverflow
      /* Each stack pointer address is followed by the size of
	 the data in use in that stack, in bytes.  */
#ifdef YYLSP_NEEDED
      /* This used to be a conditional around just the two extra args,
	 but that might be undefined if yyoverflow is a macro.  */
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yyls1, size * sizeof (*yylsp),
		 &yystacksize);
#else
      yyoverflow("parser stack overflow",
		 &yyss1, size * sizeof (*yyssp),
		 &yyvs1, size * sizeof (*yyvsp),
		 &yystacksize);
#endif

      yyss = yyss1; yyvs = yyvs1;
#ifdef YYLSP_NEEDED
      yyls = yyls1;
#endif
#else /* no yyoverflow */
      /* Extend the stack our own way.  */
      if (yystacksize >= YYMAXDEPTH)
	{
	  yyerror("parser stack overflow");
	  if (yyfree_stacks)
	    {
	      free (yyss);
	      free (yyvs);
#ifdef YYLSP_NEEDED
	      free (yyls);
#endif
	    }
	  return 2;
	}
      yystacksize *= 2;
      if (yystacksize > YYMAXDEPTH)
	yystacksize = YYMAXDEPTH;
#ifndef YYSTACK_USE_ALLOCA
      yyfree_stacks = 1;
#endif
      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
      __yy_memcpy ((char *)yyss, (char *)yyss1,
		   size * (unsigned int) sizeof (*yyssp));
      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
		   size * (unsigned int) sizeof (*yyvsp));
#ifdef YYLSP_NEEDED
      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
      __yy_memcpy ((char *)yyls, (char *)yyls1,
		   size * (unsigned int) sizeof (*yylsp));
#endif
#endif /* no yyoverflow */

      yyssp = yyss + size - 1;
      yyvsp = yyvs + size - 1;
#ifdef YYLSP_NEEDED
      yylsp = yyls + size - 1;
#endif

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
#endif

      if (yyssp >= yyss + yystacksize - 1)
	YYABORT;
    }

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Entering state %d\n", yystate);
#endif

  goto yybackup;
 yybackup:

/* Do appropriate processing given the current state.  */
/* Read a lookahead token if we need one and don't already have one.  */
/* yyresume: */

  /* First try to decide what to do without reference to lookahead token.  */

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* yychar is either YYEMPTY or YYEOF
     or a valid token in external form.  */

  if (yychar == YYEMPTY)
    {
#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Reading a token: ");
#endif
      yychar = YYLEX;
    }

  /* Convert token to internal form (in yychar1) for indexing tables with */

  if (yychar <= 0)		/* This means end of input. */
    {
      yychar1 = 0;
      yychar = YYEOF;		/* Don't call YYLEX any more */

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Now at end of input.\n");
#endif
    }
  else
    {
      yychar1 = YYTRANSLATE(yychar);

#if YYDEBUG != 0
      if (yydebug)
	{
	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
	  /* Give the individual parser a way to print the precise meaning
	     of a token, for further debugging info.  */
#ifdef YYPRINT
	  YYPRINT (stderr, yychar, yylval);
#endif
	  fprintf (stderr, ")\n");
	}
#endif
    }

  yyn += yychar1;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
    goto yydefault;

  yyn = yytable[yyn];

  /* yyn is what to do for this token type in this state.
     Negative => reduce, -yyn is rule number.
     Positive => shift, yyn is new state.
       New state is final state => don't bother to shift,
       just return success.
     0, or most negative number => error.  */

  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrlab;

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Shift the lookahead token.  */

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
#endif

  /* Discard the token being shifted unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  /* count tokens shifted since error; after three, turn off error status.  */
  if (yyerrstatus) yyerrstatus--;

  yystate = yyn;
  goto yynewstate;

/* Do the default action for the current state.  */
yydefault:

  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;

/* Do a reduction.  yyn is the number of a rule to reduce with.  */
yyreduce:
  yylen = yyr2[yyn];
  if (yylen > 0)
    yyval = yyvsp[1-yylen]; /* implement default value of the action */

#if YYDEBUG != 0
  if (yydebug)
    {
      int i;

      fprintf (stderr, "Reducing via rule %d (line %d), ",
	       yyn, yyrline[yyn]);

      /* Print the symbols being reduced, and their result.  */
      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
    }
#endif


  switch (yyn) {

case 1:
#line 340 "GetDP.y"
{ if (++YaccLevel == 1) {
	ConstantTable_L = List_Create(20, 10, sizeof(struct Constant)) ;
	ListDummy_L     = List_Create( 1, 1, sizeof(int)) ; /* Do not delete */
	ListOfInt_L     = List_Create(20, 10, sizeof(int)) ;
	ListOfTwoInt_L  = List_Create(20, 10, sizeof(struct TwoInt)) ;
	ListOfPointer_L = List_Create(10, 10, sizeof(void *)) ;
	ListOfPointer2_L= List_Create(10, 10, sizeof(void *)) ;
	ListOfChar_L    = List_Create(128, 128, sizeof(char)) ;

	ListOfFormulation       = List_Create(5,5, sizeof(int)) ;

	ListOfBasisFunction     = List_Create(5,5, sizeof(List_T *)) ;
	ListOfEntityIndex       = List_Create(5,5, sizeof(int)) ;
      }
    ;
    break;}
case 2:
#line 356 "GetDP.y"
{ if (--YaccLevel == 0) {
	List_Delete(ListOfInt_L) ; List_Delete(ListOfTwoInt_L) ;  
	List_Delete(ListOfPointer_L) ; List_Delete(ListOfPointer2_L) ; 
	List_Delete(ListOfChar_L) ;

	List_Delete(ListOfFormulation) ;

	List_Delete(ListOfBasisFunction) ;
	List_Delete(ListOfEntityIndex) ;
      }
    ;
    break;}
case 4:
#line 380 "GetDP.y"
{ Formulation_S.DefineQuantity = NULL ; ;
    break;}
case 18:
#line 403 "GetDP.y"
{            
      strcpy(yyincludename, yyvsp[0].c); yyincludenum++ ; return(0);
    ;
    break;}
case 20:
#line 418 "GetDP.y"
{ Help(NULL); ;
    break;}
case 21:
#line 420 "GetDP.y"
{ Help("Print"); ;
    break;}
case 22:
#line 422 "GetDP.y"
{ Help("Check"); ;
    break;}
case 23:
#line 424 "GetDP.y"
{ Help("Log"); ;
    break;}
case 24:
#line 426 "GetDP.y"
{ Help("Log"); ;
    break;}
case 25:
#line 428 "GetDP.y"
{ Help("Help"); ;
    break;}
case 26:
#line 430 "GetDP.y"
{ Help(yyvsp[-1].c); ;
    break;}
case 27:
#line 432 "GetDP.y"
{ Msg(RESOURCES, ""); ;
    break;}
case 28:
#line 434 "GetDP.y"
{ Print_ProblemStructure(&Problem_S); ;
    break;}
case 29:
#line 436 "GetDP.y"
{ Print_Group(&Problem_S); ;
    break;}
case 30:
#line 438 "GetDP.y"
{ Print_Expression(&Problem_S); ;
    break;}
case 31:
#line 440 "GetDP.y"
{ Print_Constraint(&Problem_S); ;
    break;}
case 32:
#line 442 "GetDP.y"
{ Print_Jacobian(&Problem_S); ;
    break;}
case 33:
#line 444 "GetDP.y"
{ Print_Integration(&Problem_S); ;
    break;}
case 34:
#line 446 "GetDP.y"
{ Print_FunctionSpace(&Problem_S); ;
    break;}
case 35:
#line 448 "GetDP.y"
{ Print_Formulation(&Problem_S); ;
    break;}
case 36:
#line 450 "GetDP.y"
{ Print_Resolution(&Problem_S); ;
    break;}
case 37:
#line 452 "GetDP.y"
{ Print_PostProcessing(&Problem_S); ;
    break;}
case 38:
#line 454 "GetDP.y"
{ Print_PostOperation(&Problem_S); ;
    break;}
case 39:
#line 456 "GetDP.y"
{ Print_Object(yyvsp[-1].i, &Problem_S); ;
    break;}
case 40:
#line 458 "GetDP.y"
{
      PostOperation_S.Name = NULL ;  
      PostOperation_S.AppendString = NULL ;  
      PostOperation_S.Format = FORMAT_GMSH ;  
      PostOperation_S.PostProcessingIndex = -1 ; 
      PostSubOperation_S.Format = -1 ;
    ;
    break;}
case 41:
#line 466 "GetDP.y"
{
      if(PostSubOperation_S.Format<0)
	PostSubOperation_S.Format = PostOperation_S.Format ;
      InteractivePostSubOperation_S = PostSubOperation_S ;
      InteractiveCompute = 1;
    ;
    break;}
case 44:
#line 490 "GetDP.y"
{ Add_Group(&Group_S, yyvsp[-3].c, 0, 0) ; ;
    break;}
case 45:
#line 493 "GetDP.y"
{ Add_Group(&Group_S, yyvsp[-4].c, 2, yyvsp[-3].i) ; ;
    break;}
case 46:
#line 499 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Add_Group(&Group_S, yyvsp[-4].c, 0, 0) ;
    ;
    break;}
case 49:
#line 509 "GetDP.y"
{ Add_Group_2(&Group_S, yyvsp[-4].c, 1, 0, 0, 0) ; ;
    break;}
case 52:
#line 519 "GetDP.y"
{ 
      Group_S.InitialList = List_Create( 1, 1, sizeof(int)) ;
      i = (int)yyvsp[-3].d ;
      List_Add(Group_S.InitialList, &i) ;
      Group_S.Type         = MOVINGBAND2D ;  
      Group_S.FunctionType = REGION ;
      Group_S.InitialSuppList = NULL ;
      Group_S.SuppListType = SUPPLIST_NONE ;
    ;
    break;}
case 53:
#line 529 "GetDP.y"
{
      Group_S.MovingBand2D = (struct MovingBand2D *)Malloc(sizeof(struct MovingBand2D)) ;
      Group_S.MovingBand2D->InitialList1 = yyvsp[0].l ; 
      Group_S.MovingBand2D->ExtendedList1 = NULL ; 
      Group_S.MovingBand2D->PhysNum = (int)yyvsp[-7].d ; 
    ;
    break;}
case 54:
#line 536 "GetDP.y"
{
      Group_S.MovingBand2D->InitialList2 = yyvsp[-4].l ; 
      Add_Group(&Group_S, yyvsp[-17].c, 0, 0) ; 
      Group_S.MovingBand2D->Period2 = (int)yyvsp[-2].d ; 
    ;
    break;}
case 55:
#line 546 "GetDP.y"
{
      Group_S.FunctionType = yyvsp[-2].i ;
      switch (Group_S.FunctionType) {
      case ELEMENTSOF :  Group_S.Type = ELEMENTLIST ;  break ;
      default :          Group_S.Type = REGIONLIST  ;  break ;
      }
      Group_S.InitialList = yyvsp[0].l ;
    ;
    break;}
case 56:
#line 555 "GetDP.y"
{
      Group_S.SuppListType = Type_SuppList ;
      Group_S.InitialSuppList = yyvsp[-1].l ;
      yyval.i = -1 ;
    ;
    break;}
case 57:
#line 563 "GetDP.y"
{
      Group_S.FunctionType = REGION ;  Group_S.Type = REGIONLIST  ;
      Group_S.InitialList = yyvsp[0].l ;
      Group_S.SuppListType = SUPPLIST_NONE ;  Group_S.InitialSuppList = NULL ;
      yyval.i = -1 ;
    ;
    break;}
case 58:
#line 574 "GetDP.y"
{
      yyval.i = yyvsp[0].i ;
    ;
    break;}
case 59:
#line 579 "GetDP.y"
{
      if ( !strcmp(yyvsp[0].c, "All") ) {
	yyval.i = -3;
      }
      else if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) >= 0 ) {
	List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ;
      }
      else {
	yyval.i = -2 ; vyyerror("Unknown Group: %s", yyvsp[0].c) ;
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 60:
#line 596 "GetDP.y"
{
      if (!Flag_MultipleIndex) {
	if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[-1].c, fcmp_Group_Name)) >= 0 )
	  List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ;
      }
      else {
	List_Reset(ListOfInt_L) ;  /* For list of multiple region */

	for (k = 0 ; k < Nbr_Index ; k++) {
	  sprintf(tmpstr, "%s_%d", yyvsp[-1].c, k+1) ;
	  if ( (i = List_ISearchSeq(Problem_S.Group, tmpstr,
				    fcmp_Group_Name)) < 0 ) {
	    yyval.i = -2 ; vyyerror("Unknown Group: %s {%d}", yyvsp[-1].c, k+1) ;
	  }
	  else {
	    if (k == 0) {
	      List_Read(Problem_S.Group, i, &Group_S) ; yyval.i = i ;
	    }
	  }
	  List_Add(ListOfInt_L, &i) ;
	}
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 61:
#line 626 "GetDP.y"
{ yyval.i = REGION ; ;
    break;}
case 62:
#line 629 "GetDP.y"
{ yyval.i = Get_DefineForString(FunctionForGroup_Type, yyvsp[0].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Function for Group: %s", yyvsp[0].c);
	Get_Valid_SXD(FunctionForGroup_Type);
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 63:
#line 641 "GetDP.y"
{ yyval.l = yyvsp[0].l ; ;
    break;}
case 64:
#line 642 "GetDP.y"
{ yyval.l = NULL ; ;
    break;}
case 65:
#line 649 "GetDP.y"
{ Type_SuppList = SUPPLIST_NONE ;  yyval.l = NULL ; ;
    break;}
case 66:
#line 652 "GetDP.y"
{ Type_SuppList = yyvsp[-1].i ; yyval.l = yyvsp[0].l ; ;
    break;}
case 67:
#line 655 "GetDP.y"
{
      Type_SuppList = SUPPLIST_INSUPPORT ;
      if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) >= 0 ) {
	if ( ((struct Group *)List_Pointer(Problem_S.Group, i))->Type == 
	     ELEMENTLIST ) {
	  yyval.l = List_Create( 1, 5, sizeof(int)) ;
	  List_Add(yyval.l, &i) ;
	}
	else  vyyerror("Not a Support of Element Type: %s", yyvsp[0].c) ;
      }
      else  vyyerror("Unknown Region for Support: %s", yyvsp[0].c) ;
      Free(yyvsp[0].c) ;
    ;
    break;}
case 68:
#line 673 "GetDP.y"
{ yyval.i = Get_DefineForString(FunctionForGroup_SuppList, yyvsp[0].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Supplementary Region: %s", yyvsp[0].c);
	Get_Valid_SXD(FunctionForGroup_SuppList);
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 69:
#line 686 "GetDP.y"
{
      yyval.l = List_Create(((List_Nbr(yyvsp[0].l) > 0)? List_Nbr(yyvsp[0].l) : 1), 5, sizeof(int)) ;
      for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++)
	List_Add(yyval.l, (int *)List_Pointer(yyvsp[0].l, i) ) ;
    ;
    break;}
case 70:
#line 693 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 71:
#line 700 "GetDP.y"
{
      yyval.l = List_Create( 5, 5, sizeof(int)) ;
    ;
    break;}
case 72:
#line 705 "GetDP.y"
{
      yyval.l = yyvsp[-2].l ;
      for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++)
	List_Add(yyval.l, (int *)List_Pointer(yyvsp[0].l, i) ) ;
    ;
    break;}
case 73:
#line 712 "GetDP.y"
{
      yyval.l = yyvsp[-3].l ;
      for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++)
	List_Suppress(yyval.l, (int *)List_Pointer(yyvsp[0].l, i), fcmp_int ) ;
    ;
    break;}
case 74:
#line 723 "GetDP.y"
{
      List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &(yyvsp[0].i)) ;
    ;
    break;}
case 75:
#line 729 "GetDP.y"
{
      i = (int)yyvsp[-1].d ;
      List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ;
    ;
    break;}
case 76:
#line 736 "GetDP.y"
{ 
      List_Reset(ListOfInt_L) ;  
      
      for(i=0 ; i<List_Nbr(yyvsp[-1].l) ; i++) {
	List_Read(yyvsp[-1].l, i, &d) ; j = (int)d ;
	List_Add(ListOfInt_L, &j) ;
      }
      yyval.l = ListOfInt_L;
    ;
    break;}
case 77:
#line 747 "GetDP.y"
{ 
      List_Reset(ListOfInt_L) ; 
      for(j=yyvsp[-2].i ; (yyvsp[-2].i<yyvsp[0].d)?(j<=yyvsp[0].d):(j>=yyvsp[0].d) ; (yyvsp[-2].i<yyvsp[0].d)?j++:j--) 
	List_Add(ListOfInt_L, &j) ;
      yyval.l = ListOfInt_L ;
    ;
    break;}
case 78:
#line 756 "GetDP.y"
{ 
      List_Reset(ListOfInt_L) ; 
      for(j=(int)yyvsp[-3].d ; (yyvsp[-3].d<yyvsp[0].d)?(j<=yyvsp[0].d):(j>=yyvsp[0].d) ; (yyvsp[-3].d<yyvsp[0].d)?j++:j--) 
	List_Add(ListOfInt_L, &j) ;
      yyval.l = ListOfInt_L ;
    ;
    break;}
case 79:
#line 764 "GetDP.y"
{ 
      List_Reset(ListOfInt_L) ; 
      if(!(int)yyvsp[0].d || (yyvsp[-4].i<(int)yyvsp[-2].d && (int)yyvsp[0].d<0) || (yyvsp[-4].i>(int)yyvsp[-2].d && (int)yyvsp[0].d>0)){
	vyyerror("Wrong increment in '%d : %d : %d'", yyvsp[-4].i, (int)yyvsp[-2].d, (int)yyvsp[0].d) ;
	List_Add(ListOfInt_L, &(yyvsp[-4].i)) ;
      }
      else
	for(j=yyvsp[-4].i ; ((int)yyvsp[0].d>0)?(j<=yyvsp[-2].d):(j>=yyvsp[-2].d) ; j+=(int)yyvsp[0].d) 
	  List_Add(ListOfInt_L, &j) ;
      yyval.l = ListOfInt_L ;
    ;
    break;}
case 80:
#line 778 "GetDP.y"
{ 
      List_Reset(ListOfInt_L) ; 
      if(!(int)yyvsp[0].d || ((int)yyvsp[-5].d<(int)yyvsp[-2].d && (int)yyvsp[0].d<0) || ((int)yyvsp[-5].d>(int)yyvsp[-2].d && (int)yyvsp[0].d>0)){
	vyyerror("Wrong increment in '%d : %d : %d'", (int)yyvsp[-5].d, (int)yyvsp[-2].d, (int)yyvsp[0].d) ;
	 i = (int)yyvsp[-5].d ; List_Add(ListOfInt_L, &i) ;
      }
      else
	for(j=(int)yyvsp[-5].d ; ((int)yyvsp[0].d>0)?(j<=(int)yyvsp[-2].d):(j>=(int)yyvsp[-2].d) ; j+=(int)yyvsp[0].d) 
	  List_Add(ListOfInt_L, &j) ;
      yyval.l = ListOfInt_L ;
    ;
    break;}
case 81:
#line 791 "GetDP.y"
{
      if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) < 0 ) {
	/* Si ce n'est pas un nom de groupe, est-ce un nom de constante ? : */
	Constant_S.Name = yyvsp[0].c ;
	if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) {
	  vyyerror("Unknown Constant: %s", yyvsp[0].c) ;
	  i = 0 ;
	  List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ;
	}
	else
	  if (Constant_S.Type == VAR_FLOAT) {
	    i = (int)Constant_S.Value.Float ;
	    List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ;
	  }
	  else if (Constant_S.Type == VAR_LISTOFFLOAT) {
	    List_Reset(yyval.l = ListOfInt_L) ;
	    for(i=0 ; i<List_Nbr(Constant_S.Value.ListOfFloat) ; i++) {
	      List_Read(Constant_S.Value.ListOfFloat, i, &d) ; j = (int)d ;
	      List_Add(ListOfInt_L, &j) ;
	    }
	  }
	  else {
	    vyyerror("Unknown type of Constant: %s", yyvsp[0].c) ;
	    i = 0 ;
	    List_Reset(ListOfInt_L) ; List_Add(yyval.l = ListOfInt_L, &i) ;
	  }
      }
      else   /* Si c'est un nom de groupe : */
	yyval.l = ((struct Group *)List_Pointer(Problem_S.Group, i))->InitialList ;
      Free(yyvsp[0].c) ;
    ;
    break;}
case 83:
#line 830 "GetDP.y"
{ if ( (i = List_ISearchSeq(Problem_S.Group, yyvsp[0].c, fcmp_Group_Name)) < 0 ) {
	Group_S.Type = REGIONLIST ; Group_S.FunctionType = REGION ;
	Group_S.InitialList = ListDummy_L ;
	Group_S.SuppListType = SUPPLIST_NONE ; Group_S.InitialSuppList = NULL ;
	i = Add_Group(&Group_S, yyvsp[0].c, 0, 0) ;
      }
      else  Free(yyvsp[0].c) ;
    ;
    break;}
case 84:
#line 840 "GetDP.y"
{ 
      for (k = 0 ; k < (int)yyvsp[-1].d ; k++) {
	sprintf(tmpstr, "%s_%d", yyvsp[-3].c, k+1) ;
	if ( (i = List_ISearchSeq(Problem_S.Group, tmpstr,
				  fcmp_Group_Name)) < 0 ) {
	  Group_S.Type = REGIONLIST ; Group_S.FunctionType = REGION ;
	  Group_S.SuppListType = SUPPLIST_NONE ; Group_S.InitialSuppList = NULL ;
	  Group_S.InitialList = ListDummy_L ;
	  Add_Group(&Group_S, yyvsp[-3].c, 2, k+1) ;
	}
      }
      Free(yyvsp[-3].c) ;
    ;
    break;}
case 87:
#line 862 "GetDP.y"
{ yyval.i = (int)yyvsp[-1].d ; ;
    break;}
case 88:
#line 867 "GetDP.y"
{ Flag_MultipleIndex = 0 ; ;
    break;}
case 89:
#line 868 "GetDP.y"
{ Flag_MultipleIndex = 1 ; ;
    break;}
case 90:
#line 873 "GetDP.y"
{ yyval.i = (int)yyvsp[-1].d ; ;
    break;}
case 94:
#line 892 "GetDP.y"
{
      if ( (i = List_ISearchSeq
	    (Problem_S.Expression, yyvsp[-5].c, fcmp_Expression_Name)) >= 0 ) {
	if (((struct Expression *)List_Pointer(Problem_S.Expression, i))->Type ==
	    UNDEFINED_EXP) {
	  Free(((struct Expression *)List_Pointer(Problem_S.Expression, i))->Name) ;
	  List_Read (Problem_S.Expression, yyvsp[-1].i, &Expression_S) ;
	  List_Write(Problem_S.Expression,  i, &Expression_S) ;
	  ((struct Expression *)List_Pointer(Problem_S.Expression, i))->Name = yyvsp[-5].c ;
	  List_Pop(Problem_S.Expression) ;
	}
	else  { vyyerror("Redefinition of Function: %s", yyvsp[-5].c) ; }
      }
      else {  /* new identifier */
	Free(((struct Expression *)List_Pointer(Problem_S.Expression, yyvsp[-1].i))->Name) ;
	((struct Expression *)List_Pointer(Problem_S.Expression, yyvsp[-1].i))->Name = yyvsp[-5].c ;
      }
    ;
    break;}
case 95:
#line 912 "GetDP.y"
{
      if ( (i = List_ISearchSeq
	    (Problem_S.Expression, yyvsp[-6].c, fcmp_Expression_Name)) < 0 ) {
	/* Si le nom n'existe pas : */
	i = List_Nbr(Problem_S.Expression) ;
	Expression_S.Type = PIECEWISEFUNCTION ;
	Expression_S.Case.PieceWiseFunction.ExpressionPerRegion =
	  List_Create( 5, 5, sizeof(struct ExpressionPerRegion)) ;
	Expression_S.Case.PieceWiseFunction.NumLastRegion = -1 ;
	Add_Expression(&Expression_S, yyvsp[-6].c, 0) ;
	Expression_P = (struct Expression*)List_Pointer(Problem_S.Expression, i) ;
      }
      else {
	Expression_P = (struct Expression*)List_Pointer(Problem_S.Expression, i) ;
	if (Expression_P->Type == UNDEFINED_EXP) {
	  Expression_P->Type = PIECEWISEFUNCTION ;
	  Expression_P->Case.PieceWiseFunction.ExpressionPerRegion =
	    List_Create( 5, 5, sizeof(struct ExpressionPerRegion)) ;
	  Expression_P->Case.PieceWiseFunction.NumLastRegion = -1 ;
	}
	else if (Expression_P->Type != PIECEWISEFUNCTION)
	  vyyerror("Not piece-wise Expression: %s", yyvsp[-6].c) ;
	Free(yyvsp[-6].c) ;
      }

      if (yyvsp[-4].i >= 0 || yyvsp[-4].i == -1) {
	ExpressionPerRegion_S.ExpressionIndex = yyvsp[-1].i ;
	for (i = 0 ; i < List_Nbr(Group_S.InitialList) ; i++) {
	  List_Read(Group_S.InitialList, i, &ExpressionPerRegion_S.RegionIndex) ;

	  if (List_Search(Expression_P->Case.PieceWiseFunction.ExpressionPerRegion,
			  &ExpressionPerRegion_S.RegionIndex, fcmp_int))
	    vyyerror("Redefinition of piece-wise Function: %s [%d]",
		     Expression_P->Name, ExpressionPerRegion_S.RegionIndex) ;
	  else
	    List_Add(Expression_P->Case.PieceWiseFunction.ExpressionPerRegion,
		     &ExpressionPerRegion_S) ;
	}
	if (yyvsp[-4].i == -1) { List_Delete(Group_S.InitialList) ; }
      }
      else  vyyerror("Bad Group right hand side") ;
    ;
    break;}
case 99:
#line 965 "GetDP.y"
{
      if ( (i = List_ISearchSeq
	    (Problem_S.Expression, yyvsp[0].c, fcmp_Expression_Name)) < 0 ) {
	Expression_S.Type = UNDEFINED_EXP ;
	Add_Expression(&Expression_S, yyvsp[0].c, 0) ;
      }
      else  Free(yyvsp[0].c) ;
    ;
    break;}
case 100:
#line 985 "GetDP.y"
{ Expression_S.Type = CONSTANT ;  Expression_S.Case.Constant = yyvsp[-1].d ;
      yyval.i = Add_Expression(&Expression_S, "Exp_Cst", 1) ;
    ;
    break;}
case 101:
#line 991 "GetDP.y"
{ if((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-1].c, fcmp_Expression_Name)) < 0)
	vyyerror("Unknown name of Expression: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;  yyval.i = i ;
    ;
    break;}
case 102:
#line 997 "GetDP.y"
{ Current_DofIndexInWholeQuantity = -2 ;  
      List_Reset(ListOfPointer_L) ; List_Reset(ListOfPointer2_L) ; ;
    break;}
case 103:
#line 1000 "GetDP.y"
{ Expression_S.Type = WHOLEQUANTITY ;  Expression_S.Case.WholeQuantity = yyvsp[0].l ;
      yyval.i = Add_Expression(&Expression_S, "Exp_Fct", 1) ; ;
    break;}
case 104:
#line 1007 "GetDP.y"
{ List_Reset(ListOfInt_L) ; ;
    break;}
case 106:
#line 1018 "GetDP.y"
{ List_Reset(ListOfInt_L) ;  List_Add(ListOfInt_L, &(yyvsp[0].i)) ; ;
    break;}
case 107:
#line 1021 "GetDP.y"
{ List_Add(ListOfInt_L, &(yyvsp[0].i)) ; ;
    break;}
case 108:
#line 1027 "GetDP.y"
{ Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ;
      List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ;
    ;
    break;}
case 109:
#line 1031 "GetDP.y"
{ yyval.l = *((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ;
      List_Pop(ListOfPointer_L) ;
    ;
    break;}
case 111:
#line 1043 "GetDP.y"
{
      WholeQuantity_S.Type = WQ_TEST ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;

      WholeQuantity_P = (struct WholeQuantity*)
	List_Pointer(Current_WholeQuantity_L, List_Nbr(Current_WholeQuantity_L)-1);
      List_Add(ListOfPointer2_L, &WholeQuantity_P);
      List_Add(ListOfPointer2_L, &WholeQuantity_P);

      Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ;
      List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ;
    ;
    break;}
case 112:
#line 1056 "GetDP.y"
{
      WholeQuantity_P = 
	*((struct WholeQuantity**)
	  List_Pointer(ListOfPointer2_L, List_Nbr(ListOfPointer2_L)-1)) ;
      List_Pop(ListOfPointer2_L) ;

      WholeQuantity_P->Case.Test.WholeQuantity_True =
	*((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ;
      List_Pop(ListOfPointer_L) ;

      Current_WholeQuantity_L = List_Create( 5, 5, sizeof(struct WholeQuantity)) ;
      List_Add(ListOfPointer_L, &Current_WholeQuantity_L) ;
    ;
    break;}
case 113:
#line 1070 "GetDP.y"
{
      WholeQuantity_P = 
	*((struct WholeQuantity**)
	  List_Pointer(ListOfPointer2_L, List_Nbr(ListOfPointer2_L)-1)) ;
      List_Pop(ListOfPointer2_L) ;

      WholeQuantity_P->Case.Test.WholeQuantity_False =
	*((List_T **)List_Pointer(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1)) ;
      List_Pop(ListOfPointer_L) ;

      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1,
		&Current_WholeQuantity_L) ;
    ;
    break;}
case 114:
#line 1085 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_TIME ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ProductValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 115:
#line 1091 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_CROSSPRODUCT ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_CrossProductValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 116:
#line 1097 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_CROSSPRODUCT ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_CrossProductValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 117:
#line 1103 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_DIVIDE ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_DivideValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 118:
#line 1109 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_PLUS ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_AddValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 119:
#line 1115 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_MINUS ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_SubstractValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 120:
#line 1121 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_MODULO ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ModuloValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 121:
#line 1127 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_POWER ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_PowerValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 122:
#line 1133 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_LESS ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_LessValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 123:
#line 1139 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_GREATER ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_GreaterValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 124:
#line 1145 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_LESSOREQUAL ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_LessOrEqualValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 125:
#line 1151 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_GREATEROREQUAL ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_GreaterOrEqualValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 126:
#line 1157 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_EQUAL ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_EqualValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 127:
#line 1163 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_NOTEQUAL ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NotEqualValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 128:
#line 1169 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_APPROXEQUAL ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_ApproxEqualValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 129:
#line 1175 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_AND ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_AndValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 130:
#line 1181 "GetDP.y"
{ WholeQuantity_S.Type = WQ_BINARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_OR ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_OrValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; 
    ;
    break;}
case 131:
#line 1188 "GetDP.y"
{ WholeQuantity_S.Type = WQ_UNARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_NEG ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NegValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ;
    break;}
case 133:
#line 1196 "GetDP.y"
{ WholeQuantity_S.Type = WQ_UNARYOPERATOR ;
      WholeQuantity_S.Case.Operator.TypeOperator = OP_NOT ;
      WholeQuantity_S.Case.Operator.Function = (void (*)())Cal_NotValue ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ; ;
    break;}
case 135:
#line 1209 "GetDP.y"
{ WholeQuantity_S.Type = WQ_CONSTANT ;
      WholeQuantity_S.Case.Constant = yyvsp[0].d ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 136:
#line 1215 "GetDP.y"
{

      /* Expression */

      if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-2].c,fcmp_Expression_Name)) >= 0) {  
	WholeQuantity_S.Type = WQ_EXPRESSION ;
	WholeQuantity_S.Case.Expression.Index = i ;
	WholeQuantity_S.Case.Expression.NbrArguments = yyvsp[-1].i ;
	if (yyvsp[-1].i < 0)  vyyerror("Uncompatible argument for Function: %s", yyvsp[-2].c) ;
      }

      /* Built in functions */

      else { 
	Get_Function2NbrForString(F_Function, yyvsp[-2].c, &FlagError,
				  &WholeQuantity_S.Case.Function.Fct,
				  &WholeQuantity_S.Case.Function.NbrParameters,
				  &WholeQuantity_S.Case.Function.NbrArguments) ;
	WholeQuantity_S.Case.Function.Active = NULL ;
	if (!FlagError) {

	  /* arguments */
	  if (yyvsp[-1].i >= 0) {
	    if (yyvsp[-1].i == WholeQuantity_S.Case.Function.NbrArguments) {
	      WholeQuantity_S.Type = WQ_BUILTINFUNCTION ;
	    }
	    else if (WholeQuantity_S.Case.Function.NbrArguments == -1  ||
		     (WholeQuantity_S.Case.Function.NbrArguments == -2 )) { 
	      /* && ($2)%2 == 0)) { */
	      WholeQuantity_S.Type = WQ_BUILTINFUNCTION ;
	      WholeQuantity_S.Case.Function.NbrArguments = yyvsp[-1].i ;
	    }
	    else {
	      vyyerror("Wrong number of arguments for Function '%s' (%d instead of %d)", 
		       yyvsp[-2].c, yyvsp[-1].i, WholeQuantity_S.Case.Function.NbrArguments) ;
	    }
	  }
	  else {
	    WholeQuantity_S.Type = WQ_EXTERNBUILTINFUNCTION ;
	  }

	  /* parameters */
	  if (WholeQuantity_S.Case.Function.NbrParameters >= 0 &&
	      WholeQuantity_S.Case.Function.NbrParameters != List_Nbr(yyvsp[0].l)) {
	    vyyerror("Wrong number of parameters for Function '%s' (%d instead of %d)", 
		     yyvsp[-2].c, List_Nbr(yyvsp[0].l), WholeQuantity_S.Case.Function.NbrParameters) ;
	  }
	  else if (WholeQuantity_S.Case.Function.NbrParameters == -2 && List_Nbr(yyvsp[0].l)%2 != 0) {
	    vyyerror("Wrong number of parameters for Function '%s' (%d is not even)",
		     yyvsp[-2].c, List_Nbr(yyvsp[0].l)) ;
	  }
	  else {
	    WholeQuantity_S.Case.Function.NbrParameters = List_Nbr(yyvsp[0].l) ;
	    if (WholeQuantity_S.Case.Function.NbrParameters > 0) {
	      WholeQuantity_S.Case.Function.Para =
		(double *)Malloc
		(WholeQuantity_S.Case.Function.NbrParameters * sizeof(double)) ;
	      for (i = 0 ; i < WholeQuantity_S.Case.Function.NbrParameters ; i++)
		List_Read(yyvsp[0].l, i, &WholeQuantity_S.Case.Function.Para[i]) ;
	    }
	  }

	}

	else {
	  vyyerror("Unknown Function: %s", yyvsp[-2].c) ;
	}
      }

      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 137:
#line 1289 "GetDP.y"
{ WholeQuantity_S.Type = WQ_OPERATORANDQUANTITY ;
      WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = 0 ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity =
	Get_DefineForString(QuantityFromFS_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of discrete Quantity: %s", yyvsp[-1].c);
	Get_Valid_SXD(QuantityFromFS_Type) ;
      }
      Free(yyvsp[-1].c) ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[0].t.Int1 ;
      WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[0].t.Int2 ;

      switch(WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity) {
      case QUANTITY_DOF :
	if (Current_DofIndexInWholeQuantity == -1)
	  Current_DofIndexInWholeQuantity = List_Nbr(Current_WholeQuantity_L) ;
	else if (Current_DofIndexInWholeQuantity == -2)
	  vyyerror("Dof{} definition out of context") ;
	else
	  vyyerror("More than one Dof definition in Expression") ;
	break ;
      case QUANTITY_NODOF :
	if (Current_DofIndexInWholeQuantity == -2)
	  vyyerror("NoDof definition out of context") ;
	else if (Current_NoDofIndexInWholeQuantity == -1)
	  Current_NoDofIndexInWholeQuantity = List_Nbr(Current_WholeQuantity_L) ;
	else
	  vyyerror("More than one NoDof definition in Expression") ;
	break ;
      }
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 138:
#line 1323 "GetDP.y"
{ WholeQuantity_S.Type = WQ_OPERATORANDQUANTITY ;
      WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = 0 ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity = QUANTITY_SIMPLE ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[0].t.Int1 ;
      WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[0].t.Int2 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 139:
#line 1332 "GetDP.y"
{ 
      if(yyvsp[0].i!=1 && yyvsp[0].i!=3 && yyvsp[0].i!=4)
	vyyerror("Wrong number of arguments for discrete quantity evaluation (%d)", yyvsp[0].i) ;
      WholeQuantity_S.Type = WQ_OPERATORANDQUANTITYEVAL ;
      WholeQuantity_S.Case.OperatorAndQuantity.NbrArguments = yyvsp[0].i ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeQuantity = QUANTITY_SIMPLE ;
      WholeQuantity_S.Case.OperatorAndQuantity.TypeOperator = yyvsp[-1].t.Int1 ;
      WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 140:
#line 1344 "GetDP.y"
{ Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ;
    break;}
case 141:
#line 1346 "GetDP.y"
{ WholeQuantity_S.Type = WQ_TIMEDERIVATIVE ;
      WholeQuantity_S.Case.TimeDerivative.WholeQuantity = yyvsp[-1].l ;
      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1,
		&Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;

      if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity)
	vyyerror("Dof{} definition out of context") ;
    ;
    break;}
case 142:
#line 1358 "GetDP.y"
{ Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ;
    break;}
case 143:
#line 1360 "GetDP.y"
{ WholeQuantity_S.Type = WQ_ATANTERIORTIMESTEP ;
      WholeQuantity_S.Case.AtAnteriorTimeStep.WholeQuantity = yyvsp[-3].l ;
      WholeQuantity_S.Case.AtAnteriorTimeStep.TimeStep = yyvsp[-1].i ;
      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1,
		&Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;

      if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity)
	vyyerror("Dof{} definition out of context") ;
    ;
    break;}
case 144:
#line 1372 "GetDP.y"
{ Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ;
    break;}
case 145:
#line 1374 "GetDP.y"
{
      if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-8].c,fcmp_Expression_Name)) < 0) 
	vyyerror("Undefined function '%s' used in MHTransform", yyvsp[-8].c) ;
      if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity)
	vyyerror("Dof{} definition cannot be used in MHTransform") ;
      WholeQuantity_S.Type = WQ_MHTRANSFORM ; 
      WholeQuantity_S.Case.MHTransform.Index = i ;
      WholeQuantity_S.Case.MHTransform.WholeQuantity = yyvsp[-5].l ;
      WholeQuantity_S.Case.MHTransform.NbrPoints = (int)yyvsp[-1].d ;
      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 146:
#line 1388 "GetDP.y"
{
      if ((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-6].c,fcmp_Expression_Name)) < 0) 
	vyyerror("Undefined function '%s' used in MHJacNL", yyvsp[-6].c) ;
      WholeQuantity_S.Type = WQ_MHJACNL ; 
      WholeQuantity_S.Case.MHJacNL.Index = i ;
      WholeQuantity_S.Case.MHJacNL.NbrPoints = (int)yyvsp[-3].d ;
      WholeQuantity_S.Case.MHJacNL.FreqOffSet = (int)yyvsp[-1].d ;
      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1, &Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 147:
#line 1400 "GetDP.y"
{ WholeQuantity_S.Type = WQ_SOLIDANGLE ;
      WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 148:
#line 1406 "GetDP.y"
{ WholeQuantity_S.Type = WQ_ORDER ;
      WholeQuantity_S.Case.OperatorAndQuantity.Index = yyvsp[-1].t.Int2 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 149:
#line 1412 "GetDP.y"
{ Last_DofIndexInWholeQuantity = Current_DofIndexInWholeQuantity ; ;
    break;}
case 150:
#line 1414 "GetDP.y"
{ WholeQuantity_S.Type = WQ_TRACE ;
      WholeQuantity_S.Case.Trace.WholeQuantity = yyvsp[-3].l ;
      WholeQuantity_S.Case.Trace.InIndex = Num_Group(&Group_S, "WQ_Trace_In", yyvsp[-1].i) ;

      if(Group_S.Type != ELEMENTLIST || Group_S.SuppListType != SUPPLIST_CONNECTEDTO)
	vyyerror("Group for Trace should be of Type 'ElementsOf[x, ConnectedTo y]'");

      WholeQuantity_S.Case.Trace.DofIndexInWholeQuantity = -1 ;
      if (Current_DofIndexInWholeQuantity != Last_DofIndexInWholeQuantity){
	for(i=0 ; i<List_Nbr(yyvsp[-3].l) ; i++){
	  WholeQuantity_P = (struct WholeQuantity*)List_Pointer(yyvsp[-3].l, i) ;
	  if(WholeQuantity_P->Type == WQ_OPERATORANDQUANTITY)
	    if(WholeQuantity_P->Case.OperatorAndQuantity.TypeQuantity == QUANTITY_DOF){
	      WholeQuantity_S.Case.Trace.DofIndexInWholeQuantity = i ;
	      Current_DofIndexInWholeQuantity = -4 ;
	      TypeOperatorDofInTrace = WholeQuantity_P->Case.OperatorAndQuantity.TypeOperator ;
	      DefineQuantityIndexDofInTrace = WholeQuantity_P->Case.OperatorAndQuantity.Index ;
	    }
	}
	if(Current_DofIndexInWholeQuantity != -4)
	  vyyerror("Dof{} definition out of context in Trace operator");
      }

      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1,
		&Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 151:
#line 1443 "GetDP.y"
{ WholeQuantity_S.Type = WQ_CAST ;
      WholeQuantity_S.Case.Cast.WholeQuantity = yyvsp[-1].l ;

      if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-4].c,
			       fcmp_DefineQuantity_Name)) < 0) {
	if (!strcmp(yyvsp[-4].c, "Real"))
	  WholeQuantity_S.Case.Cast.NbrHar = 1 ;
	else if (!strcmp(yyvsp[-4].c, "Complex"))
	  WholeQuantity_S.Case.Cast.NbrHar = 2 ;
	else
	  vyyerror("Unknown Cast: %s", yyvsp[-4].c) ;
      }
      else {
	WholeQuantity_S.Case.Cast.NbrHar = 0 ;
	WholeQuantity_S.Case.Cast.FunctionSpaceIndexForType =
	  ((struct DefineQuantity *)List_Pointer(Formulation_S.DefineQuantity, i))
	    ->FunctionSpaceIndex ;
      }
      Free(yyvsp[-4].c) ;

      List_Read(ListOfPointer_L, List_Nbr(ListOfPointer_L)-1,
		&Current_WholeQuantity_L) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 152:
#line 1469 "GetDP.y"
{ WholeQuantity_S.Type = WQ_CURRENTVALUE ;
      Get_PointerForString(Current_Value, yyvsp[0].c, &FlagError,
			   (void **)&WholeQuantity_S.Case.CurrentValue.Value) ;
      if (FlagError){
	vyyerror("Unknown current value: $%s", yyvsp[0].c);
	Get_Valid_SXP(Current_Value);
      }
      Free(yyvsp[0].c) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 153:
#line 1482 "GetDP.y"
{ WholeQuantity_S.Type = WQ_CURRENTVALUE ;
      Get_PointerForString(Current_Value, "TimeStep", &FlagError,
			   (void **)&WholeQuantity_S.Case.CurrentValue.Value) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 154:
#line 1488 "GetDP.y"
{ WholeQuantity_S.Type = WQ_CURRENTVALUE ;
      Get_PointerForString(Current_Value, "DTime", &FlagError,
			   (void **)&WholeQuantity_S.Case.CurrentValue.Value) ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 155:
#line 1495 "GetDP.y"
{ WholeQuantity_S.Type = WQ_ARGUMENT ;
      WholeQuantity_S.Case.Argument.Index = yyvsp[0].i ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 156:
#line 1501 "GetDP.y"
{
      WholeQuantity_S.Type = WQ_SAVEVALUE ;
      WholeQuantity_S.Case.SaveValue.Index = yyvsp[0].i - 1 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 157:
#line 1508 "GetDP.y"
{
      WholeQuantity_S.Type = WQ_VALUESAVED ;
      WholeQuantity_S.Case.ValueSaved.Index = yyvsp[0].i - 1 ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 158:
#line 1515 "GetDP.y"
{
      WholeQuantity_S.Type = WQ_SHOWVALUE ;
      WholeQuantity_S.Case.ShowValue.Index = (int)yyvsp[0].d ;
      List_Add(Current_WholeQuantity_L, &WholeQuantity_S) ;
    ;
    break;}
case 159:
#line 1526 "GetDP.y"
{ yyval.i = -1 ; ;
    break;}
case 160:
#line 1527 "GetDP.y"
{ yyval.i = 0 ; ;
    break;}
case 161:
#line 1528 "GetDP.y"
{ yyval.i = yyvsp[-1].i ; ;
    break;}
case 162:
#line 1533 "GetDP.y"
{ yyval.i = 1 ; ;
    break;}
case 163:
#line 1534 "GetDP.y"
{ yyval.i = yyvsp[-2].i + 1 ; ;
    break;}
case 164:
#line 1540 "GetDP.y"
{ yyval.l = NULL; ;
    break;}
case 165:
#line 1543 "GetDP.y"
{ yyval.l = yyvsp[-1].l; ;
    break;}
case 166:
#line 1546 "GetDP.y"
{ /* Attention: provisoire. Note: Impossible a mettre dans MultiFExpr
         car conflit avec Affectation dans Group */
      yyval.l = List_Create(2, 1, sizeof(double)) ;
      d = (double)Num_Group(&Group_S, "PA_Region", yyvsp[-2].i) ;
      List_Add(yyval.l, &d) ;
    ;
    break;}
case 167:
#line 1561 "GetDP.y"
{ if (!Problem_S.JacobianMethod)
	Problem_S.JacobianMethod = 
	  List_Create(5, 5, sizeof (struct JacobianMethod) ) ;
    ;
    break;}
case 168:
#line 1566 "GetDP.y"
{ List_Add(Problem_S.JacobianMethod, &JacobianMethod_S) ; ;
    break;}
case 169:
#line 1573 "GetDP.y"
{ JacobianMethod_S.Name = NULL ; JacobianMethod_S.JacobianCase = NULL ; ;
    break;}
case 171:
#line 1582 "GetDP.y"
{ Check_NameOfStructNotExist("JacobianMethod", Problem_S.JacobianMethod,
				 yyvsp[-1].c, fcmp_JacobianMethod_Name) ;
      JacobianMethod_S.Name = yyvsp[-1].c ; ;
    break;}
case 172:
#line 1587 "GetDP.y"
{ JacobianMethod_S.JacobianCase = yyvsp[-1].l ; ;
    break;}
case 173:
#line 1594 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct JacobianCase)) ; ;
    break;}
case 174:
#line 1597 "GetDP.y"
{ List_Add(yyval.l = yyvsp[-3].l, &JacobianCase_S) ; ;
    break;}
case 175:
#line 1604 "GetDP.y"
{ JacobianCase_S.RegionIndex = -1 ;
      JacobianCase_S.TypeJacobian = JACOBIAN_VOL ; ;
    break;}
case 177:
#line 1614 "GetDP.y"
{ JacobianCase_S.RegionIndex = Num_Group(&Group_S, "JA_Region", yyvsp[-1].i) ; ;
    break;}
case 178:
#line 1617 "GetDP.y"
{ JacobianCase_S.RegionIndex = -1 ; ;
    break;}
case 179:
#line 1620 "GetDP.y"
{ JacobianCase_S.TypeJacobian =
	Get_Define1NbrForString(Jacobian_Type, yyvsp[-2].c, &FlagError,
				&JacobianCase_S.NbrParameters) ;
      if (!FlagError) {
	if (JacobianCase_S.NbrParameters == -2 && (List_Nbr(yyvsp[-1].l))%2 != 0)
	  vyyerror("Wrong number of parameters for Jacobian '%s' (%d is not even)",
		   yyvsp[-2].c, List_Nbr(yyvsp[-1].l)) ;
	if (JacobianCase_S.NbrParameters < 0)
	  JacobianCase_S.NbrParameters = List_Nbr(yyvsp[-1].l);
	if (List_Nbr(yyvsp[-1].l) == JacobianCase_S.NbrParameters) {
	  if (JacobianCase_S.NbrParameters) {
	    JacobianCase_S.Para =
	      (double *)Malloc(JacobianCase_S.NbrParameters * sizeof(double)) ;
	    for (i = 0 ; i < JacobianCase_S.NbrParameters ; i++)
	      List_Read(yyvsp[-1].l, i, &JacobianCase_S.Para[i]) ;
	  }
	}
	else
	  vyyerror("Wrong number of parameters for Jacobian '%s' (%d instead of %d)", 
		   yyvsp[-2].c, List_Nbr(yyvsp[-1].l), JacobianCase_S.NbrParameters) ;
      }
      else{
	vyyerror("Unknown type of Jacobian: %s", yyvsp[-2].c);
	Get_Valid_SXD1N(Jacobian_Type);
      }
      Free(yyvsp[-2].c);
      List_Delete(yyvsp[-1].l);
    ;
    break;}
case 180:
#line 1658 "GetDP.y"
{ if (!Problem_S.IntegrationMethod)
	Problem_S.IntegrationMethod = 
	  List_Create(5, 5, sizeof(struct IntegrationMethod)) ;
    ;
    break;}
case 181:
#line 1664 "GetDP.y"
{ List_Add(Problem_S.IntegrationMethod, &IntegrationMethod_S) ; ;
    break;}
case 182:
#line 1671 "GetDP.y"
{ 
      IntegrationMethod_S.Name = NULL ; 
      IntegrationMethod_S.IntegrationCase = NULL ; 
      IntegrationMethod_S.CriterionIndex = -1 ;
    ;
    break;}
case 184:
#line 1684 "GetDP.y"
{ 
      Check_NameOfStructNotExist("IntegrationMethod", Problem_S.IntegrationMethod,
				 yyvsp[-1].c, fcmp_IntegrationMethod_Name) ;
      IntegrationMethod_S.Name = yyvsp[-1].c ; 
    ;
    break;}
case 185:
#line 1691 "GetDP.y"
{ IntegrationMethod_S.CriterionIndex = yyvsp[-1].i ;  ;
    break;}
case 186:
#line 1694 "GetDP.y"
{ IntegrationMethod_S.IntegrationCase = yyvsp[-1].l ; ;
    break;}
case 187:
#line 1701 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct IntegrationCase)) ; ;
    break;}
case 188:
#line 1704 "GetDP.y"
{ List_Add(yyval.l = yyvsp[-3].l, &IntegrationCase_S) ; ;
    break;}
case 189:
#line 1711 "GetDP.y"
{ 
      IntegrationCase_S.Type = GAUSS ; 
      IntegrationCase_S.SubType = STANDARD ; 
    ;
    break;}
case 191:
#line 1723 "GetDP.y"
{ IntegrationCase_S.Type =
	Get_DefineForString(Integration_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Integration method: %s", yyvsp[-1].c);
	Get_Valid_SXD(Integration_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 192:
#line 1733 "GetDP.y"
{ IntegrationCase_S.SubType =
	Get_DefineForString(Integration_SubType, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown subtype of Integration method: %s", yyvsp[-1].c);
	Get_Valid_SXD(Integration_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 193:
#line 1743 "GetDP.y"
{ IntegrationCase_S.Case = yyvsp[-1].l ; ;
    break;}
case 194:
#line 1750 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct Quadrature)) ; ;
    break;}
case 195:
#line 1753 "GetDP.y"
{ List_Add(yyval.l = yyvsp[-3].l, &QuadratureCase_S) ; ;
    break;}
case 196:
#line 1760 "GetDP.y"
{ QuadratureCase_S.ElementType = TRIANGLE ; 
      QuadratureCase_S.NumberOfPoints = 4 ;
      QuadratureCase_S.MaxNumberOfPoints = 4 ;
      QuadratureCase_S.NumberOfDivisions = 1 ;
      QuadratureCase_S.MaxNumberOfDivisions = 1 ;
      QuadratureCase_S.StoppingCriterion = 1.E-4 ;
      QuadratureCase_S.Function = (void (*)())Gauss_Triangle ;
    ;
    break;}
case 198:
#line 1776 "GetDP.y"
{ QuadratureCase_S.ElementType = Get_DefineForString(Element_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Element: %s", yyvsp[-1].c);
	Get_Valid_SXD(Element_Type);
      }

      switch(IntegrationCase_S.SubType) {

      case STANDARD :
	switch (IntegrationCase_S.Type) {
	case GAUSS :
	  Get_FunctionForDefine
	    (FunctionForGauss, QuadratureCase_S.ElementType,
	     &FlagError, (void (**)())&QuadratureCase_S.Function) ;
	  break ;
	case GAUSSLEGENDRE :
	  Get_FunctionForDefine
	    (FunctionForGaussLegendre, QuadratureCase_S.ElementType,
	     &FlagError, (void (**)())&QuadratureCase_S.Function) ;
	  break ;
	default : 
	  vyyerror("Incompatible type of Integration method") ;
	  break ;
	}
	break ;

      case SINGULAR :
	switch (IntegrationCase_S.Type) {
	case GAUSS :
	  Get_FunctionForDefine
	    (FunctionForSingularGauss, QuadratureCase_S.ElementType,
	     &FlagError, (void (**)())&QuadratureCase_S.Function) ;
	  break ;
	default : 
	  vyyerror("Incompatible type of Integration method") ;
	  break ;
	}
	break ;
      default :
	vyyerror("Incompatible type of Integration method") ;
	break ;
      }

      if (FlagError)  vyyerror("Bad type of Integration method for Element: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 199:
#line 1824 "GetDP.y"
{ QuadratureCase_S.NumberOfPoints = (int)yyvsp[-1].d ; ;
    break;}
case 200:
#line 1827 "GetDP.y"
{ QuadratureCase_S.MaxNumberOfPoints = (int)yyvsp[-1].d ; ;
    break;}
case 201:
#line 1830 "GetDP.y"
{ QuadratureCase_S.NumberOfDivisions = (int)yyvsp[-1].d ; ;
    break;}
case 202:
#line 1833 "GetDP.y"
{ QuadratureCase_S.MaxNumberOfDivisions = (int)yyvsp[-1].d ; ;
    break;}
case 203:
#line 1836 "GetDP.y"
{ QuadratureCase_S.StoppingCriterion = yyvsp[-1].d ; ;
    break;}
case 204:
#line 1847 "GetDP.y"
{ if (!Problem_S.Constraint)
	Problem_S.Constraint = List_Create(20, 20, sizeof (struct Constraint) ) ;
    ;
    break;}
case 206:
#line 1857 "GetDP.y"
{
      List_Add(Problem_S.Constraint, &Constraint_S) ;
    ;
    break;}
case 209:
#line 1869 "GetDP.y"
{ Constraint_S.Name = NULL ;  
      Constraint_S.Type = ASSIGN ;
      Constraint_S.ConstraintPerRegion = NULL ;
      Constraint_S.MultiConstraintPerRegion = NULL ;
    ;
    break;}
case 211:
#line 1882 "GetDP.y"
{
      Check_NameOfStructNotExist("Constraint", Problem_S.Constraint, yyvsp[-1].c,
				 fcmp_Constraint_Name) ;
      Constraint_S.Name = yyvsp[-1].c ;
    ;
    break;}
case 212:
#line 1889 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Check_NameOfStructNotExist("Constraint", Problem_S.Constraint, yyvsp[-2].c,
				 fcmp_Constraint_Name) ;
      Constraint_S.Name = yyvsp[-2].c ;
    ;
    break;}
case 213:
#line 1897 "GetDP.y"
{ Constraint_S.Type = Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Constraint: %s", yyvsp[-1].c);
	Get_Valid_SXD(Constraint_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 214:
#line 1906 "GetDP.y"
{ Constraint_S.ConstraintPerRegion = yyvsp[-1].l ; ;
    break;}
case 215:
#line 1909 "GetDP.y"
{
      if (!Constraint_S.MultiConstraintPerRegion)
	Constraint_S.MultiConstraintPerRegion =
	  List_Create( 5, 5, sizeof(struct MultiConstraintPerRegion)) ;

      MultiConstraintPerRegion_S.Name = yyvsp[-3].c ;
      MultiConstraintPerRegion_S.ConstraintPerRegion = yyvsp[-1].l ;
      MultiConstraintPerRegion_S.Active = NULL ;

      List_Add(Constraint_S.MultiConstraintPerRegion, 
	       &MultiConstraintPerRegion_S) ;
    ;
    break;}
case 216:
#line 1927 "GetDP.y"
{
      yyval.l = List_Create(6, 6, sizeof (struct ConstraintPerRegion)) ;
    ;
    break;}
case 217:
#line 1932 "GetDP.y"
{
      List_Add(yyval.l = yyvsp[-3].l, &ConstraintPerRegion_S) ;
    ;
    break;}
case 218:
#line 1937 "GetDP.y"
{ 
      yyval.l = yyvsp[-1].l ;
    ;
    break;}
case 219:
#line 1946 "GetDP.y"
{ 
      ConstraintPerRegion_S.Type = Constraint_S.Type ;
      ConstraintPerRegion_S.RegionIndex = -1 ;
      ConstraintPerRegion_S.SubRegionIndex = -1 ;
      ConstraintPerRegion_S.TimeFunctionIndex = -1 ;
    ;
    break;}
case 221:
#line 1960 "GetDP.y"
{ ConstraintPerRegion_S.Type = 
	Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Constraint: %s", yyvsp[-1].c);
	Get_Valid_SXD(Constraint_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 222:
#line 1970 "GetDP.y"
{ 
      ConstraintPerRegion_S.RegionIndex = Num_Group(&Group_S, "CO_Region", yyvsp[-1].i) ;
    ;
    break;}
case 223:
#line 1975 "GetDP.y"
{ 
      ConstraintPerRegion_S.SubRegionIndex =
	Num_Group(&Group_S, "CO_SubRegion", yyvsp[-1].i) ;
    ;
    break;}
case 224:
#line 1981 "GetDP.y"
{
      ConstraintPerRegion_S.TimeFunctionIndex = yyvsp[-1].i ;
    ;
    break;}
case 225:
#line 1986 "GetDP.y"
{ 
      if (ConstraintPerRegion_S.Type == ASSIGN ||
	  ConstraintPerRegion_S.Type == INIT)
	ConstraintPerRegion_S.Case.Fixed.ExpressionIndex = yyvsp[-1].i ;
      else  vyyerror("Value incompatible with Type") ;
    ;
    break;}
case 226:
#line 1994 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == ASSIGNFROMRESOLUTION ||
	  ConstraintPerRegion_S.Type == INITFROMRESOLUTION)
	ConstraintPerRegion_S.Case.Solve.ResolutionName = yyvsp[-1].c ;
      else  vyyerror("NameOfResolution incompatible with Type") ;
    ;
    break;}
case 227:
#line 2002 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == NETWORK) {
	ConstraintPerRegion_S.Case.Network.Node1 = (int)yyvsp[-4].d ;
	ConstraintPerRegion_S.Case.Network.Node2 = (int)yyvsp[-2].d ;
      }
      else  vyyerror("Branch incompatible with Type") ;
    ;
    break;}
case 228:
#line 2011 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX) {
	ConstraintPerRegion_S.Case.Link.RegionRefIndex =
	  Num_Group(&Group_S, "CO_RegionRef", yyvsp[-1].i) ;
	ConstraintPerRegion_S.Case.Link.SubRegionRefIndex = -1 ;

	ConstraintPerRegion_S.Case.Link.FilterIndex = -1 ;
	ConstraintPerRegion_S.Case.Link.FunctionIndex = -1 ;
	ConstraintPerRegion_S.Case.Link.CoefIndex = -1 ;
	ConstraintPerRegion_S.Case.Link.FilterIndex2 = -1 ;
	ConstraintPerRegion_S.Case.Link.FunctionIndex2 = -1 ;
	ConstraintPerRegion_S.Case.Link.CoefIndex2 = -1 ;
      }
      else  vyyerror("RegionRef incompatible with Type") ;
    ;
    break;}
case 229:
#line 2029 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX)
	ConstraintPerRegion_S.Case.Link.SubRegionRefIndex =
	  Num_Group(&Group_S, "CO_RegionRef", yyvsp[-1].i) ;
      else  vyyerror("SubRegionRef incompatible with Type") ;
    ;
    break;}
case 230:
#line 2038 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX)
	ConstraintPerRegion_S.Case.Link.FunctionIndex = yyvsp[-1].i ;
      else  vyyerror("Function incompatible with Type") ;
    ;
    break;}
case 231:
#line 2046 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX)
	ConstraintPerRegion_S.Case.Link.CoefIndex = yyvsp[-1].i ;
      else  vyyerror("Coefficient incompatible with Type") ;
    ;
    break;}
case 232:
#line 2054 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX) {
	ConstraintPerRegion_S.Case.Link.FilterIndex  = yyvsp[-1].i ;
	ConstraintPerRegion_S.Case.Link.FilterIndex2 = -1 ;
      }
      else  vyyerror("Filter incompatible with Type") ;
    ;
    break;}
case 233:
#line 2064 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX) {
	ConstraintPerRegion_S.Case.Link.FunctionIndex  = yyvsp[-4].i ;
	ConstraintPerRegion_S.Case.Link.FunctionIndex2 = yyvsp[-2].i ;
      }
      else  vyyerror("Function incompatible with Type") ;
    ;
    break;}
case 234:
#line 2074 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX) {
	ConstraintPerRegion_S.Case.Link.CoefIndex  = yyvsp[-4].i ;
	ConstraintPerRegion_S.Case.Link.CoefIndex2 = yyvsp[-2].i ;
      }
      else  vyyerror("Coefficient incompatible with Type") ;
    ;
    break;}
case 235:
#line 2084 "GetDP.y"
{
      if (ConstraintPerRegion_S.Type == CST_LINK ||
	  ConstraintPerRegion_S.Type == CST_LINKCPLX) {
	ConstraintPerRegion_S.Case.Link.FilterIndex  = yyvsp[-4].i ;
	ConstraintPerRegion_S.Case.Link.FilterIndex2 = yyvsp[-2].i ;
      }
      else  vyyerror("Filter incompatible with Type") ;
    ;
    break;}
case 236:
#line 2104 "GetDP.y"
{ if (!Problem_S.FunctionSpace)
	Problem_S.FunctionSpace = 
	  List_Create(10, 5, sizeof (struct FunctionSpace) ) ;
    ;
    break;}
case 238:
#line 2115 "GetDP.y"
{
      List_Add(Problem_S.FunctionSpace, &FunctionSpace_S) ;
    ;
    break;}
case 241:
#line 2128 "GetDP.y"
{ FunctionSpace_S.Name = NULL ; FunctionSpace_S.Type = FORM0 ;
      FunctionSpace_S.BasisFunction = FunctionSpace_S.SubSpace =
	FunctionSpace_S.GlobalQuantity = FunctionSpace_S.Constraint = NULL ;
    ;
    break;}
case 243:
#line 2140 "GetDP.y"
{
      Check_NameOfStructNotExist("FunctionSpace", Problem_S.FunctionSpace,
				 yyvsp[-1].c, fcmp_FunctionSpace_Name) ;
      FunctionSpace_S.Name = yyvsp[-1].c ;
    ;
    break;}
case 244:
#line 2147 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Check_NameOfStructNotExist("FunctionSpace", Problem_S.FunctionSpace,
				 yyvsp[-2].c, fcmp_FunctionSpace_Name) ;
      FunctionSpace_S.Name = yyvsp[-2].c ;
    ;
    break;}
case 245:
#line 2155 "GetDP.y"
{ FunctionSpace_S.Type = Get_DefineForString(Field_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of FunctionSpace: %s", yyvsp[-1].c);
	Get_Valid_SXD(Field_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 246:
#line 2164 "GetDP.y"
{ FunctionSpace_S.BasisFunction  = yyvsp[-1].l ; ;
    break;}
case 247:
#line 2167 "GetDP.y"
{ FunctionSpace_S.SubSpace       = yyvsp[-1].l ; ;
    break;}
case 248:
#line 2170 "GetDP.y"
{ FunctionSpace_S.GlobalQuantity = yyvsp[-1].l ; ;
    break;}
case 249:
#line 2173 "GetDP.y"
{ FunctionSpace_S.Constraint     = yyvsp[-1].l ; ;
    break;}
case 250:
#line 2180 "GetDP.y"
{
      yyval.l = Current_BasisFunction_L =
	List_Create(6, 6, sizeof (struct BasisFunction)) ;
    ;
    break;}
case 251:
#line 2186 "GetDP.y"
{
      if ( (i = List_ISearchSeq(yyvsp[-3].l, BasisFunction_S.Name, 
				fcmp_BasisFunction_Name)) < 0 ) {
	/*
	  BasisFunction_S.Num = Num_BasisFunction++ ;
	*/
	BasisFunction_S.Num = Num_BasisFunction ;
	Num_BasisFunction += (BasisFunction_S.SubFunction)?
	  List_Nbr(BasisFunction_S.SubFunction) : 1 ;
      }
      else  /* BasisFunction definie par morceaux => meme Num */
	BasisFunction_S.Num = ((struct BasisFunction *)List_Pointer(yyvsp[-3].l, i))->Num ;

      List_Add(yyval.l = yyvsp[-3].l, &BasisFunction_S) ;
    ;
    break;}
case 252:
#line 2203 "GetDP.y"
{
      yyval.l = yyvsp[-1].l ;
    ;
    break;}
case 253:
#line 2212 "GetDP.y"
{ 
      BasisFunction_S.Name = NULL ; 
      BasisFunction_S.NameOfCoef = NULL ;
      BasisFunction_S.Num = 0 ;
      BasisFunction_S.GlobalBasisFunction = NULL ;
      BasisFunction_S.Function = NULL ; 
      BasisFunction_S.dFunction = NULL ;
      BasisFunction_S.dInvFunction = NULL ;
      BasisFunction_S.SubFunction = NULL ; 
      BasisFunction_S.SubdFunction = NULL ; 
      BasisFunction_S.SupportIndex = -1 ; 
      BasisFunction_S.EntityIndex  = -1 ;
    ;
    break;}
case 255:
#line 2233 "GetDP.y"
{ BasisFunction_S.Name = yyvsp[-1].c ; ;
    break;}
case 256:
#line 2236 "GetDP.y"
{ Check_NameOfStructNotExist("NameOfCoef", Current_BasisFunction_L,
				 yyvsp[-1].c, fcmp_BasisFunction_NameOfCoef) ;
      BasisFunction_S.NameOfCoef = yyvsp[-1].c ; BasisFunction_S.Dimension = 1 ; ;
    break;}
case 257:
#line 2241 "GetDP.y"
{ Check_NameOfStructNotExist("NameOfCoef", Current_BasisFunction_L,
				 yyvsp[-2].c, fcmp_BasisFunction_NameOfCoef) ;
      BasisFunction_S.NameOfCoef = yyvsp[-2].c ; BasisFunction_S.Dimension = yyvsp[-1].i ; ;
    break;}
case 258:
#line 2246 "GetDP.y"
{
      Get_3Function2NbrForString
	(BF_Function, yyvsp[-2].c, &FlagError,
	 &BasisFunction_S.Function, &BasisFunction_S.dFunction, 
	 &BasisFunction_S.dInvFunction, &BasisFunction_S.Order,
	 &BasisFunction_S.ElementType) ;
      if (FlagError){
	vyyerror("Unknown Function for BasisFunction: %s", yyvsp[-2].c);
	Get_Valid_SX3F2N(BF_Function);
      }
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 259:
#line 2260 "GetDP.y"
{
      Get_3Function2NbrForString
	(BF_Function, yyvsp[-4].c, &FlagError,
	 &BasisFunction_S.dFunction, &FunctionDummy, &FunctionDummy, &d, &i) ;
      if (FlagError){
	vyyerror("Unknown dFunction (1) for BasisFunction: %s", yyvsp[-4].c);
	Get_Valid_SX3F2N(BF_Function);
      }
      Free(yyvsp[-4].c) ;
      Get_3Function2NbrForString
	(BF_Function, yyvsp[-2].c, &FlagError,
	 &BasisFunction_S.dInvFunction, &FunctionDummy, &FunctionDummy, &d, &i) ;
      if (FlagError){
	vyyerror("Unknown dFunction (2) for BasisFunction: %s", yyvsp[-2].c);
	Get_Valid_SX3F2N(BF_Function);
      }
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 260:
#line 2280 "GetDP.y"
{
      BasisFunction_S.SubFunction = List_Copy(ListOfInt_L); 
    ;
    break;}
case 261:
#line 2285 "GetDP.y"
{
      BasisFunction_S.SubdFunction = List_Copy(ListOfInt_L); 
    ;
    break;}
case 262:
#line 2290 "GetDP.y"
{
      BasisFunction_S.SupportIndex = Num_Group(&Group_S, "BF_Support", yyvsp[-1].i) ;
    ;
    break;}
case 263:
#line 2295 "GetDP.y"
{
      BasisFunction_S.EntityIndex = Num_Group(&Group_S, "BF_Entity", yyvsp[-1].i) ;
      if (Group_S.InitialList)
	List_Sort(Group_S.InitialList, fcmp_int) ;  /* Needed for Global Region */

      if (BasisFunction_S.GlobalBasisFunction) { /* Function to be defined before Entity */
	if (Group_S.FunctionType == GLOBAL) {
	  if (List_Nbr(BasisFunction_S.GlobalBasisFunction) ==
	      List_Nbr(Group_S.InitialList)) {
	    for (k = 0 ; k < List_Nbr(Group_S.InitialList) ; k++)
	      if (*((int*)List_Pointer(Group_S.InitialList, k)) !=
		  *((int*)List_Pointer(BasisFunction_S.GlobalBasisFunction, k))) {
		vyyerror("Bad correspondance between Group and Entity (elements differ)") ;
		break ;
	      }
	  }
	  else if (List_Nbr(Group_S.InitialList) != 0 ||
		   GlobalBasisFunction_S.EntityIndex != -1)
	    vyyerror("Bad correspondance between Group and Entity (#BF %d, #Global %d)",
		     List_Nbr(BasisFunction_S.GlobalBasisFunction),
		     List_Nbr(Group_S.InitialList)) ;
	}
	else  vyyerror("Bad correspondance between Group and Entity (Entity must be Global)") ;
      }
    ;
    break;}
case 265:
#line 2329 "GetDP.y"
{
      Nbr_Index = yyvsp[-1].i ;
    ;
    break;}
case 266:
#line 2333 "GetDP.y"
{
      Flag1 = Flag_MultipleIndex;
      if (Flag_MultipleIndex)
	Msg(WARNING, "Old way to define Group, remove \'{}\' to use one Group");
      /* Will be the new way to define Group
      if (!Flag_MultipleIndex)
	vyyerror("Multiple Group needed for multiple Formulation: %s {}", $6) ;
      */
    ;
    break;}
case 267:
#line 2343 "GetDP.y"
{
      if (!Flag_MultipleIndex)
	vyyerror("Multiple Resolution needed for multiple Formulation: %s {}", yyvsp[-12].c) ;

      BasisFunction_S.GlobalBasisFunction =
	List_Create(yyvsp[-11].i, 1, sizeof(struct GlobalBasisFunction)) ;

      for (k = 0 ; k < yyvsp[-11].i ; k++) {

	if (!Flag1) { /* New way: only one group with all the single regions is given */
	  List_Read(Group_S.InitialList, k, &i) ;
	  GlobalBasisFunction_S.EntityIndex = i ;
	}
	else { /* Old way */
	  List_Read(ListOfInt_L, k, &i) ;
	  List_Read(Problem_S.Group, i, &Group_S) ;
	  if (List_Nbr(Group_S.InitialList) == 1) {
	    List_Read(Group_S.InitialList, 0, &i) ;
	    GlobalBasisFunction_S.EntityIndex = i ;
	  }
	  else if (List_Nbr(Group_S.InitialList) == 0) {
	    GlobalBasisFunction_S.EntityIndex = -1 ;
	  }
	  else
	    vyyerror("Only one Region needed in Group: %s", Group_S.Name) ;
	}

	sprintf(tmpstr, "%s_%d", yyvsp[-12].c, k+1) ;
	if ((i = List_ISearchSeq(Problem_S.Formulation, tmpstr,
				 fcmp_Formulation_Name)) >= 0) {
	  GlobalBasisFunction_S.FormulationIndex = i ;
	  List_Read(Problem_S.Formulation, i, &Formulation_S) ;
	  if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-15].c, 
				   fcmp_DefineQuantity_Name)) >= 0)
	    GlobalBasisFunction_S.DefineQuantityIndex = i ;
	  else {
	    vyyerror("Unknown Quantity '%s' in Formulation '%s'", yyvsp[-15].c,
		     Formulation_S.Name) ;
	    break ;
	  }
	}
	else
	  vyyerror("Unknown Formulation: %s {%d}", yyvsp[-12].c, k+1) ;

	sprintf(tmpstr, "%s_%d", yyvsp[-3].c, k+1) ;
	if ((i = List_ISearchSeq(Problem_S.Resolution, tmpstr,
				 fcmp_Resolution_Name)) >= 0)
	  GlobalBasisFunction_S.ResolutionIndex = i ;
	else
	  vyyerror("Unknown Resolution: %s {%d}", yyvsp[-3].c, k+1) ;

	GlobalBasisFunction_S.QuantityStorage = NULL ;
	List_Add(BasisFunction_S.GlobalBasisFunction, &GlobalBasisFunction_S) ;
      }
      List_Sort(BasisFunction_S.GlobalBasisFunction, fcmp_int) ;

      Free(yyvsp[-15].c) ; Free(yyvsp[-12].c) ; Free(yyvsp[-3].c) ;
    ;
    break;}
case 268:
#line 2407 "GetDP.y"
{ 
      yyval.l = Current_SubSpace_L =
	List_Create(6, 6, sizeof (struct SubSpace)) ; 
    ;
    break;}
case 269:
#line 2413 "GetDP.y"
{ 
      List_Add(yyval.l = yyvsp[-3].l, &SubSpace_S) ; 
    ;
    break;}
case 270:
#line 2422 "GetDP.y"
{ 
      SubSpace_S.Name = NULL ; SubSpace_S.BasisFunction  = NULL ; 
    ;
    break;}
case 272:
#line 2433 "GetDP.y"
{ 
      Check_NameOfStructNotExist("SubSpace", Current_SubSpace_L,
				 yyvsp[-1].c, fcmp_SubSpace_Name) ;
      SubSpace_S.Name = yyvsp[-1].c ; 
    ;
    break;}
case 273:
#line 2440 "GetDP.y"
{ SubSpace_S.BasisFunction = yyvsp[-1].l ; ;
    break;}
case 274:
#line 2443 "GetDP.y"
{ SubSpace_S.BasisFunction = yyvsp[-1].l ; ;
    break;}
case 275:
#line 2450 "GetDP.y"
{
      yyval.l = List_Create(1, 1, sizeof(int)) ;
      if ((i = List_ISearchSeq(Current_BasisFunction_L,
			       yyvsp[0].c, fcmp_BasisFunction_Name)) < 0)
	vyyerror("Unknown BasisFunction: %s", yyvsp[0].c) ;
      else {
	List_Add(yyval.l, &i) ; j = i+1 ;
	while ((i = List_ISearchSeqPartial(Current_BasisFunction_L,
					   yyvsp[0].c, j, fcmp_BasisFunction_Name)) >= 0) {
	  List_Add(yyval.l, &i) ; j = i+1 ;  /* for piecewise defined basis functions */
	}
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 276:
#line 2466 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 277:
#line 2472 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof(int)) ; ;
    break;}
case 278:
#line 2475 "GetDP.y"
{
      if ((i = List_ISearchSeq(Current_BasisFunction_L,
			       yyvsp[0].c, fcmp_BasisFunction_Name)) < 0)
	vyyerror("Unknown BasisFunction: %s", yyvsp[0].c) ;
      else {
	List_Add(yyvsp[-2].l, &i) ; j = i+1 ;
	while ((i = List_ISearchSeqPartial(Current_BasisFunction_L,
					   yyvsp[0].c, j, fcmp_BasisFunction_Name)) >= 0) {
	  List_Add(yyvsp[-2].l, &i) ; j = i+1 ;  /* for piecewise defined basis functions */
	}
      }
      yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ;
    ;
    break;}
case 279:
#line 2494 "GetDP.y"
{
      yyval.l = List_Create(1, 1, sizeof(int)) ;
      if ((i = List_ISearchSeq(Current_BasisFunction_L,
			       yyvsp[0].c, fcmp_BasisFunction_NameOfCoef)) < 0)
	vyyerror("Unknown BasisFunctionCoef: %s", yyvsp[0].c) ;
      else {
	List_Add(yyval.l, &i) ; j = i+1 ;
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 280:
#line 2506 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 281:
#line 2513 "GetDP.y"
{ 
      yyval.l = List_Create(5, 5, sizeof(int)) ; 
    ;
    break;}
case 282:
#line 2518 "GetDP.y"
{
      if ((i = List_ISearchSeq(Current_BasisFunction_L,
			       yyvsp[0].c, fcmp_BasisFunction_NameOfCoef)) < 0)
	vyyerror("Unknown BasisFunctionCoef: %s", yyvsp[0].c) ;
      else {
	List_Add(yyvsp[-2].l, &i) ; j = i+1 ;
      }
      yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ;
    ;
    break;}
case 283:
#line 2533 "GetDP.y"
{ 
      yyval.l = Current_GlobalQuantity_L =
	List_Create(6, 6, sizeof (struct GlobalQuantity)) ; 
    ;
    break;}
case 284:
#line 2539 "GetDP.y"
{ 
      GlobalQuantity_S.Num = Num_BasisFunction++ ;
      List_Add(yyval.l = yyvsp[-3].l, &GlobalQuantity_S) ;
    ;
    break;}
case 285:
#line 2549 "GetDP.y"
{ 
      GlobalQuantity_S.Name = NULL ; GlobalQuantity_S.Num  = 0 ;
      GlobalQuantity_S.Type = ALIASOF ; GlobalQuantity_S.ReferenceIndex = -1 ;
    ;
    break;}
case 287:
#line 2561 "GetDP.y"
{ 
      Check_NameOfStructNotExist("GlobalQuantity", Current_GlobalQuantity_L,
				 yyvsp[-1].c, fcmp_GlobalQuantity_Name) ;
      GlobalQuantity_S.Name = yyvsp[-1].c ; 
    ;
    break;}
case 288:
#line 2568 "GetDP.y"
{ 
      GlobalQuantity_S.Type =
	Get_DefineForString(GlobalQuantity_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of GlobalQuantity: %s", yyvsp[-1].c);
	Get_Valid_SXD(GlobalQuantity_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 289:
#line 2579 "GetDP.y"
{ 
      if ((i = List_ISearchSeq(FunctionSpace_S.BasisFunction, yyvsp[-1].c, 
			       fcmp_BasisFunction_NameOfCoef)) < 0) 
	vyyerror("Unknown NameOfCoef: %s", yyvsp[-1].c) ;
      else
	GlobalQuantity_S.ReferenceIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 290:
#line 2593 "GetDP.y"
{
      yyval.l = List_Create(6, 6, sizeof (struct ConstraintInFS)) ;
    ;
    break;}
case 291:
#line 2598 "GetDP.y"
{
      Group_S.FunctionType = Type_Function ;
      Group_S.SuppListType = Type_SuppList ;
      switch (Group_S.FunctionType) {
      case ELEMENTSOF :  Group_S.Type = ELEMENTLIST ;  break ;
      default :          Group_S.Type = REGIONLIST  ;  break ;
      }

      if (Constraint_Index >= 0) {
	Constraint_P = (struct Constraint *)
	  List_Pointer(Problem_S.Constraint, Constraint_Index) ;

	for (i = 0 ; i < List_Nbr(Constraint_P->ConstraintPerRegion) ; i++) {
	  ConstraintPerRegion_P = (struct ConstraintPerRegion *)
	    List_Pointer(Constraint_P->ConstraintPerRegion, i) ;

	  if (ConstraintPerRegion_P->RegionIndex >= 0) {
	    Group_S.InitialList =
	      ((struct Group *)
	       List_Pointer(Problem_S.Group, ConstraintPerRegion_P->RegionIndex))
	      ->InitialList ;
	    Group_S.InitialSuppList =
	      (ConstraintPerRegion_P->SubRegionIndex >= 0)?
	      ((struct Group *)
	       List_Pointer(Problem_S.Group,
			    ConstraintPerRegion_P->SubRegionIndex))
	      ->InitialList : NULL ;
	    ConstraintInFS_S.EntityIndex = Add_Group(&Group_S, "CO_Entity", 1, 0) ;
	    ConstraintInFS_S.ConstraintPerRegion = ConstraintPerRegion_P ;
	    
	    List_Add(yyval.l = yyvsp[-3].l, &ConstraintInFS_S) ;
	  }
	}
      }
    ;
    break;}
case 292:
#line 2635 "GetDP.y"
{
      yyval.l = yyvsp[-1].l ;
    ;
    break;}
case 293:
#line 2644 "GetDP.y"
{ 
      ConstraintInFS_S.QuantityType = LOCALQUANTITY ;
      ConstraintInFS_S.ReferenceIndex = -1 ; ConstraintInFS_S.EntityIndex = -1 ;
      ConstraintInFS_S.ConstraintPerRegion = NULL ;
      ConstraintInFS_S.Active.ResolutionIndex = -1 ;
      ConstraintInFS_S.Active.Active = NULL ;
      Constraint_Index = -1 ;
    ;
    break;}
case 295:
#line 2660 "GetDP.y"
{ if ((i = List_ISearchSeq(FunctionSpace_S.BasisFunction, yyvsp[-1].c, 
			       fcmp_BasisFunction_NameOfCoef)) < 0) {
	if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, yyvsp[-1].c,
				 fcmp_GlobalQuantity_Name)) < 0)
	  vyyerror("Unknown NameOfCoef: %s", yyvsp[-1].c) ;
	else {
	  ConstraintInFS_S.QuantityType   = GLOBALQUANTITY ;
	  ConstraintInFS_S.ReferenceIndex = i ;
	}
      }
      else {
	ConstraintInFS_S.QuantityType   = LOCALQUANTITY ;
	ConstraintInFS_S.ReferenceIndex = i ;
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 296:
#line 2693 "GetDP.y"
{ Type_Function = yyvsp[-1].i ; ;
    break;}
case 297:
#line 2696 "GetDP.y"
{ Type_SuppList = yyvsp[-1].i ; ;
    break;}
case 298:
#line 2699 "GetDP.y"
{
      Constraint_Index =
	List_ISearchSeq(Problem_S.Constraint, yyvsp[-1].c, fcmp_Constraint_Name) ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 299:
#line 2714 "GetDP.y"
{ if (!Problem_S.Formulation)
	Problem_S.Formulation = List_Create(10, 5, sizeof (struct Formulation)) ;
    ;
    break;}
case 301:
#line 2724 "GetDP.y"
{
      List_Add(Problem_S.Formulation, &Formulation_S) ;
    ;
    break;}
case 304:
#line 2737 "GetDP.y"
{ Formulation_S.Name = NULL ; Formulation_S.Type = FEMEQUATION ;
      Formulation_S.DefineQuantity = NULL ; Formulation_S.Equation = NULL ;
    ;
    break;}
case 306:
#line 2748 "GetDP.y"
{
      Check_NameOfStructNotExist("Formulation", Problem_S.Formulation,
				 yyvsp[-1].c, fcmp_Formulation_Name) ;
      Formulation_S.Name = yyvsp[-1].c ;
    ;
    break;}
case 307:
#line 2755 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Check_NameOfStructNotExist("Formulation", Problem_S.Formulation,
				 yyvsp[-2].c, fcmp_Formulation_Name) ;
      Formulation_S.Name = yyvsp[-2].c ;
    ;
    break;}
case 308:
#line 2763 "GetDP.y"
{ Formulation_S.Type =
	Get_DefineForString(Formulation_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Formulation: %s", yyvsp[-1].c);
	Get_Valid_SXD(Formulation_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 310:
#line 2775 "GetDP.y"
{ Formulation_S.Equation = yyvsp[-1].l ; ;
    break;}
case 311:
#line 2781 "GetDP.y"
{
      Formulation_S.DefineQuantity = List_Create(6, 6, sizeof (struct DefineQuantity)) ;
    ;
    break;}
case 312:
#line 2786 "GetDP.y"
{
      List_Add(Formulation_S.DefineQuantity, &DefineQuantity_S) ;
    ;
    break;}
case 314:
#line 2797 "GetDP.y"
{ DefineQuantity_S.Name = NULL ;
      DefineQuantity_S.Type = LOCALQUANTITY ;
      DefineQuantity_S.IndexInFunctionSpace = NULL ;
      DefineQuantity_S.FunctionSpaceIndex = -1 ;
      DefineQuantity_S.DofDataIndex = -1 ;
      DefineQuantity_S.DofData = NULL ;
      DefineQuantity_S.DummyFrequency = NULL ;

      DefineQuantity_S.IntegralQuantity.InIndex = -1 ;
      DefineQuantity_S.IntegralQuantity.IntegrationMethodIndex = -1 ;
      DefineQuantity_S.IntegralQuantity.FMMIntegrationMethodIndex = -1 ;
      DefineQuantity_S.IntegralQuantity.JacobianMethodIndex = -1 ;
      DefineQuantity_S.IntegralQuantity.Symmetry = 0 ;
      DefineQuantity_S.IntegralQuantity.WholeQuantity = NULL ;
    ;
    break;}
case 316:
#line 2820 "GetDP.y"
{ DefineQuantity_S.Name = yyvsp[-1].c ; ;
    break;}
case 317:
#line 2823 "GetDP.y"
{ DefineQuantity_S.Type = GLOBALQUANTITY ; ;
    break;}
case 318:
#line 2827 "GetDP.y"
{ DefineQuantity_S.Type = INTEGRALQUANTITY ; ;
    break;}
case 319:
#line 2830 "GetDP.y"
{ DefineQuantity_S.Type =
	Get_DefineForString(DefineQuantity_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Quantity: %s", yyvsp[-1].c);
	Get_Valid_SXD(DefineQuantity_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 320:
#line 2840 "GetDP.y"
{ DefineQuantity_S.DummyFrequency = yyvsp[-1].l;
    ;
    break;}
case 321:
#line 2844 "GetDP.y"
{
      if ((i = List_ISearchSeq(Problem_S.FunctionSpace, yyvsp[0].c,
			       fcmp_FunctionSpace_Name)) < 0)
	vyyerror("Unknown FunctionSpace: %s", yyvsp[0].c) ;
      else
	DefineQuantity_S.FunctionSpaceIndex = i ;
    ;
    break;}
case 322:
#line 2852 "GetDP.y"
{ 
      if (DefineQuantity_S.FunctionSpaceIndex >= 0) {
	if (DefineQuantity_S.Type == GLOBALQUANTITY &&
	    !DefineQuantity_S.IndexInFunctionSpace) {
	  if (DefineQuantity_S.Name) {
	    List_Read(Problem_S.FunctionSpace,
		      DefineQuantity_S.FunctionSpaceIndex, &FunctionSpace_S) ;
	    if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, 
				     DefineQuantity_S.Name,
				     fcmp_GlobalQuantity_Name)) < 0) {
	      vyyerror("Unknown GlobalQuantity: %s", DefineQuantity_S.Name) ;
	    }
	    else {
	      DefineQuantity_S.IndexInFunctionSpace = List_Create(1, 1, sizeof(int));
	      List_Add(DefineQuantity_S.IndexInFunctionSpace, &i) ;
	    }
	  }
	  else  vyyerror("No Name pre-defined for GlobalQuantity") ;
	}
      }
     
    ;
    break;}
case 323:
#line 2876 "GetDP.y"
{ 
      DefineQuantity_S.DofDataIndex = yyvsp[-1].i ; 
    ;
    break;}
case 324:
#line 2881 "GetDP.y"
{ 
      Current_DofIndexInWholeQuantity = -1 ;
      Current_NoDofIndexInWholeQuantity = -1 ;
      List_Reset(ListOfPointer_L) ;
    ;
    break;}
case 325:
#line 2887 "GetDP.y"
{ 
      DefineQuantity_S.IntegralQuantity.WholeQuantity = yyvsp[-2].l ;
      DefineQuantity_S.IntegralQuantity.DofIndexInWholeQuantity = 
	Current_DofIndexInWholeQuantity ;

      WholeQuantity_P = (struct WholeQuantity*)
	List_Pointer(DefineQuantity_S.IntegralQuantity.WholeQuantity, 0) ;

      /* Ce qui suit ne suffit pas : il faudrait aussi gerer des
	Quantity_def sans Dof */

      if (Current_DofIndexInWholeQuantity >= 0) {
	DefineQuantity_S.IntegralQuantity.TypeOperatorDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.TypeOperator ;
	DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
	DefineQuantity_S.FunctionSpaceIndex = 
	  ((struct DefineQuantity*)
	   List_Pointer(Formulation_S.DefineQuantity,
			DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof))->
	  FunctionSpaceIndex ;
      }
      else { /* No Dof{} */
	DefineQuantity_S.IntegralQuantity.TypeOperatorDof = NOOP ;
	DefineQuantity_S.IntegralQuantity.DefineQuantityIndexDof = -1 ;
      }

      if (Current_NoDofIndexInWholeQuantity >= 0) {
	DefineQuantity_S.IntegralQuantity.DefineQuantityIndexNoDof =
	  (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
      }
      else { /* No NoDof{} */
	DefineQuantity_S.IntegralQuantity.DefineQuantityIndexNoDof = -1 ;
      }

      /* Check if the WholeQuantity is a Canonical Form */

      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_NONE ;

      if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 1){

	/* GF_FUNCTION */	
	if ( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION ) {
	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+0)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);
	   	  
	  if (!FlagError){	   
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+0)->Case.Function.Para ;	    
	  }

	  DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF ;

	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+0)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+0)->Case.Function.Para ;	    
	  
	}
      }

      else if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 3){
	
	/* GF_FUNCTION  OPER  DOF */
	if     ( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION     &&
		 (WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR      &&
		 Current_DofIndexInWholeQuantity == 1 ) {
	  
	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+0)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);
	  
	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+0)->Case.Function.Para ;	    
	  }
	  
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_DOF ;
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PVEC_DOF ;
	    
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+0)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+0)->Case.Function.Para ;
	}

	/* DOF OPER GF_FUNCTION */
	else if( (WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY &&
		 (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION     &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR      &&
		 Current_DofIndexInWholeQuantity == 0 ) {

	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+1)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);
	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+1)->Case.Function.Para ;	    
	  }

	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_DOF ;/* Scalar Prod Transitive */
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_DOF_PVEC_GF ;
	  
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+1)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+1)->Case.Function.Para ;	 
	}

	/* GF_FUNCTION  OPER  EXPR */
	else if( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION &&
		 (WholeQuantity_P+1)->Type == WQ_EXPRESSION      &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR  ) {
	 
	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+0)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);
		  
	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+0)->Case.Function.Para ;	
	  }

	  DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical =
	    (WholeQuantity_P+1)->Case.Expression.Index ;
	    
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_EXP ;
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PVEC_EXP ;
	  /*
	  DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	    (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	    (WholeQuantity_P+0)->Case.Function.Para ;	 
	  */
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+0)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+0)->Case.Function.Para ;	 
	}	  
      
	/* EXPR OPER GF_FUNCTION */
	else if( (WholeQuantity_P+0)->Type == WQ_EXPRESSION      &&
		 (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR  ) {
	 
	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+1)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct) ;
	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+1)->Case.Function.Para ;	
	  }

	  DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical =
	    (WholeQuantity_P+0)->Case.Expression.Index ;
	  
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_GF_PSCA_EXP ;/* Transitive product */
	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	    DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF ;
	     
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+1)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+1)->Case.Function.Para ;	 
	}
      }

      else if (List_Nbr(DefineQuantity_S.IntegralQuantity.WholeQuantity) == 5){
	
	/* EXPR  OPER  GF_FUNCTION  OPER  DOF */
	if     ( (WholeQuantity_P+0)->Type == WQ_EXPRESSION          &&
		 (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION     &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR      &&
		 (WholeQuantity_P+3)->Type == WQ_OPERATORANDQUANTITY &&
		 (WholeQuantity_P+4)->Type == WQ_BINARYOPERATOR      &&
		 Current_DofIndexInWholeQuantity == 3 ) {

	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+1)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);

	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+1)->Case.Function.Para ;	  
	  }

	  DefineQuantity_S.IntegralQuantity.ExpressionIndexForCanonical =
	    (WholeQuantity_P+0)->Case.Expression.Index ;

	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+1)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+1)->Case.Function.Para ;

	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME){
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_TIME_GF_PSCA_DOF ;
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_TIME_GF_PVEC_DOF ;
	  }
	  else if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT){
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF_PSCA_DOF ;
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_EXP_PVEC_GF_PVEC_DOF ;
	  } 
	}

	/* FCT OPER  GF_FUNCTION  OPER  DOF */	
	else if( (WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION     &&
		 (WholeQuantity_P+1)->Type == WQ_BUILTINFUNCTION     &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR      &&
		 (WholeQuantity_P+3)->Type == WQ_OPERATORANDQUANTITY &&
		 (WholeQuantity_P+4)->Type == WQ_BINARYOPERATOR      &&
		 Current_DofIndexInWholeQuantity == 3 ) {
 
	  Get_FunctionForFunction(GF_Function,
				  (WholeQuantity_P+1)->Case.Function.Fct,
				  &FlagError,
				  &DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Fct);

	  if (!FlagError){
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.NbrParameters =
	      (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	    DefineQuantity_S.IntegralQuantity.FunctionForCanonical.Para =
	      (WholeQuantity_P+1)->Case.Function.Para ;	    
	  }

	  DefineQuantity_S.IntegralQuantity.AnyFunction.Fct =
	    (WholeQuantity_P+0)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.AnyFunction.NbrParameters =
	    (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.AnyFunction.Para =
	    (WholeQuantity_P+0)->Case.Function.Para ;	

	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Fct =
	    (WholeQuantity_P+1)->Case.Function.Fct ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.NbrParameters =
	    (WholeQuantity_P+1)->Case.Function.NbrParameters ;
	  DefineQuantity_S.IntegralQuantity.FunctionForFMM.Para =
	    (WholeQuantity_P+1)->Case.Function.Para ;

	  if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME){
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_TIME_GF_PSCA_DOF ;
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_TIME_GF_PVEC_DOF ;
	  }
	  else if((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT){
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_TIME)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_PVEC_GF_PSCA_DOF ;
	    if((WholeQuantity_P+4)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	      DefineQuantity_S.IntegralQuantity.CanonicalWholeQuantity = CWQ_FCT_PVEC_GF_PVEC_DOF ;
	  } 
	}
      }

      Pro_DefineQuantityIndex
	(DefineQuantity_S.IntegralQuantity.WholeQuantity,
	 -1,
	 &DefineQuantity_S.IntegralQuantity.NbrQuantityIndex,
	 &DefineQuantity_S.IntegralQuantity.QuantityIndexTable,
	 &DefineQuantity_S.IntegralQuantity.QuantityTraceGroupIndexTable) ;
      if(DefineQuantity_S.IntegralQuantity.NbrQuantityIndex > 1)
	vyyerror("More than one LocalQuantity in IntegralQuantity");

    ;
    break;}
case 326:
#line 3198 "GetDP.y"
{
      DefineQuantity_S.IntegralQuantity.InIndex = Num_Group(&Group_S, "IQ_In", yyvsp[-1].i) ;
    ;
    break;}
case 327:
#line 3203 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c,
			       fcmp_IntegrationMethod_Name)) < 0)
	vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ;
      else
	DefineQuantity_S.IntegralQuantity.IntegrationMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 328:
#line 3212 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c,
			       fcmp_IntegrationMethod_Name)) < 0)
	vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ;
      else
	DefineQuantity_S.IntegralQuantity.FMMIntegrationMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 329:
#line 3221 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c,
			       fcmp_JacobianMethod_Name)) < 0)
	vyyerror("Unknown Jacobian method: %s", yyvsp[-1].c) ;
      else
	DefineQuantity_S.IntegralQuantity.JacobianMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 330:
#line 3230 "GetDP.y"
{ DefineQuantity_S.IntegralQuantity.Symmetry = yyvsp[-1].i ; ;
    break;}
case 332:
#line 3238 "GetDP.y"
{
      if (DefineQuantity_S.FunctionSpaceIndex >= 0) {
	if (DefineQuantity_S.Type == LOCALQUANTITY) {
	  if ((i = List_ISearchSeq
	       (((struct FunctionSpace *)
		 List_Pointer(Problem_S.FunctionSpace,
			      DefineQuantity_S.FunctionSpaceIndex))->SubSpace, yyvsp[-1].c,
		fcmp_SubSpace_Name)) < 0)
	    vyyerror("Unknown SubSpace: %s", yyvsp[-1].c) ;
	  else {
	    DefineQuantity_S.IndexInFunctionSpace =
	      ((struct SubSpace *)
	       List_Pointer
	       (((struct FunctionSpace *)
		 List_Pointer(Problem_S.FunctionSpace,
			      DefineQuantity_S.FunctionSpaceIndex))->SubSpace, i))
		->BasisFunction ;
	  }
	}
	else if (DefineQuantity_S.Type == GLOBALQUANTITY) {
	  List_Read(Problem_S.FunctionSpace,
		    DefineQuantity_S.FunctionSpaceIndex, &FunctionSpace_S) ;
	  if ((i = List_ISearchSeq(FunctionSpace_S.GlobalQuantity, 
				   yyvsp[-1].c, fcmp_GlobalQuantity_Name)) < 0) {
	    vyyerror("Unknown GlobalQuantity: %s", yyvsp[-1].c) ;
	  }
	  else {
	    DefineQuantity_S.IndexInFunctionSpace = List_Create(1, 1, sizeof(int));
	    List_Add(DefineQuantity_S.IndexInFunctionSpace, &i) ;
	  }
	}
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 333:
#line 3278 "GetDP.y"
{
      yyval.l = List_Create(6, 6, sizeof(struct EquationTerm)) ;
    ;
    break;}
case 334:
#line 3283 "GetDP.y"
{
      List_Add(yyval.l = yyvsp[-1].l, &EquationTerm_S) ;
    ;
    break;}
case 335:
#line 3288 "GetDP.y"
{
      yyval.l = yyvsp[-1].l ;
    ;
    break;}
case 336:
#line 3293 "GetDP.y"
{
      yyval.l = yyvsp[-1].l ;
    ;
    break;}
case 337:
#line 3302 "GetDP.y"
{ EquationTerm_S.Type = GALERKIN ; ;
    break;}
case 338:
#line 3305 "GetDP.y"
{ EquationTerm_S.Type = DERHAM ; ;
    break;}
case 339:
#line 3308 "GetDP.y"
{ EquationTerm_S.Type = GLOBALTERM ; ;
    break;}
case 340:
#line 3311 "GetDP.y"
{ EquationTerm_S.Type = GLOBALEQUATION ; ;
    break;}
case 341:
#line 3322 "GetDP.y"
{
      EquationTerm_S.Case.GlobalEquation.Type = NETWORK ;
      EquationTerm_S.Case.GlobalEquation.ConstraintIndex = -1 ;
      EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm = NULL ;
    ;
    break;}
case 343:
#line 3333 "GetDP.y"
{ EquationTerm_S.Case.GlobalEquation.Type =
	Get_DefineForString(Constraint_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of GlobalEquation: %s", yyvsp[-1].c);
	Get_Valid_SXD(Constraint_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 344:
#line 3343 "GetDP.y"
{
      if ((i = List_ISearchSeq(Problem_S.Constraint, yyvsp[-1].c,
			       fcmp_Constraint_Name)) >= 0)
	EquationTerm_S.Case.GlobalEquation.ConstraintIndex = i ;
      else
	EquationTerm_S.Case.GlobalEquation.ConstraintIndex = -1 ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 345:
#line 3353 "GetDP.y"
{
      if (!EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm)
	EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm =
	  List_Create( 3, 3, sizeof(struct GlobalEquationTerm)) ;
      List_Add(EquationTerm_S.Case.GlobalEquation.GlobalEquationTerm,
	       &GlobalEquationTerm_S) ;
    ;
    break;}
case 346:
#line 3367 "GetDP.y"
{
      GlobalEquationTerm_S.DefineQuantityIndexNode = -1 ;
      GlobalEquationTerm_S.DefineQuantityIndexLoop = -1 ;
      GlobalEquationTerm_S.DefineQuantityIndexEqu  = -1 ;
      GlobalEquationTerm_S.InIndex = -1 ;
    ;
    break;}
case 348:
#line 3379 "GetDP.y"
{ GlobalEquationTerm_S.DefineQuantityIndexNode = yyvsp[-1].t.Int2 ; ;
    break;}
case 349:
#line 3381 "GetDP.y"
{ GlobalEquationTerm_S.DefineQuantityIndexLoop = yyvsp[-1].t.Int2 ; ;
    break;}
case 350:
#line 3383 "GetDP.y"
{ GlobalEquationTerm_S.DefineQuantityIndexEqu  = yyvsp[-1].t.Int2 ; ;
    break;}
case 351:
#line 3385 "GetDP.y"
{ GlobalEquationTerm_S.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ; ;
    break;}
case 352:
#line 3393 "GetDP.y"
{ EquationTerm_S.Case.LocalTerm.Term.TypeTimeDerivative = NODT_ ;
      EquationTerm_S.Case.LocalTerm.Term.TypeOperatorEqu = NOOP ;
      EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = NOOP ;
      EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu = -1 ;
      EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = -1 ;
      EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof = -1 ;
      EquationTerm_S.Case.LocalTerm.Term.WholeQuantity = NULL ;
      EquationTerm_S.Case.LocalTerm.Term.DofIndexInWholeQuantity = -1 ;
      EquationTerm_S.Case.LocalTerm.Term.DofInTrace = 0 ;
      EquationTerm_S.Case.LocalTerm.InIndex = -1 ;
      EquationTerm_S.Case.LocalTerm.IntegrationMethodIndex = -1 ;
      EquationTerm_S.Case.LocalTerm.FMMIntegrationMethodIndex = -1 ;
      EquationTerm_S.Case.LocalTerm.MatrixIndex = -1 ;
      EquationTerm_S.Case.LocalTerm.JacobianMethodIndex = -1 ;
      EquationTerm_S.Case.LocalTerm.Active = NULL ;
      EquationTerm_S.Case.LocalTerm.Full_Matrix = 0 ;
    ;
    break;}
case 354:
#line 3418 "GetDP.y"
{
      EquationTerm_S.Case.LocalTerm.Term.TypeTimeDerivative = Type_TermOperator ;
      Current_DofIndexInWholeQuantity = -1 ;
      Current_NoDofIndexInWholeQuantity = -1 ;
      List_Reset(ListOfPointer_L) ;
    ;
    break;}
case 355:
#line 3426 "GetDP.y"
{ EquationTerm_S.Case.LocalTerm.Term.WholeQuantity = yyvsp[0].l ;

      EquationTerm_S.Case.LocalTerm.Term.DofIndexInWholeQuantity =
	Current_DofIndexInWholeQuantity ;

      WholeQuantity_P = (struct WholeQuantity*)
	List_Pointer(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity, 0) ;

      if (Current_DofIndexInWholeQuantity == -4){
	EquationTerm_S.Case.LocalTerm.Term.DofInTrace = 1 ;
	EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = 
	  TypeOperatorDofInTrace ;
	EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = 
	  DefineQuantityIndexDofInTrace ;
      }
      else if (Current_DofIndexInWholeQuantity >= 0) {
	EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.TypeOperator ;
	EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
      }
      else { /* No Dof{} */
	EquationTerm_S.Case.LocalTerm.Term.TypeOperatorDof = NOOP ;
	EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof = -1 ;
      }

      if (Current_NoDofIndexInWholeQuantity >= 0) {
	EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof =
	  (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
      }
      else { /* No NoDof{} */
	EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexNoDof = -1 ;
      }

      /* Check if the WholeQuantity is a Canonical Form of type 'expr[] * Dof{}'*/

      if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 3) &&
	  ((WholeQuantity_P+0)->Type == WQ_EXPRESSION) &&
	  ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) &&
	  ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) &&
	  ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) &&
	  (Current_DofIndexInWholeQuantity == 1)) {
	EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity =
	  CWQ_EXP_TIME_DOF ;
	EquationTerm_S.Case.LocalTerm.Term.ExpressionIndexForCanonical =
	  (WholeQuantity_P+0)->Case.Expression.Index ;
      }
      else if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 3) &&
	  ((WholeQuantity_P+0)->Type == WQ_BUILTINFUNCTION) &&
	  ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) &&
	  ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) &&
	  (Current_DofIndexInWholeQuantity == 1)) {
	if ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME)
	  EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_FCT_TIME_DOF ;
	if ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_CROSSPRODUCT)
	  EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_FCT_PVEC_DOF ;
	    
	EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.Fct =
	  (WholeQuantity_P+0)->Case.Function.Fct ;
	EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.NbrParameters =
	  (WholeQuantity_P+0)->Case.Function.NbrParameters ;
	EquationTerm_S.Case.LocalTerm.Term.FunctionForCanonical.Para =
	  (WholeQuantity_P+0)->Case.Function.Para ;
      }
      else if ((List_Nbr(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity) == 1) &&
	       ((WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY) &&
	       (Current_DofIndexInWholeQuantity == 0)) {
	EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_DOF ;
      }
      else {
	EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity = CWQ_NONE ;
      }

    ;
    break;}
case 356:
#line 3505 "GetDP.y"
{ 
      EquationTerm_S.Case.LocalTerm.Term.TypeOperatorEqu = Quantity_TypeOperator ;
      EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu = Quantity_Index ;
      EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity_Equ = CWQ_NONE ;

      WholeQuantity_P = (struct WholeQuantity*) List_Pointer(yyvsp[-2].l, 0) ;

      if (List_Nbr(yyvsp[-2].l) == 1){
	if ((WholeQuantity_P+0)->Type != WQ_OPERATORANDQUANTITY)
	  vyyerror("Missing Quantity in Equation");
      }
      else if (List_Nbr(yyvsp[-2].l) == 3 &&
	       ( (WholeQuantity_P+0)->Type == WQ_EXPRESSION &&
		 (WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY &&
		 (WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR ) ) {
	EquationTerm_S.Case.LocalTerm.Term.CanonicalWholeQuantity_Equ = 
	  CWQ_EXP_TIME_DOF ;
	EquationTerm_S.Case.LocalTerm.Term.ExpressionIndexForCanonical_Equ = 
	  (WholeQuantity_P+0)->Case.Expression.Index ;
	EquationTerm_S.Case.LocalTerm.Term.OperatorTypeForCanonical_Equ =
	  (WholeQuantity_P+2)->Case.Operator.TypeOperator ;
      }
      else{
	vyyerror("Unrecognized quantity structure in Equation");
      }

      Pro_DefineQuantityIndex
	(EquationTerm_S.Case.LocalTerm.Term.WholeQuantity,
	 EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu,
	 &EquationTerm_S.Case.LocalTerm.Term.NbrQuantityIndex,
	 &EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable,
	 &EquationTerm_S.Case.LocalTerm.Term.QuantityTraceGroupIndexTable) ;

      EquationTerm_S.Case.LocalTerm.Term.QuantityIndexPost = 0 ;
      for (i = 0 ; i < EquationTerm_S.Case.LocalTerm.Term.NbrQuantityIndex ; i++) {
	if ((EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable[i] !=
	     EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexEqu) &&
	    (EquationTerm_S.Case.LocalTerm.Term.QuantityIndexTable[i] !=
	     EquationTerm_S.Case.LocalTerm.Term.DefineQuantityIndexDof)) {
	  EquationTerm_S.Case.LocalTerm.Term.QuantityIndexPost = 1 ;
	  break ;
	}
      }
    ;
    break;}
case 357:
#line 3551 "GetDP.y"
{
      EquationTerm_S.Case.LocalTerm.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ;
    ;
    break;}
case 358:
#line 3556 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c,
			       fcmp_JacobianMethod_Name)) < 0)
	vyyerror("Unknown Jacobian method: %s",yyvsp[-1].c) ;
      else
	EquationTerm_S.Case.LocalTerm.JacobianMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 359:
#line 3565 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c,
			       fcmp_IntegrationMethod_Name)) < 0)
	vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ;
      else
	EquationTerm_S.Case.LocalTerm.IntegrationMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 360:
#line 3574 "GetDP.y"
{
      EquationTerm_S.Case.LocalTerm.Full_Matrix = 1; 
    ;
    break;}
case 361:
#line 3579 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c,
			       fcmp_IntegrationMethod_Name)) < 0)
	vyyerror("Unknown Integration method: %s", yyvsp[-1].c) ;
      else
	EquationTerm_S.Case.LocalTerm.FMMIntegrationMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 362:
#line 3588 "GetDP.y"
{ if ( yyvsp[-2].i == 1 || yyvsp[-2].i == 2 || yyvsp[-2].i == 3 )
	EquationTerm_S.Case.LocalTerm.MatrixIndex = yyvsp[-2].i ;
      else
	vyyerror("Unknown Matrix123: %d", yyvsp[-2].i) ;
    ;
    break;}
case 363:
#line 3599 "GetDP.y"
{ EquationTerm_S.Case.GlobalTerm.TypeTimeDerivative = NODT_ ;
      EquationTerm_S.Case.GlobalTerm.DefineQuantityIndex = -1 ;

      EquationTerm_S.Case.GlobalTerm.Term.TypeTimeDerivative = NODT_ ;
      EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorEqu = NOOP ;
      EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof = NOOP ;
      EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu = -1 ;
      EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof = -1 ;
      EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof = -1 ;
      EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity = NULL ;
      EquationTerm_S.Case.GlobalTerm.Term.DofIndexInWholeQuantity = -1 ;
      EquationTerm_S.Case.GlobalTerm.InIndex = -1 ;
    ;
    break;}
case 365:
#line 3628 "GetDP.y"
{
      EquationTerm_S.Case.GlobalTerm.InIndex = Num_Group(&Group_S, "FO_In", yyvsp[-1].i) ;
    ;
    break;}
case 366:
#line 3633 "GetDP.y"
{ 
      EquationTerm_S.Case.GlobalTerm.Term.TypeTimeDerivative = Type_TermOperator ;
      Current_DofIndexInWholeQuantity = -1 ;
      Current_NoDofIndexInWholeQuantity = -1 ;
      List_Reset(ListOfPointer_L) ;
    ;
    break;}
case 367:
#line 3641 "GetDP.y"
{ EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity = yyvsp[0].l ;

      EquationTerm_S.Case.GlobalTerm.Term.DofIndexInWholeQuantity =
	Current_DofIndexInWholeQuantity ;

      WholeQuantity_P = (struct WholeQuantity*)
	List_Pointer(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity, 0) ;

      if (Current_DofIndexInWholeQuantity >= 0) {
	EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.TypeOperator ;
	EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof =
	  (WholeQuantity_P+Current_DofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
      }
      else { /* No Dof{} */
	EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorDof = NOOP ;
	EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexDof = -1 ;
      }

      if (Current_NoDofIndexInWholeQuantity >= 0) {
	EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof =
	  (WholeQuantity_P+Current_NoDofIndexInWholeQuantity)->
	    Case.OperatorAndQuantity.Index ;
      }
      else { /* No NoDof{} */
	EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexNoDof = -1 ;
      }

      /* Check if the WholeQuantity is a Canonical Form of type 'expr[] * Dof{}'*/

      if ((List_Nbr(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity) == 3) &&
	  ((WholeQuantity_P+0)->Type == WQ_EXPRESSION) &&
	  ((WholeQuantity_P+1)->Type == WQ_OPERATORANDQUANTITY) &&
	  ((WholeQuantity_P+2)->Type == WQ_BINARYOPERATOR) &&
	  ((WholeQuantity_P+2)->Case.Operator.TypeOperator == OP_TIME) &&
	  (Current_DofIndexInWholeQuantity == 1)) {
	EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity =
	  CWQ_EXP_TIME_DOF ;
	EquationTerm_S.Case.GlobalTerm.Term.ExpressionIndexForCanonical =
	  (WholeQuantity_P+0)->Case.Expression.Index ;
      }
      else if ((List_Nbr(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity) == 1) &&
	       ((WholeQuantity_P+0)->Type == WQ_OPERATORANDQUANTITY) &&
	       (Current_DofIndexInWholeQuantity == 0)) {
	EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity = CWQ_DOF ;
      }
      else {
	EquationTerm_S.Case.GlobalTerm.Term.CanonicalWholeQuantity = CWQ_NONE ;
      }

    ;
    break;}
case 368:
#line 3696 "GetDP.y"
{ EquationTerm_S.Case.GlobalTerm.Term.TypeOperatorEqu = yyvsp[-2].t.Int1 ;
      EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu = yyvsp[-2].t.Int2 ;

      Pro_DefineQuantityIndex
	(EquationTerm_S.Case.GlobalTerm.Term.WholeQuantity,
	 EquationTerm_S.Case.GlobalTerm.Term.DefineQuantityIndexEqu,
	 &EquationTerm_S.Case.GlobalTerm.Term.NbrQuantityIndex,
	 &EquationTerm_S.Case.GlobalTerm.Term.QuantityIndexTable,
	 &EquationTerm_S.Case.GlobalTerm.Term.QuantityTraceGroupIndexTable) ;
    ;
    break;}
case 369:
#line 3713 "GetDP.y"
{ Type_TermOperator = NODT_    ; ;
    break;}
case 370:
#line 3714 "GetDP.y"
{ Type_TermOperator = DT_      ; ;
    break;}
case 371:
#line 3715 "GetDP.y"
{ Type_TermOperator = DTDOF_   ; ;
    break;}
case 372:
#line 3716 "GetDP.y"
{ Type_TermOperator = DTDT_    ; ;
    break;}
case 373:
#line 3717 "GetDP.y"
{ Type_TermOperator = DTDTDOF_ ; ;
    break;}
case 374:
#line 3718 "GetDP.y"
{ Type_TermOperator = JACNL_   ; ;
    break;}
case 375:
#line 3719 "GetDP.y"
{ Type_TermOperator = NEVERDT_ ; ;
    break;}
case 376:
#line 3720 "GetDP.y"
{ Type_TermOperator = DTNL_    ; ;
    break;}
case 377:
#line 3727 "GetDP.y"
{ yyval.t.Int1 = Get_DefineForString(Operator_Type, yyvsp[-2].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown Operator for discrete Quantity: %s", yyvsp[-2].c);
	Get_Valid_SXD(Operator_Type);
      }
      Free(yyvsp[-2].c) ;

      if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c,
			       fcmp_DefineQuantity_Name)) < 0)
	vyyerror("Unknown discrete Quantity: %s", yyvsp[-1].c) ;
      yyval.t.Int2 = i ;

      /* the following should be suppressed as soon as the test
         function part in the formulations is correctly treated */
      Quantity_TypeOperator = yyval.t.Int1 ;
      Quantity_Index = yyval.t.Int2 ;

      Free(yyvsp[-1].c) ;
    ;
    break;}
case 378:
#line 3748 "GetDP.y"
{ yyval.t.Int1 = NOOP ;

      if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c,
			       fcmp_DefineQuantity_Name)) < 0)
	vyyerror("Unknown discrete Quantity: %s", yyvsp[-1].c) ;
      yyval.t.Int2 = i ;

      /* the following should be suppressed as soon as the test
         function part in the formulations is correctly treated */
      Quantity_TypeOperator = yyval.t.Int1 ;
      Quantity_Index = yyval.t.Int2 ;

      Free(yyvsp[-1].c) ;
    ;
    break;}
case 379:
#line 3772 "GetDP.y"
{ if (!Problem_S.Resolution)
	Problem_S.Resolution = List_Create(10, 5, sizeof (struct Resolution)) ;
    ;
    break;}
case 381:
#line 3782 "GetDP.y"
{
      List_Add(Problem_S.Resolution, &Resolution_S) ;
    ;
    break;}
case 384:
#line 3795 "GetDP.y"
{
      Resolution_S.Name = NULL ; Resolution_S.DefineSystem = NULL ;
      Resolution_S.Operation = NULL ;
    ;
    break;}
case 386:
#line 3807 "GetDP.y"
{
      Check_NameOfStructNotExist("Resolution", Problem_S.Resolution,
				 yyvsp[-1].c, fcmp_Resolution_Name) ;
      Resolution_S.Name = yyvsp[-1].c ;
    ;
    break;}
case 387:
#line 3814 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Check_NameOfStructNotExist("Resolution", Problem_S.Resolution,
				 yyvsp[-2].c, fcmp_Resolution_Name) ;
      Resolution_S.Name = yyvsp[-2].c ;
    ;
    break;}
case 388:
#line 3822 "GetDP.y"
{ Resolution_S.DefineSystem = yyvsp[-1].l ; ;
    break;}
case 389:
#line 3825 "GetDP.y"
{ Operation_L = List_Create( 5, 5, sizeof(struct Operation)) ; ;
    break;}
case 390:
#line 3827 "GetDP.y"
{ Resolution_S.Operation = yyvsp[-1].l ;  List_Delete(Operation_L) ; ;
    break;}
case 392:
#line 3835 "GetDP.y"
{
      yyval.l = Current_System_L = List_Create(6, 6, sizeof (struct DefineSystem)) ;
    ;
    break;}
case 393:
#line 3840 "GetDP.y"
{
      List_Add(yyval.l = Current_System_L = yyvsp[-3].l, &DefineSystem_S) ;
    ;
    break;}
case 394:
#line 3845 "GetDP.y"
{
       yyval.l = yyvsp[-1].l ;
     ;
    break;}
case 395:
#line 3855 "GetDP.y"
{ DefineSystem_S.Name = NULL ;  
      DefineSystem_S.Type = VAL_REAL ;
      DefineSystem_S.FormulationIndex = NULL ;
      DefineSystem_S.MeshName = NULL ;
      DefineSystem_S.AdaptName = NULL ;
      DefineSystem_S.FrequencyValue = NULL ;
      DefineSystem_S.SolverDataFileName = NULL ;
      DefineSystem_S.OriginSystemIndex = NULL ;
      DefineSystem_S.DestinationSystemName = NULL ;
      DefineSystem_S.DestinationSystemIndex = -1 ;
      DefineSystem_S.Flag_FMM = 0 ;
    ;
    break;}
case 397:
#line 3875 "GetDP.y"
{ DefineSystem_S.Name = yyvsp[-1].c ; ;
    break;}
case 398:
#line 3878 "GetDP.y"
{ DefineSystem_S.Type = Get_DefineForString(DefineSystem_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of System: %s", yyvsp[-1].c);
	Get_Valid_SXD(DefineSystem_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 399:
#line 3887 "GetDP.y"
{ DefineSystem_S.FormulationIndex = yyvsp[-1].l ; ;
    break;}
case 400:
#line 3890 "GetDP.y"
{
      DefineSystem_S.MeshName = yyvsp[-1].c ;
    ;
    break;}
case 401:
#line 3895 "GetDP.y"
{ 
      DefineSystem_S.OriginSystemIndex = yyvsp[-1].l ;
    ;
    break;}
case 402:
#line 3900 "GetDP.y"
{ 
      DefineSystem_S.DestinationSystemName = yyvsp[-1].c ; 
    ;
    break;}
case 403:
#line 3905 "GetDP.y"
{ DefineSystem_S.FrequencyValue = yyvsp[-1].l;
      DefineSystem_S.Type = VAL_COMPLEX ;
    ;
    break;}
case 404:
#line 3910 "GetDP.y"
{
      DefineSystem_S.SolverDataFileName = yyvsp[-1].c ;
    ;
    break;}
case 406:
#line 3921 "GetDP.y"
{
      yyval.l = List_Create(1, 1, sizeof(int)) ;
      if ((i = List_ISearchSeq(Problem_S.Formulation, yyvsp[0].c, fcmp_Formulation_Name)) < 0)
	vyyerror("Unknown Formulation: %s", yyvsp[0].c) ;
      else  List_Add(yyval.l, &i) ;
      Free(yyvsp[0].c) ;
    ;
    break;}
case 407:
#line 3930 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 408:
#line 3937 "GetDP.y"
{ yyval.l = List_Create(2, 2, sizeof(int)) ; ;
    break;}
case 409:
#line 3940 "GetDP.y"
{
      if ((i = List_ISearchSeq(Problem_S.Formulation, yyvsp[0].c, fcmp_Formulation_Name)) < 0)
	vyyerror("Unknown Formulation: %s", yyvsp[0].c) ;
      else  
	List_Add(yyvsp[-2].l, &i) ;
      yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ;
    ;
    break;}
case 410:
#line 3952 "GetDP.y"
{
      yyval.l = List_Create(1, 1, sizeof(int)) ;
      if ((i = List_ISearchSeq(Current_System_L, yyvsp[0].c, fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[0].c) ;
      else  
	List_Add(yyval.l, &i) ;
      Free(yyvsp[0].c) ;
    ;
    break;}
case 411:
#line 3962 "GetDP.y"
{ yyval.l = yyvsp[-1].l ;  ;
    break;}
case 412:
#line 3968 "GetDP.y"
{ yyval.l = List_Create(2, 2, sizeof(int)) ; ;
    break;}
case 413:
#line 3971 "GetDP.y"
{
      if ((i = List_ISearchSeq(Current_System_L, yyvsp[0].c, fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[0].c) ;
      else  
	List_Add(yyvsp[-2].l, &i) ;
      yyval.l = yyvsp[-2].l ; Free(yyvsp[0].c) ;
    ;
    break;}
case 414:
#line 3983 "GetDP.y"
{ 
      yyval.l = List_Create(6, 6, sizeof (struct Operation)) ;
      Operation_S.Type = OPERATION_NONE ; 
      Operation_S.DefineSystemIndex = -1 ;
      List_Add(Operation_L, &Operation_S) ;
    ;
    break;}
case 415:
#line 3991 "GetDP.y"
{ 
      if (((struct Operation*)
	  List_Pointer(Operation_L, List_Nbr(Operation_L)-1))->Type !=  OPERATION_NONE)
	List_Add(yyval.l = yyvsp[-1].l, (struct Operation*)
		 List_Pointer(Operation_L, List_Nbr(Operation_L)-1)) ; 
    ;
    break;}
case 416:
#line 4004 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = Get_DefineForString(Operation_Type, yyvsp[-2].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Operation: %s", yyvsp[-2].c);
	Get_Valid_SXD(Operation_Type);
      }
      Free(yyvsp[-2].c) ;

      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-1].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;
      Operation_P->DefineSystemIndex = i ;

      if (Operation_P->Type == OPERATION_GENERATE || 
	  Operation_P->Type == OPERATION_GENERATEJAC ||
	  Operation_P->Type == OPERATION_GENERATESEPARATE)
	Operation_P->Case.Generate.GroupIndex = -1 ;      
    ;
    break;}
case 417:
#line 4026 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SETTIME ;
      Operation_P->Case.SetTime.ExpressionIndex = yyvsp[-1].i ;
    ;
    break;}
case 418:
#line 4033 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TIMELOOPTHETA ;
    ;
    break;}
case 419:
#line 4039 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TIMELOOPNEWMARK ;
    ;
    break;}
case 420:
#line 4045 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_ITERATIVELOOP ;
    ;
    break;}
case 421:
#line 4051 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_ITERATIVETIMEREDUCTION ;
    ;
    break;}
case 422:
#line 4059 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = Get_DefineForString(Operation_Type, yyvsp[-4].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Operation: %s", yyvsp[-4].c);
	Get_Valid_SXD(Operation_Type);
      }
      Free(yyvsp[-4].c) ;
      
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-2].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-2].c) ;
      Free(yyvsp[-2].c) ;
      Operation_P->DefineSystemIndex = i ;

      if (Operation_P->Type == OPERATION_GENERATE || 
	  Operation_P->Type == OPERATION_GENERATEJAC ||
	  Operation_P->Type == OPERATION_GENERATESEPARATE)
	Operation_P->Case.Generate.GroupIndex = -1 ;
    ;
    break;}
case 423:
#line 4081 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SETTIME ;
      Operation_P->Case.SetTime.ExpressionIndex = yyvsp[-2].i ;
    ;
    break;}
case 424:
#line 4088 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_BREAK ;
    ;
    break;}
case 425:
#line 4094 "GetDP.y"
{ 
      List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TEST ;
      Operation_P->Case.Test.ExpressionIndex = yyvsp[-4].i ;
      Operation_P->Case.Test.Operation_True = yyvsp[-1].l ;
      Operation_P->Case.Test.Operation_False = NULL ;
    ;
    break;}
case 426:
#line 4105 "GetDP.y"
{ 
      List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TEST ;
      Operation_P->Case.Test.ExpressionIndex = yyvsp[-8].i ;
      Operation_P->Case.Test.Operation_True = yyvsp[-5].l ;
      Operation_P->Case.Test.Operation_False = yyvsp[-1].l ;
    ;
    break;}
case 427:
#line 4116 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SETFREQUENCY ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SetFrequency.ExpressionIndex = yyvsp[-2].i ;
    ;
    break;}
case 428:
#line 4129 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_GENERATEFMMGROUPS ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-10].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-10].c) ;
      Free(yyvsp[-10].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-8].i;      
      Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-6].i;
      Operation_P->Case.GenerateFMMGroups.Precision = yyvsp[-4].i;
      Operation_P->Case.GenerateFMMGroups.FlagDTA = yyvsp[-2].i;      
    ;
    break;}
case 429:
#line 4144 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_GENERATEFMMGROUPS ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-6].i;      
      Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-4].i;
      Operation_P->Case.GenerateFMMGroups.Precision = yyvsp[-2].i;
      Operation_P->Case.GenerateFMMGroups.FlagDTA = -1;      
    ;
    break;}
case 430:
#line 4159 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_GENERATEFMMGROUPS ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.GenerateFMMGroups.DivXYZIndex = yyvsp[-4].i;      
      Operation_P->Case.GenerateFMMGroups.Dfar = yyvsp[-2].i;
      Operation_P->Case.GenerateFMMGroups.Precision = -1;
      Operation_P->Case.GenerateFMMGroups.FlagDTA = -1;      
    ;
    break;}
case 431:
#line 4174 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_GENERATEONLY ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.GenerateOnly.MatrixIndex_L =
	List_Create(List_Nbr(yyvsp[-2].l),1,sizeof(int));
     
      for(i=0 ; i<List_Nbr(yyvsp[-2].l) ; i++){
	List_Read(yyvsp[-2].l,i,&d);
	j = (int)d ;
	List_Add(Operation_P->Case.GenerateOnly.MatrixIndex_L, &j);
      }
      List_Delete(yyvsp[-2].l); 
    ;
    break;}
case 432:
#line 4194 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_GENERATEONLYJAC ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.GenerateOnly.MatrixIndex_L =
	List_Create(List_Nbr(yyvsp[-2].l),1,sizeof(int));
     
      for(i=0 ; i<List_Nbr(yyvsp[-2].l) ; i++){
	List_Read(yyvsp[-2].l,i,&d);
	j = (int)d ;
	List_Add(Operation_P->Case.GenerateOnly.MatrixIndex_L, &j);
      }
      List_Delete(yyvsp[-2].l); 
    ;
    break;}
case 433:
#line 4215 "GetDP.y"
{ Operation_P = (struct Operation*)
        List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_UPDATE ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
                               fcmp_DefineSystem_Name)) < 0)
        vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.Update.ExpressionIndex = yyvsp[-2].i ;
    ;
    break;}
case 434:
#line 4227 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
    Operation_P->Type = OPERATION_UPDATECONSTRAINT ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.UpdateConstraint.GroupIndex =
	Num_Group(&Group_S, "OP_UpdateCst", yyvsp[-4].i) ;
      Operation_P->Case.UpdateConstraint.Type =
	Get_DefineForString(Constraint_Type, yyvsp[-2].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of Constraint: %s", yyvsp[-2].c);
	Get_Valid_SXD(Constraint_Type);
      }
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 435:
#line 4247 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_FOURIERTRANSFORM ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->Case.FourierTransform.DefineSystemIndex[0] = i ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->Case.FourierTransform.DefineSystemIndex[1] = i ;
      Operation_P->Case.FourierTransform.Frequency = yyvsp[-2].l;
    ;
    break;}
case 436:
#line 4264 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_FOURIERTRANSFORM2 ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->Case.FourierTransform2.DefineSystemIndex[0] = i ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->Case.FourierTransform2.DefineSystemIndex[1] = i ;
      Operation_P->Case.FourierTransform2.Period = yyvsp[-2].d;
      Operation_P->Case.FourierTransform2.Period_sofar = 0.;
      Operation_P->Case.FourierTransform2.Scales = NULL;
    ;
    break;}
case 437:
#line 4283 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_LANCZOS ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.Lanczos.Size = (int)yyvsp[-6].d ;
      Operation_P->Case.Lanczos.Save = 
	List_Create(List_Nbr(yyvsp[-4].l), 1, sizeof(int)) ;
      for (i = 0 ; i < List_Nbr(yyvsp[-4].l) ; i++) {
	List_Read(yyvsp[-4].l, i, &d) ;
	j = (int)d ;
	List_Add(Operation_P->Case.Lanczos.Save, &j) ;
      }
      List_Delete(yyvsp[-4].l);
      Operation_P->Case.Lanczos.Shift = yyvsp[-2].d ;
    ;
    break;}
case 438:
#line 4304 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_EIGENSOLVE ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.EigenSolve.NumEigenvalues = (int)yyvsp[-6].d ;
      Operation_P->Case.EigenSolve.Shift_r = yyvsp[-4].d ;
      Operation_P->Case.EigenSolve.Shift_i = yyvsp[-2].d ;
    ;
    break;}
case 439:
#line 4318 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_EIGENSOLVEJAC ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.EigenSolve.NumEigenvalues = (int)yyvsp[-6].d ;
      Operation_P->Case.EigenSolve.Shift_r = yyvsp[-4].d ;
      Operation_P->Case.EigenSolve.Shift_i = yyvsp[-2].d ;
    ;
    break;}
case 440:
#line 4332 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_EVALUATE;
      Operation_P->Case.Evaluate.ExpressionIndex = (int)yyvsp[-2].i ;
    ;
    break;}
case 441:
#line 4340 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_PERTURBATION ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-14].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-14].c) ;
      Free(yyvsp[-14].c) ;
      Operation_P->DefineSystemIndex = i ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-12].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-12].c) ;
      Free(yyvsp[-12].c) ;
      Operation_P->Case.Perturbation.DefineSystemIndex2 = i ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-10].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-10].c) ;
      Free(yyvsp[-10].c) ;
      Operation_P->Case.Perturbation.DefineSystemIndex3 = i ;
      Operation_P->Case.Perturbation.Size = (int)yyvsp[-8].d ;
      Operation_P->Case.Perturbation.Save = 
	List_Create(List_Nbr(yyvsp[-6].l), 1, sizeof(int)) ;
      for (i = 0 ; i < List_Nbr(yyvsp[-6].l) ; i++) {
	List_Read(yyvsp[-6].l, i, &d) ;
	j = (int)d ;
	List_Add(Operation_P->Case.Perturbation.Save, &j) ;
      }
      List_Delete(yyvsp[-6].l);
      Operation_P->Case.Perturbation.Shift = yyvsp[-4].d ;
      Operation_P->Case.Perturbation.PertFreq = (int)yyvsp[-2].d ;
    ;
    break;}
case 442:
#line 4374 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TIMELOOPTHETA ;
      Operation_P->Case.TimeLoopTheta.Time0 = yyvsp[-10].d ;
      Operation_P->Case.TimeLoopTheta.TimeMax = yyvsp[-8].d ;
      Operation_P->Case.TimeLoopTheta.DTimeIndex = yyvsp[-6].i ;
      Operation_P->Case.TimeLoopTheta.ThetaIndex = yyvsp[-4].i ;
      Operation_P->Case.TimeLoopTheta.Operation = yyvsp[-1].l ;
    ;
    break;}
case 443:
#line 4387 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_TIMELOOPNEWMARK ;
      Operation_P->Case.TimeLoopNewmark.Time0 = yyvsp[-12].d ; 
      Operation_P->Case.TimeLoopNewmark.TimeMax = yyvsp[-10].d ; 
      Operation_P->Case.TimeLoopNewmark.DTimeIndex = yyvsp[-8].i ; 
      Operation_P->Case.TimeLoopNewmark.Beta = yyvsp[-6].d ; 
      Operation_P->Case.TimeLoopNewmark.Gamma = yyvsp[-4].d ; 
      Operation_P->Case.TimeLoopNewmark.Operation = yyvsp[-1].l ;
    ;
    break;}
case 444:
#line 4401 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_ITERATIVELOOP ;
      Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-8].d ;
      Operation_P->Case.IterativeLoop.Criterion = yyvsp[-6].d ;
      Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-4].i ;
      Operation_P->Case.IterativeLoop.Flag = 0 ;
      Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ;
    ;
    break;}
case 445:
#line 4414 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_ITERATIVELOOP ;
      Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-10].d ;
      Operation_P->Case.IterativeLoop.Criterion = yyvsp[-8].d ;
      Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-6].i ;
      Operation_P->Case.IterativeLoop.Flag = (int)yyvsp[-4].d ;
      Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ;
    ;
    break;}
case 446:
#line 4426 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_PRINT ;
      Operation_P->Case.Print.Expression = NULL ; 
      Operation_P->DefineSystemIndex = -1 ;
    ;
    break;}
case 448:
#line 4435 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_WRITE ;
      Operation_P->Case.Print.Expression = NULL ; 
      Operation_P->DefineSystemIndex = -1 ;
    ;
    break;}
case 450:
#line 4444 "GetDP.y"
{
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_CHANGEOFCOORDINATES ;
      Operation_P->Case.ChangeOfCoordinates.GroupIndex =
	Num_Group(&Group_S, "OP_ChgCoord", yyvsp[-4].i) ;
      Operation_P->Case.ChangeOfCoordinates.ExpressionIndex = yyvsp[-2].i ; 
      Operation_P->Case.ChangeOfCoordinates.ExpressionIndex2 = -1 ; 
    ;
    break;}
case 451:
#line 4455 "GetDP.y"
{
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_CHANGEOFCOORDINATES ;
      Operation_P->Case.ChangeOfCoordinates.GroupIndex =
	Num_Group(&Group_S, "OP_ChgCoord", yyvsp[-8].i) ;
      Operation_P->Case.ChangeOfCoordinates.ExpressionIndex = yyvsp[-6].i ;
      Operation_P->Case.ChangeOfCoordinates.NumNode = (int)yyvsp[-4].d ;
      Operation_P->Case.ChangeOfCoordinates.ExpressionIndex2 = yyvsp[-2].i ; 
    ;
    break;}
case 452:
#line 4467 "GetDP.y"
{
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_POSTOPERATION ;
      Operation_P->Case.PostOperation.PostOperations =
	List_Create(1,1,sizeof(char*));
      List_Add(Operation_P->Case.PostOperation.PostOperations, &yyvsp[-2].c);
    ;
    break;}
case 453:
#line 4477 "GetDP.y"
{
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SYSTEMCOMMAND ;
      Operation_P->Case.SystemCommand.String = yyvsp[-2].c ; 
    ;
    break;}
case 454:
#line 4485 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SOLVEJACADAPTRELAX ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SolveJac_AdaptRelax.CheckAll = (int)yyvsp[-2].d ;
      Operation_P->Case.SolveJac_AdaptRelax.Factor_L = yyvsp[-4].l ; 
    ;
    break;}
case 455:
#line 4498 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SAVESOLUTIONEXTENDEDMH ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SaveSolutionExtendedMH.NbrFreq = (int)yyvsp[-4].d ;
      Operation_P->Case.SaveSolutionExtendedMH.ResFile = yyvsp[-2].c ;
    ;
    break;}
case 456:
#line 4511 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = OPERATION_SAVESOLUTIONMHTOTIME ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SaveSolutionMHtoTime.Time = yyvsp[-4].l ;
      Operation_P->Case.SaveSolutionMHtoTime.ResFile = yyvsp[-2].c ;
    ;
    break;}
case 457:
#line 4525 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) 
   	vyyerror("Unknown Group: %s", yyvsp[-2].c) ;
      Operation_P->Type = OPERATION_INIT_MOVINGBAND2D ;
            Operation_P->Case.Init_MovingBand2D.GroupIndex = i ;
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 458:
#line 4535 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) 
    	vyyerror("Unknown Group: %s", yyvsp[-2].c) ;
      Operation_P->Type = OPERATION_MESH_MOVINGBAND2D ;
      Operation_P->Case.Mesh_MovingBand2D.GroupIndex = i ;
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 459:
#line 4545 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-8].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SaveMesh.GroupIndex = Num_Group(&Group_S, "OP_SaveMesh", yyvsp[-6].i) ;
      Operation_P->Case.SaveMesh.FileName = yyvsp[-4].c ;
      Operation_P->Case.SaveMesh.ExprIndex = yyvsp[-2].i ;
      Operation_P->Type = OPERATION_SAVEMESH ;
    ;
    break;}
case 460:
#line 4559 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-6].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-6].c) ;
      Free(yyvsp[-6].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.SaveMesh.GroupIndex = Num_Group(&Group_S, "OP_SaveMesh", yyvsp[-4].i) ;
      Operation_P->Case.SaveMesh.FileName = yyvsp[-2].c ;
      Operation_P->Case.SaveMesh.ExprIndex = -1 ;
      Operation_P->Type = OPERATION_SAVEMESH ;
    ;
    break;}
case 461:
#line 4573 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-11].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-11].c) ;
      Free(yyvsp[-11].c) ;
      Operation_P->DefineSystemIndex = i ;
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-9].c, fcmp_Group_Name)) < 0) 
	vyyerror("Unknown Group: %s", yyvsp[-9].c) ;
      Free(yyvsp[-9].c) ;
      Operation_P->Type = OPERATION_GENERATE_MH_MOVING ;
      Operation_P->Case.Generate_MH_Moving.GroupIndex = i ;
      Operation_P->Case.Generate_MH_Moving.Period  = yyvsp[-7].d ;
      Operation_P->Case.Generate_MH_Moving.NbrStep = (int)yyvsp[-5].d ;
      Operation_P->Case.Generate_MH_Moving.Operation = yyvsp[-2].l ;
    ;
    break;}
case 462:
#line 4592 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-11].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-11].c) ;
      Free(yyvsp[-11].c) ;
      Operation_P->DefineSystemIndex = i ;
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-9].c, fcmp_Group_Name)) < 0) 
	vyyerror("Unknown Group: %s", yyvsp[-9].c) ;
      Free(yyvsp[-9].c) ;
      Operation_P->Type = OPERATION_GENERATE_MH_MOVING_S ;
      Operation_P->Case.Generate_MH_Moving_S.GroupIndex = i ;
      Operation_P->Case.Generate_MH_Moving_S.Period  = yyvsp[-7].d ;
      Operation_P->Case.Generate_MH_Moving_S.NbrStep = (int)yyvsp[-5].d ;
      Operation_P->Case.Generate_MH_Moving_S.Operation = yyvsp[-2].l ;
    ;
    break;}
case 463:
#line 4610 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->Type = OPERATION_ADD_MH_MOVING ;
      Operation_P->Case.Add_MH_Moving.dummy = yyvsp[-2].d ;
    ;
    break;}
case 464:
#line 4621 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-9].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-9].c) ;
      Free(yyvsp[-9].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.DeformeMesh.Quantity = yyvsp[-7].c ;
      Operation_P->Case.DeformeMesh.Name_MshFile = yyvsp[-4].c ;
      Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ;
      Operation_P->Case.DeformeMesh.Factor = yyvsp[-2].d ;
      Operation_P->Type = OPERATION_DEFORMEMESH ;
    ;
    break;}
case 465:
#line 4636 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-7].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-7].c) ;
      Free(yyvsp[-7].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.DeformeMesh.Quantity = yyvsp[-5].c ;
      Operation_P->Case.DeformeMesh.Name_MshFile = yyvsp[-2].c ;
      Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ;
      Operation_P->Case.DeformeMesh.Factor = 1 ;
      Operation_P->Type = OPERATION_DEFORMEMESH ;
    ;
    break;}
case 466:
#line 4651 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      Operation_P->Case.DeformeMesh.Quantity = yyvsp[-2].c ;
      Operation_P->Case.DeformeMesh.Name_MshFile = NULL ;
      Operation_P->Case.DeformeMesh.GeoDataIndex = -1 ;
      Operation_P->Case.DeformeMesh.Factor = 1 ;
      Operation_P->Type = OPERATION_DEFORMEMESH ;
    ;
    break;}
case 467:
#line 4666 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) 
	vyyerror("Unknown Group: %s", yyvsp[-2].c) ;
      Free(yyvsp[-2].c) ;
      Operation_P->Type = OPERATION_GENERATE ;
      Operation_P->Case.Generate.GroupIndex = i ;
    ;
    break;}
case 468:
#line 4681 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;    
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-4].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-4].c) ;
      Free(yyvsp[-4].c) ;
      Operation_P->DefineSystemIndex = i ;
      if (( i = List_ISearchSeq(Problem_S.Group, yyvsp[-2].c, fcmp_Group_Name)) < 0) 
	vyyerror("Unknown Group: %s", yyvsp[-2].c) ;
      Free(yyvsp[-2].c) ;
      Operation_P->Type = OPERATION_GENERATEJAC ;
      Operation_P->Case.Generate.GroupIndex = i ;
    ;
    break;}
case 469:
#line 4696 "GetDP.y"
{
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Type = NONE ;
    ;
    break;}
case 470:
#line 4707 "GetDP.y"
{
      Operation_P->Case.Print.Expression = List_Copy(ListOfInt_L) ; 
    ;
    break;}
case 471:
#line 4712 "GetDP.y"
{ if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[0].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[0].c) ;
      Free(yyvsp[0].c) ;
      Operation_P->DefineSystemIndex = i ;
    ;
    break;}
case 472:
#line 4722 "GetDP.y"
{
      Operation_P->Case.Print.FileOut = NULL ; 
      Operation_P->Case.Print.TimeStep = NULL ; 
      Operation_P->Case.Print.DofNumber = NULL ; 
    ;
    break;}
case 474:
#line 4732 "GetDP.y"
{ Operation_P->Case.Print.FileOut = yyvsp[0].c ; ;
    break;}
case 475:
#line 4735 "GetDP.y"
{ Operation_P->Case.Print.TimeStep = 
	List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(int)) ;
      for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
	List_Read(yyvsp[0].l,i,&d);	j = (int)d ;
	List_Add(Operation_P->Case.Print.TimeStep, &j);
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 476:
#line 4745 "GetDP.y"
{ Operation_P->Case.Print.DofNumber = 
	List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(int)) ;
      for (i = 0 ; i < List_Nbr(yyvsp[0].l) ; i++) {
	List_Read(yyvsp[0].l, i, &d) ; j = (int)d ;
	List_Add(Operation_P->Case.Print.DofNumber, &j) ;     
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 477:
#line 4760 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.Time0   = 0. ;
      Operation_P->Case.TimeLoopTheta.TimeMax = 1. ;
      Operation_P->Case.TimeLoopTheta.DTimeIndex = -1 ;
      Operation_P->Case.TimeLoopTheta.ThetaIndex = -1 ;
      Operation_P->Case.TimeLoopTheta.Operation = NULL ;
    ;
    break;}
case 479:
#line 4776 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.Time0   = yyvsp[-1].d ; ;
    break;}
case 480:
#line 4780 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.TimeMax = yyvsp[-1].d ; ;
    break;}
case 481:
#line 4784 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.DTimeIndex = yyvsp[-1].i ; ;
    break;}
case 482:
#line 4788 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.ThetaIndex = yyvsp[-1].i ; ;
    break;}
case 483:
#line 4793 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopTheta.Operation = yyvsp[-1].l ;
    ;
    break;}
case 484:
#line 4804 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.Time0   = 0. ;
      Operation_P->Case.TimeLoopNewmark.TimeMax = 1. ;
      Operation_P->Case.TimeLoopNewmark.DTimeIndex = -1 ;
      Operation_P->Case.TimeLoopNewmark.Beta   = 0.25 ;
      Operation_P->Case.TimeLoopNewmark.Gamma  = 0.5 ;
      Operation_P->Case.TimeLoopNewmark.Operation = NULL ;
    ;
    break;}
case 486:
#line 4821 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.Time0   = yyvsp[-1].d ; ;
    break;}
case 487:
#line 4825 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.TimeMax = yyvsp[-1].d ; ;
    break;}
case 488:
#line 4829 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.DTimeIndex = yyvsp[-1].i ; ;
    break;}
case 489:
#line 4833 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.Beta   = yyvsp[-1].d ; ;
    break;}
case 490:
#line 4837 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.Gamma   = yyvsp[-1].d ; ;
    break;}
case 491:
#line 4842 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.TimeLoopNewmark.Operation = yyvsp[-1].l ;
    ;
    break;}
case 492:
#line 4853 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.NbrMaxIteration  = 20 ;
      Operation_P->Case.IterativeLoop.Criterion = 1.e-3 ;
      Operation_P->Case.IterativeLoop.RelaxationFactorIndex = -1 ;
      Operation_P->Case.IterativeLoop.Flag = 0 ;
      Operation_P->Case.IterativeLoop.Operation = NULL ;
    ;
    break;}
case 494:
#line 4868 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.NbrMaxIteration = (int)yyvsp[-1].d ; ;
    break;}
case 495:
#line 4872 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.Criterion = yyvsp[-1].d ; ;
    break;}
case 496:
#line 4876 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.RelaxationFactorIndex = yyvsp[-1].i ; ;
    break;}
case 497:
#line 4880 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.Flag = (int)yyvsp[-1].d ; ;
    break;}
case 498:
#line 4884 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeLoop.Operation = yyvsp[-1].l ;
    ;
    break;}
case 499:
#line 4895 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.NbrMaxIteration     = 20 ;
      Operation_P->Case.IterativeTimeReduction.DivisionCoefficient = 2. ;
      Operation_P->Case.IterativeTimeReduction.Criterion           = 1.e-3 ;
      Operation_P->Case.IterativeTimeReduction.Flag                = 0 ;
      Current_System = Operation_P->DefineSystemIndex              = -1 ;
      Operation_P->Case.IterativeTimeReduction.ChangeOfState       = NULL ;
      Operation_P->Case.IterativeTimeReduction.Operation           = NULL ;
      Operation_P->Case.IterativeTimeReduction.OperationEnd        = NULL ;
    ;
    break;}
case 501:
#line 4913 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.NbrMaxIteration = (int)yyvsp[-1].d ; ;
    break;}
case 502:
#line 4917 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.DivisionCoefficient = yyvsp[-1].d ; ;
    break;}
case 503:
#line 4921 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.Criterion = yyvsp[-1].d ; ;
    break;}
case 504:
#line 4925 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.Flag = (int)yyvsp[-1].d ; ;
    break;}
case 505:
#line 4930 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      if ((i = List_ISearchSeq(Resolution_S.DefineSystem, yyvsp[-1].c,
			       fcmp_DefineSystem_Name)) < 0)
	vyyerror("Unknown System: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;
      Current_System = Operation_P->DefineSystemIndex = i ;
    ;
    break;}
case 506:
#line 4940 "GetDP.y"
{ Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.ChangeOfState = yyvsp[-1].l ;
    ;
    break;}
case 507:
#line 4946 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.Operation = yyvsp[-1].l ;
    ;
    break;}
case 508:
#line 4952 "GetDP.y"
{ List_Pop(Operation_L) ;
      Operation_P = (struct Operation*)
	List_Pointer(Operation_L, List_Nbr(Operation_L)-1) ;
      Operation_P->Case.IterativeTimeReduction.OperationEnd = yyvsp[-1].l ;
    ;
    break;}
case 509:
#line 4962 "GetDP.y"
{ yyval.l = List_Create(3, 3, sizeof (struct ChangeOfState)) ; ;
    break;}
case 510:
#line 4965 "GetDP.y"
{ List_Add(yyval.l = yyvsp[-3].l, &ChangeOfState_S) ; ;
    break;}
case 511:
#line 4970 "GetDP.y"
{
      ChangeOfState_S.Type = CHANGEOFSTATE_CHANGESIGN ;
      ChangeOfState_S.QuantityIndex       = -1 ;
      ChangeOfState_S.FormulationIndex    = -1 ;
      ChangeOfState_S.InIndex             = -1 ;
      ChangeOfState_S.Criterion           = 1.e-2 ;
      ChangeOfState_S.ExpressionIndex = ChangeOfState_S.ExpressionIndex2 = -1 ;
      ChangeOfState_S.FlagIndex           = -1 ;
      ChangeOfState_S.ActiveList[0]       = NULL ;
      ChangeOfState_S.ActiveList[1]       = NULL ;
    ;
    break;}
case 513:
#line 4988 "GetDP.y"
{ ChangeOfState_S.Type =
	Get_DefineForString(ChangeOfState_Type, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown type of ChangeOfState: %s", yyvsp[-1].c);
	Get_Valid_SXD(ChangeOfState_Type);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 514:
#line 4998 "GetDP.y"
{
      if (Current_System >= 0) {
	ListOfInt_Lnew =
	  ((struct DefineSystem *)List_Pointer(Resolution_S.DefineSystem,
					       Current_System))->FormulationIndex ;
	ListOfInt_P =(int *)List_Pointer(ListOfInt_Lnew, 0) ;

	for (j=0 ; j<List_Nbr(ListOfInt_Lnew) ; j++) {
	  Formulation_S.DefineQuantity =
	    ((struct Formulation *)
	     List_Pointer(Problem_S.Formulation, ListOfInt_P[j]))->DefineQuantity ;

	  if ((i = List_ISearchSeq(Formulation_S.DefineQuantity, yyvsp[-1].c,
				   fcmp_DefineQuantity_Name)) >= 0)
	    break ;
	}
	if (j<List_Nbr(ListOfInt_Lnew)) {
	  ChangeOfState_S.FormulationIndex = ListOfInt_P[j] ;
	  ChangeOfState_S.QuantityIndex = i ;
	}
	else
	  vyyerror("Unknown discrete Quantity: %s", yyvsp[-1].c) ;
      }
      else
	vyyerror("System undefined for Quantity: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 515:
#line 5027 "GetDP.y"
{ ChangeOfState_S.InIndex = Num_Group(&Group_S, "OP_In", yyvsp[-1].i) ; ;
    break;}
case 516:
#line 5030 "GetDP.y"
{ ChangeOfState_S.Criterion = yyvsp[-1].d ; ;
    break;}
case 517:
#line 5033 "GetDP.y"
{ 
      if (ChangeOfState_S.ExpressionIndex < 0)
	ChangeOfState_S.ExpressionIndex = yyvsp[-1].i ;
      else
	ChangeOfState_S.ExpressionIndex2 = yyvsp[-1].i ;
    ;
    break;}
case 518:
#line 5041 "GetDP.y"
{
      if((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-1].c, fcmp_Expression_Name)) < 0)
	vyyerror("Unknown name of expression for Flag: %s", yyvsp[-1].c) ;
      Free(yyvsp[-1].c) ;
      ChangeOfState_S.FlagIndex = i ;
    ;
    break;}
case 519:
#line 5058 "GetDP.y"
{ 
      if (!Problem_S.PostProcessing)
	Problem_S.PostProcessing = 
	  List_Create(10, 5, sizeof (struct PostProcessing)) ;
    ;
    break;}
case 521:
#line 5070 "GetDP.y"
{
      List_Add(Problem_S.PostProcessing, &PostProcessing_S) ;
    ;
    break;}
case 524:
#line 5081 "GetDP.y"
{ 
      PostProcessing_S.Name = NULL ;  
      PostProcessing_S.FormulationIndex = -1 ; 
      PostProcessing_S.OriginSystemIndex = NULL ;
      PostProcessing_S.NameOfSystem = NULL ;
      PostProcessing_S.PostQuantity = NULL ;
    ;
    break;}
case 526:
#line 5094 "GetDP.y"
{
      Check_NameOfStructNotExist("PostProcessing", Problem_S.PostProcessing,
				 yyvsp[-1].c, fcmp_PostProcessing_Name) ;
      PostProcessing_S.Name = yyvsp[-1].c ; 
    ;
    break;}
case 527:
#line 5101 "GetDP.y"
{
      yyerror("Multi-fields {#.} are not used anymore. Use Loops For ... EndFor");
      Check_NameOfStructNotExist("PostProcessing", Problem_S.PostProcessing,
				 yyvsp[-2].c, fcmp_PostProcessing_Name) ;
      PostProcessing_S.Name = yyvsp[-2].c ; 
    ;
    break;}
case 528:
#line 5109 "GetDP.y"
{ 
      if ((i = List_ISearchSeq(Problem_S.Formulation, yyvsp[-1].c,
			       fcmp_Formulation_Name)) < 0){
	vyyerror("Unknown Formulation: %s", yyvsp[-1].c) ;
      }
      else {
	PostProcessing_S.FormulationIndex = i ;
	List_Read(Problem_S.Formulation, i, &Formulation_S) ;
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 529:
#line 5122 "GetDP.y"
{ 
      PostProcessing_S.NameOfSystem = yyvsp[-1].c ;
    ;
    break;}
case 530:
#line 5127 "GetDP.y"
{ PostProcessing_S.PostQuantity = yyvsp[-1].l ; ;
    break;}
case 531:
#line 5133 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct PostQuantity)) ; ;
    break;}
case 532:
#line 5136 "GetDP.y"
{ List_Add(yyval.l = yyvsp[-3].l, &PostQuantity_S) ; ;
    break;}
case 533:
#line 5139 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 534:
#line 5141 "GetDP.y"
{ yyval.l = yyvsp[-1].l ; ;
    break;}
case 535:
#line 5147 "GetDP.y"
{ 
      PostQuantity_S.Name = NULL ;  
      PostQuantity_S.PostQuantityTerm = NULL ; 
    ;
    break;}
case 537:
#line 5158 "GetDP.y"
{ PostQuantity_S.Name = yyvsp[-1].c ; ;
    break;}
case 538:
#line 5161 "GetDP.y"
{ PostQuantity_S.PostQuantityTerm = yyvsp[-1].l ; ;
    break;}
case 539:
#line 5167 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct PostQuantityTerm)) ; ;
    break;}
case 540:
#line 5172 "GetDP.y"
{ 
      PostQuantityTerm_S.EvaluationType = INTEGRAL ;
      List_Add(yyval.l = yyvsp[-4].l, &PostQuantityTerm_S) ; 
    ;
    break;}
case 541:
#line 5178 "GetDP.y"
{ 
      PostQuantityTerm_S.EvaluationType =
	Get_DefineForString(PostQuantityTerm_EvaluationType, yyvsp[-3].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown EvaluationType for PostQuantityTerm: %s", yyvsp[-3].c);
	Get_Valid_SXD(PostQuantityTerm_EvaluationType);
      }
      Free(yyvsp[-3].c) ;
      List_Add(yyval.l = yyvsp[-4].l, &PostQuantityTerm_S) ; 
    ;
    break;}
case 542:
#line 5192 "GetDP.y"
{ 
      PostQuantityTerm_S.Type = 0 ;
      PostQuantityTerm_S.TypeTimeDerivative = NODT_ ;
      PostQuantityTerm_S.WholeQuantity = NULL ;
      PostQuantityTerm_S.InIndex = -1 ;
      PostQuantityTerm_S.JacobianMethodIndex = -1 ;
      PostQuantityTerm_S.IntegrationMethodIndex = -1 ;
    ;
    break;}
case 544:
#line 5206 "GetDP.y"
{ 
      PostQuantityTerm_S.TypeTimeDerivative = Type_TermOperator ;
      Current_DofIndexInWholeQuantity = -2 ;
      List_Reset(ListOfPointer_L) ;
    ;
    break;}
case 545:
#line 5213 "GetDP.y"
{ PostQuantityTerm_S.WholeQuantity = yyvsp[-2].l ;

      Pro_DefineQuantityIndex
	(PostQuantityTerm_S.WholeQuantity, -1,
	 &PostQuantityTerm_S.NbrQuantityIndex, 
	 &PostQuantityTerm_S.QuantityIndexTable,
	 &PostQuantityTerm_S.QuantityTraceGroupIndexTable) ;
      if (!PostQuantityTerm_S.Type) {
	PostQuantityTerm_S.Type = 0 ;
	for (i = 0 ; i < PostQuantityTerm_S.NbrQuantityIndex ; i++) {
	  if (PostQuantityTerm_S.QuantityIndexTable[i] >= 0)
	    j = ((struct DefineQuantity *)
		 List_Pointer
		 (((struct Formulation *)
		   List_Pointer(Problem_S.Formulation,
				PostProcessing_S.FormulationIndex))->DefineQuantity,
		  PostQuantityTerm_S.QuantityIndexTable[i])) -> Type ;
	  if (PostQuantityTerm_S.Type == 0)
	    PostQuantityTerm_S.Type = j ;
	  else if (PostQuantityTerm_S.Type != j)	  
	    yyerror("Mixed discrete Quantity types in term (should be split in separate terms)") ;
	}
	if (PostQuantityTerm_S.Type == 0)  PostQuantityTerm_S.Type = LOCALQUANTITY ;
      }

    ;
    break;}
case 546:
#line 5241 "GetDP.y"
{ /* force the Type */
     PostQuantityTerm_S.Type =
       Get_DefineForString(DefineQuantity_Type, yyvsp[-1].c, &FlagError) ;
     if (FlagError){
       vyyerror("Unknown type of Operation: %s", yyvsp[-1].c);
       Get_Valid_SXD(DefineQuantity_Type);
     }
     Free(yyvsp[-1].c) ;
   ;
    break;}
case 547:
#line 5252 "GetDP.y"
{
      PostQuantityTerm_S.InIndex = Num_Group(&Group_S, "PQ_In", yyvsp[-1].i) ;
   ;
    break;}
case 548:
#line 5257 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.JacobianMethod, yyvsp[-1].c,
			       fcmp_JacobianMethod_Name)) < 0)
	vyyerror("Unknown Jacobian method: %s",yyvsp[-1].c) ;
      else
	PostQuantityTerm_S.JacobianMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 549:
#line 5266 "GetDP.y"
{ if ((i = List_ISearchSeq(Problem_S.IntegrationMethod, yyvsp[-1].c,
			       fcmp_IntegrationMethod_Name)) < 0)
	vyyerror("Unknown Integration method: %s",yyvsp[-1].c) ;
      else
	PostQuantityTerm_S.IntegrationMethodIndex = i ;
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 550:
#line 5283 "GetDP.y"
{ 
      if (!Problem_S.PostOperation)
	Problem_S.PostOperation = 
	  List_Create(10, 5, sizeof (struct PostOperation)) ;
    ;
    break;}
case 552:
#line 5295 "GetDP.y"
{ List_Add(Problem_S.PostOperation, &PostOperation_S) ; ;
    break;}
case 555:
#line 5304 "GetDP.y"
{ 
      PostOperation_S.Name = NULL ;  
      PostOperation_S.AppendString = NULL ;  
      PostOperation_S.Format = FORMAT_GMSH ;  
      PostOperation_S.PostProcessingIndex = -1 ; 
    ;
    break;}
case 557:
#line 5316 "GetDP.y"
{ 
      Check_NameOfStructNotExist("PostOperation", Problem_S.PostOperation,
				 yyvsp[-1].c, fcmp_PostOperation_Name) ;
      PostOperation_S.Name = yyvsp[-1].c ; 
    ;
    break;}
case 558:
#line 5323 "GetDP.y"
{ 
      if ((i = List_ISearchSeq(Problem_S.PostProcessing, yyvsp[-1].c,
			       fcmp_PostProcessing_Name)) < 0)
	vyyerror("Unknown PostProcessing: %s", yyvsp[-1].c) ;
      else {
	PostOperation_S.PostProcessingIndex = i ;
	List_Read(Problem_S.PostProcessing, i, &InteractivePostProcessing_S) ;
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 559:
#line 5335 "GetDP.y"
{ 
      PostOperation_S.Format =
	Get_DefineForString(PostSubOperation_Format, yyvsp[-1].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown PostProcessing Format: %s", yyvsp[-1].c);
	Get_Valid_SXD(PostSubOperation_Format);
      }
      Free(yyvsp[-1].c) ;
    ;
    break;}
case 560:
#line 5346 "GetDP.y"
{ 
      PostOperation_S.AppendString = yyvsp[-1].c ;
    ;
    break;}
case 561:
#line 5351 "GetDP.y"
{ PostOperation_S.PostSubOperation = yyvsp[-1].l ; ;
    break;}
case 562:
#line 5357 "GetDP.y"
{
      PostOperation_S.PostProcessingIndex = -1 ;
      PostOperation_S.AppendString = NULL ;  
      PostOperation_S.Format = FORMAT_GMSH ;  
      if ((i = List_ISearchSeq(Problem_S.PostProcessing, yyvsp[0].c,
			       fcmp_PostProcessing_Name)) < 0)
	vyyerror("Unknown PostProcessing: %s", yyvsp[0].c) ;
      else {
	PostOperation_S.PostProcessingIndex = i ;
	List_Read(Problem_S.PostProcessing, i, &InteractivePostProcessing_S) ;
	if (!Problem_S.PostOperation)
	  Problem_S.PostOperation = List_Create(5, 5, sizeof (struct PostOperation)) ;
	PostOperation_S.Name = yyvsp[-2].c ;
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 563:
#line 5374 "GetDP.y"
{
      PostOperation_S.PostSubOperation = yyvsp[-1].l ;
      if (PostOperation_S.PostProcessingIndex >= 0)
	List_Add(Problem_S.PostOperation, &PostOperation_S) ;
    ;
    break;}
case 564:
#line 5384 "GetDP.y"
{ yyval.l = List_Create(5, 5, sizeof (struct PostSubOperation)) ; ;
    break;}
case 565:
#line 5387 "GetDP.y"
{
      PostSubOperation_S.Format = -1 ;
    ;
    break;}
case 566:
#line 5391 "GetDP.y"
{ 
      if (PostSubOperation_S.Type != POP_NONE) {
	if(PostSubOperation_S.Format<0)
	  PostSubOperation_S.Format = PostOperation_S.Format ;
	List_Add(yyval.l = yyvsp[-2].l, &PostSubOperation_S) ; 
      }
    ;
    break;}
case 567:
#line 5404 "GetDP.y"
{
      vyyerror("Plot has been superseded by Print (Plot OnRegion becomes Print OnElementsOf)") ;
    ;
    break;}
case 568:
#line 5409 "GetDP.y"
{
      PostSubOperation_S.Type = POP_PRINT ;
    ;
    break;}
case 569:
#line 5414 "GetDP.y"
{
      PostSubOperation_S.Type = POP_EXPRESSION ;
      PostSubOperation_S.Case.Expression.String = yyvsp[-5].c ;
      PostSubOperation_S.Case.Expression.String2 = NULL ;
      PostSubOperation_S.Case.Expression.ExpressionIndex = yyvsp[-3].i ;
      PostSubOperation_S.PostQuantityIndex[0] = -1 ;
    ;
    break;}
case 570:
#line 5423 "GetDP.y"
{
      PostSubOperation_S.Type = POP_EXPRESSION ;
      PostSubOperation_S.Case.Expression.String = yyvsp[-8].c ;
      PostSubOperation_S.Case.Expression.String2 = yyvsp[-4].c ;
      PostSubOperation_S.Case.Expression.ExpressionIndex = -1 ;
      PostSubOperation_S.PostQuantityIndex[0] = -1 ;
    ;
    break;}
case 571:
#line 5432 "GetDP.y"
{
      PostSubOperation_S.Type = POP_EXPRESSION ;
      PostSubOperation_S.Case.Expression.String = yyvsp[-3].c ;
      PostSubOperation_S.Case.Expression.String2 = NULL ;
      PostSubOperation_S.Case.Expression.ExpressionIndex = -1 ;
      PostSubOperation_S.PostQuantityIndex[0] = -1 ;
    ;
    break;}
case 572:
#line 5441 "GetDP.y"
{
      PostSubOperation_S.Type = POP_GROUP ;
      PostSubOperation_S.Case.Group.ExtendedGroupIndex = Num_Group(&Group_S, "PO_Group", yyvsp[0].i) ;
      PostSubOperation_S.PostQuantityIndex[0] = -1 ;
    ;
    break;}
case 573:
#line 5447 "GetDP.y"
{
      PostSubOperation_S.Case.Group.GroupIndex = Num_Group(&Group_S, "PO_Group", yyvsp[-3].i) ;
    ;
    break;}
case 574:
#line 5452 "GetDP.y"
{
      PostSubOperation_S.Type = POP_NONE ;
    ;
    break;}
case 575:
#line 5461 "GetDP.y"
{
      if ((i = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-2].c, 
			       fcmp_PostQuantity_Name)) < 0)
	vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-2].c) ;
      PostSubOperation_S.PostQuantityIndex[0] = i ;
      PostSubOperation_S.PostQuantityIndex[1] = -1 ;
      PostSubOperation_S.PostQuantitySupport[0] = yyvsp[-1].i ;
      PostSubOperation_S.PostQuantitySupport[1] = -1 ;
      Free(yyvsp[-2].c) ;
    ;
    break;}
case 576:
#line 5473 "GetDP.y"
{
      if ((i = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-5].c, 
			       fcmp_PostQuantity_Name)) < 0)
	vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-5].c) ;
      PostSubOperation_S.PostQuantityIndex[0] = i ;
      PostSubOperation_S.PostQuantitySupport[0] = yyvsp[-4].i ;

      if ((j = List_ISearchSeq(InteractivePostProcessing_S.PostQuantity, yyvsp[-2].c, 
			       fcmp_PostQuantity_Name)) < 0)
	vyyerror("Unknown PostProcessing Quantity: %s", yyvsp[-2].c) ;
      PostSubOperation_S.PostQuantityIndex[1] = j ;
      PostSubOperation_S.PostQuantitySupport[1] = yyvsp[-1].i ;

      if ((yyvsp[-4].i<0 && yyvsp[-1].i<0) || (yyvsp[-4].i>=0 && yyvsp[-1].i>=0)) {
	vyyerror("Postprocessing Quantities '%s' and '%s' of same type (%s)", 
		 yyvsp[-5].c, yyvsp[-2].c, (yyvsp[-4].i>0)? "with Support":"without Support") ;
      }      
      Free(yyvsp[-5].c) ; Free(yyvsp[-2].c) ;
    ;
    break;}
case 577:
#line 5496 "GetDP.y"
{ PostSubOperation_S.CombinationType = MULTIPLICATION ; ;
    break;}
case 578:
#line 5497 "GetDP.y"
{ PostSubOperation_S.CombinationType = DIVISION ; ;
    break;}
case 579:
#line 5498 "GetDP.y"
{ PostSubOperation_S.CombinationType = ADDITION ; ;
    break;}
case 580:
#line 5499 "GetDP.y"
{ PostSubOperation_S.CombinationType = SOUSTRACTION ; ;
    break;}
case 581:
#line 5505 "GetDP.y"
{ yyval.i = -1 ; ;
    break;}
case 582:
#line 5507 "GetDP.y"
{ yyval.i = Num_Group(&Group_S, "PO_Support", yyvsp[-1].i) ; ;
    break;}
case 583:
#line 5513 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONREGION ;
      PostSubOperation_S.Case.OnRegion.RegionIndex = -1 ;
    ;
    break;}
case 584:
#line 5519 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONREGION ;
      PostSubOperation_S.Case.OnRegion.RegionIndex = 
	Num_Group(&Group_S, "PO_OnRegion", yyvsp[0].i) ;
    ;
    break;}
case 585:
#line 5526 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONELEMENTSOF ;
      PostSubOperation_S.Case.OnRegion.RegionIndex =
	Num_Group(&Group_S, "PO_OnElementsOf", yyvsp[0].i) ;
    ;
    break;}
case 586:
#line 5535 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONSECTION_2D ;
      if(List_Nbr(yyvsp[-8].l)!=3 || List_Nbr(yyvsp[-5].l)!=3 || List_Nbr(yyvsp[-2].l)!=3)
	vyyerror("Expected {3}{3}{3} coordinates, got {%d}{%d}{%d}", 
		 List_Nbr(yyvsp[-8].l), List_Nbr(yyvsp[-5].l), List_Nbr(yyvsp[-2].l));
      else{
	List_Read(yyvsp[-8].l, 0, &PostSubOperation_S.Case.OnSection.x[0]);
	List_Read(yyvsp[-8].l, 1, &PostSubOperation_S.Case.OnSection.y[0]);
	List_Read(yyvsp[-8].l, 2, &PostSubOperation_S.Case.OnSection.z[0]);
	List_Read(yyvsp[-5].l, 0, &PostSubOperation_S.Case.OnSection.x[1]);
	List_Read(yyvsp[-5].l, 1, &PostSubOperation_S.Case.OnSection.y[1]);
	List_Read(yyvsp[-5].l, 2, &PostSubOperation_S.Case.OnSection.z[1]);
	List_Read(yyvsp[-2].l, 0, &PostSubOperation_S.Case.OnSection.x[2]);
	List_Read(yyvsp[-2].l, 1, &PostSubOperation_S.Case.OnSection.y[2]);
	List_Read(yyvsp[-2].l, 2, &PostSubOperation_S.Case.OnSection.z[2]);
      }
      List_Delete(yyvsp[-8].l);
      List_Delete(yyvsp[-5].l);
      List_Delete(yyvsp[-2].l);
    ;
    break;}
case 587:
#line 5557 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID ;
      PostSubOperation_S.Case.OnRegion.RegionIndex =
	Num_Group(&Group_S, "PO_OnGrid", yyvsp[0].i) ;
    ;
    break;}
case 588:
#line 5565 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID_PARAM ;
      PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[0] = yyvsp[-12].i ;
      PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[1] = yyvsp[-10].i ;
      PostSubOperation_S.Case.OnParamGrid.ExpressionIndex[2] = yyvsp[-8].i ;
      PostSubOperation_S.Case.OnParamGrid.ParameterValue[0] = yyvsp[-5].l ;
      PostSubOperation_S.Case.OnParamGrid.ParameterValue[1] = yyvsp[-3].l ;
      PostSubOperation_S.Case.OnParamGrid.ParameterValue[2] = yyvsp[-1].l ;
    ;
    break;}
case 589:
#line 5576 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID_0D ;
      if(List_Nbr(yyvsp[-1].l)!=3)
	vyyerror("Expected {3} coordinates, got {%d}", List_Nbr(yyvsp[-1].l));
      else{
	List_Read(yyvsp[-1].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]);
	List_Read(yyvsp[-1].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]);
	List_Read(yyvsp[-1].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]);
      }
      List_Delete(yyvsp[-1].l);
    ;
    break;}
case 590:
#line 5590 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID_1D ;
      if(List_Nbr(yyvsp[-8].l)!=3 || List_Nbr(yyvsp[-5].l)!=3)
	vyyerror("Expected {3}{3} coordinates, got {%d}{%d}", 
		 List_Nbr(yyvsp[-8].l), List_Nbr(yyvsp[-5].l));
      else{
	List_Read(yyvsp[-8].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]);
	List_Read(yyvsp[-8].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]);
	List_Read(yyvsp[-8].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]);
	List_Read(yyvsp[-5].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]);
	List_Read(yyvsp[-5].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]);
	List_Read(yyvsp[-5].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]);
      }
      PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-1].d ;
      List_Delete(yyvsp[-8].l);
      List_Delete(yyvsp[-5].l);
    ;
    break;}
case 591:
#line 5611 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID_2D ;
      if(List_Nbr(yyvsp[-13].l)!=3 || List_Nbr(yyvsp[-10].l)!=3 || List_Nbr(yyvsp[-7].l)!=3)
	vyyerror("Expected {3}{3}{3} coordinates, got {%d}{%d}{%d}", 
		 List_Nbr(yyvsp[-13].l), List_Nbr(yyvsp[-10].l), List_Nbr(yyvsp[-7].l));
      else{
	List_Read(yyvsp[-13].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]);
	List_Read(yyvsp[-13].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]);
	List_Read(yyvsp[-13].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]);
	List_Read(yyvsp[-10].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]);
	List_Read(yyvsp[-10].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]);
	List_Read(yyvsp[-10].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]);
	List_Read(yyvsp[-7].l, 0, &PostSubOperation_S.Case.OnGrid.x[2]);
	List_Read(yyvsp[-7].l, 1, &PostSubOperation_S.Case.OnGrid.y[2]);
	List_Read(yyvsp[-7].l, 2, &PostSubOperation_S.Case.OnGrid.z[2]);
      }
      PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-3].d ;
      PostSubOperation_S.Case.OnGrid.n[1] = (int)yyvsp[-1].d ;
      List_Delete(yyvsp[-13].l);
      List_Delete(yyvsp[-10].l);
      List_Delete(yyvsp[-7].l);
    ;
    break;}
case 592:
#line 5638 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_ONGRID_3D ;
      if(List_Nbr(yyvsp[-18].l)!=3 || List_Nbr(yyvsp[-15].l)!=3 || List_Nbr(yyvsp[-12].l)!=3 || List_Nbr(yyvsp[-9].l)!=3)
	vyyerror("Expected {3}{3}{3}{3} coordinates, got {%d}{%d}{%d}{%d}", 
		 List_Nbr(yyvsp[-18].l), List_Nbr(yyvsp[-15].l), List_Nbr(yyvsp[-12].l), List_Nbr(yyvsp[-9].l));
      else{
	List_Read(yyvsp[-18].l, 0, &PostSubOperation_S.Case.OnGrid.x[0]);
	List_Read(yyvsp[-18].l, 1, &PostSubOperation_S.Case.OnGrid.y[0]);
	List_Read(yyvsp[-18].l, 2, &PostSubOperation_S.Case.OnGrid.z[0]);
	List_Read(yyvsp[-15].l, 0, &PostSubOperation_S.Case.OnGrid.x[1]);
	List_Read(yyvsp[-15].l, 1, &PostSubOperation_S.Case.OnGrid.y[1]);
	List_Read(yyvsp[-15].l, 2, &PostSubOperation_S.Case.OnGrid.z[1]);
	List_Read(yyvsp[-12].l, 0, &PostSubOperation_S.Case.OnGrid.x[2]);
	List_Read(yyvsp[-12].l, 1, &PostSubOperation_S.Case.OnGrid.y[2]);
	List_Read(yyvsp[-12].l, 2, &PostSubOperation_S.Case.OnGrid.z[2]);
	List_Read(yyvsp[-9].l, 0, &PostSubOperation_S.Case.OnGrid.x[3]);
	List_Read(yyvsp[-9].l, 1, &PostSubOperation_S.Case.OnGrid.y[3]);
	List_Read(yyvsp[-9].l, 2, &PostSubOperation_S.Case.OnGrid.z[3]);
      }
      PostSubOperation_S.Case.OnGrid.n[0] = (int)yyvsp[-5].d ;
      PostSubOperation_S.Case.OnGrid.n[1] = (int)yyvsp[-3].d ;
      PostSubOperation_S.Case.OnGrid.n[2] = (int)yyvsp[-1].d ;
      List_Delete(yyvsp[-18].l);
      List_Delete(yyvsp[-15].l);
      List_Delete(yyvsp[-12].l);
      List_Delete(yyvsp[-9].l);
    ;
    break;}
case 593:
#line 5669 "GetDP.y"
{
      PostSubOperation_S.SubType = PRINT_WITHARGUMENT ;

      PostSubOperation_S.Case.WithArgument.RegionIndex = 
	Num_Group(&Group_S, "PO_On", yyvsp[-10].i) ;

      if((i = List_ISearchSeq(Problem_S.Expression, yyvsp[-8].c, fcmp_Expression_Name)) < 0)
	vyyerror("Unknown Name of Expression: %s", yyvsp[-8].c) ;
      Free(yyvsp[-8].c) ;

      PostSubOperation_S.Case.WithArgument.ArgumentIndex = i ;
      PostSubOperation_S.Case.WithArgument.x[0] = yyvsp[-6].d ;
      PostSubOperation_S.Case.WithArgument.x[1] = yyvsp[-4].d ;
      PostSubOperation_S.Case.WithArgument.n = (int)yyvsp[-1].d ;
    ;
    break;}
case 594:
#line 5689 "GetDP.y"
{ 
      PostSubOperation_S.FileOut = NULL ; 
      PostSubOperation_S.Depth = 1 ; 
      PostSubOperation_S.Smoothing = 0 ; 
      PostSubOperation_S.Skin = 0 ; 
      PostSubOperation_S.Comma = 0 ;
      PostSubOperation_S.Dimension = _ALL ;
      PostSubOperation_S.Adapt = 0 ;
      PostSubOperation_S.Target = -1. ;
      PostSubOperation_S.HarmonicToTime = 1 ;
      PostSubOperation_S.FrozenTimeStepList = 0;
      PostSubOperation_S.TimeStep_L = List_Create(10,10,sizeof(int)); ;
      PostSubOperation_S.Frequency_L = List_Create(10,10,sizeof(double)); ;
      PostSubOperation_S.Value_L = List_Create(10,10,sizeof(double)); ;
      PostSubOperation_S.Iso = 0 ;
      PostSubOperation_S.Iso_L = List_Create(10,10,sizeof(double)); ;
      PostSubOperation_S.Sort = 0 ;
      PostSubOperation_S.NoNewLine = 0 ;
      PostSubOperation_S.DecomposeInSimplex = 0 ;
      PostSubOperation_S.ChangeOfCoordinates[0] = -1 ;
      PostSubOperation_S.ChangeOfCoordinates[1] = -1 ;
      PostSubOperation_S.ChangeOfCoordinates[2] = -1 ;
      PostSubOperation_S.ChangeOfValues = NULL ;
      PostSubOperation_S.Legend = LEGEND_NONE;
      PostSubOperation_S.LegendPosition[0] = 0.;
      PostSubOperation_S.LegendPosition[1] = 0.;
      PostSubOperation_S.LegendPosition[2] = 0.;
      PostSubOperation_S.EvaluationPoints = NULL ;
      PostSubOperation_S.StoreInRegister = -1 ;
      PostSubOperation_S.LastTimeStepOnly = 0;
    ;
    break;}
case 596:
#line 5725 "GetDP.y"
{ 
      PostSubOperation_S.FileOut = yyvsp[0].c ; 
      if(PostOperation_S.AppendString) 
	strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ;
      PostSubOperation_S.CatFile = 0 ; 
    ;
    break;}
case 597:
#line 5732 "GetDP.y"
{ 
      PostSubOperation_S.FileOut = yyvsp[0].c ; 
      if(PostOperation_S.AppendString) 
	strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ;
      PostSubOperation_S.CatFile = 1 ; 
    ;
    break;}
case 598:
#line 5739 "GetDP.y"
{ 
      PostSubOperation_S.FileOut = yyvsp[0].c ; 
      if(PostOperation_S.AppendString) 
	strcat(PostSubOperation_S.FileOut, PostOperation_S.AppendString) ;
      PostSubOperation_S.CatFile = 2 ; 
    ;
    break;}
case 599:
#line 5746 "GetDP.y"
{ 
      PostSubOperation_S.Depth = (int)yyvsp[0].d ; 
    ;
    break;}
case 600:
#line 5750 "GetDP.y"
{ 
      PostSubOperation_S.Skin = 1 ; 
    ;
    break;}
case 601:
#line 5754 "GetDP.y"
{
      PostSubOperation_S.Smoothing = 1 ; 
    ;
    break;}
case 602:
#line 5758 "GetDP.y"
{
      PostSubOperation_S.HarmonicToTime = (int)yyvsp[0].d ; 
    ;
    break;}
case 603:
#line 5762 "GetDP.y"
{ 
      PostSubOperation_S.Format =
	Get_DefineForString(PostSubOperation_Format, yyvsp[0].c, &FlagError) ;
      if (FlagError){
	vyyerror("Unknown PostProcessing Format: %s", yyvsp[0].c);
	Get_Valid_SXD(PostSubOperation_Format);
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 604:
#line 5772 "GetDP.y"
{
      PostSubOperation_S.HeaderChar_L = List_Copy(ListOfChar_L) ;
      PostSubOperation_S.HeaderTag_L  = List_Copy(ListOfInt_L) ;
    ;
    break;}
case 605:
#line 5777 "GetDP.y"
{
      PostSubOperation_S.FooterChar_L = List_Copy(ListOfChar_L) ;
      PostSubOperation_S.FooterTag_L  = List_Copy(ListOfInt_L) ;
    ;
    break;}
case 606:
#line 5782 "GetDP.y"
{
      PostSubOperation_S.FormatChar_L = List_Copy(ListOfChar_L) ;
      PostSubOperation_S.FormatTag_L  = List_Copy(ListOfInt_L) ;

      printf("--> string: \"");
      for(i=0;i<List_Nbr(PostSubOperation_S.FormatChar_L);i++){
	List_Read(PostSubOperation_S.FormatChar_L, i, &tmpstr[0]) ;
	printf("%c", tmpstr[0]);
      }
      printf("\"\n");
      
      printf("--> tags: ");
      for(i=0;i<List_Nbr(PostSubOperation_S.FormatTag_L);i+=2){
	List_Read(PostSubOperation_S.FormatTag_L, i, &j) ;
	List_Read(PostSubOperation_S.FormatTag_L, i+1, &k) ;
	printf("%d:%d ", j, k);
      }
      printf("\n");
    ;
    break;}
case 607:
#line 5802 "GetDP.y"
{ 
      PostSubOperation_S.Comma = 1 ; 
    ;
    break;}
case 608:
#line 5806 "GetDP.y"
{ 
      if((int)yyvsp[0].d >= 1 && (int)yyvsp[0].d <= 3)
	PostSubOperation_S.Dimension = (int)yyvsp[0].d ;
      else
	vyyerror("Wrong Dimension in Print") ;  	
    ;
    break;}
case 609:
#line 5813 "GetDP.y"
{ 
      PostSubOperation_S.FrozenTimeStepList = 1;
      for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
	List_Read(yyvsp[0].l,i,&d);
	j = (int)d ;
	List_Add(PostSubOperation_S.TimeStep_L, &j);
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 610:
#line 5823 "GetDP.y"
{ 
      PostSubOperation_S.Adapt = 
	Get_DefineForString(PostSubOperation_AdaptationType, yyvsp[0].c, &FlagError) ;
      if(FlagError){
	vyyerror("Unknown Adaptation method: %s", yyvsp[0].c);
	Get_Valid_SXD(PostSubOperation_AdaptationType);
      }
    ;
    break;}
case 611:
#line 5832 "GetDP.y"
{ 
      PostSubOperation_S.Sort = 
	Get_DefineForString(PostSubOperation_SortType, yyvsp[0].c, &FlagError) ;
      if(FlagError){
	vyyerror("Unknown Sort method: %s", yyvsp[0].c);
	Get_Valid_SXD(PostSubOperation_SortType);
      }
    ;
    break;}
case 612:
#line 5841 "GetDP.y"
{ 
      if(yyvsp[0].d >= 0.)
	PostSubOperation_S.Target = yyvsp[0].d ;
      else
	vyyerror("Bad Target value") ;
    ;
    break;}
case 613:
#line 5848 "GetDP.y"
{ 
      for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
	List_Read(yyvsp[0].l,i,&d);	
	List_Add(PostSubOperation_S.Value_L, &d);
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 614:
#line 5856 "GetDP.y"
{ 
      PostSubOperation_S.Iso = (int)yyvsp[0].d;
    ;
    break;}
case 615:
#line 5860 "GetDP.y"
{ 
      PostSubOperation_S.Iso = -1 ;
      for(i=0 ; i<List_Nbr(yyvsp[-1].l) ; i++){
	List_Read(yyvsp[-1].l,i,&d);	
	List_Add(PostSubOperation_S.Iso_L, &d);
      }
      List_Delete(yyvsp[-1].l);
    ;
    break;}
case 616:
#line 5869 "GetDP.y"
{ 
      PostSubOperation_S.NoNewLine = 1 ;
    ;
    break;}
case 617:
#line 5873 "GetDP.y"
{ 
      PostSubOperation_S.DecomposeInSimplex = 1 ;
    ;
    break;}
case 618:
#line 5877 "GetDP.y"
{ 
      for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
	List_Read(yyvsp[0].l,i,&d);	
	List_Add(PostSubOperation_S.Frequency_L, &d);
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 619:
#line 5885 "GetDP.y"
{ 
      PostSubOperation_S.ChangeOfCoordinates[0] = yyvsp[-5].i ;
      PostSubOperation_S.ChangeOfCoordinates[1] = yyvsp[-3].i ;
      PostSubOperation_S.ChangeOfCoordinates[2] = yyvsp[-1].i ;
    ;
    break;}
case 620:
#line 5891 "GetDP.y"
{ 
      PostSubOperation_S.ChangeOfValues = List_Copy(ListOfInt_L) ;
    ;
    break;}
case 621:
#line 5895 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_TIME ;
      PostSubOperation_S.LegendPosition[0] = 1.e5 ;
      PostSubOperation_S.LegendPosition[1] = 30. ;
      /* (align<<16)|(font<<8)|(fontsize) */
      PostSubOperation_S.LegendPosition[2] = 66574 ;
    ;
    break;}
case 622:
#line 5903 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_TIME ;
      PostSubOperation_S.LegendPosition[0] = yyvsp[-5].d ;
      PostSubOperation_S.LegendPosition[1] = yyvsp[-3].d ;
      PostSubOperation_S.LegendPosition[2] = yyvsp[-1].d ;
    ;
    break;}
case 623:
#line 5910 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_FREQUENCY ;
      PostSubOperation_S.LegendPosition[0] = 1.e5 ;
      PostSubOperation_S.LegendPosition[1] = 30. ;
      /* (align<<16)|(font<<8)|(fontsize) */
      PostSubOperation_S.LegendPosition[2] = 66574 ;
    ;
    break;}
case 624:
#line 5918 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_FREQUENCY ;
      PostSubOperation_S.LegendPosition[0] = yyvsp[-5].d ;
      PostSubOperation_S.LegendPosition[1] = yyvsp[-3].d ;
      PostSubOperation_S.LegendPosition[2] = yyvsp[-1].d ;
    ;
    break;}
case 625:
#line 5925 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_EIGENVALUES ;
      PostSubOperation_S.LegendPosition[0] = 1.e5 ;
      PostSubOperation_S.LegendPosition[1] = 30. ;
      /* (align<<16)|(font<<8)|(fontsize) */
      PostSubOperation_S.LegendPosition[2] = 66574 ;
    ;
    break;}
case 626:
#line 5933 "GetDP.y"
{ 
      PostSubOperation_S.Legend = LEGEND_EIGENVALUES ;
      PostSubOperation_S.LegendPosition[0] = yyvsp[-5].d ;
      PostSubOperation_S.LegendPosition[1] = yyvsp[-3].d ;
      PostSubOperation_S.LegendPosition[2] = yyvsp[-1].d ;
    ;
    break;}
case 627:
#line 5940 "GetDP.y"
{ 
      if(List_Nbr(yyvsp[-1].l)%3 != 0)
	vyyerror("Expected 3n coordinates, got %d", List_Nbr(yyvsp[-1].l));
      else {
	PostSubOperation_S.EvaluationPoints = yyvsp[-1].l ;
      }
    ;
    break;}
case 628:
#line 5948 "GetDP.y"
{
      PostSubOperation_S.StoreInRegister = yyvsp[0].i - 1 ;
    ;
    break;}
case 629:
#line 5952 "GetDP.y"
{
      PostSubOperation_S.LastTimeStepOnly = 1 ;
    ;
    break;}
case 630:
#line 5961 "GetDP.y"
{
      List_Reset(ListOfChar_L);
      List_Reset(ListOfInt_L);
    ;
    break;}
case 631:
#line 5967 "GetDP.y"
{
      i = 0 ;
      do{
	if(yyvsp[0].c[i] == '%'){ 
	  i++ ; j=i ;
	  do{
	    if(yyvsp[0].c[i] == '+'  || yyvsp[0].c[i] == '-'  || yyvsp[0].c[i] == '*'  || yyvsp[0].c[i] == '%'  ||
	       yyvsp[0].c[i] == '>'  || yyvsp[0].c[i] == '<'  || yyvsp[0].c[i] == '|'  || yyvsp[0].c[i] == '&'  ||
	       yyvsp[0].c[i] == '$'  || yyvsp[0].c[i] == '\'' || yyvsp[0].c[i] == '\\' || yyvsp[0].c[i] == '/'  || 
	       yyvsp[0].c[i] == '{'  ||	yyvsp[0].c[i] == '}'  || yyvsp[0].c[i] == '('  || yyvsp[0].c[i] == ')'  ||
	       yyvsp[0].c[i] == '['  || yyvsp[0].c[i] == ']'  || yyvsp[0].c[i] == '!'  || yyvsp[0].c[i] == ','  ||
	       yyvsp[0].c[i] == '^'  || yyvsp[0].c[i] == '.'  || yyvsp[0].c[i] == ';'  || yyvsp[0].c[i] == '~'  || 
	       yyvsp[0].c[i] == ' '  || yyvsp[0].c[i] == '\n' || yyvsp[0].c[i] == '\t' || yyvsp[0].c[i] == '#'  ||
               yyvsp[0].c[i] == '`'  || yyvsp[0].c[i] == ':'  ){
              break ;
            }
	    i++ ;
	  } while(i<(int)strlen(yyvsp[0].c)) ;
	  strncpy(tmpstr, &yyvsp[0].c[j], i-j); 
	  tmpstr[i-j] = '\0'; 
	  k = Get_DefineForString(PostSubOperation_FormatTag, tmpstr, &FlagError) ;
	  if (FlagError){
	    vyyerror("Unknown Tag in Format: %s", tmpstr);
	    Get_Valid_SXD(PostSubOperation_FormatTag) ;
	  }
	  else {
	    l = List_Nbr(ListOfChar_L) ;
	    List_Add(ListOfInt_L, &l);
	    List_Add(ListOfInt_L, &k);
	  }
        }
	else{
	  List_Add(ListOfChar_L, &yyvsp[0].c[i]);
	  i++ ;
	}
      } while (i<(int)strlen(yyvsp[0].c)) ;
      Free(yyvsp[0].c) ;
    ;
    break;}
case 632:
#line 6017 "GetDP.y"
{
      LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
      LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
      LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
      LoopControlVariablesNameTab[ImbricatedLoop] = "" ;
      fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
      yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ;
      ImbricatedLoop++;
      if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
	vyyerror("Reached maximum number of imbricated loops");
	ImbricatedLoop = MAX_RECUR_LOOPS-1;
      }
      if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
    ;
    break;}
case 633:
#line 6032 "GetDP.y"
{
      LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ;
      LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ;
      LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ;
      LoopControlVariablesNameTab[ImbricatedLoop] = "" ;
      fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
      yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ;
      ImbricatedLoop++;
      if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
	vyyerror("Reached maximum number of imbricated loops");
	ImbricatedLoop = MAX_RECUR_LOOPS-1;
      }
      if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
	skip_until("For", "EndFor");
    ;
    break;}
case 634:
#line 6048 "GetDP.y"
{
      LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
      LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
      LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
      LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-6].c ;      
      Constant_S.Name = yyvsp[-6].c ; 
      Constant_S.Type = VAR_FLOAT ;
      Constant_S.Value.Float = yyvsp[-3].d ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
      fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
      /* hack_fsetpos_printf(); */
      yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ;
      ImbricatedLoop++;
      if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
	vyyerror("Reached maximum number of imbricated loops");
	ImbricatedLoop = MAX_RECUR_LOOPS-1;
      }
      if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor");
    ;
    break;}
case 635:
#line 6068 "GetDP.y"
{
      LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ;
      LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ;
      LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ;
      LoopControlVariablesNameTab[ImbricatedLoop] = yyvsp[-8].c ;      
      Constant_S.Name = yyvsp[-8].c ; 
      Constant_S.Type = VAR_FLOAT ;
      Constant_S.Value.Float = yyvsp[-5].d ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
      fgetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
      yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylinenum ;
      ImbricatedLoop++;
      if(ImbricatedLoop > MAX_RECUR_LOOPS-1){
	vyyerror("Reached maximum number of imbricated loops");
	ImbricatedLoop = MAX_RECUR_LOOPS-1;
      }
      if((yyvsp[-1].d > 0. && yyvsp[-5].d > yyvsp[-3].d) || (yyvsp[-1].d < 0. && yyvsp[-5].d < yyvsp[-3].d))
	skip_until("For", "EndFor");
    ;
    break;}
case 636:
#line 6088 "GetDP.y"
{
      if(ImbricatedLoop <= 0){
	vyyerror("Invalid For/EndFor loop");
	ImbricatedLoop = 0;
      }
      else{
	x0 = LoopControlVariablesTab[ImbricatedLoop-1][0];
	x1 = LoopControlVariablesTab[ImbricatedLoop-1][1];
	step = LoopControlVariablesTab[ImbricatedLoop-1][2];
	do_next = (step > 0.) ? (x0+step <= x1) : (x0+step >= x1);
	if(do_next){
	  LoopControlVariablesTab[ImbricatedLoop-1][0] +=
	    LoopControlVariablesTab[ImbricatedLoop-1][2];
	  if(strlen(LoopControlVariablesNameTab[ImbricatedLoop-1])){
	    Constant_S.Name = LoopControlVariablesNameTab[ImbricatedLoop-1] ; 
	    Constant_S.Type = VAR_FLOAT ;
	    Constant_S.Value.Float = LoopControlVariablesTab[ImbricatedLoop-1][0] ;
	    if ((i=List_ISearchSeq(ConstantTable_L, &Constant_S, fcmp_Constant))<0) 
	      vyyerror("Unknown For/EndFor loop control variable %s", Constant_S.Name) ;
	    List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;      
	  }
	  fsetpos(yyin, &yyposImbricatedLoopsTab[ImbricatedLoop-1]);
	  /* fsetpos() seems to position the file just after the For
	     but with one additional character (the one after EndFor)
	     at the beginning.  I do not understand why there is such
	     a mixing of two separate data. hack_fsetpos() removes the
	     useless additional character. */
	  hack_fsetpos();
	  /* hack_fsetpos_printf(); */
	  yylinenum = yylinenoImbricatedLoopsTab[ImbricatedLoop-1];
	}
	else{
	  ImbricatedLoop--;
	}
      }
    ;
    break;}
case 637:
#line 6126 "GetDP.y"
{
      if(!yyvsp[-1].d) skip_until("If", "EndIf");
    ;
    break;}
case 638:
#line 6130 "GetDP.y"
{
    ;
    break;}
case 640:
#line 6145 "GetDP.y"
{
      Constant_S.Name = yyvsp[-3].c ; 
      if(List_Nbr(yyvsp[-1].l) == 1){
	Constant_S.Type = VAR_FLOAT ;
	List_Read(yyvsp[-1].l, 0, &Constant_S.Value.Float) ;
	List_Delete(yyvsp[-1].l);
      }
      else{
	Constant_S.Type = VAR_LISTOFFLOAT ;
	Constant_S.Value.ListOfFloat = yyvsp[-1].l;
      }
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 641:
#line 6160 "GetDP.y"
{ Constant_S.Name = yyvsp[-3].c ; Constant_S.Type = VAR_CHAR ;
      Constant_S.Value.Char = yyvsp[-1].c ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 642:
#line 6166 "GetDP.y"
{ Constant_S.Name = yyvsp[-6].c ; Constant_S.Type = VAR_CHAR ;
      Constant_S.Value.Char = yyvsp[-2].c ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 643:
#line 6172 "GetDP.y"
{ Constant_S.Name = yyvsp[-3].c ; Constant_S.Type = VAR_CHAR ;
      Constant_S.Value.Char = yyvsp[-1].c ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 644:
#line 6178 "GetDP.y"
{ Constant_S.Name = yyvsp[-6].c ; Constant_S.Type = VAR_LISTOFFLOAT ;
      if (!(File = fopen(yyvsp[-2].c, "r"))) Msg(GERROR, "Unable to open file '%s'", yyvsp[-2].c);
      Constant_S.Value.ListOfFloat = List_Create(100,100,sizeof(double));
      while (!feof(File))
	if (fscanf(File, "%lf", &d) != EOF)
	  List_Add(Constant_S.Value.ListOfFloat, &d) ;
      fclose(File) ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 645:
#line 6189 "GetDP.y"
{
      Msg(DIRECT, yyvsp[-2].c);
    ;
    break;}
case 646:
#line 6194 "GetDP.y"
{
      Constant_S.Name = yyvsp[-1].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant))
	vyyerror("Unknown Constant: %s", yyvsp[-1].c) ;
      else
	if (Constant_S.Type != VAR_LISTOFFLOAT)
	  printf("%s: %g\n", yyvsp[-1].c, Constant_S.Value.Float);
	else
	  printf("%s: Dimension %d\n", yyvsp[-1].c, List_Nbr(Constant_S.Value.ListOfFloat));
	  for(i=0 ; i<List_Nbr(Constant_S.Value.ListOfFloat) ; i++) {
	    List_Read(Constant_S.Value.ListOfFloat, i, &d) ;
	    printf(" (%d) %g\n", i, d);
	  }
    ;
    break;}
case 647:
#line 6210 "GetDP.y"
{
      Msg(INFO, "Line number: %d", yylinenum);
    ;
    break;}
case 648:
#line 6215 "GetDP.y"
{
      i = Print_ListOfDouble(yyvsp[-4].c,yyvsp[-2].l,tmpstr);
      if(i<0) 
	vyyerror("Too few arguments in Printf");
      else if(i>0)
	vyyerror("Too many arguments (%d) in Printf", i);
      else
	Msg(INFO2, tmpstr);
      List_Delete(yyvsp[-2].l);
    ;
    break;}
case 649:
#line 6227 "GetDP.y"
{
      Msg(INFO2, "? ");
      fgets(tmpstr, sizeof(tmpstr), stdin);
      Constant_S.Value.Float = atof(tmpstr);
      Constant_S.Name = yyvsp[-2].c ; 
      Constant_S.Type = VAR_FLOAT ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 650:
#line 6237 "GetDP.y"
{
      Msg(INFO2, "[<return>=%g] ? ",yyvsp[-2].d);
      fgets(tmpstr, sizeof(tmpstr), stdin);

      if(!strcmp(tmpstr,"\n"))
	Constant_S.Value.Float = yyvsp[-2].d;
      else
	Constant_S.Value.Float = atof(tmpstr);
      Constant_S.Name = yyvsp[-5].c ; 
      Constant_S.Type = VAR_FLOAT ;
      List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 652:
#line 6256 "GetDP.y"
{ Constant_S.Name = yyvsp[0].c ; Constant_S.Type = VAR_FLOAT ;
      Constant_S.Value.Float = 0. ;
      if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant))
	List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 653:
#line 6262 "GetDP.y"
{ Constant_S.Name = yyvsp[-2].c ; Constant_S.Type = VAR_FLOAT ;
      Constant_S.Value.Float = yyvsp[0].d ;
      if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant))
	List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 654:
#line 6268 "GetDP.y"
{ Constant_S.Name = yyvsp[-2].c ; Constant_S.Type = VAR_CHAR ;
      Constant_S.Value.Char = yyvsp[0].c ;
      if (!List_Search(ConstantTable_L, &Constant_S, fcmp_Constant))
	List_Replace(ConstantTable_L, &Constant_S, fcmp_Constant) ;
    ;
    break;}
case 655:
#line 6279 "GetDP.y"
{ yyval.c = "Exp";    ;
    break;}
case 656:
#line 6280 "GetDP.y"
{ yyval.c = "Log";    ;
    break;}
case 657:
#line 6281 "GetDP.y"
{ yyval.c = "Log10";  ;
    break;}
case 658:
#line 6282 "GetDP.y"
{ yyval.c = "Sqrt";   ;
    break;}
case 659:
#line 6283 "GetDP.y"
{ yyval.c = "Sin";    ;
    break;}
case 660:
#line 6284 "GetDP.y"
{ yyval.c = "Asin";   ;
    break;}
case 661:
#line 6285 "GetDP.y"
{ yyval.c = "Cos";    ;
    break;}
case 662:
#line 6286 "GetDP.y"
{ yyval.c = "Acos";   ;
    break;}
case 663:
#line 6287 "GetDP.y"
{ yyval.c = "Tan";    ;
    break;}
case 664:
#line 6288 "GetDP.y"
{ yyval.c = "Atan";   ;
    break;}
case 665:
#line 6289 "GetDP.y"
{ yyval.c = "Atan2";  ;
    break;}
case 666:
#line 6290 "GetDP.y"
{ yyval.c = "Sinh";   ;
    break;}
case 667:
#line 6291 "GetDP.y"
{ yyval.c = "Cosh";   ;
    break;}
case 668:
#line 6292 "GetDP.y"
{ yyval.c = "Tanh";   ;
    break;}
case 669:
#line 6293 "GetDP.y"
{ yyval.c = "Fabs";   ;
    break;}
case 670:
#line 6294 "GetDP.y"
{ yyval.c = "Floor";  ;
    break;}
case 671:
#line 6295 "GetDP.y"
{ yyval.c = "Ceil";   ;
    break;}
case 672:
#line 6296 "GetDP.y"
{ yyval.c = "Fmod";   ;
    break;}
case 673:
#line 6297 "GetDP.y"
{ yyval.c = "Modulo"; ;
    break;}
case 674:
#line 6298 "GetDP.y"
{ yyval.c = "Hypot";  ;
    break;}
case 675:
#line 6299 "GetDP.y"
{ yyval.c = yyvsp[0].c;       ;
    break;}
case 676:
#line 6303 "GetDP.y"
{ yyval.d = yyvsp[0].d ;          ;
    break;}
case 677:
#line 6304 "GetDP.y"
{ yyval.d = yyvsp[-1].d ;          ;
    break;}
case 678:
#line 6305 "GetDP.y"
{ yyval.d = -yyvsp[0].d ;         ;
    break;}
case 679:
#line 6306 "GetDP.y"
{ yyval.d = !yyvsp[0].d ;         ;
    break;}
case 680:
#line 6307 "GetDP.y"
{ yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
    break;}
case 681:
#line 6308 "GetDP.y"
{ yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
    break;}
case 682:
#line 6309 "GetDP.y"
{ yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
    break;}
case 683:
#line 6310 "GetDP.y"
{ yyval.d = yyvsp[-2].d / yyvsp[0].d ;     ;
    break;}
case 684:
#line 6311 "GetDP.y"
{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
    break;}
case 685:
#line 6312 "GetDP.y"
{ yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
    break;}
case 686:
#line 6313 "GetDP.y"
{ yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
    break;}
case 687:
#line 6314 "GetDP.y"
{ yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
    break;}
case 688:
#line 6315 "GetDP.y"
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
    break;}
case 689:
#line 6316 "GetDP.y"
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
    break;}
case 690:
#line 6317 "GetDP.y"
{ yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
    break;}
case 691:
#line 6318 "GetDP.y"
{ yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
    break;}
case 692:
#line 6319 "GetDP.y"
{ yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
    break;}
case 693:
#line 6320 "GetDP.y"
{ yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
    break;}
case 694:
#line 6321 "GetDP.y"
{ yyval.d = exp(yyvsp[-1].d);      ;
    break;}
case 695:
#line 6322 "GetDP.y"
{ yyval.d = log(yyvsp[-1].d);      ;
    break;}
case 696:
#line 6323 "GetDP.y"
{ yyval.d = log10(yyvsp[-1].d);    ;
    break;}
case 697:
#line 6324 "GetDP.y"
{ yyval.d = sqrt(yyvsp[-1].d);     ;
    break;}
case 698:
#line 6325 "GetDP.y"
{ yyval.d = sin(yyvsp[-1].d);      ;
    break;}
case 699:
#line 6326 "GetDP.y"
{ yyval.d = asin(yyvsp[-1].d);     ;
    break;}
case 700:
#line 6327 "GetDP.y"
{ yyval.d = cos(yyvsp[-1].d);      ;
    break;}
case 701:
#line 6328 "GetDP.y"
{ yyval.d = acos(yyvsp[-1].d);     ;
    break;}
case 702:
#line 6329 "GetDP.y"
{ yyval.d = tan(yyvsp[-1].d);      ;
    break;}
case 703:
#line 6330 "GetDP.y"
{ yyval.d = atan(yyvsp[-1].d);     ;
    break;}
case 704:
#line 6331 "GetDP.y"
{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
    break;}
case 705:
#line 6332 "GetDP.y"
{ yyval.d = sinh(yyvsp[-1].d);     ;
    break;}
case 706:
#line 6333 "GetDP.y"
{ yyval.d = cosh(yyvsp[-1].d);     ;
    break;}
case 707:
#line 6334 "GetDP.y"
{ yyval.d = tanh(yyvsp[-1].d);     ;
    break;}
case 708:
#line 6335 "GetDP.y"
{ yyval.d = fabs(yyvsp[-1].d);     ;
    break;}
case 709:
#line 6336 "GetDP.y"
{ yyval.d = floor(yyvsp[-1].d);    ;
    break;}
case 710:
#line 6337 "GetDP.y"
{ yyval.d = ceil(yyvsp[-1].d);     ;
    break;}
case 711:
#line 6338 "GetDP.y"
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
    break;}
case 712:
#line 6339 "GetDP.y"
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
    break;}
case 713:
#line 6340 "GetDP.y"
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d);  ;
    break;}
case 714:
#line 6344 "GetDP.y"
{ Msg(DIRECT, "Value (line %ld) --> %.16g", yylinenum, yyvsp[-1].d); ;
    break;}
case 715:
#line 6349 "GetDP.y"
{ yyval.d = yyvsp[0].d ; ;
    break;}
case 716:
#line 6350 "GetDP.y"
{ yyval.d = (double)yyvsp[0].i ; ;
    break;}
case 717:
#line 6351 "GetDP.y"
{ yyval.d = 3.1415926535897932 ; ;
    break;}
case 718:
#line 6352 "GetDP.y"
{ yyval.d = (double)_0D ; ;
    break;}
case 719:
#line 6353 "GetDP.y"
{ yyval.d = (double)_1D ; ;
    break;}
case 720:
#line 6354 "GetDP.y"
{ yyval.d = (double)_2D ; ;
    break;}
case 721:
#line 6355 "GetDP.y"
{ yyval.d = (double)_3D ; ;
    break;}
case 722:
#line 6357 "GetDP.y"
{ Constant_S.Name = yyvsp[0].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) {
	vyyerror("Unknown Constant: %s", yyvsp[0].c) ;  yyval.d = 0. ;
      }
      else  {
	if (Constant_S.Type == VAR_FLOAT)
	  yyval.d = Constant_S.Value.Float ;
	else {
	  vyyerror("Single value Constant needed: %s", yyvsp[0].c) ;  yyval.d = 0. ;
	}
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 723:
#line 6375 "GetDP.y"
{ yyval.l = NULL; ;
    break;}
case 724:
#line 6378 "GetDP.y"
{ 
      yyval.l = List_Create(1,1,sizeof(double)) ;  
      List_Add(yyval.l, &(yyvsp[0].d)) ; 
    ;
    break;}
case 725:
#line 6384 "GetDP.y"
{ yyval.l = yyvsp[0].l; ;
    break;}
case 726:
#line 6387 "GetDP.y"
{ yyval.l = yyvsp[-1].l; ;
    break;}
case 727:
#line 6394 "GetDP.y"
{ 
      yyval.l = List_Create(20,20,sizeof(double));
      List_Add(yyval.l, &(yyvsp[0].d)) ; 
    ;
    break;}
case 728:
#line 6400 "GetDP.y"
{ yyval.l = yyvsp[0].l; ;
    break;}
case 729:
#line 6403 "GetDP.y"
{ List_Add(yyval.l, &(yyvsp[0].d)) ; ;
    break;}
case 730:
#line 6406 "GetDP.y"
{ 
      for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
	List_Read(yyvsp[0].l, i, &d) ;
	List_Add(yyval.l, &d) ;
      }
      List_Delete(yyvsp[0].l);
    ;
    break;}
case 731:
#line 6418 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      for(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 732:
#line 6424 "GetDP.y"
{ yyval.l = List_Create(20,20,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)){
	vyyerror("Wrong increment in '%g : %g : %g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d) ;
	List_Add(yyval.l, &(yyvsp[-4].d)) ;
      }
      else
	for(d=yyvsp[-4].d ; (yyvsp[0].d>0)?(d<=yyvsp[-2].d):(d>=yyvsp[-2].d) ; d+=yyvsp[0].d) 
	  List_Add(yyval.l, &d) ;
    ;
    break;}
case 733:
#line 6435 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      Constant_S.Name = yyvsp[-2].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant))
	vyyerror("Unknown Constant: %s", yyvsp[-2].c) ;
      else
	if (Constant_S.Type != VAR_LISTOFFLOAT)
	  /* vyyerror("Multi value Constant needed: %s", $1) ; */
	  List_Add(yyval.l, &Constant_S.Value.Float) ;
	else
	  for(i=0 ; i<List_Nbr(Constant_S.Value.ListOfFloat) ; i++) {
	    List_Read(Constant_S.Value.ListOfFloat, i, &d) ;
	    List_Add(yyval.l, &d) ;
	  }
    ;
    break;}
case 734:
#line 6451 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      Constant_S.Name = yyvsp[-3].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant))
	vyyerror("Unknown Constant: %s", yyvsp[-3].c) ;
      else
	if (Constant_S.Type != VAR_LISTOFFLOAT)
	  vyyerror("Multi value Constant needed: %s", yyvsp[-3].c) ;
	else
	  for(i=0 ; i<List_Nbr(yyvsp[-1].l) ; i++) {
	    if(i < List_Nbr(Constant_S.Value.ListOfFloat)){
	      List_Read(Constant_S.Value.ListOfFloat, i, &d) ;
	      List_Add(yyval.l, &d) ;
	    }
	    else{
	      d = 0.;
	      List_Add(yyval.l, &d) ;
	    }
	  }
    ;
    break;}
case 735:
#line 6473 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      Constant_S.Name = yyvsp[-1].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant))
	vyyerror("Unknown Constant: %s", yyvsp[-1].c) ;
      else
	if (Constant_S.Type != VAR_LISTOFFLOAT)
	  vyyerror("Multi value Constant needed: %s", yyvsp[-1].c) ;
	else
	  for(i=0 ; i<List_Nbr(Constant_S.Value.ListOfFloat) ; i++) {
	    List_Read(Constant_S.Value.ListOfFloat, i, &d) ;
	    List_Add(yyval.l, &d) ;
	  }
    ;
    break;}
case 736:
#line 6488 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      Constant1_S.Name = yyvsp[-3].c ; Constant2_S.Name = yyvsp[-1].c ;
      if (!List_Query(ConstantTable_L, &Constant1_S, fcmp_Constant)) {
	vyyerror("Unknown Constant: %s", yyvsp[-3].c) ;
      }
      else
	if (Constant1_S.Type != VAR_LISTOFFLOAT) {
	  vyyerror("Multi value Constant needed: %s", yyvsp[-3].c) ;
	}
	else {
	  if (!List_Query(ConstantTable_L, &Constant2_S, fcmp_Constant)) {
	    vyyerror("Unknown Constant: %s", yyvsp[-1].c) ;
	  }
	  else
	    if (Constant2_S.Type != VAR_LISTOFFLOAT) {
	      vyyerror("Multi value Constant needed: %s", yyvsp[-1].c) ;
	    }
	    else {
	      if (List_Nbr(Constant1_S.Value.ListOfFloat) !=
		  List_Nbr(Constant2_S.Value.ListOfFloat)) {
		vyyerror("Different dimensions of Multi value Constants: "
			 "%s {%d}, %s {%d}",
			 yyvsp[-3].c, List_Nbr(Constant1_S.Value.ListOfFloat),
			 yyvsp[-1].c, List_Nbr(Constant2_S.Value.ListOfFloat)) ;
	      }
	      else {
		for(i=0 ; i<List_Nbr(Constant1_S.Value.ListOfFloat) ; i++) {
		  List_Read(Constant1_S.Value.ListOfFloat, i, &d) ;
		  List_Add(yyval.l, &d) ;
		  List_Read(Constant2_S.Value.ListOfFloat, i, &d) ;
		  List_Add(yyval.l, &d) ;
		}
	      }
	    }
	}
    ;
    break;}
case 737:
#line 6526 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ; 
      for(i=0 ; i<(int)yyvsp[-1].d ; i++) {
	d = yyvsp[-5].d + (yyvsp[-3].d-yyvsp[-5].d)*(double)i/(yyvsp[-1].d-1) ;
	List_Add(yyval.l, &d) ;
      }
    ;
    break;}
case 738:
#line 6534 "GetDP.y"
{ yyval.l = List_Create(20,20,sizeof(double)) ;
      for(i=0 ; i<(int)yyvsp[-1].d ; i++) {
	d = pow(10,yyvsp[-5].d + (yyvsp[-3].d-yyvsp[-5].d)*(double)i/(yyvsp[-1].d-1)) ;
	List_Add(yyval.l, &d) ;
      }
    ;
    break;}
case 739:
#line 6546 "GetDP.y"
{
      sprintf(tmpstr, "_%d", (int)yyvsp[-1].d) ;
      yyval.c = (char *)Malloc((strlen(yyvsp[-4].c)+strlen(tmpstr)+1)*sizeof(char)) ;
      strcpy(yyval.c, yyvsp[-4].c) ; strcat(yyval.c, tmpstr) ;
      Free(yyvsp[-4].c) ;
    ;
    break;}
case 740:
#line 6554 "GetDP.y"
{
      sprintf(tmpstr, "_%d", (int)yyvsp[-1].d) ;
      yyval.c = (char *)Realloc(yyvsp[-4].c,(strlen(yyvsp[-4].c)+strlen(tmpstr)+1)*sizeof(char)) ;
      strcpy(yyval.c, yyvsp[-4].c) ; strcat(yyval.c, tmpstr) ;
    ;
    break;}
case 741:
#line 6565 "GetDP.y"
{ yyval.c = yyvsp[0].c ; ;
    break;}
case 742:
#line 6568 "GetDP.y"
{ yyval.c = yyvsp[0].c ; ;
    break;}
case 743:
#line 6575 "GetDP.y"
{ yyval.c = yyvsp[0].c ; ;
    break;}
case 744:
#line 6578 "GetDP.y"
{ Constant_S.Name = yyvsp[0].c ;
      if (!List_Query(ConstantTable_L, &Constant_S, fcmp_Constant)) {
	vyyerror("Unknown Constant: %s", yyvsp[0].c) ;  yyval.c = NULL ;
      }
      else  {
	if (Constant_S.Type == VAR_CHAR)
	  yyval.c = Constant_S.Value.Char ;
	else {
	  vyyerror("String Constant needed: %s", yyvsp[0].c) ;  yyval.c = NULL ;
	}
      }
      Free(yyvsp[0].c) ;
    ;
    break;}
case 745:
#line 6593 "GetDP.y"
{
      yyval.c = yyvsp[0].c ;
    ;
    break;}
case 746:
#line 6598 "GetDP.y"
{
      yyval.c = yyvsp[-1].c;
    ;
    break;}
case 747:
#line 6603 "GetDP.y"
{
      i = Print_ListOfDouble(yyvsp[-3].c,yyvsp[-1].l,tmpstr);
      if(i<0){
	vyyerror("Too few arguments in Sprintf");
	yyval.c = yyvsp[-3].c;
      }
      else if(i>0){
	vyyerror("Too many arguments (%d) in Sprintf", i);
	yyval.c = yyvsp[-3].c;
      }
      else{
	yyval.c = (char*)Malloc((strlen(tmpstr)+1)*sizeof(char));
	strcpy(yyval.c, tmpstr);
	Free(yyvsp[-3].c);
      }
      List_Delete(yyvsp[-1].l);
    ;
    break;}
case 748:
#line 6622 "GetDP.y"
{
      time(&date_info);
      yyval.c = (char *)Malloc((strlen(ctime(&date_info))+1)*sizeof(char)) ;
      strcpy(yyval.c, ctime(&date_info));
      yyval.c[strlen(yyval.c)-1] = 0;
    ;
    break;}
case 749:
#line 6632 "GetDP.y"
{
      if (yyvsp[-3].c != NULL && yyvsp[-1].c != NULL) {
	yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)) ;
	strcpy(yyval.c, yyvsp[-3].c) ;  strcat(yyval.c, yyvsp[-1].c) ;
      }
      else {
	vyyerror("Undefined argument for StrCat function") ;  yyval.c = NULL ;
      }
    ;
    break;}
}
   /* the action file gets copied in in place of this dollarsign */
#line 543 "/usr/share/bison.simple"

  yyvsp -= yylen;
  yyssp -= yylen;
#ifdef YYLSP_NEEDED
  yylsp -= yylen;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

  *++yyvsp = yyval;

#ifdef YYLSP_NEEDED
  yylsp++;
  if (yylen == 0)
    {
      yylsp->first_line = yylloc.first_line;
      yylsp->first_column = yylloc.first_column;
      yylsp->last_line = (yylsp-1)->last_line;
      yylsp->last_column = (yylsp-1)->last_column;
      yylsp->text = 0;
    }
  else
    {
      yylsp->last_line = (yylsp+yylen-1)->last_line;
      yylsp->last_column = (yylsp+yylen-1)->last_column;
    }
#endif

  /* Now "shift" the result of the reduction.
     Determine what state that goes to,
     based on the state we popped back to
     and the rule number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTBASE];

  goto yynewstate;

yyerrlab:   /* here on detecting error */

  if (! yyerrstatus)
    /* If not already recovering from an error, report this error.  */
    {
      ++yynerrs;

#ifdef YYERROR_VERBOSE
      yyn = yypact[yystate];

      if (yyn > YYFLAG && yyn < YYLAST)
	{
	  int size = 0;
	  char *msg;
	  int x, count;

	  count = 0;
	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
	  for (x = (yyn < 0 ? -yyn : 0);
	       x < (sizeof(yytname) / sizeof(char *)); x++)
	    if (yycheck[x + yyn] == x)
	      size += strlen(yytname[x]) + 15, count++;
	  msg = (char *) malloc(size + 15);
	  if (msg != 0)
	    {
	      strcpy(msg, "parse error");

	      if (count < 5)
		{
		  count = 0;
		  for (x = (yyn < 0 ? -yyn : 0);
		       x < (sizeof(yytname) / sizeof(char *)); x++)
		    if (yycheck[x + yyn] == x)
		      {
			strcat(msg, count == 0 ? ", expecting `" : " or `");
			strcat(msg, yytname[x]);
			strcat(msg, "'");
			count++;
		      }
		}
	      yyerror(msg);
	      free(msg);
	    }
	  else
	    yyerror ("parse error; also virtual memory exceeded");
	}
      else
#endif /* YYERROR_VERBOSE */
	yyerror("parse error");
    }

  goto yyerrlab1;
yyerrlab1:   /* here on error raised explicitly by an action */

  if (yyerrstatus == 3)
    {
      /* if just tried and failed to reuse lookahead token after an error, discard it.  */

      /* return failure if at end of input */
      if (yychar == YYEOF)
	YYABORT;

#if YYDEBUG != 0
      if (yydebug)
	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
#endif

      yychar = YYEMPTY;
    }

  /* Else will try to reuse lookahead token
     after shifting the error token.  */

  yyerrstatus = 3;		/* Each real token shifted decrements this */

  goto yyerrhandle;

yyerrdefault:  /* current state does not do anything special for the error token. */

#if 0
  /* This is wrong; only states that explicitly want error tokens
     should shift them.  */
  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
  if (yyn) goto yydefault;
#endif

yyerrpop:   /* pop the current state because it cannot handle the error token */

  if (yyssp == yyss) YYABORT;
  yyvsp--;
  yystate = *--yyssp;
#ifdef YYLSP_NEEDED
  yylsp--;
#endif

#if YYDEBUG != 0
  if (yydebug)
    {
      short *ssp1 = yyss - 1;
      fprintf (stderr, "Error: state stack now");
      while (ssp1 != yyssp)
	fprintf (stderr, " %d", *++ssp1);
      fprintf (stderr, "\n");
    }
#endif

yyerrhandle:

  yyn = yypact[yystate];
  if (yyn == YYFLAG)
    goto yyerrdefault;

  yyn += YYTERROR;
  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
    goto yyerrdefault;

  yyn = yytable[yyn];
  if (yyn < 0)
    {
      if (yyn == YYFLAG)
	goto yyerrpop;
      yyn = -yyn;
      goto yyreduce;
    }
  else if (yyn == 0)
    goto yyerrpop;

  if (yyn == YYFINAL)
    YYACCEPT;

#if YYDEBUG != 0
  if (yydebug)
    fprintf(stderr, "Shifting error token, ");
#endif

  *++yyvsp = yylval;
#ifdef YYLSP_NEEDED
  *++yylsp = yylloc;
#endif

  yystate = yyn;
  goto yynewstate;

 yyacceptlab:
  /* YYACCEPT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 0;

 yyabortlab:
  /* YYABORT comes here.  */
  if (yyfree_stacks)
    {
      free (yyss);
      free (yyvs);
#ifdef YYLSP_NEEDED
      free (yyls);
#endif
    }
  return 1;
}
#line 6643 "GetDP.y"



/* 
   This is a hack... Bison redefines 'const' if !__cplusplus and !__STDC__ 
*/

#ifdef const
#undef const
#endif

/*  A d d _ G r o u p   &   C o .  */

int  Add_Group(struct Group * Group_P, char * Name, int Flag_Plus, int Num_Index) {
  int  i ;

  if (!Problem_S.Group)
    Problem_S.Group = List_Create(50, 50, sizeof (struct Group) ) ;

  switch (Flag_Plus) {
  case 1 :
    sprintf(tmpstr, "_%s_%d", Name, List_Nbr(Problem_S.Group)) ;
    Group_P->Name = strsave(tmpstr) ;
    break ;
  case 2 :
    sprintf(tmpstr, "%s_%d", Name, Num_Index) ;
    Group_P->Name = strsave(tmpstr) ;
    break ;
  default :
    Group_P->Name = Name ;
  }

  if ((i = List_ISearchSeq(Problem_S.Group, Group_P->Name, fcmp_Group_Name)) < 0) {
    i = Group_P->Num = List_Nbr(Problem_S.Group) ;
    Group_P->ExtendedList = NULL ;  Group_P->ExtendedSuppList = NULL ;
    List_Add(Problem_S.Group, Group_P) ;
  }
  else  List_Write(Problem_S.Group, i, Group_P) ;

  return i ;

}


int  Add_Group_2(struct Group * Group_P, char * Name, int Flag_Add, 
		 int Flag_Plus, int Num_Index1, int Num_Index2) {
  int  i, j ;
  List_T *InitialList;

  if (!Problem_S.Group)
    Problem_S.Group = List_Create(50, 50, sizeof (struct Group) ) ;

  if (Flag_Plus == 0)
    sprintf(tmpstr, "%s", Name) ;
  else if (Flag_Plus == 1)
    sprintf(tmpstr, "%s_%d", Name, Num_Index1) ;
  else if (Flag_Plus == 2)
    sprintf(tmpstr, "%s_%d_%d", Name, Num_Index1,Num_Index2) ;

  Group_P->Name = strsave(tmpstr) ;
  
  if ((i = List_ISearchSeq(Problem_S.Group, Group_P->Name, fcmp_Group_Name)) < 0) {
    i = Group_P->Num = List_Nbr(Problem_S.Group) ;
    Group_P->ExtendedList = NULL ;  Group_P->ExtendedSuppList = NULL ;
    List_Add(Problem_S.Group, Group_P) ;
  } else if (Flag_Add) {
    InitialList = ((struct Group *)List_Pointer(Problem_S.Group, i))->InitialList ;
    for (j = 0 ; j < List_Nbr(Group_P->InitialList) ; j++) {
      List_Add(InitialList, (int *)List_Pointer(Group_P->InitialList, j)) ;
    } 
  } else List_Write(Problem_S.Group, i, Group_P) ;

  return i ;
}



int  Num_Group(struct Group * Group_P, char * Name, int Num_Group) {

  if      (Num_Group >= 0)   /* OK */ ;
  else if (Num_Group == -1)  Num_Group = Add_Group(Group_P, Name, 1, 0) ;
  else                       vyyerror("Bad Group right hand side") ;

  return Num_Group ;
}


/*  A d d _ E x p r e s s i o n   */

int  Add_Expression(struct Expression * Expression_P,
		    char * Name, int Flag_Plus) {
  int  i ;

  if (!Problem_S.Expression)
    Problem_S.Expression = List_Create(50, 50, sizeof (struct Expression) ) ;

  if (Flag_Plus) {
    sprintf(tmpstr, "_%s_%d", Name, List_Nbr(Problem_S.Expression)) ;
    Expression_P->Name = strsave(tmpstr) ;
  }
  else  Expression_P->Name = Name ;

  if ((i = List_ISearchSeq
       (Problem_S.Expression, Name, fcmp_Expression_Name)) < 0) {
    i = List_Nbr(Problem_S.Expression) ;
    List_Add(Problem_S.Expression, Expression_P) ;
  }
  else  List_Write(Problem_S.Expression, i, Expression_P) ;

  return i ;
}

/*  L i s t e   I n d e x   d e s   D e f i n e Q u a n t i t y  */

void  Pro_DefineQuantityIndex_1(List_T * WholeQuantity_L, int TraceGroupIndex) {
  int  i ;
  struct WholeQuantity * WholeQuantity_P ;
  struct TwoInt Pair ;

  WholeQuantity_P = (List_Nbr(WholeQuantity_L) > 0)?
    (struct WholeQuantity*)List_Pointer(WholeQuantity_L, 0) : NULL ;

  for (i = 0 ; i < List_Nbr(WholeQuantity_L) ; i++)
    switch ((WholeQuantity_P+i)->Type) {
    case WQ_OPERATORANDQUANTITY :
    case WQ_OPERATORANDQUANTITYEVAL :
    case WQ_SOLIDANGLE :
    case WQ_ORDER :
      Pair.Int1 = (WholeQuantity_P+i)->Case.OperatorAndQuantity.Index ;
      Pair.Int2 = TraceGroupIndex ;
      List_Insert(ListOfTwoInt_L, &Pair, fcmp_int) ;
      break ;
    case WQ_MHTRANSFORM  :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.MHTransform.WholeQuantity, TraceGroupIndex) ;
    case WQ_TIMEDERIVATIVE :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.TimeDerivative.WholeQuantity, TraceGroupIndex) ;
      break ;
    case WQ_ATANTERIORTIMESTEP :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.AtAnteriorTimeStep.WholeQuantity, TraceGroupIndex) ;
      break ;
    case WQ_CAST :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.Cast.WholeQuantity, TraceGroupIndex) ;
      break ;
    case WQ_TRACE :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.Trace.WholeQuantity, 
	 (WholeQuantity_P+i)->Case.Trace.InIndex) ;
      break ;
    case WQ_TEST :
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.Test.WholeQuantity_True, TraceGroupIndex) ;
      Pro_DefineQuantityIndex_1
	((WholeQuantity_P+i)->Case.Test.WholeQuantity_False, TraceGroupIndex) ;
      break ;
    }
  List_Sort(ListOfTwoInt_L, fcmp_int) ;
}

void  Pro_DefineQuantityIndex(List_T * WholeQuantity_L,
			      int DefineQuantityIndexEqu,
			      int * NbrQuantityIndex, int ** QuantityIndexTable, 
			      int ** QuantityTraceGroupIndexTable) {
  int i ;
  struct TwoInt Pair, *Pair_P ;

  List_Reset(ListOfTwoInt_L) ;

  /* special case for the Equ part (right of the comma) 
     FIXME: change this when we allow a full WholeQuantity expression
     there */
  if (DefineQuantityIndexEqu >= 0){
    Pair.Int1 = DefineQuantityIndexEqu ;
    Pair.Int2 = -1 ;
    List_Add(ListOfTwoInt_L, &Pair) ;
  }

  Pro_DefineQuantityIndex_1(WholeQuantity_L, -1) ;

  *NbrQuantityIndex = List_Nbr(ListOfTwoInt_L) ;
  *QuantityIndexTable = (int *)Malloc(List_Nbr(ListOfTwoInt_L) * sizeof(int)) ;
  *QuantityTraceGroupIndexTable = (int *)Malloc(List_Nbr(ListOfTwoInt_L) * sizeof(int)) ;
  for (i = 0 ; i < List_Nbr(ListOfTwoInt_L) ; i++){
    Pair_P =  (struct TwoInt*)List_Pointer(ListOfTwoInt_L, i) ;
    (*QuantityIndexTable)[i] = Pair_P->Int1 ;
    (*QuantityTraceGroupIndexTable)[i] = Pair_P->Int2 ;
  }
}


/* C h e c k _ N a m e O f S t r u c t N o t E x i s t   */

void  Check_NameOfStructNotExist(char * Struct, List_T * List_L, void * data,
				 int (*fcmp)(const void *a, const void *b)) {
  if (List_ISearchSeq(List_L, data, fcmp) >= 0)
    vyyerror("Redefinition of %s %s", Struct, (char*)data) ;
}


/* P r i n t _ C o n s t a n t  */

void  Print_Constant(){
  int i,j;
  char tmp1[1000], tmp2[100];
  struct Constant *Constant_P;

  for(i=0 ; i<List_Nbr(ConstantTable_L) ; i++){
    Constant_P = (struct Constant*)List_Pointer(ConstantTable_L, i);
    switch(Constant_P->Type){
    case VAR_FLOAT:
      Msg(CHECK, "%s = %g;\n", Constant_P->Name, Constant_P->Value.Float);
      break;
    case VAR_LISTOFFLOAT:
      sprintf(tmp1, "%g", *(double*)List_Pointer(Constant_P->Value.ListOfFloat,0));
      for(j=1 ; j<List_Nbr(Constant_P->Value.ListOfFloat) ; j++){
	sprintf(tmp2, ",%g", *(double*)List_Pointer(Constant_P->Value.ListOfFloat,j));
	strcat(tmp1,tmp2);
      }
      Msg(CHECK, "%s = {%s};\n", Constant_P->Name, tmp1);
      break;
    case VAR_CHAR:
      Msg(CHECK, "%s = \"%s\";\n", Constant_P->Name, Constant_P->Value.Char);
      break;
    }
  }
}


/* f c m p _ . . .  */

int  fcmp_Constant (const void *a, const void *b) {
  return ( strcmp(((struct Constant *)a)->Name, ((struct Constant *)b)->Name)) ;
}
int  fcmp_Expression_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct Expression *)b)->Name ) ) ;
}
int  fcmp_Group_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct Group *)b)->Name ) ) ;
}
int  fcmp_Constraint_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct Constraint *)b)->Name ) ) ;
}
int  fcmp_JacobianMethod_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct JacobianMethod *)b)->Name ) ) ;
}
int  fcmp_IntegrationMethod_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct IntegrationMethod *)b)->Name ) ) ;
}
int  fcmp_BasisFunction_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct BasisFunction *)b)->Name ) ) ;
}
int  fcmp_FunctionSpace_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct FunctionSpace *)b)->Name ) ) ;
}
int  fcmp_BasisFunction_NameOfCoef(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct BasisFunction *)b)->NameOfCoef ) ) ;
}
int  fcmp_SubSpace_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct SubSpace *)b)->Name ) ) ;
}
int  fcmp_GlobalQuantity_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct GlobalQuantity *)b)->Name ) ) ;
}
int  fcmp_Formulation_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct Formulation *)b)->Name ) ) ;
}
int  fcmp_DefineQuantity_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct DefineQuantity *)b)->Name ) ) ;
}
int  fcmp_DefineSystem_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct DefineSystem *)b)->Name ) ) ;
}
int  fcmp_Resolution_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct Resolution *)b)->Name ) ) ;
}
int  fcmp_PostProcessing_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct PostProcessing *)b)->Name ) ) ;
}
int  fcmp_PostQuantity_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct PostQuantity *)b)->Name ) ) ;
}
int  fcmp_PostOperation_Name(const void * a, const void * b) {
  return ( strcmp((char *)a, ((struct PostOperation *)b)->Name ) ) ;
}

int Print_ListOfDouble(char *format, List_T *list, char *buffer){
  int i, j, k;
  char tmp1[256], tmp2[256];

  j=0;
  while(format[j]!='%') j++;
  strncpy(buffer, format, j); 
  buffer[j]='\0'; 
  for(i = 0 ; i<List_Nbr(list) ; i++){
    k = j;
    j++;
    if(j<(int)strlen(format)){
      if(format[j]=='%'){
	strcat(buffer, "%");
	j++;
      }
      while(format[j]!='%' && j<(int)strlen(format)) j++;
      if(k != j){
	strncpy(tmp1, &(format[k]),j-k);
	tmp1[j-k]='\0';
	sprintf(tmp2, tmp1, *(double*)List_Pointer(list,i)); 
	strcat(buffer, tmp2);
      }
    }
    else{
      return List_Nbr(list)-i;
      break ;
    }
  }
  if(j != (int)strlen(format))
    return -1;
  return 0;
}


/*  E r r o r   h a n d l i n g  */

void  yyerror (char *s) {
  int  i, nn ;
  char space1[32] = "", space2[512]= "";

  if(!InteractiveLevel){
    Msg(DIRECT, "Error ('%s' line %ld): %s on '%s'", yyname, yylinenum, 
	s, yytext) ;
  }
  else{
    if(!ErrorLevel){
      nn = strlen(GETDP_PROMPT_STRING) ;
      for(i=0 ; i<nn ; i++) {
	strcat(space1, " ");
	strcat(space2, " ");
      }
      for(i=0 ; i<yycolnum-2 ; i++) {
	strcat(space2, " ");
      }
      Msg(DIRECT, "%s^", space2);
      Msg(DIRECT, "%s%s", space1, s);
      Msg(DIRECT, "") ;
      Msg(DIRECT, "") ;
    }
  }

  ErrorLevel=1 ;
}

void  vyyerror (char *fmt, ...){
  int      i, nn ;
  char space1[32] = "", str[256];
  va_list  args;

  va_start (args, fmt);
  vsprintf (str, fmt, args);
  va_end (args);

  if(!InteractiveLevel){
    Msg(DIRECT, "Error ('%s' line %ld): %s", yyname, yylinenum, str);
  }
  else{
    if(!ErrorLevel){
      nn = strlen(GETDP_PROMPT_STRING) ;
      for(i=0 ; i<nn ; i++) {
	strcat(space1, " ");
      }
      Msg(DIRECT, "%s%s", space1, str) ;
      Msg(DIRECT, "");
    }
  }

  ErrorLevel=1 ;
}



syntax highlighted by Code2HTML, v. 0.9.1