52 #define YYBISON_VERSION "3.8.2"
55 #define YYSKELETON_NAME "yacc.c"
68 #define yyparse osilparse
70 #define yyerror osilerror
71 #define yydebug osildebug
72 #define yynerrs osilnerrs
82 #include "OSInstance.h"
86 #include "OSParameters.h"
94 #define OSINSTANCE_AVAILABLE
110 # error "don't have header file for time"
117 # ifdef HAVE_STRING_H
120 # error "don't have header file for string"
130 # error "don't have header file for stdio"
136 using std::ostringstream;
154 double atofmod1(
int* osillineno,
const char *ch1,
const char *ch2 );
155 int atoimod1(
int* osillineno,
const char *ch1,
const char *ch2);
171 char *
parseBase64(
const char **p,
int *dataSize,
int* osillineno);
173 #define ISWHITESPACE( char_) ((char_) == ' ' || \
174 (char_) == '\t' || (char_) == '\r')
176 #define ISDIGIT(_c) ((_c) >= '0' && (_c) <= '9')
178 #define GETATTRIBUTETEXT \
179 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
180 if( *ch != '=') { osilerror_wrapper( ch, osillineno, "found an attribute not defined"); return false;} \
182 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
185 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
187 for( ; *ch != '\"'; ch++); \
192 for(; ISWHITESPACE( *ch) || isnewline( *ch, osillineno); ch++ ) ; \
194 for( ; *ch != '\''; ch++); \
196 else { osilerror_wrapper( ch, osillineno,"missing quote on attribute"); return false;} \
199 attText = new char[numChar + 1]; \
200 for(ki = 0; ki < numChar; ki++) attText[ki] = *((*p)++); \
201 attText[ki] = '\0'; \
202 attTextEnd = &attText[ki];
204 #define GAIL printf("GAIL ANN HONDA\n")
210 printf("%c", ch[-2]); \
211 printf("%c", ch[-1]); \
212 printf("%c", ch[0]); \
213 printf("%c", ch[1]); \
214 printf("%c", ch[2]); \
215 printf("%c", ch[3]); \
216 printf("%c", ch[4]); \
217 printf("%c", ch[5]); \
218 printf("%c \n", ch[6]); \
224 # define YY_CAST(Type, Val) static_cast<Type> (Val)
225 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
227 # define YY_CAST(Type, Val) ((Type) (Val))
228 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
232 # if defined __cplusplus
233 # if 201103L <= __cplusplus
234 # define YY_NULLPTR nullptr
236 # define YY_NULLPTR 0
239 # define YY_NULLPTR ((void*)0)
243 #include "OSParseosil.tab.hpp"
247 YYSYMBOL_YYEMPTY = -2,
248 YYSYMBOL_YYEOF = 0, /* "end of file" */
249 YYSYMBOL_YYerror = 1, /* error */
250 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
251 YYSYMBOL_ATTRIBUTETEXT = 3, /* ATTRIBUTETEXT */
252 YYSYMBOL_ELEMENTTEXT = 4, /* ELEMENTTEXT */
253 YYSYMBOL_ITEMTEXT = 5, /* ITEMTEXT */
254 YYSYMBOL_INTEGER = 6, /* INTEGER */
255 YYSYMBOL_DOUBLE = 7, /* DOUBLE */
256 YYSYMBOL_QUOTE = 8, /* QUOTE */
257 YYSYMBOL_TWOQUOTES = 9, /* TWOQUOTES */
258 YYSYMBOL_ENDOFELEMENT = 10, /* ENDOFELEMENT */
259 YYSYMBOL_GREATERTHAN = 11, /* GREATERTHAN */
260 YYSYMBOL_EMPTYSEMIDEFINITENESSATT = 12, /* EMPTYSEMIDEFINITENESSATT */
261 YYSYMBOL_SEMIDEFINITENESSATT = 13, /* SEMIDEFINITENESSATT */
262 YYSYMBOL_NUMBEROFQTERMSATT = 14, /* NUMBEROFQTERMSATT */
263 YYSYMBOL_NUMBEROFCONESATT = 15, /* NUMBEROFCONESATT */
264 YYSYMBOL_NUMBEROFSTAGESATT = 16, /* NUMBEROFSTAGESATT */
265 YYSYMBOL_IDXONEATT = 17, /* IDXONEATT */
266 YYSYMBOL_IDXTWOATT = 18, /* IDXTWOATT */
267 YYSYMBOL_HORIZONATT = 19, /* HORIZONATT */
268 YYSYMBOL_STARTATT = 20, /* STARTATT */
269 YYSYMBOL_STARTIDXATT = 21, /* STARTIDXATT */
270 YYSYMBOL_MATRIXIDXATT = 22, /* MATRIXIDXATT */
271 YYSYMBOL_LBMATRIXIDXATT = 23, /* LBMATRIXIDXATT */
272 YYSYMBOL_LBCONEIDXATT = 24, /* LBCONEIDXATT */
273 YYSYMBOL_UBMATRIXIDXATT = 25, /* UBMATRIXIDXATT */
274 YYSYMBOL_UBCONEIDXATT = 26, /* UBCONEIDXATT */
275 YYSYMBOL_TEMPLATEMATRIXIDXATT = 27, /* TEMPLATEMATRIXIDXATT */
276 YYSYMBOL_REFERENCEMATRIXIDXATT = 28, /* REFERENCEMATRIXIDXATT */
277 YYSYMBOL_VARREFERENCEMATRIXIDXATT = 29, /* VARREFERENCEMATRIXIDXATT */
278 YYSYMBOL_OBJREFERENCEMATRIXIDXATT = 30, /* OBJREFERENCEMATRIXIDXATT */
279 YYSYMBOL_CONREFERENCEMATRIXIDXATT = 31, /* CONREFERENCEMATRIXIDXATT */
280 YYSYMBOL_ORDERCONEIDXATT = 32, /* ORDERCONEIDXATT */
281 YYSYMBOL_CONSTANTMATRIXIDXATT = 33, /* CONSTANTMATRIXIDXATT */
282 YYSYMBOL_NORMSCALEFACTORATT = 34, /* NORMSCALEFACTORATT */
283 YYSYMBOL_DISTORTIONMATRIXIDXATT = 35, /* DISTORTIONMATRIXIDXATT */
284 YYSYMBOL_AXISDIRECTIONATT = 36, /* AXISDIRECTIONATT */
285 YYSYMBOL_FIRSTAXISDIRECTIONATT = 37, /* FIRSTAXISDIRECTIONATT */
286 YYSYMBOL_SECONDAXISDIRECTIONATT = 38, /* SECONDAXISDIRECTIONATT */
287 YYSYMBOL_OSILEND = 39, /* OSILEND */
288 YYSYMBOL_INSTANCEDATAEND = 40, /* INSTANCEDATAEND */
289 YYSYMBOL_INSTANCEDATASTARTEND = 41, /* INSTANCEDATASTARTEND */
290 YYSYMBOL_QUADRATICCOEFFICIENTSSTART = 42, /* QUADRATICCOEFFICIENTSSTART */
291 YYSYMBOL_QUADRATICCOEFFICIENTSEND = 43, /* QUADRATICCOEFFICIENTSEND */
292 YYSYMBOL_QTERMSTART = 44, /* QTERMSTART */
293 YYSYMBOL_QTERMEND = 45, /* QTERMEND */
294 YYSYMBOL_CONESSTART = 46, /* CONESSTART */
295 YYSYMBOL_CONESEND = 47, /* CONESEND */
296 YYSYMBOL_NONNEGATIVECONESTART = 48, /* NONNEGATIVECONESTART */
297 YYSYMBOL_NONNEGATIVECONEEND = 49, /* NONNEGATIVECONEEND */
298 YYSYMBOL_NONPOSITIVECONESTART = 50, /* NONPOSITIVECONESTART */
299 YYSYMBOL_NONPOSITIVECONEEND = 51, /* NONPOSITIVECONEEND */
300 YYSYMBOL_ORTHANTCONESTART = 52, /* ORTHANTCONESTART */
301 YYSYMBOL_ORTHANTCONEEND = 53, /* ORTHANTCONEEND */
302 YYSYMBOL_POLYHEDRALCONESTART = 54, /* POLYHEDRALCONESTART */
303 YYSYMBOL_POLYHEDRALCONEEND = 55, /* POLYHEDRALCONEEND */
304 YYSYMBOL_QUADRATICCONESTART = 56, /* QUADRATICCONESTART */
305 YYSYMBOL_QUADRATICCONEEND = 57, /* QUADRATICCONEEND */
306 YYSYMBOL_ROTATEDQUADRATICCONESTART = 58, /* ROTATEDQUADRATICCONESTART */
307 YYSYMBOL_ROTATEDQUADRATICCONEEND = 59, /* ROTATEDQUADRATICCONEEND */
308 YYSYMBOL_SEMIDEFINITECONESTART = 60, /* SEMIDEFINITECONESTART */
309 YYSYMBOL_SEMIDEFINITECONEEND = 61, /* SEMIDEFINITECONEEND */
310 YYSYMBOL_PRODUCTCONESTART = 62, /* PRODUCTCONESTART */
311 YYSYMBOL_PRODUCTCONEEND = 63, /* PRODUCTCONEEND */
312 YYSYMBOL_INTERSECTIONCONESTART = 64, /* INTERSECTIONCONESTART */
313 YYSYMBOL_INTERSECTIONCONEEND = 65, /* INTERSECTIONCONEEND */
314 YYSYMBOL_DUALCONESTART = 66, /* DUALCONESTART */
315 YYSYMBOL_DUALCONEEND = 67, /* DUALCONEEND */
316 YYSYMBOL_POLARCONESTART = 68, /* POLARCONESTART */
317 YYSYMBOL_POLARCONEEND = 69, /* POLARCONEEND */
318 YYSYMBOL_DIRECTIONSTART = 70, /* DIRECTIONSTART */
319 YYSYMBOL_DIRECTIONEND = 71, /* DIRECTIONEND */
320 YYSYMBOL_FACTORSSTART = 72, /* FACTORSSTART */
321 YYSYMBOL_FACTORSEND = 73, /* FACTORSEND */
322 YYSYMBOL_COMPONENTSSTART = 74, /* COMPONENTSSTART */
323 YYSYMBOL_COMPONENTSEND = 75, /* COMPONENTSEND */
324 YYSYMBOL_TIMEDOMAINSTART = 76, /* TIMEDOMAINSTART */
325 YYSYMBOL_TIMEDOMAINEND = 77, /* TIMEDOMAINEND */
326 YYSYMBOL_STAGESSTART = 78, /* STAGESSTART */
327 YYSYMBOL_STAGESEND = 79, /* STAGESEND */
328 YYSYMBOL_STAGESTART = 80, /* STAGESTART */
329 YYSYMBOL_STAGEEND = 81, /* STAGEEND */
330 YYSYMBOL_INTERVALSTART = 82, /* INTERVALSTART */
331 YYSYMBOL_INTERVALEND = 83, /* INTERVALEND */
332 YYSYMBOL_HEADERSTART = 84, /* HEADERSTART */
333 YYSYMBOL_HEADEREND = 85, /* HEADEREND */
334 YYSYMBOL_FILENAMESTART = 86, /* FILENAMESTART */
335 YYSYMBOL_FILENAMEEND = 87, /* FILENAMEEND */
336 YYSYMBOL_FILENAMEEMPTY = 88, /* FILENAMEEMPTY */
337 YYSYMBOL_FILENAMESTARTANDEND = 89, /* FILENAMESTARTANDEND */
338 YYSYMBOL_FILESOURCESTART = 90, /* FILESOURCESTART */
339 YYSYMBOL_FILESOURCEEND = 91, /* FILESOURCEEND */
340 YYSYMBOL_FILESOURCEEMPTY = 92, /* FILESOURCEEMPTY */
341 YYSYMBOL_FILESOURCESTARTANDEND = 93, /* FILESOURCESTARTANDEND */
342 YYSYMBOL_FILEDESCRIPTIONSTART = 94, /* FILEDESCRIPTIONSTART */
343 YYSYMBOL_FILEDESCRIPTIONEND = 95, /* FILEDESCRIPTIONEND */
344 YYSYMBOL_FILEDESCRIPTIONEMPTY = 96, /* FILEDESCRIPTIONEMPTY */
345 YYSYMBOL_FILEDESCRIPTIONSTARTANDEND = 97, /* FILEDESCRIPTIONSTARTANDEND */
346 YYSYMBOL_FILECREATORSTART = 98, /* FILECREATORSTART */
347 YYSYMBOL_FILECREATOREND = 99, /* FILECREATOREND */
348 YYSYMBOL_FILECREATOREMPTY = 100, /* FILECREATOREMPTY */
349 YYSYMBOL_FILECREATORSTARTANDEND = 101, /* FILECREATORSTARTANDEND */
350 YYSYMBOL_FILELICENCESTART = 102, /* FILELICENCESTART */
351 YYSYMBOL_FILELICENCEEND = 103, /* FILELICENCEEND */
352 YYSYMBOL_FILELICENCEEMPTY = 104, /* FILELICENCEEMPTY */
353 YYSYMBOL_FILELICENCESTARTANDEND = 105, /* FILELICENCESTARTANDEND */
354 YYSYMBOL_INDEXESSTART = 106, /* INDEXESSTART */
355 YYSYMBOL_INDEXESEND = 107, /* INDEXESEND */
356 YYSYMBOL_VALUESSTART = 108, /* VALUESSTART */
357 YYSYMBOL_VALUESEND = 109, /* VALUESEND */
358 YYSYMBOL_NONZEROSSTART = 110, /* NONZEROSSTART */
359 YYSYMBOL_NONZEROSEND = 111, /* NONZEROSEND */
360 YYSYMBOL_ELSTART = 112, /* ELSTART */
361 YYSYMBOL_ELEND = 113, /* ELEND */
362 YYSYMBOL_ENUMERATIONSTART = 114, /* ENUMERATIONSTART */
363 YYSYMBOL_ENUMERATIONEND = 115, /* ENUMERATIONEND */
364 YYSYMBOL_ITEMEMPTY = 116, /* ITEMEMPTY */
365 YYSYMBOL_ITEMSTART = 117, /* ITEMSTART */
366 YYSYMBOL_ITEMEND = 118, /* ITEMEND */
367 YYSYMBOL_ITEMSTARTANDEND = 119, /* ITEMSTARTANDEND */
368 YYSYMBOL_BASE64START = 120, /* BASE64START */
369 YYSYMBOL_BASE64END = 121, /* BASE64END */
370 YYSYMBOL_NUMBEROFELATT = 122, /* NUMBEROFELATT */
371 YYSYMBOL_NUMBEROFENUMERATIONSATT = 123, /* NUMBEROFENUMERATIONSATT */
372 YYSYMBOL_NUMBEROFITEMSATT = 124, /* NUMBEROFITEMSATT */
373 YYSYMBOL_EMPTYCATEGORYATT = 125, /* EMPTYCATEGORYATT */
374 YYSYMBOL_CATEGORYATT = 126, /* CATEGORYATT */
375 YYSYMBOL_EMPTYDESCRIPTIONATT = 127, /* EMPTYDESCRIPTIONATT */
376 YYSYMBOL_DESCRIPTIONATT = 128, /* DESCRIPTIONATT */
377 YYSYMBOL_EMPTYSOLVERATT = 129, /* EMPTYSOLVERATT */
378 YYSYMBOL_SOLVERATT = 130, /* SOLVERATT */
379 YYSYMBOL_EMPTYNAMEATT = 131, /* EMPTYNAMEATT */
380 YYSYMBOL_NAMEATT = 132, /* NAMEATT */
381 YYSYMBOL_EMPTYTYPEATT = 133, /* EMPTYTYPEATT */
382 YYSYMBOL_TYPEATT = 134, /* TYPEATT */
383 YYSYMBOL_EMPTYENUMTYPEATT = 135, /* EMPTYENUMTYPEATT */
384 YYSYMBOL_ENUMTYPEATT = 136, /* ENUMTYPEATT */
385 YYSYMBOL_EMPTYSHAPEATT = 137, /* EMPTYSHAPEATT */
386 YYSYMBOL_SHAPEATT = 138, /* SHAPEATT */
387 YYSYMBOL_EMPTYUNITATT = 139, /* EMPTYUNITATT */
388 YYSYMBOL_UNITATT = 140, /* UNITATT */
389 YYSYMBOL_EMPTYVALUEATT = 141, /* EMPTYVALUEATT */
390 YYSYMBOL_VALUEATT = 142, /* VALUEATT */
391 YYSYMBOL_EMPTYVALUETYPEATT = 143, /* EMPTYVALUETYPEATT */
392 YYSYMBOL_VALUETYPEATT = 144, /* VALUETYPEATT */
393 YYSYMBOL_EMPTYCONTYPEATT = 145, /* EMPTYCONTYPEATT */
394 YYSYMBOL_CONTYPEATT = 146, /* CONTYPEATT */
395 YYSYMBOL_EMPTYOBJTYPEATT = 147, /* EMPTYOBJTYPEATT */
396 YYSYMBOL_OBJTYPEATT = 148, /* OBJTYPEATT */
397 YYSYMBOL_EMPTYVARTYPEATT = 149, /* EMPTYVARTYPEATT */
398 YYSYMBOL_VARTYPEATT = 150, /* VARTYPEATT */
399 YYSYMBOL_EMPTYMATRIXCONTYPEATT = 151, /* EMPTYMATRIXCONTYPEATT */
400 YYSYMBOL_MATRIXCONTYPEATT = 152, /* MATRIXCONTYPEATT */
401 YYSYMBOL_EMPTYMATRIXOBJTYPEATT = 153, /* EMPTYMATRIXOBJTYPEATT */
402 YYSYMBOL_MATRIXOBJTYPEATT = 154, /* MATRIXOBJTYPEATT */
403 YYSYMBOL_EMPTYMATRIXVARTYPEATT = 155, /* EMPTYMATRIXVARTYPEATT */
404 YYSYMBOL_MATRIXVARTYPEATT = 156, /* MATRIXVARTYPEATT */
405 YYSYMBOL_EMPTYMATRIXTYPEATT = 157, /* EMPTYMATRIXTYPEATT */
406 YYSYMBOL_MATRIXTYPEATT = 158, /* MATRIXTYPEATT */
407 YYSYMBOL_EMPTYSYMMETRYATT = 159, /* EMPTYSYMMETRYATT */
408 YYSYMBOL_SYMMETRYATT = 160, /* SYMMETRYATT */
409 YYSYMBOL_EMPTYROWMAJORATT = 161, /* EMPTYROWMAJORATT */
410 YYSYMBOL_ROWMAJORATT = 162, /* ROWMAJORATT */
411 YYSYMBOL_EMPTYBASETRANSPOSEATT = 163, /* EMPTYBASETRANSPOSEATT */
412 YYSYMBOL_BASETRANSPOSEATT = 164, /* BASETRANSPOSEATT */
413 YYSYMBOL_NUMBEROFBLOCKSATT = 165, /* NUMBEROFBLOCKSATT */
414 YYSYMBOL_NUMBEROFCOLUMNSATT = 166, /* NUMBEROFCOLUMNSATT */
415 YYSYMBOL_NUMBEROFROWSATT = 167, /* NUMBEROFROWSATT */
416 YYSYMBOL_NUMBEROFMATRICESATT = 168, /* NUMBEROFMATRICESATT */
417 YYSYMBOL_NUMBEROFVALUESATT = 169, /* NUMBEROFVALUESATT */
418 YYSYMBOL_NUMBEROFCONSTRAINTSATT = 170, /* NUMBEROFCONSTRAINTSATT */
419 YYSYMBOL_NUMBEROFCONATT = 171, /* NUMBEROFCONATT */
420 YYSYMBOL_NUMBEROFCONIDXATT = 172, /* NUMBEROFCONIDXATT */
421 YYSYMBOL_NUMBEROFOBJECTIVESATT = 173, /* NUMBEROFOBJECTIVESATT */
422 YYSYMBOL_NUMBEROFOBJATT = 174, /* NUMBEROFOBJATT */
423 YYSYMBOL_NUMBEROFOBJIDXATT = 175, /* NUMBEROFOBJIDXATT */
424 YYSYMBOL_NUMBEROFVARIABLESATT = 176, /* NUMBEROFVARIABLESATT */
425 YYSYMBOL_NUMBEROFVARATT = 177, /* NUMBEROFVARATT */
426 YYSYMBOL_NUMBEROFVARIDXATT = 178, /* NUMBEROFVARIDXATT */
427 YYSYMBOL_NUMBEROFMATRIXCONATT = 179, /* NUMBEROFMATRIXCONATT */
428 YYSYMBOL_NUMBEROFMATRIXOBJATT = 180, /* NUMBEROFMATRIXOBJATT */
429 YYSYMBOL_NUMBEROFMATRIXVARATT = 181, /* NUMBEROFMATRIXVARATT */
430 YYSYMBOL_BASEMATRIXIDXATT = 182, /* BASEMATRIXIDXATT */
431 YYSYMBOL_TARGETMATRIXFIRSTROWATT = 183, /* TARGETMATRIXFIRSTROWATT */
432 YYSYMBOL_TARGETMATRIXFIRSTCOLATT = 184, /* TARGETMATRIXFIRSTCOLATT */
433 YYSYMBOL_BASEMATRIXSTARTROWATT = 185, /* BASEMATRIXSTARTROWATT */
434 YYSYMBOL_BASEMATRIXSTARTCOLATT = 186, /* BASEMATRIXSTARTCOLATT */
435 YYSYMBOL_BASEMATRIXENDROWATT = 187, /* BASEMATRIXENDROWATT */
436 YYSYMBOL_BASEMATRIXENDCOLATT = 188, /* BASEMATRIXENDCOLATT */
437 YYSYMBOL_SCALARMULTIPLIERATT = 189, /* SCALARMULTIPLIERATT */
438 YYSYMBOL_BLOCKROWIDXATT = 190, /* BLOCKROWIDXATT */
439 YYSYMBOL_BLOCKCOLIDXATT = 191, /* BLOCKCOLIDXATT */
440 YYSYMBOL_MATRIXVARIDXATT = 192, /* MATRIXVARIDXATT */
441 YYSYMBOL_MATRIXOBJIDXATT = 193, /* MATRIXOBJIDXATT */
442 YYSYMBOL_MATRIXCONIDXATT = 194, /* MATRIXCONIDXATT */
443 YYSYMBOL_IDXATT = 195, /* IDXATT */
444 YYSYMBOL_INCRATT = 196, /* INCRATT */
445 YYSYMBOL_MULTATT = 197, /* MULTATT */
446 YYSYMBOL_SIZEOFATT = 198, /* SIZEOFATT */
447 YYSYMBOL_COEFATT = 199, /* COEFATT */
448 YYSYMBOL_CONSTANTATT = 200, /* CONSTANTATT */
449 YYSYMBOL_MATRICESSTART = 201, /* MATRICESSTART */
450 YYSYMBOL_MATRICESEND = 202, /* MATRICESEND */
451 YYSYMBOL_MATRIXSTART = 203, /* MATRIXSTART */
452 YYSYMBOL_MATRIXEND = 204, /* MATRIXEND */
453 YYSYMBOL_BASEMATRIXEND = 205, /* BASEMATRIXEND */
454 YYSYMBOL_BASEMATRIXSTART = 206, /* BASEMATRIXSTART */
455 YYSYMBOL_BLOCKSSTART = 207, /* BLOCKSSTART */
456 YYSYMBOL_BLOCKSEND = 208, /* BLOCKSEND */
457 YYSYMBOL_BLOCKSTART = 209, /* BLOCKSTART */
458 YYSYMBOL_BLOCKEND = 210, /* BLOCKEND */
459 YYSYMBOL_COLOFFSETSTART = 211, /* COLOFFSETSTART */
460 YYSYMBOL_COLOFFSETEND = 212, /* COLOFFSETEND */
461 YYSYMBOL_ROWOFFSETSTART = 213, /* ROWOFFSETSTART */
462 YYSYMBOL_ROWOFFSETEND = 214, /* ROWOFFSETEND */
463 YYSYMBOL_ELEMENTSSTART = 215, /* ELEMENTSSTART */
464 YYSYMBOL_ELEMENTSEND = 216, /* ELEMENTSEND */
465 YYSYMBOL_CONSTANTELEMENTSSTART = 217, /* CONSTANTELEMENTSSTART */
466 YYSYMBOL_CONSTANTELEMENTSEND = 218, /* CONSTANTELEMENTSEND */
467 YYSYMBOL_VARREFERENCEELEMENTSSTART = 219, /* VARREFERENCEELEMENTSSTART */
468 YYSYMBOL_VARREFERENCEELEMENTSEND = 220, /* VARREFERENCEELEMENTSEND */
469 YYSYMBOL_LINEARELEMENTSSTART = 221, /* LINEARELEMENTSSTART */
470 YYSYMBOL_LINEARELEMENTSEND = 222, /* LINEARELEMENTSEND */
471 YYSYMBOL_GENERALELEMENTSSTART = 223, /* GENERALELEMENTSSTART */
472 YYSYMBOL_GENERALELEMENTSEND = 224, /* GENERALELEMENTSEND */
473 YYSYMBOL_CONREFERENCEELEMENTSSTART = 225, /* CONREFERENCEELEMENTSSTART */
474 YYSYMBOL_CONREFERENCEELEMENTSEND = 226, /* CONREFERENCEELEMENTSEND */
475 YYSYMBOL_OBJREFERENCEELEMENTSSTART = 227, /* OBJREFERENCEELEMENTSSTART */
476 YYSYMBOL_OBJREFERENCEELEMENTSEND = 228, /* OBJREFERENCEELEMENTSEND */
477 YYSYMBOL_STRINGVALUEDELEMENTSSTART = 229, /* STRINGVALUEDELEMENTSSTART */
478 YYSYMBOL_STRINGVALUEDELEMENTSEND = 230, /* STRINGVALUEDELEMENTSEND */
479 YYSYMBOL_STARTVECTORSTART = 231, /* STARTVECTORSTART */
480 YYSYMBOL_STARTVECTOREND = 232, /* STARTVECTOREND */
481 YYSYMBOL_INDEXSTART = 233, /* INDEXSTART */
482 YYSYMBOL_INDEXEND = 234, /* INDEXEND */
483 YYSYMBOL_VALUESTART = 235, /* VALUESTART */
484 YYSYMBOL_VALUEEND = 236, /* VALUEEND */
485 YYSYMBOL_VARIDXSTART = 237, /* VARIDXSTART */
486 YYSYMBOL_VARIDXEND = 238, /* VARIDXEND */
487 YYSYMBOL_TRANSFORMATIONSTART = 239, /* TRANSFORMATIONSTART */
488 YYSYMBOL_TRANSFORMATIONEND = 240, /* TRANSFORMATIONEND */
489 YYSYMBOL_MATRIXPROGRAMMINGSTART = 241, /* MATRIXPROGRAMMINGSTART */
490 YYSYMBOL_MATRIXPROGRAMMINGEND = 242, /* MATRIXPROGRAMMINGEND */
491 YYSYMBOL_MATRIXVARIABLESSTART = 243, /* MATRIXVARIABLESSTART */
492 YYSYMBOL_MATRIXVARIABLESEND = 244, /* MATRIXVARIABLESEND */
493 YYSYMBOL_MATRIXVARSTART = 245, /* MATRIXVARSTART */
494 YYSYMBOL_MATRIXVAREND = 246, /* MATRIXVAREND */
495 YYSYMBOL_MATRIXOBJECTIVESSTART = 247, /* MATRIXOBJECTIVESSTART */
496 YYSYMBOL_MATRIXOBJECTIVESEND = 248, /* MATRIXOBJECTIVESEND */
497 YYSYMBOL_MATRIXOBJSTART = 249, /* MATRIXOBJSTART */
498 YYSYMBOL_MATRIXOBJEND = 250, /* MATRIXOBJEND */
499 YYSYMBOL_MATRIXCONSTRAINTSSTART = 251, /* MATRIXCONSTRAINTSSTART */
500 YYSYMBOL_MATRIXCONSTRAINTSEND = 252, /* MATRIXCONSTRAINTSEND */
501 YYSYMBOL_MATRIXCONSTART = 253, /* MATRIXCONSTART */
502 YYSYMBOL_MATRIXCONEND = 254, /* MATRIXCONEND */
503 YYSYMBOL_CONSTART = 255, /* CONSTART */
504 YYSYMBOL_CONEND = 256, /* CONEND */
505 YYSYMBOL_CONSTRAINTSSTART = 257, /* CONSTRAINTSSTART */
506 YYSYMBOL_CONSTRAINTSEND = 258, /* CONSTRAINTSEND */
507 YYSYMBOL_OBJSTART = 259, /* OBJSTART */
508 YYSYMBOL_OBJEND = 260, /* OBJEND */
509 YYSYMBOL_OBJECTIVESSTART = 261, /* OBJECTIVESSTART */
510 YYSYMBOL_OBJECTIVESEND = 262, /* OBJECTIVESEND */
511 YYSYMBOL_VARSTART = 263, /* VARSTART */
512 YYSYMBOL_VAREND = 264, /* VAREND */
513 YYSYMBOL_VARIABLESSTART = 265, /* VARIABLESSTART */
514 YYSYMBOL_VARIABLESEND = 266, /* VARIABLESEND */
515 YYSYMBOL_GENERALSTART = 267, /* GENERALSTART */
516 YYSYMBOL_GENERALEND = 268, /* GENERALEND */
517 YYSYMBOL_SYSTEMSTART = 269, /* SYSTEMSTART */
518 YYSYMBOL_SYSTEMEND = 270, /* SYSTEMEND */
519 YYSYMBOL_SERVICESTART = 271, /* SERVICESTART */
520 YYSYMBOL_SERVICEEND = 272, /* SERVICEEND */
521 YYSYMBOL_JOBSTART = 273, /* JOBSTART */
522 YYSYMBOL_JOBEND = 274, /* JOBEND */
523 YYSYMBOL_OPTIMIZATIONSTART = 275, /* OPTIMIZATIONSTART */
524 YYSYMBOL_OPTIMIZATIONEND = 276, /* OPTIMIZATIONEND */
525 YYSYMBOL_ATEQUALITYSTART = 277, /* ATEQUALITYSTART */
526 YYSYMBOL_ATEQUALITYEND = 278, /* ATEQUALITYEND */
527 YYSYMBOL_ATLOWERSTART = 279, /* ATLOWERSTART */
528 YYSYMBOL_ATLOWEREND = 280, /* ATLOWEREND */
529 YYSYMBOL_ATUPPERSTART = 281, /* ATUPPERSTART */
530 YYSYMBOL_ATUPPEREND = 282, /* ATUPPEREND */
531 YYSYMBOL_BASICSTART = 283, /* BASICSTART */
532 YYSYMBOL_BASICEND = 284, /* BASICEND */
533 YYSYMBOL_ISFREESTART = 285, /* ISFREESTART */
534 YYSYMBOL_ISFREEEND = 286, /* ISFREEEND */
535 YYSYMBOL_SUPERBASICSTART = 287, /* SUPERBASICSTART */
536 YYSYMBOL_SUPERBASICEND = 288, /* SUPERBASICEND */
537 YYSYMBOL_UNKNOWNSTART = 289, /* UNKNOWNSTART */
538 YYSYMBOL_UNKNOWNEND = 290, /* UNKNOWNEND */
539 YYSYMBOL_SERVICEURISTART = 291, /* SERVICEURISTART */
540 YYSYMBOL_SERVICEURIEND = 292, /* SERVICEURIEND */
541 YYSYMBOL_SERVICENAMESTART = 293, /* SERVICENAMESTART */
542 YYSYMBOL_SERVICENAMEEND = 294, /* SERVICENAMEEND */
543 YYSYMBOL_INSTANCENAMESTART = 295, /* INSTANCENAMESTART */
544 YYSYMBOL_INSTANCENAMEEND = 296, /* INSTANCENAMEEND */
545 YYSYMBOL_JOBIDSTART = 297, /* JOBIDSTART */
546 YYSYMBOL_JOBIDEND = 298, /* JOBIDEND */
547 YYSYMBOL_OTHERSTART = 299, /* OTHERSTART */
548 YYSYMBOL_OTHEREND = 300, /* OTHEREND */
549 YYSYMBOL_DUMMY = 301, /* DUMMY */
550 YYSYMBOL_NONLINEAREXPRESSIONSSTART = 302, /* NONLINEAREXPRESSIONSSTART */
551 YYSYMBOL_NONLINEAREXPRESSIONSEND = 303, /* NONLINEAREXPRESSIONSEND */
552 YYSYMBOL_NUMBEROFNONLINEAREXPRESSIONS = 304, /* NUMBEROFNONLINEAREXPRESSIONS */
553 YYSYMBOL_NLSTART = 305, /* NLSTART */
554 YYSYMBOL_NLEND = 306, /* NLEND */
555 YYSYMBOL_MATRIXEXPRESSIONSSTART = 307, /* MATRIXEXPRESSIONSSTART */
556 YYSYMBOL_MATRIXEXPRESSIONSEND = 308, /* MATRIXEXPRESSIONSEND */
557 YYSYMBOL_NUMBEROFEXPR = 309, /* NUMBEROFEXPR */
558 YYSYMBOL_EXPRSTART = 310, /* EXPRSTART */
559 YYSYMBOL_EXPREND = 311, /* EXPREND */
560 YYSYMBOL_NUMBEROFMATRIXTERMSATT = 312, /* NUMBEROFMATRIXTERMSATT */
561 YYSYMBOL_MATRIXTERMSTART = 313, /* MATRIXTERMSTART */
562 YYSYMBOL_MATRIXTERMEND = 314, /* MATRIXTERMEND */
563 YYSYMBOL_POWERSTART = 315, /* POWERSTART */
564 YYSYMBOL_POWEREND = 316, /* POWEREND */
565 YYSYMBOL_PLUSSTART = 317, /* PLUSSTART */
566 YYSYMBOL_PLUSEND = 318, /* PLUSEND */
567 YYSYMBOL_MINUSSTART = 319, /* MINUSSTART */
568 YYSYMBOL_MINUSEND = 320, /* MINUSEND */
569 YYSYMBOL_DIVIDESTART = 321, /* DIVIDESTART */
570 YYSYMBOL_DIVIDEEND = 322, /* DIVIDEEND */
571 YYSYMBOL_LNSTART = 323, /* LNSTART */
572 YYSYMBOL_LNEND = 324, /* LNEND */
573 YYSYMBOL_SQRTSTART = 325, /* SQRTSTART */
574 YYSYMBOL_SQRTEND = 326, /* SQRTEND */
575 YYSYMBOL_SUMSTART = 327, /* SUMSTART */
576 YYSYMBOL_SUMEND = 328, /* SUMEND */
577 YYSYMBOL_PRODUCTSTART = 329, /* PRODUCTSTART */
578 YYSYMBOL_PRODUCTEND = 330, /* PRODUCTEND */
579 YYSYMBOL_EXPSTART = 331, /* EXPSTART */
580 YYSYMBOL_EXPEND = 332, /* EXPEND */
581 YYSYMBOL_NEGATESTART = 333, /* NEGATESTART */
582 YYSYMBOL_NEGATEEND = 334, /* NEGATEEND */
583 YYSYMBOL_IFSTART = 335, /* IFSTART */
584 YYSYMBOL_IFEND = 336, /* IFEND */
585 YYSYMBOL_SQUARESTART = 337, /* SQUARESTART */
586 YYSYMBOL_SQUAREEND = 338, /* SQUAREEND */
587 YYSYMBOL_COSSTART = 339, /* COSSTART */
588 YYSYMBOL_COSEND = 340, /* COSEND */
589 YYSYMBOL_SINSTART = 341, /* SINSTART */
590 YYSYMBOL_SINEND = 342, /* SINEND */
591 YYSYMBOL_VARIABLESTART = 343, /* VARIABLESTART */
592 YYSYMBOL_VARIABLEEND = 344, /* VARIABLEEND */
593 YYSYMBOL_ABSSTART = 345, /* ABSSTART */
594 YYSYMBOL_ABSEND = 346, /* ABSEND */
595 YYSYMBOL_ERFSTART = 347, /* ERFSTART */
596 YYSYMBOL_ERFEND = 348, /* ERFEND */
597 YYSYMBOL_MAXSTART = 349, /* MAXSTART */
598 YYSYMBOL_MAXEND = 350, /* MAXEND */
599 YYSYMBOL_ALLDIFFSTART = 351, /* ALLDIFFSTART */
600 YYSYMBOL_ALLDIFFEND = 352, /* ALLDIFFEND */
601 YYSYMBOL_MINSTART = 353, /* MINSTART */
602 YYSYMBOL_MINEND = 354, /* MINEND */
603 YYSYMBOL_ESTART = 355, /* ESTART */
604 YYSYMBOL_EEND = 356, /* EEND */
605 YYSYMBOL_PISTART = 357, /* PISTART */
606 YYSYMBOL_PIEND = 358, /* PIEND */
607 YYSYMBOL_TIMESSTART = 359, /* TIMESSTART */
608 YYSYMBOL_TIMESEND = 360, /* TIMESEND */
609 YYSYMBOL_NUMBERSTART = 361, /* NUMBERSTART */
610 YYSYMBOL_NUMBEREND = 362, /* NUMBEREND */
611 YYSYMBOL_MATRIXDETERMINANTSTART = 363, /* MATRIXDETERMINANTSTART */
612 YYSYMBOL_MATRIXDETERMINANTEND = 364, /* MATRIXDETERMINANTEND */
613 YYSYMBOL_MATRIXTRACESTART = 365, /* MATRIXTRACESTART */
614 YYSYMBOL_MATRIXTRACEEND = 366, /* MATRIXTRACEEND */
615 YYSYMBOL_MATRIXTOSCALARSTART = 367, /* MATRIXTOSCALARSTART */
616 YYSYMBOL_MATRIXTOSCALAREND = 368, /* MATRIXTOSCALAREND */
617 YYSYMBOL_MATRIXDIAGONALSTART = 369, /* MATRIXDIAGONALSTART */
618 YYSYMBOL_MATRIXDIAGONALEND = 370, /* MATRIXDIAGONALEND */
619 YYSYMBOL_MATRIXDOTTIMESSTART = 371, /* MATRIXDOTTIMESSTART */
620 YYSYMBOL_MATRIXDOTTIMESEND = 372, /* MATRIXDOTTIMESEND */
621 YYSYMBOL_MATRIXLOWERTRIANGLESTART = 373, /* MATRIXLOWERTRIANGLESTART */
622 YYSYMBOL_MATRIXLOWERTRIANGLEEND = 374, /* MATRIXLOWERTRIANGLEEND */
623 YYSYMBOL_MATRIXUPPERTRIANGLESTART = 375, /* MATRIXUPPERTRIANGLESTART */
624 YYSYMBOL_MATRIXUPPERTRIANGLEEND = 376, /* MATRIXUPPERTRIANGLEEND */
625 YYSYMBOL_MATRIXMERGESTART = 377, /* MATRIXMERGESTART */
626 YYSYMBOL_MATRIXMERGEEND = 378, /* MATRIXMERGEEND */
627 YYSYMBOL_MATRIXMINUSSTART = 379, /* MATRIXMINUSSTART */
628 YYSYMBOL_MATRIXMINUSEND = 380, /* MATRIXMINUSEND */
629 YYSYMBOL_MATRIXNEGATESTART = 381, /* MATRIXNEGATESTART */
630 YYSYMBOL_MATRIXNEGATEEND = 382, /* MATRIXNEGATEEND */
631 YYSYMBOL_MATRIXPLUSSTART = 383, /* MATRIXPLUSSTART */
632 YYSYMBOL_MATRIXPLUSEND = 384, /* MATRIXPLUSEND */
633 YYSYMBOL_MATRIXTIMESSTART = 385, /* MATRIXTIMESSTART */
634 YYSYMBOL_MATRIXTIMESEND = 386, /* MATRIXTIMESEND */
635 YYSYMBOL_MATRIXPRODUCTSTART = 387, /* MATRIXPRODUCTSTART */
636 YYSYMBOL_MATRIXPRODUCTEND = 388, /* MATRIXPRODUCTEND */
637 YYSYMBOL_MATRIXSCALARTIMESSTART = 389, /* MATRIXSCALARTIMESSTART */
638 YYSYMBOL_MATRIXSCALARTIMESEND = 390, /* MATRIXSCALARTIMESEND */
639 YYSYMBOL_MATRIXSUBMATRIXATSTART = 391, /* MATRIXSUBMATRIXATSTART */
640 YYSYMBOL_MATRIXSUBMATRIXATEND = 392, /* MATRIXSUBMATRIXATEND */
641 YYSYMBOL_MATRIXTRANSPOSESTART = 393, /* MATRIXTRANSPOSESTART */
642 YYSYMBOL_MATRIXTRANSPOSEEND = 394, /* MATRIXTRANSPOSEEND */
643 YYSYMBOL_MATRIXREFERENCESTART = 395, /* MATRIXREFERENCESTART */
644 YYSYMBOL_MATRIXREFERENCEEND = 396, /* MATRIXREFERENCEEND */
645 YYSYMBOL_IDENTITYMATRIXSTART = 397, /* IDENTITYMATRIXSTART */
646 YYSYMBOL_IDENTITYMATRIXEND = 398, /* IDENTITYMATRIXEND */
647 YYSYMBOL_MATRIXINVERSESTART = 399, /* MATRIXINVERSESTART */
648 YYSYMBOL_MATRIXINVERSEEND = 400, /* MATRIXINVERSEEND */
649 YYSYMBOL_EMPTYINCLUDEDIAGONALATT = 401, /* EMPTYINCLUDEDIAGONALATT */
650 YYSYMBOL_INCLUDEDIAGONALATT = 402, /* INCLUDEDIAGONALATT */
651 YYSYMBOL_EMPTYIDATT = 403, /* EMPTYIDATT */
652 YYSYMBOL_IDATT = 404, /* IDATT */
653 YYSYMBOL_405_ = 405, /* ' ' */
654 YYSYMBOL_406_t_ = 406, /* '\t' */
655 YYSYMBOL_407_r_ = 407, /* '\r' */
656 YYSYMBOL_408_n_ = 408, /* '\n' */
657 YYSYMBOL_YYACCEPT = 409, /* $accept */
658 YYSYMBOL_osildoc = 410, /* osildoc */
659 YYSYMBOL_theInstanceEnd = 411, /* theInstanceEnd */
660 YYSYMBOL_osilEnd = 412, /* osilEnd */
661 YYSYMBOL_osilEnding = 413, /* osilEnding */
662 YYSYMBOL_quadraticCoefficients = 414, /* quadraticCoefficients */
663 YYSYMBOL_quadraticCoefficientsStart = 415, /* quadraticCoefficientsStart */
664 YYSYMBOL_osilQuadnumberATT = 416, /* osilQuadnumberATT */
665 YYSYMBOL_qTermlist = 417, /* qTermlist */
666 YYSYMBOL_qterm = 418, /* qterm */
667 YYSYMBOL_qtermStart = 419, /* qtermStart */
668 YYSYMBOL_qtermend = 420, /* qtermend */
669 YYSYMBOL_anotherqTermATT = 421, /* anotherqTermATT */
670 YYSYMBOL_qtermatt = 422, /* qtermatt */
671 YYSYMBOL_osilQtermidxOneATT = 423, /* osilQtermidxOneATT */
672 YYSYMBOL_osilQtermidxTwoATT = 424, /* osilQtermidxTwoATT */
673 YYSYMBOL_osilQtermcoefATT = 425, /* osilQtermcoefATT */
674 YYSYMBOL_osilQtermidxATT = 426, /* osilQtermidxATT */
675 YYSYMBOL_matrices = 427, /* matrices */
676 YYSYMBOL_matricesStart = 428, /* matricesStart */
677 YYSYMBOL_matricesAttributes = 429, /* matricesAttributes */
678 YYSYMBOL_matricesContent = 430, /* matricesContent */
679 YYSYMBOL_matricesEmpty = 431, /* matricesEmpty */
680 YYSYMBOL_matricesLaden = 432, /* matricesLaden */
681 YYSYMBOL_matrixList = 433, /* matrixList */
682 YYSYMBOL_cones = 434, /* cones */
683 YYSYMBOL_conesStart = 435, /* conesStart */
684 YYSYMBOL_conesAttributes = 436, /* conesAttributes */
685 YYSYMBOL_conesContent = 437, /* conesContent */
686 YYSYMBOL_conesEmpty = 438, /* conesEmpty */
687 YYSYMBOL_conesLaden = 439, /* conesLaden */
688 YYSYMBOL_coneList = 440, /* coneList */
689 YYSYMBOL_cone = 441, /* cone */
690 YYSYMBOL_nonnegativeCone = 442, /* nonnegativeCone */
691 YYSYMBOL_nonnegativeConeStart = 443, /* nonnegativeConeStart */
692 YYSYMBOL_nonnegativeConeAttributes = 444, /* nonnegativeConeAttributes */
693 YYSYMBOL_nonnegativeConeAttList = 445, /* nonnegativeConeAttList */
694 YYSYMBOL_nonnegativeConeAtt = 446, /* nonnegativeConeAtt */
695 YYSYMBOL_nonnegativeConeEnd = 447, /* nonnegativeConeEnd */
696 YYSYMBOL_nonpositiveCone = 448, /* nonpositiveCone */
697 YYSYMBOL_nonpositiveConeStart = 449, /* nonpositiveConeStart */
698 YYSYMBOL_nonpositiveConeAttributes = 450, /* nonpositiveConeAttributes */
699 YYSYMBOL_nonpositiveConeAttList = 451, /* nonpositiveConeAttList */
700 YYSYMBOL_nonpositiveConeAtt = 452, /* nonpositiveConeAtt */
701 YYSYMBOL_nonpositiveConeEnd = 453, /* nonpositiveConeEnd */
702 YYSYMBOL_generalOrthantCone = 454, /* generalOrthantCone */
703 YYSYMBOL_generalOrthantConeStart = 455, /* generalOrthantConeStart */
704 YYSYMBOL_generalOrthantConeAttributes = 456, /* generalOrthantConeAttributes */
705 YYSYMBOL_generalOrthantConeAttList = 457, /* generalOrthantConeAttList */
706 YYSYMBOL_generalOrthantConeAtt = 458, /* generalOrthantConeAtt */
707 YYSYMBOL_generalOrthantConeContent = 459, /* generalOrthantConeContent */
708 YYSYMBOL_generalOrthantConeDirectionList = 460, /* generalOrthantConeDirectionList */
709 YYSYMBOL_generalOrthantConeDirections = 461, /* generalOrthantConeDirections */
710 YYSYMBOL_generalOrthantConeDirection = 462, /* generalOrthantConeDirection */
711 YYSYMBOL_generalOrthantConeDirectionStart = 463, /* generalOrthantConeDirectionStart */
712 YYSYMBOL_generalOrthantConeDirectionAttributes = 464, /* generalOrthantConeDirectionAttributes */
713 YYSYMBOL_generalOrthantConeDirectionAttributeList = 465, /* generalOrthantConeDirectionAttributeList */
714 YYSYMBOL_generalOrthantConeDirectionAtt = 466, /* generalOrthantConeDirectionAtt */
715 YYSYMBOL_generalOrthantConeDirectionEnd = 467, /* generalOrthantConeDirectionEnd */
716 YYSYMBOL_generalOrthantConeEnd = 468, /* generalOrthantConeEnd */
717 YYSYMBOL_polyhedralCone = 469, /* polyhedralCone */
718 YYSYMBOL_polyhedralConeStart = 470, /* polyhedralConeStart */
719 YYSYMBOL_polyhedralConeAttributes = 471, /* polyhedralConeAttributes */
720 YYSYMBOL_polyhedralConeAttList = 472, /* polyhedralConeAttList */
721 YYSYMBOL_polyhedralConeAtt = 473, /* polyhedralConeAtt */
722 YYSYMBOL_referenceMatrixATT = 474, /* referenceMatrixATT */
723 YYSYMBOL_polyhedralConeEnd = 475, /* polyhedralConeEnd */
724 YYSYMBOL_quadraticCone = 476, /* quadraticCone */
725 YYSYMBOL_quadraticConeStart = 477, /* quadraticConeStart */
726 YYSYMBOL_quadraticConeAttributes = 478, /* quadraticConeAttributes */
727 YYSYMBOL_quadraticConeAttList = 479, /* quadraticConeAttList */
728 YYSYMBOL_quadraticConeAtt = 480, /* quadraticConeAtt */
729 YYSYMBOL_quadraticConeEnd = 481, /* quadraticConeEnd */
730 YYSYMBOL_rotatedQuadraticCone = 482, /* rotatedQuadraticCone */
731 YYSYMBOL_rotatedQuadraticConeStart = 483, /* rotatedQuadraticConeStart */
732 YYSYMBOL_rotatedQuadraticConeAttributes = 484, /* rotatedQuadraticConeAttributes */
733 YYSYMBOL_rotatedQuadraticConeAttList = 485, /* rotatedQuadraticConeAttList */
734 YYSYMBOL_rotatedQuadraticConeAtt = 486, /* rotatedQuadraticConeAtt */
735 YYSYMBOL_rotatedQuadraticConeEnd = 487, /* rotatedQuadraticConeEnd */
736 YYSYMBOL_semidefiniteCone = 488, /* semidefiniteCone */
737 YYSYMBOL_semidefiniteConeStart = 489, /* semidefiniteConeStart */
738 YYSYMBOL_semidefiniteConeAttributes = 490, /* semidefiniteConeAttributes */
739 YYSYMBOL_semidefiniteConeAttList = 491, /* semidefiniteConeAttList */
740 YYSYMBOL_semidefiniteConeAtt = 492, /* semidefiniteConeAtt */
741 YYSYMBOL_semidefiniteConeEnd = 493, /* semidefiniteConeEnd */
742 YYSYMBOL_productCone = 494, /* productCone */
743 YYSYMBOL_productConeStart = 495, /* productConeStart */
744 YYSYMBOL_productConeAttributes = 496, /* productConeAttributes */
745 YYSYMBOL_productConeAttList = 497, /* productConeAttList */
746 YYSYMBOL_productConeAtt = 498, /* productConeAtt */
747 YYSYMBOL_productConeContent = 499, /* productConeContent */
748 YYSYMBOL_productConeFactors = 500, /* productConeFactors */
749 YYSYMBOL_productConeFactorsStart = 501, /* productConeFactorsStart */
750 YYSYMBOL_productConeFactorsAttributes = 502, /* productConeFactorsAttributes */
751 YYSYMBOL_productConeFactorsContent = 503, /* productConeFactorsContent */
752 YYSYMBOL_productConeFactorsEmpty = 504, /* productConeFactorsEmpty */
753 YYSYMBOL_productConeFactorsLaden = 505, /* productConeFactorsLaden */
754 YYSYMBOL_productConeFactorList = 506, /* productConeFactorList */
755 YYSYMBOL_productConeFactorsEnd = 507, /* productConeFactorsEnd */
756 YYSYMBOL_productConeEnd = 508, /* productConeEnd */
757 YYSYMBOL_intersectionCone = 509, /* intersectionCone */
758 YYSYMBOL_intersectionConeStart = 510, /* intersectionConeStart */
759 YYSYMBOL_intersectionConeAttributes = 511, /* intersectionConeAttributes */
760 YYSYMBOL_intersectionConeAttList = 512, /* intersectionConeAttList */
761 YYSYMBOL_intersectionConeAtt = 513, /* intersectionConeAtt */
762 YYSYMBOL_intersectionConeContent = 514, /* intersectionConeContent */
763 YYSYMBOL_intersectionConeComponents = 515, /* intersectionConeComponents */
764 YYSYMBOL_intersectionConeComponentsStart = 516, /* intersectionConeComponentsStart */
765 YYSYMBOL_intersectionConeComponentsAttributes = 517, /* intersectionConeComponentsAttributes */
766 YYSYMBOL_intersectionConeComponentsContent = 518, /* intersectionConeComponentsContent */
767 YYSYMBOL_intersectionConeComponentsEmpty = 519, /* intersectionConeComponentsEmpty */
768 YYSYMBOL_intersectionConeComponentsLaden = 520, /* intersectionConeComponentsLaden */
769 YYSYMBOL_intersectionConeComponentList = 521, /* intersectionConeComponentList */
770 YYSYMBOL_intersectionConeComponentsEnd = 522, /* intersectionConeComponentsEnd */
771 YYSYMBOL_intersectionConeEnd = 523, /* intersectionConeEnd */
772 YYSYMBOL_matrixProgramming = 524, /* matrixProgramming */
773 YYSYMBOL_matrixProgrammingStart = 525, /* matrixProgrammingStart */
774 YYSYMBOL_matrixProgrammingContent = 526, /* matrixProgrammingContent */
775 YYSYMBOL_matrixProgrammingEmpty = 527, /* matrixProgrammingEmpty */
776 YYSYMBOL_matrixProgrammingLaden = 528, /* matrixProgrammingLaden */
777 YYSYMBOL_matrixVariables = 529, /* matrixVariables */
778 YYSYMBOL_matrixVariablesStart = 530, /* matrixVariablesStart */
779 YYSYMBOL_matrixVariablesAttributes = 531, /* matrixVariablesAttributes */
780 YYSYMBOL_matrixVariablesContent = 532, /* matrixVariablesContent */
781 YYSYMBOL_matrixVariablesEmpty = 533, /* matrixVariablesEmpty */
782 YYSYMBOL_matrixVariablesLaden = 534, /* matrixVariablesLaden */
783 YYSYMBOL_matrixVariablesEnd = 535, /* matrixVariablesEnd */
784 YYSYMBOL_matrixVarList = 536, /* matrixVarList */
785 YYSYMBOL_matrixVar = 537, /* matrixVar */
786 YYSYMBOL_matrixVarStart = 538, /* matrixVarStart */
787 YYSYMBOL_matrixVarAttributes = 539, /* matrixVarAttributes */
788 YYSYMBOL_matrixVarAttList = 540, /* matrixVarAttList */
789 YYSYMBOL_matrixVarAtt = 541, /* matrixVarAtt */
790 YYSYMBOL_matrixVarEnd = 542, /* matrixVarEnd */
791 YYSYMBOL_matrixObjectives = 543, /* matrixObjectives */
792 YYSYMBOL_matrixObjectivesStart = 544, /* matrixObjectivesStart */
793 YYSYMBOL_matrixObjectivesAttributes = 545, /* matrixObjectivesAttributes */
794 YYSYMBOL_matrixObjectivesContent = 546, /* matrixObjectivesContent */
795 YYSYMBOL_matrixObjectivesEmpty = 547, /* matrixObjectivesEmpty */
796 YYSYMBOL_matrixObjectivesLaden = 548, /* matrixObjectivesLaden */
797 YYSYMBOL_matrixObjectivesEnd = 549, /* matrixObjectivesEnd */
798 YYSYMBOL_matrixObjList = 550, /* matrixObjList */
799 YYSYMBOL_matrixObj = 551, /* matrixObj */
800 YYSYMBOL_matrixObjStart = 552, /* matrixObjStart */
801 YYSYMBOL_matrixObjAttributes = 553, /* matrixObjAttributes */
802 YYSYMBOL_matrixObjAttList = 554, /* matrixObjAttList */
803 YYSYMBOL_matrixObjAtt = 555, /* matrixObjAtt */
804 YYSYMBOL_matrixObjEnd = 556, /* matrixObjEnd */
805 YYSYMBOL_matrixConstraints = 557, /* matrixConstraints */
806 YYSYMBOL_matrixConstraintsStart = 558, /* matrixConstraintsStart */
807 YYSYMBOL_matrixConstraintsAttributes = 559, /* matrixConstraintsAttributes */
808 YYSYMBOL_matrixConstraintsContent = 560, /* matrixConstraintsContent */
809 YYSYMBOL_matrixConstraintsEmpty = 561, /* matrixConstraintsEmpty */
810 YYSYMBOL_matrixConstraintsLaden = 562, /* matrixConstraintsLaden */
811 YYSYMBOL_matrixConstraintsEnd = 563, /* matrixConstraintsEnd */
812 YYSYMBOL_matrixConList = 564, /* matrixConList */
813 YYSYMBOL_matrixCon = 565, /* matrixCon */
814 YYSYMBOL_matrixConStart = 566, /* matrixConStart */
815 YYSYMBOL_matrixConAttributes = 567, /* matrixConAttributes */
816 YYSYMBOL_matrixConAttList = 568, /* matrixConAttList */
817 YYSYMBOL_matrixConAtt = 569, /* matrixConAtt */
818 YYSYMBOL_matrixConEnd = 570, /* matrixConEnd */
819 YYSYMBOL_timeDomain = 571, /* timeDomain */
820 YYSYMBOL_timeDomainStart = 572, /* timeDomainStart */
821 YYSYMBOL_timeDomainContent = 573, /* timeDomainContent */
822 YYSYMBOL_timeDomainEmpty = 574, /* timeDomainEmpty */
823 YYSYMBOL_timeDomainLaden = 575, /* timeDomainLaden */
824 YYSYMBOL_stages = 576, /* stages */
825 YYSYMBOL_stagesstart = 577, /* stagesstart */
826 YYSYMBOL_osilNumberofstagesATT = 578, /* osilNumberofstagesATT */
827 YYSYMBOL_stagelist = 579, /* stagelist */
828 YYSYMBOL_stage = 580, /* stage */
829 YYSYMBOL_581_1 = 581, /* $@1 */
830 YYSYMBOL_osilStagenameATT = 582, /* osilStagenameATT */
831 YYSYMBOL_stageend = 583, /* stageend */
832 YYSYMBOL_stagecontent = 584, /* stagecontent */
833 YYSYMBOL_stagevariables = 585, /* stagevariables */
834 YYSYMBOL_anotherstagevarATT = 586, /* anotherstagevarATT */
835 YYSYMBOL_stagevaratt = 587, /* stagevaratt */
836 YYSYMBOL_osilNumberofstagevariablesATT = 588, /* osilNumberofstagevariablesATT */
837 YYSYMBOL_osilStagevarstartidxATT = 589, /* osilStagevarstartidxATT */
838 YYSYMBOL_restofstagevariables = 590, /* restofstagevariables */
839 YYSYMBOL_emptyvarlist = 591, /* emptyvarlist */
840 YYSYMBOL_stagevarlist = 592, /* stagevarlist */
841 YYSYMBOL_stagevar = 593, /* stagevar */
842 YYSYMBOL_594_2 = 594, /* $@2 */
843 YYSYMBOL_osilStagevaridxATT = 595, /* osilStagevaridxATT */
844 YYSYMBOL_stagevarend = 596, /* stagevarend */
845 YYSYMBOL_stageconstraints = 597, /* stageconstraints */
846 YYSYMBOL_anotherstageconATT = 598, /* anotherstageconATT */
847 YYSYMBOL_stageconatt = 599, /* stageconatt */
848 YYSYMBOL_osilNumberofstageconstraintsATT = 600, /* osilNumberofstageconstraintsATT */
849 YYSYMBOL_osilStageconstartidxATT = 601, /* osilStageconstartidxATT */
850 YYSYMBOL_restofstageconstraints = 602, /* restofstageconstraints */
851 YYSYMBOL_emptyconlist = 603, /* emptyconlist */
852 YYSYMBOL_stageconlist = 604, /* stageconlist */
853 YYSYMBOL_stagecon = 605, /* stagecon */
854 YYSYMBOL_606_3 = 606, /* $@3 */
855 YYSYMBOL_osilStageconidxATT = 607, /* osilStageconidxATT */
856 YYSYMBOL_stageconend = 608, /* stageconend */
857 YYSYMBOL_stageobjectives = 609, /* stageobjectives */
858 YYSYMBOL_anotherstageobjATT = 610, /* anotherstageobjATT */
859 YYSYMBOL_stageobjatt = 611, /* stageobjatt */
860 YYSYMBOL_osilNumberofstageobjectivesATT = 612, /* osilNumberofstageobjectivesATT */
861 YYSYMBOL_restofstageobjectives = 613, /* restofstageobjectives */
862 YYSYMBOL_emptyobjlist = 614, /* emptyobjlist */
863 YYSYMBOL_stageobjlist = 615, /* stageobjlist */
864 YYSYMBOL_stageobj = 616, /* stageobj */
865 YYSYMBOL_617_4 = 617, /* $@4 */
866 YYSYMBOL_osilStageobjidxATT = 618, /* osilStageobjidxATT */
867 YYSYMBOL_stageobjend = 619, /* stageobjend */
868 YYSYMBOL_interval = 620, /* interval */
869 YYSYMBOL_621_5 = 621, /* $@5 */
870 YYSYMBOL_intervalend = 622, /* intervalend */
871 YYSYMBOL_anotherIntervalATT = 623, /* anotherIntervalATT */
872 YYSYMBOL_intervalatt = 624, /* intervalatt */
873 YYSYMBOL_osilStageobjstartidxATT = 625, /* osilStageobjstartidxATT */
874 YYSYMBOL_osilIntervalhorizonATT = 626, /* osilIntervalhorizonATT */
875 YYSYMBOL_osilIntervalstartATT = 627, /* osilIntervalstartATT */
876 YYSYMBOL_numberOfMatricesATT = 628, /* numberOfMatricesATT */
877 YYSYMBOL_numberOfConesATT = 629, /* numberOfConesATT */
878 YYSYMBOL_numberOfMatrixVarATT = 630, /* numberOfMatrixVarATT */
879 YYSYMBOL_numberOfMatrixObjATT = 631, /* numberOfMatrixObjATT */
880 YYSYMBOL_numberOfMatrixConATT = 632, /* numberOfMatrixConATT */
881 YYSYMBOL_normScaleFactorATT = 633, /* normScaleFactorATT */
882 YYSYMBOL_distortionMatrixIdxATT = 634, /* distortionMatrixIdxATT */
883 YYSYMBOL_axisDirectionATT = 635, /* axisDirectionATT */
884 YYSYMBOL_firstAxisDirectionATT = 636, /* firstAxisDirectionATT */
885 YYSYMBOL_secondAxisDirectionATT = 637, /* secondAxisDirectionATT */
886 YYSYMBOL_semidefinitenessATT = 638, /* semidefinitenessATT */
887 YYSYMBOL_matrixIdxATT = 639, /* matrixIdxATT */
888 YYSYMBOL_lbMatrixIdxATT = 640, /* lbMatrixIdxATT */
889 YYSYMBOL_ubMatrixIdxATT = 641, /* ubMatrixIdxATT */
890 YYSYMBOL_constantMatrixIdxATT = 642, /* constantMatrixIdxATT */
891 YYSYMBOL_templateMatrixIdxATT = 643, /* templateMatrixIdxATT */
892 YYSYMBOL_varReferenceMatrixIdxATT = 644, /* varReferenceMatrixIdxATT */
893 YYSYMBOL_objReferenceMatrixIdxATT = 645, /* objReferenceMatrixIdxATT */
894 YYSYMBOL_conReferenceMatrixIdxATT = 646, /* conReferenceMatrixIdxATT */
895 YYSYMBOL_lbConeIdxATT = 647, /* lbConeIdxATT */
896 YYSYMBOL_ubConeIdxATT = 648, /* ubConeIdxATT */
897 YYSYMBOL_orderConeIdxATT = 649, /* orderConeIdxATT */
898 YYSYMBOL_aNumber = 650, /* aNumber */
899 YYSYMBOL_quote = 651, /* quote */
900 YYSYMBOL_xmlWhiteSpace = 652, /* xmlWhiteSpace */
901 YYSYMBOL_xmlWhiteSpaceChar = 653, /* xmlWhiteSpaceChar */
902 YYSYMBOL_osglIntArrayData = 654, /* osglIntArrayData */
903 YYSYMBOL_osglIntVectorElArray = 655, /* osglIntVectorElArray */
904 YYSYMBOL_osglIntVectorEl = 656, /* osglIntVectorEl */
905 YYSYMBOL_osglIntVectorElStart = 657, /* osglIntVectorElStart */
906 YYSYMBOL_osglIntVectorElAttributes = 658, /* osglIntVectorElAttributes */
907 YYSYMBOL_osglIntVectorElAttList = 659, /* osglIntVectorElAttList */
908 YYSYMBOL_osglIntVectorElAtt = 660, /* osglIntVectorElAtt */
909 YYSYMBOL_osglIntVectorElContent = 661, /* osglIntVectorElContent */
910 YYSYMBOL_osglIntVectorBase64 = 662, /* osglIntVectorBase64 */
911 YYSYMBOL_osglIntVectorBase64Content = 663, /* osglIntVectorBase64Content */
912 YYSYMBOL_osglIntVectorBase64Empty = 664, /* osglIntVectorBase64Empty */
913 YYSYMBOL_osglIntVectorBase64Laden = 665, /* osglIntVectorBase64Laden */
914 YYSYMBOL_osglDblArrayData = 666, /* osglDblArrayData */
915 YYSYMBOL_osglDblVectorElArray = 667, /* osglDblVectorElArray */
916 YYSYMBOL_osglDblVectorEl = 668, /* osglDblVectorEl */
917 YYSYMBOL_osglDblVectorElStart = 669, /* osglDblVectorElStart */
918 YYSYMBOL_osglDblVectorElAttributes = 670, /* osglDblVectorElAttributes */
919 YYSYMBOL_osglDblVectorElContent = 671, /* osglDblVectorElContent */
920 YYSYMBOL_osglDblVectorBase64 = 672, /* osglDblVectorBase64 */
921 YYSYMBOL_osglDblVectorBase64Content = 673, /* osglDblVectorBase64Content */
922 YYSYMBOL_osglDblVectorBase64Empty = 674, /* osglDblVectorBase64Empty */
923 YYSYMBOL_osglDblVectorBase64Laden = 675, /* osglDblVectorBase64Laden */
924 YYSYMBOL_osglMatrix = 676, /* osglMatrix */
925 YYSYMBOL_matrixStart = 677, /* matrixStart */
926 YYSYMBOL_matrixAttributes = 678, /* matrixAttributes */
927 YYSYMBOL_matrixAttributeList = 679, /* matrixAttributeList */
928 YYSYMBOL_matrixAttribute = 680, /* matrixAttribute */
929 YYSYMBOL_matrixContent = 681, /* matrixContent */
930 YYSYMBOL_matrixEmpty = 682, /* matrixEmpty */
931 YYSYMBOL_matrixLaden = 683, /* matrixLaden */
932 YYSYMBOL_matrixBody = 684, /* matrixBody */
933 YYSYMBOL_baseMatrix = 685, /* baseMatrix */
934 YYSYMBOL_baseMatrixStart = 686, /* baseMatrixStart */
935 YYSYMBOL_baseMatrixAttributes = 687, /* baseMatrixAttributes */
936 YYSYMBOL_baseMatrixAttList = 688, /* baseMatrixAttList */
937 YYSYMBOL_baseMatrixAtt = 689, /* baseMatrixAtt */
938 YYSYMBOL_baseMatrixEnd = 690, /* baseMatrixEnd */
939 YYSYMBOL_matrixConstructorList = 691, /* matrixConstructorList */
940 YYSYMBOL_matrixConstructor = 692, /* matrixConstructor */
941 YYSYMBOL_constantElements = 693, /* constantElements */
942 YYSYMBOL_constantElementsStart = 694, /* constantElementsStart */
943 YYSYMBOL_constantElementsAttributes = 695, /* constantElementsAttributes */
944 YYSYMBOL_constantElementsAttList = 696, /* constantElementsAttList */
945 YYSYMBOL_constantElementsAtt = 697, /* constantElementsAtt */
946 YYSYMBOL_constantElementsContent = 698, /* constantElementsContent */
947 YYSYMBOL_constantElementsNonzeros = 699, /* constantElementsNonzeros */
948 YYSYMBOL_matrixElementsStartVector = 700, /* matrixElementsStartVector */
949 YYSYMBOL_matrixElementsStartVectorStart = 701, /* matrixElementsStartVectorStart */
950 YYSYMBOL_matrixElementsStartVectorContent = 702, /* matrixElementsStartVectorContent */
951 YYSYMBOL_matrixElementsStartVectorEmpty = 703, /* matrixElementsStartVectorEmpty */
952 YYSYMBOL_matrixElementsStartVectorLaden = 704, /* matrixElementsStartVectorLaden */
953 YYSYMBOL_matrixElementsStartVectorBody = 705, /* matrixElementsStartVectorBody */
954 YYSYMBOL_matrixElementsIndexVector = 706, /* matrixElementsIndexVector */
955 YYSYMBOL_matrixElementsIndexStart = 707, /* matrixElementsIndexStart */
956 YYSYMBOL_matrixElementsIndexContent = 708, /* matrixElementsIndexContent */
957 YYSYMBOL_matrixElementsIndexEmpty = 709, /* matrixElementsIndexEmpty */
958 YYSYMBOL_matrixElementsIndexLaden = 710, /* matrixElementsIndexLaden */
959 YYSYMBOL_matrixElementsIndexBody = 711, /* matrixElementsIndexBody */
960 YYSYMBOL_constantElementsValues = 712, /* constantElementsValues */
961 YYSYMBOL_constantElementsValueStart = 713, /* constantElementsValueStart */
962 YYSYMBOL_constantElementsValueContent = 714, /* constantElementsValueContent */
963 YYSYMBOL_constantElementsValueEmpty = 715, /* constantElementsValueEmpty */
964 YYSYMBOL_constantElementsValueLaden = 716, /* constantElementsValueLaden */
965 YYSYMBOL_constantElementsValueBody = 717, /* constantElementsValueBody */
966 YYSYMBOL_varReferenceElements = 718, /* varReferenceElements */
967 YYSYMBOL_varReferenceElementsStart = 719, /* varReferenceElementsStart */
968 YYSYMBOL_varReferenceElementsAttributes = 720, /* varReferenceElementsAttributes */
969 YYSYMBOL_varReferenceElementsAttList = 721, /* varReferenceElementsAttList */
970 YYSYMBOL_varReferenceElementsAtt = 722, /* varReferenceElementsAtt */
971 YYSYMBOL_varReferenceElementsContent = 723, /* varReferenceElementsContent */
972 YYSYMBOL_varReferenceElementsNonzeros = 724, /* varReferenceElementsNonzeros */
973 YYSYMBOL_varReferenceElementsValues = 725, /* varReferenceElementsValues */
974 YYSYMBOL_varReferenceElementsValuesStart = 726, /* varReferenceElementsValuesStart */
975 YYSYMBOL_varReferenceElementsValuesContent = 727, /* varReferenceElementsValuesContent */
976 YYSYMBOL_varReferenceElementsValuesEmpty = 728, /* varReferenceElementsValuesEmpty */
977 YYSYMBOL_varReferenceElementsValuesLaden = 729, /* varReferenceElementsValuesLaden */
978 YYSYMBOL_varReferenceElementsValuesBody = 730, /* varReferenceElementsValuesBody */
979 YYSYMBOL_linearElements = 731, /* linearElements */
980 YYSYMBOL_linearElementsStart = 732, /* linearElementsStart */
981 YYSYMBOL_linearElementsAttributes = 733, /* linearElementsAttributes */
982 YYSYMBOL_linearElementsAttList = 734, /* linearElementsAttList */
983 YYSYMBOL_linearElementsAtt = 735, /* linearElementsAtt */
984 YYSYMBOL_linearElementsContent = 736, /* linearElementsContent */
985 YYSYMBOL_linearElementsNonzeros = 737, /* linearElementsNonzeros */
986 YYSYMBOL_linearElementsValues = 738, /* linearElementsValues */
987 YYSYMBOL_linearElementsValuesStart = 739, /* linearElementsValuesStart */
988 YYSYMBOL_linearElementsValuesContent = 740, /* linearElementsValuesContent */
989 YYSYMBOL_linearElementsValuesEmpty = 741, /* linearElementsValuesEmpty */
990 YYSYMBOL_linearElementsValuesLaden = 742, /* linearElementsValuesLaden */
991 YYSYMBOL_linearElementsValuesBody = 743, /* linearElementsValuesBody */
992 YYSYMBOL_linearElementsValuesElList = 744, /* linearElementsValuesElList */
993 YYSYMBOL_linearElementsValuesEl = 745, /* linearElementsValuesEl */
994 YYSYMBOL_linearElementsValuesElStart = 746, /* linearElementsValuesElStart */
995 YYSYMBOL_linearElementsValuesElAttributes = 747, /* linearElementsValuesElAttributes */
996 YYSYMBOL_linearElementsValuesElAttList = 748, /* linearElementsValuesElAttList */
997 YYSYMBOL_linearElementsValuesElAtt = 749, /* linearElementsValuesElAtt */
998 YYSYMBOL_linearElementsValuesElContent = 750, /* linearElementsValuesElContent */
999 YYSYMBOL_linearElementsValuesElEmpty = 751, /* linearElementsValuesElEmpty */
1000 YYSYMBOL_linearElementsValuesElLaden = 752, /* linearElementsValuesElLaden */
1001 YYSYMBOL_linearElementsValuesVarIdxList = 753, /* linearElementsValuesVarIdxList */
1002 YYSYMBOL_linearElementsValuesVarIdx = 754, /* linearElementsValuesVarIdx */
1003 YYSYMBOL_linearElementsValuesVarIdxStart = 755, /* linearElementsValuesVarIdxStart */
1004 YYSYMBOL_LinearElementsValuesVarIdxCoefATT = 756, /* LinearElementsValuesVarIdxCoefATT */
1005 YYSYMBOL_linearElementsValuesVarIdxContent = 757, /* linearElementsValuesVarIdxContent */
1006 YYSYMBOL_generalElements = 758, /* generalElements */
1007 YYSYMBOL_generalElementsStart = 759, /* generalElementsStart */
1008 YYSYMBOL_generalElementsAttributes = 760, /* generalElementsAttributes */
1009 YYSYMBOL_generalElementsAttList = 761, /* generalElementsAttList */
1010 YYSYMBOL_generalElementsAtt = 762, /* generalElementsAtt */
1011 YYSYMBOL_generalElementsContent = 763, /* generalElementsContent */
1012 YYSYMBOL_generalElementsNonzeros = 764, /* generalElementsNonzeros */
1013 YYSYMBOL_generalElementsValues = 765, /* generalElementsValues */
1014 YYSYMBOL_generalElementsValuesStart = 766, /* generalElementsValuesStart */
1015 YYSYMBOL_generalElementsValuesContent = 767, /* generalElementsValuesContent */
1016 YYSYMBOL_generalElementsValuesEmpty = 768, /* generalElementsValuesEmpty */
1017 YYSYMBOL_generalElementsValuesLaden = 769, /* generalElementsValuesLaden */
1018 YYSYMBOL_generalElementsElList = 770, /* generalElementsElList */
1019 YYSYMBOL_generalElementsEl = 771, /* generalElementsEl */
1020 YYSYMBOL_generalElementsElStart = 772, /* generalElementsElStart */
1021 YYSYMBOL_generalElementsElContent = 773, /* generalElementsElContent */
1022 YYSYMBOL_generalElementsElEmpty = 774, /* generalElementsElEmpty */
1023 YYSYMBOL_generalElementsElLaden = 775, /* generalElementsElLaden */
1024 YYSYMBOL_objReferenceElements = 776, /* objReferenceElements */
1025 YYSYMBOL_objReferenceElementsStart = 777, /* objReferenceElementsStart */
1026 YYSYMBOL_objReferenceElementsAttributes = 778, /* objReferenceElementsAttributes */
1027 YYSYMBOL_objReferenceElementsAttList = 779, /* objReferenceElementsAttList */
1028 YYSYMBOL_objReferenceElementsAtt = 780, /* objReferenceElementsAtt */
1029 YYSYMBOL_objReferenceElementsContent = 781, /* objReferenceElementsContent */
1030 YYSYMBOL_objReferenceElementsNonzeros = 782, /* objReferenceElementsNonzeros */
1031 YYSYMBOL_objReferenceElementsValues = 783, /* objReferenceElementsValues */
1032 YYSYMBOL_objReferenceElementsValuesStart = 784, /* objReferenceElementsValuesStart */
1033 YYSYMBOL_objReferenceElementsValuesContent = 785, /* objReferenceElementsValuesContent */
1034 YYSYMBOL_objReferenceElementsValuesEmpty = 786, /* objReferenceElementsValuesEmpty */
1035 YYSYMBOL_objReferenceElementsValuesLaden = 787, /* objReferenceElementsValuesLaden */
1036 YYSYMBOL_objReferenceElementsValuesBody = 788, /* objReferenceElementsValuesBody */
1037 YYSYMBOL_conReferenceElements = 789, /* conReferenceElements */
1038 YYSYMBOL_conReferenceElementsStart = 790, /* conReferenceElementsStart */
1039 YYSYMBOL_conReferenceElementsAttributes = 791, /* conReferenceElementsAttributes */
1040 YYSYMBOL_conReferenceElementsAttList = 792, /* conReferenceElementsAttList */
1041 YYSYMBOL_conReferenceElementsAtt = 793, /* conReferenceElementsAtt */
1042 YYSYMBOL_conReferenceElementsContent = 794, /* conReferenceElementsContent */
1043 YYSYMBOL_conReferenceElementsNonzeros = 795, /* conReferenceElementsNonzeros */
1044 YYSYMBOL_conReferenceElementsValues = 796, /* conReferenceElementsValues */
1045 YYSYMBOL_conReferenceElementsValuesStart = 797, /* conReferenceElementsValuesStart */
1046 YYSYMBOL_conReferenceElementsValuesContent = 798, /* conReferenceElementsValuesContent */
1047 YYSYMBOL_conReferenceElementsValuesEmpty = 799, /* conReferenceElementsValuesEmpty */
1048 YYSYMBOL_conReferenceElementsValuesLaden = 800, /* conReferenceElementsValuesLaden */
1049 YYSYMBOL_conReferenceElementsElList = 801, /* conReferenceElementsElList */
1050 YYSYMBOL_conReferenceElementsEl = 802, /* conReferenceElementsEl */
1051 YYSYMBOL_conReferenceElementsElStart = 803, /* conReferenceElementsElStart */
1052 YYSYMBOL_conReferenceElementsElAttributeList = 804, /* conReferenceElementsElAttributeList */
1053 YYSYMBOL_conReferenceElementsElAttribute = 805, /* conReferenceElementsElAttribute */
1054 YYSYMBOL_conReferenceElementsElContent = 806, /* conReferenceElementsElContent */
1055 YYSYMBOL_matrixTransformation = 807, /* matrixTransformation */
1056 YYSYMBOL_matrixTransformationStart = 808, /* matrixTransformationStart */
1057 YYSYMBOL_matrixTransformationShapeATT = 809, /* matrixTransformationShapeATT */
1058 YYSYMBOL_matrixTransformationEnd = 810, /* matrixTransformationEnd */
1059 YYSYMBOL_matrixBlocks = 811, /* matrixBlocks */
1060 YYSYMBOL_matrixBlocksStart = 812, /* matrixBlocksStart */
1061 YYSYMBOL_matrixBlocksAttributes = 813, /* matrixBlocksAttributes */
1062 YYSYMBOL_matrixBlocksContent = 814, /* matrixBlocksContent */
1063 YYSYMBOL_matrixBlocksEnd = 815, /* matrixBlocksEnd */
1064 YYSYMBOL_colOffsets = 816, /* colOffsets */
1065 YYSYMBOL_colOffsetStart = 817, /* colOffsetStart */
1066 YYSYMBOL_colOffsetNumberOfElAttribute = 818, /* colOffsetNumberOfElAttribute */
1067 YYSYMBOL_colOffsetContent = 819, /* colOffsetContent */
1068 YYSYMBOL_colOffsetEmpty = 820, /* colOffsetEmpty */
1069 YYSYMBOL_colOffsetLaden = 821, /* colOffsetLaden */
1070 YYSYMBOL_colOffsetBody = 822, /* colOffsetBody */
1071 YYSYMBOL_rowOffsets = 823, /* rowOffsets */
1072 YYSYMBOL_rowOffsetStart = 824, /* rowOffsetStart */
1073 YYSYMBOL_rowOffsetNumberOfElAttribute = 825, /* rowOffsetNumberOfElAttribute */
1074 YYSYMBOL_rowOffsetContent = 826, /* rowOffsetContent */
1075 YYSYMBOL_rowOffsetEmpty = 827, /* rowOffsetEmpty */
1076 YYSYMBOL_rowOffsetLaden = 828, /* rowOffsetLaden */
1077 YYSYMBOL_rowOffsetBody = 829, /* rowOffsetBody */
1078 YYSYMBOL_blockList = 830, /* blockList */
1079 YYSYMBOL_matrixBlock = 831, /* matrixBlock */
1080 YYSYMBOL_matrixBlockStart = 832, /* matrixBlockStart */
1081 YYSYMBOL_matrixBlockAttributes = 833, /* matrixBlockAttributes */
1082 YYSYMBOL_matrixBlockAttList = 834, /* matrixBlockAttList */
1083 YYSYMBOL_matrixBlockAtt = 835, /* matrixBlockAtt */
1084 YYSYMBOL_matrixBlockContent = 836, /* matrixBlockContent */
1085 YYSYMBOL_blockEmpty = 837, /* blockEmpty */
1086 YYSYMBOL_blockLaden = 838, /* blockLaden */
1087 YYSYMBOL_blockBody = 839, /* blockBody */
1088 YYSYMBOL_osglNumberOfBlocksATT = 840, /* osglNumberOfBlocksATT */
1089 YYSYMBOL_osglNumberOfColumnsATT = 841, /* osglNumberOfColumnsATT */
1090 YYSYMBOL_osglNumberOfElATT = 842, /* osglNumberOfElATT */
1091 YYSYMBOL_osglNumberOfRowsATT = 843, /* osglNumberOfRowsATT */
1092 YYSYMBOL_osglNumberOfValuesATT = 844, /* osglNumberOfValuesATT */
1093 YYSYMBOL_osglNumberOfVarIdxATT = 845, /* osglNumberOfVarIdxATT */
1094 YYSYMBOL_osglBase64SizeATT = 846, /* osglBase64SizeATT */
1095 YYSYMBOL_osglBaseMatrixIdxATT = 847, /* osglBaseMatrixIdxATT */
1096 YYSYMBOL_osglBaseMatrixStartRowATT = 848, /* osglBaseMatrixStartRowATT */
1097 YYSYMBOL_osglBaseMatrixStartColATT = 849, /* osglBaseMatrixStartColATT */
1098 YYSYMBOL_osglBaseMatrixEndRowATT = 850, /* osglBaseMatrixEndRowATT */
1099 YYSYMBOL_osglBaseMatrixEndColATT = 851, /* osglBaseMatrixEndColATT */
1100 YYSYMBOL_osglBlockRowIdxATT = 852, /* osglBlockRowIdxATT */
1101 YYSYMBOL_osglBlockColIdxATT = 853, /* osglBlockColIdxATT */
1102 YYSYMBOL_osglCoefATT = 854, /* osglCoefATT */
1103 YYSYMBOL_osglConstantATT = 855, /* osglConstantATT */
1104 YYSYMBOL_osglIdxATT = 856, /* osglIdxATT */
1105 YYSYMBOL_osglIncrATT = 857, /* osglIncrATT */
1106 YYSYMBOL_osglMultATT = 858, /* osglMultATT */
1107 YYSYMBOL_osglScalarMultiplierATT = 859, /* osglScalarMultiplierATT */
1108 YYSYMBOL_osglTargetMatrixFirstRowATT = 860, /* osglTargetMatrixFirstRowATT */
1109 YYSYMBOL_osglTargetMatrixFirstColATT = 861, /* osglTargetMatrixFirstColATT */
1110 YYSYMBOL_osglBaseTransposeATT = 862, /* osglBaseTransposeATT */
1111 YYSYMBOL_baseTransposeAttEmpty = 863, /* baseTransposeAttEmpty */
1112 YYSYMBOL_baseTransposeAttContent = 864, /* baseTransposeAttContent */
1113 YYSYMBOL_osglNameATT = 865, /* osglNameATT */
1114 YYSYMBOL_nameAttEmpty = 866, /* nameAttEmpty */
1115 YYSYMBOL_nameAttContent = 867, /* nameAttContent */
1116 YYSYMBOL_osglRowMajorATT = 868, /* osglRowMajorATT */
1117 YYSYMBOL_rowMajorAttEmpty = 869, /* rowMajorAttEmpty */
1118 YYSYMBOL_rowMajorAttContent = 870, /* rowMajorAttContent */
1119 YYSYMBOL_osglShapeATT = 871, /* osglShapeATT */
1120 YYSYMBOL_shapeAttEmpty = 872, /* shapeAttEmpty */
1121 YYSYMBOL_shape = 873, /* shape */
1122 YYSYMBOL_osglSymmetryATT = 874, /* osglSymmetryATT */
1123 YYSYMBOL_symmetryAttEmpty = 875, /* symmetryAttEmpty */
1124 YYSYMBOL_symmetryAttContent = 876, /* symmetryAttContent */
1125 YYSYMBOL_osglTypeATT = 877, /* osglTypeATT */
1126 YYSYMBOL_typeAttEmpty = 878, /* typeAttEmpty */
1127 YYSYMBOL_typeAttContent = 879, /* typeAttContent */
1128 YYSYMBOL_osglValueATT = 880, /* osglValueATT */
1129 YYSYMBOL_valueAttEmpty = 881, /* valueAttEmpty */
1130 YYSYMBOL_valueAttContent = 882, /* valueAttContent */
1131 YYSYMBOL_osglValueTypeATT = 883, /* osglValueTypeATT */
1132 YYSYMBOL_valueTypeAttEmpty = 884, /* valueTypeAttEmpty */
1133 YYSYMBOL_valueTypeAttContent = 885, /* valueTypeAttContent */
1134 YYSYMBOL_osglVarTypeATT = 886, /* osglVarTypeATT */
1135 YYSYMBOL_varTypeAttEmpty = 887, /* varTypeAttEmpty */
1136 YYSYMBOL_varTypeAttContent = 888, /* varTypeAttContent */
1137 YYSYMBOL_nonlinearExpressions = 889, /* nonlinearExpressions */
1138 YYSYMBOL_nonlinearExpressionsStart = 890, /* nonlinearExpressionsStart */
1139 YYSYMBOL_nlnumberatt = 891, /* nlnumberatt */
1140 YYSYMBOL_nlnodes = 892, /* nlnodes */
1141 YYSYMBOL_scalarExpressionTree = 893, /* scalarExpressionTree */
1142 YYSYMBOL_nlstart = 894, /* nlstart */
1143 YYSYMBOL_nlAttributes = 895, /* nlAttributes */
1144 YYSYMBOL_nlAttributeList = 896, /* nlAttributeList */
1145 YYSYMBOL_nlAttribute = 897, /* nlAttribute */
1146 YYSYMBOL_nlnode = 898, /* nlnode */
1147 YYSYMBOL_E = 899, /* E */
1148 YYSYMBOL_900_6 = 900, /* $@6 */
1149 YYSYMBOL_eend = 901, /* eend */
1150 YYSYMBOL_PI = 902, /* PI */
1151 YYSYMBOL_903_7 = 903, /* $@7 */
1152 YYSYMBOL_piend = 904, /* piend */
1153 YYSYMBOL_times = 905, /* times */
1154 YYSYMBOL_906_8 = 906, /* $@8 */
1155 YYSYMBOL_plus = 907, /* plus */
1156 YYSYMBOL_908_9 = 908, /* $@9 */
1157 YYSYMBOL_minus = 909, /* minus */
1158 YYSYMBOL_910_10 = 910, /* $@10 */
1159 YYSYMBOL_negate = 911, /* negate */
1160 YYSYMBOL_912_11 = 912, /* $@11 */
1161 YYSYMBOL_divide = 913, /* divide */
1162 YYSYMBOL_914_12 = 914, /* $@12 */
1163 YYSYMBOL_power = 915, /* power */
1164 YYSYMBOL_916_13 = 916, /* $@13 */
1165 YYSYMBOL_ln = 917, /* ln */
1166 YYSYMBOL_918_14 = 918, /* $@14 */
1167 YYSYMBOL_sqrt = 919, /* sqrt */
1168 YYSYMBOL_920_15 = 920, /* $@15 */
1169 YYSYMBOL_square = 921, /* square */
1170 YYSYMBOL_922_16 = 922, /* $@16 */
1171 YYSYMBOL_cos = 923, /* cos */
1172 YYSYMBOL_924_17 = 924, /* $@17 */
1173 YYSYMBOL_sin = 925, /* sin */
1174 YYSYMBOL_926_18 = 926, /* $@18 */
1175 YYSYMBOL_exp = 927, /* exp */
1176 YYSYMBOL_928_19 = 928, /* $@19 */
1177 YYSYMBOL_abs = 929, /* abs */
1178 YYSYMBOL_absStart = 930, /* absStart */
1179 YYSYMBOL_absEnd = 931, /* absEnd */
1180 YYSYMBOL_erf = 932, /* erf */
1181 YYSYMBOL_933_20 = 933, /* $@20 */
1182 YYSYMBOL_if = 934, /* if */
1183 YYSYMBOL_935_21 = 935, /* $@21 */
1184 YYSYMBOL_matrixDeterminant = 936, /* matrixDeterminant */
1185 YYSYMBOL_937_22 = 937, /* $@22 */
1186 YYSYMBOL_matrixTrace = 938, /* matrixTrace */
1187 YYSYMBOL_939_23 = 939, /* $@23 */
1188 YYSYMBOL_matrixToScalar = 940, /* matrixToScalar */
1189 YYSYMBOL_941_24 = 941, /* $@24 */
1190 YYSYMBOL_number = 942, /* number */
1191 YYSYMBOL_numberStart = 943, /* numberStart */
1192 YYSYMBOL_numberEnd = 944, /* numberEnd */
1193 YYSYMBOL_numberAttributeList = 945, /* numberAttributeList */
1194 YYSYMBOL_numberAttribute = 946, /* numberAttribute */
1195 YYSYMBOL_numberidATT = 947, /* numberidATT */
1196 YYSYMBOL_948_25 = 948, /* $@25 */
1197 YYSYMBOL_variable = 949, /* variable */
1198 YYSYMBOL_950_26 = 950, /* $@26 */
1199 YYSYMBOL_variableend = 951, /* variableend */
1200 YYSYMBOL_952_27 = 952, /* $@27 */
1201 YYSYMBOL_anotherVariableATT = 953, /* anotherVariableATT */
1202 YYSYMBOL_variableATT = 954, /* variableATT */
1203 YYSYMBOL_variablecoefATT = 955, /* variablecoefATT */
1204 YYSYMBOL_variableidxATT = 956, /* variableidxATT */
1205 YYSYMBOL_sum = 957, /* sum */
1206 YYSYMBOL_958_28 = 958, /* $@28 */
1207 YYSYMBOL_anothersumnlnode = 959, /* anothersumnlnode */
1208 YYSYMBOL_allDiff = 960, /* allDiff */
1209 YYSYMBOL_961_29 = 961, /* $@29 */
1210 YYSYMBOL_anotherallDiffnlnode = 962, /* anotherallDiffnlnode */
1211 YYSYMBOL_max = 963, /* max */
1212 YYSYMBOL_964_30 = 964, /* $@30 */
1213 YYSYMBOL_anothermaxnlnode = 965, /* anothermaxnlnode */
1214 YYSYMBOL_min = 966, /* min */
1215 YYSYMBOL_967_31 = 967, /* $@31 */
1216 YYSYMBOL_anotherminnlnode = 968, /* anotherminnlnode */
1217 YYSYMBOL_product = 969, /* product */
1218 YYSYMBOL_970_32 = 970, /* $@32 */
1219 YYSYMBOL_anotherproductnlnode = 971, /* anotherproductnlnode */
1220 YYSYMBOL_OSnLMNode = 972, /* OSnLMNode */
1221 YYSYMBOL_matrixReference = 973, /* matrixReference */
1222 YYSYMBOL_matrixReferenceStart = 974, /* matrixReferenceStart */
1223 YYSYMBOL_matrixReferenceEnd = 975, /* matrixReferenceEnd */
1224 YYSYMBOL_matrixVarReference = 976, /* matrixVarReference */
1225 YYSYMBOL_matrixVarReferenceStart = 977, /* matrixVarReferenceStart */
1226 YYSYMBOL_matrixVarReferenceEnd = 978, /* matrixVarReferenceEnd */
1227 YYSYMBOL_matrixVarIdxATT = 979, /* matrixVarIdxATT */
1228 YYSYMBOL_matrixObjReference = 980, /* matrixObjReference */
1229 YYSYMBOL_matrixObjReferenceStart = 981, /* matrixObjReferenceStart */
1230 YYSYMBOL_matrixObjReferenceEnd = 982, /* matrixObjReferenceEnd */
1231 YYSYMBOL_matrixObjIdxATT = 983, /* matrixObjIdxATT */
1232 YYSYMBOL_matrixConReference = 984, /* matrixConReference */
1233 YYSYMBOL_matrixConReferenceStart = 985, /* matrixConReferenceStart */
1234 YYSYMBOL_matrixConReferenceEnd = 986, /* matrixConReferenceEnd */
1235 YYSYMBOL_matrixConIdxATT = 987, /* matrixConIdxATT */
1236 YYSYMBOL_matrixDiagonal = 988, /* matrixDiagonal */
1237 YYSYMBOL_matrixDiagonalStart = 989, /* matrixDiagonalStart */
1238 YYSYMBOL_matrixDiagonalContent = 990, /* matrixDiagonalContent */
1239 YYSYMBOL_matrixDotTimes = 991, /* matrixDotTimes */
1240 YYSYMBOL_matrixDotTimesStart = 992, /* matrixDotTimesStart */
1241 YYSYMBOL_matrixDotTimesContent = 993, /* matrixDotTimesContent */
1242 YYSYMBOL_identityMatrix = 994, /* identityMatrix */
1243 YYSYMBOL_identityMatrixStart = 995, /* identityMatrixStart */
1244 YYSYMBOL_identityMatrixContent = 996, /* identityMatrixContent */
1245 YYSYMBOL_matrixInverse = 997, /* matrixInverse */
1246 YYSYMBOL_matrixInverseStart = 998, /* matrixInverseStart */
1247 YYSYMBOL_matrixInverseContent = 999, /* matrixInverseContent */
1248 YYSYMBOL_matrixLowerTriangle = 1000, /* matrixLowerTriangle */
1249 YYSYMBOL_matrixLowerTriangleStart = 1001, /* matrixLowerTriangleStart */
1250 YYSYMBOL_matrixLowerTriangleAttribute = 1002, /* matrixLowerTriangleAttribute */
1251 YYSYMBOL_matrixLowerTriangleContent = 1003, /* matrixLowerTriangleContent */
1252 YYSYMBOL_matrixUpperTriangle = 1004, /* matrixUpperTriangle */
1253 YYSYMBOL_matrixUpperTriangleStart = 1005, /* matrixUpperTriangleStart */
1254 YYSYMBOL_matrixUpperTriangleAttribute = 1006, /* matrixUpperTriangleAttribute */
1255 YYSYMBOL_matrixUpperTriangleContent = 1007, /* matrixUpperTriangleContent */
1256 YYSYMBOL_includeDiagonalATT = 1008, /* includeDiagonalATT */
1257 YYSYMBOL_matrixMerge = 1009, /* matrixMerge */
1258 YYSYMBOL_matrixMergeStart = 1010, /* matrixMergeStart */
1259 YYSYMBOL_matrixMergeEnd = 1011, /* matrixMergeEnd */
1260 YYSYMBOL_matrixMinus = 1012, /* matrixMinus */
1261 YYSYMBOL_matrixMinusStart = 1013, /* matrixMinusStart */
1262 YYSYMBOL_matrixMinusContent = 1014, /* matrixMinusContent */
1263 YYSYMBOL_matrixNegate = 1015, /* matrixNegate */
1264 YYSYMBOL_matrixNegateStart = 1016, /* matrixNegateStart */
1265 YYSYMBOL_matrixNegateContent = 1017, /* matrixNegateContent */
1266 YYSYMBOL_matrixPlus = 1018, /* matrixPlus */
1267 YYSYMBOL_matrixPlusStart = 1019, /* matrixPlusStart */
1268 YYSYMBOL_matrixPlusContent = 1020, /* matrixPlusContent */
1269 YYSYMBOL_matrixTimes = 1021, /* matrixTimes */
1270 YYSYMBOL_matrixTimesStart = 1022, /* matrixTimesStart */
1271 YYSYMBOL_matrixTimesContent = 1023, /* matrixTimesContent */
1272 YYSYMBOL_matrixProduct = 1024, /* matrixProduct */
1273 YYSYMBOL_1025_33 = 1025, /* $@33 */
1274 YYSYMBOL_anothermatrixproductnode = 1026, /* anothermatrixproductnode */
1275 YYSYMBOL_matrixScalarTimes = 1027, /* matrixScalarTimes */
1276 YYSYMBOL_matrixScalarTimesStart = 1028, /* matrixScalarTimesStart */
1277 YYSYMBOL_matrixScalarTimesContent = 1029, /* matrixScalarTimesContent */
1278 YYSYMBOL_matrixSubMatrixAt = 1030, /* matrixSubMatrixAt */
1279 YYSYMBOL_matrixSubMatrixAtStart = 1031, /* matrixSubMatrixAtStart */
1280 YYSYMBOL_matrixSubMatrixAtContent = 1032, /* matrixSubMatrixAtContent */
1281 YYSYMBOL_matrixTranspose = 1033, /* matrixTranspose */
1282 YYSYMBOL_matrixTransposeStart = 1034, /* matrixTransposeStart */
1283 YYSYMBOL_matrixTransposeContent = 1035, /* matrixTransposeContent */
1284 YYSYMBOL_matrixExpressions = 1036, /* matrixExpressions */
1285 YYSYMBOL_matrixExpressionsStart = 1037, /* matrixExpressionsStart */
1286 YYSYMBOL_matrixExpressionsAtt = 1038, /* matrixExpressionsAtt */
1287 YYSYMBOL_numberOfExprATT = 1039, /* numberOfExprATT */
1288 YYSYMBOL_matrixExpressionsContent = 1040, /* matrixExpressionsContent */
1289 YYSYMBOL_matrixExpressionsEmpty = 1041, /* matrixExpressionsEmpty */
1290 YYSYMBOL_matrixExpressionsLaden = 1042, /* matrixExpressionsLaden */
1291 YYSYMBOL_matrixExprList = 1043, /* matrixExprList */
1292 YYSYMBOL_matrixExpr = 1044, /* matrixExpr */
1293 YYSYMBOL_matrixExprStart = 1045, /* matrixExprStart */
1294 YYSYMBOL_matrixExprAttributes = 1046, /* matrixExprAttributes */
1295 YYSYMBOL_matrixExprAttributeList = 1047, /* matrixExprAttributeList */
1296 YYSYMBOL_exprAttribute = 1048 /* exprAttribute */
1298 typedef enum yysymbol_kind_t yysymbol_kind_t;
1301 /* Second part of user prologue. */
1303 int osillex(YYSTYPE* lvalp, YYLTYPE* llocp, void* scanner );
1304 void osilerror(YYLTYPE* mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData* osglData, OSnLParserData *osnlData, std::string errormsg );
1305 std::string addErrorMsg(YYLTYPE* mytype, OSInstance *osinstance, OSiLParserData* parserData, OSgLParserData* osglData, OSnLParserData *osnlData, std::string errormsg ) ;
1307 #define scanner parserData->scanner
1315 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1316 <limits.h> and (if available) <stdint.h> are included
1317 so that the code can choose integer types of a good width. */
1319 #ifndef __PTRDIFF_MAX__
1320 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1321 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1322 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1323 # define YY_STDINT_H
1327 /* Narrow types that promote to a signed type and that can represent a
1328 signed or unsigned integer of at least N bits. In tables they can
1329 save space and decrease cache pressure. Promoting to a signed type
1330 helps avoid bugs in integer arithmetic. */
1332 #ifdef __INT_LEAST8_MAX__
1333 typedef __INT_LEAST8_TYPE__ yytype_int8;
1334 #elif defined YY_STDINT_H
1335 typedef int_least8_t yytype_int8;
1337 typedef signed char yytype_int8;
1340 #ifdef __INT_LEAST16_MAX__
1341 typedef __INT_LEAST16_TYPE__ yytype_int16;
1342 #elif defined YY_STDINT_H
1343 typedef int_least16_t yytype_int16;
1345 typedef short yytype_int16;
1348 /* Work around bug in HP-UX 11.23, which defines these macros
1349 incorrectly for preprocessor constants. This workaround can likely
1350 be removed in 2023, as HPE has promised support for HP-UX 11.23
1351 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
1352 <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
1354 # undef UINT_LEAST8_MAX
1355 # undef UINT_LEAST16_MAX
1356 # define UINT_LEAST8_MAX 255
1357 # define UINT_LEAST16_MAX 65535
1360 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1361 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1362 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1363 && UINT_LEAST8_MAX <= INT_MAX)
1364 typedef uint_least8_t yytype_uint8;
1365 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1366 typedef unsigned char yytype_uint8;
1368 typedef short yytype_uint8;
1371 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1372 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1373 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1374 && UINT_LEAST16_MAX <= INT_MAX)
1375 typedef uint_least16_t yytype_uint16;
1376 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1377 typedef unsigned short yytype_uint16;
1379 typedef int yytype_uint16;
1383 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1384 # define YYPTRDIFF_T __PTRDIFF_TYPE__
1385 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1386 # elif defined PTRDIFF_MAX
1388 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1390 # define YYPTRDIFF_T ptrdiff_t
1391 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1393 # define YYPTRDIFF_T long
1394 # define YYPTRDIFF_MAXIMUM LONG_MAX
1399 # ifdef __SIZE_TYPE__
1400 # define YYSIZE_T __SIZE_TYPE__
1401 # elif defined size_t
1402 # define YYSIZE_T size_t
1403 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1404 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1405 # define YYSIZE_T size_t
1407 # define YYSIZE_T unsigned
1411 #define YYSIZE_MAXIMUM \
1412 YY_CAST (YYPTRDIFF_T, \
1413 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1414 ? YYPTRDIFF_MAXIMUM \
1415 : YY_CAST (YYSIZE_T, -1)))
1417 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1420 /* Stored state numbers (used for stacks). */
1421 typedef yytype_int16 yy_state_t;
1423 /* State numbers in computations. */
1424 typedef int yy_state_fast_t;
1427 # if defined YYENABLE_NLS && YYENABLE_NLS
1429 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1430 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1434 # define YY_(Msgid) Msgid
1439 #ifndef YY_ATTRIBUTE_PURE
1440 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1441 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1443 # define YY_ATTRIBUTE_PURE
1447 #ifndef YY_ATTRIBUTE_UNUSED
1448 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1449 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1451 # define YY_ATTRIBUTE_UNUSED
1455 /* Suppress unused-variable warnings by "using" E. */
1456 #if ! defined lint || defined __GNUC__
1457 # define YY_USE(E) ((void) (E))
1459 # define YY_USE(E) /* empty */
1462 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1463 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
1464 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
1465 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1466 _Pragma ("GCC diagnostic push") \
1467 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
1469 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1470 _Pragma ("GCC diagnostic push") \
1471 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1472 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1474 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1475 _Pragma ("GCC diagnostic pop")
1477 # define YY_INITIAL_VALUE(Value) Value
1479 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1480 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1481 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1483 #ifndef YY_INITIAL_VALUE
1484 # define YY_INITIAL_VALUE(Value)
1487 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1488 # define YY_IGNORE_USELESS_CAST_BEGIN \
1489 _Pragma ("GCC diagnostic push") \
1490 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1491 # define YY_IGNORE_USELESS_CAST_END \
1492 _Pragma ("GCC diagnostic pop")
1494 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1495 # define YY_IGNORE_USELESS_CAST_BEGIN
1496 # define YY_IGNORE_USELESS_CAST_END
1500 #define YY_ASSERT(E) ((void) (0 && (E)))
1506 # ifdef YYSTACK_USE_ALLOCA
1507 # if YYSTACK_USE_ALLOCA
1509 # define YYSTACK_ALLOC __builtin_alloca
1510 # elif defined __BUILTIN_VA_ARG_INCR
1511 # include <alloca.h>
1513 # define YYSTACK_ALLOC __alloca
1514 # elif defined _MSC_VER
1515 # include <malloc.h>
1516 # define alloca _alloca
1518 # define YYSTACK_ALLOC alloca
1519 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1520 # include <stdlib.h>
1522 # ifndef EXIT_SUCCESS
1523 # define EXIT_SUCCESS 0
1530 # ifdef YYSTACK_ALLOC
1532 # define YYSTACK_FREE(Ptr) do { ; } while (0)
1533 # ifndef YYSTACK_ALLOC_MAXIMUM
1538 # define YYSTACK_ALLOC_MAXIMUM 4032
1541 # define YYSTACK_ALLOC YYMALLOC
1542 # define YYSTACK_FREE YYFREE
1543 # ifndef YYSTACK_ALLOC_MAXIMUM
1544 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1546 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1547 && ! ((defined YYMALLOC || defined malloc) \
1548 && (defined YYFREE || defined free)))
1549 # include <stdlib.h>
1550 # ifndef EXIT_SUCCESS
1551 # define EXIT_SUCCESS 0
1555 # define YYMALLOC malloc
1556 # if ! defined malloc && ! defined EXIT_SUCCESS
1561 # define YYFREE free
1562 # if ! defined free && ! defined EXIT_SUCCESS
1569 #if (! defined yyoverflow \
1570 && (! defined __cplusplus \
1571 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1572 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1583 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1587 # define YYSTACK_BYTES(N) \
1588 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1589 + YYSIZEOF (YYLTYPE)) \
1590 + 2 * YYSTACK_GAP_MAXIMUM)
1592 # define YYCOPY_NEEDED 1
1599 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1602 YYPTRDIFF_T yynewbytes; \
1603 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1604 Stack = &yyptr->Stack_alloc; \
1605 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1606 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1612 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1616 # if defined __GNUC__ && 1 < __GNUC__
1617 # define YYCOPY(Dst, Src, Count) \
1618 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1620 # define YYCOPY(Dst, Src, Count) \
1624 for (yyi = 0; yyi < (Count); yyi++) \
1625 (Dst)[yyi] = (Src)[yyi]; \
1638 #define YYNTOKENS 409
1642 #define YYNRULES 965
1644 #define YYNSTATES 1498
1647 #define YYMAXUTOK 659
1652 #define YYTRANSLATE(YYX) \
1653 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1654 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1661 0, 2, 2, 2, 2, 2, 2, 2, 2, 406,
1662 408, 2, 2, 407, 2, 2, 2, 2, 2, 2,
1663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1664 2, 2, 405, 2, 2, 2, 2, 2, 2, 2,
1665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1679 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1686 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1687 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1688 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1689 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1690 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1691 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1692 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1693 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1694 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1695 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1696 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1697 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1698 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1699 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1700 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1701 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1702 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1703 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1704 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1705 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1706 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1707 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1708 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1709 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1710 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1711 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1712 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1713 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1714 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1715 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1716 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1717 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1718 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1719 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1720 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1721 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1722 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1723 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1724 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1725 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1726 395, 396, 397, 398, 399, 400, 401, 402, 403, 404
1733 0, 426, 426, 429, 430, 432, 441, 442, 445, 446,
1734 450, 455, 465, 465, 467, 480, 486, 487, 490, 491,
1735 494, 497, 500, 503, 509, 516, 523, 531, 536, 536,
1736 544, 550, 562, 562, 564, 566, 573, 573, 576, 576,
1737 582, 588, 600, 600, 602, 604, 608, 608, 616, 617,
1738 618, 619, 620, 621, 623, 630, 631, 636, 638, 647,
1739 649, 649, 652, 657, 662, 667, 667, 669, 672, 681,
1740 683, 683, 686, 691, 696, 701, 701, 704, 706, 715,
1741 725, 725, 728, 733, 738, 744, 744, 750, 752, 752,
1742 754, 756, 763, 803, 804, 806, 806, 808, 808, 810,
1743 812, 814, 823, 825, 825, 828, 833, 838, 843, 848,
1744 859, 859, 863, 865, 877, 879, 879, 882, 887, 892,
1745 896, 901, 906, 913, 913, 915, 917, 930, 932, 932,
1746 935, 940, 945, 950, 955, 960, 965, 972, 972, 976,
1747 978, 988, 990, 990, 993, 998, 1003, 1007, 1014, 1014,
1748 1028, 1030, 1039, 1041, 1041, 1044, 1049, 1054, 1059, 1061,
1749 1063, 1069, 1075, 1075, 1077, 1079, 1081, 1083, 1097, 1100,
1750 1102, 1111, 1113, 1113, 1116, 1121, 1126, 1131, 1133, 1135,
1751 1141, 1147, 1147, 1149, 1151, 1153, 1155, 1169, 1178, 1178,
1752 1180, 1185, 1185, 1187, 1190, 1192, 1192, 1199, 1204, 1214,
1753 1214, 1216, 1218, 1220, 1222, 1222, 1224, 1229, 1245, 1293,
1754 1293, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304,
1755 1305, 1306, 1309, 1310, 1312, 1312, 1318, 1323, 1333, 1333,
1756 1335, 1337, 1339, 1341, 1341, 1343, 1348, 1361, 1394, 1394,
1757 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1407, 1408,
1758 1411, 1411, 1417, 1422, 1432, 1432, 1434, 1436, 1438, 1440,
1759 1440, 1442, 1447, 1462, 1501, 1501, 1504, 1505, 1506, 1507,
1760 1508, 1509, 1510, 1511, 1512, 1515, 1516, 1559, 1559, 1561,
1761 1563, 1563, 1565, 1566, 1569, 1570, 1573, 1624, 1626, 1640,
1762 1641, 1643, 1643, 1667, 1668, 1671, 1672, 1674, 1676, 1677,
1763 1681, 1682, 1684, 1685, 1687, 1706, 1717, 1724, 1729, 1730,
1764 1732, 1733, 1735, 1735, 1738, 1750, 1751, 1753, 1754, 1758,
1765 1759, 1761, 1762, 1764, 1783, 1794, 1801, 1806, 1807, 1809,
1766 1810, 1812, 1812, 1815, 1827, 1828, 1830, 1840, 1844, 1845,
1767 1847, 1848, 1850, 1869, 1876, 1881, 1882, 1884, 1885, 1887,
1768 1887, 1890, 1902, 1903, 1908, 1908, 1916, 1917, 1919, 1920,
1769 1922, 1926, 1932, 1943, 1948, 1963, 1974, 1985, 1993, 2001,
1770 2020, 2031, 2042, 2054, 2065, 2076, 2088, 2099, 2111, 2123,
1771 2135, 2147, 2159, 2171, 2183, 2195, 2207, 2234, 2235, 2242,
1772 2244, 2244, 2246, 2247, 2248, 2249, 2413, 2421, 2423, 2423,
1773 2425, 2427, 2436, 2438, 2438, 2440, 2440, 2442, 2458, 2461,
1774 2461, 2463, 2463, 2466, 2497, 2505, 2507, 2507, 2509, 2511,
1775 2519, 2519, 2521, 2537, 2539, 2539, 2541, 2541, 2543, 2820,
1776 2871, 2894, 2912, 2912, 2915, 2916, 2917, 2918, 2919, 2923,
1777 2981, 3039, 3098, 3098, 3100, 3102, 3142, 3144, 3144, 3149,
1778 3167, 3194, 3194, 3197, 3198, 3199, 3200, 3201, 3202, 3203,
1779 3204, 3205, 3208, 3208, 3210, 3210, 3215, 3215, 3215, 3215,
1780 3216, 3216, 3216, 3216, 3218, 3220, 3229, 3235, 3235, 3238,
1781 3244, 3250, 3252, 3252, 3258, 3268, 3278, 3278, 3280, 3282,
1782 3284, 3287, 3298, 3305, 3305, 3307, 3309, 3311, 3317, 3327,
1783 3334, 3334, 3336, 3338, 3340, 3343, 3345, 3354, 3360, 3360,
1784 3363, 3369, 3375, 3377, 3377, 3379, 3389, 3396, 3396, 3398,
1785 3400, 3402, 3404, 3406, 3415, 3421, 3421, 3424, 3430, 3436,
1786 3438, 3438, 3441, 3446, 3457, 3472, 3472, 3474, 3476, 3478,
1787 3480, 3480, 3482, 3489, 3496, 3509, 3509, 3512, 3513, 3515,
1788 3515, 3517, 3519, 3521, 3521, 3524, 3526, 3534, 3534, 3539,
1789 3546, 3548, 3557, 3563, 3563, 3566, 3572, 3578, 3580, 3580,
1790 3582, 3583, 3585, 3600, 3600, 3602, 3604, 3606, 3606, 3608,
1791 3610, 3625, 3625, 3627, 3629, 3639, 3641, 3650, 3656, 3656,
1792 3659, 3665, 3671, 3673, 3673, 3675, 3685, 3692, 3692, 3694,
1793 3696, 3698, 3701, 3703, 3712, 3718, 3718, 3721, 3727, 3733,
1794 3735, 3735, 3738, 3743, 3754, 3769, 3769, 3771, 3773, 3775,
1795 3775, 3777, 3785, 3797, 3797, 3800, 3801, 3802, 3820, 3853,
1796 3856, 3874, 3874, 3885, 3892, 3902, 3910, 3916, 3918, 3932,
1797 3944, 3950, 3956, 3956, 3958, 3960, 3962, 3964, 3974, 3980,
1798 3986, 3986, 3988, 3990, 3992, 3994, 3994, 3999, 4004, 4016,
1799 4018, 4018, 4021, 4022, 4023, 4031, 4038, 4038, 4040, 4042,
1800 4048, 4062, 4073, 4117, 4240, 4251, 4273, 4297, 4308, 4322,
1801 4337, 4352, 4364, 4376, 4394, 4412, 4425, 4438, 4448, 4485,
1802 4496, 4506, 4518, 4532, 4532, 4534, 4544, 4706, 4706, 4708,
1803 4715, 4742, 4742, 4744, 4753, 4767, 4767, 4769, 4776, 4803,
1804 4803, 4805, 4812, 4821, 4821, 4823, 4830, 4857, 4857, 4861,
1805 4869, 4878, 4878, 4880, 4887, 4896, 4896, 4898, 4905, 4944,
1806 4945, 4951, 4957, 4978, 4979, 4981, 4989, 5008, 5015, 5015,
1807 5018, 5024, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041,
1808 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051,
1809 5052, 5053, 5054, 5055, 5056, 5057, 5059, 5060, 5061, 5065,
1810 5065, 5068, 5069, 5071, 5071, 5074, 5075, 5079, 5079, 5084,
1811 5084, 5089, 5089, 5094, 5094, 5099, 5099, 5104, 5104, 5109,
1812 5109, 5114, 5114, 5119, 5119, 5124, 5124, 5129, 5129, 5134,
1813 5134, 5139, 5141, 5147, 5154, 5154, 5160, 5160, 5172, 5172,
1814 5177, 5177, 5182, 5182, 5192, 5199, 5205, 5206, 5208, 5209,
1815 5212, 5216, 5220, 5224, 5223, 5242, 5241, 5248, 5249, 5251,
1816 5250, 5257, 5258, 5261, 5267, 5275, 5282, 5300, 5300, 5311,
1817 5311, 5314, 5314, 5328, 5329, 5332, 5332, 5345, 5346, 5349,
1818 5349, 5362, 5363, 5366, 5366, 5376, 5377, 5383, 5384, 5385,
1819 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395,
1820 5396, 5397, 5398, 5399, 5400, 5401, 5404, 5409, 5416, 5417,
1821 5419, 5427, 5432, 5439, 5440, 5442, 5449, 5454, 5461, 5462,
1822 5464, 5471, 5476, 5483, 5484, 5486, 5493, 5495, 5501, 5503,
1823 5505, 5511, 5513, 5515, 5521, 5523, 5525, 5531, 5533, 5535,
1824 5541, 5541, 5546, 5548, 5550, 5556, 5556, 5561, 5563, 5572,
1825 5574, 5579, 5579, 5581, 5583, 5589, 5592, 5594, 5600, 5603,
1826 5605, 5611, 5614, 5616, 5622, 5626, 5625, 5637, 5637, 5644,
1827 5646, 5652, 5654, 5656, 5662, 5665, 5667, 5673, 5683, 5683,
1828 5689, 5697, 5699, 5719, 5719, 5721, 5723, 5725, 5725, 5727,
1829 5737, 5756, 5762, 5762, 5765, 5773
1834 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1845 "\"end of file\"",
"error",
"\"invalid token\"",
"ATTRIBUTETEXT",
1846 "ELEMENTTEXT",
"ITEMTEXT",
"INTEGER",
"DOUBLE",
"QUOTE",
"TWOQUOTES",
1847 "ENDOFELEMENT",
"GREATERTHAN",
"EMPTYSEMIDEFINITENESSATT",
1848 "SEMIDEFINITENESSATT",
"NUMBEROFQTERMSATT",
"NUMBEROFCONESATT",
1849 "NUMBEROFSTAGESATT",
"IDXONEATT",
"IDXTWOATT",
"HORIZONATT",
"STARTATT",
1850 "STARTIDXATT",
"MATRIXIDXATT",
"LBMATRIXIDXATT",
"LBCONEIDXATT",
1851 "UBMATRIXIDXATT",
"UBCONEIDXATT",
"TEMPLATEMATRIXIDXATT",
1852 "REFERENCEMATRIXIDXATT",
"VARREFERENCEMATRIXIDXATT",
1853 "OBJREFERENCEMATRIXIDXATT",
"CONREFERENCEMATRIXIDXATT",
1854 "ORDERCONEIDXATT",
"CONSTANTMATRIXIDXATT",
"NORMSCALEFACTORATT",
1855 "DISTORTIONMATRIXIDXATT",
"AXISDIRECTIONATT",
"FIRSTAXISDIRECTIONATT",
1856 "SECONDAXISDIRECTIONATT",
"OSILEND",
"INSTANCEDATAEND",
1857 "INSTANCEDATASTARTEND",
"QUADRATICCOEFFICIENTSSTART",
1858 "QUADRATICCOEFFICIENTSEND",
"QTERMSTART",
"QTERMEND",
"CONESSTART",
1859 "CONESEND",
"NONNEGATIVECONESTART",
"NONNEGATIVECONEEND",
1860 "NONPOSITIVECONESTART",
"NONPOSITIVECONEEND",
"ORTHANTCONESTART",
1861 "ORTHANTCONEEND",
"POLYHEDRALCONESTART",
"POLYHEDRALCONEEND",
1862 "QUADRATICCONESTART",
"QUADRATICCONEEND",
"ROTATEDQUADRATICCONESTART",
1863 "ROTATEDQUADRATICCONEEND",
"SEMIDEFINITECONESTART",
1864 "SEMIDEFINITECONEEND",
"PRODUCTCONESTART",
"PRODUCTCONEEND",
1865 "INTERSECTIONCONESTART",
"INTERSECTIONCONEEND",
"DUALCONESTART",
1866 "DUALCONEEND",
"POLARCONESTART",
"POLARCONEEND",
"DIRECTIONSTART",
1867 "DIRECTIONEND",
"FACTORSSTART",
"FACTORSEND",
"COMPONENTSSTART",
1868 "COMPONENTSEND",
"TIMEDOMAINSTART",
"TIMEDOMAINEND",
"STAGESSTART",
1869 "STAGESEND",
"STAGESTART",
"STAGEEND",
"INTERVALSTART",
"INTERVALEND",
1870 "HEADERSTART",
"HEADEREND",
"FILENAMESTART",
"FILENAMEEND",
1871 "FILENAMEEMPTY",
"FILENAMESTARTANDEND",
"FILESOURCESTART",
1872 "FILESOURCEEND",
"FILESOURCEEMPTY",
"FILESOURCESTARTANDEND",
1873 "FILEDESCRIPTIONSTART",
"FILEDESCRIPTIONEND",
"FILEDESCRIPTIONEMPTY",
1874 "FILEDESCRIPTIONSTARTANDEND",
"FILECREATORSTART",
"FILECREATOREND",
1875 "FILECREATOREMPTY",
"FILECREATORSTARTANDEND",
"FILELICENCESTART",
1876 "FILELICENCEEND",
"FILELICENCEEMPTY",
"FILELICENCESTARTANDEND",
1877 "INDEXESSTART",
"INDEXESEND",
"VALUESSTART",
"VALUESEND",
1878 "NONZEROSSTART",
"NONZEROSEND",
"ELSTART",
"ELEND",
"ENUMERATIONSTART",
1879 "ENUMERATIONEND",
"ITEMEMPTY",
"ITEMSTART",
"ITEMEND",
"ITEMSTARTANDEND",
1880 "BASE64START",
"BASE64END",
"NUMBEROFELATT",
"NUMBEROFENUMERATIONSATT",
1881 "NUMBEROFITEMSATT",
"EMPTYCATEGORYATT",
"CATEGORYATT",
1882 "EMPTYDESCRIPTIONATT",
"DESCRIPTIONATT",
"EMPTYSOLVERATT",
"SOLVERATT",
1883 "EMPTYNAMEATT",
"NAMEATT",
"EMPTYTYPEATT",
"TYPEATT",
"EMPTYENUMTYPEATT",
1884 "ENUMTYPEATT",
"EMPTYSHAPEATT",
"SHAPEATT",
"EMPTYUNITATT",
"UNITATT",
1885 "EMPTYVALUEATT",
"VALUEATT",
"EMPTYVALUETYPEATT",
"VALUETYPEATT",
1886 "EMPTYCONTYPEATT",
"CONTYPEATT",
"EMPTYOBJTYPEATT",
"OBJTYPEATT",
1887 "EMPTYVARTYPEATT",
"VARTYPEATT",
"EMPTYMATRIXCONTYPEATT",
1888 "MATRIXCONTYPEATT",
"EMPTYMATRIXOBJTYPEATT",
"MATRIXOBJTYPEATT",
1889 "EMPTYMATRIXVARTYPEATT",
"MATRIXVARTYPEATT",
"EMPTYMATRIXTYPEATT",
1890 "MATRIXTYPEATT",
"EMPTYSYMMETRYATT",
"SYMMETRYATT",
"EMPTYROWMAJORATT",
1891 "ROWMAJORATT",
"EMPTYBASETRANSPOSEATT",
"BASETRANSPOSEATT",
1892 "NUMBEROFBLOCKSATT",
"NUMBEROFCOLUMNSATT",
"NUMBEROFROWSATT",
1893 "NUMBEROFMATRICESATT",
"NUMBEROFVALUESATT",
"NUMBEROFCONSTRAINTSATT",
1894 "NUMBEROFCONATT",
"NUMBEROFCONIDXATT",
"NUMBEROFOBJECTIVESATT",
1895 "NUMBEROFOBJATT",
"NUMBEROFOBJIDXATT",
"NUMBEROFVARIABLESATT",
1896 "NUMBEROFVARATT",
"NUMBEROFVARIDXATT",
"NUMBEROFMATRIXCONATT",
1897 "NUMBEROFMATRIXOBJATT",
"NUMBEROFMATRIXVARATT",
"BASEMATRIXIDXATT",
1898 "TARGETMATRIXFIRSTROWATT",
"TARGETMATRIXFIRSTCOLATT",
1899 "BASEMATRIXSTARTROWATT",
"BASEMATRIXSTARTCOLATT",
"BASEMATRIXENDROWATT",
1900 "BASEMATRIXENDCOLATT",
"SCALARMULTIPLIERATT",
"BLOCKROWIDXATT",
1901 "BLOCKCOLIDXATT",
"MATRIXVARIDXATT",
"MATRIXOBJIDXATT",
1902 "MATRIXCONIDXATT",
"IDXATT",
"INCRATT",
"MULTATT",
"SIZEOFATT",
1903 "COEFATT",
"CONSTANTATT",
"MATRICESSTART",
"MATRICESEND",
"MATRIXSTART",
1904 "MATRIXEND",
"BASEMATRIXEND",
"BASEMATRIXSTART",
"BLOCKSSTART",
1905 "BLOCKSEND",
"BLOCKSTART",
"BLOCKEND",
"COLOFFSETSTART",
"COLOFFSETEND",
1906 "ROWOFFSETSTART",
"ROWOFFSETEND",
"ELEMENTSSTART",
"ELEMENTSEND",
1907 "CONSTANTELEMENTSSTART",
"CONSTANTELEMENTSEND",
1908 "VARREFERENCEELEMENTSSTART",
"VARREFERENCEELEMENTSEND",
1909 "LINEARELEMENTSSTART",
"LINEARELEMENTSEND",
"GENERALELEMENTSSTART",
1910 "GENERALELEMENTSEND",
"CONREFERENCEELEMENTSSTART",
1911 "CONREFERENCEELEMENTSEND",
"OBJREFERENCEELEMENTSSTART",
1912 "OBJREFERENCEELEMENTSEND",
"STRINGVALUEDELEMENTSSTART",
1913 "STRINGVALUEDELEMENTSEND",
"STARTVECTORSTART",
"STARTVECTOREND",
1914 "INDEXSTART",
"INDEXEND",
"VALUESTART",
"VALUEEND",
"VARIDXSTART",
1915 "VARIDXEND",
"TRANSFORMATIONSTART",
"TRANSFORMATIONEND",
1916 "MATRIXPROGRAMMINGSTART",
"MATRIXPROGRAMMINGEND",
"MATRIXVARIABLESSTART",
1917 "MATRIXVARIABLESEND",
"MATRIXVARSTART",
"MATRIXVAREND",
1918 "MATRIXOBJECTIVESSTART",
"MATRIXOBJECTIVESEND",
"MATRIXOBJSTART",
1919 "MATRIXOBJEND",
"MATRIXCONSTRAINTSSTART",
"MATRIXCONSTRAINTSEND",
1920 "MATRIXCONSTART",
"MATRIXCONEND",
"CONSTART",
"CONEND",
1921 "CONSTRAINTSSTART",
"CONSTRAINTSEND",
"OBJSTART",
"OBJEND",
1922 "OBJECTIVESSTART",
"OBJECTIVESEND",
"VARSTART",
"VAREND",
1923 "VARIABLESSTART",
"VARIABLESEND",
"GENERALSTART",
"GENERALEND",
1924 "SYSTEMSTART",
"SYSTEMEND",
"SERVICESTART",
"SERVICEEND",
"JOBSTART",
1925 "JOBEND",
"OPTIMIZATIONSTART",
"OPTIMIZATIONEND",
"ATEQUALITYSTART",
1926 "ATEQUALITYEND",
"ATLOWERSTART",
"ATLOWEREND",
"ATUPPERSTART",
1927 "ATUPPEREND",
"BASICSTART",
"BASICEND",
"ISFREESTART",
"ISFREEEND",
1928 "SUPERBASICSTART",
"SUPERBASICEND",
"UNKNOWNSTART",
"UNKNOWNEND",
1929 "SERVICEURISTART",
"SERVICEURIEND",
"SERVICENAMESTART",
"SERVICENAMEEND",
1930 "INSTANCENAMESTART",
"INSTANCENAMEEND",
"JOBIDSTART",
"JOBIDEND",
1931 "OTHERSTART",
"OTHEREND",
"DUMMY",
"NONLINEAREXPRESSIONSSTART",
1932 "NONLINEAREXPRESSIONSEND",
"NUMBEROFNONLINEAREXPRESSIONS",
"NLSTART",
1933 "NLEND",
"MATRIXEXPRESSIONSSTART",
"MATRIXEXPRESSIONSEND",
1934 "NUMBEROFEXPR",
"EXPRSTART",
"EXPREND",
"NUMBEROFMATRIXTERMSATT",
1935 "MATRIXTERMSTART",
"MATRIXTERMEND",
"POWERSTART",
"POWEREND",
1936 "PLUSSTART",
"PLUSEND",
"MINUSSTART",
"MINUSEND",
"DIVIDESTART",
1937 "DIVIDEEND",
"LNSTART",
"LNEND",
"SQRTSTART",
"SQRTEND",
"SUMSTART",
1938 "SUMEND",
"PRODUCTSTART",
"PRODUCTEND",
"EXPSTART",
"EXPEND",
1939 "NEGATESTART",
"NEGATEEND",
"IFSTART",
"IFEND",
"SQUARESTART",
1940 "SQUAREEND",
"COSSTART",
"COSEND",
"SINSTART",
"SINEND",
"VARIABLESTART",
1941 "VARIABLEEND",
"ABSSTART",
"ABSEND",
"ERFSTART",
"ERFEND",
"MAXSTART",
1942 "MAXEND",
"ALLDIFFSTART",
"ALLDIFFEND",
"MINSTART",
"MINEND",
"ESTART",
1943 "EEND",
"PISTART",
"PIEND",
"TIMESSTART",
"TIMESEND",
"NUMBERSTART",
1944 "NUMBEREND",
"MATRIXDETERMINANTSTART",
"MATRIXDETERMINANTEND",
1945 "MATRIXTRACESTART",
"MATRIXTRACEEND",
"MATRIXTOSCALARSTART",
1946 "MATRIXTOSCALAREND",
"MATRIXDIAGONALSTART",
"MATRIXDIAGONALEND",
1947 "MATRIXDOTTIMESSTART",
"MATRIXDOTTIMESEND",
"MATRIXLOWERTRIANGLESTART",
1948 "MATRIXLOWERTRIANGLEEND",
"MATRIXUPPERTRIANGLESTART",
1949 "MATRIXUPPERTRIANGLEEND",
"MATRIXMERGESTART",
"MATRIXMERGEEND",
1950 "MATRIXMINUSSTART",
"MATRIXMINUSEND",
"MATRIXNEGATESTART",
1951 "MATRIXNEGATEEND",
"MATRIXPLUSSTART",
"MATRIXPLUSEND",
1952 "MATRIXTIMESSTART",
"MATRIXTIMESEND",
"MATRIXPRODUCTSTART",
1953 "MATRIXPRODUCTEND",
"MATRIXSCALARTIMESSTART",
"MATRIXSCALARTIMESEND",
1954 "MATRIXSUBMATRIXATSTART",
"MATRIXSUBMATRIXATEND",
"MATRIXTRANSPOSESTART",
1955 "MATRIXTRANSPOSEEND",
"MATRIXREFERENCESTART",
"MATRIXREFERENCEEND",
1956 "IDENTITYMATRIXSTART",
"IDENTITYMATRIXEND",
"MATRIXINVERSESTART",
1957 "MATRIXINVERSEEND",
"EMPTYINCLUDEDIAGONALATT",
"INCLUDEDIAGONALATT",
1958 "EMPTYIDATT",
"IDATT",
"' '",
"'\\t'",
"'\\r'",
"'\\n'",
"$accept",
1959 "osildoc",
"theInstanceEnd",
"osilEnd",
"osilEnding",
1960 "quadraticCoefficients",
"quadraticCoefficientsStart",
1961 "osilQuadnumberATT",
"qTermlist",
"qterm",
"qtermStart",
"qtermend",
1962 "anotherqTermATT",
"qtermatt",
"osilQtermidxOneATT",
1963 "osilQtermidxTwoATT",
"osilQtermcoefATT",
"osilQtermidxATT",
"matrices",
1964 "matricesStart",
"matricesAttributes",
"matricesContent",
1965 "matricesEmpty",
"matricesLaden",
"matrixList",
"cones",
"conesStart",
1966 "conesAttributes",
"conesContent",
"conesEmpty",
"conesLaden",
1967 "coneList",
"cone",
"nonnegativeCone",
"nonnegativeConeStart",
1968 "nonnegativeConeAttributes",
"nonnegativeConeAttList",
1969 "nonnegativeConeAtt",
"nonnegativeConeEnd",
"nonpositiveCone",
1970 "nonpositiveConeStart",
"nonpositiveConeAttributes",
1971 "nonpositiveConeAttList",
"nonpositiveConeAtt",
"nonpositiveConeEnd",
1972 "generalOrthantCone",
"generalOrthantConeStart",
1973 "generalOrthantConeAttributes",
"generalOrthantConeAttList",
1974 "generalOrthantConeAtt",
"generalOrthantConeContent",
1975 "generalOrthantConeDirectionList",
"generalOrthantConeDirections",
1976 "generalOrthantConeDirection",
"generalOrthantConeDirectionStart",
1977 "generalOrthantConeDirectionAttributes",
1978 "generalOrthantConeDirectionAttributeList",
1979 "generalOrthantConeDirectionAtt",
"generalOrthantConeDirectionEnd",
1980 "generalOrthantConeEnd",
"polyhedralCone",
"polyhedralConeStart",
1981 "polyhedralConeAttributes",
"polyhedralConeAttList",
"polyhedralConeAtt",
1982 "referenceMatrixATT",
"polyhedralConeEnd",
"quadraticCone",
1983 "quadraticConeStart",
"quadraticConeAttributes",
"quadraticConeAttList",
1984 "quadraticConeAtt",
"quadraticConeEnd",
"rotatedQuadraticCone",
1985 "rotatedQuadraticConeStart",
"rotatedQuadraticConeAttributes",
1986 "rotatedQuadraticConeAttList",
"rotatedQuadraticConeAtt",
1987 "rotatedQuadraticConeEnd",
"semidefiniteCone",
"semidefiniteConeStart",
1988 "semidefiniteConeAttributes",
"semidefiniteConeAttList",
1989 "semidefiniteConeAtt",
"semidefiniteConeEnd",
"productCone",
1990 "productConeStart",
"productConeAttributes",
"productConeAttList",
1991 "productConeAtt",
"productConeContent",
"productConeFactors",
1992 "productConeFactorsStart",
"productConeFactorsAttributes",
1993 "productConeFactorsContent",
"productConeFactorsEmpty",
1994 "productConeFactorsLaden",
"productConeFactorList",
1995 "productConeFactorsEnd",
"productConeEnd",
"intersectionCone",
1996 "intersectionConeStart",
"intersectionConeAttributes",
1997 "intersectionConeAttList",
"intersectionConeAtt",
1998 "intersectionConeContent",
"intersectionConeComponents",
1999 "intersectionConeComponentsStart",
2000 "intersectionConeComponentsAttributes",
2001 "intersectionConeComponentsContent",
"intersectionConeComponentsEmpty",
2002 "intersectionConeComponentsLaden",
"intersectionConeComponentList",
2003 "intersectionConeComponentsEnd",
"intersectionConeEnd",
2004 "matrixProgramming",
"matrixProgrammingStart",
2005 "matrixProgrammingContent",
"matrixProgrammingEmpty",
2006 "matrixProgrammingLaden",
"matrixVariables",
"matrixVariablesStart",
2007 "matrixVariablesAttributes",
"matrixVariablesContent",
2008 "matrixVariablesEmpty",
"matrixVariablesLaden",
"matrixVariablesEnd",
2009 "matrixVarList",
"matrixVar",
"matrixVarStart",
"matrixVarAttributes",
2010 "matrixVarAttList",
"matrixVarAtt",
"matrixVarEnd",
"matrixObjectives",
2011 "matrixObjectivesStart",
"matrixObjectivesAttributes",
2012 "matrixObjectivesContent",
"matrixObjectivesEmpty",
2013 "matrixObjectivesLaden",
"matrixObjectivesEnd",
"matrixObjList",
2014 "matrixObj",
"matrixObjStart",
"matrixObjAttributes",
"matrixObjAttList",
2015 "matrixObjAtt",
"matrixObjEnd",
"matrixConstraints",
2016 "matrixConstraintsStart",
"matrixConstraintsAttributes",
2017 "matrixConstraintsContent",
"matrixConstraintsEmpty",
2018 "matrixConstraintsLaden",
"matrixConstraintsEnd",
"matrixConList",
2019 "matrixCon",
"matrixConStart",
"matrixConAttributes",
"matrixConAttList",
2020 "matrixConAtt",
"matrixConEnd",
"timeDomain",
"timeDomainStart",
2021 "timeDomainContent",
"timeDomainEmpty",
"timeDomainLaden",
"stages",
2022 "stagesstart",
"osilNumberofstagesATT",
"stagelist",
"stage",
"$@1",
2023 "osilStagenameATT",
"stageend",
"stagecontent",
"stagevariables",
2024 "anotherstagevarATT",
"stagevaratt",
"osilNumberofstagevariablesATT",
2025 "osilStagevarstartidxATT",
"restofstagevariables",
"emptyvarlist",
2026 "stagevarlist",
"stagevar",
"$@2",
"osilStagevaridxATT",
"stagevarend",
2027 "stageconstraints",
"anotherstageconATT",
"stageconatt",
2028 "osilNumberofstageconstraintsATT",
"osilStageconstartidxATT",
2029 "restofstageconstraints",
"emptyconlist",
"stageconlist",
"stagecon",
2030 "$@3",
"osilStageconidxATT",
"stageconend",
"stageobjectives",
2031 "anotherstageobjATT",
"stageobjatt",
"osilNumberofstageobjectivesATT",
2032 "restofstageobjectives",
"emptyobjlist",
"stageobjlist",
"stageobj",
2033 "$@4",
"osilStageobjidxATT",
"stageobjend",
"interval",
"$@5",
2034 "intervalend",
"anotherIntervalATT",
"intervalatt",
2035 "osilStageobjstartidxATT",
"osilIntervalhorizonATT",
2036 "osilIntervalstartATT",
"numberOfMatricesATT",
"numberOfConesATT",
2037 "numberOfMatrixVarATT",
"numberOfMatrixObjATT",
"numberOfMatrixConATT",
2038 "normScaleFactorATT",
"distortionMatrixIdxATT",
"axisDirectionATT",
2039 "firstAxisDirectionATT",
"secondAxisDirectionATT",
"semidefinitenessATT",
2040 "matrixIdxATT",
"lbMatrixIdxATT",
"ubMatrixIdxATT",
2041 "constantMatrixIdxATT",
"templateMatrixIdxATT",
2042 "varReferenceMatrixIdxATT",
"objReferenceMatrixIdxATT",
2043 "conReferenceMatrixIdxATT",
"lbConeIdxATT",
"ubConeIdxATT",
2044 "orderConeIdxATT",
"aNumber",
"quote",
"xmlWhiteSpace",
2045 "xmlWhiteSpaceChar",
"osglIntArrayData",
"osglIntVectorElArray",
2046 "osglIntVectorEl",
"osglIntVectorElStart",
"osglIntVectorElAttributes",
2047 "osglIntVectorElAttList",
"osglIntVectorElAtt",
"osglIntVectorElContent",
2048 "osglIntVectorBase64",
"osglIntVectorBase64Content",
2049 "osglIntVectorBase64Empty",
"osglIntVectorBase64Laden",
2050 "osglDblArrayData",
"osglDblVectorElArray",
"osglDblVectorEl",
2051 "osglDblVectorElStart",
"osglDblVectorElAttributes",
2052 "osglDblVectorElContent",
"osglDblVectorBase64",
2053 "osglDblVectorBase64Content",
"osglDblVectorBase64Empty",
2054 "osglDblVectorBase64Laden",
"osglMatrix",
"matrixStart",
2055 "matrixAttributes",
"matrixAttributeList",
"matrixAttribute",
2056 "matrixContent",
"matrixEmpty",
"matrixLaden",
"matrixBody",
2057 "baseMatrix",
"baseMatrixStart",
"baseMatrixAttributes",
2058 "baseMatrixAttList",
"baseMatrixAtt",
"baseMatrixEnd",
2059 "matrixConstructorList",
"matrixConstructor",
"constantElements",
2060 "constantElementsStart",
"constantElementsAttributes",
2061 "constantElementsAttList",
"constantElementsAtt",
2062 "constantElementsContent",
"constantElementsNonzeros",
2063 "matrixElementsStartVector",
"matrixElementsStartVectorStart",
2064 "matrixElementsStartVectorContent",
"matrixElementsStartVectorEmpty",
2065 "matrixElementsStartVectorLaden",
"matrixElementsStartVectorBody",
2066 "matrixElementsIndexVector",
"matrixElementsIndexStart",
2067 "matrixElementsIndexContent",
"matrixElementsIndexEmpty",
2068 "matrixElementsIndexLaden",
"matrixElementsIndexBody",
2069 "constantElementsValues",
"constantElementsValueStart",
2070 "constantElementsValueContent",
"constantElementsValueEmpty",
2071 "constantElementsValueLaden",
"constantElementsValueBody",
2072 "varReferenceElements",
"varReferenceElementsStart",
2073 "varReferenceElementsAttributes",
"varReferenceElementsAttList",
2074 "varReferenceElementsAtt",
"varReferenceElementsContent",
2075 "varReferenceElementsNonzeros",
"varReferenceElementsValues",
2076 "varReferenceElementsValuesStart",
"varReferenceElementsValuesContent",
2077 "varReferenceElementsValuesEmpty",
"varReferenceElementsValuesLaden",
2078 "varReferenceElementsValuesBody",
"linearElements",
2079 "linearElementsStart",
"linearElementsAttributes",
2080 "linearElementsAttList",
"linearElementsAtt",
"linearElementsContent",
2081 "linearElementsNonzeros",
"linearElementsValues",
2082 "linearElementsValuesStart",
"linearElementsValuesContent",
2083 "linearElementsValuesEmpty",
"linearElementsValuesLaden",
2084 "linearElementsValuesBody",
"linearElementsValuesElList",
2085 "linearElementsValuesEl",
"linearElementsValuesElStart",
2086 "linearElementsValuesElAttributes",
"linearElementsValuesElAttList",
2087 "linearElementsValuesElAtt",
"linearElementsValuesElContent",
2088 "linearElementsValuesElEmpty",
"linearElementsValuesElLaden",
2089 "linearElementsValuesVarIdxList",
"linearElementsValuesVarIdx",
2090 "linearElementsValuesVarIdxStart",
"LinearElementsValuesVarIdxCoefATT",
2091 "linearElementsValuesVarIdxContent",
"generalElements",
2092 "generalElementsStart",
"generalElementsAttributes",
2093 "generalElementsAttList",
"generalElementsAtt",
"generalElementsContent",
2094 "generalElementsNonzeros",
"generalElementsValues",
2095 "generalElementsValuesStart",
"generalElementsValuesContent",
2096 "generalElementsValuesEmpty",
"generalElementsValuesLaden",
2097 "generalElementsElList",
"generalElementsEl",
"generalElementsElStart",
2098 "generalElementsElContent",
"generalElementsElEmpty",
2099 "generalElementsElLaden",
"objReferenceElements",
2100 "objReferenceElementsStart",
"objReferenceElementsAttributes",
2101 "objReferenceElementsAttList",
"objReferenceElementsAtt",
2102 "objReferenceElementsContent",
"objReferenceElementsNonzeros",
2103 "objReferenceElementsValues",
"objReferenceElementsValuesStart",
2104 "objReferenceElementsValuesContent",
"objReferenceElementsValuesEmpty",
2105 "objReferenceElementsValuesLaden",
"objReferenceElementsValuesBody",
2106 "conReferenceElements",
"conReferenceElementsStart",
2107 "conReferenceElementsAttributes",
"conReferenceElementsAttList",
2108 "conReferenceElementsAtt",
"conReferenceElementsContent",
2109 "conReferenceElementsNonzeros",
"conReferenceElementsValues",
2110 "conReferenceElementsValuesStart",
"conReferenceElementsValuesContent",
2111 "conReferenceElementsValuesEmpty",
"conReferenceElementsValuesLaden",
2112 "conReferenceElementsElList",
"conReferenceElementsEl",
2113 "conReferenceElementsElStart",
"conReferenceElementsElAttributeList",
2114 "conReferenceElementsElAttribute",
"conReferenceElementsElContent",
2115 "matrixTransformation",
"matrixTransformationStart",
2116 "matrixTransformationShapeATT",
"matrixTransformationEnd",
2117 "matrixBlocks",
"matrixBlocksStart",
"matrixBlocksAttributes",
2118 "matrixBlocksContent",
"matrixBlocksEnd",
"colOffsets",
"colOffsetStart",
2119 "colOffsetNumberOfElAttribute",
"colOffsetContent",
"colOffsetEmpty",
2120 "colOffsetLaden",
"colOffsetBody",
"rowOffsets",
"rowOffsetStart",
2121 "rowOffsetNumberOfElAttribute",
"rowOffsetContent",
"rowOffsetEmpty",
2122 "rowOffsetLaden",
"rowOffsetBody",
"blockList",
"matrixBlock",
2123 "matrixBlockStart",
"matrixBlockAttributes",
"matrixBlockAttList",
2124 "matrixBlockAtt",
"matrixBlockContent",
"blockEmpty",
"blockLaden",
2125 "blockBody",
"osglNumberOfBlocksATT",
"osglNumberOfColumnsATT",
2126 "osglNumberOfElATT",
"osglNumberOfRowsATT",
"osglNumberOfValuesATT",
2127 "osglNumberOfVarIdxATT",
"osglBase64SizeATT",
"osglBaseMatrixIdxATT",
2128 "osglBaseMatrixStartRowATT",
"osglBaseMatrixStartColATT",
2129 "osglBaseMatrixEndRowATT",
"osglBaseMatrixEndColATT",
2130 "osglBlockRowIdxATT",
"osglBlockColIdxATT",
"osglCoefATT",
2131 "osglConstantATT",
"osglIdxATT",
"osglIncrATT",
"osglMultATT",
2132 "osglScalarMultiplierATT",
"osglTargetMatrixFirstRowATT",
2133 "osglTargetMatrixFirstColATT",
"osglBaseTransposeATT",
2134 "baseTransposeAttEmpty",
"baseTransposeAttContent",
"osglNameATT",
2135 "nameAttEmpty",
"nameAttContent",
"osglRowMajorATT",
"rowMajorAttEmpty",
2136 "rowMajorAttContent",
"osglShapeATT",
"shapeAttEmpty",
"shape",
2137 "osglSymmetryATT",
"symmetryAttEmpty",
"symmetryAttContent",
2138 "osglTypeATT",
"typeAttEmpty",
"typeAttContent",
"osglValueATT",
2139 "valueAttEmpty",
"valueAttContent",
"osglValueTypeATT",
2140 "valueTypeAttEmpty",
"valueTypeAttContent",
"osglVarTypeATT",
2141 "varTypeAttEmpty",
"varTypeAttContent",
"nonlinearExpressions",
2142 "nonlinearExpressionsStart",
"nlnumberatt",
"nlnodes",
2143 "scalarExpressionTree",
"nlstart",
"nlAttributes",
"nlAttributeList",
2144 "nlAttribute",
"nlnode",
"E",
"$@6",
"eend",
"PI",
"$@7",
"piend",
2145 "times",
"$@8",
"plus",
"$@9",
"minus",
"$@10",
"negate",
"$@11",
2146 "divide",
"$@12",
"power",
"$@13",
"ln",
"$@14",
"sqrt",
"$@15",
2147 "square",
"$@16",
"cos",
"$@17",
"sin",
"$@18",
"exp",
"$@19",
"abs",
2148 "absStart",
"absEnd",
"erf",
"$@20",
"if",
"$@21",
"matrixDeterminant",
2149 "$@22",
"matrixTrace",
"$@23",
"matrixToScalar",
"$@24",
"number",
2150 "numberStart",
"numberEnd",
"numberAttributeList",
"numberAttribute",
2151 "numberidATT",
"$@25",
"variable",
"$@26",
"variableend",
"$@27",
2152 "anotherVariableATT",
"variableATT",
"variablecoefATT",
"variableidxATT",
2153 "sum",
"$@28",
"anothersumnlnode",
"allDiff",
"$@29",
2154 "anotherallDiffnlnode",
"max",
"$@30",
"anothermaxnlnode",
"min",
"$@31",
2155 "anotherminnlnode",
"product",
"$@32",
"anotherproductnlnode",
2156 "OSnLMNode",
"matrixReference",
"matrixReferenceStart",
2157 "matrixReferenceEnd",
"matrixVarReference",
"matrixVarReferenceStart",
2158 "matrixVarReferenceEnd",
"matrixVarIdxATT",
"matrixObjReference",
2159 "matrixObjReferenceStart",
"matrixObjReferenceEnd",
"matrixObjIdxATT",
2160 "matrixConReference",
"matrixConReferenceStart",
"matrixConReferenceEnd",
2161 "matrixConIdxATT",
"matrixDiagonal",
"matrixDiagonalStart",
2162 "matrixDiagonalContent",
"matrixDotTimes",
"matrixDotTimesStart",
2163 "matrixDotTimesContent",
"identityMatrix",
"identityMatrixStart",
2164 "identityMatrixContent",
"matrixInverse",
"matrixInverseStart",
2165 "matrixInverseContent",
"matrixLowerTriangle",
2166 "matrixLowerTriangleStart",
"matrixLowerTriangleAttribute",
2167 "matrixLowerTriangleContent",
"matrixUpperTriangle",
2168 "matrixUpperTriangleStart",
"matrixUpperTriangleAttribute",
2169 "matrixUpperTriangleContent",
"includeDiagonalATT",
"matrixMerge",
2170 "matrixMergeStart",
"matrixMergeEnd",
"matrixMinus",
"matrixMinusStart",
2171 "matrixMinusContent",
"matrixNegate",
"matrixNegateStart",
2172 "matrixNegateContent",
"matrixPlus",
"matrixPlusStart",
2173 "matrixPlusContent",
"matrixTimes",
"matrixTimesStart",
2174 "matrixTimesContent",
"matrixProduct",
"$@33",
2175 "anothermatrixproductnode",
"matrixScalarTimes",
2176 "matrixScalarTimesStart",
"matrixScalarTimesContent",
2177 "matrixSubMatrixAt",
"matrixSubMatrixAtStart",
2178 "matrixSubMatrixAtContent",
"matrixTranspose",
"matrixTransposeStart",
2179 "matrixTransposeContent",
"matrixExpressions",
"matrixExpressionsStart",
2180 "matrixExpressionsAtt",
"numberOfExprATT",
"matrixExpressionsContent",
2181 "matrixExpressionsEmpty",
"matrixExpressionsLaden",
"matrixExprList",
2182 "matrixExpr",
"matrixExprStart",
"matrixExprAttributes",
2183 "matrixExprAttributeList",
"exprAttribute",
YY_NULLPTR
2193 #define YYPACT_NINF (-1315)
2195 #define yypact_value_is_default(Yyn) \
2196 ((Yyn) == YYPACT_NINF)
2198 #define YYTABLE_NINF (-1)
2200 #define yytable_value_is_error(Yyn) \
2207 14, -1315, 97, -189, 104, -1315, -1315, -78, -166, 119,
2208 -1315, -1315, 96, -24, 138, -1315, 143, 60, -1315, -89,
2209 142, 155, 126, -1315, 161, -177, 162, -1315, -1315, -1315,
2210 -1315, -1315, 99, 195, 172, 202, -1315, 177, -1315, -1315,
2211 -1315, -1315, -1315, 199, -1315, -1315, -1315, -1315, 167, 41,
2212 -1315, 182, 221, -1315, -58, -1315, -1315, -1315, 197, -1315,
2213 -1315, -1315, -1315, -1315, 212, 48, 224, 230, -50, -1315,
2214 -1315, 213, 258, 262, 268, 270, -1315, -1315, -1315, -1315,
2215 -1315, -1315, -1315, -1315, 223, -1315, 220, -1315, -1315, -1315,
2216 -1315, 33, 101, 282, 301, -1315, -1315, -1315, -1315, -1315,
2217 -1315, 590, -1315, 330, 338, -1315, -1315, -1315, -1315, -1315,
2218 -1315, 344, 348, 373, -1315, -1315, -1315, -1315, -1315, -1315,
2219 290, 353, 300, 305, -1315, 132, 209, 414, 293, -1315,
2220 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2221 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2222 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2223 316, -26, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2224 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2225 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 94,
2226 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2227 -1315, -1315, -1315, -1315, -1315, 590, -1315, -1315, -1315, -1315,
2228 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 419,
2229 452, 453, 467, 490, 495, 37, -1315, 497, -1315, -1315,
2230 -1315, -1315, 139, 328, 501, 319, -1315, 507, -1315, -1315,
2231 -1315, -1315, -1315, 321, -16, 329, -16, 331, -16, 334,
2232 50, 361, 259, 363, 254, 365, 22, 500, -16, 504,
2233 -16, -1315, 311, -1315, -1315, -1315, -1315, 535, -1315, 537,
2234 -1315, 539, 536, 538, -1315, -1315, -1315, -1315, -1315, -1315,
2235 -1315, -1315, -1315, -1315, -1315, -1315, 590, 590, 590, 590,
2236 590, 590, -1315, -1315, 590, 590, 590, 590, 590, 590,
2237 -1315, 590, -1315, -1315, -1315, 371, 382, 590, 135, 135,
2238 135, -1315, 204, 35, -1315, 544, -1315, -1315, -1315, -1315,
2239 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 548, 477, -1315,
2240 492, 90, -1315, 320, 249, 552, 384, -1315, 558, -1315,
2241 -1315, -1315, -1315, -1315, 562, 152, -1315, 517, -1315, -1315,
2242 -1315, -1315, -1315, -1315, 523, -1315, -1315, -1315, -1315, -1315,
2243 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 524, -1315,
2244 570, -1315, -1315, -1315, -1315, -1315, -1315, 525, -1315, 572,
2245 573, 575, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2246 526, -1315, 576, 578, -1315, -1315, -1315, -1315, -1315, -1315,
2247 -1315, -1315, -1315, 527, -1315, 584, -1315, -1315, -1315, -1315,
2248 -1315, 518, -1315, -1315, -1315, -1315, -1315, 515, -1315, -1315,
2249 -1315, -1315, -1315, -1315, 387, -1315, -1315, 585, 587, 588,
2250 592, 593, 590, 590, 590, 590, 277, 274, 299, 206,
2251 271, 272, 590, 264, 269, 265, 43, 256, 318, 411,
2252 450, -1315, 252, -1315, -1315, 253, -1315, 590, -1315, -1315,
2253 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2254 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 246, -1315, 19,
2255 -1315, 418, -1315, 420, -1315, 422, -1315, 135, -1315, 135,
2256 -1315, 590, -1315, 135, -1315, 217, -1315, 217, -1315, 388,
2257 -1315, 135, -1315, 135, -1315, 135, -1315, 135, -1315, -1315,
2258 590, -1315, 590, -1315, 135, 257, 261, -1315, -1315, -1315,
2259 263, -1315, 628, 667, -1315, -1315, -1315, -1315, -1315, -1315,
2260 -1315, -1315, -159, -159, 664, -1315, -1315, 542, -1315, 595,
2261 668, 672, -1315, -1315, -1315, -1315, -1315, 674, 392, -1315,
2262 678, -1315, -1315, -1315, -1315, -1315, 679, 156, -1315, -1315,
2263 -1315, -1315, -1315, -1315, -1315, -1315, 633, 618, -1315, 683,
2264 -1315, -1315, 684, 685, -1315, 686, 687, -1315, 688, -1315,
2265 631, 577, -1315, 630, 577, -1315, 89, 397, 136, -1315,
2266 -1315, -1315, 689, 690, 385, 386, 380, 381, -1315, -1315,
2267 -1315, -1315, -1315, -1315, -1315, -1315, 590, -1315, -1315, -1315,
2268 -1315, 505, 694, 697, -1315, -1315, -1315, -1315, -1315, -1315,
2269 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 350, -1315, -1315,
2270 700, 703, 399, 704, 401, 705, 403, 706, 405, 345,
2271 -1315, 135, -1315, 322, -1315, 317, -1315, 713, 707, -1315,
2272 708, -1315, -1315, 343, -1315, 135, -1315, 340, -1315, 135,
2273 -1315, 135, -1315, 135, -1315, 590, -1315, 333, -1315, -1315,
2274 -1315, -1315, 717, -1315, 718, 730, 408, -1315, -1315, -1315,
2275 729, -1315, -1315, -1315, -1315, -1315, 731, 171, -1315, -1315,
2276 -1315, -1315, -1315, -1315, 423, 42, -1315, -1315, -1315, -1315,
2277 -1315, 733, 735, 737, 739, 741, 743, -1315, -1315, -1315,
2278 745, 425, -1315, -1315, -1315, 427, -1315, -1315, -1315, -1315,
2279 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2280 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 303,
2281 -1315, 594, -1315, 532, -1315, -1315, 752, 749, 753, 772,
2282 774, 776, 778, 780, 782, -1315, -1315, -1315, -1315, -1315,
2283 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2284 -1315, -1315, -1315, 456, -1315, -1315, 788, -1315, -1315, -114,
2285 790, 792, -1315, 404, -1315, 796, -1315, 560, -1315, 802,
2286 -1315, 564, -1315, 804, -1315, 565, -1315, -1315, 449, -1315,
2287 -1315, 808, 135, 135, -1315, 432, -1315, 439, 441, 435,
2288 590, -1315, -1315, 821, -1315, 823, -1315, 568, -1315, 827,
2289 829, 831, -178, -1315, -1315, -1315, -1315, -1315, -1315, 438,
2290 87, -1315, 597, -1315, 833, 837, 839, 843, 845, 847,
2291 -1315, 854, 851, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2292 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 440, -54, -1315,
2293 -1315, -1315, -1315, -1315, -1315, 855, -1315, 747, -1315, -1315,
2294 -1315, -1315, 747, -1315, -1315, -1315, 852, -40, 860, -40,
2295 862, -40, 863, -40, 864, -40, 865, -40, 866, -1315,
2296 857, 867, -1315, -1315, -1315, 873, 874, 875, 876, 877,
2297 878, 879, -1315, -1315, 543, 880, 881, -1315, -1315, 882,
2298 883, -1315, 884, -1315, 885, -1315, 886, -1315, -1315, -1315,
2299 512, -1315, 519, -1315, -1315, -1315, -1315, -1315, 590, -1315,
2300 -1315, -1315, 815, 640, -1315, -1315, -1315, -1315, -1315, -1315,
2301 -1315, 442, 170, -1315, 648, -1315, 891, 892, 893, -1315,
2302 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 896,
2303 898, 900, 902, 904, 906, 908, 912, -1315, 849, -1315,
2304 -1315, -1315, -1315, 914, 716, 853, -1315, 816, -1315, 859,
2305 -1315, 699, -1315, 929, 928, -1315, -1315, -1315, -1315, -1315,
2306 699, -1315, -1315, -1315, 699, -1315, -1315, -1315, 699, -1315,
2307 -1315, -1315, 699, -1315, -1315, -1315, 699, -1315, -1315, -1315,
2308 135, 932, 748, -1315, -1315, 23, 934, 936, 938, 940,
2309 942, 944, 946, 948, -1315, -1315, -1315, -1315, -1315, -1315,
2310 -1315, -1315, -1315, -1315, 135, 39, -1315, -1315, 701, 947,
2311 -50, -1315, 709, -1315, 952, -1315, -1315, -1315, -1315, -1315,
2312 -1315, -1315, -1315, -1315, -1315, -1315, 955, 958, 959, 960,
2313 961, 962, 963, 964, 965, -1315, 966, -1315, -1315, 967,
2314 444, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2315 734, 446, 968, 971, 734, -1315, 734, -1315, 734, -1315,
2316 734, -1315, 734, -1315, 726, 970, -1315, 727, 577, -1315,
2317 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 589, -1315,
2318 714, 974, 975, -1315, -1315, -1315, -1315, -1315, 51, -1315,
2319 -1315, 135, -1315, -1315, -1315, -1315, 973, 976, 977, 978,
2320 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 981, -1315, 44,
2321 -1315, -1315, -1315, 979, 267, -1315, 770, 754, 455, -1315,
2322 747, -1315, -1315, -1315, -1315, 983, 757, 773, 759, 775,
2323 760, 777, 761, 771, 763, 779, -1315, -1315, -1315, -1315,
2324 -1315, 577, 457, -1315, -1315, -1315, 736, -1315, 740, 994,
2325 998, -1315, 750, 999, 1001, -1315, -1315, -1315, -1315, -1315,
2326 53, 695, 1002, -1315, -1315, -1315, 1003, 894, -1315, 1006,
2327 -1315, 1005, -1315, -1315, -1315, -1315, -1315, -1315, 459, -1315,
2328 747, -1315, -1315, -1315, -1315, 784, -1315, -1315, -1315, 461,
2329 -1315, -1315, -1315, 463, -1315, -1315, -1315, 468, -1315, -1315,
2330 -1315, 470, -1315, -1315, -1315, 472, -1315, 276, 476, -1315,
2331 -1315, 747, -1315, -1315, -1315, -1315, -1315, 819, 1009, 1010,
2332 -1315, 762, -1315, 764, 1015, 1016, -1315, 765, 1017, 1018,
2333 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 910,
2334 1022, -1315, 909, -1315, -1315, -1315, -1315, 797, -1315, -1315,
2335 747, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2336 -1315, -1315, -1315, -1315, -1315, 747, -1315, -1315, -1315, -1315,
2337 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2338 747, -1315, -1315, -1315, -1315, 812, 1024, 478, -1315, -1315,
2339 -1315, -1315, 835, 1025, 1026, -1315, 781, -1315, 783, 1029,
2340 1030, -1315, 1031, 716, -1315, 925, -1315, 805, -1315, -1315,
2341 809, 810, 935, -75, -1315, 813, -57, 480, -35, -1315,
2342 826, -1315, 1038, -1315, 786, -1315, 1040, 482, -1315, -1315,
2343 -1315, -1315, 856, 1044, 1045, -1315, 484, -1315, -1315, 858,
2344 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 486,
2345 -1315, -1315, -1315, -1315, -1315, -1315, 311, -1315, -1315, -1315,
2346 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 1046, -1315,
2347 1050, -1315, 801, -1315, 1051, 491, -1315, -1315, -1315, 66,
2348 -1315, -1315, -1315, 1047, -1315, 566, -105, -1315, 590, -1315,
2349 -1315, -1315, 28, -1315, 850, 1055, 1056, -1315, 1057, -1315,
2350 1058, -1315, 803, -1315, 945, -1315, -1315, -1315, -1315, -1315,
2351 -1315, -1315, -1315, 1059, 1060, -1315, -1315, -1315, 956, 1064,
2352 -1315, 1070, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 89,
2353 -1315, -1315, -1315, -1315, 1066, -1315, -1315, 969, -38, 1069,
2354 -1315, -1315, 972, 1068, -1315, -1315, -1315, -1315, -1315, -1315,
2355 -1315, 887, 1071, 1072, -1315, -1315, 1073, 1067, -1315, -1315,
2356 -1315, -1315, 1077, -1315, 1076, 861, -1315, -1315
2364 8, 10, 0, 729, 0, 1, 731, 28, 0, 0,
2365 12, 30, 38, 0, 0, 733, 0, 0, 40, 188,
2366 0, 0, 0, 31, 0, 0, 0, 9, 15, 13,
2367 18, 190, 277, 0, 0, 0, 41, 0, 34, 36,
2368 29, 32, 33, 0, 730, 736, 734, 738, 0, 0,
2369 279, 0, 0, 193, 195, 189, 191, 192, 0, 44,
2370 46, 39, 42, 43, 0, 0, 0, 0, 737, 11,
2371 16, 0, 0, 0, 0, 0, 14, 19, 20, 21,
2372 22, 23, 4, 3, 7, 282, 354, 278, 280, 281,
2373 197, 224, 0, 0, 0, 365, 35, 430, 37, 432,
2374 732, 0, 707, 0, 0, 740, 741, 705, 706, 739,
2375 17, 0, 0, 0, 390, 6, 2, 5, 283, 287,
2376 0, 0, 0, 0, 226, 250, 0, 0, 0, 198,
2377 366, 45, 58, 68, 78, 101, 113, 126, 140, 151,
2378 170, 47, 48, 60, 49, 70, 50, 80, 51, 103,
2379 52, 115, 53, 128, 54, 142, 55, 153, 56, 172,
2380 0, 431, 787, 779, 781, 785, 789, 791, 837, 853,
2381 799, 783, 806, 793, 795, 797, 825, 802, 804, 845,
2382 841, 849, 769, 773, 777, 815, 808, 810, 812, 0,
2383 763, 764, 744, 745, 747, 748, 749, 750, 752, 753,
2384 754, 756, 755, 757, 759, 0, 760, 758, 766, 767,
2385 768, 742, 818, 743, 746, 765, 761, 762, 751, 0,
2386 0, 0, 0, 0, 0, 0, 284, 0, 291, 285,
2387 358, 252, 948, 0, 0, 0, 227, 0, 201, 204,
2388 196, 199, 200, 0, 59, 0, 69, 0, 79, 0,
2389 102, 0, 114, 0, 127, 0, 141, 0, 152, 0,
2390 171, 444, 447, 429, 442, 443, 699, 0, 715, 0,
2391 711, 0, 0, 0, 433, 436, 435, 437, 697, 698,
2392 434, 709, 710, 438, 713, 714, 0, 0, 0, 0,
2393 0, 0, 839, 855, 0, 0, 0, 0, 0, 0,
2394 831, 0, 847, 843, 851, 0, 0, 0, 0, 0,
2395 0, 735, 0, 0, 708, 0, 24, 25, 27, 26,
2396 390, 390, 392, 393, 394, 395, 391, 0, 291, 289,
2397 0, 0, 950, 0, 0, 0, 0, 253, 0, 230,
2398 233, 225, 228, 229, 0, 0, 65, 0, 57, 61,
2399 63, 62, 64, 75, 0, 67, 71, 73, 72, 74,
2400 85, 88, 77, 81, 83, 82, 84, 110, 0, 100,
2401 0, 104, 107, 106, 105, 108, 123, 0, 112, 0,
2402 0, 0, 116, 121, 120, 122, 118, 117, 119, 137,
2403 0, 125, 0, 0, 129, 134, 133, 135, 136, 131,
2404 130, 132, 148, 0, 139, 0, 143, 147, 145, 144,
2405 146, 0, 150, 154, 156, 155, 157, 0, 169, 173,
2406 175, 174, 176, 449, 0, 464, 451, 0, 0, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 0, 771, 0, 770, 775, 0, 774, 0, 882, 887,
2410 892, 897, 900, 909, 914, 920, 924, 927, 930, 933,
2411 935, 940, 943, 946, 877, 903, 906, 0, 857, 0,
2412 858, 0, 859, 0, 860, 0, 861, 0, 862, 0,
2413 875, 0, 863, 0, 864, 910, 865, 915, 866, 0,
2414 867, 0, 868, 0, 869, 0, 870, 0, 871, 872,
2415 0, 873, 0, 874, 0, 0, 0, 803, 801, 816,
2416 0, 719, 0, 0, 820, 821, 717, 718, 814, 819,
2417 822, 687, 387, 388, 0, 286, 290, 293, 356, 0,
2418 0, 0, 355, 359, 360, 361, 194, 0, 0, 951,
2419 0, 256, 259, 251, 254, 255, 0, 0, 367, 203,
2420 207, 202, 205, 209, 66, 76, 0, 87, 111, 0,
2421 124, 390, 0, 0, 138, 0, 0, 149, 0, 160,
2422 0, 0, 179, 0, 0, 445, 446, 0, 450, 700,
2423 716, 712, 0, 0, 0, 0, 0, 0, 790, 792,
2424 838, 840, 854, 856, 800, 784, 0, 794, 796, 798,
2425 827, 0, 0, 0, 826, 832, 833, 834, 805, 846,
2426 848, 842, 844, 850, 852, 772, 776, 0, 937, 809,
2427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2428 896, 0, 899, 0, 902, 0, 905, 0, 0, 911,
2429 0, 916, 921, 0, 919, 0, 923, 0, 926, 0,
2430 929, 0, 932, 0, 939, 0, 942, 0, 945, 811,
2431 813, 817, 0, 823, 0, 0, 0, 357, 390, 390,
2432 0, 955, 957, 949, 953, 954, 0, 0, 368, 232,
2433 236, 231, 234, 238, 0, 208, 99, 86, 91, 89,
2434 93, 0, 0, 0, 0, 0, 0, 375, 168, 158,
2435 0, 0, 161, 187, 177, 0, 180, 635, 475, 506,
2436 523, 561, 603, 586, 630, 465, 466, 477, 467, 508,
2437 468, 525, 469, 563, 470, 588, 471, 605, 472, 631,
2438 473, 0, 463, 0, 448, 695, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 452, 453, 456, 457, 458,
2440 459, 461, 454, 455, 460, 693, 694, 672, 674, 788,
2441 780, 782, 786, 0, 828, 829, 0, 390, 778, 0,
2442 0, 0, 878, 0, 876, 0, 883, 0, 881, 0,
2443 888, 0, 886, 0, 893, 0, 891, 898, 0, 904,
2444 907, 0, 0, 0, 922, 0, 928, 0, 0, 0,
2445 0, 947, 720, 0, 288, 0, 295, 298, 292, 0,
2446 0, 0, 0, 369, 258, 262, 257, 260, 264, 0,
2447 237, 222, 0, 206, 0, 0, 0, 0, 0, 0,
2448 727, 0, 0, 210, 215, 217, 213, 214, 216, 218,
2449 212, 211, 221, 219, 220, 725, 726, 0, 92, 109,
2450 370, 371, 372, 373, 374, 0, 164, 398, 159, 162,
2451 163, 183, 398, 178, 181, 182, 0, 476, 0, 507,
2452 0, 524, 0, 562, 0, 587, 0, 604, 0, 632,
2453 0, 0, 636, 462, 390, 0, 0, 0, 0, 0,
2454 0, 0, 390, 807, 0, 0, 0, 936, 938, 0,
2455 0, 879, 0, 884, 0, 889, 0, 894, 901, 918,
2456 0, 908, 0, 913, 925, 931, 934, 941, 0, 824,
2457 294, 300, 0, 317, 363, 364, 952, 956, 960, 958,
2458 962, 0, 263, 248, 0, 235, 0, 0, 0, 239,
2459 245, 242, 243, 244, 241, 240, 247, 246, 223, 0,
2460 0, 0, 0, 0, 0, 0, 0, 97, 0, 90,
2461 94, 96, 95, 0, 0, 0, 166, 396, 397, 0,
2462 185, 0, 703, 0, 0, 478, 479, 480, 701, 702,
2463 0, 509, 510, 511, 0, 526, 527, 528, 0, 564,
2464 565, 566, 0, 589, 590, 591, 0, 606, 607, 608,
2465 0, 0, 0, 634, 696, 0, 0, 0, 0, 0,
2466 0, 0, 0, 0, 830, 836, 835, 376, 880, 885,
2467 890, 895, 912, 917, 0, 0, 296, 319, 336, 0,
2468 961, 275, 0, 261, 0, 265, 270, 272, 268, 269,
2469 271, 273, 267, 266, 274, 249, 0, 0, 0, 0,
2470 0, 0, 0, 0, 0, 728, 0, 98, 673, 0,
2471 0, 167, 165, 401, 399, 403, 186, 184, 485, 474,
2472 482, 0, 0, 0, 513, 505, 530, 522, 568, 560,
2473 593, 585, 610, 602, 0, 0, 640, 0, 0, 389,
2474 678, 691, 692, 679, 680, 681, 682, 690, 0, 308,
2475 312, 0, 0, 301, 302, 303, 299, 306, 0, 338,
2476 297, 0, 964, 965, 963, 276, 0, 0, 0, 0,
2477 377, 384, 378, 385, 380, 381, 689, 0, 412, 0,
2478 408, 409, 410, 0, 402, 492, 0, 0, 0, 488,
2479 398, 484, 486, 487, 704, 0, 0, 0, 532, 0,
2480 570, 0, 0, 0, 612, 0, 633, 629, 671, 648,
2481 655, 0, 0, 641, 944, 309, 312, 310, 0, 0,
2482 0, 327, 331, 0, 0, 320, 321, 322, 318, 325,
2483 0, 0, 0, 382, 386, 379, 0, 0, 411, 0,
2484 400, 0, 404, 406, 405, 481, 499, 483, 0, 495,
2485 398, 491, 493, 494, 490, 0, 675, 516, 514, 0,
2486 512, 534, 531, 0, 529, 572, 569, 0, 567, 596,
2487 594, 0, 592, 614, 611, 0, 609, 0, 0, 649,
2488 644, 398, 639, 642, 643, 307, 311, 0, 0, 0,
2489 328, 331, 329, 0, 0, 0, 345, 349, 0, 0,
2490 339, 340, 337, 343, 341, 959, 383, 677, 413, 0,
2491 0, 502, 416, 498, 500, 501, 497, 0, 489, 519,
2492 398, 515, 517, 518, 537, 540, 533, 535, 536, 575,
2493 577, 571, 573, 574, 599, 398, 595, 597, 598, 617,
2494 619, 613, 615, 616, 638, 658, 637, 656, 660, 652,
2495 398, 647, 650, 651, 646, 0, 0, 0, 305, 304,
2496 326, 330, 0, 0, 0, 346, 349, 347, 0, 0,
2497 0, 407, 0, 0, 504, 414, 415, 0, 496, 521,
2498 0, 0, 539, 0, 601, 0, 0, 0, 659, 654,
2499 0, 645, 0, 315, 0, 313, 0, 0, 324, 323,
2500 344, 348, 0, 0, 0, 688, 0, 419, 417, 420,
2501 503, 520, 538, 543, 541, 545, 580, 576, 578, 0,
2502 600, 622, 618, 620, 623, 668, 447, 657, 666, 667,
2503 390, 390, 661, 662, 663, 664, 665, 653, 0, 316,
2504 0, 334, 0, 332, 0, 0, 362, 342, 427, 0,
2505 423, 424, 425, 0, 421, 0, 544, 583, 0, 579,
2506 581, 582, 0, 464, 0, 0, 0, 314, 0, 335,
2507 0, 352, 0, 350, 0, 426, 390, 418, 551, 553,
2508 542, 549, 550, 0, 0, 546, 547, 548, 0, 0,
2509 723, 0, 624, 621, 627, 626, 625, 721, 722, 670,
2510 669, 390, 390, 333, 0, 353, 428, 0, 0, 0,
2511 390, 584, 0, 0, 683, 684, 351, 422, 552, 556,
2512 554, 557, 0, 0, 628, 724, 0, 0, 558, 676,
2513 686, 390, 0, 555, 0, 0, 685, 559
2519 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2520 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2521 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2522 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2523 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2524 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2525 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2526 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2527 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2528 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2529 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2530 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2531 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2532 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2533 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2534 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2535 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2536 -1315, 766, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2537 -1315, -1315, -1315, -1315, -99, -1315, -1315, -1315, -1315, -1315,
2538 -1315, -1315, -1315, -1315, -1315, -1315, -164, -1315, -1315, -1315,
2539 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -238, -1315, -1315,
2540 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2541 -1315, -1315, -1315, -1315, 836, 838, -1315, -1315, -1315, -1315,
2542 -1315, 147, 149, -1315, -783, -1315, -1315, -1315, 151, 153,
2543 -1315, -567, -1314, -319, -1315, -863, -1315, -1315, -1315, -1315,
2544 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2545 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2546 -1315, -1315, -1315, -1315, -1315, -1315, -290, -1315, -1315, -1315,
2547 -1315, -1315, -326, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2548 -1315, -734, -1315, -1315, -1315, -1315, -1315, -926, -1315, -1315,
2549 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2550 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2551 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2552 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2553 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2554 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2555 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2556 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2557 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2558 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2559 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2560 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2561 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2562 -1315, -1315, -236, -579, -233, -570, -1315, -235, -1315, -1315,
2563 -1315, -1315, -1315, -1315, -1315, -1315, -1315, 61, -322, -801,
2564 -1315, -1315, -1315, -1315, -1315, -1315, -218, -1315, -1315, -517,
2565 -1315, -1315, -706, -1315, -1315, -246, -1315, -1315, -310, -1315,
2566 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2567 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -205,
2568 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2569 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2570 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2571 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2572 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2573 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2574 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2575 -1315, -1315, -1315, -303, -1315, -1315, -1315, -1315, -1315, -1315,
2576 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2577 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2578 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, 606,
2579 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2580 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2581 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315,
2582 -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315, -1315
2588 0, 2, 84, 116, 117, 3, 4, 10, 17, 29,
2589 30, 76, 49, 77, 78, 79, 80, 81, 12, 13,
2590 22, 40, 41, 42, 65, 19, 20, 35, 61, 62,
2591 63, 94, 141, 142, 143, 243, 244, 349, 348, 144,
2592 145, 245, 246, 356, 355, 146, 147, 247, 248, 363,
2593 362, 566, 567, 699, 700, 857, 858, 970, 969, 697,
2594 148, 149, 249, 250, 371, 372, 369, 150, 151, 251,
2595 252, 382, 378, 152, 153, 253, 254, 394, 391, 154,
2596 155, 255, 256, 406, 404, 156, 157, 257, 258, 413,
2597 412, 580, 581, 711, 868, 869, 870, 975, 1072, 709,
2598 158, 159, 259, 260, 419, 418, 583, 584, 715, 873,
2599 874, 875, 979, 1077, 714, 32, 33, 55, 56, 57,
2600 91, 92, 128, 240, 241, 242, 561, 345, 562, 563,
2601 694, 695, 843, 833, 125, 126, 235, 341, 342, 343,
2602 691, 557, 692, 693, 829, 830, 949, 945, 232, 233,
2603 336, 553, 554, 555, 826, 687, 827, 828, 941, 942,
2604 1045, 1043, 51, 52, 87, 88, 89, 120, 121, 228,
2605 328, 329, 330, 676, 818, 932, 933, 1035, 1113, 1114,
2606 1115, 1116, 1117, 1176, 1177, 1178, 1317, 1355, 1038, 1118,
2607 1185, 1186, 1187, 1188, 1189, 1251, 1252, 1253, 1357, 1403,
2608 1120, 1190, 1260, 1261, 1262, 1263, 1326, 1327, 1328, 1405,
2609 1433, 122, 123, 542, 331, 543, 1264, 544, 545, 23,
2610 36, 129, 236, 337, 383, 384, 385, 397, 398, 407,
2611 632, 844, 845, 950, 846, 847, 952, 1049, 848, 849,
2612 953, 224, 1014, 225, 326, 976, 977, 1074, 1075, 1143,
2613 1144, 1202, 1200, 978, 1140, 1141, 1142, 1334, 1335, 1368,
2614 1369, 1413, 1437, 1336, 1410, 1411, 1412, 98, 99, 160,
2615 161, 274, 263, 264, 265, 424, 425, 426, 587, 588,
2616 755, 744, 586, 725, 726, 727, 876, 877, 985, 1079,
2617 1146, 1080, 1081, 1151, 1152, 1153, 1215, 1147, 1148, 1211,
2618 1212, 1213, 1277, 1207, 1208, 1273, 1274, 1275, 1337, 728,
2619 729, 878, 879, 991, 1085, 1157, 1218, 1219, 1281, 1282,
2620 1283, 1340, 730, 731, 880, 881, 995, 1087, 1159, 1222,
2621 1223, 1286, 1287, 1288, 1341, 1342, 1374, 1375, 1415, 1416,
2622 1445, 1440, 1441, 1442, 1468, 1480, 1481, 1487, 1493, 732,
2623 733, 882, 883, 999, 1089, 1161, 1226, 1227, 1291, 1292,
2624 1293, 1343, 1378, 1379, 1419, 1420, 1421, 734, 735, 884,
2625 885, 1003, 1091, 1163, 1230, 1231, 1296, 1297, 1298, 1345,
2626 736, 737, 886, 887, 1007, 1093, 1165, 1234, 1235, 1301,
2627 1302, 1303, 1346, 1383, 1384, 1422, 1452, 1453, 738, 739,
2628 888, 1167, 740, 741, 891, 1013, 1306, 1097, 1098, 1172,
2629 1242, 1243, 1244, 1315, 1170, 1171, 1238, 1311, 1312, 1313,
2630 1350, 1237, 1307, 1308, 1347, 1348, 1392, 1387, 1388, 1389,
2631 1424, 892, 275, 712, 276, 986, 1446, 1070, 756, 757,
2632 758, 759, 760, 1393, 1394, 1488, 1447, 105, 1203, 852,
2633 761, 762, 763, 764, 765, 766, 277, 278, 279, 987,
2634 988, 989, 106, 107, 108, 280, 281, 282, 283, 284,
2635 285, 525, 526, 527, 1456, 1457, 1458, 854, 855, 856,
2636 7, 8, 15, 25, 46, 47, 67, 68, 109, 189,
2637 190, 305, 453, 191, 306, 456, 192, 307, 193, 287,
2638 194, 288, 195, 295, 196, 289, 197, 286, 198, 290,
2639 199, 291, 200, 297, 201, 298, 202, 299, 203, 294,
2640 204, 205, 518, 206, 301, 207, 296, 208, 308, 209,
2641 309, 210, 310, 211, 212, 528, 313, 529, 530, 813,
2642 213, 300, 614, 904, 446, 615, 616, 617, 214, 292,
2643 438, 215, 303, 449, 216, 302, 448, 217, 304, 450,
2644 218, 293, 439, 477, 478, 479, 784, 480, 481, 788,
2645 634, 482, 483, 792, 636, 484, 485, 796, 638, 486,
2646 487, 640, 488, 489, 642, 490, 491, 644, 492, 493,
2647 646, 494, 495, 648, 921, 496, 497, 650, 923, 649,
2648 498, 499, 654, 500, 501, 656, 502, 503, 658, 504,
2649 505, 660, 506, 507, 662, 508, 628, 779, 509, 510,
2650 664, 511, 512, 666, 513, 514, 668, 333, 334, 548,
2651 549, 683, 684, 685, 822, 939, 940, 1039, 1040, 1124
2659 312, 532, 533, 524, 702, 716, 515, 516, 350, 980,
2660 357, 351, 364, 358, 373, 365, 386, 374, 399, 387,
2661 408, 400, 414, 409, 420, 415, 352, 421, 359, 956,
2662 366, 1099, 375, 889, 388, 405, 401, 1376, 410, 1449,
2663 416, 630, 422, 320, 321, 519, 520, 951, 1197, 1109,
2664 1110, 70, 71, 610, 611, 1381, 1, 971, 72, 73,
2665 1111, 1181, 1182, 1256, 1257, 834, 835, 836, 837, 838,
2666 1434, 839, 1183, 1443, 1258, 1478, 1425, 1426, 370, 268,
2667 269, 432, 433, 434, 435, 436, 437, 102, 103, 440,
2668 441, 442, 443, 444, 445, 1444, 447, 5, 268, 269,
2669 538, 539, 457, 27, 28, 266, 267, 268, 269, 540,
2670 541, 819, 820, 6, 838, 266, 267, 946, 9, 947,
2671 948, 982, 983, 11, 270, 271, 44, 16, 45, 984,
2672 937, 458, 938, 270, 271, 459, 38, 39, 14, 460,
2673 272, 273, 18, 842, 21, 104, 24, 1474, 1475, 26,
2674 272, 273, 31, 266, 267, 1390, 1391, 34, 1156, 1048,
2675 1158, 1377, 1160, 37, 1162, 1198, 1164, 43, 268, 269,
2676 48, 1450, 1451, 266, 267, 50, 521, 522, 69, 1382,
2677 58, 266, 267, 64, 639, 90, 641, 1435, 272, 273,
2678 645, 840, 841, 834, 835, 836, 837, 838, 655, 1479,
2679 657, 1044, 659, 93, 661, 53, 54, 66, 272, 273,
2680 906, 667, 59, 60, 631, 1112, 272, 273, 266, 267,
2681 95, 1184, 82, 83, 1201, 842, 1259, 594, 595, 596,
2682 597, 85, 86, 601, 603, 100, 74, 606, 612, 842,
2683 75, 101, 613, 620, 622, 624, 322, 323, 324, 325,
2684 96, 97, 627, 272, 273, 461, 1084, 462, 110, 463,
2685 1086, 464, 115, 465, 1088, 466, 111, 467, 1090, 468,
2686 112, 469, 1092, 470, 907, 471, 113, 472, 114, 473,
2687 124, 474, 127, 475, 842, 476, 643, 1214, 379, 380,
2688 130, 392, 393, 379, 380, 381, 717, 118, 119, 745,
2689 746, 266, 267, 238, 239, 663, 718, 665, 719, 992,
2690 720, 996, 721, 1000, 722, 1004, 723, 1008, 747, 748,
2691 749, 750, 751, 752, 753, 754, 261, 262, 724, 339,
2692 340, 346, 347, 219, 1123, 1023, 272, 273, 798, 353,
2693 354, 360, 361, 1204, 367, 368, 220, 1276, 131, 132,
2694 221, 133, 805, 134, 222, 135, 807, 136, 808, 137,
2695 809, 138, 993, 139, 997, 140, 1001, 226, 1005, 227,
2696 1009, 376, 377, 389, 390, 402, 403, 229, 1314, 223,
2697 458, 451, 452, 231, 459, 266, 267, 230, 460, 234,
2698 266, 267, 454, 455, 551, 552, 559, 560, 652, 653,
2699 311, 773, 681, 682, 689, 690, 775, 742, 743, 782,
2700 783, 786, 787, 790, 791, 794, 795, 1339, 816, 817,
2701 272, 273, 237, 824, 825, 272, 273, 314, 322, 323,
2702 324, 325, 1344, 831, 832, 866, 867, 871, 872, 523,
2703 102, 103, 322, 323, 324, 325, 332, 1349, 943, 944,
2704 967, 968, 1041, 1042, 1138, 1139, 1149, 1150, 315, 850,
2705 810, 316, 851, 1201, 842, 1209, 1210, 1240, 1241, 1271,
2706 1272, 1279, 1280, 1284, 1285, 317, 908, 853, 1289, 1290,
2707 1294, 1295, 1299, 1300, 1304, 1305, 1309, 1310, 1353, 1354,
2708 1385, 1386, 1401, 1402, 1408, 1409, 1417, 1418, 318, 920,
2709 922, 1431, 1432, 319, 461, 327, 462, 335, 463, 338,
2710 464, 411, 465, 344, 466, 417, 467, 423, 468, 1173,
2711 469, 162, 470, 163, 471, 164, 472, 165, 473, 166,
2712 474, 167, 475, 168, 476, 169, 602, 170, 427, 171,
2713 428, 172, 429, 173, 430, 174, 431, 175, 972, 176,
2714 517, 177, 531, 178, 534, 179, 535, 180, 547, 181,
2715 550, 182, 546, 183, 556, 184, 564, 185, 1414, 186,
2716 558, 187, 537, 188, 565, 1015, 1438, 1439, 569, 568,
2717 571, 572, 570, 573, 575, 574, 576, 578, 577, 582,
2718 579, 585, 1239, 589, 954, 590, 591, 955, 592, 593,
2719 599, 598, 607, 604, 618, 928, 605, 609, 625, 608,
2720 629, 626, 957, 633, 162, 635, 163, 637, 164, 647,
2721 165, 1455, 166, 669, 167, 671, 168, 600, 169, 670,
2722 170, 672, 171, 162, 172, 163, 173, 164, 174, 165,
2723 175, 166, 176, 167, 177, 168, 178, 169, 179, 170,
2724 180, 171, 181, 172, 182, 173, 183, 174, 184, 175,
2725 185, 176, 186, 177, 187, 178, 188, 179, 619, 180,
2726 673, 181, 674, 182, 675, 183, 678, 184, 677, 185,
2727 679, 186, 680, 187, 686, 188, 696, 688, 698, 701,
2728 703, 704, 705, 706, 708, 713, 707, 767, 768, 710,
2729 771, 769, 776, 772, 770, 777, 1052, 1094, 780, 1053,
2730 778, 781, 785, 789, 793, 797, 801, 800, 802, 803,
2731 799, 804, 806, 1034, 1054, 812, 162, 811, 163, 814,
2732 164, 1108, 165, 815, 166, 821, 167, 893, 168, 823,
2733 169, 859, 170, 860, 171, 861, 172, 862, 173, 863,
2734 174, 864, 175, 865, 176, 894, 177, 895, 178, 890,
2735 179, 896, 180, 621, 181, 162, 182, 163, 183, 164,
2736 184, 165, 185, 166, 186, 167, 187, 168, 188, 169,
2737 897, 170, 898, 171, 899, 172, 900, 173, 901, 174,
2738 902, 175, 903, 176, 905, 177, 909, 178, 910, 179,
2739 911, 180, 912, 181, 623, 182, 913, 183, 914, 184,
2740 916, 185, 924, 186, 915, 187, 919, 188, 1191, 917,
2741 162, 918, 163, 925, 164, 927, 165, 926, 166, 929,
2742 167, 930, 168, 931, 169, 934, 170, 935, 171, 936,
2743 172, 959, 173, 958, 174, 960, 175, 961, 176, 774,
2744 177, 962, 178, 963, 179, 964, 180, 965, 181, 966,
2745 182, 973, 183, 981, 184, 1011, 185, 974, 186, 1467,
2746 187, 990, 188, 994, 998, 1002, 1006, 1010, 1012, 1016,
2747 1017, 1018, 1019, 1020, 1021, 1022, 1032, 1024, 1025, 1026,
2748 1027, 1028, 1029, 1030, 1031, 1033, 1036, 1037, 1055, 1056,
2749 1057, 1058, 1059, 1483, 1060, 162, 1061, 163, 1062, 164,
2750 1063, 165, 1064, 166, 1069, 167, 1065, 168, 1066, 169,
2751 1067, 170, 1068, 171, 1494, 172, 1071, 173, 1073, 174,
2752 1078, 175, 1082, 176, 1076, 177, 1083, 178, 1095, 179,
2753 1169, 180, 1100, 181, 1101, 182, 1102, 183, 1103, 184,
2754 1104, 185, 1105, 186, 1106, 187, 1107, 188, 1121, 1096,
2755 1126, 1127, 1119, 1125, 1128, 1129, 1166, 1145, 1130, 1131,
2756 1132, 1133, 1134, 1135, 1136, 1137, 1154, 1155, 1168, 1192,
2757 1175, 1174, 1179, 1180, 1193, 1194, 1195, 1196, 1205, 1206,
2758 1199, 1216, 1217, 1220, 1221, 1225, 1229, 1224, 1233, 1232,
2759 1248, 1228, 1245, 1247, 1249, 1236, 1265, 1254, 1250, 1255,
2760 1266, 1267, 1269, 1270, 1316, 1268, 1278, 1318, 1319, 1322,
2761 1320, 1323, 1324, 1331, 1351, 1329, 1330, 1325, 1332, 1333,
2762 1356, 1338, 1352, 1358, 1359, 1363, 1364, 1367, 1396, 1365,
2763 1397, 1370, 1362, 1360, 1398, 1371, 1372, 1373, 1400, 1380,
2764 1399, 1404, 1406, 1407, 1427, 842, 1428, 1429, 1436, 1430,
2765 1460, 1461, 1462, 1465, 1464, 1463, 1466, 1469, 1470, 1471,
2766 1472, 1015, 1015, 1473, 1476, 1482, 1485, 1246, 1492, 1489,
2767 1490, 1491, 1477, 1495, 1496, 1484, 1486, 1321, 1361, 1046,
2768 395, 1047, 396, 1050, 536, 1051, 1423, 1459, 1366, 1497,
2769 1454, 1122, 1395, 651, 0, 0, 0, 0, 0, 0,
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 0, 1015, 1015, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 205, 320, 321, 313, 571, 584, 309, 310, 244, 872,
2786 246, 244, 248, 246, 250, 248, 252, 250, 254, 252,
2787 256, 254, 258, 256, 260, 258, 244, 260, 246, 830,
2788 248, 8, 250, 739, 252, 13, 254, 112, 256, 11,
2789 258, 22, 260, 6, 7, 10, 11, 830, 4, 10,
2790 11, 10, 11, 10, 11, 112, 42, 858, 17, 18,
2791 21, 10, 11, 10, 11, 23, 24, 25, 26, 27,
2792 4, 29, 21, 178, 21, 113, 1390, 1391, 28, 133,
2793 134, 286, 287, 288, 289, 290, 291, 137, 138, 294,
2794 295, 296, 297, 298, 299, 200, 301, 0, 133, 134,
2795 10, 11, 307, 43, 44, 131, 132, 133, 134, 19,
2796 20, 678, 679, 302, 27, 131, 132, 30, 14, 32,
2797 33, 161, 162, 201, 159, 160, 303, 8, 305, 169,
2798 308, 245, 310, 159, 160, 249, 10, 11, 304, 253,
2799 166, 167, 46, 197, 168, 195, 8, 1461, 1462, 6,
2800 166, 167, 241, 131, 132, 190, 191, 15, 1084, 942,
2801 1086, 236, 1088, 8, 1090, 121, 1092, 6, 133, 134,
2802 8, 143, 144, 131, 132, 76, 141, 142, 11, 236,
2803 8, 131, 132, 6, 487, 243, 489, 121, 166, 167,
2804 493, 149, 150, 23, 24, 25, 26, 27, 501, 237,
2805 503, 31, 505, 6, 507, 10, 11, 8, 166, 167,
2806 777, 514, 10, 11, 195, 176, 166, 167, 131, 132,
2807 8, 170, 40, 41, 196, 197, 173, 432, 433, 434,
2808 435, 10, 11, 438, 439, 11, 195, 442, 195, 197,
2809 199, 11, 199, 448, 449, 450, 405, 406, 407, 408,
2810 202, 203, 457, 166, 167, 369, 990, 371, 45, 373,
2811 994, 375, 39, 377, 998, 379, 8, 381, 1002, 383,
2812 8, 385, 1006, 387, 388, 389, 8, 391, 8, 393,
2813 247, 395, 181, 397, 197, 399, 491, 1150, 34, 35,
2814 8, 37, 38, 34, 35, 36, 207, 77, 78, 163,
2815 164, 131, 132, 10, 11, 510, 217, 512, 219, 879,
2816 221, 881, 223, 883, 225, 885, 227, 887, 182, 183,
2817 184, 185, 186, 187, 188, 189, 10, 11, 239, 10,
2818 11, 10, 11, 3, 1040, 902, 166, 167, 641, 10,
2819 11, 10, 11, 1144, 10, 11, 8, 1210, 47, 48,
2820 6, 50, 655, 52, 6, 54, 659, 56, 661, 58,
2821 663, 60, 879, 62, 881, 64, 883, 77, 885, 16,
2822 887, 10, 11, 10, 11, 10, 11, 77, 1241, 6,
2823 245, 10, 11, 251, 249, 131, 132, 82, 253, 180,
2824 131, 132, 10, 11, 10, 11, 244, 245, 10, 11,
2825 306, 606, 10, 11, 248, 249, 611, 10, 11, 10,
2826 11, 10, 11, 10, 11, 10, 11, 1280, 10, 11,
2827 166, 167, 8, 252, 253, 166, 167, 8, 405, 406,
2828 407, 408, 1295, 10, 11, 10, 11, 10, 11, 404,
2829 137, 138, 405, 406, 407, 408, 307, 1310, 10, 11,
2830 10, 11, 10, 11, 10, 11, 10, 11, 6, 695,
2831 665, 8, 695, 196, 197, 10, 11, 10, 11, 10,
2832 11, 10, 11, 10, 11, 8, 779, 695, 10, 11,
2833 10, 11, 10, 11, 208, 209, 10, 11, 10, 11,
2834 10, 11, 10, 11, 10, 11, 10, 11, 8, 802,
2835 803, 10, 11, 8, 369, 8, 371, 179, 373, 8,
2836 375, 11, 377, 6, 379, 11, 381, 206, 383, 1098,
2837 385, 315, 387, 317, 389, 319, 391, 321, 393, 323,
2838 395, 325, 397, 327, 399, 329, 330, 331, 3, 333,
2839 3, 335, 3, 337, 8, 339, 8, 341, 858, 343,
2840 346, 345, 8, 347, 6, 349, 79, 351, 309, 353,
2841 8, 355, 242, 357, 6, 359, 49, 361, 1369, 363,
2842 8, 365, 80, 367, 51, 894, 10, 11, 8, 55,
2843 8, 8, 57, 8, 8, 59, 8, 3, 61, 74,
2844 72, 204, 1171, 8, 830, 8, 8, 830, 6, 6,
2845 326, 324, 338, 332, 348, 810, 334, 342, 356, 340,
2846 364, 358, 830, 195, 315, 195, 317, 195, 319, 402,
2847 321, 1422, 323, 366, 325, 362, 327, 328, 329, 368,
2848 331, 3, 333, 315, 335, 317, 337, 319, 339, 321,
2849 341, 323, 343, 325, 345, 327, 347, 329, 349, 331,
2850 351, 333, 353, 335, 355, 337, 357, 339, 359, 341,
2851 361, 343, 363, 345, 365, 347, 367, 349, 350, 351,
2852 3, 353, 8, 355, 132, 357, 8, 359, 83, 361,
2853 8, 363, 8, 365, 6, 367, 53, 8, 70, 6,
2854 6, 6, 6, 6, 63, 65, 8, 8, 8, 122,
2855 320, 316, 8, 322, 318, 8, 942, 1010, 8, 942,
2856 360, 8, 8, 8, 8, 370, 3, 400, 11, 11,
2857 398, 378, 382, 928, 942, 8, 315, 394, 317, 11,
2858 319, 1034, 321, 3, 323, 6, 325, 205, 327, 8,
2859 329, 8, 331, 8, 333, 8, 335, 8, 337, 8,
2860 339, 8, 341, 8, 343, 3, 345, 8, 347, 165,
2861 349, 8, 351, 352, 353, 315, 355, 317, 357, 319,
2862 359, 321, 361, 323, 363, 325, 365, 327, 367, 329,
2863 8, 331, 8, 333, 8, 335, 8, 337, 8, 339,
2864 8, 341, 336, 343, 6, 345, 6, 347, 6, 349,
2865 396, 351, 6, 353, 354, 355, 246, 357, 6, 359,
2866 6, 361, 380, 363, 250, 365, 8, 367, 1121, 254,
2867 315, 372, 317, 384, 319, 390, 321, 386, 323, 8,
2868 325, 8, 327, 265, 329, 8, 331, 8, 333, 8,
2869 335, 8, 337, 246, 339, 8, 341, 8, 343, 344,
2870 345, 8, 347, 8, 349, 8, 351, 3, 353, 8,
2871 355, 6, 357, 11, 359, 8, 361, 120, 363, 1436,
2872 365, 11, 367, 11, 11, 11, 11, 11, 11, 6,
2873 6, 6, 6, 6, 6, 6, 374, 344, 8, 8,
2874 8, 8, 8, 8, 8, 376, 81, 257, 250, 8,
2875 8, 8, 6, 1470, 6, 315, 6, 317, 6, 319,
2876 6, 321, 6, 323, 198, 325, 8, 327, 6, 329,
2877 71, 331, 8, 333, 1491, 335, 73, 337, 112, 339,
2878 231, 341, 3, 343, 75, 345, 8, 347, 6, 349,
2879 213, 351, 8, 353, 8, 355, 8, 357, 8, 359,
2880 8, 361, 8, 363, 8, 365, 8, 367, 11, 211,
2881 8, 6, 261, 254, 6, 6, 240, 233, 8, 8,
2882 8, 8, 8, 8, 8, 8, 8, 6, 8, 6,
2883 266, 392, 8, 8, 8, 8, 8, 6, 218, 235,
2884 11, 8, 235, 220, 235, 235, 235, 222, 235, 228,
2885 6, 224, 266, 263, 6, 226, 311, 8, 258, 8,
2886 8, 8, 6, 8, 195, 121, 232, 8, 8, 255,
2887 258, 6, 6, 113, 212, 8, 8, 262, 6, 120,
2888 195, 234, 8, 8, 8, 6, 6, 112, 1348, 8,
2889 214, 236, 259, 262, 6, 236, 236, 112, 8, 236,
2890 264, 195, 8, 8, 8, 197, 6, 256, 11, 8,
2891 210, 6, 6, 260, 6, 8, 121, 8, 8, 113,
2892 6, 1390, 1391, 3, 8, 6, 8, 1176, 11, 8,
2893 8, 8, 113, 6, 8, 113, 199, 1251, 1326, 942,
2894 254, 942, 254, 942, 328, 942, 1386, 1423, 1333, 238,
2895 1422, 1040, 1348, 497, -1, -1, -1, -1, -1, -1,
2896 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2899 -1, -1, 1461, 1462, -1, -1, -1, -1, -1, -1,
2900 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2901 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2904 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2913 0, 42, 410, 414, 415, 0, 302, 889, 890, 14,
2914 416, 201, 427, 428, 304, 891, 8, 417, 46, 434,
2915 435, 168, 429, 628, 8, 892, 6, 43, 44, 418,
2916 419, 241, 524, 525, 15, 436, 629, 8, 10, 11,
2917 430, 431, 432, 6, 303, 305, 893, 894, 8, 421,
2918 76, 571, 572, 10, 11, 526, 527, 528, 8, 10,
2919 11, 437, 438, 439, 6, 433, 8, 895, 896, 11,
2920 10, 11, 17, 18, 195, 199, 420, 422, 423, 424,
2921 425, 426, 40, 41, 411, 10, 11, 573, 574, 575,
2922 243, 529, 530, 6, 440, 8, 202, 203, 676, 677,
2923 11, 11, 137, 138, 195, 856, 871, 872, 873, 897,
2924 45, 8, 8, 8, 8, 39, 412, 413, 77, 78,
2925 576, 577, 620, 621, 247, 543, 544, 181, 531, 630,
2926 8, 47, 48, 50, 52, 54, 56, 58, 60, 62,
2927 64, 441, 442, 443, 448, 449, 454, 455, 469, 470,
2928 476, 477, 482, 483, 488, 489, 494, 495, 509, 510,
2929 678, 679, 315, 317, 319, 321, 323, 325, 327, 329,
2930 331, 333, 335, 337, 339, 341, 343, 345, 347, 349,
2931 351, 353, 355, 357, 359, 361, 363, 365, 367, 898,
2932 899, 902, 905, 907, 909, 911, 913, 915, 917, 919,
2933 921, 923, 925, 927, 929, 930, 932, 934, 936, 938,
2934 940, 942, 943, 949, 957, 960, 963, 966, 969, 3,
2935 8, 6, 6, 6, 650, 652, 77, 16, 578, 77,
2936 82, 251, 557, 558, 180, 545, 631, 8, 10, 11,
2937 532, 533, 534, 444, 445, 450, 451, 456, 457, 471,
2938 472, 478, 479, 484, 485, 490, 491, 496, 497, 511,
2939 512, 10, 11, 681, 682, 683, 131, 132, 133, 134,
2940 159, 160, 166, 167, 680, 841, 843, 865, 866, 867,
2941 874, 875, 876, 877, 878, 879, 916, 908, 910, 914,
2942 918, 920, 958, 970, 928, 912, 935, 922, 924, 926,
2943 950, 933, 964, 961, 967, 900, 903, 906, 937, 939,
2944 941, 306, 898, 945, 8, 6, 8, 8, 8, 8,
2945 6, 7, 405, 406, 407, 408, 653, 8, 579, 580,
2946 581, 623, 307, 1036, 1037, 179, 559, 632, 8, 10,
2947 11, 546, 547, 548, 6, 536, 10, 11, 447, 446,
2948 841, 843, 865, 10, 11, 453, 452, 841, 843, 865,
2949 10, 11, 459, 458, 841, 843, 865, 10, 11, 475,
2950 28, 473, 474, 841, 843, 865, 10, 11, 481, 34,
2951 35, 36, 480, 633, 634, 635, 841, 843, 865, 10,
2952 11, 487, 37, 38, 486, 633, 634, 636, 637, 841,
2953 843, 865, 10, 11, 493, 13, 492, 638, 841, 843,
2954 865, 11, 499, 498, 841, 843, 865, 11, 514, 513,
2955 841, 843, 865, 206, 684, 685, 686, 3, 3, 3,
2956 8, 8, 898, 898, 898, 898, 898, 898, 959, 971,
2957 898, 898, 898, 898, 898, 898, 953, 898, 965, 962,
2958 968, 10, 11, 901, 10, 11, 904, 898, 245, 249,
2959 253, 369, 371, 373, 375, 377, 379, 381, 383, 385,
2960 387, 389, 391, 393, 395, 397, 399, 972, 973, 974,
2961 976, 977, 980, 981, 984, 985, 988, 989, 991, 992,
2962 994, 995, 997, 998, 1000, 1001, 1004, 1005, 1009, 1010,
2963 1012, 1013, 1015, 1016, 1018, 1019, 1021, 1022, 1024, 1027,
2964 1028, 1030, 1031, 1033, 1034, 972, 972, 346, 931, 10,
2965 11, 141, 142, 404, 877, 880, 881, 882, 944, 946,
2966 947, 8, 652, 652, 6, 79, 580, 80, 10, 11,
2967 19, 20, 622, 624, 626, 627, 242, 309, 1038, 1039,
2968 8, 10, 11, 560, 561, 562, 6, 550, 8, 244,
2969 245, 535, 537, 538, 49, 51, 460, 461, 55, 8,
2970 57, 8, 8, 8, 59, 8, 8, 61, 3, 72,
2971 500, 501, 74, 515, 516, 204, 691, 687, 688, 8,
2972 8, 8, 6, 6, 898, 898, 898, 898, 324, 326,
2973 328, 898, 330, 898, 332, 334, 898, 338, 340, 342,
2974 10, 11, 195, 199, 951, 954, 955, 956, 348, 350,
2975 898, 352, 898, 354, 898, 356, 358, 898, 1025, 364,
2976 22, 195, 639, 195, 979, 195, 983, 195, 987, 972,
2977 990, 972, 993, 898, 996, 972, 999, 402, 1002, 1008,
2978 1006, 1008, 10, 11, 1011, 972, 1014, 972, 1017, 972,
2979 1020, 972, 1023, 898, 1029, 898, 1032, 972, 1035, 366,
2980 368, 362, 3, 3, 8, 132, 582, 83, 8, 8,
2981 8, 10, 11, 1040, 1041, 1042, 6, 564, 8, 248,
2982 249, 549, 551, 552, 539, 540, 53, 468, 70, 462,
2983 463, 6, 650, 6, 6, 6, 6, 8, 63, 508,
2984 122, 502, 842, 65, 523, 517, 842, 207, 217, 219,
2985 221, 223, 225, 227, 239, 692, 693, 694, 718, 719,
2986 731, 732, 758, 759, 776, 777, 789, 790, 807, 808,
2987 811, 812, 10, 11, 690, 163, 164, 182, 183, 184,
2988 185, 186, 187, 188, 189, 689, 847, 848, 849, 850,
2989 851, 859, 860, 861, 862, 863, 864, 8, 8, 316,
2990 318, 320, 322, 898, 344, 898, 8, 8, 360, 1026,
2991 8, 8, 10, 11, 975, 8, 10, 11, 978, 8,
2992 10, 11, 982, 8, 10, 11, 986, 370, 972, 398,
2993 400, 3, 11, 11, 378, 972, 382, 972, 972, 972,
2994 898, 394, 8, 948, 11, 3, 10, 11, 583, 650,
2995 650, 6, 1043, 8, 252, 253, 563, 565, 566, 553,
2996 554, 10, 11, 542, 23, 24, 25, 26, 27, 29,
2997 149, 150, 197, 541, 640, 641, 643, 644, 647, 648,
2998 841, 843, 858, 865, 886, 887, 888, 464, 465, 8,
2999 8, 8, 8, 8, 8, 8, 10, 11, 503, 504,
3000 505, 10, 11, 518, 519, 520, 695, 696, 720, 721,
3001 733, 734, 760, 761, 778, 779, 791, 792, 809, 871,
3002 165, 813, 840, 205, 3, 8, 8, 8, 8, 8,
3003 8, 8, 8, 336, 952, 6, 650, 388, 972, 6,
3004 6, 396, 6, 246, 6, 250, 6, 254, 372, 8,
3005 972, 1003, 972, 1007, 380, 384, 386, 390, 898, 8,
3006 8, 265, 584, 585, 8, 8, 8, 308, 310, 1044,
3007 1045, 567, 568, 10, 11, 556, 30, 32, 33, 555,
3008 642, 643, 645, 649, 841, 843, 858, 865, 246, 8,
3009 8, 8, 8, 8, 8, 3, 8, 10, 11, 467,
3010 466, 858, 877, 6, 120, 506, 654, 655, 662, 521,
3011 654, 11, 161, 162, 169, 697, 844, 868, 869, 870,
3012 11, 722, 844, 868, 11, 735, 844, 868, 11, 762,
3013 844, 868, 11, 780, 844, 868, 11, 793, 844, 868,
3014 11, 8, 11, 814, 651, 652, 6, 6, 6, 6,
3015 6, 6, 6, 650, 344, 8, 8, 8, 8, 8,
3016 8, 8, 374, 376, 898, 586, 81, 257, 597, 1046,
3017 1047, 10, 11, 570, 31, 569, 640, 641, 643, 646,
3018 647, 648, 841, 843, 865, 250, 8, 8, 8, 6,
3019 6, 6, 6, 6, 6, 8, 6, 71, 8, 198,
3020 846, 73, 507, 112, 656, 657, 75, 522, 231, 698,
3021 700, 701, 3, 8, 700, 723, 700, 736, 700, 763,
3022 700, 781, 700, 794, 972, 6, 211, 816, 817, 8,
3023 8, 8, 8, 8, 8, 8, 8, 8, 972, 10,
3024 11, 21, 176, 587, 588, 589, 590, 591, 598, 261,
3025 609, 11, 856, 871, 1048, 254, 8, 6, 6, 6,
3026 8, 8, 8, 8, 8, 8, 8, 8, 10, 11,
3027 663, 664, 665, 658, 659, 233, 699, 706, 707, 10,
3028 11, 702, 703, 704, 8, 6, 706, 724, 706, 737,
3029 706, 764, 706, 782, 706, 795, 240, 810, 8, 213,
3030 823, 824, 818, 842, 392, 266, 592, 593, 594, 8,
3031 8, 10, 11, 21, 170, 599, 600, 601, 602, 603,
3032 610, 972, 6, 8, 8, 8, 6, 4, 121, 11,
3033 661, 196, 660, 857, 858, 218, 235, 712, 713, 10,
3034 11, 708, 709, 710, 654, 705, 8, 235, 725, 726,
3035 220, 235, 738, 739, 222, 235, 765, 766, 224, 235,
3036 783, 784, 228, 235, 796, 797, 226, 830, 825, 842,
3037 10, 11, 819, 820, 821, 266, 593, 263, 6, 6,
3038 258, 604, 605, 606, 8, 8, 10, 11, 21, 173,
3039 611, 612, 613, 614, 625, 311, 8, 8, 121, 6,
3040 8, 10, 11, 714, 715, 716, 654, 711, 232, 10,
3041 11, 727, 728, 729, 10, 11, 740, 741, 742, 10,
3042 11, 767, 768, 769, 10, 11, 785, 786, 787, 10,
3043 11, 798, 799, 800, 208, 209, 815, 831, 832, 10,
3044 11, 826, 827, 828, 654, 822, 195, 595, 8, 8,
3045 258, 605, 255, 6, 6, 262, 615, 616, 617, 8,
3046 8, 113, 6, 120, 666, 667, 672, 717, 234, 654,
3047 730, 743, 744, 770, 654, 788, 801, 833, 834, 654,
3048 829, 212, 8, 10, 11, 596, 195, 607, 8, 8,
3049 262, 616, 259, 6, 6, 8, 846, 112, 668, 669,
3050 236, 236, 236, 112, 745, 746, 112, 236, 771, 772,
3051 236, 112, 236, 802, 803, 10, 11, 836, 837, 838,
3052 190, 191, 835, 852, 853, 874, 877, 214, 6, 264,
3053 8, 10, 11, 608, 195, 618, 8, 8, 10, 11,
3054 673, 674, 675, 670, 858, 747, 748, 10, 11, 773,
3055 774, 775, 804, 685, 839, 651, 651, 8, 6, 256,
3056 8, 10, 11, 619, 4, 121, 11, 671, 10, 11,
3057 750, 751, 752, 178, 200, 749, 845, 855, 898, 11,
3058 143, 144, 805, 806, 857, 858, 883, 884, 885, 691,
3059 210, 6, 6, 8, 6, 260, 121, 650, 753, 8,
3060 8, 113, 6, 3, 651, 651, 8, 113, 113, 237,
3061 754, 755, 6, 650, 113, 8, 199, 756, 854, 8,
3062 8, 8, 11, 757, 650, 6, 8, 238
3068 0, 409, 410, 411, 411, 412, 413, 413, 414, 414,
3069 415, 416, 417, 417, 418, 419, 420, 420, 421, 421,
3070 422, 422, 422, 422, 423, 424, 425, 426, 427, 427,
3071 428, 429, 430, 430, 431, 432, 433, 433, 434, 434,
3072 435, 436, 437, 437, 438, 439, 440, 440, 441, 441,
3073 441, 441, 441, 441, 441, 441, 441, 442, 443, 444,
3074 445, 445, 446, 446, 446, 447, 447, 448, 449, 450,
3075 451, 451, 452, 452, 452, 453, 453, 454, 455, 456,
3076 457, 457, 458, 458, 458, 459, 459, 460, 461, 461,
3077 462, 463, 464, 465, 465, 466, 466, 467, 467, 468,
3078 469, 470, 471, 472, 472, 473, 473, 473, 473, 474,
3079 475, 475, 476, 477, 478, 479, 479, 480, 480, 480,
3080 480, 480, 480, 481, 481, 482, 483, 484, 485, 485,
3081 486, 486, 486, 486, 486, 486, 486, 487, 487, 488,
3082 489, 490, 491, 491, 492, 492, 492, 492, 493, 493,
3083 494, 495, 496, 497, 497, 498, 498, 498, 499, 500,
3084 501, 502, 503, 503, 504, 505, 506, 507, 508, 509,
3085 510, 511, 512, 512, 513, 513, 513, 514, 515, 516,
3086 517, 518, 518, 519, 520, 521, 522, 523, 524, 524,
3087 525, 526, 526, 527, 528, 529, 529, 530, 531, 532,
3088 532, 533, 534, 535, 536, 536, 537, 538, 539, 540,
3089 540, 541, 541, 541, 541, 541, 541, 541, 541, 541,
3090 541, 541, 542, 542, 543, 543, 544, 545, 546, 546,
3091 547, 548, 549, 550, 550, 551, 552, 553, 554, 554,
3092 555, 555, 555, 555, 555, 555, 555, 555, 556, 556,
3093 557, 557, 558, 559, 560, 560, 561, 562, 563, 564,
3094 564, 565, 566, 567, 568, 568, 569, 569, 569, 569,
3095 569, 569, 569, 569, 569, 570, 570, 571, 571, 572,
3096 573, 573, 574, 574, 575, 575, 576, 577, 578, 579,
3097 579, 581, 580, 582, 582, 583, 583, 584, 585, 585,
3098 586, 586, 587, 587, 588, 589, 590, 590, 591, 591,
3099 592, 592, 594, 593, 595, 596, 596, 597, 597, 598,
3100 598, 599, 599, 600, 601, 602, 602, 603, 603, 604,
3101 604, 606, 605, 607, 608, 608, 609, 609, 610, 610,
3102 611, 611, 612, 613, 613, 614, 614, 615, 615, 617,
3103 616, 618, 619, 619, 621, 620, 622, 622, 623, 623,
3104 624, 624, 625, 626, 627, 628, 629, 630, 631, 632,
3105 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
3106 643, 644, 645, 646, 647, 648, 649, 650, 650, 651,
3107 652, 652, 653, 653, 653, 653, 654, 654, 655, 655,
3108 656, 657, 658, 659, 659, 660, 660, 661, 662, 663,
3109 663, 664, 664, 665, 666, 666, 667, 667, 668, 669,
3110 670, 670, 671, 672, 673, 673, 674, 674, 675, 676,
3111 677, 678, 679, 679, 680, 680, 680, 680, 680, 538,
3112 552, 566, 681, 681, 682, 683, 684, 685, 685, 686,
3113 687, 688, 688, 689, 689, 689, 689, 689, 689, 689,
3114 689, 689, 690, 690, 691, 691, 692, 692, 692, 692,
3115 692, 692, 692, 692, 693, 694, 695, 696, 696, 697,
3116 697, 698, 699, 699, 700, 701, 702, 702, 703, 704,
3117 705, 706, 707, 708, 708, 709, 710, 711, 712, 713,
3118 714, 714, 715, 716, 717, 718, 719, 720, 721, 721,
3119 722, 722, 723, 724, 724, 725, 726, 727, 727, 728,
3120 729, 730, 731, 732, 733, 734, 734, 735, 735, 736,
3121 737, 737, 738, 738, 739, 740, 740, 741, 742, 743,
3122 744, 744, 745, 746, 747, 748, 748, 749, 749, 750,
3123 750, 751, 752, 753, 753, 754, 755, 756, 756, 757,
3124 758, 759, 760, 761, 761, 762, 762, 763, 764, 764,
3125 765, 765, 766, 767, 767, 768, 769, 770, 770, 771,
3126 772, 773, 773, 774, 775, 776, 777, 778, 779, 779,
3127 780, 780, 781, 782, 782, 783, 784, 785, 785, 786,
3128 787, 788, 789, 790, 791, 792, 792, 793, 793, 794,
3129 795, 795, 796, 796, 797, 798, 798, 799, 800, 801,
3130 801, 802, 803, 804, 804, 805, 805, 805, 806, 807,
3131 808, 809, 809, 810, 811, 812, 813, 814, 815, 816,
3132 817, 818, 819, 819, 820, 821, 822, 823, 824, 825,
3133 826, 826, 827, 828, 829, 830, 830, 831, 832, 833,
3134 834, 834, 835, 835, 835, 835, 836, 836, 837, 838,
3135 839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
3136 849, 850, 851, 852, 853, 854, 855, 856, 857, 858,
3137 859, 860, 861, 862, 862, 863, 864, 865, 865, 866,
3138 867, 868, 868, 869, 870, 871, 871, 872, 873, 874,
3139 874, 875, 876, 877, 877, 878, 879, 880, 880, 881,
3140 882, 883, 883, 884, 885, 886, 886, 887, 888, 889,
3141 889, 890, 891, 892, 892, 893, 894, 895, 896, 896,
3142 897, 897, 898, 898, 898, 898, 898, 898, 898, 898,
3143 898, 898, 898, 898, 898, 898, 898, 898, 898, 898,
3144 898, 898, 898, 898, 898, 898, 898, 898, 898, 900,
3145 899, 901, 901, 903, 902, 904, 904, 906, 905, 908,
3146 907, 910, 909, 912, 911, 914, 913, 916, 915, 918,
3147 917, 920, 919, 922, 921, 924, 923, 926, 925, 928,
3148 927, 929, 930, 931, 933, 932, 935, 934, 937, 936,
3149 939, 938, 941, 940, 942, 943, 944, 944, 945, 945,
3150 946, 946, 946, 948, 947, 950, 949, 951, 951, 952,
3151 951, 953, 953, 954, 954, 955, 956, 958, 957, 959,
3152 959, 961, 960, 962, 962, 964, 963, 965, 965, 967,
3153 966, 968, 968, 970, 969, 971, 971, 972, 972, 972,
3154 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
3155 972, 972, 972, 972, 972, 972, 973, 974, 975, 975,
3156 639, 976, 977, 978, 978, 979, 980, 981, 982, 982,
3157 983, 984, 985, 986, 986, 987, 988, 989, 990, 991,
3158 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
3159 1002, 1002, 1003, 1004, 1005, 1006, 1006, 1007, 1008, 1009,
3160 1010, 1011, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
3161 1019, 1020, 1021, 1022, 1023, 1025, 1024, 1026, 1026, 1027,
3162 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1036,
3163 1037, 1038, 1039, 1040, 1040, 1041, 1042, 1043, 1043, 1044,
3164 1045, 1046, 1047, 1047, 1048, 1048
3170 0, 2, 8, 1, 1, 1, 1, 0, 0, 4,
3171 1, 5, 0, 2, 3, 1, 1, 2, 0, 2,
3172 1, 1, 1, 1, 4, 4, 4, 4, 0, 3,
3173 1, 1, 1, 1, 1, 3, 0, 2, 0, 3,
3174 1, 1, 1, 1, 1, 3, 0, 2, 1, 1,
3175 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
3176 0, 2, 1, 1, 1, 1, 2, 3, 1, 1,
3177 0, 2, 1, 1, 1, 1, 2, 3, 1, 1,
3178 0, 2, 1, 1, 1, 1, 3, 1, 0, 2,
3179 3, 1, 1, 0, 2, 1, 1, 1, 2, 1,
3180 3, 1, 1, 0, 2, 1, 1, 1, 1, 4,
3181 1, 2, 3, 1, 1, 0, 2, 1, 1, 1,
3182 1, 1, 1, 1, 2, 3, 1, 1, 0, 2,
3183 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
3184 1, 1, 0, 2, 1, 1, 1, 1, 1, 2,
3185 3, 1, 1, 0, 2, 1, 1, 1, 3, 3,
3186 1, 1, 1, 1, 1, 3, 1, 1, 1, 3,
3187 1, 1, 0, 2, 1, 1, 1, 3, 3, 1,
3188 1, 1, 1, 1, 3, 1, 1, 1, 0, 2,
3189 1, 1, 1, 1, 6, 0, 3, 1, 1, 1,
3190 1, 1, 3, 1, 0, 2, 3, 1, 1, 0,
3191 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3192 1, 1, 1, 2, 0, 3, 1, 1, 1, 1,
3193 1, 3, 1, 0, 2, 3, 1, 1, 0, 2,
3194 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
3195 0, 3, 1, 1, 1, 1, 1, 3, 1, 0,
3196 2, 3, 1, 1, 0, 2, 1, 1, 1, 1,
3197 1, 1, 1, 1, 1, 1, 2, 0, 2, 1,
3198 1, 1, 1, 2, 3, 3, 4, 1, 5, 1,
3199 2, 0, 4, 0, 3, 1, 3, 3, 0, 3,
3200 0, 2, 1, 1, 4, 4, 1, 3, 1, 2,
3201 1, 2, 0, 4, 4, 1, 2, 0, 3, 0,
3202 2, 1, 1, 4, 4, 1, 3, 1, 2, 1,
3203 2, 0, 4, 4, 1, 2, 0, 3, 0, 2,
3204 1, 1, 4, 1, 3, 1, 2, 1, 2, 0,
3205 4, 4, 1, 2, 0, 4, 1, 2, 0, 2,
3206 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
3207 4, 4, 4, 4, 4, 3, 4, 4, 4, 4,
3208 4, 4, 4, 4, 4, 4, 4, 3, 3, 2,
3209 0, 2, 1, 1, 1, 1, 1, 1, 0, 2,
3210 3, 1, 1, 0, 2, 1, 1, 3, 3, 1,
3211 1, 2, 1, 3, 1, 1, 0, 2, 3, 1,
3212 0, 1, 3, 3, 1, 1, 2, 1, 3, 3,
3213 1, 1, 0, 2, 1, 1, 1, 1, 1, 1,
3214 1, 1, 1, 1, 1, 3, 2, 0, 3, 1,
3215 1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
3216 1, 1, 2, 1, 0, 2, 1, 1, 1, 1,
3217 1, 1, 1, 1, 4, 1, 1, 0, 2, 1,
3218 1, 3, 0, 2, 2, 1, 1, 1, 1, 3,
3219 1, 2, 1, 1, 1, 1, 3, 1, 2, 1,
3220 1, 1, 1, 3, 1, 4, 1, 1, 0, 2,
3221 1, 1, 3, 0, 2, 2, 1, 1, 1, 1,
3222 3, 1, 4, 1, 1, 0, 2, 1, 1, 3,
3223 0, 2, 0, 2, 1, 1, 1, 1, 3, 1,
3224 0, 2, 3, 1, 1, 0, 2, 1, 1, 1,
3225 1, 1, 3, 0, 2, 3, 1, 0, 1, 3,
3226 4, 1, 1, 0, 2, 1, 1, 3, 0, 2,
3227 0, 2, 1, 1, 1, 1, 3, 0, 2, 2,
3228 1, 1, 1, 1, 3, 4, 1, 1, 0, 2,
3229 1, 1, 3, 0, 2, 2, 1, 1, 1, 1,
3230 3, 1, 4, 1, 1, 0, 2, 1, 1, 3,
3231 0, 2, 0, 2, 1, 1, 1, 1, 3, 0,
3232 2, 3, 1, 0, 2, 1, 1, 1, 3, 5,
3233 1, 0, 1, 1, 3, 1, 1, 5, 1, 3,
3234 1, 1, 1, 1, 1, 3, 1, 3, 1, 1,
3235 1, 1, 1, 3, 1, 0, 2, 3, 1, 1,
3236 0, 2, 1, 1, 1, 1, 1, 1, 1, 3,
3237 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3238 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
3239 4, 4, 4, 1, 1, 1, 3, 1, 1, 1,
3240 3, 1, 1, 1, 3, 1, 1, 1, 3, 1,
3241 1, 1, 3, 1, 1, 1, 3, 1, 1, 1,
3242 3, 1, 1, 1, 3, 1, 1, 1, 3, 0,
3243 4, 1, 5, 0, 2, 5, 1, 1, 0, 2,
3244 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3245 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3246 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
3247 3, 1, 2, 0, 3, 1, 2, 0, 5, 0,
3248 5, 0, 5, 0, 4, 0, 5, 0, 5, 0,
3249 4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
3250 4, 3, 1, 1, 0, 4, 0, 6, 0, 4,
3251 0, 4, 0, 4, 3, 1, 1, 2, 0, 2,
3252 1, 1, 1, 0, 4, 0, 4, 1, 2, 0,
3253 4, 0, 2, 1, 1, 4, 4, 0, 4, 0,
3254 2, 0, 4, 0, 2, 0, 4, 0, 2, 0,
3255 4, 0, 2, 0, 4, 0, 2, 1, 1, 1,
3256 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3257 1, 1, 1, 1, 1, 1, 3, 1, 1, 2,
3258 4, 3, 1, 1, 2, 4, 3, 1, 1, 2,
3259 4, 3, 1, 1, 2, 4, 2, 1, 2, 2,
3260 1, 3, 2, 1, 2, 2, 1, 2, 4, 1,
3261 0, 1, 2, 4, 1, 0, 1, 2, 3, 2,
3262 1, 1, 2, 2, 1, 3, 2, 1, 2, 2,
3263 1, 3, 2, 1, 3, 0, 4, 0, 2, 2,
3264 1, 3, 2, 1, 6, 2, 1, 2, 0, 3,
3265 1, 1, 4, 1, 1, 1, 3, 0, 2, 5,
3272 #define yyerrok (yyerrstatus = 0)
3273 #define yyclearin (yychar = YYEMPTY)
3275 #define YYACCEPT goto yyacceptlab
3276 #define YYABORT goto yyabortlab
3277 #define YYERROR goto yyerrorlab
3278 #define YYNOMEM goto yyexhaustedlab
3281 #define YYRECOVERING() (!!yyerrstatus)
3283 #define YYBACKUP(Token, Value) \
3285 if (yychar == YYEMPTY) \
3289 YYPOPSTACK (yylen); \
3295 yyerror (&yylloc, osinstance, parserData, osglData, osnlData, YY_("syntax error: cannot back up")); \
3302 #define YYERRCODE YYUNDEF
3308 #ifndef YYLLOC_DEFAULT
3309 # define YYLLOC_DEFAULT(Current, Rhs, N) \
3313 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
3314 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
3315 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
3316 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
3320 (Current).first_line = (Current).last_line = \
3321 YYRHSLOC (Rhs, 0).last_line; \
3322 (Current).first_column = (Current).last_column = \
3323 YYRHSLOC (Rhs, 0).last_column; \
3328 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
3336 # define YYFPRINTF fprintf
3339 # define YYDPRINTF(Args) \
3350 # ifndef YYLOCATION_PRINT
3352 # if defined YY_LOCATION_PRINT
3356 # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
3358 # elif defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3364 yy_location_print_ (FILE *yyo,
YYLTYPE const *
const yylocp)
3370 res += YYFPRINTF (yyo,
"%d", yylocp->
first_line);
3378 res += YYFPRINTF (yyo,
"-%d", yylocp->
last_line);
3380 res += YYFPRINTF (yyo,
".%d", end_col);
3382 else if (0 <= end_col && yylocp->
first_column < end_col)
3383 res += YYFPRINTF (yyo,
"-%d", end_col);
3388 # define YYLOCATION_PRINT yy_location_print_
3392 # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
3396 # define YYLOCATION_PRINT(File, Loc) ((void) 0)
3399 # define YY_LOCATION_PRINT YYLOCATION_PRINT
3405 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
3409 YYFPRINTF (stderr, "%s ", Title); \
3410 yy_symbol_print (stderr, \
3411 Kind, Value, Location, osinstance, parserData, osglData, osnlData); \
3412 YYFPRINTF (stderr, "\n"); \
3422 yy_symbol_value_print (FILE *yyo,
3425 FILE *yyoutput = yyo;
3445 yy_symbol_print (FILE *yyo,
3448 YYFPRINTF (yyo,
"%s %s (",
3452 YYFPRINTF (yyo,
": ");
3454 YYFPRINTF (yyo,
")");
3465 YYFPRINTF (stderr,
"Stack now");
3466 for (; yybottom <= yytop; yybottom++)
3468 int yybot = *yybottom;
3469 YYFPRINTF (stderr,
" %d", yybot);
3471 YYFPRINTF (stderr,
"\n");
3474 # define YY_STACK_PRINT(Bottom, Top) \
3477 yy_stack_print ((Bottom), (Top)); \
3489 int yylno = yyrline[yyrule];
3490 int yynrhs =
yyr2[yyrule];
3492 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
3495 for (yyi = 0; yyi < yynrhs; yyi++)
3497 YYFPRINTF (stderr,
" $%d = ", yyi + 1);
3498 yy_symbol_print (stderr,
3500 &
yyvsp[(yyi + 1) - (yynrhs)],
3502 YYFPRINTF (stderr,
"\n");
3506 # define YY_REDUCE_PRINT(Rule) \
3509 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, osinstance, parserData, osglData, osnlData); \
3516 # define YYDPRINTF(Args) ((void) 0)
3517 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
3518 # define YY_STACK_PRINT(Bottom, Top)
3519 # define YY_REDUCE_PRINT(Rule)
3525 # define YYINITDEPTH 200
3536 # define YYMAXDEPTH 10000
3566 int yyxbegin =
yyn < 0 ? -
yyn : 0;
3571 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3577 else if (yycount == yyargn)
3583 if (yyarg && yycount == 0 && 0 < yyargn)
3592 # if defined __GLIBC__ && defined _STRING_H
3593 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
3608 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
3609 # define yystpcpy stpcpy
3617 const char *yys = yysrc;
3619 while ((*yyd++ = *yys++) !=
'\0')
3641 char const *yyp = yystr;
3647 goto do_not_strip_quotes;
3651 goto do_not_strip_quotes;
3667 do_not_strip_quotes: ;
3671 return yystpcpy (yyres, yystr) - yyres;
3711 yyarg[yycount] = yyctx->
yytoken;
3714 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
3735 enum { YYARGS_MAX = 5 };
3751 #define YYCASE_(N, S) \
3757 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
3758 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
3759 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
3760 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
3761 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3767 yysize =
yystrlen (yyformat) - 2 * yycount + 1;
3770 for (yyi = 0; yyi < yycount; ++yyi)
3781 if (*yymsg_alloc < yysize)
3783 *yymsg_alloc = 2 * yysize;
3784 if (! (yysize <= *yymsg_alloc
3796 while ((*yyp = *yyformat) !=
'\0')
3797 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
3859 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
3908 char *yymsg = yymsgbuf;
3911 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
3917 YYDPRINTF ((stderr,
"Starting parse\n"));
3946 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3953 # if defined yyoverflow
3966 yyoverflow (
YY_(
"memory exhausted"),
3993 # undef YYSTACK_RELOCATE
4004 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
4037 YYDPRINTF ((stderr,
"Reading a token\n"));
4045 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4284 for (
int i=0; i <
parserData->numberOfCones; i++)
4505 parserData->referenceMatrixIdxPresent =
true;
4571 parserData->firstAxisDirectionPresent =
false;
4572 parserData->secondAxisDirectionPresent =
false;
4807 for (
int i=0; i <
parserData->numberOfMatrixVar; i++)
4827 parserData->templateMatrixIdxPresent =
false;
4828 parserData->varReferenceMatrixIdxPresent =
false;
4857 if (
parserData->varReferenceMatrixIdxPresent)
4879 "varType must be one of C, B, I, S, D, J");
4903 for (
int i=0; i <
parserData->numberOfMatrixObj; i++)
4922 parserData->templateMatrixIdxPresent =
false;
4923 parserData->objReferenceMatrixIdxPresent =
false;
4925 parserData->constantMatrixIdxPresent =
false;
4950 if (
parserData->objReferenceMatrixIdxPresent)
4981 for (
int i=0; i <
parserData->numberOfMatrixCon; i++)
5000 parserData->templateMatrixIdxPresent =
false;
5001 parserData->conReferenceMatrixIdxPresent =
false;
5030 if (
parserData->conReferenceMatrixIdxPresent)
5116 for(
int i = 0; i < (
yyvsp[-2].
ival); i++)
5172 if ((
yyvsp[-1].ival) > 0) {
5177 for (
int i = 0; i < (
yyvsp[-1].
ival); i++)
5199 if ((
parserData->stageVariablesOrdered !=
true) &&
5244 if ((
yyvsp[-1].ival) > 0) {
5249 for (
int i = 0; i < (
yyvsp[-1].
ival); i++)
5271 if ((
parserData->stageConstraintsOrdered !=
true) &&
5329 if ((
yyvsp[-1].ival) > 0) {
5334 for (
int i = 0; i < (
yyvsp[-1].
ival); i++)
5344 if ((
parserData->stageObjectivesOrdered !=
true) &&
5385 printf(
"Interval not yet supported.\n\n");
5519 parserData->firstAxisDirectionPresent =
true;
5531 parserData->secondAxisDirectionPresent =
true;
5541 if (strcmp((
yyvsp[-1].sval),
"positive") && strcmp((
yyvsp[-1].sval),
"negative"))
5617 if (
parserData->varReferenceMatrixIdxPresent)
5621 parserData->varReferenceMatrixIdxPresent =
true;
5630 if (
parserData->objReferenceMatrixIdxPresent)
5634 parserData->objReferenceMatrixIdxPresent =
true;
5643 if (
parserData->conReferenceMatrixIdxPresent)
5647 parserData->conReferenceMatrixIdxPresent =
true;
5738 if( b64string == NULL)
5744 int base64decodeddatalength = base64decodeddata.length();
5750 intvec = (
int*)&base64decodeddata[0];
5799 if( b64string == NULL)
5805 int base64decodeddatalength = base64decodeddata.length();
5806 double *dblvec = NULL;
5811 dblvec = (
double*)&base64decodeddata[0];
6507 "valueType must be one of \"value\", \"status\", \"surplus\", \"shortage\"");
6549 "unknown shape specified in matrix transformation");
6593 "Number of blocks does not agree with attribute value numberOfBlocks");
6793 if ((
yyvsp[-1].ival) < 0)
6806 "start and end quotes are not the same");
6809 "more than one baseMatrixStartRow attribute in <baseMatrix> element");
6810 if ((
yyvsp[-1].ival) < 0)
6812 "baseMatrix first row cannot be negative");
6822 "start and end quotes are not the same");
6825 "more than one baseMatrixStartCol attribute in <baseMatrix> element");
6826 if ((
yyvsp[-1].ival) < 0)
6828 "baseMatrix first column cannot be negative");
6840 if ((
yyvsp[-1].ival) < 0)
6853 if ((
yyvsp[-1].ival) < 0)
6977 if ((
yyvsp[-1].ival) < 0)
6990 if ((
yyvsp[-1].ival) < 0)
7001 "more than one baseTranspose attribute in <baseMatrix> element");
7012 "more than one baseTranspose attribute in <baseMatrix> element");
7018 "baseTranspose attribute in <baseMatrix> element must be \"true\" or \"false\"");
7193 if ( *(
yyvsp[-3].sval) != *(
yyvsp[-1].sval) )
7259 "unknown shape specified in matrix transformation");
7366 #ifdef OSINSTANCE_AVAILABLE
7393 #ifdef OSINSTANCE_AVAILABLE
7540 #ifdef OSINSTANCE_AVAILABLE
7562 #ifdef OSINSTANCE_AVAILABLE
7584 #ifdef OSINSTANCE_AVAILABLE
7845 #ifdef OSINSTANCE_AVAILABLE
7854 #ifdef OSINSTANCE_AVAILABLE
7858 "number of expressions cannot be negative");
7876 #ifdef OSINSTANCE_AVAILABLE
7913 #ifdef OSINSTANCE_AVAILABLE
7923 #ifdef OSINSTANCE_AVAILABLE
7930 "unknown shape specified in matrix transformation");
7986 char const *yymsgp =
YY_(
"syntax error");
7987 int yysyntax_error_status;
7988 yysyntax_error_status =
yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
7989 if (yysyntax_error_status == 0)
7991 else if (yysyntax_error_status == -1)
7993 if (yymsg != yymsgbuf)
7999 yysyntax_error_status
8006 yymsg_alloc =
sizeof yymsgbuf;
8011 if (yysyntax_error_status ==
YYENOMEM)
8159 if (yymsg != yymsgbuf)
8180 std::ostringstream outStr;
8183 outStr << errormsg << std::endl;
8185 return outStr.str();
8213 if(c !=
'\n')
return false;
8221 const char *pchar = *p;
8225 const char *startOSiL =
"<osil";
8226 const char *pOSiLStart = strstr(pchar, startOSiL);
8227 if(pOSiLStart == NULL){
8232 const char *pOSiLEnd = strstr(pOSiLStart,
">");
8233 if(pOSiLEnd == NULL) {
osilerror_wrapper( pchar,osillineno,
"end of <osil> element missing");
return false;
8242 const char *startInstanceHeader =
"<instanceHeader";
8243 const char *endInstanceHeader =
"instanceHeader";
8244 const char *startName =
"ame";
8245 const char *startSource =
"ource";
8246 const char *startDescription =
"escription";
8247 const char *startFileCreator =
"ileCreator";
8248 const char *startLicence =
"icence";
8249 const char *endName =
"</name";
8250 const char *endSource =
"</source";
8251 const char *endDescription =
"</description";
8252 const char *endFileCreator =
"</fileCreator";
8253 const char *endLicence =
"</licence";
8254 const char *pinstanceHeadStart = strstr(pchar, startInstanceHeader);
8255 char *pelementText = NULL;
8256 const char *ptemp = NULL;
8259 bool namePresent =
false;
8260 bool sourcePresent =
false;
8261 bool descriptionPresent =
false;
8262 bool fileCreatorPresent =
false;
8263 bool licencePresent =
false;
8265 if(pinstanceHeadStart == NULL ) {
8266 const char *startInstanceData =
"<instanceData";
8267 *p = strstr(pchar, startInstanceData);
8272 int kount = pinstanceHeadStart - pchar;
8273 while( kount-- > 0)
if(*(pchar++) ==
'\n') (*osillineno)++;
8286 if(*pchar !=
'>') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceHeader> element");
return false;}
8294 if(*pchar !=
'>') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceHeader> element");
return false;}
8313 if (*pchar !=
'<') {
osilerror_wrapper( pchar,osillineno,
"improperly formed <name> element");
return false;}
8326 while(*startName++ == *pchar) pchar++;
8327 if( (pchar - *p) != 5)
8359 ptemp = strstr( pchar, endName);
8365 elementSize = ptemp - pchar;
8366 pelementText =
new char[ elementSize + 1];
8367 strncpy(pelementText, pchar, elementSize);
8368 pelementText[ elementSize] =
'\0';
8371 delete [] pelementText;
8373 while(elementSize-- > 0)
8375 if(*pchar++ ==
'\n') (*osillineno)++;
8399 sourcePresent =
true;
8401 while(*startSource++ == *pchar) pchar++;
8402 if( (pchar - *p) != 7)
8434 ptemp = strstr( pchar, endSource);
8440 elementSize = ptemp - pchar;
8441 pelementText =
new char[ elementSize + 1];
8442 strncpy(pelementText, pchar, elementSize);
8443 pelementText[ elementSize] =
'\0';
8446 delete [] pelementText;
8448 while(elementSize-- > 0)
8450 if(*pchar++ ==
'\n') (*osillineno)++;
8468 if (descriptionPresent)
8474 descriptionPresent =
true;
8476 while(*startDescription++ == *pchar) pchar++;
8477 if( (pchar - *p) != 12)
8509 ptemp = strstr( pchar, endDescription);
8512 osilerror_wrapper( pchar,osillineno,
"improperly formed </description> element");
8515 elementSize = ptemp - pchar;
8516 pelementText =
new char[ elementSize + 1];
8517 strncpy(pelementText, pchar, elementSize);
8518 pelementText[ elementSize] =
'\0';
8521 delete [] pelementText;
8523 while(elementSize-- > 0)
8525 if(*pchar++ ==
'\n') (*osillineno)++;
8535 osilerror_wrapper( pchar,osillineno,
"improperly formed </description> element");
8543 if (fileCreatorPresent)
8549 fileCreatorPresent =
true;
8551 while(*startFileCreator++ == *pchar) pchar++;
8552 if( (pchar - *p) != 12)
8584 ptemp = strstr( pchar, endFileCreator);
8587 osilerror_wrapper( pchar,osillineno,
"improperly formed </fileCreator> element");
8590 elementSize = ptemp - pchar;
8591 pelementText =
new char[ elementSize + 1];
8592 strncpy(pelementText, pchar, elementSize);
8593 pelementText[ elementSize] =
'\0';
8596 delete [] pelementText;
8598 while(elementSize-- > 0)
8600 if(*pchar++ ==
'\n') (*osillineno)++;
8610 osilerror_wrapper( pchar,osillineno,
"improperly formed </fileCreator> element");
8624 licencePresent =
true;
8626 while(*startLicence++ == *pchar) pchar++;
8627 if( (pchar - *p) != 8)
8659 ptemp = strstr( pchar, endLicence);
8665 elementSize = ptemp - pchar;
8666 pelementText =
new char[ elementSize + 1];
8667 strncpy(pelementText, pchar, elementSize);
8668 pelementText[ elementSize] =
'\0';
8671 delete [] pelementText;
8673 while(elementSize-- > 0)
8675 if(*pchar++ ==
'\n') (*osillineno)++;
8694 while(*endInstanceHeader++ == *pchar) pchar++;
8695 if( (pchar - *p) != 16)
8697 osilerror_wrapper( pchar,osillineno,
"improperly formed </instanceHeader> element");
8706 osilerror_wrapper( pchar,osillineno,
"improperly formed </instanceHeader> element");
8723 const char *pchar = *p;
8724 const char *startInstanceData =
"<instanceData";
8729 if(*pchar !=
'<'){
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceData element");
return false;}
8732 while(*startInstanceData++ == *pchar) pchar++;
8733 if( (pchar - *p) != 13) {
osilerror_wrapper( pchar,osillineno,
"improperly formed <instanceData> element");
return false;}
8758 clock_t start, finish;
8759 #ifdef CHECK_PARSE_TIME
8764 const char *ch = *p;
8766 const char *c_numberOfVariables =
"numberOfVariables";
8767 const char *startVariables =
"<variables";
8768 const char *endVariables =
"</variables";
8769 const char *startVar =
"<var";
8770 const char *endVar =
"</var";
8772 char *attText = NULL;
8773 const char *name =
"name";
8775 const char *type =
"type";
8776 const char *
mult =
"mult";
8781 int numberOfVariables = 0;
8783 bool varlbattON =
false;
8784 bool varubattON = false ;
8785 bool vartypeattON =
false;
8786 bool varnameattON = false ;
8789 bool varmultattON =
false;
8790 bool foundVar =
false;
8797 while(*startVariables++ == *ch) ch++;
8799 if( (ch - *p) != 10) {
return true;}
8807 while(*c_numberOfVariables++ == *ch) ch++;
8808 if( (ch - *p) != 17) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfVariables attribute in <variables tag>");
return false;}
8812 numberOfVariables =
atoimod1( osillineno, attText, attTextEnd);
8814 if(numberOfVariables < 0) {
8815 osilerror_wrapper( ch,osillineno,
"there must be a nonnegative number of variables");
return false;
8818 if(numberOfVariables > 0){
8820 for(i = 0; i < numberOfVariables; i++){
8827 if(numberOfVariables > 0){
8829 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"variables element does not have a proper closing >");
return false;}
8835 while(*startVar++ == *ch) ch++;
8836 if( (ch - *p) == 4) foundVar =
true;
8837 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <var> element");
return false;}
8842 vartypeattON =
false;
8843 varnameattON =
false;
8844 varmultattON =
false;
8851 while(*ch !=
'/' && *ch !=
'>'){
8855 while(*name++ == *ch) ch++;
8856 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"error in variables name attribute");
return false;}
8858 if(varnameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable name attributes");
return false;}
8859 varnameattON =
true;
8866 while(*type++ == *ch) ch++;
8867 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in variables type attribute");
return false;}
8869 if(vartypeattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable type attributes");
return false;}
8870 vartypeattON =
true;
8873 if( vt == 0 ) {
osilerror_wrapper( ch,osillineno,
"variable type not recognized");
return false;}
8879 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in variables lower bound attribute");
return false;}
8880 if(varlbattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable lb attributes");
return false;}
8888 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in variables upper bound attribute");
return false;}
8889 if(varubattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable ub attributes");
return false;}
8897 while(*
mult++ == *ch) ch++;
8898 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in variables mult attribute");
return false;}
8900 if(varmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many variable mult attributes");
return false;}
8901 varmultattON =
true;
8903 varmult =
atoimod1( osillineno,attText, attTextEnd);
8923 if (varubattON ==
false)
8931 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <var> element");
return false;}
8934 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <var> element");
return false;}
8940 while(*startVar++ == *ch) ch++;
8941 if( (ch - *p) == 4) {
8953 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <var> element");
return false;}
8960 while(*endVar++ == *ch) ch++;
8962 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"</var> element missing");
return false;}
8966 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"</var> element missing >");
return false;}
8973 while(*startVar++ == *ch) ch++;
8974 if( (ch - *p) == 4) {
8983 if( ((varcount+varmult) == numberOfVariables) && (foundVar ==
true) ) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfVariables is less than actual number found");
return false;}
8984 for (
int k=1; k < varmult; k++)
8995 varcount += varmult;
8997 if(varcount < numberOfVariables) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfVariables is greater than actual number found");
return false;}
9000 while(*endVariables++ == *ch) ch++;
9001 if( (ch - *p) != 11) {
osilerror_wrapper( ch,osillineno,
"cannot find </variables> tag");
return false;}
9004 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </variables> tag");
return false;}
9008 if(numberOfVariables < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of variables");
return false;}
9016 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed variables tag");
return false;}
9021 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed variables tag");
return false;}
9026 while( *endVariables++ == *ch) ch++;
9027 if( (ch - *p) != 11) {
osilerror_wrapper( ch,osillineno,
"cannot find </variables> tag");
return false; }
9030 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </variables> tag");
return false;}
9035 #ifdef CHECK_PARSE_TIME
9036 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9037 printf(
"TIME TO PARSE VARIABLES = %f\n", duration);
9045 clock_t start, finish;
9046 #ifdef CHECK_PARSE_TIME
9051 const char *ch = *p;
9053 const char *c_numberOfObjectives =
"numberOfObjectives";
9054 const char *startObjectives =
"<objectives";
9055 const char *endObjectives =
"</objectives";
9056 const char *startObj =
"<obj";
9057 const char *endObj =
"</obj";
9059 char *attText = NULL;
9060 const char *constant =
"constant";
9061 const char *maxOrMin =
"maxOrMin";
9062 const char *numberOfObjCoef =
"numberOfObjCoef";
9063 const char *weight =
"weight";
9064 const char *name =
"name";
9065 const char *
mult =
"mult";
9069 bool objmaxOrMinattON =
false;
9070 bool objnameattON =
false;
9071 bool objconstantattON =
false;
9072 bool objweightattON =
false;
9073 bool objmultattON =
false;
9074 bool objnumberOfObjCoefattON =
false;
9076 int numberOfObjectives;
9084 while( *startObjectives++ == *ch) ch++;
9085 if( (ch - *p) != 11) {
9099 numberOfObjectives = 1;
9104 while( *c_numberOfObjectives++ == *ch) ch++;
9105 if( (ch - *p) != 18) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfObjectives attribute in <objectives> tag");
return false;}
9107 numberOfObjectives =
atoimod1( osillineno, attText, attTextEnd);
9111 if(numberOfObjectives > 0){
9124 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the objectives element does not have a proper closing");
return false;}
9127 for(i = 0; i < numberOfObjectives; i++){
9134 while( *startObj++ == *ch) ch++;
9135 if( (ch - *p) == 4) foundObj =
true;
9136 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <obj> element");
return false;}
9140 objmaxOrMinattON =
false;
9141 objnameattON =
false;
9142 objconstantattON =
false;
9143 objweightattON =
false;
9144 objmultattON =
false;
9145 objnumberOfObjCoefattON =
false;
9150 while(*ch !=
'/' && *ch !=
'>'){
9153 if( *(ch+1) ==
'u'){
9155 while( *numberOfObjCoef++ == *ch) ch++;
9156 numberOfObjCoef -= 16;
9157 if( ( (ch - *p) != 15) ) {
osilerror_wrapper( ch,osillineno,
"error in objective numberOfObjCoef attribute");
return false;}
9159 if(objnumberOfObjCoefattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj numberOfObjCoef attributes");
return false;}
9160 objnumberOfObjCoefattON =
true;
9171 while( *name++ == *ch) ch++;
9173 if( ( (ch - *p) != 4) ) {
osilerror_wrapper( ch,osillineno,
"error in objective name attribute");
return false;}
9175 if(objnameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj name attributes");
return false;}
9176 objnameattON =
true;
9185 while( *constant++ == *ch) ch++;
9187 if( ( (ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in objective constant attribute");
return false;}
9189 if(objconstantattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj constant attributes");
return false;}
9190 objconstantattON =
true;
9198 while( *weight++ == *ch) ch++;
9200 if( ( (ch - *p) != 6) ) {
osilerror_wrapper( ch,osillineno,
"error in objective weight attribute");
return false;}
9202 if(objweightattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj weight attributes");
return false;}
9203 objweightattON =
true;
9212 while( *maxOrMin++ == *ch) ch++;
9214 if( ( ( ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in objective maxOrMin attribute");
return false;}
9216 if(objmaxOrMinattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj maxOrMin attributes");
return false;}
9217 objmaxOrMinattON =
true;
9219 if( (strcmp(
"max", attText) != 0 ) && (strcmp(
"min", attText) != 0 ) ){
osilerror_wrapper( ch,osillineno,
"maxOrMin attribute in objective must be a max or min");
return false;}
9226 while( *
mult++ == *ch) ch++;
9228 if( ( (ch - *p) != 4) ) {
osilerror_wrapper( ch,osillineno,
"error in objective mult attribute");
return false;}
9230 if(objmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many obj mult attributes");
return false;}
9231 objmultattON =
true;
9233 objmult =
atoimod1( osillineno,attText, attTextEnd);
9259 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <obj> element");
return false;}
9262 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <obj> element");
return false;}
9267 for(i = 0; startObj[i] == *ch; i++, ch++);
9268 if(i == 4) foundObj =
true;
9269 else foundObj =
false;
9274 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <obj> element");
return false;}
9282 for(i = 0; endObj[i] == *ch; i++, ch++);
9283 if(i != 5) {
osilerror_wrapper( ch,osillineno,
"</obj> element missing");
return false;}
9287 if(*ch++ !=
'>'){
osilerror_wrapper( ch,osillineno,
"</obj> element missing");
return false;}
9292 for(i = 0; startObj[i] == *ch; i++, ch++);
9293 if(i == 4) foundObj =
true;
9294 else foundObj =
false;
9296 if( ((objcount+objmult) == numberOfObjectives) && (foundObj ==
true)) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfObjectives is less than actual number found");
return false;}
9297 for (
int k=1; k < objmult; k++)
9322 objcount += objmult;
9324 if(objcount < numberOfObjectives) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfObjectives is greater than actual number found");
return false;}
9327 for(i = 0; endObjectives[i] == *ch; i++, ch++);
9328 if(i != 12) {
osilerror_wrapper( ch,osillineno,
"cannot find </objectives> tag");
return false; }
9331 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </objectives> tag");
return false;}
9336 if(numberOfObjectives < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of objectives");
return false;}
9344 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed objectives tag");
return false;}
9349 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed objectives tag");
return false;}
9353 for(i = 0; endObjectives[i] == *ch; i++, ch++);
9354 if(i != 12) {
osilerror_wrapper( ch,osillineno,
"cannot find </objectives> tag");
return false; }
9357 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </objectives> tag");
return false;}
9362 #ifdef CHECK_PARSE_TIME
9363 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9364 printf(
"TIME TO PARSE OBJECTIVES = %f\n", duration);
9371 clock_t start, finish;
9372 #ifdef CHECK_PARSE_TIME
9377 const char *ch = *p;
9379 const char *c_numberOfConstraints =
"numberOfConstraints";
9380 const char *startConstraints =
"<constraints";
9381 const char *endConstraints =
"</constraints";
9382 const char *startCon =
"<con";
9383 const char *endCon =
"</con";
9385 char *attText = NULL;
9386 const char *name =
"name";
9387 const char *constant =
"constant";
9388 const char *
mult =
"mult";
9392 int numberOfConstraints = 0;
9394 bool conlbattON = false ;
9395 bool conubattON =
false;
9396 bool connameattON =
false;
9397 bool conconstantattON =
false;
9398 bool conmultattON =
false;
9399 bool foundCon =
false;
9407 for(i = 0; startConstraints[i] == *ch; i++, ch++);
9408 while( *startConstraints++ == *ch) ch++;
9409 if( (ch - *p) != 12) {
9420 while( *c_numberOfConstraints++ == *ch) ch++;
9421 if( (ch - *p) != 19) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfConstraints attribute in <constraints> tag");
return false;}
9425 numberOfConstraints =
atoimod1( osillineno, attText, attTextEnd);
9429 if(numberOfConstraints > 0){
9432 for(i = 0; i < numberOfConstraints; i++){
9438 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the constraints element does not have a proper closing");
return false;}
9443 while( *startCon++ == *ch) ch++;
9444 if( (ch - *p) == 4) foundCon =
true;
9445 else {
osilerror_wrapper( ch,osillineno,
"there must be at least one <con> element");
return false;}
9448 conlbattON = false ;
9450 connameattON =
false;
9451 conconstantattON =
false;
9452 conmultattON =
false;
9458 while(*ch !=
'/' && *ch !=
'>'){
9462 while( *name++ == *ch) ch++;
9463 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in constraints name attribute");
return false;}
9464 if(connameattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con name attributes");
return false;}
9466 connameattON =
true;
9473 while( *constant++ == *ch) ch++;
9474 if( ((ch - *p) != 8) ) {
osilerror_wrapper( ch,osillineno,
"error in constraint constant attribute");
return false;}
9475 if(conconstantattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con constant attributes");
return false;}
9477 conconstantattON =
true;
9484 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in constraint lb attribute");
return false;}
9485 if(conlbattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con lb attributes");
return false;}
9493 if(*ch++ !=
'b') {
osilerror_wrapper( ch,osillineno,
"error in constraint ub attribute");
return false;}
9494 if(conubattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con ub attributes");
return false;}
9502 while( *
mult++ == *ch) ch++;
9503 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in constraints mult attribute");
return false;}
9504 if(conmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many con mult attributes");
return false;}
9506 conmultattON =
true;
9508 conmult =
atoimod1( osillineno,attText, attTextEnd);
9530 if( *ch !=
'/' && *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <con> element");
return false;}
9533 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect end of <con> element");
return false;}
9539 while( *startCon++ == *ch) ch++;
9540 if( (ch - *p) == 4){
9552 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improper ending to a <con> element");
return false;}
9559 while( *endCon++ == *ch) ch++;
9560 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"</con> element missing");
return false;}
9565 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"</con> element missing >");
return false;}
9572 while( *startCon++ == *ch) ch++;
9573 if( (ch - *p) == 4){
9582 if( ((concount+conmult) == numberOfConstraints) && (foundCon ==
true) ) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfConstraints is less than actual number found");
return false;}
9583 for (
int k=1; k < conmult; k++)
9594 concount += conmult;
9596 if(concount < numberOfConstraints) {
osilerror_wrapper( ch,osillineno,
"attribute numberOfConstraints is greater than actual number found");
return false;}
9599 while( *endConstraints++ == *ch) ch++;
9600 if( (ch - *p) != 13) {
osilerror_wrapper( ch,osillineno,
"cannot find </constraints> tag");
return false;}
9603 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </constraints> tag");
return false;}
9608 if(numberOfConstraints < 0) {
osilerror_wrapper( ch,osillineno,
"cannot have a negative number of constraints");
return false;}
9616 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed constraints tag");
return false;}
9621 if( *ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly closed constraints tag");
return false;}
9626 while( *endConstraints++ == *ch) ch++;
9627 if( (ch - *p) != 13) {
osilerror_wrapper( ch,osillineno,
"cannot find </constraints> tag");
return false; }
9630 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </constraints> tag");
return false;}
9635 #ifdef CHECK_PARSE_TIME
9636 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9637 printf(
"TIME TO PARSE CONSTRAINTS = %f\n", duration);
9646 const char *ch = *p;
9647 const char *c_numberOfValues =
"numberOfValues";
9648 const char *startlinearConstraintCoefficients =
"<linearConstraintCoefficients";
9649 const char *endlinearConstraintCoefficients =
"</linearConstraintCoefficients";
9651 char *attText = NULL;
9659 while( *startlinearConstraintCoefficients++ == *ch) ch++;
9660 if( (ch - *p) != 29) {
9672 while( *c_numberOfValues++ == *ch) ch++;
9673 if( (ch - *p) != 14) {
osilerror_wrapper( ch,osillineno,
"incorrect numberOfValues attribute in <linearConstraintCoefficients> tag");
return false;}
9677 numberOfValues =
atoimod1( osillineno, attText, attTextEnd);
9680 if(numberOfValues <= 0) {
osilerror_wrapper( ch,osillineno,
"the number of nonlinear nonzeros must be positive");
return false;}
9687 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the linearConstraintCoefficients element does not have a proper closing");
return false;}
9689 if(numberOfValues > 0) {
osilerror_wrapper( ch,osillineno,
"numberOfValues positive, but there are no values");
return false;}
9694 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"the <linearConstraintCoefficients> element does not have a proper closing");
return false;}
9697 if(
parseStart( &ch, osinstance, osillineno) !=
true) {
osilerror_wrapper( ch,osillineno,
"error processing <start> element");
return false;}
9701 if(
parseColIdx( &ch, osinstance, osillineno) ==
true)
9703 if(
parseRowIdx( &ch, osinstance, osillineno) ==
true)
9711 if(
parseRowIdx( &ch, osinstance, osillineno) !=
true)
9718 if (
parseColIdx( &ch, osinstance, osillineno) ==
true )
9726 if(
parseValue( &ch, osinstance, osillineno) !=
true) {
osilerror_wrapper( ch,osillineno,
"could not parse <value> element");
return false;}
9730 while( *endlinearConstraintCoefficients++ == *ch) ch++;
9731 if( (ch - *p) != 30) {
osilerror_wrapper( ch,osillineno,
"cannot find </linearConstraintCoefficients> tag");
return false;}
9734 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </linearConstraintCoefficients> tag");
return false;}
9741 clock_t start, finish;
9742 #ifdef CHECK_PARSE_TIME
9747 const char *ch = *p;
9749 const char* startStart =
"<start";
9750 const char* endStart =
"</start";
9751 const char* startEl =
"<el";
9752 const char* endEl =
"</el";
9754 char *attText = NULL;
9755 const char *incr =
"incr";
9756 const char *
mult =
"mult";
9760 bool elmultattON = false ;
9761 bool elincrattON =
false;
9762 bool foundEl =
false;
9768 while( *startStart++ == *ch) ch++;
9769 if( (ch - *p) != 6) {
9777 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <start> element");
return false;}
9783 while( *startEl++ == *ch) ch++;
9785 if( (ch - *p) != 3) {
9790 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
9791 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<start> must have children or base64 data");
return false;}
9793 int base64decodeddatalength = base64decodeddata.length();
9796 intvec = (
int*)&base64decodeddata[0];
9797 for (i = 0; i < (base64decodeddatalength/dataSize); i++){
9800 delete [] b64string;
9809 elmultattON = false ;
9810 elincrattON =
false;
9817 while(*ch !=
'/' && *ch !=
'>'){
9821 while( *incr++ == *ch) ch++;
9822 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in starts incr attribute");
return false;}
9823 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
9827 elincr =
atoimod1( osillineno,attText, attTextEnd);
9832 while( *
mult++ == *ch) ch++;
9833 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in starts mult attribute");
return false;}
9834 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
9838 elmult =
atoimod1( osillineno,attText, attTextEnd);
9860 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
9867 while( *ch !=
'<' && *ch != EOF){
9871 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
9877 osilerror_wrapper( ch, osillineno,
"number of start elements exceeds the maximum number of rows or columns plus 1");
9880 for (
int k=1; k < elmult; k++)
9888 while( *endEl++ == *ch) ch++;
9890 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
9893 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
9898 while( *startEl++ == *ch) ch++;
9899 if( (ch - *p) == 3){
9911 osilerror_wrapper( ch, osillineno,
"the value of the last start element is not equal to numberOfValues");
9915 while( *endStart++ == *ch) ch++;
9916 if( (ch - *p) != 7) {
osilerror_wrapper( ch,osillineno,
"cannot find </start> tag");
return false;}
9919 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </start> tag");
return false;}
9923 #ifdef CHECK_PARSE_TIME
9924 duration = (double) (finish - start) / CLOCKS_PER_SEC;
9925 printf(
"TIME TO PARSE STARTS = %f\n", duration);
9934 clock_t start, finish;
9935 #ifdef CHECK_PARSE_TIME
9940 const char *ch = *p;
9942 const char* startRowIdx =
"<rowIdx";
9943 const char* endRowIdx =
"</rowIdx";
9944 const char* startEl =
"<el";
9945 const char* endEl =
"</el";
9947 char *attText = NULL;
9948 const char *incr =
"incr";
9949 const char *
mult =
"mult";
9953 bool elmultattON = false ;
9954 bool elincrattON =
false;
9955 bool foundEl =
false;
9963 while( *startRowIdx++ == *ch) ch++;
9964 if( (ch - *p) != 7) {
9972 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <rowIdx> element");
return false;}
9978 while( *startEl++ == *ch) ch++;
9980 if( (ch - *p) != 3) {
9985 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
9986 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<rowIdx> must have children or base64 data");
return false;}
9988 int base64decodeddatalength = base64decodeddata.length();
9990 numberOfEl = (base64decodeddatalength/dataSize);
9996 intvec = (
int*)&base64decodeddata[0];
9997 for(i = 0; i < numberOfEl; i++){
10001 delete [] b64string;
10008 osilerror_wrapper( ch, osillineno,
"we are storing in column major format, but number of start elements not equal number of variables + 1");
10016 elmultattON = false ;
10017 elincrattON =
false;
10024 while(*ch !=
'/' && *ch !=
'>'){
10028 while( *incr++ == *ch) ch++;
10029 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in rowIdx incr attribute");
return false;}
10030 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10032 elincrattON =
true;
10034 elincr =
atoimod1( osillineno,attText, attTextEnd);
10039 while( *
mult++ == *ch) ch++;
10040 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in rowIdx mult attribute");
return false;}
10041 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10043 elmultattON =
true;
10045 elmult =
atoimod1( osillineno,attText, attTextEnd);
10067 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10074 while( *ch !=
'<' && *ch != EOF){
10078 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10083 osilerror_wrapper( ch, osillineno,
"number of rowIdx elements exceeds the number declared");
10086 for (
int k=1; k < elmult; k++)
10094 while( *endEl++ == *ch) ch++;
10096 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10099 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10104 while( *startEl++ == *ch) ch++;
10105 if( (ch - *p) == 3){
10117 while( *endRowIdx++ == *ch) ch++;
10118 if( (ch - *p) != 8) {
osilerror_wrapper( ch,osillineno,
"cannot find </rowIdx> tag");
return false;}
10121 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </rowIdx> tag");}
10124 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues) {
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients attribute greater than number of row indices found");
return false;}
10126 #ifdef CHECK_PARSE_TIME
10127 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10128 printf(
"TIME TO PARSE ROW INDEXES = %f\n", duration);
10136 clock_t start, finish;
10137 #ifdef CHECK_PARSE_TIME
10142 const char *ch = *p;
10144 const char* startColIdx =
"<colIdx";
10145 const char* endColIdx =
"</colIdx";
10146 const char* startEl =
"<el";
10147 const char* endEl =
"</el";
10149 char *attText = NULL;
10150 const char *incr =
"incr";
10151 const char *
mult =
"mult";
10155 bool elmultattON = false ;
10156 bool elincrattON =
false;
10157 bool foundEl =
false;
10165 while( *startColIdx++ == *ch) ch++;
10166 if( (ch - *p) != 7) {
10174 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <colIdx> element");
return false;}
10180 while( *startEl++ == *ch) ch++;
10182 if( (ch - *p) != 3) {
10187 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10188 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<colIdx> must have children or base64 data");
return false;}
10190 int base64decodeddatalength = base64decodeddata.length();
10191 int *intvec = NULL;
10192 numberOfEl = (base64decodeddatalength/dataSize);
10198 intvec = (
int*)&base64decodeddata[0];
10199 for(i = 0; i < numberOfEl; i++){
10203 delete [] b64string;
10210 osilerror_wrapper( ch, osillineno,
"we are storing in row major format, but number of start elements not equal number of rows + 1");
10218 elmultattON = false ;
10219 elincrattON =
false;
10226 while(*ch !=
'/' && *ch !=
'>'){
10230 while( *incr++ == *ch) ch++;
10231 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in colIdx incr attribute");
return false;}
10232 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10234 elincrattON =
true;
10236 elincr =
atoimod1( osillineno,attText, attTextEnd);
10241 while( *
mult++ == *ch) ch++;
10242 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in colIdx mult attribute");
return false;}
10243 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10245 elmultattON =
true;
10247 elmult =
atoimod1( osillineno,attText, attTextEnd);
10269 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10276 while( *ch !=
'<' && *ch != EOF){
10280 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10284 osilerror_wrapper( ch, osillineno,
"number of colIdx elements exceeds the number declared");
10287 for (
int k=1; k < elmult; k++)
10295 while( *endEl++ == *ch) ch++;
10297 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10300 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10305 while( *startEl++ == *ch) ch++;
10306 if( (ch - *p) == 3){
10318 while( *endColIdx++ == *ch) ch++;
10319 if( (ch - *p) != 8) {
osilerror_wrapper( ch,osillineno,
"cannot find </colIdx> tag");
return false;}
10322 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </colIdx> tag");
return false;}
10325 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues) {
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients attribute greater than number of column indices found");
return false;}
10327 #ifdef CHECK_PARSE_TIME
10328 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10329 printf(
"TIME TO PARSE COLUMN INDEXES = %f\n", duration);
10337 clock_t start, finish;
10338 #ifdef CHECK_PARSE_TIME
10343 const char *ch = *p;
10345 const char* startValue =
"<value";
10346 const char* endValue =
"</value";
10347 const char* startEl =
"<el";
10348 const char* endEl =
"</el";
10350 char *attText = NULL;
10351 const char *incr =
"incr";
10352 const char *
mult =
"mult";
10356 bool elmultattON = false ;
10357 bool elincrattON =
false;
10358 bool foundEl =
false;
10364 while( *startValue++ == *ch) ch++;
10365 if( (ch - *p) != 6) {
10373 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <value> element");
return false;}
10379 while( *startEl++ == *ch) ch++;
10381 if( (ch - *p) != 3) {
10386 char* b64string =
parseBase64(&ch, &dataSize, osillineno );
10387 if( b64string == NULL) {
osilerror_wrapper( ch,osillineno,
"<start> must have children or base64 data");
return false;};
10389 int base64decodeddatalength = base64decodeddata.length();
10395 if(
sizeof(
double) != dataSize ) {
10397 "base 64 encoded with a size of double different than on this machine");
10400 union doubleBuffer{
10401 char memAlign[
sizeof(double)];
10405 for(i = 0; i < (base64decodeddatalength/dataSize); i++){
10406 for(kj = 0; kj < dataSize; kj++){
10407 dbuf.memAlign[ kj] = base64decodeddata[kountChar];
10414 delete [] b64string;
10422 elmultattON = false ;
10423 elincrattON =
false;
10430 while(*ch !=
'/' && *ch !=
'>'){
10434 while( *incr++ == *ch) ch++;
10435 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in values incr attribute");
return false;}
10436 if(elincrattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el incr attributes");
return false;}
10438 elincrattON =
true;
10440 elincr =
atofmod1( osillineno,attText, attTextEnd);
10445 while( *
mult++ == *ch) ch++;
10446 if( (ch - *p) != 4) {
osilerror_wrapper( ch,osillineno,
"error in values mult attribute");
return false;}
10447 if(elmultattON ==
true) {
osilerror_wrapper( ch,osillineno,
"too many el mult attributes");
return false;}
10449 elmultattON =
true;
10451 elmult =
atoimod1( osillineno,attText, attTextEnd);
10473 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed <el> tag");
return false;}
10479 while( *ch !=
'<' && *ch != EOF){
10483 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10487 osilerror_wrapper( ch, osillineno,
"number of nonzero elements exceeds the number declared");
10490 for (
int k=1; k < elmult; k++)
10498 while( *endEl++ == *ch) ch++;
10500 if( (ch - *p) != 4 ) {
osilerror_wrapper( ch,osillineno,
"cannot find an </el>");
return false;}
10503 if( *ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </el> tag");
return false;}
10508 while( *startEl++ == *ch) ch++;
10509 if( (ch - *p) == 3){
10523 while( *endValue++ == *ch) ch++;
10524 if( (ch - *p) != 7) {
osilerror_wrapper( ch,osillineno,
"cannot find </value> tag");
return false;}
10527 if(*ch !=
'>') {
osilerror_wrapper( ch,osillineno,
"improperly formed </value> tag");
return false;}
10529 if(kount < osinstance->instanceData->linearConstraintCoefficients->numberOfValues){
osilerror_wrapper( ch,osillineno,
"numberOfLinearCoefficients greater than number of values found");
return false;}
10532 #ifdef CHECK_PARSE_TIME
10533 duration = (double) (finish - start) / CLOCKS_PER_SEC;
10534 printf(
"TIME TO PARSE VALUES = %f\n", duration);
10543 const char *ch = *p;
10544 const char* startCoef =
"<coef";
10545 const char* endCoef =
"</coef";
10546 const char* c_idx =
"idx";
10547 char *attText = NULL;
10549 int numberOfObjCoef = 0;
10552 if(numberOfObjCoef > 0) {
10553 for(k = 0; k < numberOfObjCoef; k++){
10557 while( *startCoef++ == *ch) ch++;
10558 if( (ch - *p) != 5) {
osilerror_wrapper( ch,osillineno,
"improper <coef> element");
return false;}
10564 while( *c_idx++ == *ch) ch++;
10565 if( (ch - *p) != 3) {
osilerror_wrapper( ch,osillineno,
"incorrect idx attribute in objective function <idx> tag");
return false;}
10575 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect <coef> element") ;
return false;}
10579 for(; *ch !=
'<' && *ch != EOF; ch++);
10583 if(*ch !=
'<') {
osilerror_wrapper( ch,osillineno,
"improper </coef> tag");
return false;}
10586 while( *endCoef++ == *ch) ch++;
10587 if( (ch - *p) != 6) {
osilerror_wrapper( ch,osillineno,
"improper </coef> element");
return false;}
10592 if(*ch++ !=
'>') {
osilerror_wrapper( ch,osillineno,
"incorrect </coef> element") ;
return false;}
10602 const char *ch = *p;
10603 const char *sizeOf =
"sizeOf";
10605 const char *startBase64BinaryData =
"<base64BinaryData";
10606 const char *endBase64BinaryData =
"</base64BinaryData";
10607 char *attText = NULL;
10608 char *b64string = NULL;
10611 for(i = 0; startBase64BinaryData[i] == *ch; i++, ch++);
10620 for(i = 0; sizeOf[i] == *ch; i++, ch++);
10621 if(i != 6) {
osilerror_wrapper( ch,osillineno,
"incorrect sizeOf attribute in <base64BinaryData> element");
return NULL;}
10629 for( ; *ch !=
'\"'; ch++); \
10632 if(*ch ==
'\'') { \
10636 for( ; *ch !=
'\''; ch++); \
10638 else {
osilerror_wrapper( ch, osillineno,
"missing quote on attribute");
return NULL;} \
10640 numChar = ch - *p; \
10641 attText =
new char[numChar + 1]; \
10642 for(ki = 0; ki < numChar; ki++) attText[ki] = *((*p)++); \
10643 attText[ki] =
'\0'; \
10644 attTextEnd = &attText[ki];
10646 *dataSize =
atoimod1( osillineno, attText, attTextEnd);
10652 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"<base64BinaryData> element does not have a proper closing >");
return NULL;}
10655 const char *b64textstart = ch;
10657 for(; *ch !=
'<' && *ch != EOF; ch++);
10658 const char *b64textend = ch;
10660 for(i = 0; endBase64BinaryData[i] == *ch; i++, ch++);
10661 if(i != 18) {
osilerror_wrapper( ch,osillineno,
" problem with <base64BinaryData> element");
return NULL;}
10662 int b64len = b64textend - b64textstart;
10663 b64string =
new char[ b64len + 1];
10664 for(ki = 0; ki < b64len; ki++) b64string[ki] = b64textstart[ ki];
10665 b64string[ki] =
'\0';
10669 if(*ch !=
'>' ) {
osilerror_wrapper( ch,osillineno,
"</base64BinaryData> element does not have a proper closing >");
return NULL;}
10677 double atofmod1(
int* osillineno,
const char *number,
const char *numberend){
10685 if(pEnd != numberend)
osilerror_wrapper( pEnd, osillineno,
"error in parsing an XSD:double");
10691 int atoimod1(
int* osillineno,
const char *number,
const char *numberend){
10698 sign = (number[ i] ==
'-') ? -1 : 1;
10699 if (number[ i] ==
'+' || number[ i] ==
'-') i++;
10700 for(ival = 0;
ISDIGIT( number[ i]); i++){
10701 ival = 10*ival + (number[ i] -
'0') ;
10703 if(i == endWhiteSpace) {
osilerror_wrapper( number,osillineno,
"error in parsing an XSD:int" ); }
10706 if(number[i] == *numberend){
10713 const int numErrorChar = 20;
10714 char errorArray[100] =
"";
10715 strncpy(errorArray, ch, numErrorChar);
10716 std::ostringstream outStr;
10717 std::string error = errormsg;
10718 error =
"PARSER ERROR: Input is either not valid or well formed: " + error;
10719 outStr << error << endl;
10720 outStr <<
"Here are " ;
10721 outStr << numErrorChar ;
10722 outStr <<
" characters currently being pointed to in the input string: ";
10723 outStr << errorArray;
10725 outStr <<
"See line number: " << *osillineno << endl;
10726 error = outStr.str();
double os_strtod_wrap(const char *str, char **strEnd)
void osilset_extra(OSiLParserData *parserData, void *yyscanner)
static const char * yysymbol_name(yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED
static YYPTRDIFF_T yystrlen(const char *yystr)
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
static const yytype_int16 yytranslate[]
void osnl_empty_vectors(OSnLParserData *osnlData)
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
int atoimod1(int *osillineno, const char *ch1, const char *ch2)
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
void osilerror_wrapper(const char *ch, int *osillineno, const char *errormsg)
#define YY_IGNORE_USELESS_CAST_END
void yygetOSInstance(const char *osil, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
bool parseObjCoef(const char **pchar, int objcount, OSInstance *osinstance, int *osillineno)
static const yytype_int16 yydefact[]
bool parseRowIdx(const char **pchar, OSInstance *osinstance, int *osillineno)
#define YYLLOC_DEFAULT(Current, Rhs, N)
static const yytype_int16 yydefgoto[]
#define YY_REDUCE_PRINT(Rule)
#define YY_CAST(Type, Val)
void osilset_lineno(int line_number, void *yyscanner)
struct yy_buffer_state * YY_BUFFER_STATE
bool parseLinearConstraintCoefficients(const char **pchar, OSInstance *osinstance, int *osillineno)
void osil_empty_vectors(OSiLParserData *parserData)
static const yytype_int16 yypact[]
bool parseObjectives(const char **pchar, OSInstance *osinstance, int *osillineno)
bool parseInstanceData(const char **pchar, OSInstance *osinstance, int *osillineno)
#define YY_ACCESSING_SYMBOL(State)
Accessing symbol of state STATE.
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
static const yytype_int16 yypgoto[]
#define YY_INITIAL_VALUE(Value)
bool parseValue(const char **pchar, OSInstance *osinstance, int *osillineno)
static YYPTRDIFF_T yytnamerr(char *yyres, const char *yystr)
std::string addErrorMsg(YYLTYPE *mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
int osillex_init(void **ptr_yy_globals)
static char * yystpcpy(char *yydest, const char *yysrc)
#define YY_STACK_PRINT(Bottom, Top)
bool isnewline(char c, int *osillineno)
#define YYSTACK_ALLOC_MAXIMUM
#define YY_IGNORE_USELESS_CAST_BEGIN
static const yytype_int8 yyr2[]
char * parseBase64(const char **p, int *dataSize, int *osillineno)
static const yytype_int16 yystos[]
void osgl_empty_vectors(OSgLParserData *osglData)
bool parseInstanceHeader(const char **pchar, OSInstance *osinstance, int *osillineno)
void osilerror(YYLTYPE *mytype, OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData, std::string errormsg)
static const yytype_int16 yytable[]
#define yytable_value_is_error(Yyn)
#define ISWHITESPACE(char_)
int osilget_lineno(void *yyscanner)
int osillex_destroy(void *yyscanner)
double atofmod1(int *osillineno, const char *ch1, const char *ch2)
static const yytype_int16 yyr1[]
#define YY_ATTRIBUTE_UNUSED
static const char *const yytname[]
static int yypcontext_expected_tokens(const yypcontext_t *yyctx, yysymbol_kind_t yyarg[], int yyargn)
char * osilget_text(void *yyscanner)
bool parseConstraints(const char **pchar, OSInstance *osinstance, int *osillineno)
bool parseStart(const char **pchar, OSInstance *osinstance, int *osillineno)
bool parseVariables(const char **pchar, OSInstance *osinstance, int *osillineno)
YY_BUFFER_STATE osil_scan_string(const char *yy_str, void *yyscanner)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
#define yypact_value_is_default(Yyn)
static int yy_syntax_error_arguments(const yypcontext_t *yyctx, yysymbol_kind_t yyarg[], int yyargn)
bool parseColIdx(const char **pchar, OSInstance *osinstance, int *osillineno)
static const yytype_int16 yycheck[]
static int yysyntax_error(YYPTRDIFF_T *yymsg_alloc, char **yymsg, const yypcontext_t *yyctx)
int osilparse(OSInstance *osinstance, OSiLParserData *parserData, OSgLParserData *osglData, OSnLParserData *osnlData)
OSgLParserData * osglData
OSnLParserData * osnlData
OSoLParserData * parserData
YYSTYPE yyvsa[YYINITDEPTH]
yytype_int16 yyssa[YYINITDEPTH]
YYLTYPE yylsa[YYINITDEPTH]
static Bigint * mult(Bigint *a, Bigint *b)
This file defines the OSnLNode class along with its derived classes.
static std::string decodeb64(char *b64bytes)
decode the data in base 64
a data structure to represent a point of departure for constructing a matrix by modifying parts of a ...
a data structure to represent an entry in a conReferenceMatrix element, which consists of a constrain...
a data structure to represent row reference elements in a MatrixType object Each nonzero element is o...
a data structure to represent the nonzeros in a conReferenceMatrix element
The in-memory representation of a generic cone Specific cone types are derived from this generic clas...
ENUM_CONE_TYPE coneType
The type of the cone.
The in-memory representation of the <cones> element.
Cone ** cone
cone is pointer to an array of Cone object pointers
int numberOfCones
numberOfCones is the number of <nl> elements in the <cones> element.
a data structure to represent the constant elements in a MatrixType object
to represent the nonzeros in a constantMatrix element
The in-memory representation of the <con> element.
double constant
constant is a value that is added to the constraint
double ub
ub is the upper bound on the constraint
double lb
lb is the lower bound on the constraint
std::string name
name is the name of the constraint
The in-memory representation of the <constraints> element.
int numberOfConstraints
numberOfConstraints is the number of constraints in the instance
Constraint ** con
con is pointer to an array of Constraint object pointers
used for throwing exceptions.
std::string errormsg
errormsg is the error that is causing the exception to be thrown
OSnLNode ** m_mChildren
m_mChildren holds all the operands, that is, nodes that the current node operates on.
unsigned int inumberOfChildren
inumberOfChildren is the number of OSnLNode child elements If this number is not fixed,...
a data structure to represent the nonzero values in a generalMatrix element
a data structure to represent the nonzeros in a generalMatrix element
Variables * variables
variables is a pointer to a Variables object
QuadraticCoefficients * quadraticCoefficients
quadraticCoefficients is a pointer to a QuadraticCoefficients object
Constraints * constraints
constraints is a pointer to a Constraints object
Cones * cones
cones is a pointer to a Cones object
NonlinearExpressions * nonlinearExpressions
nonlinearExpressions is a pointer to a NonlinearExpressions object
MatrixProgramming * matrixProgramming
matrixProgramming is a pointer to a MatrixProgramming object
TimeDomain * timeDomain
timeDomain is a pointer to a TimeDomain object
Matrices * matrices
matrices is a pointer to a Matrices object
Objectives * objectives
objectives is a pointer to a Objectives object
LinearConstraintCoefficients * linearConstraintCoefficients
linearConstraintCoefficients is a pointer to a LinearConstraintCoefficients object
an integer Vector data structure
The in-memory representation of an intersection cone.
The in-memory representation of the <linearConstraintCoefficients> element.
DoubleVector * value
a pointer to the array of nonzero values being stored
int iNumberOfStartElements
iNumberOfStartElements counts the number of elements in the <start> section of <linearConstraintCoeff...
int numberOfValues
numberOfValues is the number of nonzero elements stored in the <linearConstraintCoefficients> element
IntVector * start
a pointer to the start of each row or column stored in sparse format
IntVector * rowIdx
a pointer of row indices if the problem is stored by column
IntVector * colIdx
a pointer of column indices if the problem is stored by row
a data structure to represent an expression in a linearMatrix element A LinearMatrixElement is a (fin...
a data structure to represent a term in a linearMatrix element A term has the form c*x_{k},...
a data structure to represent the nonzero values in a linearMatrix element
a data structure to represent the linear expressions in a LinearMatrixElement object
The in-memory representation of the <matrices> element.
int numberOfMatrices
numberOfMatrices is the number of <nl> elements in the <matrices> element.
OSMatrix ** matrix
matrix is a pointer to an array of OSMatrix object pointers
a data structure to represent a MatrixBlock object (derived from MatrixType)
a data structure to represent the nonzeroes of a matrix in a blockwise fashion. Each block can be giv...
The in-memory representation of the <matrixCon> element.
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
std::string name
an optional name to this MatrixCon
int lbConeIdx
lbConeIdx gives a cone that must contain matrixCon - lbMatrix
int ubConeIdx
ubConeIdx gives a cone that must contain ubMatrix - matrixCon
int lbMatrixIdx
lbMatrixIdx gives a lower bound for this matrixCon
int numberOfRows
numberOfRows gives the number of rows of this matrix
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixVar that are allowed ...
int conReferenceMatrixIdx
conReferenceMatrixIdx allows some or all of the components of this matrixCon to be copied from constr...
int ubMatrixIdx
ubMatrixIdx gives an upper bound for this matrixCon
The in-memory representation of the <matrixConstraints> element.
int numberOfMatrixCon
numberOfMatrixCon gives the number of <matrixCon> children
MatrixCon ** matrixCon
matrixCon is an array of pointers to the <matrixCon> children
an abstract class to help represent the elements in a MatrixType object From this we derive concrete ...
The in-memory representation of the <expr> element, which is like a nonlinear expression,...
int idx
idx holds the row index of the nonlinear expression
MatrixExpressionTree * matrixExpressionTree
matrixExpressionTree contains the root of the MatrixExpressionTree
ENUM_NL_EXPR_SHAPE shape
shape holds the shape of the nonlinear expression (linear/quadratic/convex/general) (see further up i...
Used to hold the instance in memory.
OSnLMNode * m_treeRoot
m_treeRoot holds the root node (of OSnLMNode type) of the expression tree.
The in-memory representation of the <matrixExpressions> element.
int numberOfExpr
numberOfExpr gives the number of expressions
MatrixExpression ** expr
a pointer to an array of linear and nonlinear expressions that evaluate to matrices
a generic class from which we derive matrix constructors (BaseMatrix, MatrixElements,...
The in-memory representation of the <matrixObj> element.
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
int numberOfRows
numberOfRows gives the number of rows of this matrix
int orderConeIdx
orderConeIdx gives a cone that expresses preferences during the optimization x is (weakly) preferred ...
int constantMatrixIdx
constantMatrixIdx gives a constant added to the matrixObj
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixObj that are allowed ...
std::string name
an optional name to this matrixObj
int objReferenceMatrixIdx
objReferenceMatrixIdx allows some or all of the components of this matrixObj to be copied from object...
The in-memory representation of the <matrixObjectives> element.
int numberOfMatrixObj
numberOfMatrixObj gives the number of <matrixObj> children
MatrixObj ** matrixObj
matrixObj is an array of pointers to the <matrixObj> children
The in-memory representation of the <matrixProgramming> element.
MatrixObjectives * matrixObjectives
a pointer to the matrixObjectives object
MatrixConstraints * matrixConstraints
a pointer to the matrixConstraints object
MatrixExpressions * matrixExpressions
a pointer to the matrixExpressions object
MatrixVariables * matrixVariables
a pointer to the matrixVariables object
a data structure to represent a MatrixType object (from which we derive OSMatrix and MatrixBlock)
The in-memory representation of the <matrixVar> element.
int ubConeIdx
ubConeIdx gives a cone that must contain ubMatrix - matrixVar
char varType
an optional variable type (C, B, I, D, J, S).
int lbMatrixIdx
lbMatrixIdx gives a lower bound for this matrixVar
std::string name
an optional name to this matrixVar
int lbConeIdx
lbConeIdx gives a cone that must contain matrixVar - lbMatrix
int numberOfRows
numberOfRows gives the number of rows of this matrix
int varReferenceMatrixIdx
varReferenceMatrixIdx allows some or all of the components of this matrix variable to be copied from ...
int numberOfColumns
numberOfColumns gives the number of columns of this matrix
int ubMatrixIdx
ubMatrixIdx gives an upper bound for this matrixVar
int templateMatrixIdx
templateMatrixIdx refers to a matrix that describes the locations in this matrixVar that are allowed ...
The in-memory representation of the <matrixVariables> element.
MatrixVar ** matrixVar
matrixVar is an array of pointers to the <matrixVar> children
int numberOfMatrixVar
numberOfMatrixVar gives the number of <matrixVar> children
The in-memory representation of the <nl> element.
int idx
idx holds the row index of the nonlinear expression
ScalarExpressionTree * osExpressionTree
osExpressionTree contains the root of the ScalarExpressionTree
ENUM_NL_EXPR_SHAPE shape
shape holds the shape of the nonlinear expression (linear/quadratic/convex/general) (see further up i...
The in-memory representation of the <nonlinearExpressions> element.
int numberOfNonlinearExpressions
numberOfNonlinearExpressions is the number of <nl> elements in the <nonlinearExpressions> element.
Nl ** nl
nl is pointer to an array of Nl object pointers
The NonnegativeCone Class.
The NonpositiveCone Class.
bool bADMustReTape
is true if an AD Expression Tree has an expression that can change depending on the value of the inpu...
The in-memory representation of an OSiL instance..
GeneralFileHeader * instanceHeader
the instanceHeader is implemented as a general file header object to allow sharing of classes between...
InstanceData * instanceData
A pointer to an InstanceData object.
a data structure to represent a matrix object (derived from MatrixType)
OSMatrix * createConstructorTreeFromPrefix(std::vector< MatrixNode * > mtxConstructorVec)
this class extends OSMatrix for use, e.g., in the matrixCon section of OSoL and OSrL
this class extends OSMatrix for use, e.g., in the matrixObj section of OSoL and OSrL
this class extends OSMatrix for use, e.g., in the matrixVar section of OSoL and OSrL
The OSgLParserData Class.
int * osglIntArray
data structure to process an IntVector and hold the data temporarily
std::vector< int > nBlocksVec
std::vector< MatrixNode * > mtxBlocksVec
bool targetMatrixFirstRowPresent
bool numberOfColumnsPresent
bool numberOfBlocksPresent
Data elements for parsing number-valued attributes and elements.
bool numberOfValuesPresent
bool baseMatrixIdxPresent
std::vector< int * > colOffsets
MatrixNode * tempC
This matrix constructor is needed in order to properly push the constructor vector.
bool baseMatrixStartRowPresent
OSMatrix ** matrix
We need to hold an array of <matrix> elements temporarily.
int matrixCounter
We also need to keep track locally of the number of matrices.
bool baseTransposePresent
Data elements for parsing string-valued attributes and text elements.
std::vector< int * > rowOffsets
Vectors to hold rowOffset and colOffset arrays in a place where they are easily accessible while the ...
int nonzeroCounter
Linear matrices need a counter to count the number of terms within each element.
bool scalarMultiplierPresent
std::vector< MatrixNode * > mtxBlkVec
bool baseMatrixEndColPresent
bool baseMatrixEndRowPresent
bool numberOfMatricesPresent
bool targetMatrixFirstColPresent
bool baseMatrixStartColPresent
std::vector< MatrixNode * > mtxConstructorVec
Several vectors to process the matrix nodes into the right order.
bool numberOfVarIdxPresent
The OSiLParserData Class, used to store parser data.
The OSnLMNode Class for nonlinear expressions involving matrices.
OSnLMNode * createExpressionTreeFromPrefix(std::vector< ExprNode * > nlNodeVec)
Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in prefix format and create a matrix-valued OSE...
int idx
The index of the matrixCon.
int idx
The index of the matrixObj.
The OSnLMNodeMatrixProduct Class.
int idx
The index of the matrix.
int idx
The index of the matrixVar.
The OSnLNodeAllDiff Class.
The OSnLNodeDivide Class.
The OSnLNode Class for nonlinear expressions.
OSnLNode * createExpressionTreeFromPrefix(std::vector< ExprNode * > nlNodeVec)
Take a vector of ExprNodes (OSnLNodes and OSnLMNodes) in prefix format and create a scalar-valued OSE...
The next few nodes evaluate to a scalar even though one or more of its arguments are matrices.
The OSnLNodeMatrixTrace Class.
The OSnLNodeMatrixTrace Class.
The OSnLNodeNegate Class.
The OSnLNodeNumber Class.
double value
value is the value of the number
std::string id
later, e.g.
std::string type
in the C++ type is real
The OSnLNodeProduct Class.
The OSnLNodeSquare Class.
The OSnLNodeVariable Class.
int idx
idx is the index of the variable
double coef
coef is an option coefficient on the variable, the default value is 1.0
The OSnLParserData Class.
OSnLMNodeMatrixObj * nlMNodeMatrixObj
a pointer to an OSnLMNode object that is a matrixObj reference
bool matrixidxattON
matrixidxattON is set to true if the idx attribute has been parsed for an OSnLNodeVariable,...
OSnLMNodeMatrixReference * nlMNodeMatrixRef
a pointer to an OSnLMNode object that is a simple matrix reference
OSnLNodeNumber * nlNodeNumberPoint
a pointer to an OSnLNode object that is a number
OSnLMNodeMatrixCon * nlMNodeMatrixCon
a pointer to an OSnLMNode object that is a matrixCon reference
std::vector< ExprNode * > allDiffVec
the OSnLNodeallDiff node can have any number of children, including other children with an indetermin...
std::vector< ExprNode * > maxVec
the OSnLNodeMax node can have any number of children, including other children with an indeterminate ...
bool variableidxattON
variableidxattON is set to true if the idx attribute has been parsed for an OSnLNodeVariable,...
std::vector< ExprNode * > sumVec
the OSnLNodeSum node can have any number of children, including other children with an indeterminate ...
std::vector< ExprNode * > nlNodeVec
nlNodeVec holds a vector of pointers to OSnLNodes and OSnLMNodes In order to build the expression tre...
bool includeDiagonalAttribute
OSnLNodeVariable * nlNodeVariablePoint
a pointer to an OSnLNode object that is a variable
int tmpnlcount
tmpnlcount counts the number of nl nodes actually found.
OSnLMNodeMatrixVar * nlMNodeMatrixVar
a pointer to an OSnLMNode object that is a matrixVar reference
std::vector< ExprNode * > matrixProductVec
the OSnLMNodeProduct node can have any number of children, including other children with an indetermi...
std::vector< ExprNode * > matrixSumVec
the OSnLMNodeMatrixSum node can have any number of children, including other children with an indeter...
std::vector< ExprNode * > productVec
the OSnLNodeProduct node can have any number of children, including other children with an indetermin...
ExprNode * nlNodePoint
These entities are used for parsing <nonlinearExpressions>
int nlnodenumber
nlnodenumber is the number of nl nodes in the instance
std::vector< ExprNode * > minVec
the OSnLNodeMin node can have any number of children, including other children with an indeterminate ...
bool numberidattON
numberidattON is set to true if the id attribute has been parsed for an OSnLNodeNumber object,...
bool variablecoefattON
variablecoefattON is set to true if the coeff attribute has been parsed for an OSnLNodeVariable,...
std::string parser_errors
used to accumulate error message so the parser does not die on the first error encountered
bool ignoreDataAfterErrors
two booleans to govern the behavior after an error has been encountered
char * errorText
if the parser finds invalid text it is held here and we delete if the file was not valid
bool suppressFurtherErrorMessages
The in-memory representation of the objective function <coef> element.
double value
value is the value of the objective function coefficient corresponding to the variable with index idx
int idx
idx is the index of the variable corresponding to the coefficient
a data structure to represent objective reference elements in a MatrixType object Each nonzero elemen...
to represent the nonzeros in an objReferenceMatrix element
The in-memory representation of the <obj> element.
ObjCoef ** coef
coef is pointer to an array of ObjCoef object pointers
double constant
constant is the constant term added to the objective function, 0 by default
double weight
weight is the weight applied to the given objective function, 1.0 by default
int numberOfObjCoef
numberOfObjCoef is the number of variables with a nonzero objective function coefficient
std::string name
the name of the objective function
std::string maxOrMin
declare the objective function to be a max or a min
The in-memory representation of the <objectives> element.
int numberOfObjectives
numberOfObjectives is the number of objective functions in the instance
Objective ** obj
coef is pointer to an array of ObjCoef object pointers
The in-memory representation of a polyhedral cone.
The in-memory representation of a product cone.
The in-memory representation of the <quadraticCoefficients> element.
QuadraticTerm ** qTerm
qTerm is a pointer to an array of QuadraticTerm object pointers
int numberOfQuadraticTerms
numberOfQuadraticTerms is the number of quadratic terms in the <quadraticCoefficients> element.
The in-memory representation of a quadratic cone.
The in-memory representation of the <qTerm> element.
double coef
coef is the coefficient of the quadratic term
int idxOne
idxOne is the index of the first variable in the quadratic term
int idx
idx is the index of the row in which the quadratic term appears
int idxTwo
idxTwo is the index of the second variable in the quadratic term
The in-memory representation of a rotated quadratic cone.
Used to hold part of the instance in memory.
OSnLNode * m_treeRoot
m_treeRoot holds the root node (of OSnLNode type) of the expression tree.
The in-memory representation of a cone of semidefinite matrices.
The in-memory representation of the <timeDomain> element.
TimeDomainStages * stages
stages is a pointer to a Stages object
TimeDomainInterval * interval
interval is a pointer to an Interval object
The in-memory representation of the <con> element.
int idx
idx gives the index of this constraint
The in-memory representation of the <constraints> child of the <stage> element.
int numberOfConstraints
numberOfConstraints gives the number of constraints contained in this stage
TimeDomainStageCon ** con
con is a pointer to an array of TimeDomainStageCon object pointers
The in-memory representation of the <stage> element.
TimeDomainStageVariables * variables
variables is a pointer to a TimeDomainVariables object
std::string name
name corresponds to the optional attribute that holds the name of the stage; the default value is emp...
TimeDomainStageObjectives * objectives
objectives is a pointer to a TimeDomainObjectives object
TimeDomainStageConstraints * constraints
constraints is a pointer to a TimeDomainConstraints object
The in-memory representation of the <obj> element.
int idx
idx gives the index of this variable
The in-memory representation of the <objectives> child of the <stage> element.
TimeDomainStageObj ** obj
obj is a pointer to an array of TimeDomainStageObj object pointers
int numberOfObjectives
numberOfObjectives gives the number of objectives contained in this stage
The in-memory representation of the element.
int idx
idx gives the index of this variable
The in-memory representation of the <variables> child of the <stage> element.
TimeDomainStageVar ** var
var is a pointer to an array of TimeDomainStageVar object pointers
int numberOfVariables
numberOfVariables gives the number of variables contained in this stage
The in-memory representation of the <stages> element.
TimeDomainStage ** stage
stage is pointer to an array of stage object pointers
int numberOfStages
numberOfStages is the number of stages in the <stages> element.
a data structure to represent variable reference elements in a MatrixType object Each nonzero element...
A concrete class that is used to store a specific type of matrix values, references to variable index...
The in-memory representation of the variable element.
double ub
ub corresponds to the optional attribute that holds the variable upper bound.
std::string name
name corresponds to the optional attribute that holds the variable name, the default value is empty
double lb
lb corresponds to the optional attribute that holds the variable lower bound.
char type
type corresponds to the attribute that holds the variable type: C (Continuous), B (binary),...
The in-memory representation of the variables element.
int numberOfVariables
numberOfVariables is the number of variables in the instance
Variable ** var
Here we define a pointer to an array of var pointers.
bool verifyMatrixSymmetry(std::string symmetry)
int returnVarType(char vt)
int returnNlExprShape(std::string shape)
int returnMatrixType(std::string type)
int returnMatrixSymmetry(std::string symmetry)
@ ENUM_CONE_TYPE_nonnegative
@ ENUM_CONE_TYPE_quadratic
@ ENUM_CONE_TYPE_nonpositive
@ ENUM_CONE_TYPE_rotatedQuadratic
@ ENUM_CONE_TYPE_intersection
@ ENUM_CONE_TYPE_semidefinite
@ ENUM_CONE_TYPE_polyhedral
ENUM_MATRIX_TYPE
An enum to track the many different types of values that a matrix can contain Note that these types a...
@ ENUM_MATRIX_TYPE_linear
@ ENUM_MATRIX_TYPE_varReference
@ ENUM_MATRIX_TYPE_constant
@ ENUM_MATRIX_TYPE_conReference
@ ENUM_MATRIX_TYPE_general
@ ENUM_MATRIX_TYPE_objReference
ENUM_CONREFERENCE_VALUETYPE
An enum to track the type of value contained in a reference to a constraint.
int returnConReferenceValueType(std::string valueType)