86 #define yylex inDriver.getLexer()->lex
91 constructErrorMessage(
const char *fmt, ...)
96 int nbytes = vsnprintf(msg, BUFSIZ, fmt, args);
105 using namespace torc::generic;
107 class AssignedParamCreator
117 mFactory->create(singleP);
118 singleP->setName(single.
getName());
119 singleP->setValue(mValues[0]);
120 mMap->set(mContext, single.
getName(), singleP);
125 __FUNCTION__, __FILE__, __LINE__ );
135 if(array == mMap->get(mContext, array->getName()))
137 AssignedParamCreator creator(
138 mInstance, mContext, mMap, mFactory, mValues );
139 array->accept(creator);
141 std::vector<size_t> indices = element.
getIndices();
143 = mMap->get(mContext, array->getName());
145 bit->setValue(mValues[0]);
150 __FUNCTION__, __FILE__, __LINE__ );
158 std::vector<size_t> limits;
161 mFactory->create(arrayP);
162 arrayP->setName(array.
getName());
163 std::vector<size_t> dimensions;
165 arrayP->constructChildren(mFactory, limits);
166 std::vector< ParameterSharedPtr > children;
167 arrayP->getChildren(children);
168 std::vector< ParameterSharedPtr >::iterator
169 it = children.begin();
170 std::vector< ParameterSharedPtr >::iterator
171 end = children.end();
173 for(; it != end; ++it, i++ )
175 (*it)->setValue(mValues[i]);
177 mMap->set(mContext, array.
getName(), arrayP);
182 __FUNCTION__, __FILE__, __LINE__ );
186 AssignedParamCreator(
191 std::vector<Value> &inValues )
192 :mInstance(inInstance),
199 ~AssignedParamCreator()
throw() {
207 std::vector<Value> &mValues;
210 template <
typename _Connectable>
212 connectibleFinder( std::vector< std::string > &nestedNames,
213 boost::shared_ptr<_Connectable> &conn )
throw(
Error)
215 std::vector< std::string >::reverse_iterator name
216 = nestedNames.rbegin();
217 std::vector< std::string >::reverse_iterator end
218 = nestedNames.rend();
223 "Nested connectible name %s not found",
225 log(
"%s\n", message.c_str());
227 __FUNCTION__, __FILE__, __LINE__ );
230 for(;name != end; ++name)
233 != conn->getCompositionType() )
235 log(
"Item is not a bundle .. invalid nesting\n");
237 __FUNCTION__, __FILE__, __LINE__ );
243 std::vector< boost::shared_ptr<_Connectable> > children;
244 conn->getChildren(children);
247 std::vector< boost::shared_ptr<_Connectable> >::iterator
248 it = children.begin(); it != children.end(); ++it )
250 if((*it)->getName() == *name)
260 "Nested connectible %s not found",
262 log(
"%s\n", message.c_str());
264 __FUNCTION__, __FILE__, __LINE__ );
265 e.saveContextData(
"Name", (*name));
271 template <
typename _Connectable>
273 portJoiner(
NameData *inPortNameData,
274 const boost::shared_ptr<_Connectable> &inConn,
279 if(inPortNameData->
mIndices.empty())
282 inConn->connect(inNet);
286 boost::shared_ptr<_Connectable> bit
287 = inConn->get(inPortNameData->
mIndices);
290 log(
"Net %s connected with connectible %s\n",
291 inNet->getName().c_str(), inConn->getName().c_str() );
307 std::vector< std::string > nestedNames;
313 currPortRef = nextPortRef;
329 portNameData->
mName.c_str());
330 log(
"%s\n", message.c_str());
332 __FUNCTION__, __FILE__, __LINE__ );
333 e.saveContextData(
"Parser error message", message);
335 e.saveContextData(
"StartLine", inLocation.
begin.
line);
336 e.saveContextData(
"EndLine", inLocation.
end.
line);
337 outErrorMessage = message;
343 connectibleFinder(nestedNames, port);
344 portJoiner(portData->
mPortName, port, net);
349 "Unable to connect port : %s", port->getName().c_str());
350 log(
"%s\n", message.c_str());
352 __FILE__, __LINE__ );
357 outErrorMessage = message;
366 = view->findInstance(
367 instanceName->
mName );
371 "Instance %s not known",
372 instanceName->
mName.c_str() );
373 log(
"%s\n", message.c_str());
375 __FUNCTION__, __FILE__, __LINE__ );
376 e.saveContextData(
"Parser error message", message);
378 e.saveContextData(
"StartLine", inLocation.
begin.
line);
379 e.saveContextData(
"EndLine", inLocation.
end.
line);
380 outErrorMessage = message;
386 = instance->get(instanceName->
mIndices);
390 = instance->findPortReference(topName);
394 "No port ref %s found",
395 portNameData->
mName.c_str());
396 log(
"%s\n", message.c_str());
398 __FUNCTION__, __FILE__, __LINE__ );
399 e.saveContextData(
"Parser error message", message);
401 e.saveContextData(
"StartLine", inLocation.
begin.
line);
402 e.saveContextData(
"EndLine", inLocation.
end.
line);
403 outErrorMessage = message;
408 connectibleFinder(nestedNames, portRef);
409 portJoiner( portData->
mPortName, portRef,
410 ctx->getCurrentNet() );
415 "Unable to connect port ref : %s", portRef->getName().c_str());
416 log(
"%s\n", message.c_str());
418 __FILE__, __LINE__ );
423 outErrorMessage = message;
434 #line 435 "Parser.cc"
439 # include <libintl.h>
440 # define YY_(msgid) dgettext ("bison-runtime", msgid)
444 # define YY_(msgid) msgid
449 #define YYUSE(e) ((void) (e))
455 # define YYCDEBUG if (yydebug_) (*yycdebug_)
457 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
461 *yycdebug_ << Title << ' '; \
462 yy_symbol_print_ ((Type), (Value), (Location)); \
463 *yycdebug_ << std::endl; \
467 # define YY_REDUCE_PRINT(Rule) \
470 yy_reduce_print_ (Rule); \
473 # define YY_STACK_PRINT() \
481 # define YYCDEBUG if (false) std::cerr
482 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
483 # define YY_REDUCE_PRINT(Rule)
484 # define YY_STACK_PRINT()
488 #define yyerrok (yyerrstatus_ = 0)
489 #define yyclearin (yychar = yyempty_)
491 #define YYACCEPT goto yyacceptlab
492 #define YYABORT goto yyabortlab
493 #define YYERROR goto yyerrorlab
494 #define YYRECOVERING() (!!yyerrstatus_)
499 namespace torc {
namespace generic {
502 #line 503 "Parser.cc"
516 char const *yyp = yystr;
523 goto do_not_strip_quotes;
527 goto do_not_strip_quotes;
536 do_not_strip_quotes: ;
549 yycdebug_ (&std::cerr),
551 inDriver (inDriver_yyarg)
566 const semantic_type* yyvaluep,
const location_type* yylocationp)
580 const semantic_type* yyvaluep,
const location_type* yylocationp)
584 << *yylocationp <<
": ";
605 #line 578 "Parser.yy"
609 #line 610 "Parser.cc"
614 #line 573 "Parser.yy"
618 #line 619 "Parser.cc"
623 #line 574 "Parser.yy"
627 #line 628 "Parser.cc"
632 #line 578 "Parser.yy"
636 #line 637 "Parser.cc"
641 #line 575 "Parser.yy"
645 #line 646 "Parser.cc"
650 #line 573 "Parser.yy"
654 #line 655 "Parser.cc"
659 #line 576 "Parser.yy"
663 #line 664 "Parser.cc"
668 #line 578 "Parser.yy"
672 #line 673 "Parser.cc"
677 #line 578 "Parser.yy"
681 #line 682 "Parser.cc"
686 #line 575 "Parser.yy"
690 #line 691 "Parser.cc"
695 #line 578 "Parser.yy"
699 #line 700 "Parser.cc"
704 #line 578 "Parser.yy"
708 #line 709 "Parser.cc"
713 #line 578 "Parser.yy"
717 #line 718 "Parser.cc"
722 #line 578 "Parser.yy"
726 #line 727 "Parser.cc"
731 #line 578 "Parser.yy"
735 #line 736 "Parser.cc"
740 #line 573 "Parser.yy"
744 #line 745 "Parser.cc"
749 #line 573 "Parser.yy"
753 #line 754 "Parser.cc"
758 #line 573 "Parser.yy"
762 #line 763 "Parser.cc"
767 #line 573 "Parser.yy"
771 #line 772 "Parser.cc"
776 #line 575 "Parser.yy"
780 #line 781 "Parser.cc"
785 #line 578 "Parser.yy"
789 #line 790 "Parser.cc"
794 #line 578 "Parser.yy"
798 #line 799 "Parser.cc"
803 #line 578 "Parser.yy"
807 #line 808 "Parser.cc"
812 #line 578 "Parser.yy"
816 #line 817 "Parser.cc"
821 #line 575 "Parser.yy"
825 #line 826 "Parser.cc"
830 #line 575 "Parser.yy"
834 #line 835 "Parser.cc"
839 #line 573 "Parser.yy"
843 #line 844 "Parser.cc"
848 #line 578 "Parser.yy"
852 #line 853 "Parser.cc"
857 #line 578 "Parser.yy"
861 #line 862 "Parser.cc"
866 #line 578 "Parser.yy"
870 #line 871 "Parser.cc"
875 #line 578 "Parser.yy"
879 #line 880 "Parser.cc"
884 #line 573 "Parser.yy"
888 #line 889 "Parser.cc"
893 #line 573 "Parser.yy"
897 #line 898 "Parser.cc"
902 #line 578 "Parser.yy"
906 #line 907 "Parser.cc"
911 #line 577 "Parser.yy"
915 #line 916 "Parser.cc"
920 #line 578 "Parser.yy"
924 #line 925 "Parser.cc"
929 #line 578 "Parser.yy"
933 #line 934 "Parser.cc"
938 #line 577 "Parser.yy"
942 #line 943 "Parser.cc"
947 #line 577 "Parser.yy"
951 #line 952 "Parser.cc"
956 #line 577 "Parser.yy"
960 #line 961 "Parser.cc"
965 #line 577 "Parser.yy"
969 #line 970 "Parser.cc"
974 #line 577 "Parser.yy"
978 #line 979 "Parser.cc"
983 #line 577 "Parser.yy"
987 #line 988 "Parser.cc"
992 #line 577 "Parser.yy"
996 #line 997 "Parser.cc"
1001 #line 577 "Parser.yy"
1005 #line 1006 "Parser.cc"
1010 #line 578 "Parser.yy"
1014 #line 1015 "Parser.cc"
1019 #line 578 "Parser.yy"
1023 #line 1024 "Parser.cc"
1028 #line 573 "Parser.yy"
1032 #line 1033 "Parser.cc"
1037 #line 573 "Parser.yy"
1041 #line 1042 "Parser.cc"
1046 #line 578 "Parser.yy"
1050 #line 1051 "Parser.cc"
1055 #line 578 "Parser.yy"
1059 #line 1060 "Parser.cc"
1064 #line 578 "Parser.yy"
1068 #line 1069 "Parser.cc"
1073 #line 575 "Parser.yy"
1077 #line 1078 "Parser.cc"
1082 #line 573 "Parser.yy"
1086 #line 1087 "Parser.cc"
1091 #line 578 "Parser.yy"
1095 #line 1096 "Parser.cc"
1100 #line 578 "Parser.yy"
1104 #line 1105 "Parser.cc"
1109 #line 577 "Parser.yy"
1113 #line 1114 "Parser.cc"
1118 #line 575 "Parser.yy"
1122 #line 1123 "Parser.cc"
1127 #line 578 "Parser.yy"
1131 #line 1132 "Parser.cc"
1136 #line 578 "Parser.yy"
1140 #line 1141 "Parser.cc"
1145 #line 578 "Parser.yy"
1149 #line 1150 "Parser.cc"
1154 #line 575 "Parser.yy"
1158 #line 1159 "Parser.cc"
1163 #line 575 "Parser.yy"
1167 #line 1168 "Parser.cc"
1172 #line 573 "Parser.yy"
1176 #line 1177 "Parser.cc"
1181 #line 573 "Parser.yy"
1185 #line 1186 "Parser.cc"
1190 #line 578 "Parser.yy"
1194 #line 1195 "Parser.cc"
1199 #line 578 "Parser.yy"
1203 #line 1204 "Parser.cc"
1208 #line 578 "Parser.yy"
1212 #line 1213 "Parser.cc"
1217 #line 578 "Parser.yy"
1221 #line 1222 "Parser.cc"
1226 #line 575 "Parser.yy"
1230 #line 1231 "Parser.cc"
1235 #line 575 "Parser.yy"
1239 #line 1240 "Parser.cc"
1244 #line 575 "Parser.yy"
1248 #line 1249 "Parser.cc"
1253 #line 578 "Parser.yy"
1257 #line 1258 "Parser.cc"
1262 #line 578 "Parser.yy"
1266 #line 1267 "Parser.cc"
1271 #line 578 "Parser.yy"
1275 #line 1276 "Parser.cc"
1280 #line 578 "Parser.yy"
1284 #line 1285 "Parser.cc"
1289 #line 575 "Parser.yy"
1293 #line 1294 "Parser.cc"
1298 #line 575 "Parser.yy"
1302 #line 1303 "Parser.cc"
1307 #line 578 "Parser.yy"
1311 #line 1312 "Parser.cc"
1316 #line 578 "Parser.yy"
1320 #line 1321 "Parser.cc"
1325 #line 578 "Parser.yy"
1329 #line 1330 "Parser.cc"
1334 #line 575 "Parser.yy"
1338 #line 1339 "Parser.cc"
1343 #line 578 "Parser.yy"
1347 #line 1348 "Parser.cc"
1352 #line 578 "Parser.yy"
1356 #line 1357 "Parser.cc"
1361 #line 578 "Parser.yy"
1365 #line 1366 "Parser.cc"
1370 #line 578 "Parser.yy"
1374 #line 1375 "Parser.cc"
1379 #line 578 "Parser.yy"
1383 #line 1384 "Parser.cc"
1388 #line 578 "Parser.yy"
1392 #line 1393 "Parser.cc"
1397 #line 578 "Parser.yy"
1401 #line 1402 "Parser.cc"
1406 #line 577 "Parser.yy"
1410 #line 1411 "Parser.cc"
1415 #line 575 "Parser.yy"
1419 #line 1420 "Parser.cc"
1424 #line 575 "Parser.yy"
1428 #line 1429 "Parser.cc"
1433 #line 575 "Parser.yy"
1437 #line 1438 "Parser.cc"
1442 #line 575 "Parser.yy"
1446 #line 1447 "Parser.cc"
1451 #line 575 "Parser.yy"
1455 #line 1456 "Parser.cc"
1460 #line 578 "Parser.yy"
1464 #line 1465 "Parser.cc"
1469 #line 578 "Parser.yy"
1473 #line 1474 "Parser.cc"
1478 #line 578 "Parser.yy"
1482 #line 1483 "Parser.cc"
1487 #line 578 "Parser.yy"
1491 #line 1492 "Parser.cc"
1496 #line 578 "Parser.yy"
1500 #line 1501 "Parser.cc"
1505 #line 575 "Parser.yy"
1509 #line 1510 "Parser.cc"
1514 #line 575 "Parser.yy"
1518 #line 1519 "Parser.cc"
1523 #line 578 "Parser.yy"
1527 #line 1528 "Parser.cc"
1532 #line 578 "Parser.yy"
1536 #line 1537 "Parser.cc"
1541 #line 578 "Parser.yy"
1545 #line 1546 "Parser.cc"
1550 #line 578 "Parser.yy"
1554 #line 1555 "Parser.cc"
1559 #line 577 "Parser.yy"
1563 #line 1564 "Parser.cc"
1568 #line 577 "Parser.yy"
1572 #line 1573 "Parser.cc"
1577 #line 577 "Parser.yy"
1581 #line 1582 "Parser.cc"
1586 #line 578 "Parser.yy"
1590 #line 1591 "Parser.cc"
1595 #line 573 "Parser.yy"
1599 #line 1600 "Parser.cc"
1604 #line 578 "Parser.yy"
1608 #line 1609 "Parser.cc"
1613 #line 578 "Parser.yy"
1617 #line 1618 "Parser.cc"
1622 #line 578 "Parser.yy"
1626 #line 1627 "Parser.cc"
1631 #line 578 "Parser.yy"
1635 #line 1636 "Parser.cc"
1640 #line 577 "Parser.yy"
1644 #line 1645 "Parser.cc"
1649 #line 577 "Parser.yy"
1653 #line 1654 "Parser.cc"
1658 #line 577 "Parser.yy"
1662 #line 1663 "Parser.cc"
1667 #line 578 "Parser.yy"
1671 #line 1672 "Parser.cc"
1676 #line 578 "Parser.yy"
1680 #line 1681 "Parser.cc"
1685 #line 578 "Parser.yy"
1689 #line 1690 "Parser.cc"
1694 #line 578 "Parser.yy"
1698 #line 1699 "Parser.cc"
1703 #line 578 "Parser.yy"
1707 #line 1708 "Parser.cc"
1712 #line 578 "Parser.yy"
1716 #line 1717 "Parser.cc"
1721 #line 578 "Parser.yy"
1725 #line 1726 "Parser.cc"
1730 #line 578 "Parser.yy"
1734 #line 1735 "Parser.cc"
1739 #line 575 "Parser.yy"
1743 #line 1744 "Parser.cc"
1748 #line 575 "Parser.yy"
1752 #line 1753 "Parser.cc"
1757 #line 578 "Parser.yy"
1761 #line 1762 "Parser.cc"
1766 #line 578 "Parser.yy"
1770 #line 1771 "Parser.cc"
1775 #line 578 "Parser.yy"
1779 #line 1780 "Parser.cc"
1784 #line 578 "Parser.yy"
1788 #line 1789 "Parser.cc"
1793 #line 575 "Parser.yy"
1797 #line 1798 "Parser.cc"
1802 #line 575 "Parser.yy"
1806 #line 1807 "Parser.cc"
1811 #line 575 "Parser.yy"
1815 #line 1816 "Parser.cc"
1820 #line 578 "Parser.yy"
1824 #line 1825 "Parser.cc"
1829 #line 578 "Parser.yy"
1833 #line 1834 "Parser.cc"
1838 #line 578 "Parser.yy"
1842 #line 1843 "Parser.cc"
1847 #line 577 "Parser.yy"
1851 #line 1852 "Parser.cc"
1856 #line 575 "Parser.yy"
1860 #line 1861 "Parser.cc"
1865 #line 578 "Parser.yy"
1869 #line 1870 "Parser.cc"
1874 #line 578 "Parser.yy"
1878 #line 1879 "Parser.cc"
1883 #line 578 "Parser.yy"
1887 #line 1888 "Parser.cc"
1892 #line 578 "Parser.yy"
1896 #line 1897 "Parser.cc"
1901 #line 575 "Parser.yy"
1905 #line 1906 "Parser.cc"
1910 #line 578 "Parser.yy"
1914 #line 1915 "Parser.cc"
1919 #line 578 "Parser.yy"
1923 #line 1924 "Parser.cc"
1928 #line 573 "Parser.yy"
1932 #line 1933 "Parser.cc"
1937 #line 573 "Parser.yy"
1941 #line 1942 "Parser.cc"
1946 #line 573 "Parser.yy"
1950 #line 1951 "Parser.cc"
1955 #line 578 "Parser.yy"
1959 #line 1960 "Parser.cc"
1964 #line 575 "Parser.yy"
1968 #line 1969 "Parser.cc"
1973 #line 575 "Parser.yy"
1977 #line 1978 "Parser.cc"
1982 #line 578 "Parser.yy"
1986 #line 1987 "Parser.cc"
1991 #line 575 "Parser.yy"
1995 #line 1996 "Parser.cc"
2000 #line 575 "Parser.yy"
2004 #line 2005 "Parser.cc"
2009 #line 578 "Parser.yy"
2013 #line 2014 "Parser.cc"
2018 #line 578 "Parser.yy"
2022 #line 2023 "Parser.cc"
2027 #line 573 "Parser.yy"
2031 #line 2032 "Parser.cc"
2036 #line 578 "Parser.yy"
2040 #line 2041 "Parser.cc"
2045 #line 575 "Parser.yy"
2049 #line 2050 "Parser.cc"
2054 #line 578 "Parser.yy"
2058 #line 2059 "Parser.cc"
2063 #line 578 "Parser.yy"
2067 #line 2068 "Parser.cc"
2072 #line 573 "Parser.yy"
2076 #line 2077 "Parser.cc"
2133 int yyerrstatus_ = 0;
2149 YYCDEBUG <<
"Starting parse" << std::endl;
2155 #line 66 "Parser.yy"
2162 #line 2163 "Parser.cc"
2177 YYCDEBUG <<
"Entering state " << yystate << std::endl;
2197 yychar =
yylex (&yylval, &yylloc);
2204 yychar = yytoken =
yyeof_;
2205 YYCDEBUG <<
"Now at end of input." << std::endl;
2281 #line 945 "Parser.yy"
2284 boost::scoped_ptr<VersionData> versionData((
yysemantic_stack_[(6) - (4)].edifVersion));
2287 root->setName(fileName->mName);
2288 if(!fileName->mOriginalName.empty())
2290 root->setOriginalName(fileName->mOriginalName);
2293 version.
mFirst = versionData->mFirst;
2294 version.
mSecond = versionData->mSecond;
2295 version.
mThird = versionData->mThird;
2296 root->setVersion(version);
2297 root->setLevel(static_cast<EdifLevel>((
yysemantic_stack_[(6) - (5)].integerVal)) );
2298 ctx->pushStatusContainer(root);
2305 #line 963 "Parser.yy"
2314 #line 974 "Parser.yy"
2326 #line 981 "Parser.yy"
2338 #line 993 "Parser.yy"
2347 #line 999 "Parser.yy"
2359 #line 1008 "Parser.yy"
2368 #line 1025 "Parser.yy"
2377 #line 1029 "Parser.yy"
2386 #line 1038 "Parser.yy"
2395 #line 1042 "Parser.yy"
2404 #line 1048 "Parser.yy"
2411 ctx->getFactory()->create(apply);
2416 "Unable to create apply" );
2417 log(
"%s\n", message.c_str());
2419 __FILE__, __LINE__ );
2425 error(yyloc, message);
2428 ctx->setCurrentApply(apply);
2430 = ctx->getCurrentSimulate();
2431 simulate->addApply(apply);
2438 #line 1076 "Parser.yy"
2448 #line 1086 "Parser.yy"
2460 #line 1093 "Parser.yy"
2472 #line 1102 "Parser.yy"
2483 #line 1110 "Parser.yy"
2499 #line 1123 "Parser.yy"
2508 #line 1130 "Parser.yy"
2523 #line 1140 "Parser.yy"
2533 #line 1156 "Parser.yy"
2542 #line 1160 "Parser.yy"
2551 #line 1169 "Parser.yy"
2560 #line 1175 "Parser.yy"
2569 #line 1181 "Parser.yy"
2578 #line 1190 "Parser.yy"
2585 ctx->getFactory()->create(logicElem);
2591 "Unable to create becomes" );
2592 log(
"%s\n", message.c_str());
2594 __FILE__, __LINE__ );
2600 error(yyloc, message);
2603 ctx->pushLogicElement(logicElem);
2604 ctx->incrementLogicElementDepth();
2611 #line 1236 "Parser.yy"
2629 #line 1251 "Parser.yy"
2638 #line 1255 "Parser.yy"
2650 #line 1262 "Parser.yy"
2662 #line 1269 "Parser.yy"
2678 #line 1282 "Parser.yy"
2687 #line 1288 "Parser.yy"
2696 #line 1292 "Parser.yy"
2705 #line 1298 "Parser.yy"
2715 #line 1305 "Parser.yy"
2724 #line 1309 "Parser.yy"
2733 #line 1315 "Parser.yy"
2744 #line 1323 "Parser.yy"
2753 #line 1332 "Parser.yy"
2760 cell = lib->findCell(name);
2763 log(
"Found existing cell\n");
2764 if(lib->getIsExtern())
2766 if(!cell->getIsExtern())
2769 "Cell %s already exists in lib %s\n",
2770 name.c_str(), lib->getName().c_str() );
2771 log(
"%s\n", message.c_str());
2773 __FUNCTION__, __FILE__, __LINE__ );
2774 e.setCurrentLocation( __FUNCTION__,
2775 __FILE__, __LINE__ );
2776 e.saveContextData(
"Parser error message", message);
2778 e.saveContextData(
"StartLine", yyloc.
begin.
line);
2779 e.saveContextData(
"EndLine", yyloc.
end.
line);
2781 error(yyloc, message);
2786 log(
"Extern cell %s already exists in %s\n",
2787 name.c_str(), lib->getName().c_str() );
2792 if(cell->getIsExtern())
2794 log(
"Found extern cell of this name\n");
2795 cell->setIsExtern(
false);
2800 log(
"Concrete cell %s already found... Ignoring\n",
2804 "Cell %s already exists in lib %s\n",
2805 name.c_str(), lib->getName().c_str() );
2806 log(
"%s\n", message.c_str());
2808 __FUNCTION__, __FILE__, __LINE__ );
2809 e.saveContextData(
"Parser error message", message);
2811 e.saveContextData(
"StartLine", yyloc.
begin.
line);
2812 e.saveContextData(
"EndLine", yyloc.
end.
line);
2814 error(yyloc, message);
2824 ctx->getFactory()->create(cell);
2829 "Unable to create Cell : %s", cell->getName().c_str());
2830 log(
"%s\n", message.c_str());
2832 __FILE__, __LINE__ );
2838 error(yyloc, message);
2841 cell->setName(name);
2846 cell->setIsExtern(lib->getIsExtern());
2847 cell->setParent(lib);
2849 log(
"Created cell %s\n", cell->getName().c_str());
2851 ctx->setCurrentCell(cell);
2852 ctx->pushPropertyContainer(cell);
2853 ctx->pushStatusContainer(cell);
2860 #line 1433 "Parser.yy"
2872 #line 1446 "Parser.yy"
2884 #line 1453 "Parser.yy"
2896 #line 1467 "Parser.yy"
2913 #line 1481 "Parser.yy"
2922 #line 1485 "Parser.yy"
2932 #line 1492 "Parser.yy"
2949 #line 1506 "Parser.yy"
2958 #line 1510 "Parser.yy"
2968 #line 1517 "Parser.yy"
2977 #line 1523 "Parser.yy"
2986 #line 1529 "Parser.yy"
2996 #line 1536 "Parser.yy"
3005 #line 1540 "Parser.yy"
3014 #line 1544 "Parser.yy"
3023 #line 1563 "Parser.yy"
3033 #line 1574 "Parser.yy"
3044 #line 1582 "Parser.yy"
3053 #line 1587 "Parser.yy"
3062 #line 1591 "Parser.yy"
3071 #line 1606 "Parser.yy"
3080 #line 1610 "Parser.yy"
3089 #line 1616 "Parser.yy"
3098 #line 1622 "Parser.yy"
3107 #line 1626 "Parser.yy"
3117 #line 1646 "Parser.yy"
3122 = ctx->getCurrentView();
3124 = ctx->getCurrentTiming();
3125 view->setTiming(timing);
3133 #line 1657 "Parser.yy"
3138 = ctx->getCurrentView();
3140 = ctx->getCurrentSimulate();
3141 view->setSimulate(simulate);
3149 #line 1672 "Parser.yy"
3158 #line 1676 "Parser.yy"
3167 #line 1697 "Parser.yy"
3176 #line 1703 "Parser.yy"
3186 #line 1708 "Parser.yy"
3196 #line 1715 "Parser.yy"
3205 #line 1726 "Parser.yy"
3214 #line 1732 "Parser.yy"
3225 apply->setCycleDuration(val);
3233 #line 1748 "Parser.yy"
3242 #line 1752 "Parser.yy"
3251 #line 1758 "Parser.yy"
3260 #line 1763 "Parser.yy"
3269 #line 1767 "Parser.yy"
3278 #line 1773 "Parser.yy"
3287 #line 1783 "Parser.yy"
3296 #line 1793 "Parser.yy"
3305 #line 1803 "Parser.yy"
3314 #line 1813 "Parser.yy"
3323 #line 1819 "Parser.yy"
3335 #line 1826 "Parser.yy"
3347 #line 1838 "Parser.yy"
3356 #line 1842 "Parser.yy"
3365 #line 1852 "Parser.yy"
3374 #line 1858 "Parser.yy"
3383 #line 1864 "Parser.yy"
3392 #line 1868 "Parser.yy"
3401 #line 1872 "Parser.yy"
3410 #line 1878 "Parser.yy"
3421 log(
"Skipped creation of existing design.\n");
3427 ctx->getFactory()->create(design);
3432 "Unable to create design : %s",
3433 design->getName().c_str());
3434 log(
"%s\n", message.c_str());
3436 __FILE__, __LINE__ );
3442 error(yyloc, message);
3448 design->setOriginalName((
yysemantic_stack_[(3) - (3)].nameData)->mOriginalName);
3450 design->setParent(root);
3451 root->addDesign(design);
3453 ctx->setCurrentDesign(design);
3454 ctx->pushPropertyContainer(design);
3455 ctx->pushStatusContainer(design);
3464 #line 1926 "Parser.yy"
3467 ctx->popPropertyContainer();
3468 ctx->popStatusContainer();
3470 boost::scoped_ptr<CellRefData> cellRefData((
yysemantic_stack_[(6) - (5)].cellRefData));
3471 std::string cellName = cellRefData->mCellName->mName;
3472 std::string libName = cellRefData->mLibraryName->mName;
3474 = ctx->getRoot()->findLibrary(libName) ;
3478 "Library %s not found",
3480 log(
"%s\n", message.c_str());
3482 __FUNCTION__, __FILE__, __LINE__ );
3483 e.saveContextData(
"Parser error message", message);
3485 e.saveContextData(
"StartLine", yyloc.
begin.
line);
3486 e.saveContextData(
"EndLine", yyloc.
end.
line);
3488 error(yyloc, message);
3493 = library->findCell(cellName);
3497 "Cell %s not found",
3499 log(
"%s\n", message.c_str());
3501 __FUNCTION__, __FILE__, __LINE__ );
3502 e.saveContextData(
"Parser error message", message);
3504 e.saveContextData(
"StartLine", yyloc.
begin.
line);
3505 e.saveContextData(
"EndLine", yyloc.
end.
line);
3507 error(yyloc, message);
3511 design->setCellRefName(cellName);
3512 design->setLibraryRefName(libName);
3520 #line 1979 "Parser.yy"
3530 #line 1984 "Parser.yy"
3539 #line 1988 "Parser.yy"
3552 #line 1996 "Parser.yy"
3561 #line 2000 "Parser.yy"
3574 #line 2013 "Parser.yy"
3583 #line 2017 "Parser.yy"
3592 #line 2023 "Parser.yy"
3601 #line 2052 "Parser.yy"
3610 #line 2056 "Parser.yy"
3619 #line 2071 "Parser.yy"
3629 #line 2078 "Parser.yy"
3638 #line 2082 "Parser.yy"
3647 #line 2086 "Parser.yy"
3656 #line 2105 "Parser.yy"
3665 #line 2111 "Parser.yy"
3674 #line 2115 "Parser.yy"
3684 #line 2125 "Parser.yy"
3693 #line 2132 "Parser.yy"
3702 #line 2143 "Parser.yy"
3711 #line 2147 "Parser.yy"
3720 #line 2169 "Parser.yy"
3729 #line 2183 "Parser.yy"
3736 ctx->getFactory()->create(event);
3741 "Unable to create event" );
3742 log(
"%s\n", message.c_str());
3744 __FILE__, __LINE__ );
3750 error(yyloc, message);
3753 ctx->setCurrentEvent(event);
3760 #line 2208 "Parser.yy"
3771 #line 2221 "Parser.yy"
3776 = ctx->getCurrentEvent();
3778 = ctx->getCurrentLogicElement();
3783 event->setTransition(logicElem);
3792 #line 2237 "Parser.yy"
3797 = ctx->getCurrentEvent();
3799 = ctx->getCurrentLogicElement();
3804 event->setTransition(logicElem);
3813 #line 2255 "Parser.yy"
3815 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(1) - (1)].portRefData));
3819 = ctx->getCurrentView();
3820 std::vector< std::string > nestedNames;
3826 currPortRef = nextPortRef;
3840 portNameData->
mName.c_str());
3841 log(
"%s\n", message.c_str());
3843 __FUNCTION__, __FILE__, __LINE__ );
3844 e.saveContextData(
"Parser error message", message);
3846 e.saveContextData(
"StartLine", yyloc.
begin.
line);
3847 e.saveContextData(
"EndLine", yyloc.
end.
line);
3849 error(yyloc, message);
3854 connectibleFinder(nestedNames, port);
3855 if(!portData->mPortName->mIndices.empty())
3857 port = port->get(portData->mPortName->mIndices);
3860 = ctx->getCurrentEvent();
3861 event->addPort(port);
3866 __FUNCTION__, __FILE__, __LINE__ );
3875 = view->findInstance(
3876 instanceName->
mName );
3880 "Instance %s not known",
3881 instanceName->
mName.c_str() );
3882 log(
"%s\n", message.c_str());
3884 __FUNCTION__, __FILE__, __LINE__ );
3885 e.saveContextData(
"Parser error message", message);
3887 e.saveContextData(
"StartLine", yyloc.
begin.
line);
3888 e.saveContextData(
"EndLine", yyloc.
end.
line);
3890 error(yyloc, message);
3893 if(!instanceName->
mIndices.empty())
3896 = instance->get(instanceName->
mIndices);
3900 = instance->findPortReference(topName);
3904 "No port ref %s found",
3905 portNameData->
mName.c_str());
3906 log(
"%s\n", message.c_str());
3908 __FUNCTION__, __FILE__, __LINE__ );
3909 e.saveContextData(
"Parser error message", message);
3911 e.saveContextData(
"StartLine", yyloc.
begin.
line);
3912 e.saveContextData(
"EndLine", yyloc.
end.
line);
3914 error(yyloc, message);
3919 connectibleFinder(nestedNames, portRef);
3920 if(!portData->mPortName->mIndices.empty())
3922 portRef = portRef->get(
3923 portData->mPortName->mIndices );
3926 = ctx->getCurrentEvent();
3927 event->addPortReference(portRef);
3932 "Unable to connect port ref : %s",
3933 portRef->getName().c_str());
3934 log(
"%s\n", message.c_str());
3936 __FILE__, __LINE__ );
3942 error(yyloc, message);
3952 #line 2391 "Parser.yy"
3956 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(1) - (1)].portListData));
3962 ctx->getFactory()->create(portList);
3964 for( std::vector<PortRefData *>::iterator it
3965 = portListData->mPortRefs.begin();
3966 it != portListData->mPortRefs.end(); ++it )
3969 std::vector< std::string > nestedNames;
3975 currPortRef = nextPortRef;
3989 = ctx->getCurrentSimulate();
3993 = simulate->findPortListAlias(topName);
3997 "No port %s found in portListAlias\n",
3998 portNameData->
mName.c_str());
3999 log(
"%s\n", message.c_str());
4001 __FUNCTION__, __FILE__, __LINE__ );
4002 e.saveContextData(
"Parser error message", message);
4004 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4005 e.saveContextData(
"EndLine", yyloc.
end.
line);
4007 error(yyloc, message);
4014 "No port %s found in view %s",
4015 portNameData->
mName.c_str(),
4016 view->getName().c_str() );
4017 log(
"%s\n", message.c_str());
4019 __FUNCTION__, __FILE__, __LINE__ );
4020 e.saveContextData(
"Parser error message", message);
4022 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4023 e.saveContextData(
"EndLine", yyloc.
end.
line);
4025 error(yyloc, message);
4031 connectibleFinder(nestedNames, port);
4036 portList->addChildPort(port);
4041 "Unable to connect port : %s",
4042 port->getName().c_str());
4043 log(
"%s\n", message.c_str());
4045 __FILE__, __LINE__ );
4051 error(yyloc, message);
4060 = view->findInstance(
4061 instanceName->
mName );
4065 "Instance %s not known",
4066 instanceName->
mName.c_str() );
4067 log(
"%s\n", message.c_str());
4069 __FUNCTION__, __FILE__, __LINE__ );
4070 e.saveContextData(
"Parser error message", message);
4072 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4073 e.saveContextData(
"EndLine", yyloc.
end.
line);
4075 error(yyloc, message);
4078 if(!instanceName->
mIndices.empty())
4081 = instance->get(instanceName->
mIndices);
4085 = instance->findPortReference(topName);
4089 "No port ref %s found",
4090 portNameData->
mName.c_str());
4091 log(
"%s\n", message.c_str());
4093 __FUNCTION__, __FILE__, __LINE__ );
4094 e.saveContextData(
"Parser error message", message);
4096 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4097 e.saveContextData(
"EndLine", yyloc.
end.
line);
4099 error(yyloc, message);
4104 connectibleFinder(nestedNames, portRef);
4107 portRef = portRef->get(
4110 portList->addChildPortReference(portRef);
4115 "Unable to connect port ref : %s",
4116 portRef->getName().c_str());
4117 log(
"%s\n", message.c_str());
4119 __FILE__, __LINE__ );
4125 error(yyloc, message);
4131 = ctx->getCurrentEvent();
4132 event->setPortList(portList);
4140 #line 2576 "Parser.yy"
4142 boost::scoped_ptr<NetRefData> netData((
yysemantic_stack_[(1) - (1)].netRefData));
4146 = ctx->getCurrentView();
4147 std::vector< std::string > nestedNames;
4153 currNetRef = nextNetRef;
4167 netNameData->
mName.c_str());
4168 log(
"%s\n", message.c_str());
4170 __FUNCTION__, __FILE__, __LINE__ );
4171 e.saveContextData(
"Parser error message", message);
4173 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4174 e.saveContextData(
"EndLine", yyloc.
end.
line);
4176 error(yyloc, message);
4181 connectibleFinder(nestedNames, net);
4182 if(!netData->mNetName->mIndices.empty())
4184 net = net->get(netData->mNetName->mIndices);
4187 = ctx->getCurrentEvent();
4193 __FUNCTION__, __FILE__, __LINE__ );
4202 = view->findInstance(
4203 instanceName->
mName );
4207 "Instance %s not known",
4208 instanceName->
mName.c_str() );
4209 log(
"%s\n", message.c_str());
4211 __FUNCTION__, __FILE__, __LINE__ );
4212 e.saveContextData(
"Parser error message", message);
4214 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4215 e.saveContextData(
"EndLine", yyloc.
end.
line);
4217 error(yyloc, message);
4220 if(!instanceName->
mIndices.empty())
4223 = instance->get(instanceName->
mIndices);
4230 "No Net ref %s found",
4231 netNameData->
mName.c_str());
4232 log(
"%s\n", message.c_str());
4234 __FUNCTION__, __FILE__, __LINE__ );
4235 e.saveContextData(
"Parser error message", message);
4237 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4238 e.saveContextData(
"EndLine", yyloc.
end.
line);
4240 error(yyloc, message);
4245 connectibleFinder(nestedNames, net);
4246 if(!netData->mNetName->mIndices.empty())
4248 net = net->get(netData->mNetName->mIndices);
4251 = ctx->getCurrentEvent();
4257 __FUNCTION__, __FILE__, __LINE__ );
4267 #line 2700 "Parser.yy"
4276 #line 2706 "Parser.yy"
4279 if(name && !name->mName.empty())
4287 lib = root->findLibrary(name->mName);
4290 log(
"Skipped creation of existing lib.\n");
4314 log(
"%s\n", message.c_str());
4316 __FUNCTION__, __FILE__, __LINE__ );
4317 e.saveContextData(
"Parser error message", message);
4319 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4320 e.saveContextData(
"EndLine", yyloc.
end.
line);
4322 error(yyloc, message);
4328 if(lib->getLevel() != level)
4331 "Level mismatch - old %d new %d\n",
4332 lib->getLevel(), level );
4333 log(
"%s\n", message.c_str());
4335 __FUNCTION__, __FILE__, __LINE__ );
4336 e.saveContextData(
"Parser error message", message);
4338 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4339 e.saveContextData(
"EndLine", yyloc.
end.
line);
4341 error(yyloc, message);
4346 log(
"We have found the actual lib corresponding to this lib\n");
4351 ctx->getFactory()->create(lib);
4352 lib->setName(name->mName);
4353 if(! name->mOriginalName.empty())
4355 lib->setOriginalName(name->mOriginalName);
4357 lib->setLevel(level);
4358 lib->setParent(root);
4359 lib->setIsExtern(
true);
4360 root->addLibrary(lib);
4361 log(
"Created extern lib %s level %d\n",
4362 lib->getName().c_str(), level );
4364 ctx->setCurrentLibrary(lib);
4365 ctx->pushStatusContainer(lib);
4377 #line 2801 "Parser.yy"
4388 #line 2813 "Parser.yy"
4400 #line 2820 "Parser.yy"
4412 #line 2848 "Parser.yy"
4421 #line 2853 "Parser.yy"
4430 #line 2887 "Parser.yy"
4439 #line 2892 "Parser.yy"
4448 #line 2917 "Parser.yy"
4457 #line 2921 "Parser.yy"
4466 #line 2932 "Parser.yy"
4475 #line 2936 "Parser.yy"
4484 #line 2955 "Parser.yy"
4493 #line 2959 "Parser.yy"
4502 #line 2970 "Parser.yy"
4511 #line 2974 "Parser.yy"
4520 #line 2980 "Parser.yy"
4531 #line 3001 "Parser.yy"
4538 ctx->getFactory()->create(forbiddenEvent);
4543 "Unable to create forbiddenEvent" );
4544 log(
"%s\n", message.c_str());
4546 __FILE__, __LINE__ );
4552 error(yyloc, message);
4555 ctx->setCurrentForbiddenEvent(forbiddenEvent);
4557 timing->addForbiddenEvent(forbiddenEvent);
4564 #line 3028 "Parser.yy"
4574 #line 3036 "Parser.yy"
4578 = ctx->getCurrentForbiddenEvent();
4580 = ctx->getCurrentEvent();
4582 forbiddenEvent->addEvent(event);
4590 #line 3049 "Parser.yy"
4599 #line 3057 "Parser.yy"
4608 #line 3061 "Parser.yy"
4617 #line 3065 "Parser.yy"
4626 #line 3072 "Parser.yy"
4635 #line 3078 "Parser.yy"
4644 #line 3084 "Parser.yy"
4654 #line 3091 "Parser.yy"
4661 ctx->getFactory()->create(ignoreLogicElem);
4667 "Unable to create Ignore" );
4668 log(
"%s\n", message.c_str());
4670 __FILE__, __LINE__ );
4676 error(yyloc, message);
4680 = ctx->getCurrentLogicElement();
4681 logicElem->addChildLogicElement(ignoreLogicElem);
4688 #line 3132 "Parser.yy"
4697 #line 3135 "Parser.yy"
4701 boost::scoped_ptr<InstanceInfo> info((
yysemantic_stack_[(6) - (5)].instanceInfo));
4711 library = ctx->getCurrentLibrary();
4716 library = ctx->getRoot()->findLibrary(libraryName);
4721 "Library %s not found",
4722 libraryName.c_str() );
4723 log(
"%s\n", message.c_str());
4725 __FUNCTION__, __FILE__, __LINE__ );
4726 e.saveContextData(
"Parser error message", message);
4728 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4729 e.saveContextData(
"EndLine", yyloc.
end.
line);
4731 error(yyloc, message);
4734 libraryName = library->getName();
4736 bool masterIsExtern =
false;
4739 libraryName, cellName, viewName );
4740 if(!libraryName.empty())
4743 = linker->findExternView(viewNameSpec);
4747 library = ctx->getRoot()->findLibrary(
4752 masterIsExtern =
true;
4757 library = ctx->getCurrentLibrary();
4763 cell = library->findCell(cellName);
4767 "Cell %s not found",
4769 log(
"%s\n", message.c_str());
4771 __FUNCTION__, __FILE__, __LINE__ );
4772 e.saveContextData(
"Parser error message", message);
4774 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4775 e.saveContextData(
"EndLine", yyloc.
end.
line);
4777 error(yyloc, message);
4780 masterView = cell->findView(viewName);
4784 "View %s not found",
4786 log(
"%s\n", message.c_str());
4788 __FUNCTION__, __FILE__, __LINE__ );
4789 e.saveContextData(
"Parser error message", message);
4791 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4792 e.saveContextData(
"EndLine", yyloc.
end.
line);
4794 error(yyloc, message);
4799 if(nameData->mIndices.empty())
4804 ctx->getFactory()->create(singleInst);
4805 instance = singleInst;
4806 instance->setName(nameData->mName);
4807 if(!nameData->mOriginalName.empty())
4809 instance->setOriginalName(nameData->mOriginalName);
4815 "Unable to create Instance : %s",
4816 instance->getName().c_str());
4817 log(
"%s\n", message.c_str());
4819 __FILE__, __LINE__ );
4825 error(yyloc, message);
4834 ctx->getFactory()->create(instArray);
4835 instArray->setName(nameData->mName);
4836 if(!nameData->mOriginalName.empty())
4838 instArray->setOriginalName(nameData->mOriginalName);
4840 instArray->constructChildren(
4842 nameData->mIndices );
4843 instance = instArray;
4848 "Unable to create Instance Array : %s",
4849 instance->getName().c_str());
4850 log(
"%s\n", message.c_str());
4852 __FILE__, __LINE__ );
4858 error(yyloc, message);
4862 ctx->setCurrentInstance(instance);
4865 instance->bindToMasterView(masterView);
4867 == instance->getCompositionType() )
4869 std::vector< InstanceSharedPtr > children;
4870 instance->getChildren(children);
4871 std::vector< InstanceSharedPtr >::iterator inst
4873 std::vector< InstanceSharedPtr >::iterator end
4875 for(;inst != end; ++inst)
4879 ctx->getFactory(), *inst );
4880 masterView->applyOnAllPorts(
4888 creator(ctx->getFactory(), instance);
4889 masterView->applyOnAllPorts(
4896 "Unable to create Port ref");
4897 log(
"%s\n", message.c_str());
4899 __FILE__, __LINE__ );
4905 error(yyloc, message);
4910 linker->registerUnresolvedInstance(
4911 viewNameSpec, instance );
4913 instance->setParent(ctx->getCurrentView());
4914 ctx->getCurrentView()->addInstance(instance);
4915 log(
"Instance for lib %s, cell %s, view %s\n",
4916 libraryName.c_str(), cellName.c_str(),
4918 log(
"Added instance to view %s \n",
4919 ctx->getCurrentView()->getName().c_str());
4923 = instance->getParameterContext();
4925 std::vector<ParamAssignInfo *>::iterator it
4926 = info->mParamAssign.begin();
4927 std::vector<ParamAssignInfo *>::iterator end
4928 = info->mParamAssign.end();
4929 for(; it != end; ++it )
4932 chkP = instance->getParameters()->get(
4938 "Can only override existing params");
4939 log(
"%s\n", message.c_str());
4941 __FUNCTION__, __FILE__, __LINE__ );
4942 e.saveContextData(
"Parser error message", message);
4944 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4945 e.saveContextData(
"EndLine", yyloc.
end.
line);
4947 error(yyloc, message);
4951 != chkP->getSize() )
4955 "Params size mismatch : %d with %d",
4958 log(
"%s\n", message.c_str());
4960 __FUNCTION__, __FILE__, __LINE__ );
4961 e.saveContextData(
"Parser error message", message);
4963 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4964 e.saveContextData(
"EndLine", yyloc.
end.
line);
4966 error(yyloc, message);
4971 != chkP->getValue().getType() )
4974 = constructErrorMessage(
4975 "Type mismatch during assignment for param %s",
4977 log(
"%s\n", message.c_str());
4979 __FUNCTION__, __FILE__, __LINE__ );
4980 e.saveContextData(
"Parser error message", message);
4982 e.saveContextData(
"StartLine", yyloc.
begin.
line);
4983 e.saveContextData(
"EndLine", yyloc.
end.
line);
4985 error(yyloc, message);
4989 AssignedParamCreator creator(
4990 instance, instance->getParameterContext(),
4991 instance->getParameters(), ctx->getFactory(),
5001 chkP->accept(creator);
5006 "Unable to assign param: %s",
5007 chkP->getName().c_str());
5008 log(
"%s\n", message.c_str());
5010 __FILE__, __LINE__ );
5016 error(yyloc, message);
5019 log(
"Param %s overridden at context %lu\n",
5022 ctx->setIsInInstance(
false);
5026 std::vector<PropertySharedPtr> props;
5028 = ctx->getCurrentProperty();
5031 props.push_back(property);
5033 property = ctx->getCurrentProperty();
5035 for( std::vector<PropertySharedPtr>::reverse_iterator
5036 it = props.rbegin(); it != props.rend(); ++it )
5039 instance->setProperty(
5040 property->getName(), property );
5044 for( std::vector<PortInstData *>::iterator it
5045 = info->mPortInst.begin();
5046 it != info->mPortInst.end(); ++it )
5049 std::vector< std::string > nestedNames;
5054 nestedNames.push_back(
5058 currPortRef = nextPortRef;
5065 = instance->findPortReference(topName);
5069 "No port ref %s found",
5070 portNameData->
mName.c_str());
5071 log(
"%s\n", message.c_str());
5073 __FUNCTION__, __FILE__, __LINE__ );
5074 e.saveContextData(
"Parser error message", message);
5076 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5077 e.saveContextData(
"EndLine", yyloc.
end.
line);
5079 error(yyloc, message);
5084 connectibleFinder(nestedNames, portRef);
5087 portRef = portRef->get(
5090 portRef->setAttributes(
5097 "Unable to connect port ref : %s",
5098 portRef->getName().c_str());
5099 log(
"%s\n", message.c_str());
5101 __FILE__, __LINE__ );
5107 error(yyloc, message);
5112 for( std::vector< std::string >::iterator it
5113 = info->mUserData.begin();
5114 it != info->mUserData.end(); ++it )
5117 instance->addUserData(val);
5120 for( std::vector< std::string >::iterator it
5121 = info->mComment.begin();
5122 it != info->mComment.end(); ++it )
5125 instance->addComment(val);
5128 instance->setDesignator(info->mDesignator);
5131 instance->setTiming(info->mTiming);
5141 #line 3576 "Parser.yy"
5151 #line 3581 "Parser.yy"
5160 #line 3585 "Parser.yy"
5169 #line 3589 "Parser.yy"
5179 #line 3594 "Parser.yy"
5189 #line 3599 "Parser.yy"
5195 = ctx->getCurrentTiming();
5203 #line 3608 "Parser.yy"
5213 #line 3613 "Parser.yy"
5222 #line 3617 "Parser.yy"
5232 #line 3622 "Parser.yy"
5242 #line 3636 "Parser.yy"
5252 #line 3643 "Parser.yy"
5261 #line 3647 "Parser.yy"
5270 #line 3651 "Parser.yy"
5280 #line 3665 "Parser.yy"
5289 #line 3684 "Parser.yy"
5298 #line 3688 "Parser.yy"
5307 #line 3706 "Parser.yy"
5316 #line 3712 "Parser.yy"
5325 #line 3716 "Parser.yy"
5334 #line 3722 "Parser.yy"
5353 #line 3738 "Parser.yy"
5362 #line 3742 "Parser.yy"
5373 #line 3748 "Parser.yy"
5384 #line 3754 "Parser.yy"
5400 #line 3767 "Parser.yy"
5409 #line 3773 "Parser.yy"
5418 #line 3777 "Parser.yy"
5427 #line 3781 "Parser.yy"
5436 #line 3785 "Parser.yy"
5445 #line 3789 "Parser.yy"
5454 #line 3793 "Parser.yy"
5463 #line 3797 "Parser.yy"
5472 #line 3801 "Parser.yy"
5481 #line 3805 "Parser.yy"
5490 #line 3809 "Parser.yy"
5499 #line 3813 "Parser.yy"
5508 #line 3817 "Parser.yy"
5514 = ctx->getCurrentTiming();
5523 #line 3827 "Parser.yy"
5529 = ctx->getCurrentSimulate();
5538 #line 3837 "Parser.yy"
5548 #line 3842 "Parser.yy"
5557 #line 3846 "Parser.yy"
5567 #line 3851 "Parser.yy"
5578 #line 3864 "Parser.yy"
5587 #line 3868 "Parser.yy"
5596 #line 3888 "Parser.yy"
5605 #line 3892 "Parser.yy"
5614 #line 3908 "Parser.yy"
5621 ctx->getFactory()->create(joinedInfo);
5622 joinedInfo->setJoinedType(
5628 "Unable to create joined info" );
5629 log(
"%s\n", message.c_str());
5631 __FILE__, __LINE__ );
5637 error(yyloc, message);
5640 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
5642 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
5644 ctx->pushInterfaceJoinedInfo(joinedInfo);
5645 ctx->incrementInterfaceJoinedInfoDepth();
5652 #line 3940 "Parser.yy"
5656 = ctx->getCurrentInterfaceJoinedInfo();
5657 ctx->popInterfaceJoinedInfo();
5659 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
5661 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
5663 ctx->decrementInterfaceJoinedInfoDepth();
5664 if(parentJoinedInfo)
5666 parentJoinedInfo->setRelationType(
5668 currentJoinedInfo->setRelationType(
5671 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
5672 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
5674 log(
"Parent joined info Size :: %d\n",
5675 parentJoinedInfoSize );
5676 log(
"Current joined info Size :: %d\n",
5677 currentJoinedInfoSize );
5682 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
5683 parentJoinedInfo->getChildren(outJoinedInfos);
5685 std::list< PortSharedPtr > outPorts;
5686 parentJoinedInfo->getPorts(outPorts);
5688 std::list< PortListSharedPtr > outPortLists;
5689 parentJoinedInfo->getPortLists(outPortLists);
5691 if(parentJoinedInfoSize != 0)
5693 if( parentJoinedInfoSize
5694 == currentJoinedInfoSize )
5696 parentJoinedInfo->addChildJoinedInfo(
5697 currentJoinedInfo );
5702 "Child joined info can't be added, port size mismatch %d with %d",
5703 parentJoinedInfoSize,
5704 currentJoinedInfoSize);
5705 log(
"%s\n", message.c_str());
5707 __FUNCTION__, __FILE__, __LINE__ );
5708 e.saveContextData(
"Parser error message", message);
5710 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5711 e.saveContextData(
"EndLine", yyloc.
end.
line);
5713 error(yyloc, message);
5719 parentJoinedInfo->addChildJoinedInfo(
5720 currentJoinedInfo );
5725 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
5733 #line 4019 "Parser.yy"
5735 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
5736 NameData *portNameData = portData->mPortName;
5744 std::vector< std::string > nestedNames;
5748 currPortRef = nextPortRef;
5760 "No port %s found in view %s\n",
5762 view->getName().c_str());
5763 log(
"%s\n", message.c_str());
5765 __FUNCTION__, __FILE__, __LINE__ );
5766 e.saveContextData(
"Parser error message", message);
5768 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5769 e.saveContextData(
"EndLine", yyloc.
end.
line);
5771 error(yyloc, message);
5776 = ctx->getCurrentInterfaceJoinedInfo();
5779 connectibleFinder(nestedNames, port);
5780 if(!portData->mPortName->mIndices.empty())
5782 port = port->get(portData->mPortName->mIndices);
5785 std::list< PortSharedPtr > outPorts;
5786 currentJoinedInfo->getPorts(outPorts);
5788 if(!outPorts.empty())
5791 std::list< PortSharedPtr >::iterator it
5792 = std::find(outPorts.begin(), outPorts.end(),
5794 if(it != outPorts.end())
5797 "Port %s already exist in joined info",
5798 port->getName().c_str() );
5799 log(
"%s\n", message.c_str());
5801 __FUNCTION__, __FILE__, __LINE__ );
5802 e.saveContextData(
"Parser error message", message);
5804 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5805 e.saveContextData(
"EndLine", yyloc.
end.
line);
5807 error(yyloc, message);
5812 if(firstPort->getSize() == port->getSize())
5814 currentJoinedInfo->addPort(port);
5819 "Port %s can't be added, port size mismatch %d with %d",
5821 firstPort->getSize(),
5823 log(
"%s\n", message.c_str());
5825 __FUNCTION__, __FILE__, __LINE__ );
5826 e.saveContextData(
"Parser error message", message);
5828 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5829 e.saveContextData(
"EndLine", yyloc.
end.
line);
5831 error(yyloc, message);
5838 currentJoinedInfo->addPort(port);
5844 __FUNCTION__, __FILE__, __LINE__ );
5857 #line 4138 "Parser.yy"
5861 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
5866 ctx->getFactory()->create(portList);
5869 = ctx->getCurrentInterfaceJoinedInfo();
5871 for( std::vector<PortRefData *>::iterator it
5872 = portListData->mPortRefs.begin();
5873 it != portListData->mPortRefs.end(); ++it )
5876 std::vector< std::string > nestedNames;
5882 currPortRef = nextPortRef;
5896 "No port %s found in view %s\n",
5897 portNameData->
mName.c_str(),
5898 view->getName().c_str());
5899 log(
"%s\n", message.c_str());
5901 __FUNCTION__, __FILE__, __LINE__ );
5902 e.saveContextData(
"Parser error message", message);
5904 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5905 e.saveContextData(
"EndLine", yyloc.
end.
line);
5907 error(yyloc, message);
5913 connectibleFinder(nestedNames, port);
5918 portList->addChildPort(port);
5923 "Unable to connect port : %s",
5924 port->getName().c_str());
5925 log(
"%s\n", message.c_str());
5927 __FILE__, __LINE__ );
5933 error(yyloc, message);
5941 if(currentJoinedInfo->getSize() == portList->getSize())
5943 currentJoinedInfo->addPortList(portList);
5948 "Port size mismatch %d with %d",
5949 currentJoinedInfo->getSize(),
5950 portList->getSize());
5951 log(
"%s\n", message.c_str());
5953 __FUNCTION__, __FILE__, __LINE__ );
5954 e.saveContextData(
"Parser error message", message);
5956 e.saveContextData(
"StartLine", yyloc.
begin.
line);
5957 e.saveContextData(
"EndLine", yyloc.
end.
line);
5959 error(yyloc, message);
5969 #line 4251 "Parser.yy"
5972 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
5975 connectElementToNet(
5982 __FUNCTION__, __FILE__, __LINE__ );
5984 error(yyloc, message);
5993 #line 4270 "Parser.yy"
5997 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
6002 for( std::vector<PortRefData *>::iterator it
6003 = portListData->mPortRefs.begin();
6004 it != portListData->mPortRefs.end(); ++it )
6007 std::vector< std::string > nestedNames;
6013 currPortRef = nextPortRef;
6028 portNameData->
mName.c_str());
6029 log(
"%s\n", message.c_str());
6031 __FUNCTION__, __FILE__, __LINE__ );
6032 e.saveContextData(
"Parser error message", message);
6034 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6035 e.saveContextData(
"EndLine", yyloc.
end.
line);
6037 error(yyloc, message);
6042 connectibleFinder(nestedNames, port);
6047 portList->addChildPort(port);
6052 "Unable to connect port : %s",
6053 port->getName().c_str());
6054 log(
"%s\n", message.c_str());
6056 __FILE__, __LINE__ );
6062 error(yyloc, message);
6071 = view->findInstance(
6072 instanceName->
mName );
6076 "Instance %s not known",
6077 instanceName->
mName.c_str() );
6078 log(
"%s\n", message.c_str());
6080 __FUNCTION__, __FILE__, __LINE__ );
6081 e.saveContextData(
"Parser error message", message);
6083 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6084 e.saveContextData(
"EndLine", yyloc.
end.
line);
6086 error(yyloc, message);
6089 if(!instanceName->
mIndices.empty())
6092 = instance->get(instanceName->
mIndices);
6096 = instance->findPortReference(topName);
6100 "No port ref %s found",
6101 portNameData->
mName.c_str());
6102 log(
"%s\n", message.c_str());
6104 __FUNCTION__, __FILE__, __LINE__ );
6105 e.saveContextData(
"Parser error message", message);
6107 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6108 e.saveContextData(
"EndLine", yyloc.
end.
line);
6110 error(yyloc, message);
6115 connectibleFinder(nestedNames, portRef);
6118 portRef = portRef->get(
6121 portList->addChildPortReference(portRef);
6126 "Unable to connect port ref : %s",
6127 portRef->getName().c_str());
6128 log(
"%s\n", message.c_str());
6130 __FILE__, __LINE__ );
6136 error(yyloc, message);
6143 portList->connect(ctx->getCurrentNet());
6148 __FUNCTION__, __FILE__, __LINE__ );
6150 error(yyloc, message);
6160 #line 4432 "Parser.yy"
6162 boost::scoped_ptr<NameData> globPortRef((
yysemantic_stack_[(2) - (2)].nameData));
6168 size_t netSize = net->getSize();
6179 "Unable to connect port : %s",
6180 port->getName().c_str());
6181 log(
"%s\n", message.c_str());
6183 __FILE__, __LINE__ );
6189 error(yyloc, message);
6193 std::vector< InstanceSharedPtr > leafInstances;
6195 std::vector< InstanceSharedPtr > instances;
6196 view->getInstances(instances);
6197 for( std::vector< InstanceSharedPtr >::iterator it
6198 = instances.begin(); it != instances.end(); ++it )
6201 == (*it)->getCompositionType() )
6203 leafInstances.push_back(*it);
6207 (*it)->getChildren(leafInstances);
6211 for( std::vector< InstanceSharedPtr >::iterator it
6212 = leafInstances.begin(); it != leafInstances.end(); ++it )
6215 = (*it)->findPortReference(name);
6217 && netSize == pRef->getSize() )
6226 "Unable to connect port : %s",
6227 pRef->getName().c_str());
6228 log(
"%s\n", message.c_str());
6230 __FILE__, __LINE__ );
6236 error(yyloc, message);
6247 #line 4537 "Parser.yy"
6256 #line 4547 "Parser.yy"
6265 #line 4553 "Parser.yy"
6274 #line 4562 "Parser.yy"
6283 #line 4574 "Parser.yy"
6292 #line 4580 "Parser.yy"
6305 log(
"Skipped creation of existing lib.\n");
6329 log(
"%s\n", message.c_str());
6331 __FUNCTION__, __FILE__, __LINE__ );
6332 e.saveContextData(
"Parser error message", message);
6334 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6335 e.saveContextData(
"EndLine", yyloc.
end.
line);
6337 error(yyloc, message);
6343 if(lib->getLevel() != level)
6346 "Level mismatch - old %d new %d\n",
6347 lib->getLevel(), level );
6348 log(
"%s\n", message.c_str());
6350 __FUNCTION__, __FILE__, __LINE__ );
6351 e.saveContextData(
"Parser error message", message);
6353 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6354 e.saveContextData(
"EndLine", yyloc.
end.
line);
6356 error(yyloc, message);
6361 if(lib->getIsExtern())
6363 log(
"Exising lib was extern .. changing\n");
6364 lib->setIsExtern(
false);
6372 ctx->getFactory()->create(lib);
6377 "Unable to create lib : %s",
6378 lib->getName().c_str());
6379 log(
"%s\n", message.c_str());
6381 __FILE__, __LINE__ );
6387 error(yyloc, message);
6395 lib->setLevel(level);
6396 lib->setParent(root);
6397 root->addLibrary(lib);
6398 log(
"Created lib %s level %d\n",
6399 lib->getName().c_str(), level );
6401 ctx->setCurrentLibrary(lib);
6402 ctx->pushStatusContainer(lib);
6415 #line 4697 "Parser.yy"
6426 #line 4708 "Parser.yy"
6438 #line 4715 "Parser.yy"
6450 #line 4727 "Parser.yy"
6459 #line 4748 "Parser.yy"
6475 #line 4780 "Parser.yy"
6484 #line 4792 "Parser.yy"
6491 ctx->getFactory()->create(logicalResponse);
6496 "Unable to create logicInput/logicOutput" );
6497 log(
"%s\n", message.c_str());
6499 __FILE__, __LINE__ );
6505 error(yyloc, message);
6509 ctx->setCurrentLogicalResponse(logicalResponse);
6511 = ctx->getCurrentApply();
6512 apply->addLogicResponse(logicalResponse);
6519 #line 4821 "Parser.yy"
6529 #line 4832 "Parser.yy"
6533 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(1) - (1)].portListData));
6538 = ctx->getCurrentLogicalResponse();
6541 ctx->getFactory()->create(portList);
6543 for( std::vector<PortRefData *>::iterator it
6544 = portListData->mPortRefs.begin();
6545 it != portListData->mPortRefs.end(); ++it )
6548 std::vector< std::string > nestedNames;
6554 currPortRef = nextPortRef;
6568 = ctx->getCurrentSimulate();
6570 = simulate->findPortListAlias(topName);
6574 "No port %s found in view/portListAlias\n",
6575 portNameData->
mName.c_str());
6576 log(
"%s\n", message.c_str());
6578 __FUNCTION__, __FILE__, __LINE__ );
6579 e.saveContextData(
"Parser error message", message);
6581 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6582 e.saveContextData(
"EndLine", yyloc.
end.
line);
6584 error(yyloc, message);
6591 connectibleFinder(nestedNames, port);
6596 portList->addChildPort(port);
6601 "Unable to connect port : %s",
6602 port->getName().c_str());
6603 log(
"%s\n", message.c_str());
6605 __FILE__, __LINE__ );
6611 error(yyloc, message);
6619 logicalResponse->setConnectedPortList(portList);
6627 #line 4925 "Parser.yy"
6629 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(1) - (1)].portRefData));
6630 NameData *portNameData = portData->mPortName;
6638 std::vector< std::string > nestedNames;
6642 currPortRef = nextPortRef;
6655 "No port %s found in view %s\n",
6657 view->getName().c_str());
6658 log(
"%s\n", message.c_str());
6660 __FUNCTION__, __FILE__, __LINE__ );
6661 e.saveContextData(
"Parser error message", message);
6663 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6664 e.saveContextData(
"EndLine", yyloc.
end.
line);
6666 error(yyloc, message);
6671 = ctx->getCurrentLogicalResponse();
6674 connectibleFinder(nestedNames, port);
6675 if(!portData->mPortName->mIndices.empty())
6677 port = port->get(portData->mPortName->mIndices);
6679 logicalResponse->setConnectedPort(port);
6684 __FUNCTION__, __FILE__, __LINE__ );
6694 #line 4987 "Parser.yy"
6703 = ctx->getCurrentLogicalResponse();
6707 = ctx->getCurrentSimulate();
6709 = simulate->findPortListAlias(name);
6713 "No port %s found in view/portListAlias\n",
6715 log(
"%s\n", message.c_str());
6717 __FUNCTION__, __FILE__, __LINE__ );
6718 e.saveContextData(
"Parser error message", message);
6720 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6721 e.saveContextData(
"EndLine", yyloc.
end.
line);
6723 error(yyloc, message);
6728 logicalResponse->setConnectedPortListAlias(portListAlias);
6733 logicalResponse->setConnectedPort(port);
6741 #line 5031 "Parser.yy"
6748 ctx->getFactory()->create(logicElem);
6754 "Unable to create logicList" );
6755 log(
"%s\n", message.c_str());
6757 __FILE__, __LINE__ );
6763 error(yyloc, message);
6766 ctx->pushLogicElement(logicElem);
6767 ctx->incrementLogicElementDepth();
6774 #line 5058 "Parser.yy"
6778 = ctx->getCurrentLogicElement();
6779 ctx->popLogicElement();
6781 if(ctx->getLogicElementDepth() > 1 )
6783 parentLogicElem = ctx->getCurrentLogicElement();
6785 ctx->decrementLogicElementDepth();
6788 parentLogicElem->setRelationType(
6790 currentLogicElem->setRelationType(
6793 size_t parentLogicElemSize = parentLogicElem->getSize();
6794 size_t currentLogicElemSize = currentLogicElem->getSize();
6796 log(
"Parent LogicList Size :: %d\n",
6797 parentLogicElemSize);
6798 log(
"Current LogicList Size :: %d\n",
6799 currentLogicElemSize);
6804 if(parentLogicElemSize != 0)
6806 if(parentLogicElemSize == currentLogicElemSize)
6808 parentLogicElem->addChildLogicElement(currentLogicElem);
6813 "Child logicList can't be added, size mismatch %d with %d",
6814 parentLogicElemSize,
6815 currentLogicElemSize);
6816 log(
"%s\n", message.c_str());
6818 __FUNCTION__, __FILE__, __LINE__ );
6819 e.saveContextData(
"Parser error message", message);
6821 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6822 e.saveContextData(
"EndLine", yyloc.
end.
line);
6824 error(yyloc, message);
6830 parentLogicElem->addChildLogicElement(currentLogicElem);
6835 ctx->pushLogicElement(currentLogicElem);
6836 ctx->incrementLogicElementDepth();
6844 #line 5131 "Parser.yy"
6853 #line 5137 "Parser.yy"
6862 #line 5146 "Parser.yy"
6871 #line 5155 "Parser.yy"
6878 ctx->getFactory()->create(logicElem);
6884 "Unable to create logicOneOf" );
6885 log(
"%s\n", message.c_str());
6887 __FILE__, __LINE__ );
6893 error(yyloc, message);
6896 ctx->pushLogicElement(logicElem);
6897 ctx->incrementLogicElementDepth();
6904 #line 5182 "Parser.yy"
6908 = ctx->getCurrentLogicElement();
6909 ctx->popLogicElement();
6911 if(ctx->getLogicElementDepth() > 1 )
6913 parentLogicElem = ctx->getCurrentLogicElement();
6915 ctx->decrementLogicElementDepth();
6918 parentLogicElem->setRelationType(
6920 currentLogicElem->setRelationType(
6923 size_t parentLogicElemSize = parentLogicElem->getSize();
6924 size_t currentLogicElemSize = currentLogicElem->getSize();
6926 log(
"Parent LogicOneOf Size :: %d\n",
6927 parentLogicElemSize);
6928 log(
"Current LogicOneOf Size :: %d\n",
6929 currentLogicElemSize);
6934 if(parentLogicElemSize != 0)
6936 if(parentLogicElemSize == currentLogicElemSize)
6938 parentLogicElem->addChildLogicElement(currentLogicElem);
6943 "Child logictOneOf can't be added, size mismatch %d with %d",
6944 parentLogicElemSize,
6945 currentLogicElemSize);
6946 log(
"%s\n", message.c_str());
6948 __FUNCTION__, __FILE__, __LINE__ );
6949 e.saveContextData(
"Parser error message", message);
6951 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6952 e.saveContextData(
"EndLine", yyloc.
end.
line);
6954 error(yyloc, message);
6960 parentLogicElem->addChildLogicElement(currentLogicElem);
6965 ctx->pushLogicElement(currentLogicElem);
6966 ctx->incrementLogicElementDepth();
6974 #line 5249 "Parser.yy"
6981 = ctx->getCurrentLibrary();
6983 = lib->getSimulationInfo();
6987 "SimulatioInfo not found in %s library",
6988 lib->getName().c_str() );
6989 log(
"%s\n", message.c_str());
6991 __FUNCTION__, __FILE__, __LINE__ );
6992 e.saveContextData(
"Parser error message", message);
6994 e.saveContextData(
"StartLine", yyloc.
begin.
line);
6995 e.saveContextData(
"EndLine", yyloc.
end.
line);
6997 error(yyloc, message);
7001 = simuInfo->findLogicValue(name);
7005 = ctx->getCurrentSimulate();
7009 = simulate->findWaveValue(name);
7013 "Wave Value %s not found",
7014 logicData->mName.c_str() );
7015 log(
"%s\n", message.c_str());
7017 __FUNCTION__, __FILE__, __LINE__ );
7018 e.saveContextData(
"Parser error message", message);
7020 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7021 e.saveContextData(
"EndLine", yyloc.
end.
line);
7023 error(yyloc, message);
7030 "Logic Value %s not found",
7032 log(
"%s\n", message.c_str());
7034 __FUNCTION__, __FILE__, __LINE__ );
7035 e.saveContextData(
"Parser error message", message);
7037 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7038 e.saveContextData(
"EndLine", yyloc.
end.
line);
7040 error(yyloc, message);
7047 ctx->getFactory()->create(singleElem);
7049 singleElem->setName(name);
7054 "Unable to create logic single element" );
7055 log(
"%s\n", message.c_str());
7057 __FILE__, __LINE__ );
7063 error(yyloc, message);
7067 = ctx->getCurrentLogicElement();
7068 logicElem->addChildLogicElement(singleElem);
7075 #line 5352 "Parser.yy"
7082 ctx->getFactory()->create(logicalResponse);
7087 "Unable to create logicOutput" );
7088 log(
"%s\n", message.c_str());
7090 __FILE__, __LINE__ );
7096 error(yyloc, message);
7100 ctx->setCurrentLogicalResponse(logicalResponse);
7102 = ctx->getCurrentApply();
7103 apply->addLogicResponse(logicalResponse);
7110 #line 5381 "Parser.yy"
7120 #line 5397 "Parser.yy"
7129 #line 5401 "Parser.yy"
7138 #line 5407 "Parser.yy"
7155 #line 5421 "Parser.yy"
7164 #line 5425 "Parser.yy"
7174 #line 5432 "Parser.yy"
7181 = ctx->getCurrentSimulationInfo();
7182 logicVal = simuInfo->findLogicValue(name);
7185 log(
"Found existing logic value\n");
7187 "Logic value %s already exists in simulation info\n",
7189 log(
"%s\n", message.c_str());
7191 __FUNCTION__, __FILE__, __LINE__ );
7192 e.saveContextData(
"Parser error message", message);
7194 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7195 e.saveContextData(
"EndLine", yyloc.
end.
line);
7197 error(yyloc, message);
7204 ctx->getFactory()->create(logicVal);
7209 "Unable to create Logic Value : %s", name.c_str());
7210 log(
"%s\n", message.c_str());
7212 __FILE__, __LINE__ );
7218 error(yyloc, message);
7221 logicVal->setName(name);
7222 if(!nameData->mOriginalName.empty())
7224 logicVal->setOriginalName(nameData->mOriginalName);
7226 logicVal->setParent(simuInfo);
7227 simuInfo->addLogicValue(logicVal);
7228 log(
"Created Logic Value %s\n", logicVal->getName().c_str());
7230 ctx->setCurrentLogicValue(logicVal);
7231 ctx->pushPropertyContainer(logicVal);
7238 #line 5490 "Parser.yy"
7244 boost::shared_ptr<LogicValueAttributes> attrib((
yysemantic_stack_[(6) - (5)].logicValueAttributes));
7245 logicVal->setAttributes(attrib);
7248 ctx->popPropertyContainer();
7255 #line 5504 "Parser.yy"
7264 #line 5508 "Parser.yy"
7275 #line 5514 "Parser.yy"
7286 #line 5520 "Parser.yy"
7297 #line 5526 "Parser.yy"
7300 std::list< LogicValueSharedPtr > logicValues;
7301 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7304 for( std::list<NameData *>::iterator it
7305 = logicListData->mNameDataList.begin();
7306 it != logicListData->mNameDataList.end(); it++ )
7313 = ctx->getCurrentSimulationInfo();
7314 logicVal = simuInfo->findLogicValue(name);
7318 "Logic Value %s not found",
7320 log(
"%s\n", message.c_str());
7322 __FUNCTION__, __FILE__, __LINE__ );
7323 e.saveContextData(
"Parser error message", message);
7325 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7326 e.saveContextData(
"EndLine", yyloc.
end.
line);
7328 error(yyloc, message);
7333 if(!logicValues.empty())
7335 std::list< LogicValueSharedPtr >::iterator logicIt
7336 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7337 if(logicIt != logicValues.end())
7340 "Logic value %s already exist in compound list",
7342 log(
"%s\n", message.c_str());
7344 __FUNCTION__, __FILE__, __LINE__ );
7345 e.saveContextData(
"Parser error message", message);
7347 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7348 e.saveContextData(
"EndLine", yyloc.
end.
line);
7350 error(yyloc, message);
7355 logicValues.push_back(logicVal);
7360 logicValues.push_back(logicVal);
7372 #line 5596 "Parser.yy"
7379 = ctx->getCurrentSimulationInfo();
7380 logicVal = simuInfo->findLogicValue(name);
7384 "Logic Value %s not found",
7386 log(
"%s\n", message.c_str());
7388 __FUNCTION__, __FILE__, __LINE__ );
7389 e.saveContextData(
"Parser error message", message);
7391 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7392 e.saveContextData(
"EndLine", yyloc.
end.
line);
7394 error(yyloc, message);
7408 #line 5627 "Parser.yy"
7415 = ctx->getCurrentSimulationInfo();
7416 logicVal = simuInfo->findLogicValue(name);
7420 "Logic Value %s not found",
7422 log(
"%s\n", message.c_str());
7424 __FUNCTION__, __FILE__, __LINE__ );
7425 e.saveContextData(
"Parser error message", message);
7427 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7428 e.saveContextData(
"EndLine", yyloc.
end.
line);
7430 error(yyloc, message);
7444 #line 5658 "Parser.yy"
7447 std::list< LogicValueSharedPtr > logicValues;
7448 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7451 for( std::list<NameData *>::iterator it
7452 = logicListData->mNameDataList.begin();
7453 it != logicListData->mNameDataList.end(); it++ )
7460 = ctx->getCurrentSimulationInfo();
7461 logicVal = simuInfo->findLogicValue(name);
7465 "Logic Value %s not found",
7467 log(
"%s\n", message.c_str());
7469 __FUNCTION__, __FILE__, __LINE__ );
7470 e.saveContextData(
"Parser error message", message);
7472 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7473 e.saveContextData(
"EndLine", yyloc.
end.
line);
7475 error(yyloc, message);
7480 if(!logicValues.empty())
7482 std::list< LogicValueSharedPtr >::iterator logicIt
7483 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7484 if(logicIt != logicValues.end())
7487 "Logic value %s already exist in dominates list",
7489 log(
"%s\n", message.c_str());
7491 __FUNCTION__, __FILE__, __LINE__ );
7492 e.saveContextData(
"Parser error message", message);
7494 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7495 e.saveContextData(
"EndLine", yyloc.
end.
line);
7497 error(yyloc, message);
7502 logicValues.push_back(logicVal);
7507 logicValues.push_back(logicVal);
7519 #line 5728 "Parser.yy"
7522 boost::scoped_ptr<LogicRefData> logicRefData((
yysemantic_stack_[(2) - (2)].logicRefData));
7523 std::string logicValName = logicRefData->mLogicName->mName;
7525 bool isLocalLib = (NULL == logicRefData->mLibraryName);
7528 libName = ctx->getCurrentLibrary()->getName();
7532 libName = logicRefData->mLibraryName->mName;
7535 = ctx->getRoot()->findLibrary(libName) ;
7539 "Library %s not found",
7541 log(
"%s\n", message.c_str());
7543 __FUNCTION__, __FILE__, __LINE__ );
7544 e.saveContextData(
"Parser error message", message);
7546 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7547 e.saveContextData(
"EndLine", yyloc.
end.
line);
7549 error(yyloc, message);
7554 = library->getSimulationInfo();
7558 "SimulatioInfo not found in %s library",
7559 library->getName().c_str() );
7560 log(
"%s\n", message.c_str());
7562 __FUNCTION__, __FILE__, __LINE__ );
7563 e.saveContextData(
"Parser error message", message);
7565 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7566 e.saveContextData(
"EndLine", yyloc.
end.
line);
7568 error(yyloc, message);
7571 logicVal = simuInfo->findLogicValue(logicValName);
7575 "Logic Value %s not found",
7576 logicValName.c_str() );
7577 log(
"%s\n", message.c_str());
7579 __FUNCTION__, __FILE__, __LINE__ );
7580 e.saveContextData(
"Parser error message", message);
7582 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7583 e.saveContextData(
"EndLine", yyloc.
end.
line);
7585 error(yyloc, message);
7605 #line 5809 "Parser.yy"
7608 boost::scoped_ptr<LogicRefData> logicRefData((
yysemantic_stack_[(2) - (2)].logicRefData));
7609 std::string logicValName = logicRefData->mLogicName->mName;
7611 bool isLocalLib = (NULL == logicRefData->mLibraryName);
7614 libName = ctx->getCurrentLibrary()->getName();
7618 libName = logicRefData->mLibraryName->mName;
7621 = ctx->getRoot()->findLibrary(libName) ;
7625 "Library %s not found",
7627 log(
"%s\n", message.c_str());
7629 __FUNCTION__, __FILE__, __LINE__ );
7630 e.saveContextData(
"Parser error message", message);
7632 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7633 e.saveContextData(
"EndLine", yyloc.
end.
line);
7635 error(yyloc, message);
7640 = library->getSimulationInfo();
7644 "SimulatioInfo not found in %s library",
7645 library->getName().c_str() );
7646 log(
"%s\n", message.c_str());
7648 __FUNCTION__, __FILE__, __LINE__ );
7649 e.saveContextData(
"Parser error message", message);
7651 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7652 e.saveContextData(
"EndLine", yyloc.
end.
line);
7654 error(yyloc, message);
7657 logicVal = simuInfo->findLogicValue(logicValName);
7661 "Logic Value %s not found",
7662 logicValName.c_str() );
7663 log(
"%s\n", message.c_str());
7665 __FUNCTION__, __FILE__, __LINE__ );
7666 e.saveContextData(
"Parser error message", message);
7668 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7669 e.saveContextData(
"EndLine", yyloc.
end.
line);
7671 error(yyloc, message);
7691 #line 5890 "Parser.yy"
7701 #line 5895 "Parser.yy"
7704 std::list< LogicValueSharedPtr > logicValues;
7705 boost::scoped_ptr<LogicListData> logicListData((
yysemantic_stack_[(2) - (2)].logicListData));
7708 for( std::list<NameData *>::iterator it
7709 = logicListData->mNameDataList.begin();
7710 it != logicListData->mNameDataList.end(); it++ )
7717 = ctx->getCurrentSimulationInfo();
7718 logicVal = simuInfo->findLogicValue(name);
7722 "Logic Value %s not found",
7724 log(
"%s\n", message.c_str());
7726 __FUNCTION__, __FILE__, __LINE__ );
7727 e.saveContextData(
"Parser error message", message);
7729 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7730 e.saveContextData(
"EndLine", yyloc.
end.
line);
7732 error(yyloc, message);
7737 if(!logicValues.empty())
7739 std::list< LogicValueSharedPtr >::iterator logicIt
7740 = std::find(logicValues.begin(), logicValues.end(), logicVal);
7741 if(logicIt != logicValues.end())
7744 "Logic value %s already exist in resolve list",
7746 log(
"%s\n", message.c_str());
7748 __FUNCTION__, __FILE__, __LINE__ );
7749 e.saveContextData(
"Parser error message", message);
7751 e.saveContextData(
"StartLine", yyloc.
begin.
line);
7752 e.saveContextData(
"EndLine", yyloc.
end.
line);
7754 error(yyloc, message);
7759 logicValues.push_back(logicVal);
7764 logicValues.push_back(logicVal);
7776 #line 5965 "Parser.yy"
7785 #line 5969 "Parser.yy"
7798 #line 5977 "Parser.yy"
7811 #line 5987 "Parser.yy"
7818 ctx->getFactory()->create(logicElem);
7824 "Unable to create logicWaveForm" );
7825 log(
"%s\n", message.c_str());
7827 __FILE__, __LINE__ );
7833 error(yyloc, message);
7836 if(ctx->getLogicElementDepth() == 0 )
7839 = ctx->getCurrentLogicalResponse();
7842 logicalResponse->setLogicWaveForm(logicElem);
7846 = ctx->getCurrentWaveValue();
7849 waveValue->setLogicWaveform(logicElem);
7852 ctx->pushLogicElement(logicElem);
7853 ctx->incrementLogicElementDepth();
7860 #line 6030 "Parser.yy"
7864 = ctx->getCurrentLogicElement();
7865 ctx->popLogicElement();
7867 if(ctx->getLogicElementDepth() > 1 )
7869 parentLogicElem = ctx->getCurrentLogicElement();
7871 ctx->decrementLogicElementDepth();
7874 parentLogicElem->setRelationType(
7876 currentLogicElem->setRelationType(
7890 parentLogicElem->addChildLogicElement(currentLogicElem);
7894 ctx->pushLogicElement(currentLogicElem);
7902 #line 6101 "Parser.yy"
7918 #line 6114 "Parser.yy"
7927 #line 6121 "Parser.yy"
7937 #line 6129 "Parser.yy"
7946 #line 6135 "Parser.yy"
7964 #line 6150 "Parser.yy"
7973 #line 6154 "Parser.yy"
7986 #line 6162 "Parser.yy"
7999 #line 6170 "Parser.yy"
8015 #line 6183 "Parser.yy"
8024 #line 6189 "Parser.yy"
8033 #line 6193 "Parser.yy"
8042 #line 6199 "Parser.yy"
8051 #line 6203 "Parser.yy"
8066 #line 6215 "Parser.yy"
8096 #line 6242 "Parser.yy"
8105 #line 6246 "Parser.yy"
8114 #line 6250 "Parser.yy"
8123 #line 6263 "Parser.yy"
8130 ctx->getFactory()->create(joinedInfo);
8131 joinedInfo->setJoinedType(
8137 "Unable to create must joined info" );
8138 log(
"%s\n", message.c_str());
8140 __FILE__, __LINE__ );
8146 error(yyloc, message);
8149 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
8151 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
8153 ctx->pushInterfaceJoinedInfo(joinedInfo);
8154 ctx->incrementInterfaceJoinedInfoDepth();
8161 #line 6295 "Parser.yy"
8165 = ctx->getCurrentInterfaceJoinedInfo();
8166 ctx->popInterfaceJoinedInfo();
8168 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
8170 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
8172 ctx->decrementInterfaceJoinedInfoDepth();
8173 if(parentJoinedInfo)
8175 parentJoinedInfo->setRelationType(
8177 currentJoinedInfo->setRelationType(
8180 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
8181 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
8183 log(
"Parent joined info Size :: %d\n",
8184 parentJoinedInfoSize );
8185 log(
"Current joined info Size :: %d\n",
8186 currentJoinedInfoSize );
8191 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
8192 parentJoinedInfo->getChildren(outJoinedInfos);
8194 std::list< PortSharedPtr > outPorts;
8195 parentJoinedInfo->getPorts(outPorts);
8197 std::list< PortListSharedPtr > outPortLists;
8198 parentJoinedInfo->getPortLists(outPortLists);
8200 if(parentJoinedInfoSize != 0)
8202 if( parentJoinedInfoSize
8203 == currentJoinedInfoSize )
8205 parentJoinedInfo->addChildJoinedInfo(
8206 currentJoinedInfo );
8211 "Child joined info can't be added, port size mismatch %d with %d",
8212 parentJoinedInfoSize,
8213 currentJoinedInfoSize);
8214 log(
"%s\n", message.c_str());
8216 __FUNCTION__, __FILE__, __LINE__ );
8217 e.saveContextData(
"Parser error message", message);
8219 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8220 e.saveContextData(
"EndLine", yyloc.
end.
line);
8222 error(yyloc, message);
8228 parentJoinedInfo->addChildJoinedInfo(
8229 currentJoinedInfo );
8234 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
8242 #line 6374 "Parser.yy"
8244 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
8245 NameData *portNameData = portData->mPortName;
8253 std::vector< std::string > nestedNames;
8257 currPortRef = nextPortRef;
8269 "No port %s found in view %s\n",
8271 view->getName().c_str());
8272 log(
"%s\n", message.c_str());
8274 __FUNCTION__, __FILE__, __LINE__ );
8275 e.saveContextData(
"Parser error message", message);
8277 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8278 e.saveContextData(
"EndLine", yyloc.
end.
line);
8280 error(yyloc, message);
8285 = ctx->getCurrentInterfaceJoinedInfo();
8288 connectibleFinder(nestedNames, port);
8289 if(!portData->mPortName->mIndices.empty())
8291 port = port->get(portData->mPortName->mIndices);
8294 std::list< PortSharedPtr > outPorts;
8295 currentJoinedInfo->getPorts(outPorts);
8297 if(!outPorts.empty())
8300 std::list< PortSharedPtr >::iterator it
8301 = std::find(outPorts.begin(), outPorts.end(),
8303 if(it != outPorts.end())
8306 "Port %s already exist in mustJoin info",
8307 port->getName().c_str() );
8308 log(
"%s\n", message.c_str());
8310 __FUNCTION__, __FILE__, __LINE__ );
8311 e.saveContextData(
"Parser error message", message);
8313 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8314 e.saveContextData(
"EndLine", yyloc.
end.
line);
8316 error(yyloc, message);
8321 if(firstPort->getSize() == port->getSize())
8323 currentJoinedInfo->addPort(port);
8328 "Port %s can't be added, port size mismatch %d with %d",
8330 firstPort->getSize(),
8332 log(
"%s\n", message.c_str());
8334 __FUNCTION__, __FILE__, __LINE__ );
8335 e.saveContextData(
"Parser error message", message);
8337 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8338 e.saveContextData(
"EndLine", yyloc.
end.
line);
8340 error(yyloc, message);
8347 currentJoinedInfo->addPort(port);
8353 __FUNCTION__, __FILE__, __LINE__ );
8366 #line 6493 "Parser.yy"
8370 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
8375 ctx->getFactory()->create(portList);
8378 = ctx->getCurrentInterfaceJoinedInfo();
8380 for( std::vector<PortRefData *>::iterator it
8381 = portListData->mPortRefs.begin();
8382 it != portListData->mPortRefs.end(); ++it )
8385 std::vector< std::string > nestedNames;
8391 currPortRef = nextPortRef;
8405 "No port %s found in view %s\n",
8406 portNameData->
mName.c_str(),
8407 view->getName().c_str());
8408 log(
"%s\n", message.c_str());
8410 __FUNCTION__, __FILE__, __LINE__ );
8411 e.saveContextData(
"Parser error message", message);
8413 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8414 e.saveContextData(
"EndLine", yyloc.
end.
line);
8416 error(yyloc, message);
8422 connectibleFinder(nestedNames, port);
8427 portList->addChildPort(port);
8432 "Unable to connect port : %s",
8433 port->getName().c_str());
8434 log(
"%s\n", message.c_str());
8436 __FILE__, __LINE__ );
8442 error(yyloc, message);
8450 if(currentJoinedInfo->getSize() == portList->getSize())
8452 currentJoinedInfo->addPortList(portList);
8457 "Port size mismatch %d with %d",
8458 currentJoinedInfo->getSize(),
8459 portList->getSize());
8460 log(
"%s\n", message.c_str());
8462 __FUNCTION__, __FILE__, __LINE__ );
8463 e.saveContextData(
"Parser error message", message);
8465 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8466 e.saveContextData(
"EndLine", yyloc.
end.
line);
8468 error(yyloc, message);
8478 #line 6604 "Parser.yy"
8487 #line 6610 "Parser.yy"
8498 #line 6619 "Parser.yy"
8507 #line 6623 "Parser.yy"
8516 #line 6627 "Parser.yy"
8525 #line 6633 "Parser.yy"
8536 #line 6639 "Parser.yy"
8545 #line 6643 "Parser.yy"
8554 #line 6649 "Parser.yy"
8565 #line 6655 "Parser.yy"
8574 #line 6661 "Parser.yy"
8585 #line 6667 "Parser.yy"
8594 #line 6673 "Parser.yy"
8602 = ctx->getCurrentNetBundleContext();
8603 bool bExistingNetFound =
false;
8606 typedef std::vector<NetSharedPtr > NBList;
8608 bundle->getChildren(children);
8609 for(NBList::iterator it = children.begin();
8610 it != children.end(); it++ )
8612 if((*it)->getName() == name)
8614 bExistingNetFound =
true;
8620 net = view->findNet(name);
8621 bExistingNetFound =
false;
8623 if(bExistingNetFound)
8626 "View %s already contains a net of name %s\n",
8627 view->getName().c_str(),
8628 net->getName().c_str() );
8629 log(
"%s\n", message.c_str());
8631 __FUNCTION__, __FILE__, __LINE__ );
8632 e.saveContextData(
"Parser error message", message);
8634 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8635 e.saveContextData(
"EndLine", yyloc.
end.
line);
8637 error(yyloc, message);
8642 if(!pNameData->mIndices.empty())
8647 ctx->getFactory()->create(vectorNet);
8648 vectorNet->setName(name);
8649 vectorNet->constructChildren(
8651 pNameData->mIndices );
8657 "Unable to create net : %s",
8658 net->getName().c_str());
8659 log(
"%s\n", message.c_str());
8661 __FILE__, __LINE__ );
8667 error(yyloc, message);
8676 ctx->getFactory()->create(scalarNet);
8683 "Unable to create net : %s",
8684 net->getName().c_str());
8685 log(
"%s\n", message.c_str());
8687 __FILE__, __LINE__ );
8693 error(yyloc, message);
8697 if(!pNameData->mOriginalName.empty())
8699 net->setOriginalName(
8700 pNameData->mOriginalName );
8705 net->setParentCollection(bundle);
8706 bundle->addChild(net);
8707 log(
"Added net to existing bundle\n");
8711 ctx->pushCurrentNet(net);
8713 ctx->popCurrentNet();
8718 parentNet->addSubnet(currentNet);
8719 printf(
"Current net %s ",
8720 net->getName().c_str() );
8725 net->setParent(view);
8729 if(pNameData->mIndices.empty())
8731 log(
"Created scalar net %s ",
8732 net->getName().c_str() );
8736 log(
"Created vector net %s with dimensions ",
8737 net->getName().c_str() );
8738 for( std::vector<size_t>::const_iterator it
8739 = pNameData->mIndices.begin();
8740 it != pNameData->mIndices.end(); ++it )
8747 ctx->pushCurrentNet(net);
8748 ctx->pushPropertyContainer(net);
8755 #line 6828 "Parser.yy"
8763 currentNet->setAttributes(attrib);
8765 ctx->popCurrentNet();
8769 = ctx->getCurrentNetBundleContext();
8774 parentNet->addSubnet(currentNet);
8778 currentNet->setParentCollection(bundle);
8779 bundle->addChild(currentNet);
8781 log(
"Added net to existing bundle\n");
8787 parentNet->addSubnet(currentNet);
8791 view->addNet(currentNet);
8792 currentNet->setParent(view);
8802 #line 6872 "Parser.yy"
8811 #line 6876 "Parser.yy"
8821 #line 6881 "Parser.yy"
8832 #line 6887 "Parser.yy"
8841 #line 6891 "Parser.yy"
8850 #line 6895 "Parser.yy"
8859 #line 6899 "Parser.yy"
8868 #line 6903 "Parser.yy"
8877 #line 6907 "Parser.yy"
8890 #line 6915 "Parser.yy"
8903 #line 6929 "Parser.yy"
8912 #line 6933 "Parser.yy"
8921 #line 6938 "Parser.yy"
8930 #line 6944 "Parser.yy"
8939 = ctx->getCurrentNetBundleContext();
8942 typedef std::vector<NetSharedPtr > NBList;
8944 bundle->getChildren(children);
8945 for(NBList::iterator it = children.begin();
8946 it != children.end(); it++ )
8948 if((*it)->getName() == name)
8956 net = view->findNet(name);
8960 log(
"Found existing net\n");
8962 "View %s already contains a net of name %s\n",
8963 view->getName().c_str(),
8964 net->getName().c_str() );
8966 __FUNCTION__, __FILE__, __LINE__ );
8967 e.saveContextData(
"Parser error message", message);
8969 e.saveContextData(
"StartLine", yyloc.
begin.
line);
8970 e.saveContextData(
"EndLine", yyloc.
end.
line);
8972 error(yyloc, message);
8980 ctx->getFactory()->create(netBundle);
8981 ctx->pushNetBundleContext(netBundle);
8987 "Unable to create net bundle : %s",
8988 net->getName().c_str());
8989 log(
"%s\n", message.c_str());
8991 __FILE__, __LINE__ );
8997 error(yyloc, message);
9001 net->setParent(view);
9002 if(!pNameData->mOriginalName.empty())
9004 net->setOriginalName(pNameData->mOriginalName);
9008 net->setParentCollection(bundle);
9009 bundle->addChild(net);
9010 log(
"Added net to existing bundle\n");
9016 log(
"Created net bundle %s\n",
9017 net->getName().c_str() );
9026 #line 7034 "Parser.yy"
9031 ctx->popNetBundleContext();
9038 #line 7047 "Parser.yy"
9042 = ctx->getCurrentNetBundleContext();
9051 #line 7055 "Parser.yy"
9055 = ctx->getCurrentNetBundleContext();
9064 #line 7065 "Parser.yy"
9075 #line 7074 "Parser.yy"
9084 #line 7078 "Parser.yy"
9090 = ctx->getCurrentLogicElement();
9093 (yyval.
netDelay)->setTransition(logicElem);
9101 #line 7090 "Parser.yy"
9107 = ctx->getCurrentLogicElement();
9110 (yyval.
netDelay)->setTransition(logicElem);
9118 #line 7104 "Parser.yy"
9127 #line 7110 "Parser.yy"
9138 #line 7116 "Parser.yy"
9149 #line 7132 "Parser.yy"
9160 "No Net %s found in view %s\n",
9162 view->getName().c_str());
9163 log(
"%s\n", message.c_str());
9165 __FUNCTION__, __FILE__, __LINE__ );
9166 e.saveContextData(
"Parser error message", message);
9168 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9169 e.saveContextData(
"EndLine", yyloc.
end.
line);
9171 error(yyloc, message);
9177 = ctx->getCurrentEvent();
9186 #line 7180 "Parser.yy"
9195 #line 7184 "Parser.yy"
9204 #line 7211 "Parser.yy"
9214 nData->
mView = NULL;
9236 #line 7240 "Parser.yy"
9245 #line 7244 "Parser.yy"
9254 #line 7248 "Parser.yy"
9266 #line 7255 "Parser.yy"
9276 #line 7265 "Parser.yy"
9283 ctx->getFactory()->create(permutable);
9284 permutable->setIsNonPermutable(
true);
9289 "Unable to create Permutable" );
9290 log(
"%s\n", message.c_str());
9292 __FILE__, __LINE__ );
9298 error(yyloc, message);
9301 ctx->pushPermutable(permutable);
9302 ctx->incrementPermutableDepth();
9309 #line 7292 "Parser.yy"
9313 = ctx->getCurrentPermutable();
9314 ctx->popPermutable();
9316 if(ctx->getPermutableDepth() > 1 )
9318 parentPermutable = ctx->getCurrentPermutable();
9320 ctx->decrementPermutableDepth();
9321 if(parentPermutable)
9323 parentPermutable->setPermutableType(
9325 currentPermutable->setPermutableType(
9328 size_t parentPermutableSize = parentPermutable->getSize();
9329 size_t currentPermutableSize = currentPermutable->getSize();
9331 log(
"Parent permutable Size :: %d\n",
9332 parentPermutableSize );
9333 log(
"Current permutable Size :: %d\n",
9334 currentPermutableSize );
9335 std::vector< PermutableSharedPtr > outPermutables;
9336 parentPermutable->getChildren(outPermutables);
9337 std::vector< PortSharedPtr > outPorts;
9338 parentPermutable->getPorts(outPorts);
9340 if(!outPermutables.empty() || !outPorts.empty())
9342 if( parentPermutableSize
9343 == currentPermutableSize )
9345 parentPermutable->addChildPermutable(
9346 currentPermutable );
9351 "Child permutable can't be added, port size mismatch %d with %d",
9352 parentPermutableSize,
9353 currentPermutableSize);
9354 log(
"%s\n", message.c_str());
9356 __FUNCTION__, __FILE__, __LINE__ );
9357 e.saveContextData(
"Parser error message", message);
9359 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9360 e.saveContextData(
"EndLine", yyloc.
end.
line);
9362 error(yyloc, message);
9368 parentPermutable->addChildPermutable(
9369 currentPermutable );
9374 ctx->pushPermutable(currentPermutable);
9382 #line 7363 "Parser.yy"
9384 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
9385 NameData *portNameData = portData->mPortName;
9394 "Permutable can not be used in this view type");
9395 log(
"%s\n", message.c_str());
9397 __FUNCTION__, __FILE__, __LINE__ );
9402 std::vector< std::string > nestedNames;
9406 currPortRef = nextPortRef;
9418 "No port %s found in view %s\n",
9420 view->getName().c_str());
9421 log(
"%s\n", message.c_str());
9423 __FUNCTION__, __FILE__, __LINE__ );
9424 e.saveContextData(
"Parser error message", message);
9426 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9427 e.saveContextData(
"EndLine", yyloc.
end.
line);
9429 error(yyloc, message);
9433 = ctx->getCurrentPermutable();
9436 connectibleFinder(nestedNames, port);
9437 if(!portData->mPortName->mIndices.empty())
9439 port = port->get(portData->mPortName->mIndices);
9442 std::vector< PortSharedPtr > outPorts;
9443 currentPermutable->getPorts(outPorts);
9445 if(!outPorts.empty())
9448 std::vector< PortSharedPtr >::iterator it
9449 = std::find(outPorts.begin(), outPorts.end(),
9451 if(it != outPorts.end())
9454 "Port %s already exist in permutable",
9455 port->getName().c_str() );
9456 log(
"%s\n", message.c_str());
9458 __FUNCTION__, __FILE__, __LINE__ );
9459 e.saveContextData(
"Parser error message", message);
9461 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9462 e.saveContextData(
"EndLine", yyloc.
end.
line);
9464 error(yyloc, message);
9469 if(firstPort->getSize() == port->getSize())
9471 currentPermutable->addPort(port);
9476 "Port %s can't be added, port size mismatch %d with %d",
9478 firstPort->getSize(),
9480 log(
"%s\n", message.c_str());
9482 __FUNCTION__, __FILE__, __LINE__ );
9483 e.saveContextData(
"Parser error message", message);
9485 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9486 e.saveContextData(
"EndLine", yyloc.
end.
line);
9488 error(yyloc, message);
9495 currentPermutable->addPort(port);
9501 __FUNCTION__, __FILE__, __LINE__ );
9511 #line 7494 "Parser.yy"
9520 #line 7498 "Parser.yy"
9529 #line 7509 "Parser.yy"
9538 #line 7513 "Parser.yy"
9547 #line 7519 "Parser.yy"
9565 #line 7534 "Parser.yy"
9574 #line 7538 "Parser.yy"
9586 #line 7545 "Parser.yy"
9598 #line 7552 "Parser.yy"
9614 #line 7565 "Parser.yy"
9623 #line 7571 "Parser.yy"
9632 #line 7575 "Parser.yy"
9641 #line 7587 "Parser.yy"
9650 #line 7599 "Parser.yy"
9659 #line 7603 "Parser.yy"
9668 #line 7609 "Parser.yy"
9677 #line 7635 "Parser.yy"
9686 #line 7646 "Parser.yy"
9695 #line 7650 "Parser.yy"
9704 #line 7661 "Parser.yy"
9713 #line 7665 "Parser.yy"
9722 #line 7671 "Parser.yy"
9731 #line 7681 "Parser.yy"
9740 #line 7690 "Parser.yy"
9749 #line 7701 "Parser.yy"
9758 #line 7705 "Parser.yy"
9767 #line 7721 "Parser.yy"
9772 = ctx->getFactory();
9774 boost::scoped_ptr<ValueData> valueData((
yysemantic_stack_[(6) - (4)].valueData));
9781 factory->create(single);
9783 param->setName(nameData->mName);
9784 if(!nameData->mOriginalName.empty())
9786 param->setOriginalName(nameData->mOriginalName);
9788 param->setValue(valueData->mValues[0]);
9793 __FUNCTION__, __FILE__, __LINE__ );
9799 size_t arraySize = accumulate(
9800 nameData->mIndices.begin(),
9801 nameData->mIndices.end(), 1,
9802 std::multiplies<size_t>());
9803 if(valueData->mValues.size() != arraySize)
9806 "Size mismatch %d with %d", valueData->mValues.size(),
9807 nameData->mIndices.size() );
9808 log(
"%s\n", message.c_str());
9810 __FUNCTION__, __FILE__, __LINE__ );
9811 e.saveContextData(
"Parser error message", message);
9813 e.saveContextData(
"StartLine", yyloc.
begin.
line);
9814 e.saveContextData(
"EndLine", yyloc.
end.
line);
9816 error(yyloc, message);
9822 factory->create(array);
9823 array->setName(nameData->mName);
9824 if(!nameData->mOriginalName.empty())
9826 array->setOriginalName(nameData->mOriginalName);
9828 array->constructChildren( factory,
9831 std::vector< ParameterSharedPtr > children;
9832 param->getChildren(children);
9833 std::vector< ParameterSharedPtr >::iterator it = children.begin();
9834 std::vector< ParameterSharedPtr >::iterator end = children.end();
9836 for(; it != end; ++it, i++ )
9838 (*it)->setValue(valueData->mValues[i]);
9844 __FUNCTION__, __FILE__, __LINE__ );
9851 = view->getParameterContext();
9852 view->getParameters()->set(
9853 context, nameData->mName, param );
9854 log(
"New param %s created for context %lu\n",
9855 nameData->mName.c_str(), context );
9862 #line 7813 "Parser.yy"
9871 #line 7820 "Parser.yy"
9882 #line 7835 "Parser.yy"
9889 ctx->getFactory()->create(pathDelay);
9894 "Unable to create pathDelay" );
9895 log(
"%s\n", message.c_str());
9897 __FILE__, __LINE__ );
9903 error(yyloc, message);
9906 ctx->setCurrentPathDelay(pathDelay);
9908 timing->addPathDelay(pathDelay);
9915 #line 7862 "Parser.yy"
9925 #line 7870 "Parser.yy"
9929 = ctx->getCurrentPathDelay();
9931 = ctx->getCurrentEvent();
9933 pathDelay->addEvent(event);
9941 #line 7883 "Parser.yy"
9946 = ctx->getCurrentPathDelay();
9954 #line 7897 "Parser.yy"
9963 #line 7903 "Parser.yy"
9970 ctx->getFactory()->create(permutable);
9971 permutable->setIsNonPermutable(
false);
9976 "Unable to create Permutable" );
9977 log(
"%s\n", message.c_str());
9979 __FILE__, __LINE__ );
9985 error(yyloc, message);
9988 if(ctx->getPermutableDepth() == 0 )
9990 ctx->getCurrentView()->addPermutable(permutable);
9992 ctx->pushPermutable(permutable);
9993 ctx->incrementPermutableDepth();
10000 #line 7934 "Parser.yy"
10004 = ctx->getCurrentPermutable();
10005 ctx->popPermutable();
10007 if(ctx->getPermutableDepth() > 1 )
10009 parentPermutable = ctx->getCurrentPermutable();
10011 ctx->decrementPermutableDepth();
10012 if(parentPermutable)
10014 parentPermutable->setPermutableType(
10016 currentPermutable->setPermutableType(
10019 size_t parentPermutableSize = parentPermutable->getSize();
10020 size_t currentPermutableSize = currentPermutable->getSize();
10022 log(
"Parent permutable Size :: %d\n",
10023 parentPermutableSize );
10024 log(
"Current permutable Size :: %d\n",
10025 currentPermutableSize );
10026 std::vector< PermutableSharedPtr > outPermutables;
10027 parentPermutable->getChildren(outPermutables);
10028 std::vector< PortSharedPtr > outPorts;
10029 parentPermutable->getPorts(outPorts);
10031 if(!outPermutables.empty() || !outPorts.empty())
10033 if( parentPermutableSize
10034 == currentPermutableSize )
10036 parentPermutable->addChildPermutable(
10037 currentPermutable );
10042 "Child permutable can't be added, port size mismatch %d with %d",
10043 parentPermutableSize,
10044 currentPermutableSize);
10045 log(
"%s\n", message.c_str());
10047 __FUNCTION__, __FILE__, __LINE__ );
10048 e.saveContextData(
"Parser error message", message);
10050 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10051 e.saveContextData(
"EndLine", yyloc.
end.
line);
10053 error(yyloc, message);
10059 parentPermutable->addChildPermutable(
10060 currentPermutable );
10065 ctx->pushPermutable(currentPermutable);
10073 #line 8005 "Parser.yy"
10075 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
10076 NameData *portNameData = portData->mPortName;
10085 "Permutable can not be used in this view type");
10086 log(
"%s\n", message.c_str());
10088 __FUNCTION__, __FILE__, __LINE__ );
10093 std::vector< std::string > nestedNames;
10097 currPortRef = nextPortRef;
10109 "No port %s found in view %s\n",
10111 view->getName().c_str());
10112 log(
"%s\n", message.c_str());
10114 __FUNCTION__, __FILE__, __LINE__ );
10115 e.saveContextData(
"Parser error message", message);
10117 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10118 e.saveContextData(
"EndLine", yyloc.
end.
line);
10120 error(yyloc, message);
10124 = ctx->getCurrentPermutable();
10127 connectibleFinder(nestedNames, port);
10128 if(!portData->mPortName->mIndices.empty())
10130 port = port->get(portData->mPortName->mIndices);
10133 std::vector< PortSharedPtr > outPorts;
10134 currentPermutable->getPorts(outPorts);
10136 if(!outPorts.empty())
10139 std::vector< PortSharedPtr >::iterator it
10140 = std::find(outPorts.begin(), outPorts.end(),
10142 if(it != outPorts.end())
10145 "Port %s already exist in permutable",
10146 port->getName().c_str() );
10147 log(
"%s\n", message.c_str());
10149 __FUNCTION__, __FILE__, __LINE__ );
10150 e.saveContextData(
"Parser error message", message);
10152 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10153 e.saveContextData(
"EndLine", yyloc.
end.
line);
10155 error(yyloc, message);
10160 if(firstPort->getSize() == port->getSize())
10162 currentPermutable->addPort(port);
10167 "Port %s can't be added, port size mismatch %d with %d",
10169 firstPort->getSize(),
10171 log(
"%s\n", message.c_str());
10173 __FUNCTION__, __FILE__, __LINE__ );
10174 e.saveContextData(
"Parser error message", message);
10176 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10177 e.saveContextData(
"EndLine", yyloc.
end.
line);
10179 error(yyloc, message);
10186 currentPermutable->addPort(port);
10192 __FUNCTION__, __FILE__, __LINE__ );
10202 #line 8140 "Parser.yy"
10220 #line 8155 "Parser.yy"
10229 #line 8159 "Parser.yy"
10242 #line 8167 "Parser.yy"
10255 #line 8175 "Parser.yy"
10271 #line 8188 "Parser.yy"
10280 #line 8194 "Parser.yy"
10289 #line 8198 "Parser.yy"
10298 #line 8208 "Parser.yy"
10307 #line 8214 "Parser.yy"
10316 #line 8227 "Parser.yy"
10318 boost::scoped_ptr<NameData> pNameData((
yysemantic_stack_[(3) - (3)].nameData));
10325 = ctx->getCurrentPortBundleContext();
10326 bool bExistingPortFound =
false;
10329 typedef std::vector<PortSharedPtr > PBList;
10331 bundle->getChildren(children);
10332 for(PBList::iterator it = children.begin();
10333 it != children.end(); it++ )
10335 if((*it)->getName() == name)
10337 bExistingPortFound =
true;
10343 port = view->findPort(name);
10344 bExistingPortFound = port;
10346 if(bExistingPortFound)
10348 if(!ctx->getIsViewBeingLinked())
10350 log(
"Existing port %s already found..Ignoring\n",
10351 port->getName().c_str());
10354 "View %s already contains a port of name %s\n",
10355 view->getName().c_str(),
10356 port->getName().c_str() );
10357 log(
"%s\n", message.c_str());
10359 __FUNCTION__, __FILE__, __LINE__ );
10360 e.saveContextData(
"Parser error message", message);
10362 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10363 e.saveContextData(
"EndLine", yyloc.
end.
line);
10365 error(yyloc, message);
10372 if(!pNameData->mIndices.empty())
10377 ctx->getFactory()->create(vectorPort);
10378 vectorPort->setName(name);
10379 vectorPort->constructChildren(
10381 pNameData->mIndices );
10387 "Unable to create vector port : %s",
10388 port->getName().c_str());
10389 log(
"%s\n", message.c_str());
10391 __FILE__, __LINE__ );
10397 error(yyloc, message);
10406 ctx->getFactory()->create(scalarPort);
10408 port->setName(name);
10413 "Unable to create port : %s",
10414 port->getName().c_str());
10415 log(
"%s\n", message.c_str());
10417 __FILE__, __LINE__ );
10423 error(yyloc, message);
10427 if(!pNameData->mOriginalName.empty())
10429 port->setOriginalName(
10430 pNameData->mOriginalName );
10432 port->setParent(view);
10435 port->setParentCollection(bundle);
10436 bundle->addChild(port);
10437 log(
"Added port to existing bundle\n");
10441 view->addPort(port);
10443 if(pNameData->mIndices.empty())
10445 log(
"Created scalar port %s ",
10446 port->getName().c_str() );
10450 log(
"Created vector port %s with dimensions ",
10451 port->getName().c_str() );
10452 for( std::vector<size_t>::const_iterator it
10453 = pNameData->mIndices.begin();
10454 it != pNameData->mIndices.end(); ++it )
10461 ctx->setCurrentPort(port);
10462 ctx->pushPropertyContainer(port);
10469 #line 8374 "Parser.yy"
10474 boost::shared_ptr<PortAttributes> attrib((
yysemantic_stack_[(6) - (5)].portAttributes));
10475 ctx->getCurrentPort()->setAttributes(attrib);
10478 ctx->popPropertyContainer();
10485 #line 8387 "Parser.yy"
10494 #line 8391 "Parser.yy"
10503 #line 8395 "Parser.yy"
10515 #line 8402 "Parser.yy"
10526 #line 8408 "Parser.yy"
10538 #line 8415 "Parser.yy"
10551 #line 8423 "Parser.yy"
10564 #line 8431 "Parser.yy"
10577 #line 8439 "Parser.yy"
10590 #line 8447 "Parser.yy"
10601 #line 8453 "Parser.yy"
10610 #line 8457 "Parser.yy"
10623 #line 8465 "Parser.yy"
10636 #line 8475 "Parser.yy"
10638 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(3) - (3)].portRefData));
10641 std::vector< std::string > nestedNames;
10647 currPortRef = nextPortRef;
10656 portData->mView->mViewName->mName );
10660 "No view %s found",
10661 portData->mView->mViewName->mName.c_str());
10662 log(
"%s\n", message.c_str());
10664 __FUNCTION__, __FILE__, __LINE__ );
10665 e.saveContextData(
"Parser error message", message);
10667 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10668 e.saveContextData(
"EndLine", yyloc.
end.
line);
10670 error(yyloc, message);
10679 "No port %s found",
10680 portNameData->
mName.c_str());
10681 log(
"%s\n", message.c_str());
10683 __FUNCTION__, __FILE__, __LINE__ );
10684 e.saveContextData(
"Parser error message", message);
10686 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10687 e.saveContextData(
"EndLine", yyloc.
end.
line);
10689 error(yyloc, message);
10694 connectibleFinder(nestedNames, port);
10695 if(!portData->mPortName->mIndices.empty())
10697 port = port->get(portData->mPortName->mIndices);
10699 ctx->setCurrentPort(port);
10700 ctx->pushPropertyContainer(port);
10705 __FUNCTION__, __FILE__, __LINE__ );
10714 = view->findInstance(
10715 instanceName->
mName );
10719 "Instance %s not known",
10720 instanceName->
mName.c_str() );
10721 log(
"%s\n", message.c_str());
10723 __FUNCTION__, __FILE__, __LINE__ );
10724 e.saveContextData(
"Parser error message", message);
10726 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10727 e.saveContextData(
"EndLine", yyloc.
end.
line);
10729 error(yyloc, message);
10732 if(!instanceName->
mIndices.empty())
10735 = instance->get(instanceName->
mIndices);
10739 = instance->findPortReference(topName);
10743 "No port ref %s found",
10744 portNameData->
mName.c_str());
10745 log(
"%s\n", message.c_str());
10747 __FUNCTION__, __FILE__, __LINE__ );
10748 e.saveContextData(
"Parser error message", message);
10750 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10751 e.saveContextData(
"EndLine", yyloc.
end.
line);
10753 error(yyloc, message);
10758 connectibleFinder(nestedNames, portRef);
10759 if(!portData->mPortName->mIndices.empty())
10761 portRef = portRef->get(portData->mPortName->mIndices);
10763 ctx->setCurrentPortRef(portRef);
10764 ctx->pushPropertyContainer(portRef);
10769 "Unable to connect port ref : %s",
10770 portRef->getName().c_str());
10771 log(
"%s\n", message.c_str());
10773 __FILE__, __LINE__ );
10779 error(yyloc, message);
10789 #line 8622 "Parser.yy"
10795 boost::shared_ptr<PortAttributes>
10798 = ctx->getCurrentPort();
10801 port->setAttributes(attrib);
10805 ctx->getCurrentPortRef()
10806 ->setAttributes(attrib);
10810 ctx->setCurrentPortRef(
10812 ctx->popPropertyContainer();
10819 #line 8649 "Parser.yy"
10828 #line 8653 "Parser.yy"
10840 #line 8660 "Parser.yy"
10851 #line 8666 "Parser.yy"
10863 #line 8673 "Parser.yy"
10876 #line 8681 "Parser.yy"
10889 #line 8689 "Parser.yy"
10902 #line 8697 "Parser.yy"
10915 #line 8705 "Parser.yy"
10926 #line 8711 "Parser.yy"
10935 #line 8715 "Parser.yy"
10945 #line 8722 "Parser.yy"
10953 = ctx->getCurrentPortBundleContext();
10954 bool bExistingPortFound =
false;
10957 typedef std::vector<PortSharedPtr > PBList;
10959 bundle->getChildren(children);
10960 for(PBList::iterator it = children.begin();
10961 it != children.end(); it++ )
10963 if((*it)->getName() == name)
10965 bExistingPortFound =
true;
10971 port = view->findPort(name);
10972 bExistingPortFound = port;
10974 if(bExistingPortFound)
10976 if(!ctx->getIsViewBeingLinked())
10979 "View %s already contains a port of name %s\n",
10980 view->getName().c_str(),
10981 port->getName().c_str() );
10982 log(
"%s\n", message.c_str());
10984 __FUNCTION__, __FILE__, __LINE__ );
10985 e.saveContextData(
"Parser error message", message);
10987 e.saveContextData(
"StartLine", yyloc.
begin.
line);
10988 e.saveContextData(
"EndLine", yyloc.
end.
line);
10990 error(yyloc, message);
10999 ctx->getFactory()->create(portBundle);
11000 ctx->pushPortBundleContext(portBundle);
11006 "Unable to create port bundle : %s",
11007 port->getName().c_str());
11008 log(
"%s\n", message.c_str());
11010 __FILE__, __LINE__ );
11016 error(yyloc, message);
11019 port->setName(name);
11020 if(!nameData->mOriginalName.empty())
11022 port->setOriginalName(nameData->mOriginalName);
11024 port->setParent(view);
11027 port->setParentCollection(bundle);
11028 bundle->addChild(port);
11029 log(
"Added port to existing bundle\n");
11033 view->addPort(port);
11035 log(
"Created port bundle %s\n",
11036 port->getName().c_str() );
11038 ctx->setCurrentPort(port);
11045 #line 8816 "Parser.yy"
11056 #line 8826 "Parser.yy"
11060 = ctx->getCurrentPortBundleContext();
11069 #line 8834 "Parser.yy"
11073 = ctx->getCurrentPortBundleContext();
11082 #line 8844 "Parser.yy"
11095 #line 8854 "Parser.yy"
11106 #line 8860 "Parser.yy"
11117 #line 8866 "Parser.yy"
11123 = ctx->getCurrentLogicElement();
11126 (yyval.
portDelay)->setTransition(logicElem);
11134 #line 8878 "Parser.yy"
11140 = ctx->getCurrentLogicElement();
11143 (yyval.
portDelay)->setTransition(logicElem);
11151 #line 8900 "Parser.yy"
11162 "No port %s found in view %s\n",
11164 view->getName().c_str());
11165 log(
"%s\n", message.c_str());
11167 __FUNCTION__, __FILE__, __LINE__ );
11168 e.saveContextData(
"Parser error message", message);
11170 e.saveContextData(
"StartLine", yyloc.
begin.
line);
11171 e.saveContextData(
"EndLine", yyloc.
end.
line);
11173 error(yyloc, message);
11179 = ctx->getCurrentEvent();
11180 event->addPort(port);
11188 #line 8954 "Parser.yy"
11197 #line 8958 "Parser.yy"
11206 #line 8964 "Parser.yy"
11215 #line 8970 "Parser.yy"
11225 #line 8975 "Parser.yy"
11236 #line 8981 "Parser.yy"
11244 (yyval.
portInst)->mAttribute->setUnused(val);
11251 #line 8991 "Parser.yy"
11258 (yyval.
portInst)->mAttribute->setPortDelay(*delay);
11265 #line 9000 "Parser.yy"
11273 (yyval.
portInst)->mAttribute->setDesignator(val);
11280 #line 9010 "Parser.yy"
11289 (yyval.
portInst)->mAttribute->setDcFaninLoad(val);
11296 #line 9021 "Parser.yy"
11305 (yyval.
portInst)->mAttribute->setDcFanoutLoad(val);
11312 #line 9032 "Parser.yy"
11321 (yyval.
portInst)->mAttribute->setDcMaxFanin(val);
11328 #line 9043 "Parser.yy"
11337 (yyval.
portInst)->mAttribute->setDcMaxFanout(val);
11344 #line 9054 "Parser.yy"
11351 (yyval.
portInst)->mAttribute->setAcLoad(data->mValues[0]);
11358 #line 9063 "Parser.yy"
11367 #line 9067 "Parser.yy"
11377 #line 9072 "Parser.yy"
11387 #line 9087 "Parser.yy"
11396 #line 9093 "Parser.yy"
11405 #line 9097 "Parser.yy"
11415 #line 9102 "Parser.yy"
11427 #line 9111 "Parser.yy"
11435 ctx->getFactory()->create(portlistAlias);
11436 portlistAlias->setName(name);
11440 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(5) - (4)].portListData));
11445 ctx->getFactory()->create(portList);
11447 for( std::vector<PortRefData *>::iterator it
11448 = portListData->mPortRefs.begin();
11449 it != portListData->mPortRefs.end(); ++it )
11452 std::vector< std::string > nestedNames;
11458 currPortRef = nextPortRef;
11472 "No port %s found in view %s\n",
11473 portNameData->
mName.c_str(),
11474 view->getName().c_str());
11475 log(
"%s\n", message.c_str());
11477 __FUNCTION__, __FILE__, __LINE__ );
11478 e.saveContextData(
"Parser error message", message);
11480 e.saveContextData(
"StartLine", yyloc.
begin.
line);
11481 e.saveContextData(
"EndLine", yyloc.
end.
line);
11483 error(yyloc, message);
11489 connectibleFinder(nestedNames, port);
11494 portList->addChildPort(port);
11499 "Unable to connect port : %s",
11500 port->getName().c_str());
11501 log(
"%s\n", message.c_str());
11503 __FILE__, __LINE__ );
11509 error(yyloc, message);
11517 portlistAlias->setPortList(portList);
11520 = ctx->getCurrentSimulate();
11523 simulate->addPortListAlias(portlistAlias);
11528 "Unable to add port list alias : %s",
11529 portlistAlias->getName().c_str());
11530 log(
"%s\n", message.c_str());
11532 __FILE__, __LINE__ );
11538 error(yyloc, message);
11548 #line 9235 "Parser.yy"
11557 #line 9239 "Parser.yy"
11566 #line 9246 "Parser.yy"
11575 #line 9272 "Parser.yy"
11585 pData->
mView = NULL;
11607 #line 9301 "Parser.yy"
11616 #line 9305 "Parser.yy"
11625 #line 9309 "Parser.yy"
11637 #line 9316 "Parser.yy"
11647 #line 9323 "Parser.yy"
11656 #line 9329 "Parser.yy"
11665 #line 9333 "Parser.yy"
11675 #line 9347 "Parser.yy"
11678 if(!nameData->mIndices.empty())
11681 "Property %s cannot be an array",
11682 nameData->mName.c_str() );
11683 log(
"%s\n", message.c_str());
11685 __FUNCTION__, __FILE__, __LINE__ );
11686 e.saveContextData(
"Parser error message", message);
11688 e.saveContextData(
"StartLine", yyloc.
begin.
line);
11689 e.saveContextData(
"EndLine", yyloc.
end.
line);
11691 error(yyloc, message);
11699 ctx->getFactory()->create(property);
11704 "Unable to create Property : %s",
11705 nameData->mName.c_str());
11706 log(
"%s\n", message.c_str());
11708 __FILE__, __LINE__ );
11714 error(yyloc, message);
11717 property->setName(nameData->mName.c_str());
11718 if(!nameData->mOriginalName.empty())
11720 property->setOriginalName(nameData->mOriginalName);
11722 ctx->pushProperty(property);
11723 ctx->incrementPropertyDepth();
11730 #line 9396 "Parser.yy"
11735 = ctx->getCurrentProperty();
11736 ctx->popProperty();
11738 if(ctx->getPropertyDepth() > 1 )
11740 parentP = ctx->getCurrentProperty();
11742 ctx->decrementPropertyDepth();
11744 =ctx->getCurrentPropertyContainer();
11747 parentP->addChildProperty(
11748 currentP->getName(), currentP );
11752 if(ctx->getIsInInstance())
11755 ctx->pushProperty(currentP);
11761 container->setProperty(
11762 currentP->getName(), currentP );
11766 log(
"Property %s is being discarded\n",
11767 currentP->getName().c_str());
11777 #line 9440 "Parser.yy"
11780 if(value->mValues.size() > 1)
11783 "Property value cannot be an array" );
11784 log(
"%s\n", message.c_str());
11786 __FUNCTION__, __FILE__, __LINE__ );
11787 e.saveContextData(
"Parser error message", message);
11789 e.saveContextData(
"StartLine", yyloc.
begin.
line);
11790 e.saveContextData(
"EndLine", yyloc.
end.
line);
11792 error(yyloc, message);
11796 ->setValue(value->mValues[0]);
11803 #line 9461 "Parser.yy"
11814 #line 9467 "Parser.yy"
11824 #line 9473 "Parser.yy"
11835 #line 9500 "Parser.yy"
11844 #line 9504 "Parser.yy"
11853 #line 9526 "Parser.yy"
11862 #line 9532 "Parser.yy"
11871 #line 9544 "Parser.yy"
11880 #line 9548 "Parser.yy"
11889 #line 9554 "Parser.yy"
11900 #line 9562 "Parser.yy"
11911 #line 9568 "Parser.yy"
11920 #line 9574 "Parser.yy"
11929 #line 9578 "Parser.yy"
11938 #line 9584 "Parser.yy"
11947 #line 9590 "Parser.yy"
11956 #line 9594 "Parser.yy"
11966 #line 9604 "Parser.yy"
11977 #line 9612 "Parser.yy"
11986 #line 9616 "Parser.yy"
11995 #line 9622 "Parser.yy"
12005 #line 9629 "Parser.yy"
12015 #line 9639 "Parser.yy"
12024 #line 9644 "Parser.yy"
12033 #line 9661 "Parser.yy"
12040 ctx->getFactory()->create(simulate);
12045 "Unable to create simulate" );
12046 log(
"%s\n", message.c_str());
12048 __FILE__, __LINE__ );
12054 error(yyloc, message);
12057 ctx->setCurrentSimulate(simulate);
12064 #line 9686 "Parser.yy"
12075 #line 9694 "Parser.yy"
12082 = ctx->getCurrentSimulate();
12086 simulate->setOriginalName((
yysemantic_stack_[(1) - (1)].nameData)->mOriginalName);
12100 #line 9717 "Parser.yy"
12104 = ctx->getCurrentSimulate();
12113 #line 9725 "Parser.yy"
12117 = ctx->getCurrentSimulate();
12126 #line 9735 "Parser.yy"
12133 ctx->getFactory()->create(simuInfo);
12138 "Unable to create simulation info" );
12139 log(
"%s\n", message.c_str());
12141 __FILE__, __LINE__ );
12147 error(yyloc, message);
12150 ctx->setCurrentSimulationInfo(simuInfo);
12152 lib->setSimulationInfo(simuInfo);
12159 #line 9762 "Parser.yy"
12162 ctx->setCurrentSimulationInfo(
12170 #line 9772 "Parser.yy"
12174 = ctx->getCurrentSimulationInfo();
12183 #line 9780 "Parser.yy"
12187 = ctx->getCurrentSimulationInfo();
12196 #line 9818 "Parser.yy"
12203 ctx->getFactory()->create(status);
12208 "Unable to create Status" );
12209 log(
"%s\n", message.c_str());
12211 __FILE__, __LINE__ );
12217 error(yyloc, message);
12220 ctx->setCurrentStatus(status);
12227 #line 9843 "Parser.yy"
12231 = ctx->getCurrentStatus();
12234 = ctx->getCurrentStatusContainer();
12237 container->addStatus(currentStatus);
12241 log(
"Status is being discarded\n");
12249 #line 9864 "Parser.yy"
12261 #line 9871 "Parser.yy"
12273 #line 9888 "Parser.yy"
12282 #line 9896 "Parser.yy"
12291 #line 9902 "Parser.yy"
12310 #line 9918 "Parser.yy"
12319 #line 9922 "Parser.yy"
12331 #line 9929 "Parser.yy"
12343 #line 9936 "Parser.yy"
12359 #line 9949 "Parser.yy"
12368 #line 9953 "Parser.yy"
12377 #line 9959 "Parser.yy"
12386 #line 9980 "Parser.yy"
12395 #line 9984 "Parser.yy"
12404 #line 10008 "Parser.yy"
12413 #line 10022 "Parser.yy"
12415 log(
"PRINT TECHNOLOGY \n");
12422 #line 10033 "Parser.yy"
12431 #line 10037 "Parser.yy"
12440 #line 10043 "Parser.yy"
12449 #line 10052 "Parser.yy"
12453 = ctx->getCurrentForbiddenEvent();
12455 = ctx->getCurrentEvent();
12457 forbiddenEvent->setStartTimeInterval(event);
12465 #line 10063 "Parser.yy"
12473 = ctx->getCurrentForbiddenEvent();
12475 = ctx->getCurrentEvent();
12477 event->setOffsetTime(val);
12478 forbiddenEvent->setStartTimeInterval(event);
12486 #line 10081 "Parser.yy"
12490 = ctx->getCurrentForbiddenEvent();
12492 = ctx->getCurrentEvent();
12494 forbiddenEvent->setEndTimeInterval(event);
12502 #line 10092 "Parser.yy"
12510 = ctx->getCurrentForbiddenEvent();
12512 = ctx->getCurrentEvent();
12514 event->setOffsetTime(val);
12515 forbiddenEvent->setEndTimeInterval(event);
12523 #line 10108 "Parser.yy"
12527 = ctx->getCurrentForbiddenEvent();
12532 forbiddenEvent->setDuration(val);
12539 #line 10121 "Parser.yy"
12560 #line 10139 "Parser.yy"
12567 ctx->getFactory()->create(timing);
12572 "Unable to create timing" );
12573 log(
"%s\n", message.c_str());
12575 __FILE__, __LINE__ );
12581 error(yyloc, message);
12584 ctx->setCurrentTiming(timing);
12591 #line 10164 "Parser.yy"
12602 #line 10172 "Parser.yy"
12607 = ctx->getCurrentTiming();
12608 timing->setDerivation(
12616 #line 10183 "Parser.yy"
12621 = ctx->getCurrentTiming();
12630 #line 10192 "Parser.yy"
12635 = ctx->getCurrentTiming();
12644 #line 10214 "Parser.yy"
12651 ctx->getFactory()->create(logicElem);
12657 "Unable to create transition" );
12658 log(
"%s\n", message.c_str());
12660 __FILE__, __LINE__ );
12666 error(yyloc, message);
12669 ctx->pushLogicElement(logicElem);
12670 ctx->incrementLogicElementDepth();
12677 #line 10284 "Parser.yy"
12686 #line 10290 "Parser.yy"
12695 #line 10294 "Parser.yy"
12704 #line 10298 "Parser.yy"
12713 #line 10302 "Parser.yy"
12722 #line 10306 "Parser.yy"
12731 #line 10310 "Parser.yy"
12740 #line 10314 "Parser.yy"
12749 #line 10318 "Parser.yy"
12758 #line 10322 "Parser.yy"
12767 #line 10326 "Parser.yy"
12776 #line 10330 "Parser.yy"
12785 #line 10334 "Parser.yy"
12794 #line 10338 "Parser.yy"
12803 #line 10342 "Parser.yy"
12812 #line 10346 "Parser.yy"
12821 #line 10350 "Parser.yy"
12830 #line 10359 "Parser.yy"
12839 #line 10365 "Parser.yy"
12849 #line 10369 "Parser.yy"
12861 #line 10378 "Parser.yy"
12870 #line 10382 "Parser.yy"
12879 #line 10386 "Parser.yy"
12888 #line 10390 "Parser.yy"
12897 #line 10409 "Parser.yy"
12906 #line 10415 "Parser.yy"
12913 view = cell->findView(name);
12914 bool isCellExtern = cell->getIsExtern();
12917 log(
"Found existing view\n");
12920 if(!view->getIsExtern())
12923 "View %s already exists in cell %s\n",
12924 name.c_str(), view->getName().c_str() );
12925 log(
"%s\n", message.c_str());
12927 __FUNCTION__, __FILE__, __LINE__ );
12928 e.setCurrentLocation( __FUNCTION__,
12929 __FILE__, __LINE__ );
12930 e.saveContextData(
"Parser error message", message);
12932 e.saveContextData(
"StartLine", yyloc.
begin.
line);
12933 e.saveContextData(
"EndLine", yyloc.
end.
line);
12935 error(yyloc, message);
12940 log(
"Extern view %s already exists in %s\n",
12941 name.c_str(), cell->getName().c_str() );
12946 if(view->getIsExtern())
12948 log(
"Found extern view of this name\n");
12949 view->setIsExtern(
false);
12950 ctx->setIsViewBeingLinked(
true);
12954 log(
"View %s already found.. Ignoring\n",
12959 "View %s already exists in cell %s\n",
12960 name.c_str(), cell->getName().c_str() );
12961 log(
"%s\n", message.c_str());
12963 __FUNCTION__, __FILE__, __LINE__ );
12964 e.setCurrentLocation( __FUNCTION__,
12965 __FILE__, __LINE__ );
12966 e.saveContextData(
"Parser error message", message);
12968 e.saveContextData(
"StartLine", yyloc.
begin.
line);
12969 e.saveContextData(
"EndLine", yyloc.
end.
line);
12971 error(yyloc, message);
12981 ctx->getFactory()->create(view);
12986 "Unable to create View : %s",
12987 view->getName().c_str());
12988 log(
"%s\n", message.c_str());
12990 __FILE__, __LINE__ );
12996 error(yyloc, message);
12999 view->setName(name);
13000 if(!nameData->mOriginalName.empty())
13002 view->setOriginalName(nameData->mOriginalName);
13004 view->setIsExtern(isCellExtern);
13005 view->setParent(cell);
13006 cell->addView(view);
13009 cell->getParent()->getName(),
13010 cell->getName(), view->getName() );
13013 linker->setExternView(viewNameSpec, view);
13014 log(
"Extern view %s saved in linker.\n",
13015 view->getName().c_str() );
13019 linker->linkUnresolved(viewNameSpec, view);
13021 log(
"Created view %s\n", view->getName().c_str());
13023 ctx->setCurrentView(view);
13024 log(
"View %s added\n",
13025 view->getName().c_str());
13026 ctx->pushPropertyContainer(view);
13027 ctx->pushStatusContainer(view);
13034 #line 10537 "Parser.yy"
13057 #line 10557 "Parser.yy"
13064 view->setInterfaceAttributes(attrib);
13072 #line 10569 "Parser.yy"
13084 #line 10577 "Parser.yy"
13099 #line 10607 "Parser.yy"
13108 #line 10611 "Parser.yy"
13117 #line 10633 "Parser.yy"
13134 #line 10647 "Parser.yy"
13143 #line 10651 "Parser.yy"
13152 #line 10657 "Parser.yy"
13159 "Warning::View types other than netlist are ignored");
13160 log(
"%s\n", message.c_str());
13181 #line 10683 "Parser.yy"
13190 #line 10687 "Parser.yy"
13199 #line 10691 "Parser.yy"
13208 #line 10695 "Parser.yy"
13217 #line 10699 "Parser.yy"
13226 #line 10703 "Parser.yy"
13235 #line 10707 "Parser.yy"
13244 #line 10711 "Parser.yy"
13253 #line 10715 "Parser.yy"
13262 #line 10719 "Parser.yy"
13271 #line 10725 "Parser.yy"
13280 #line 10731 "Parser.yy"
13289 #line 10737 "Parser.yy"
13299 ctx->getFactory()->create(waveValue);
13300 waveValue->setName(name);
13305 "Unable to create WaveValue" );
13306 log(
"%s\n", message.c_str());
13308 __FILE__, __LINE__ );
13314 error(yyloc, message);
13320 waveValue->setDeltaTimeDuration(val);
13323 = ctx->getCurrentSimulate();
13326 simulate->addWaveValue(waveValue);
13331 "Unable to add wave value : %s",
13332 waveValue->getName().c_str());
13333 log(
"%s\n", message.c_str());
13335 __FILE__, __LINE__ );
13341 error(yyloc, message);
13344 ctx->setCurrentWaveValue(waveValue);
13352 #line 10794 "Parser.yy"
13362 #line 10801 "Parser.yy"
13371 #line 10807 "Parser.yy"
13378 ctx->getFactory()->create(joinedInfo);
13379 joinedInfo->setJoinedType(
13385 "Unable to create weak joined info" );
13386 log(
"%s\n", message.c_str());
13388 __FILE__, __LINE__ );
13394 error(yyloc, message);
13397 if(ctx->getInterfaceJoinedInfoDepth() == 0 )
13399 ctx->getCurrentView()->addInterfaceJoinedInfo(joinedInfo);
13401 ctx->pushInterfaceJoinedInfo(joinedInfo);
13402 ctx->incrementInterfaceJoinedInfoDepth();
13409 #line 10839 "Parser.yy"
13413 = ctx->getCurrentInterfaceJoinedInfo();
13414 ctx->popInterfaceJoinedInfo();
13416 if(ctx->getInterfaceJoinedInfoDepth() > 1 )
13418 parentJoinedInfo = ctx->getCurrentInterfaceJoinedInfo();
13420 ctx->decrementInterfaceJoinedInfoDepth();
13421 if(parentJoinedInfo)
13423 parentJoinedInfo->setRelationType(
13425 currentJoinedInfo->setRelationType(
13428 size_t parentJoinedInfoSize = parentJoinedInfo->getSize();
13429 size_t currentJoinedInfoSize = currentJoinedInfo->getSize();
13431 log(
"Parent joined info Size :: %d\n",
13432 parentJoinedInfoSize );
13433 log(
"Current joined info Size :: %d\n",
13434 currentJoinedInfoSize );
13439 std::vector< InterfaceJoinedInfoSharedPtr > outJoinedInfos;
13440 parentJoinedInfo->getChildren(outJoinedInfos);
13442 std::list< PortSharedPtr > outPorts;
13443 parentJoinedInfo->getPorts(outPorts);
13445 std::list< PortListSharedPtr > outPortLists;
13446 parentJoinedInfo->getPortLists(outPortLists);
13448 if(parentJoinedInfoSize != 0)
13450 if( parentJoinedInfoSize
13451 == currentJoinedInfoSize )
13453 parentJoinedInfo->addChildJoinedInfo(
13454 currentJoinedInfo );
13459 "Child joined info can't be added, port size mismatch %d with %d",
13460 parentJoinedInfoSize,
13461 currentJoinedInfoSize);
13462 log(
"%s\n", message.c_str());
13464 __FUNCTION__, __FILE__, __LINE__ );
13465 e.saveContextData(
"Parser error message", message);
13467 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13468 e.saveContextData(
"EndLine", yyloc.
end.
line);
13470 error(yyloc, message);
13476 parentJoinedInfo->addChildJoinedInfo(
13477 currentJoinedInfo );
13482 ctx->pushInterfaceJoinedInfo(currentJoinedInfo);
13490 #line 10918 "Parser.yy"
13492 boost::scoped_ptr<PortRefData> portData((
yysemantic_stack_[(2) - (2)].portRefData));
13493 NameData *portNameData = portData->mPortName;
13501 std::vector< std::string > nestedNames;
13505 currPortRef = nextPortRef;
13517 "No port %s found in view %s\n",
13519 view->getName().c_str());
13520 log(
"%s\n", message.c_str());
13522 __FUNCTION__, __FILE__, __LINE__ );
13523 e.saveContextData(
"Parser error message", message);
13525 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13526 e.saveContextData(
"EndLine", yyloc.
end.
line);
13528 error(yyloc, message);
13533 = ctx->getCurrentInterfaceJoinedInfo();
13536 connectibleFinder(nestedNames, port);
13537 if(!portData->mPortName->mIndices.empty())
13539 port = port->get(portData->mPortName->mIndices);
13542 std::list< PortSharedPtr > outPorts;
13543 currentJoinedInfo->getPorts(outPorts);
13545 if(!outPorts.empty())
13548 std::list< PortSharedPtr >::iterator it
13549 = std::find(outPorts.begin(), outPorts.end(),
13551 if(it != outPorts.end())
13554 "Port %s already exist in weakJoined info",
13555 port->getName().c_str() );
13556 log(
"%s\n", message.c_str());
13558 __FUNCTION__, __FILE__, __LINE__ );
13559 e.saveContextData(
"Parser error message", message);
13561 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13562 e.saveContextData(
"EndLine", yyloc.
end.
line);
13564 error(yyloc, message);
13569 if(firstPort->getSize() == port->getSize())
13571 currentJoinedInfo->addPort(port);
13576 "Port %s can't be added, port size mismatch %d with %d",
13578 firstPort->getSize(),
13580 log(
"%s\n", message.c_str());
13582 __FUNCTION__, __FILE__, __LINE__ );
13583 e.saveContextData(
"Parser error message", message);
13585 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13586 e.saveContextData(
"EndLine", yyloc.
end.
line);
13588 error(yyloc, message);
13595 currentJoinedInfo->addPort(port);
13601 __FUNCTION__, __FILE__, __LINE__ );
13614 #line 11037 "Parser.yy"
13618 boost::scoped_ptr<PortListData> portListData((
yysemantic_stack_[(2) - (2)].portListData));
13623 ctx->getFactory()->create(portList);
13626 = ctx->getCurrentInterfaceJoinedInfo();
13628 for( std::vector<PortRefData *>::iterator it
13629 = portListData->mPortRefs.begin();
13630 it != portListData->mPortRefs.end(); ++it )
13633 std::vector< std::string > nestedNames;
13639 currPortRef = nextPortRef;
13653 "No port %s found in view %s\n",
13654 portNameData->
mName.c_str(),
13655 view->getName().c_str());
13656 log(
"%s\n", message.c_str());
13658 __FUNCTION__, __FILE__, __LINE__ );
13659 e.saveContextData(
"Parser error message", message);
13661 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13662 e.saveContextData(
"EndLine", yyloc.
end.
line);
13664 error(yyloc, message);
13670 connectibleFinder(nestedNames, port);
13675 portList->addChildPort(port);
13680 "Unable to connect port : %s",
13681 port->getName().c_str());
13682 log(
"%s\n", message.c_str());
13684 __FILE__, __LINE__ );
13690 error(yyloc, message);
13698 if(currentJoinedInfo->getSize() == portList->getSize())
13700 currentJoinedInfo->addPortList(portList);
13705 "Port size mismatch %d with %d",
13706 currentJoinedInfo->getSize(),
13707 portList->getSize());
13708 log(
"%s\n", message.c_str());
13710 __FUNCTION__, __FILE__, __LINE__ );
13711 e.saveContextData(
"Parser error message", message);
13713 e.saveContextData(
"StartLine", yyloc.
begin.
line);
13714 e.saveContextData(
"EndLine", yyloc.
end.
line);
13716 error(yyloc, message);
13726 #line 11155 "Parser.yy"
13735 #line 11159 "Parser.yy"
13744 #line 11165 "Parser.yy"
13751 ctx->getFactory()->create(written);
13756 "Unable to create Written" );
13757 log(
"%s\n", message.c_str());
13759 __FILE__, __LINE__ );
13765 error(yyloc, message);
13768 ctx->setCurrentWritten(written);
13769 ctx->pushPropertyContainer(written);
13776 #line 11191 "Parser.yy"
13781 status->addWritten(written);
13783 ctx->popPropertyContainer();
13790 #line 11202 "Parser.yy"
13802 #line 11209 "Parser.yy"
13814 #line 11216 "Parser.yy"
13816 boost::scoped_ptr<PairStrData> data((
yysemantic_stack_[(2) - (2)].pairStrData));
13819 written->setProgramName(data->mFirst);
13820 written->setProgramVersion(data->mSecond);
13827 #line 11224 "Parser.yy"
13829 boost::scoped_ptr<PairStrData> data((
yysemantic_stack_[(2) - (2)].pairStrData));
13832 written->setDataOriginLocationName(data->mFirst);
13833 written->setDataOriginVersion(data->mSecond);
13840 #line 11233 "Parser.yy"
13852 #line 11240 "Parser.yy"
13864 #line 11249 "Parser.yy"
13873 #line 11255 "Parser.yy"
13882 #line 11261 "Parser.yy"
13891 #line 11267 "Parser.yy"
13901 #line 13902 "Parser.cc"
13917 if (0 <= yystate && yystate <=
yylast_
13918 &&
yycheck_[yystate] == yystate_stack_[0])
13935 yyerror_range[0] = yylloc;
13936 if (yyerrstatus_ == 3)
13949 yydestruct_ (
"Error: discarding", yytoken, &yylval, &yylloc);
13975 yystate = yystate_stack_[0];
13999 if (yystate_stack_.height () == 1)
14007 yystate = yystate_stack_[0];
14011 yyerror_range[1] = yylloc;
14037 yydestruct_ (
"Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
14042 while (yystate_stack_.height () != 1)
14060 #if YYERROR_VERBOSE
14066 int yyxbegin = yyn < 0 ? -yyn : 0;
14069 int yychecklim =
yylast_ - yyn + 1;
14072 for (
int x = yyxbegin; x < yyxend; ++x)
14084 res =
"syntax error, unexpected ";
14089 for (
int x = yyxbegin; x < yyxend; ++x)
14092 res += (!count++) ?
", expecting " :
" or ";
14099 res =
YY_(
"syntax error");
14110 -97, 99, 245, 66, -1561, -1561, 349, -46, -1561, -1561,
14111 -1561, -1561, 268, 95, 199, 1, 482, -1561, 147, -1561,
14112 80, -1561, 472, 364, 192, 383, -1561, -1561, -1561, 286,
14113 271, -1561, -1561, -1561, 472, 472, 409, -1561, 97, 586,
14114 -1561, 472, 310, 287, -1561, 351, -1561, -1561, -1561, -1561,
14115 -1561, -1561, 705, -1561, 313, -1561, 457, -1561, 744, 764,
14116 95, 825, -1561, -1561, -1561, 472, 538, -1561, -1561, 620,
14117 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 832, 633,
14118 -1561, -1561, -1561, -1561, 336, -1561, 66, 66, 66, -1561,
14119 -1561, 1118, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14120 -1561, -1561, -1561, -1561, -1561, 1475, 1276, 373, -1561, 51,
14121 -1561, -1561, 1, -1561, 1, -1561, 268, 472, 472, 81,
14122 606, 824, 472, 472, 66, 472, 391, -1561, -1561, -1561,
14123 -1561, -1561, -1561, -1561, -1561, -1561, 395, -1561, -1561, -1561,
14124 -1561, -1561, -1561, -1561, -1561, 399, 479, 454, -1561, -1561,
14125 458, -1561, -1561, 864, 64, -1561, 472, 462, 651, 81,
14126 -1561, -1561, -1561, -1561, 477, -1561, -1561, -1561, 486, 472,
14127 502, -1561, -1561, 541, 37, 558, -1561, -1561, -1561, -1561,
14128 472, -1561, 733, -1561, 872, 568, 568, 27, -1561, -1561,
14129 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 577, -1561,
14130 472, 81, -1561, -1561, 577, -1561, 597, -1561, 603, 610,
14131 -1561, 472, 95, 402, -1561, -1561, -1561, -1561, -1561, 566,
14132 884, -1561, 891, -1561, -1561, 268, 850, 615, 472, 650,
14133 661, 105, -1561, -1561, -1561, -1561, -1561, 916, -1561, -1561,
14134 -1561, -1561, 671, 635, -1561, 679, 178, -1561, -1561, -1561,
14135 -1561, -1561, -1561, -1561, -1561, -1561, -1561, 686, -1561, -1561,
14136 -1561, -1561, 683, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14137 219, -1561, -1561, -1561, -1561, -1561, -1561, 828, 701, -1561,
14138 808, -1561, 920, 66, 747, -1561, 924, 93, 928, -1561,
14139 74, 56, 120, 129, 938, 586, 1447, 95, -1561, -1561,
14140 644, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14141 472, 398, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14142 -1561, -1561, -1561, -1561, 176, -1561, -1561, -1561, -1561, 158,
14143 -1561, -1561, -1561, -1561, 75, -1561, -1561, -1561, -1561, 866,
14144 -1561, -1561, -1561, -1561, -1561, -1561, 587, -1561, -1561, -1561,
14145 -1561, 790, -1561, -1561, -1561, -1561, 731, -1561, -1561, -1561,
14146 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14147 -1561, -1561, -1561, 745, 767, -1561, -1561, -1561, 957, 66,
14148 66, -1561, -1561, 781, 472, 586, 586, 586, 391, 472,
14149 87, 123, 81, 373, -1561, -1561, -1561, 24, -1561, -1561,
14150 -1561, -1561, 95, -1561, -1561, -1561, -1561, 963, -1561, -1561,
14151 970, -1561, 974, 982, -1561, 472, 770, 789, 789, 985,
14152 -1561, 988, -1561, 72, 1031, -1561, 446, 123, -1561, -1561,
14153 -1561, 1045, -1561, 1058, -1561, 81, 81, 778, 826, -1561,
14154 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14155 -1561, -1561, -1561, 937, -1561, -1561, -1561, -1561, -1561, -1561,
14156 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1063,
14157 877, 342, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 472,
14158 -1561, 805, 799, -1561, 812, -1561, -1561, -1561, -1561, -1561,
14159 -1561, -1561, 827, 834, 123, -1561, -1561, -1561, -1561, 81,
14160 81, -1561, 842, 66, 66, 66, 66, 66, 66, 66,
14161 66, 66, 66, 66, 394, -1561, -1561, -1561, -1561, -1561,
14162 -1561, -1561, 859, 66, -1561, 472, 586, -1561, -1561, -1561,
14163 -1561, 865, 867, 880, 680, -1561, -1561, -1561, 869, -1561,
14164 -1561, -1561, -1561, -1561, 895, 895, 895, 895, 895, 895,
14165 895, 895, 895, 895, 895, 66, -1561, -1561, -1561, 1077,
14166 472, 873, -1561, -1561, 923, 903, 842, 95, 842, 842,
14167 472, 842, -1561, 1072, 895, 918, 918, 918, 895, 918,
14168 -1561, 1084, 918, 895, 895, 935, -1561, -1561, 943, 695,
14169 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 949,
14170 -1561, -1561, 1087, -1561, -1561, 952, -1561, -1561, 1094, -1561,
14171 -1561, 954, 842, -1561, -1561, 1096, 122, 918, 1225, -1561,
14172 -1561, -1561, -1561, 1098, -1561, -1561, -1561, -1561, 1108, -1561,
14173 -1561, 1115, -1561, -1561, 918, 1128, -1561, -1561, 173, -1561,
14174 -1561, -1561, 1131, -1561, -1561, 918, 918, 32, -1561, -1561,
14175 1135, -1561, 973, 961, 976, -1561, 979, -1561, 996, -1561,
14176 -1561, -1561, -1561, -1561, 1130, 997, -1561, -1561, -1561, -1561,
14177 -1561, -1561, -1561, 1002, -1561, -1561, -1561, 815, -1561, 1005,
14178 -1561, -1561, 1139, -1561, -1561, 81, 81, 1010, 81, 81,
14179 81, 1012, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14180 -1561, 1165, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14181 1177, -1561, -1561, 1180, -1561, -1561, -1561, -1561, -1561, -1561,
14182 -1561, 1197, 1512, 1158, -1561, 1199, 1168, -1561, 1205, 1217,
14183 1141, 1219, -1561, 1223, 1101, -1561, 1229, 95, -1561, 1246,
14184 1049, -1561, -1561, -1561, -1561, 1059, 1066, 417, -1561, 1070,
14185 -1561, 1073, 1078, 1081, 1080, -1561, 1091, -1561, -1561, -1561,
14186 -1561, -1561, -1561, -1561, -1561, -1561, 1244, 1248, 579, -1561,
14187 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14188 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14189 -1561, -1561, -1561, -1561, 1102, -1561, 41, -1561, -1561, -1561,
14190 -1561, -1561, -1561, 125, 68, -1561, -1561, -1561, -1561, -1561,
14191 523, -1561, -1561, -1561, -1561, -1561, 125, 86, -1561, -1561,
14192 -1561, -1561, -1561, 464, -1561, -1561, -1561, -1561, -1561, 137,
14193 -1561, 459, -1561, -1561, -1561, -1561, -1561, 1104, -1561, -1561,
14194 -1561, -1561, 102, -1561, 1109, -1561, -1561, -1561, -1561, -1561,
14195 1164, -1561, -1561, -1561, -1561, -1561, 391, -1561, 87, -1561,
14196 1120, 1119, 1119, -1561, 95, 87, 95, -1561, 1254, -1561,
14197 298, 1126, -1561, -1561, 80, -1561, -1561, -1561, -1561, 1133,
14198 140, 1137, -1561, 494, -1561, -1561, 1146, 1256, -1561, 125,
14199 -1561, -1561, 1148, 48, 1155, 50, -1561, 1278, 1161, 1166,
14200 53, 1171, -1561, 1173, 1181, 540, -1561, -1561, -1561, -1561,
14201 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14202 -1561, -1561, -1561, 1261, 95, 29, -1561, 1183, -1561, 1189,
14203 -1561, -1561, 1137, 1263, 5, -1561, -1561, 1191, -1561, 1345,
14204 1206, -1561, -1561, 1332, 1209, 58, 95, 11, -1561, -1561,
14205 1213, -1561, 697, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14206 -1561, -1561, -1561, -1561, 62, -1561, -1561, 1221, -1561, -1561,
14207 -1561, -1561, -1561, -1561, 95, -1561, -1561, -1561, -1561, -1561,
14208 -1561, -1561, 1226, 80, -1561, -1561, 139, -1561, 139, 66,
14209 -1561, -1561, -1561, -1561, 1144, -1561, -1561, -1561, -1561, -1561,
14210 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14211 -1561, -1561, -1561, 472, 95, -1561, -1561, -1561, 1265, -1561,
14212 -1561, 95, -1561, -1561, 794, 1414, 1267, -1561, 755, -1561,
14213 -1561, -1561, 472, 137, -1561, 150, 151, 151, 151, 151,
14214 1137, 1230, 528, -1561, -1561, -1561, 331, -1561, -1561, 1232,
14215 -1561, 635, 779, -1561, 1273, -1561, -1561, 1237, -1561, -1561,
14216 -1561, -1561, 94, -1561, -1561, 597, -1561, -1561, -1561, -1561,
14217 -1561, 1275, 66, 1289, -1561, 1250, -1561, 143, 144, 139,
14218 139, 139, 139, 139, 139, 144, 586, 1252, 472, -1561,
14219 1269, 539, -1561, -1561, -1561, -1561, -1561, -1561, 458, -1561,
14220 -1561, -1561, 1245, 150, 47, -1561, -1561, -1561, 472, 1126,
14221 -1561, -1561, 76, 1277, -1561, -1561, 65, 1292, -1561, -1561,
14222 1302, -1561, -1561, 1306, -1561, -1561, 1309, -1561, -1561, 1325,
14223 -1561, -1561, -1561, 1342, 1333, 1350, 1351, -1561, -1561, -1561,
14224 -1561, 1291, 1296, 66, 880, 1299, -1561, 1354, 1047, -1561,
14225 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14226 -1561, -1561, -1561, 1301, 634, -1561, -1561, -1561, -1561, -1561,
14227 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1305,
14228 1432, 1369, 1314, 38, -1561, -1561, 1319, 1374, -1561, -1561,
14229 -1561, -1561, -1561, -1561, 1321, -1561, -1561, -1561, -1561, -1561,
14230 -1561, 1327, -1561, -1561, 1329, 1331, -1561, -1561, 152, -1561,
14231 1397, -1561, 1335, -1561, 1396, 472, 1661, -1561, 1452, -1561,
14232 -1561, -1561, 1453, -1561, -1561, -1561, 1454, -1561, -1561, -1561,
14233 1455, -1561, 1456, -1561, -1561, -1561, -1561, -1561, -1561, 103,
14234 -1561, -1561, 1337, -1561, 1531, 1458, 1498, 1460, -1561, -15,
14235 -1561, -1561, -1561, 455, -1561, -1561, -1561, -1561, -1561, 472,
14236 1462, -1561, 443, -1561, -1561, -1561, -1561, 1339, 1592, -1561,
14237 1341, 268, 125, 95, 207, -1561, -1561, -1561, -1561, -1561,
14238 -1561, 80, 1250, 687, -1561, -1561, -1561, -1561, 373, -1561,
14239 578, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 900,
14240 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14241 -40, 1346, -1561, -1561, 1465, 403, -1561, -1561, -1561, -1561,
14242 1467, 1468, 475, -1561, -1561, -1561, -1561, -1561, 951, -1561,
14243 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 870,
14244 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14245 28, -1561, -1561, -1561, -1561, -1561, 400, -1561, -1561, -1561,
14246 -1561, -1561, -1561, -1561, -1561, -1561, 95, -1561, 1469, 1470,
14247 -1561, -1561, 145, 145, -1561, -1561, 150, 150, -1561, -1561,
14248 -1561, -1561, -1561, 1471, -1561, -1561, 472, -1561, -1561, 544,
14249 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561,
14250 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1348, -1561,
14251 -1561, -1561, -1561, 1365, -1561, -1561, 1367, -1561, -1561, 139,
14252 66, 1472, -1561, -1561, 1474, 373, 373, 373, 1476, 1477,
14253 1477, 1476, -1561, 162, -1561, -1561, -1561, 524, 1372, -1561,
14254 -1561, 1609, -1561, 1607, -1561, 1378, 1478, 1480, 1383, 87,
14255 144, 144, 635, -1561, 1508, 1385, -1561, 1672, 1388, -1561,
14256 771, 1485, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 145,
14257 1486, -1561, -1561, 150, -1561, -1561, 1390, 1520, 1489, -1561,
14258 69, 1490, -1561, -1561, 876, 1392, -1561, -1561, -1561, -1561,
14259 -1561, -1561, 1493, 1494, 81, -1561, -1561, -1561, 1394, 373,
14260 1399, -1561, 1691, -1561, 1403, 1566, 1405, -1561, -1561, 1407,
14261 -1561, 1409, 1411, 150, 150, -1561, 765, -1561, -1561, -1561,
14262 -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1413, -1561, 371,
14263 -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1663, 1497, -1561,
14264 189, -1561, -1561, -1561, -1561, 1415, -1561, 1499, -1561, -1561,
14265 1501, -1561, -1561, 1502, -1561, 1504, 1673, -1561, -1561, 150,
14266 -1561, -1561, -1561, -1561, -1561, 1505, -1561, 1506, 1542, -1561,
14267 -1561, -1561, -1561, 640, -1561, -1561, -1561, -1561, 1417, -1561,
14268 -1561, -1561, 1507, 655, -1561, -1561, -1561, 1705, 1419, -1561,
14269 1572, 1511, -1561, 1569, -1561, -1561, -1561, -1561, -1561, -1561,
14270 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 90,
14271 -1561, -1561, -1561, 1513, -1561, -1561, 150, -1561, -1561, 1421,
14272 137, 146, -1561, 1423, 1100, -1561, -1561, -1561, -1561, -1561,
14273 -1561, -1561, -1561, -1561, -1561, 1425, -1561, 148, 1515, 148,
14274 82, -1561, -1561, -1561, -1561, -1561, -1561, 525, 1501, -1561,
14275 -1561, -1561, -1561, -1561, 1516, -1561, 128, -1561, -1561, 1518,
14276 -1561, -1561, -1561, 1519, -1561, -1561, -1561, -1561, 1471, 1427,
14277 237, -1561, -1561, -1561, -1561, 472, 386, -1561, -1561, -1561,
14278 -1561, -1561, -1561, 1521, 1429, 1431, 1433, 1522, 1523, -1561,
14279 1525, 668, -1561, -1561, -1561, -1561, -1561, 597, 1435, -1561,
14280 -1561, 1437, 52, -1561, -1561, -1561, -1561, 1625, -1561, -1561,
14281 698, 1527, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1528,
14282 -1561, -1561, 1529, -1561, 1532, 344, -1561, -1561, -1561, 1530,
14283 1533, -1561, 71, 77, 1439, -1561, 1552, -1561, -1561, 1528,
14284 -1561, -1561, 1650, 1534, -1561, -1561, 126, -1561, -1561, -1561,
14285 -1561, -1561, 379, -1561, 1523, -1561, -1561, 368, -1561, -1561,
14286 -1561, -1561, 1501, -1561, 1535, 639, -1561, -1561, -1561, -1561,
14287 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 706, -1561,
14288 -1561, -1561, -1561, -1561, -1561, 137, -1561, -1561, 1536, -1561,
14289 1717, -1561, 1441, -1561, 81, 81, -1561, 1075, 1444, -1561,
14290 -1561, -1561, -1561, -1561, -1561, -1561, -1561, 969, -1561, -1561,
14291 -1561, -1561, 433, -1561, -1561, -1561, 1578, -1561, -1561, 1539,
14292 -1561, 149, 149, -1561, -1561, 373, 148, 1501, -1561, -1561,
14293 -1561, -1561, 1541, -1561, -1561, 1543, -1561, -1561, 472, 472,
14294 1547, 112, -1561, -1561, -1561, -1561, 1548, 1550, -1561, 137,
14295 -1561, -1561, -1561, -1561, 1553, 1556, -1561, 784, 1446, -1561,
14296 -1561, -1561, -1561, -1561, 1448, -1561, 373, 145, -1561, -1561,
14297 -1561, -1561, 1557, -1561, -1561, -1561, 1450, 472, 472, -1561,
14298 -1561, -1561, -1561, -1561, -1561, 114, -1561, -1561, 1561, 116,
14299 -1561, 1562, 1563, -1561, -1561, -1561, -1561, 118, 373, -1561,
14300 -1561, -1561, 1564, -1561, -1561, -1561, -1561, 1565, 1567, 874,
14301 -1561, -1561, -1561, -1561, 537, -1561, -1561, 1570, -1561, -1561,
14302 -1561, -1561, -1561, 1571, -1561, 804, -1561, -1561, -1561, -1561,
14303 -1561, 1573, -1561, -1561, -1561, -1561, -1561, -1561
14309 const unsigned short int
14312 0, 0, 0, 0, 1, 1238, 0, 0, 641, 11,
14313 642, 640, 0, 0, 0, 0, 0, 635, 0, 982,
14314 0, 981, 0, 0, 0, 0, 634, 636, 1239, 0,
14315 0, 984, 983, 1240, 0, 0, 0, 2, 0, 0,
14316 980, 0, 0, 0, 4, 0, 231, 229, 230, 644,
14317 300, 643, 0, 1048, 0, 12, 0, 492, 0, 0,
14318 0, 0, 1042, 1049, 13, 0, 0, 491, 493, 0,
14319 3, 9, 8, 6, 7, 5, 10, 306, 0, 0,
14320 228, 232, 233, 234, 0, 110, 0, 0, 0, 1029,
14321 1154, 0, 305, 313, 310, 311, 316, 307, 308, 312,
14322 309, 317, 314, 318, 315, 0, 0, 0, 490, 0,
14323 189, 202, 0, 497, 0, 1031, 0, 0, 0, 0,
14324 0, 0, 0, 0, 0, 0, 0, 478, 479, 480,
14325 481, 482, 483, 484, 485, 486, 0, 754, 757, 755,
14326 756, 750, 752, 753, 751, 0, 0, 0, 109, 111,
14327 0, 275, 500, 0, 0, 1156, 0, 0, 0, 0,
14328 990, 147, 148, 149, 0, 248, 249, 250, 0, 0,
14329 0, 947, 940, 0, 0, 0, 72, 71, 477, 749,
14330 0, 758, 0, 191, 0, 0, 0, 0, 1030, 1033,
14331 1034, 1032, 366, 1155, 1160, 1159, 1158, 1157, 0, 74,
14332 0, 0, 146, 247, 0, 802, 0, 1089, 0, 0,
14333 1210, 0, 0, 0, 190, 193, 194, 192, 195, 0,
14334 0, 277, 0, 502, 1229, 0, 0, 0, 0, 0,
14335 0, 0, 1122, 1123, 1124, 1125, 1126, 0, 1127, 942,
14336 283, 1121, 0, 87, 92, 0, 0, 276, 279, 280,
14337 278, 281, 501, 504, 505, 503, 506, 0, 1241, 368,
14338 63, 73, 0, 108, 354, 426, 1044, 611, 727, 813,
14339 0, 941, 946, 943, 945, 944, 823, 0, 0, 88,
14340 0, 1082, 0, 0, 0, 1231, 0, 0, 0, 991,
14341 0, 0, 0, 0, 0, 0, 0, 0, 86, 735,
14342 0, 1081, 1087, 1086, 1084, 1083, 1085, 1088, 76, 85,
14343 0, 0, 1230, 1232, 1236, 1234, 1233, 1235, 1237, 367,
14344 372, 371, 370, 369, 0, 62, 66, 65, 64, 0,
14345 425, 428, 429, 427, 0, 1043, 1046, 1047, 1045, 0,
14346 610, 614, 613, 612, 618, 619, 0, 726, 730, 729,
14347 728, 0, 812, 816, 815, 814, 0, 1136, 1137, 1139,
14348 1138, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
14349 1149, 1150, 1151, 0, 0, 646, 499, 645, 0, 0,
14350 0, 204, 1011, 0, 0, 0, 0, 0, 0, 0,
14351 0, 0, 0, 0, 772, 1135, 508, 0, 734, 738,
14352 737, 736, 0, 638, 495, 639, 637, 0, 285, 299,
14353 0, 1013, 0, 0, 78, 0, 0, 162, 935, 0,
14354 68, 0, 423, 0, 0, 616, 0, 0, 621, 623,
14355 622, 0, 732, 0, 818, 0, 0, 0, 0, 284,
14356 292, 289, 290, 295, 286, 287, 291, 298, 288, 296,
14357 293, 297, 294, 0, 203, 217, 211, 216, 206, 208,
14358 205, 212, 213, 215, 214, 210, 209, 207, 218, 0,
14359 0, 0, 77, 82, 84, 79, 83, 81, 80, 0,
14360 50, 0, 0, 163, 0, 936, 67, 69, 422, 424,
14361 615, 617, 0, 0, 0, 731, 733, 817, 819, 0,
14362 0, 282, 0, 0, 0, 0, 0, 0, 0, 0,
14363 0, 0, 0, 0, 0, 1012, 1015, 1014, 1016, 97,
14364 96, 95, 0, 0, 1181, 0, 0, 161, 934, 1128,
14365 1129, 0, 0, 0, 0, 341, 378, 379, 0, 339,
14366 342, 343, 340, 988, 0, 0, 0, 0, 0, 0,
14367 0, 0, 0, 0, 0, 0, 94, 1190, 1168, 0,
14368 0, 0, 620, 375, 0, 0, 0, 0, 0, 0,
14369 0, 0, 377, 0, 0, 0, 0, 0, 0, 0,
14370 718, 0, 0, 0, 0, 0, 567, 546, 0, 0,
14371 1180, 1188, 1185, 1184, 1187, 1186, 1183, 1182, 1189, 0,
14372 1167, 989, 0, 220, 221, 320, 454, 455, 0, 464,
14373 465, 0, 0, 1131, 1132, 0, 0, 0, 0, 965,
14374 964, 967, 966, 0, 963, 962, 335, 336, 0, 345,
14375 346, 0, 350, 351, 0, 0, 459, 460, 0, 717,
14376 719, 720, 0, 722, 723, 0, 0, 0, 977, 976,
14377 0, 569, 0, 0, 0, 411, 0, 690, 0, 911,
14378 1096, 219, 222, 223, 0, 0, 321, 453, 456, 457,
14379 463, 770, 771, 0, 1130, 1133, 1134, 0, 302, 0,
14380 303, 304, 0, 243, 244, 0, 0, 0, 0, 0,
14381 0, 1018, 334, 337, 338, 344, 347, 348, 349, 352,
14382 353, 0, 449, 450, 458, 461, 462, 721, 724, 725,
14383 0, 760, 761, 0, 765, 766, 625, 969, 975, 978,
14384 979, 0, 0, 0, 1170, 0, 0, 402, 0, 0,
14385 0, 0, 660, 0, 0, 842, 0, 0, 319, 0,
14386 0, 301, 242, 245, 246, 0, 0, 0, 58, 0,
14387 59, 0, 0, 0, 0, 1019, 0, 448, 451, 452,
14388 759, 762, 763, 764, 767, 768, 0, 0, 0, 568,
14389 572, 582, 573, 571, 576, 579, 578, 577, 581, 580,
14390 575, 583, 570, 574, 1205, 1207, 1208, 1206, 1200, 1202,
14391 1201, 1203, 1209, 1204, 0, 431, 0, 1169, 1173, 1172,
14392 1174, 1171, 1175, 0, 0, 401, 406, 403, 405, 404,
14393 0, 410, 414, 412, 413, 415, 0, 0, 659, 664,
14394 662, 661, 663, 0, 689, 693, 692, 691, 694, 0,
14395 844, 0, 910, 914, 913, 912, 915, 0, 498, 769,
14396 48, 49, 0, 60, 0, 61, 274, 374, 496, 1017,
14397 0, 624, 626, 968, 970, 971, 0, 122, 0, 236,
14398 0, 0, 0, 986, 0, 0, 0, 1199, 0, 125,
14399 0, 394, 419, 418, 0, 1097, 408, 698, 697, 702,
14400 0, 0, 686, 0, 923, 922, 930, 0, 872, 0,
14401 507, 57, 0, 0, 0, 0, 466, 0, 0, 0,
14402 0, 0, 547, 0, 0, 0, 430, 436, 446, 444,
14403 438, 439, 437, 441, 432, 433, 445, 435, 443, 434,
14404 442, 447, 440, 0, 0, 0, 395, 0, 396, 0,
14405 198, 197, 0, 0, 0, 704, 703, 0, 705, 0,
14406 0, 152, 151, 0, 0, 0, 0, 0, 932, 931,
14407 0, 933, 0, 843, 852, 854, 848, 849, 850, 851,
14408 847, 846, 853, 845, 0, 921, 920, 925, 70, 121,
14409 123, 153, 235, 237, 0, 544, 545, 985, 987, 1050,
14410 1211, 1214, 0, 0, 467, 627, 0, 803, 0, 0,
14411 950, 1003, 1052, 1215, 0, 124, 140, 141, 133, 128,
14412 138, 126, 139, 130, 131, 127, 132, 134, 129, 136,
14413 135, 142, 137, 0, 0, 393, 196, 1099, 0, 407,
14414 409, 0, 701, 150, 0, 0, 0, 674, 0, 685,
14415 687, 688, 0, 0, 929, 0, 0, 0, 0, 0,
14416 0, 0, 0, 871, 873, 874, 0, 927, 926, 0,
14417 928, 565, 0, 44, 0, 43, 42, 0, 201, 200,
14418 469, 629, 0, 1162, 1161, 0, 805, 919, 918, 827,
14419 855, 0, 0, 0, 1217, 0, 113, 0, 0, 0,
14420 0, 0, 0, 0, 0, 0, 0, 0, 608, 1192,
14421 1197, 0, 1098, 1102, 1101, 1100, 1103, 1191, 1194, 186,
14422 187, 188, 0, 0, 0, 673, 676, 675, 605, 398,
14423 421, 420, 0, 0, 16, 15, 0, 0, 166, 165,
14424 0, 169, 168, 0, 172, 171, 0, 175, 174, 0,
14425 1153, 924, 566, 0, 0, 0, 0, 41, 45, 46,
14426 199, 0, 0, 0, 789, 0, 829, 0, 0, 949,
14427 955, 960, 954, 952, 953, 957, 958, 951, 956, 959,
14428 961, 1002, 1005, 0, 0, 1051, 1057, 1059, 1064, 1056,
14429 1054, 1055, 1061, 1058, 1062, 1053, 1060, 1063, 1065, 0,
14430 0, 0, 0, 0, 323, 324, 0, 0, 356, 357,
14431 417, 381, 416, 917, 0, 916, 560, 696, 695, 647,
14432 665, 0, 740, 774, 0, 0, 877, 876, 0, 995,
14433 0, 1222, 0, 609, 0, 39, 0, 1198, 0, 362,
14434 795, 1195, 0, 185, 679, 678, 0, 52, 1111, 606,
14435 0, 399, 0, 400, 14, 164, 167, 170, 173, 0,
14436 862, 863, 0, 564, 0, 0, 0, 0, 51, 0,
14437 468, 471, 470, 0, 628, 633, 631, 630, 632, 0,
14438 0, 790, 0, 804, 808, 807, 806, 0, 0, 857,
14439 0, 0, 0, 0, 0, 1004, 1008, 1009, 1006, 1010,
14440 1007, 0, 0, 0, 1216, 1220, 1219, 1218, 0, 75,
14441 0, 112, 114, 117, 119, 115, 116, 118, 120, 0,
14442 322, 325, 332, 326, 327, 328, 329, 330, 331, 333,
14443 0, 0, 358, 359, 0, 0, 559, 562, 561, 563,
14444 0, 0, 0, 739, 743, 742, 741, 744, 0, 773,
14445 781, 782, 778, 775, 776, 777, 780, 779, 783, 0,
14446 875, 886, 881, 878, 879, 880, 883, 882, 884, 885,
14447 0, 994, 998, 996, 997, 1117, 0, 1221, 1223, 1227,
14448 1224, 1226, 1225, 1228, 607, 38, 0, 1196, 0, 0,
14449 1193, 677, 0, 0, 604, 397, 0, 0, 861, 865,
14450 864, 810, 40, 1024, 47, 906, 36, 788, 712, 0,
14451 828, 838, 840, 834, 835, 836, 837, 833, 830, 832,
14452 839, 831, 841, 513, 856, 859, 858, 860, 0, 488,
14453 494, 1164, 1163, 0, 786, 948, 0, 938, 27, 0,
14454 0, 0, 26, 25, 0, 0, 0, 0, 0, 0,
14455 0, 0, 1070, 0, 355, 360, 361, 0, 0, 384,
14456 383, 0, 649, 0, 667, 0, 0, 144, 0, 0,
14457 0, 0, 90, 93, 0, 0, 364, 0, 0, 797,
14458 0, 0, 55, 551, 56, 54, 1114, 1115, 1113, 0,
14459 0, 178, 177, 0, 518, 517, 0, 0, 0, 1025,
14460 0, 0, 37, 714, 0, 0, 487, 489, 785, 787,
14461 937, 939, 0, 0, 0, 24, 784, 973, 0, 0,
14462 0, 239, 0, 747, 0, 0, 0, 793, 825, 0,
14463 1000, 0, 0, 0, 0, 1177, 0, 382, 391, 389,
14464 386, 387, 390, 388, 385, 392, 473, 0, 510, 0,
14465 666, 671, 669, 668, 670, 672, 1152, 0, 0, 145,
14466 0, 1116, 1118, 1120, 1119, 0, 18, 0, 523, 524,
14467 594, 592, 593, 0, 91, 0, 0, 363, 365, 0,
14468 796, 798, 538, 549, 53, 0, 176, 0, 0, 809,
14469 811, 1067, 1023, 0, 905, 908, 907, 35, 0, 227,
14470 225, 226, 0, 0, 512, 514, 515, 0, 0, 29,
14471 0, 0, 1212, 0, 972, 974, 106, 238, 240, 155,
14472 746, 748, 821, 792, 794, 824, 826, 999, 1001, 0,
14473 1069, 1071, 1072, 0, 181, 180, 0, 521, 520, 0,
14474 0, 0, 1105, 0, 0, 648, 657, 655, 650, 652,
14475 654, 653, 651, 656, 658, 0, 143, 0, 0, 0,
14476 0, 17, 22, 19, 21, 20, 23, 0, 528, 526,
14477 525, 527, 595, 596, 0, 89, 0, 1091, 1092, 0,
14478 262, 801, 800, 0, 540, 552, 1112, 516, 0, 0,
14479 0, 713, 716, 715, 224, 0, 0, 28, 32, 30,
14480 31, 33, 909, 0, 0, 0, 0, 0, 0, 179,
14481 0, 0, 1176, 1179, 1178, 1166, 1165, 0, 0, 889,
14482 888, 0, 0, 472, 476, 475, 474, 0, 509, 511,
14483 0, 102, 101, 99, 100, 380, 1038, 1036, 1037, 0,
14484 529, 530, 0, 591, 0, 0, 1095, 1093, 1094, 0,
14485 0, 799, 0, 0, 0, 1027, 0, 1066, 1068, 159,
14486 531, 555, 0, 0, 105, 107, 0, 154, 156, 157,
14487 820, 822, 0, 253, 0, 252, 254, 0, 1074, 1076,
14488 1075, 1077, 1078, 519, 0, 0, 887, 897, 899, 893,
14489 894, 895, 896, 892, 891, 898, 890, 900, 0, 1104,
14490 1108, 1109, 1110, 1106, 1107, 0, 902, 103, 0, 104,
14491 0, 1039, 0, 522, 0, 0, 1090, 0, 0, 264,
14492 265, 267, 268, 273, 266, 272, 271, 0, 539, 543,
14493 542, 541, 0, 550, 554, 553, 0, 1026, 1028, 0,
14494 160, 0, 0, 584, 1213, 0, 0, 259, 255, 257,
14495 256, 258, 0, 1079, 1080, 0, 791, 183, 0, 0,
14496 0, 0, 98, 1035, 1041, 1040, 0, 0, 681, 0,
14497 867, 263, 270, 269, 0, 0, 158, 0, 0, 533,
14498 535, 537, 536, 557, 0, 586, 0, 0, 600, 598,
14499 599, 260, 0, 261, 711, 1073, 0, 0, 0, 373,
14500 901, 904, 903, 745, 241, 0, 700, 699, 707, 0,
14501 376, 0, 1021, 532, 534, 556, 558, 0, 0, 602,
14502 601, 603, 0, 548, 251, 182, 184, 0, 0, 0,
14503 680, 683, 682, 684, 0, 709, 708, 0, 710, 866,
14504 869, 868, 870, 0, 1022, 0, 585, 590, 588, 589,
14505 587, 0, 597, 992, 993, 706, 1020, 34
14512 -1561, -1561, -1561, -1561, -1561, 911, -1561, -1238, -1561, -1561,
14513 -1561, 669, -1561, -1561, -1561, -1561, -1561, 365, -1561, -1013,
14514 -1561, -1561, -1561, -1561, 1150, 1107, -1561, -1561, -1196, -1561,
14515 389, -1561, -1561, -1561, 3, -1561, -1561, -1561, -1561, -261,
14516 1457, 1463, -210, 1639, -1561, -1561, -1561, 773, -1561, -1561,
14517 -1561, -1561, -1561, -1561, -1561, 182, -1561, -1561, -1561, -1561,
14518 1466, -17, -1561, -977, -1561, -1561, -1561, -1561, -1561, -1561,
14519 -1561, -246, -1561, 345, -1561, -1561, 444, -1561, -1561, -1561,
14520 -1561, -1561, -1229, -1561, -1228, -1561, -1227, -1561, -1224, -1561,
14521 -1561, -1561, -1336, -1561, -1561, -1561, -758, -1561, -1561, -1561,
14522 -1561, -1561, -1561, -864, -1561, -1561, -1561, -1561, -1561, -1561,
14523 -1561, -1561, -39, -1561, -1561, -1561, -1561, -1561, -1561, -1490,
14524 -1561, -1561, 1473, -1561, -1561, -1561, -1561, -1561, -1370, -1561,
14525 -1561, -13, -1561, -11, -1561, -1561, -1561, -1561, -1561, -1561,
14526 1479, -1561, 800, -19, 1028, -1561, 801, -1561, 516, -1561,
14527 -982, -1561, -1561, -1561, 914, -1561, -1561, -1561, -1561, 1481,
14528 -1161, -1561, -1561, -1561, -1561, -1561, 1594, -1561, -1561, -1561,
14529 1192, -1561, -14, -1561, -1561, -1561, -995, -1561, -1561, -681,
14530 -1561, -4, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 803,
14531 -1561, -1561, 1011, -1561, 1595, -1561, -1561, -1561, -1561, -1561,
14532 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -661, -1561, -1561,
14533 -1561, -1561, -1561, -1561, -907, -1561, -1561, -1561, -1561, -1561,
14534 -1561, 1147, 1802, -1561, -1561, -1561, -1561, -1561, -1561, -1027,
14535 -1561, -1561, -1561, -1561, -1561, 421, -1308, 279, 352, -1561,
14536 -1561, -1561, -1561, -1561, -1561, 78, -1328, -1561, -1561, -1561,
14537 -1561, 478, 467, -1561, -1314, -1561, -1354, -1561, -1561, -1561,
14538 -1561, -1561, -1561, -860, -1561, -1561, -1561, -1561, -1126, -1561,
14539 -1561, 354, -1561, -1561, -1561, -1561, -1561, -1019, -1561, -739,
14540 -1561, 1610, -1561, -288, -1561, -266, -1561, -241, -1561, -1561,
14541 -1561, -1561, -1561, 18, -1561, -347, 33, -32, -296, -1186,
14542 -1561, -1561, -1561, -1561, 700, -1561, -1561, 374, -1561, -1561,
14543 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 823, 964,
14544 21, -622, -1561, 20, -1561, 156, -1561, -1561, -1561, -1561,
14545 -1561, -1561, -1561, 1618, -1561, 134, -1561, -1561, -1561, -1561,
14546 -1561, 253, -1561, -1561, 212, -1561, 213, -1561, -1561, -1561,
14547 -1561, -1561, -1561, -1561, -1561, -1561, 711, 843, -1561, -1561,
14548 -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -1561, 1510,
14549 -1123, -1561, -1561, -1561, -1561, 1624, -1561, -1561, -1561, 489,
14550 -1561, -278, -1561, -1561, 435, -1561, -1561, -1561, -1561, -1561,
14551 436, -1561, -1561, -1223, -1561, -1561, -1561, -1561, -1561, -1561,
14552 -429, -1561, -1561, -1561, -1509, -1561, -1107, -1561, -1561, -1561,
14553 -1561, 839, 504, -939, -826, -874, -1561, -628, -1561, -1561,
14554 -1561, -905, -1561, 165, -1561, -1561, -1561, -1561, -1561, -1561,
14555 766, 1159, -1561, -1007, -1561, -1561, -1561, -272, -1561, -1561,
14556 -1561, -1561, 1145, -1561, -99, -1561, -1561, 716, -1561, -1561,
14557 -1561, -1561, 1003, -1561, -1561, -1561, -1561, -1561, 684, -1561,
14558 -1561, -1561, -1561, -1561, -1561, -1561, -167, -1561, -1561, 240,
14559 -1561, -1561, -276, 1637, -1561, -1561, -1561, -1561, -1561, 261,
14560 -1561, -1444, -1561, -1561, -1561, -1561, 1744, -1561, 1524, -1561,
14561 -1561, -1561, -1561, -856, -1561, -1561, -1560, -1561, -1177, -1561,
14562 -1561, -1561, -1561, -1561, -1060, -1561, -1561, -1561, -1561, -525,
14563 -1561, -1561, -1220, 574, -1561, -1561, -1561, -1561, -1561, 1514,
14564 -1561, -1561, -1561, 314, -1561, -1561, -1561, -1561, -1561, -1561,
14565 -956, -1561, -879, -1561, -1561, -1561, 1537, -1561, -1561, -1561,
14566 -1561, 792, -1561, -1561, -1561, -1561, -1561, -1561, -1561, -3,
14574 -1, 2, 44, 59, 7, 24, 15, 954, 1113, 1358,
14575 1545, 1166, 1421, 1276, 1492, 1588, 1748, 1067, 1481, 1213,
14576 1053, 907, 1054, 1055, 619, 620, 313, 1056, 1106, 1372,
14577 1461, 621, 749, 844, 232, 288, 327, 419, 770, 175,
14578 93, 94, 996, 248, 383, 413, 308, 183, 278, 1217,
14579 1553, 243, 1452, 414, 522, 1542, 1711, 1788, 1301, 1684,
14580 95, 68, 109, 998, 1182, 772, 893, 799, 923, 1343,
14581 1538, 97, 164, 820, 940, 773, 1503, 1685, 1589, 1819,
14582 315, 482, 956, 1117, 957, 1120, 958, 1123, 959, 1126,
14583 1240, 1470, 1435, 1613, 1780, 1876, 944, 1102, 72, 150,
14584 184, 807, 929, 909, 1057, 110, 303, 410, 535, 602,
14585 1398, 1582, 27, 46, 61, 774, 895, 1303, 1500, 1726,
14586 456, 682, 98, 168, 1611, 1754, 1827, 1872, 1558, 1730,
14587 1798, 1799, 1800, 1801, 622, 73, 185, 220, 304, 176,
14588 305, 407, 408, 47, 574, 679, 48, 78, 536, 665,
14589 999, 1186, 458, 623, 537, 459, 628, 460, 631, 99,
14590 1000, 1187, 1311, 1094, 1368, 1455, 194, 225, 287, 1704,
14591 624, 400, 1809, 447, 538, 1543, 1001, 1314, 1438, 727,
14592 927, 948, 1232, 592, 728, 814, 933, 593, 729, 1191,
14593 871, 1109, 331, 421, 233, 290, 724, 868, 461, 701,
14594 539, 608, 462, 635, 540, 611, 775, 910, 1060, 1141,
14595 1442, 1623, 81, 136, 1155, 1408, 57, 37, 58, 1409,
14596 402, 625, 112, 837, 374, 74, 186, 222, 666, 279,
14597 1444, 1635, 1269, 1485, 1241, 1473, 1436, 1616, 1361, 1547,
14598 1648, 1722, 1679, 1821, 1858, 1859, 1462, 1664, 1732, 776,
14599 777, 586, 1463, 1900, 1464, 1665, 1465, 1733, 1680, 1822,
14600 1864, 1002, 1194, 898, 1133, 517, 651, 721, 1743, 1865,
14601 1897, 1362, 1550, 1654, 1755, 1867, 1902, 884, 1230, 965,
14602 1214, 234, 292, 1474, 424, 1475, 344, 427, 648, 766,
14603 911, 1061, 1142, 49, 16, 543, 113, 902, 885, 1003,
14604 1320, 1527, 594, 731, 1004, 1321, 1445, 821, 1026, 1027,
14605 1226, 1802, 1885, 1912, 826, 945, 595, 733, 1199, 879,
14606 1888, 732, 937, 1803, 1917, 1759, 1264, 1483, 1578, 463,
14607 581, 464, 642, 235, 293, 349, 431, 281, 378, 1005,
14608 1201, 1658, 1304, 1504, 82, 145, 83, 465, 710, 466,
14609 713, 541, 673, 273, 1006, 1204, 1173, 1156, 1413, 912,
14610 1260, 1520, 1305, 1506, 1095, 1369, 1458, 1459, 1663, 100,
14611 913, 1066, 1145, 1245, 1476, 236, 294, 354, 433, 1507,
14612 1686, 147, 1306, 1509, 914, 1146, 1267, 596, 830, 887,
14613 915, 1147, 1270, 961, 1242, 1804, 1889, 1921, 834, 964,
14614 1007, 1205, 1521, 1698, 1712, 1841, 1860, 1480, 1278, 597,
14615 736, 1196, 1069, 967, 1861, 835, 1049, 1806, 950, 316,
14616 484, 1158, 1416, 101, 206, 237, 172, 1417, 917, 1071,
14617 626, 649, 767, 1181, 1498, 467, 650, 10, 20, 30,
14618 779, 900, 544, 401, 345, 1783, 1784, 1008, 1208, 1308,
14619 1511, 1162, 918, 1072, 1163, 306, 411, 469, 627, 756,
14620 1818, 1923, 1247, 1478, 1570, 1734, 75, 115, 153, 1544,
14621 1719, 1792, 31, 238, 291, 52, 780, 919, 1073, 1479,
14622 1669, 1313, 1512, 1612, 1762, 1835, 221, 282, 102, 1456,
14623 1659, 1729, 285, 809, 932, 1018, 1524, 1701, 1107, 1373,
14624 1469, 1211, 1448, 177, 239, 429, 430, 542, 615, 275,
14625 373, 1326, 963, 76, 116, 154, 1065, 1414, 1697, 483,
14626 477, 588, 725, 1439, 1619, 478, 559, 558, 1098, 1090,
14627 938, 1222, 928, 1218, 653, 794, 104, 782, 1280, 1683,
14628 783, 922, 1074, 1179, 1012, 1212, 191, 257, 286, 51,
14636 const unsigned short int
14639 11, 376, 899, 886, 342, 1144, 50, 951, 565, 17,
14640 21, 1050, 920, 63, 1110, 336, 355, 217, 1334, 1468,
14641 159, 8, 1265, 960, 1132, 1044, 343, 328, 50, 1391,
14642 735, 19, 404, 409, 1251, 1256, 9, 34, 1393, 1394,
14643 1395, 77, 71, 1396, 1399, 1466, 1379, 1401, 813, 41,
14644 42, 1360, 5, 250, 5, 255, 54, 5, 28, 1467,
14645 201, 96, 5, 28, 872, 1380, 5, 1010, 5, 33,
14646 5, 28, 1286, 5, 53, 5, 1154, 877, 1171, 33,
14647 84, 5, 266, 11, 11, 11, 33, 28, 1561, 1153,
14648 1045, 1170, 33, 1048, 1152, 1229, 1169, 5, 33, 5,
14649 28, 5, 229, 1651, 8, 8, 8, 405, 405, 1738,
14650 265, 827, 266, 155, 85, 434, 5, 85, 5, 111,
14651 5, 11, 5, 1227, 425, 33, 5, 420, 33, 5,
14652 1716, 85, 156, 157, 33, 869, 189, 169, 170, 1188,
14653 173, 5, 8, 5, 149, 33, 1206, 5, 5, 5,
14654 5, 195, 5, 5, 803, 33, 33, 171, 85, 28,
14655 1033, 444, 1143, 265, 208, 435, 1172, 215, 1176, 197,
14656 60, 198, 85, 1079, 1017, 686, 85, 874, 803, 1307,
14657 244, 200, 880, 260, 204, 1657, 494, 1296, 200, 196,
14658 926, 1785, 200, 1825, 350, 211, 889, 1, 935, 816,
14659 1295, 227, 1365, 249, 1189, 254, 877, 230, 1376, 1333,
14660 1345, 1207, 1687, 1352, 1652, 228, 3, 716, 1385, 1078,
14661 272, 829, 258, 1344, 1432, 12, 242, 1332, 1342, 1791,
14662 1233, 405, 405, 405, 405, 405, 405, 405, 405, 405,
14663 405, 405, 1653, 262, 1761, 4, 475, 829, 14, 1820,
14664 1450, 1660, 1020, 531, 260, 388, 391, 936, 949, 390,
14665 391, 1451, 283, 85, 690, 302, 392, 1513, 85, 314,
14666 1377, 436, 5, 1418, 717, 1424, 1637, 881, 1086, 124,
14667 11, 12, 1129, 13, 321, 1385, 1047, 267, 829, 1727,
14668 1021, 326, 428, 432, 377, 23, 1014, 85, 1346, 89,
14669 1347, 8, 323, 208, 268, 333, 124, 90, 389, 85,
14670 1831, 209, 1720, 1312, 1014, 375, 309, 1868, 22, 1228,
14671 224, 90, 322, 1031, 124, 384, 338, 269, 428, 1514,
14672 356, 1724, 1924, 1638, 12, 39, 499, 500, 875, 13,
14673 1721, 1631, 18, 969, 18, 972, 148, 18, 977, 216,
14674 334, 335, 1028, 1029, 1794, 1688, 1042, 1043, 192, 193,
14675 6, 399, 90, 1573, 1574, 1807, 1808, 180, 329, 330,
14676 50, 1812, 1813, 1482, 29, 158, 406, 406, 1811, 1815,
14677 487, 423, 489, 437, 1643, 491, 1591, 192, 319, 18,
14678 443, 45, 496, 455, 498, 428, 473, 403, 403, 415,
14679 532, 533, 274, 1397, 422, 1814, 1042, 1880, 1909, 1910,
14680 1573, 1919, 1925, 1926, 339, 340, 677, 426, 1810, 870,
14681 416, 417, 418, 346, 347, 1554, 1833, 740, 1231, 295,
14682 479, 883, 85, 1062, 939, 1440, 89, 1183, 1042, 1460,
14683 1573, 1419, 1710, 1857, 1112, 1116, 1350, 1351, 1639, 1709,
14684 209, 317, 516, 90, 1834, 1672, 987, 124, 90, 1795,
14685 1767, 85, 1076, 1533, 1449, 1539, 1637, 1660, 1532, 1769,
14686 1770, 1771, 385, 829, 1772, 1774, 85, 33, 1776, 924,
14687 803, 1255, 35, 60, 85, 12, 36, 90, 85, 685,
14688 85, 1871, 85, 85, 525, 38, 1420, 296, 386, 1077,
14689 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
14690 406, 1548, 1551, 1252, 1257, 1787, 1705, 1266, 1285, 1873,
14691 11, 403, 403, 403, 403, 403, 403, 403, 403, 403,
14692 403, 403, 1630, 1411, 1789, 50, 12, 1078, 12, 1899,
14693 560, 8, 591, 1930, 974, 1629, 39, 1724, 605, 85,
14694 1627, 1287, 11, 1901, 85, 1740, 557, 689, 801, 1826,
14695 1741, 561, 200, 1832, 640, 85, 40, 889, 1450, 1928,
14696 43, 555, 449, 8, 1519, 599, 1549, 1552, 474, 1451,
14697 124, 56, 1523, 1929, 50, 612, 745, 746, 587, 751,
14698 752, 753, 894, 28, 13, 892, 1844, 678, 930, 903,
14699 89, 1695, 1852, 1562, 889, 55, 693, 1035, 64, 124,
14700 982, 696, 984, 85, 699, 1845, 1021, 65, 705, 1261,
14701 12, 1853, 90, 1805, 523, 708, 524, 161, 85, 85,
14702 85, 108, 1432, 719, 85, 387, 124, 1764, 1639, 1388,
14703 124, 124, 1157, 1281, 1175, 1036, 1037, 1038, 1039, 983,
14704 1032, 90, 103, 983, 1575, 1484, 882, 162, 816, 856,
14705 89, 1075, 987, 1694, 163, 743, 90, 146, 85, 85,
14706 876, 857, 803, 1650, 90, 946, 858, 1219, 90, 829,
14707 90, 12, 90, 90, 758, 174, 1033, 1649, 1385, 888,
14708 178, 829, 859, 761, 179, 889, 764, 984, 1713, 1281,
14709 1717, 974, 1035, 200, 771, 838, 1077, 1058, 798, 924,
14710 85, 806, 812, 124, 819, 12, 825, 1075, 1089, 833,
14711 180, 492, 493, 1079, 85, 1076, 985, 190, 86, 85,
14712 409, 1849, 1894, 1195, 85, 860, 1195, 1111, 1896, 90,
14713 1036, 1037, 1038, 1039, 90, 87, 993, 1114, 983, 181,
14714 861, 862, 182, 986, 1446, 90, 1220, 199, 218, 987,
14715 1035, 889, 1077, 1714, 889, 1718, 988, 200, 989, 1115,
14716 379, 873, 202, 1040, 380, 1337, 25, 26, 124, 1079,
14717 990, 203, 124, 88, 878, 85, 268, 85, 392, 1432,
14718 566, 105, 991, 1271, 251, 1699, 256, 205, 1036, 1037,
14719 1038, 1039, 992, 90, 1099, 405, 983, 1515, 405, 1014,
14720 875, 405, 1837, 567, 1760, 1224, 124, 124, 212, 90,
14721 90, 946, 1014, 1041, 90, 863, 377, 12, 1758, 1100,
14722 1886, 993, 245, 568, 1773, 569, 207, 1225, 106, 107,
14723 864, 654, 1101, 655, 984, 165, 1282, 375, 1134, 1272,
14724 1135, 908, 1576, 210, 1136, 85, 307, 966, 90, 90,
14725 318, 1150, 219, 1167, 381, 1085, 1886, 865, 1040, 866,
14726 955, 226, 124, 1273, 983, 166, 829, 124, 89, 924,
14727 1830, 988, 167, 989, 656, 12, 778, 1869, 657, 570,
14728 800, 231, 1013, 808, 1828, 942, 822, 382, 240, 1892,
14729 90, 519, 1881, 1579, 1580, 241, 997, 117, 118, 931,
14730 261, 106, 107, 878, 90, 119, 85, 1581, 1041, 90,
14731 1385, 120, 658, 829, 90, 566, 1040, 520, 260, 277,
14732 659, 1786, 966, 521, 889, 124, 924, 1119, 1122, 1125,
14733 1128, 1562, 12, 377, 1563, 263, 1854, 121, 567, 816,
14734 1673, 1515, 1870, 1021, 1838, 1839, 264, 571, 12, 1840,
14735 85, 1076, 122, 1447, 375, 946, 276, 1882, 568, 502,
14736 569, 12, 1293, 280, 1562, 90, 1041, 1563, 289, 1620,
14737 284, 451, 200, 11, 468, 11, 11, 476, 1426, 1097,
14738 85, 12, 297, 1700, 1330, 1706, 298, 1621, 1077, 25,
14739 62, 1093, 12, 124, 8, 1422, 8, 8, 299, 1918,
14740 1425, 377, 269, 393, 1427, 1079, 310, 1385, 1059, 1064,
14741 829, 1068, 1070, 151, 570, 152, 394, 85, 1088, 1271,
14742 377, 180, 375, 916, 1075, 875, 1622, 1138, 66, 67,
14743 395, 85, 1076, 518, 123, 90, 966, 1108, 267, 390,
14744 391, 375, 962, 966, 1151, 946, 1168, 503, 69, 70,
14745 470, 12, 396, 1922, 124, 480, 504, 380, 1849, 11,
14746 1453, 505, 506, 501, 406, 412, 11, 406, 11, 11,
14747 406, 11, 603, 481, 606, 609, 526, 613, 1471, 507,
14748 8, 508, 571, 125, 527, 403, 1079, 8, 403, 8,
14749 8, 403, 8, 1215, 1428, 1161, 90, 528, 124, 1273,
14750 1472, 1854, 1192, 126, 1198, 1198, 1429, 1192, 662, 79,
14751 80, 1209, 529, 1215, 668, 1430, 91, 92, 671, 530,
14752 1075, 675, 680, 598, 509, 510, 534, 85, 1076, 1081,
14753 11, 1082, 1563, 1288, 511, 512, 1277, 1497, 1499, 1501,
14754 90, 1431, 685, 686, 556, 641, 12, 687, 187, 188,
14755 562, 8, 563, 1282, 572, 1294, 213, 214, 600, 1302,
14756 1118, 1121, 1124, 1127, 564, 1077, 1259, 1317, 246, 247,
14757 90, 513, 1085, 1546, 1324, 246, 252, 1331, 1341, 573,
14758 85, 1076, 1079, 1862, 1862, 1359, 880, 694, 601, 117,
14759 118, 296, 697, 616, 688, 700, 1271, 119, 85, 706,
14760 270, 271, 618, 120, 300, 301, 709, 90, 311, 312,
14761 689, 1596, 324, 325, 720, 1614, 1617, 1075, 1077, 647,
14762 1215, 90, 351, 352, 85, 1076, 1159, 652, 1177, 121,
14763 1412, 1415, 690, 1354, 660, 1079, 664, 1615, 1618, 670,
14764 1392, 397, 398, 1405, 122, 723, 744, 438, 439, 722,
14765 630, 633, 1272, 637, 453, 454, 644, 1848, 1410, 1849,
14766 726, 1661, 1077, 730, 1386, 759, 471, 472, 1085, 25,
14767 486, 1078, 25, 488, 762, 124, 1273, 765, 1081, 1079,
14768 734, 881, 738, 1662, 737, 781, 739, 685, 686, 802,
14769 741, 684, 687, 815, 747, 1850, 754, 828, 1385, 795,
14770 836, 829, 137, 138, 139, 140, 1423, 803, 703, 1080,
14771 141, 142, 143, 144, 1696, 25, 490, 90, 1617, 712,
14772 715, 901, 1081, 904, 1082, 816, 123, 829, 124, 25,
14773 495, 120, 629, 632, 839, 636, 1083, 1297, 643, 688,
14774 1618, 1063, 25, 497, 840, 1084, 124, 514, 515, 1318,
14775 970, 841, 973, 377, 842, 689, 1325, 978, 846, 1487,
14776 1348, 589, 590, 847, 1489, 1085, 848, 1491, 638, 639,
14777 90, 534, 661, 683, 375, 125, 849, 690, 534, 667,
14778 534, 674, 638, 692, 1086, 1592, 991, 867, 90, 890,
14779 702, 1215, 638, 695, 891, 126, 717, 1749, 1751, 638,
14780 698, 711, 714, 897, 875, 896, 11, 11, 966, 966,
14781 925, 1518, 638, 704, 90, 638, 707, 934, 1531, 638,
14782 718, 943, 1400, 638, 742, 1406, 1087, 8, 8, 1024,
14783 947, 1051, 921, 968, 1190, 1193, 1197, 1197, 1193, 1190,
14784 971, 855, 1068, 587, 974, 357, 975, 755, 358, 638,
14785 757, 976, 359, 360, 361, 362, 979, 363, 980, 364,
14786 365, 638, 760, 366, 638, 763, 981, 377, 1015, 691,
14787 604, 367, 607, 610, 1016, 614, 1022, 127, 128, 129,
14788 368, 768, 769, 796, 797, 389, 369, 1011, 375, 804,
14789 805, 1023, 370, 1025, 371, 130, 131, 132, 1034, 372,
14790 1626, 810, 811, 817, 818, 1046, 663, 823, 824, 1103,
14791 1052, 784, 669, 831, 832, 1130, 672, 1131, 1642, 676,
14792 681, 785, 1140, 854, 133, 134, 135, 786, 850, 851,
14793 1223, 787, 618, 853, 1180, 788, 1210, 1866, 905, 906,
14794 952, 953, 789, 1887, 790, 994, 995, 726, 1019, 1091,
14795 1092, 1104, 1105, 1216, 791, 792, 793, 638, 1137, 1148,
14796 1149, 1678, 1234, 575, 576, 577, 578, 579, 580, 582,
14797 583, 584, 585, 1164, 1165, 1249, 1250, 1235, 1898, 1887,
14798 1253, 1254, 1096, 1262, 1263, 1274, 1275, 1236, 1906, 1283,
14799 1284, 1237, 617, 1522, 1238, 966, 634, 966, 1290, 1291,
14800 1534, 645, 646, 1299, 1300, 1315, 1316, 377, 377, 1239,
14801 1931, 1322, 1323, 1328, 1329, 1339, 1340, 1244, 1139, 1356,
14802 1357, 1104, 1378, 1389, 1390, 1315, 1404, 1243, 375, 375,
14803 1433, 1434, 25, 1486, 1246, 1160, 1248, 1178, 1268, 545,
14804 546, 547, 548, 549, 550, 551, 552, 553, 554, 25,
14805 1488, 25, 1490, 1595, 1289, 1598, 1516, 1517, 1310, 1601,
14806 1355, 1604, 1529, 1530, 1606, 1288, 1608, 1540, 1541, 1556,
14807 1557, 1768, 1556, 1560, 1568, 1569, 1583, 1584, 1593, 1594,
14808 1739, 1364, 1633, 1593, 1597, 1846, 1847, 1593, 1600, 1593,
14809 1603, 1593, 1605, 1593, 1607, 1609, 1610, 1624, 1625, 1640,
14810 1641, 1670, 1671, 1676, 1677, 1691, 1692, 1702, 1703, 1707,
14811 1708, 1736, 1737, 1593, 1744, 1746, 1747, 146, 1750, 1765,
14812 1766, 1778, 1779, 1816, 1817, 1104, 1843, 1279, 1104, 1851,
14813 1742, 1893, 1742, 1895, 146, 1905, 1366, 1367, 1370, 1371,
14814 1374, 1375, 1381, 1382, 1383, 1384, 1298, 1387, 1403, 1437,
14815 1309, 1441, 1443, 1454, 1457, 1477, 1526, 1495, 1319, 1496,
14816 1502, 1505, 1528, 1536, 1537, 1327, 1555, 1559, 1338, 1349,
14817 1564, 1566, 377, 1571, 1572, 1577, 1363, 1587, 1590, 1599,
14818 1602, 1077, 1636, 1647, 966, 1433, 1660, 1655, 1656, 1668,
14819 1666, 1667, 1674, 375, 1675, 1385, 1682, 124, 1689, 966,
14820 1715, 1723, 1725, 1081, 1731, 1742, 1752, 1757, 377, 377,
14821 1763, 1104, 1790, 1622, 1793, 1796, 1556, 1797, 1823, 1824,
14822 1836, 1842, 1795, 1855, 1856, 1903, 1874, 748, 1875, 375,
14823 375, 1402, 1879, 1883, 1407, 1884, 377, 1021, 1890, 1745,
14824 1891, 1292, 1904, 1877, 1878, 1914, 843, 1736, 1565, 1932,
14825 1933, 253, 1934, 1775, 440, 1935, 1936, 375, 1937, 1753,
14826 441, 1221, 1628, 442, 1911, 1510, 1920, 1184, 1185, 750,
14827 445, 320, 377, 1927, 1915, 332, 377, 1203, 446, 457,
14828 114, 941, 1907, 1908, 1567, 1690, 845, 1644, 1494, 1645,
14829 1863, 1632, 341, 375, 1335, 1200, 1913, 375, 1916, 1030,
14830 1829, 348, 1728, 1781, 1782, 1336, 1174, 448, 353, 1508,
14831 1585, 1586, 1202, 1493, 1353, 852, 1009, 1756, 337, 1735,
14832 223, 450, 485, 1693, 1258, 0, 0, 0, 0, 0,
14833 0, 0, 0, 0, 452, 0, 0, 0, 0, 0,
14834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14840 0, 0, 1525, 0, 0, 0, 0, 0, 0, 1535,
14841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14849 0, 1634, 0, 0, 0, 0, 0, 0, 0, 0,
14850 0, 0, 0, 0, 0, 0, 0, 0, 0, 1646,
14851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14855 0, 0, 1681, 0, 0, 0, 0, 0, 0, 0,
14856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14873 3, 297, 862, 829, 292, 1065, 38, 886, 533, 12,
14874 13, 967, 868, 52, 1033, 291, 294, 184, 1204, 1373,
14875 119, 3, 1145, 887, 1051, 964, 292, 288, 60, 1267,
14876 658, 13, 379, 380, 1141, 1142, 3, 22, 1267, 1267,
14877 1267, 60, 59, 1267, 1267, 1373, 1242, 1267, 729, 34,
14878 35, 1212, 4, 220, 4, 222, 41, 4, 7, 1373,
14879 159, 78, 4, 7, 803, 1242, 4, 923, 4, 5,
14880 4, 7, 1179, 4, 39, 4, 1071, 816, 1073, 5,
14881 65, 4, 7, 86, 87, 88, 5, 7, 1458, 1071,
14882 964, 1073, 5, 967, 1071, 1108, 1073, 4, 5, 4,
14883 7, 4, 201, 1547, 86, 87, 88, 379, 380, 1669,
14884 5, 733, 7, 116, 90, 393, 4, 90, 4, 86,
14885 4, 124, 4, 76, 390, 5, 4, 388, 5, 4,
14886 1639, 90, 117, 118, 5, 94, 153, 122, 123, 1078,
14887 125, 4, 124, 4, 109, 5, 1085, 4, 4, 4,
14888 4, 154, 4, 4, 149, 5, 5, 124, 90, 7,
14889 149, 407, 68, 5, 127, 141, 1073, 184, 1073, 154,
14890 132, 156, 90, 145, 932, 73, 90, 109, 149, 1186,
14891 212, 116, 96, 78, 169, 1555, 427, 1182, 116, 154,
14892 871, 139, 116, 67, 293, 180, 236, 294, 879, 194,
14893 1182, 198, 1215, 220, 1078, 222, 945, 204, 105, 1204,
14894 1205, 1085, 122, 1208, 1550, 200, 117, 185, 233, 137,
14895 237, 236, 225, 1205, 264, 187, 211, 1204, 1205, 1719,
14896 1109, 503, 504, 505, 506, 507, 508, 509, 510, 511,
14897 512, 513, 1550, 228, 1688, 0, 413, 236, 294, 1739,
14898 168, 123, 933, 494, 78, 79, 184, 879, 886, 183,
14899 184, 179, 84, 90, 162, 282, 201, 105, 90, 286,
14900 167, 247, 4, 66, 242, 1282, 87, 191, 250, 238,
14901 283, 187, 1040, 245, 287, 233, 967, 182, 236, 1659,
14902 285, 288, 391, 392, 297, 294, 285, 90, 1205, 258,
14903 1205, 283, 287, 127, 199, 290, 238, 280, 150, 90,
14904 1754, 274, 1648, 1187, 285, 297, 283, 1826, 119, 272,
14905 293, 280, 287, 945, 238, 310, 291, 222, 427, 167,
14906 295, 203, 1892, 144, 187, 260, 435, 436, 270, 245,
14907 1648, 1527, 294, 295, 294, 295, 295, 294, 295, 184,
14908 294, 295, 294, 295, 1724, 265, 294, 295, 294, 295,
14909 294, 378, 280, 294, 295, 294, 295, 241, 294, 295,
14910 402, 294, 295, 1386, 294, 294, 379, 380, 1732, 1733,
14911 419, 294, 421, 402, 1545, 424, 1493, 294, 295, 294,
14912 407, 294, 431, 410, 433, 494, 413, 379, 380, 384,
14913 499, 500, 237, 1267, 389, 1733, 294, 295, 294, 295,
14914 294, 295, 294, 295, 294, 295, 294, 294, 1732, 294,
14915 385, 386, 387, 294, 295, 1452, 1762, 673, 1109, 210,
14916 415, 294, 90, 294, 294, 1314, 258, 294, 294, 294,
14917 294, 234, 294, 294, 294, 294, 294, 295, 259, 1635,
14918 274, 286, 469, 280, 1762, 1578, 219, 238, 280, 115,
14919 1698, 90, 91, 1445, 64, 1447, 87, 123, 1445, 1698,
14920 1698, 1698, 74, 236, 1698, 1698, 90, 5, 1698, 181,
14921 149, 1142, 118, 132, 90, 187, 294, 280, 90, 72,
14922 90, 1827, 90, 90, 479, 112, 289, 278, 100, 128,
14923 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
14924 513, 1450, 1451, 1141, 1142, 1711, 1623, 1145, 1179, 1827,
14925 523, 503, 504, 505, 506, 507, 508, 509, 510, 511,
14926 512, 513, 1527, 1272, 1711, 567, 187, 137, 187, 1867,
14927 525, 523, 559, 1897, 176, 1527, 260, 203, 567, 90,
14928 1527, 1179, 555, 1867, 90, 169, 523, 140, 725, 180,
14929 174, 526, 116, 195, 581, 90, 295, 236, 168, 1897,
14930 161, 177, 407, 555, 1438, 560, 1450, 1451, 413, 179,
14931 238, 294, 1438, 1897, 616, 570, 685, 686, 555, 688,
14932 689, 690, 858, 7, 245, 856, 1792, 616, 874, 865,
14933 258, 1620, 1798, 170, 236, 295, 623, 63, 295, 238,
14934 70, 628, 157, 90, 631, 1792, 285, 160, 635, 1144,
14935 187, 1798, 280, 1730, 282, 642, 284, 21, 90, 90,
14936 90, 295, 264, 650, 90, 237, 238, 1697, 259, 196,
14937 238, 238, 1071, 65, 1073, 101, 102, 103, 104, 109,
14938 946, 280, 78, 109, 1480, 111, 192, 51, 194, 80,
14939 258, 83, 219, 1619, 58, 682, 280, 294, 90, 90,
14940 147, 92, 149, 1547, 280, 181, 97, 138, 280, 236,
14941 280, 187, 280, 280, 701, 294, 149, 1547, 233, 230,
14942 295, 236, 113, 710, 295, 236, 713, 157, 1637, 65,
14943 1639, 176, 63, 116, 721, 737, 128, 983, 725, 181,
14944 90, 728, 729, 238, 731, 187, 733, 83, 1014, 736,
14945 241, 275, 276, 145, 90, 91, 186, 153, 108, 90,
14946 1077, 194, 1858, 1080, 90, 156, 1083, 1033, 1864, 280,
14947 101, 102, 103, 104, 280, 125, 291, 1035, 109, 295,
14948 171, 172, 294, 213, 279, 280, 217, 295, 184, 219,
14949 63, 236, 128, 1637, 236, 1639, 226, 116, 228, 1035,
14950 126, 803, 295, 229, 130, 1204, 294, 295, 238, 145,
14951 240, 295, 238, 163, 816, 90, 199, 90, 201, 264,
14952 110, 158, 252, 159, 220, 1621, 222, 295, 101, 102,
14953 103, 104, 262, 280, 10, 1077, 109, 283, 1080, 285,
14954 270, 1083, 106, 133, 1688, 1103, 238, 238, 85, 280,
14955 280, 181, 285, 279, 280, 246, 829, 187, 1688, 35,
14956 1849, 291, 266, 153, 1698, 155, 295, 1103, 205, 206,
14957 261, 146, 48, 148, 157, 21, 212, 829, 69, 215,
14958 71, 868, 1480, 295, 75, 90, 282, 889, 280, 280,
14959 286, 1071, 294, 1073, 220, 231, 1885, 288, 229, 290,
14960 887, 294, 238, 239, 109, 51, 236, 238, 258, 181,
14961 1754, 226, 58, 228, 189, 187, 721, 1826, 193, 209,
14962 725, 294, 924, 728, 1754, 880, 731, 253, 295, 1855,
14963 280, 24, 1841, 27, 28, 295, 923, 81, 82, 874,
14964 295, 205, 206, 945, 280, 89, 90, 41, 279, 280,
14965 233, 95, 227, 236, 280, 110, 229, 50, 78, 294,
14966 235, 233, 964, 56, 236, 238, 181, 1036, 1037, 1038,
14967 1039, 170, 187, 946, 173, 295, 142, 121, 133, 194,
14968 1578, 283, 1826, 285, 248, 249, 295, 277, 187, 1785,
14969 90, 91, 136, 93, 946, 181, 295, 1841, 153, 143,
14970 155, 187, 1182, 294, 170, 280, 279, 173, 295, 214,
14971 294, 407, 116, 986, 410, 988, 989, 413, 88, 1021,
14972 90, 187, 164, 1621, 1204, 1623, 295, 232, 128, 294,
14973 295, 1018, 187, 238, 986, 1281, 988, 989, 200, 1888,
14974 1288, 1014, 222, 223, 114, 145, 269, 233, 983, 986,
14975 236, 988, 989, 112, 209, 114, 295, 90, 1013, 159,
14976 1033, 241, 1014, 868, 83, 270, 271, 1054, 294, 295,
14977 295, 90, 91, 469, 218, 280, 1078, 1032, 182, 183,
14978 184, 1033, 887, 1085, 1071, 181, 1073, 120, 294, 295,
14979 86, 187, 295, 1889, 238, 295, 129, 130, 194, 1072,
14980 1366, 134, 135, 295, 1077, 294, 1079, 1080, 1081, 1082,
14981 1083, 1084, 566, 294, 568, 569, 281, 571, 1376, 152,
14982 1072, 154, 277, 267, 295, 1077, 145, 1079, 1080, 1081,
14983 1082, 1083, 1084, 1088, 204, 1072, 280, 295, 238, 239,
14984 1376, 142, 1079, 287, 1081, 1082, 216, 1084, 602, 294,
14985 295, 1086, 295, 1108, 608, 225, 294, 295, 612, 295,
14986 83, 615, 616, 559, 197, 198, 294, 90, 91, 188,
14987 1143, 190, 173, 243, 207, 208, 1163, 1425, 1426, 1427,
14988 280, 251, 72, 73, 295, 581, 187, 77, 294, 295,
14989 295, 1143, 295, 212, 295, 1182, 294, 295, 295, 1186,
14990 1036, 1037, 1038, 1039, 294, 128, 1143, 1194, 294, 295,
14991 280, 244, 231, 1449, 1201, 294, 295, 1204, 1205, 294,
14992 90, 91, 145, 1821, 1822, 1212, 96, 623, 295, 81,
14993 82, 278, 628, 131, 124, 631, 159, 89, 90, 635,
14994 294, 295, 294, 95, 294, 295, 642, 280, 294, 295,
14995 140, 1499, 294, 295, 650, 1513, 1514, 83, 128, 294,
14996 1215, 280, 294, 295, 90, 91, 1071, 294, 1073, 121,
14997 1272, 1273, 162, 1208, 295, 145, 294, 1513, 1514, 295,
14998 1267, 294, 295, 1270, 136, 294, 682, 294, 295, 286,
14999 576, 577, 215, 579, 294, 295, 582, 192, 1271, 194,
15000 294, 1559, 128, 294, 1259, 701, 294, 295, 231, 294,
15001 295, 137, 294, 295, 710, 238, 239, 713, 188, 145,
15002 294, 191, 295, 1559, 164, 721, 294, 72, 73, 725,
15003 295, 617, 77, 729, 294, 230, 294, 733, 233, 151,
15004 736, 236, 36, 37, 38, 39, 1281, 149, 634, 175,
15005 44, 45, 46, 47, 1620, 294, 295, 280, 1616, 645,
15006 646, 864, 188, 866, 190, 194, 218, 236, 238, 294,
15007 295, 95, 576, 577, 295, 579, 202, 1182, 582, 124,
15008 1616, 986, 294, 295, 295, 211, 238, 294, 295, 1194,
15009 893, 295, 895, 1366, 294, 140, 1201, 900, 295, 1408,
15010 1205, 294, 295, 295, 1413, 231, 295, 1416, 294, 295,
15011 280, 294, 295, 617, 1366, 267, 295, 162, 294, 295,
15012 294, 295, 294, 295, 250, 1494, 252, 295, 280, 295,
15013 634, 1386, 294, 295, 295, 287, 242, 1685, 1686, 294,
15014 295, 645, 646, 294, 270, 295, 1419, 1420, 1450, 1451,
15015 294, 1438, 294, 295, 280, 294, 295, 294, 1445, 294,
15016 295, 294, 1267, 294, 295, 1270, 292, 1419, 1420, 107,
15017 294, 974, 868, 295, 1079, 1080, 1081, 1082, 1083, 1084,
15018 295, 767, 1419, 1420, 176, 8, 295, 691, 11, 294,
15019 295, 295, 15, 16, 17, 18, 295, 20, 295, 22,
15020 23, 294, 295, 26, 294, 295, 295, 1480, 295, 254,
15021 566, 34, 568, 569, 295, 571, 295, 12, 13, 14,
15022 43, 294, 295, 294, 295, 150, 49, 923, 1480, 294,
15023 295, 295, 55, 294, 57, 30, 31, 32, 295, 62,
15024 1527, 294, 295, 294, 295, 294, 602, 294, 295, 105,
15025 294, 9, 608, 294, 295, 295, 612, 295, 1545, 615,
15026 616, 19, 295, 767, 59, 60, 61, 25, 294, 295,
15027 295, 29, 294, 295, 294, 33, 294, 1825, 294, 295,
15028 294, 295, 40, 1849, 42, 294, 295, 294, 295, 294,
15029 295, 294, 295, 294, 52, 53, 54, 294, 295, 294,
15030 295, 1588, 295, 545, 546, 547, 548, 549, 550, 551,
15031 552, 553, 554, 294, 295, 294, 295, 295, 1866, 1885,
15032 294, 295, 1018, 294, 295, 294, 295, 295, 1876, 294,
15033 295, 295, 574, 1438, 295, 1637, 578, 1639, 294, 295,
15034 1445, 583, 584, 294, 295, 294, 295, 1620, 1621, 294,
15035 1898, 294, 295, 294, 295, 294, 295, 294, 1054, 294,
15036 295, 294, 295, 294, 295, 294, 295, 295, 1620, 1621,
15037 294, 295, 294, 295, 294, 1071, 295, 1073, 294, 504,
15038 505, 506, 507, 508, 509, 510, 511, 512, 513, 294,
15039 295, 294, 295, 1498, 295, 1500, 294, 295, 294, 1504,
15040 273, 1506, 294, 295, 1509, 243, 1511, 294, 295, 294,
15041 295, 1698, 294, 295, 294, 295, 294, 295, 294, 295,
15042 1675, 295, 1527, 294, 295, 1794, 1795, 294, 295, 294,
15043 295, 294, 295, 294, 295, 294, 295, 294, 295, 294,
15044 295, 294, 295, 294, 295, 294, 295, 294, 295, 294,
15045 295, 294, 295, 294, 295, 294, 295, 294, 295, 294,
15046 295, 294, 295, 294, 295, 294, 295, 1163, 294, 295,
15047 294, 295, 294, 295, 294, 295, 85, 295, 295, 295,
15048 295, 295, 221, 295, 256, 295, 1182, 295, 166, 294,
15049 1186, 294, 294, 294, 294, 294, 157, 295, 1194, 295,
15050 294, 294, 165, 295, 294, 1201, 268, 105, 1204, 1205,
15051 295, 295, 1785, 263, 295, 295, 1212, 294, 294, 98,
15052 224, 128, 295, 294, 1826, 294, 123, 295, 294, 257,
15053 295, 295, 295, 1785, 99, 233, 295, 238, 295, 1841,
15054 295, 295, 294, 188, 295, 294, 294, 294, 1821, 1822,
15055 295, 294, 294, 271, 295, 295, 294, 294, 178, 295,
15056 295, 295, 115, 255, 295, 1867, 295, 687, 295, 1821,
15057 1822, 1267, 295, 295, 1270, 295, 1849, 285, 295, 1684,
15058 294, 1182, 295, 1838, 1839, 294, 749, 294, 1469, 295,
15059 295, 222, 295, 1698, 407, 295, 295, 1849, 295, 1687,
15060 407, 1098, 1527, 407, 1885, 1431, 1889, 1077, 1077, 687,
15061 407, 287, 1885, 1897, 1888, 290, 1889, 1084, 407, 410,
15062 88, 880, 1877, 1878, 1473, 1616, 749, 1545, 1420, 1545,
15063 1822, 1527, 292, 1885, 1204, 1082, 1885, 1889, 1888, 945,
15064 1754, 293, 1659, 1701, 1701, 1204, 1073, 407, 294, 1430,
15065 1485, 1485, 1083, 1419, 1208, 766, 923, 1687, 291, 1668,
15066 186, 407, 418, 1619, 1142, -1, -1, -1, -1, -1,
15067 -1, -1, -1, -1, 407, -1, -1, -1, -1, -1,
15068 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15071 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15072 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15073 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15074 -1, -1, 1438, -1, -1, -1, -1, -1, -1, 1445,
15075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15077 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15078 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15080 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15081 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15082 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15083 -1, 1527, -1, -1, -1, -1, -1, -1, -1, -1,
15084 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1545,
15085 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15086 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15089 -1, -1, 1588, -1, -1, -1, -1, -1, -1, -1,
15090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15091 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15093 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15094 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15095 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15096 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15097 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15099 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
15105 const unsigned short int
15108 0, 294, 297, 117, 0, 4, 294, 300, 589, 592,
15109 733, 845, 187, 245, 294, 302, 590, 845, 294, 589,
15110 734, 845, 119, 294, 301, 294, 295, 408, 7, 294,
15111 735, 768, 846, 5, 847, 118, 294, 513, 112, 260,
15112 295, 847, 847, 161, 298, 294, 409, 439, 442, 589,
15113 593, 845, 771, 846, 847, 295, 294, 512, 514, 299,
15114 132, 410, 295, 408, 295, 160, 294, 295, 357, 294,
15115 295, 357, 394, 431, 521, 762, 809, 439, 443, 294,
15116 295, 508, 640, 642, 847, 90, 108, 125, 163, 258,
15117 280, 294, 295, 336, 337, 356, 357, 367, 418, 455,
15118 665, 719, 784, 809, 832, 158, 205, 206, 295, 358,
15119 401, 592, 518, 592, 518, 763, 810, 81, 82, 89,
15120 95, 121, 136, 218, 238, 267, 287, 12, 13, 14,
15121 30, 31, 32, 59, 60, 61, 509, 36, 37, 38,
15122 39, 44, 45, 46, 47, 641, 294, 677, 295, 846,
15123 395, 301, 301, 764, 811, 845, 847, 847, 294, 740,
15124 847, 21, 51, 58, 368, 21, 51, 58, 419, 847,
15125 847, 592, 722, 847, 294, 335, 435, 799, 295, 295,
15126 241, 295, 294, 343, 396, 432, 522, 294, 295, 357,
15127 809, 842, 294, 295, 462, 845, 846, 847, 847, 295,
15128 116, 740, 295, 295, 847, 295, 720, 295, 127, 274,
15129 295, 847, 85, 294, 295, 357, 719, 762, 809, 294,
15130 433, 782, 523, 782, 293, 463, 294, 330, 847, 740,
15131 330, 294, 330, 490, 577, 629, 671, 721, 769, 800,
15132 295, 295, 847, 347, 593, 266, 294, 295, 339, 357,
15133 762, 809, 295, 339, 357, 762, 809, 843, 845, 848,
15134 78, 295, 847, 295, 295, 5, 7, 182, 199, 222,
15135 294, 295, 357, 649, 719, 805, 295, 294, 344, 525,
15136 294, 633, 783, 84, 294, 788, 844, 464, 331, 295,
15137 491, 770, 578, 630, 672, 210, 278, 164, 295, 200,
15138 294, 295, 357, 402, 434, 436, 751, 809, 342, 592,
15139 269, 294, 295, 322, 357, 376, 715, 719, 809, 295,
15140 462, 845, 846, 847, 294, 295, 330, 332, 335, 294,
15141 295, 488, 490, 847, 294, 295, 768, 769, 846, 294,
15142 295, 577, 579, 581, 582, 740, 294, 295, 629, 631,
15143 740, 294, 295, 671, 673, 677, 846, 8, 11, 15,
15144 16, 17, 18, 20, 22, 23, 26, 34, 43, 49,
15145 55, 57, 62, 806, 520, 589, 594, 845, 634, 126,
15146 130, 220, 253, 340, 847, 74, 100, 237, 79, 150,
15147 183, 184, 201, 223, 295, 295, 295, 294, 295, 357,
15148 467, 739, 516, 589, 591, 733, 845, 437, 438, 591,
15149 403, 752, 294, 341, 349, 847, 846, 846, 846, 333,
15150 335, 489, 847, 294, 580, 581, 294, 583, 740, 801,
15151 802, 632, 740, 674, 677, 141, 247, 439, 294, 295,
15152 336, 337, 356, 357, 367, 418, 455, 469, 665, 719,
15153 784, 809, 832, 294, 295, 357, 416, 436, 448, 451,
15154 453, 494, 498, 625, 627, 643, 645, 731, 809, 753,
15155 86, 294, 295, 357, 719, 762, 809, 816, 821, 847,
15156 295, 294, 377, 815, 716, 815, 295, 408, 295, 408,
15157 295, 408, 275, 276, 583, 295, 408, 295, 408, 740,
15158 740, 295, 143, 120, 129, 134, 135, 152, 154, 197,
15159 198, 207, 208, 244, 294, 295, 357, 561, 809, 24,
15160 50, 56, 350, 282, 284, 847, 281, 295, 295, 295,
15161 295, 583, 740, 740, 294, 404, 444, 450, 470, 496,
15162 500, 647, 803, 591, 738, 738, 738, 738, 738, 738,
15163 738, 738, 738, 738, 738, 177, 295, 592, 823, 822,
15164 847, 846, 295, 295, 294, 805, 110, 133, 153, 155,
15165 209, 277, 295, 294, 440, 440, 440, 440, 440, 440,
15166 440, 626, 440, 440, 440, 440, 547, 592, 817, 294,
15167 295, 357, 479, 483, 598, 612, 683, 705, 809, 847,
15168 295, 295, 405, 444, 450, 439, 444, 450, 497, 444,
15169 450, 501, 847, 444, 450, 804, 131, 440, 294, 320,
15170 321, 327, 430, 449, 466, 517, 726, 754, 452, 726,
15171 754, 454, 726, 754, 440, 499, 726, 754, 294, 295,
15172 357, 809, 628, 726, 754, 440, 440, 294, 584, 727,
15173 732, 562, 294, 830, 146, 148, 189, 193, 227, 235,
15174 295, 295, 444, 450, 294, 445, 524, 295, 444, 450,
15175 295, 444, 450, 648, 295, 444, 450, 294, 439, 441,
15176 444, 450, 417, 726, 754, 72, 73, 77, 124, 140,
15177 162, 254, 295, 357, 809, 295, 357, 809, 295, 357,
15178 809, 495, 726, 754, 295, 357, 809, 295, 357, 809,
15179 644, 726, 754, 646, 726, 754, 185, 242, 295, 357,
15180 809, 563, 286, 294, 492, 818, 294, 475, 480, 484,
15181 294, 599, 617, 613, 294, 713, 706, 164, 295, 294,
15182 367, 295, 295, 357, 809, 740, 740, 294, 320, 328,
15183 466, 740, 740, 740, 294, 726, 755, 295, 357, 809,
15184 295, 357, 809, 295, 357, 809, 585, 728, 294, 295,
15185 334, 357, 361, 371, 411, 502, 545, 546, 719, 736,
15186 772, 809, 833, 836, 9, 19, 25, 29, 33, 40,
15187 42, 52, 53, 54, 831, 151, 294, 295, 357, 363,
15188 719, 762, 809, 149, 294, 295, 357, 397, 719, 789,
15189 294, 295, 357, 475, 481, 809, 194, 294, 295, 357,
15190 369, 603, 719, 294, 295, 357, 610, 617, 809, 236,
15191 684, 294, 295, 357, 694, 711, 809, 519, 593, 295,
15192 295, 295, 294, 321, 329, 517, 295, 295, 295, 295,
15193 294, 295, 727, 295, 726, 754, 80, 92, 97, 113,
15194 156, 171, 172, 246, 261, 288, 290, 295, 493, 94,
15195 294, 486, 575, 593, 109, 270, 147, 575, 593, 615,
15196 96, 191, 192, 294, 573, 594, 710, 685, 230, 236,
15197 295, 295, 335, 362, 581, 412, 295, 294, 559, 559,
15198 737, 548, 593, 581, 548, 294, 295, 317, 357, 399,
15199 503, 586, 655, 666, 680, 686, 719, 724, 748, 773,
15200 789, 809, 837, 364, 181, 294, 475, 476, 828, 398,
15201 768, 846, 790, 482, 294, 475, 617, 618, 826, 294,
15202 370, 488, 847, 294, 392, 611, 181, 294, 477, 713,
15203 714, 828, 294, 295, 303, 357, 378, 380, 382, 384,
15204 399, 689, 719, 808, 695, 575, 593, 709, 295, 295,
15205 548, 295, 295, 548, 176, 295, 295, 295, 548, 295,
15206 295, 295, 70, 109, 157, 186, 213, 219, 226, 228,
15207 240, 252, 262, 291, 294, 295, 338, 357, 359, 446,
15208 456, 472, 557, 595, 600, 635, 650, 696, 743, 748,
15209 789, 809, 840, 593, 285, 295, 295, 392, 791, 295,
15210 475, 285, 295, 295, 107, 294, 604, 605, 294, 295,
15211 615, 617, 594, 149, 295, 63, 101, 102, 103, 104,
15212 229, 279, 294, 295, 709, 711, 294, 475, 711, 712,
15213 826, 548, 294, 316, 318, 319, 323, 400, 768, 846,
15214 504, 587, 294, 313, 592, 812, 667, 313, 592, 708,
15215 592, 725, 749, 774, 838, 83, 91, 128, 137, 145,
15216 175, 188, 190, 202, 211, 231, 250, 292, 847, 594,
15217 825, 294, 295, 357, 459, 660, 809, 593, 824, 10,
15218 35, 48, 393, 105, 294, 295, 324, 794, 847, 487,
15219 573, 594, 294, 304, 579, 581, 294, 379, 631, 740,
15220 381, 631, 740, 383, 631, 740, 385, 631, 740, 392,
15221 295, 295, 525, 560, 69, 71, 75, 295, 357, 809,
15222 295, 505, 588, 68, 800, 668, 681, 687, 294, 295,
15223 338, 357, 359, 446, 472, 510, 653, 696, 717, 719,
15224 809, 592, 747, 750, 294, 295, 307, 338, 357, 359,
15225 446, 472, 510, 652, 653, 696, 717, 719, 809, 839,
15226 294, 729, 360, 294, 438, 442, 447, 457, 709, 711,
15227 313, 485, 592, 313, 558, 591, 707, 313, 592, 614,
15228 614, 636, 707, 485, 651, 697, 709, 711, 744, 846,
15229 294, 797, 841, 315, 576, 847, 294, 345, 829, 138,
15230 217, 343, 827, 295, 579, 581, 606, 76, 272, 315,
15231 574, 475, 478, 828, 295, 295, 295, 295, 295, 294,
15232 386, 530, 690, 295, 294, 669, 294, 758, 295, 294,
15233 295, 702, 713, 294, 295, 503, 702, 713, 837, 592,
15234 656, 805, 294, 295, 622, 666, 713, 682, 294, 528,
15235 688, 159, 215, 239, 294, 295, 309, 357, 704, 809,
15236 834, 65, 212, 294, 295, 503, 702, 713, 243, 295,
15237 294, 295, 307, 338, 357, 446, 472, 719, 809, 294,
15238 295, 354, 357, 413, 638, 658, 678, 729, 745, 809,
15239 294, 458, 711, 777, 473, 294, 295, 357, 719, 809,
15240 596, 601, 294, 295, 357, 719, 807, 809, 294, 295,
15241 338, 357, 359, 472, 595, 600, 652, 696, 809, 294,
15242 295, 357, 359, 365, 446, 472, 510, 717, 719, 809,
15243 294, 295, 472, 743, 846, 273, 294, 295, 305, 357,
15244 456, 534, 567, 809, 295, 315, 85, 295, 460, 661,
15245 295, 295, 325, 795, 295, 295, 105, 167, 295, 324,
15246 794, 221, 295, 256, 295, 233, 847, 295, 196, 294,
15247 295, 303, 357, 378, 380, 382, 384, 399, 406, 689,
15248 719, 808, 809, 166, 295, 357, 719, 809, 511, 515,
15249 845, 575, 593, 654, 813, 593, 718, 723, 66, 234,
15250 289, 308, 768, 846, 729, 677, 88, 114, 204, 216,
15251 225, 251, 264, 294, 295, 388, 532, 294, 474, 819,
15252 828, 294, 506, 294, 526, 602, 279, 93, 798, 64,
15253 168, 179, 348, 594, 294, 461, 785, 294, 662, 663,
15254 294, 326, 542, 548, 550, 552, 542, 550, 552, 796,
15255 387, 579, 581, 531, 579, 581, 670, 294, 759, 775,
15256 703, 314, 315, 623, 111, 529, 295, 408, 295, 408,
15257 295, 408, 310, 708, 547, 295, 295, 677, 730, 677,
15258 414, 677, 294, 372, 639, 294, 659, 675, 675, 679,
15259 372, 746, 778, 105, 167, 283, 294, 295, 357, 399,
15260 657, 698, 719, 789, 792, 809, 157, 597, 165, 294,
15261 295, 357, 359, 446, 719, 809, 295, 294, 366, 446,
15262 294, 295, 351, 471, 765, 306, 581, 535, 709, 711,
15263 568, 709, 711, 346, 525, 268, 294, 295, 424, 105,
15264 295, 424, 170, 173, 295, 326, 295, 531, 294, 295,
15265 760, 263, 295, 294, 295, 710, 713, 295, 624, 27,
15266 28, 41, 407, 294, 295, 680, 686, 294, 311, 374,
15267 294, 702, 740, 294, 295, 719, 677, 295, 719, 98,
15268 295, 719, 224, 295, 719, 295, 719, 295, 719, 294,
15269 295, 420, 779, 389, 579, 581, 533, 579, 581, 820,
15270 214, 232, 271, 507, 294, 295, 357, 359, 369, 446,
15271 472, 595, 603, 719, 809, 527, 295, 87, 144, 259,
15272 294, 295, 357, 456, 534, 567, 809, 294, 536, 559,
15273 711, 777, 388, 532, 569, 295, 294, 424, 637, 786,
15274 123, 579, 581, 664, 543, 551, 295, 295, 257, 776,
15275 294, 295, 666, 713, 295, 99, 294, 295, 357, 538,
15276 554, 809, 295, 835, 355, 373, 676, 122, 265, 295,
15277 533, 294, 295, 819, 826, 573, 594, 814, 699, 710,
15278 713, 793, 294, 295, 465, 702, 713, 294, 295, 595,
15279 294, 352, 700, 709, 711, 295, 700, 709, 711, 766,
15280 388, 532, 537, 295, 203, 294, 415, 424, 637, 787,
15281 425, 295, 544, 553, 761, 775, 294, 295, 792, 847,
15282 169, 174, 294, 564, 295, 719, 294, 295, 312, 677,
15283 295, 677, 294, 351, 421, 570, 765, 294, 559, 621,
15284 711, 777, 780, 295, 800, 294, 295, 303, 357, 378,
15285 380, 382, 384, 399, 689, 719, 808, 809, 294, 295,
15286 390, 640, 642, 741, 742, 139, 233, 324, 353, 794,
15287 294, 415, 767, 295, 424, 115, 295, 294, 426, 427,
15288 428, 429, 607, 619, 691, 702, 713, 294, 295, 468,
15289 550, 552, 294, 295, 542, 552, 294, 295, 756, 375,
15290 415, 539, 555, 178, 295, 67, 180, 422, 559, 621,
15291 711, 777, 195, 388, 532, 781, 295, 106, 248, 249,
15292 710, 701, 295, 295, 324, 794, 740, 740, 192, 194,
15293 230, 295, 324, 794, 142, 255, 295, 294, 540, 541,
15294 702, 710, 713, 541, 556, 565, 677, 571, 700, 709,
15295 711, 388, 423, 532, 295, 295, 391, 847, 847, 295,
15296 295, 709, 711, 295, 295, 608, 573, 594, 616, 692,
15297 295, 294, 826, 295, 564, 295, 564, 566, 677, 542,
15298 549, 550, 572, 593, 295, 295, 677, 847, 847, 294,
15299 295, 429, 609, 616, 294, 477, 619, 620, 828, 295,
15300 427, 693, 710, 757, 792, 294, 295, 468, 542, 550,
15301 552, 677, 295, 295, 295, 295, 295, 295
15307 const unsigned short int
15310 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
15311 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
15312 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
15313 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
15314 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
15315 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
15316 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
15317 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
15318 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
15319 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
15320 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
15321 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
15322 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
15323 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
15324 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
15325 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
15326 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
15327 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
15328 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
15329 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
15330 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
15331 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
15332 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
15333 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
15334 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
15335 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
15336 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
15337 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
15338 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
15339 545, 546, 547, 548, 549, 550
15344 const unsigned short int
15347 0, 296, 298, 297, 299, 299, 299, 299, 299, 299,
15348 299, 300, 301, 302, 303, 304, 304, 305, 306, 306,
15349 306, 306, 306, 306, 307, 308, 308, 310, 309, 311,
15350 311, 311, 311, 311, 312, 313, 314, 314, 315, 315,
15351 316, 317, 318, 318, 318, 318, 318, 319, 320, 321,
15352 322, 323, 325, 324, 326, 326, 326, 327, 328, 328,
15353 329, 329, 330, 331, 331, 331, 331, 332, 333, 333,
15354 334, 335, 335, 336, 337, 338, 340, 339, 341, 341,
15355 341, 341, 341, 341, 341, 342, 343, 344, 344, 345,
15356 346, 346, 347, 348, 349, 350, 350, 350, 351, 352,
15357 352, 352, 353, 353, 353, 354, 355, 355, 356, 357,
15358 358, 358, 359, 360, 360, 360, 360, 360, 360, 360,
15359 360, 361, 362, 362, 363, 364, 364, 364, 364, 364,
15360 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
15361 364, 364, 364, 365, 366, 366, 367, 368, 368, 368,
15362 369, 370, 370, 371, 372, 373, 373, 373, 374, 375,
15363 375, 376, 377, 377, 378, 379, 379, 380, 381, 381,
15364 382, 383, 383, 384, 385, 385, 386, 387, 387, 388,
15365 389, 389, 390, 391, 391, 392, 393, 393, 393, 395,
15366 394, 396, 396, 396, 396, 396, 397, 398, 398, 399,
15367 400, 400, 401, 402, 403, 403, 403, 403, 403, 403,
15368 403, 403, 403, 403, 403, 403, 403, 403, 403, 404,
15369 405, 405, 405, 405, 406, 407, 407, 407, 408, 409,
15370 409, 410, 410, 410, 410, 411, 412, 412, 413, 414,
15371 414, 415, 416, 417, 417, 417, 417, 418, 419, 419,
15372 419, 420, 421, 421, 421, 422, 422, 422, 422, 423,
15373 423, 423, 425, 424, 426, 426, 426, 426, 426, 426,
15374 426, 427, 428, 429, 430, 432, 431, 433, 433, 433,
15375 433, 433, 434, 435, 436, 437, 437, 437, 437, 437,
15376 437, 437, 437, 437, 437, 437, 437, 437, 437, 438,
15377 439, 440, 441, 441, 441, 442, 443, 443, 443, 443,
15378 443, 443, 443, 443, 443, 443, 443, 443, 443, 444,
15379 445, 445, 446, 447, 447, 447, 447, 447, 447, 447,
15380 447, 447, 447, 447, 448, 449, 449, 449, 449, 450,
15381 450, 450, 450, 450, 451, 452, 452, 452, 452, 453,
15382 454, 454, 454, 454, 455, 456, 457, 457, 458, 458,
15383 458, 458, 460, 459, 461, 461, 463, 462, 464, 464,
15384 464, 464, 464, 465, 466, 467, 468, 469, 470, 470,
15385 471, 473, 472, 474, 474, 474, 474, 474, 474, 474,
15386 474, 474, 474, 475, 476, 476, 476, 477, 478, 478,
15387 478, 479, 480, 480, 480, 480, 480, 481, 482, 482,
15388 483, 484, 484, 484, 484, 484, 485, 485, 486, 486,
15389 487, 487, 488, 489, 489, 490, 491, 491, 491, 491,
15390 492, 493, 493, 493, 493, 493, 493, 493, 493, 493,
15391 493, 493, 493, 493, 493, 493, 493, 493, 494, 495,
15392 495, 495, 495, 496, 497, 497, 497, 497, 498, 499,
15393 499, 499, 499, 500, 501, 501, 502, 504, 503, 505,
15394 505, 505, 506, 507, 507, 507, 507, 508, 509, 509,
15395 509, 509, 509, 509, 509, 509, 509, 510, 511, 511,
15396 512, 513, 514, 514, 515, 516, 517, 518, 519, 520,
15397 522, 521, 523, 523, 523, 523, 523, 524, 525, 526,
15398 527, 527, 528, 529, 529, 529, 530, 531, 531, 532,
15399 533, 533, 534, 535, 535, 536, 536, 536, 537, 537,
15400 537, 539, 538, 540, 540, 541, 541, 541, 543, 542,
15401 544, 544, 544, 544, 545, 546, 547, 548, 549, 551,
15402 550, 552, 553, 553, 553, 555, 554, 556, 556, 557,
15403 558, 558, 558, 558, 559, 560, 560, 562, 561, 563,
15404 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
15405 563, 563, 563, 563, 565, 564, 566, 566, 566, 566,
15406 566, 567, 568, 568, 569, 569, 569, 570, 571, 571,
15407 571, 572, 572, 572, 573, 574, 574, 575, 576, 576,
15408 577, 578, 578, 578, 578, 579, 580, 580, 581, 581,
15409 582, 583, 583, 583, 584, 585, 585, 587, 586, 588,
15410 588, 588, 588, 588, 589, 590, 590, 591, 591, 591,
15411 592, 592, 592, 593, 593, 594, 594, 596, 595, 597,
15412 597, 597, 597, 597, 597, 597, 597, 597, 597, 598,
15413 599, 599, 599, 599, 599, 601, 600, 602, 602, 602,
15414 602, 602, 602, 603, 604, 604, 604, 605, 606, 606,
15415 607, 608, 608, 608, 609, 610, 611, 611, 611, 612,
15416 613, 613, 613, 613, 613, 614, 614, 615, 615, 616,
15417 616, 617, 618, 618, 618, 618, 619, 620, 620, 620,
15418 620, 621, 623, 622, 624, 624, 624, 625, 626, 626,
15419 626, 627, 628, 628, 628, 628, 629, 630, 630, 630,
15420 630, 631, 632, 632, 633, 634, 634, 634, 634, 635,
15421 636, 636, 636, 636, 636, 637, 638, 639, 639, 640,
15422 641, 641, 641, 641, 641, 641, 641, 641, 642, 643,
15423 644, 644, 644, 644, 645, 646, 646, 646, 646, 647,
15424 648, 648, 649, 650, 651, 651, 651, 651, 651, 651,
15425 651, 651, 651, 651, 652, 653, 654, 654, 655, 656,
15426 656, 657, 658, 659, 659, 661, 660, 662, 662, 663,
15427 664, 664, 665, 667, 666, 668, 668, 668, 668, 669,
15428 670, 670, 671, 672, 672, 672, 672, 673, 674, 674,
15429 675, 676, 676, 677, 678, 679, 679, 681, 680, 682,
15430 682, 682, 682, 682, 682, 682, 682, 682, 682, 682,
15431 682, 682, 684, 683, 685, 685, 685, 685, 685, 685,
15432 685, 685, 685, 685, 685, 687, 686, 688, 688, 688,
15433 688, 689, 690, 690, 690, 690, 691, 692, 692, 692,
15434 693, 694, 695, 695, 695, 696, 697, 697, 697, 697,
15435 697, 697, 697, 697, 697, 697, 697, 698, 699, 699,
15436 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
15437 699, 700, 701, 701, 701, 702, 703, 703, 703, 704,
15438 705, 706, 706, 706, 706, 706, 707, 707, 708, 708,
15439 709, 709, 710, 710, 711, 712, 712, 712, 712, 713,
15440 714, 714, 714, 714, 715, 716, 716, 717, 718, 718,
15441 720, 719, 721, 721, 721, 721, 721, 722, 723, 724,
15442 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
15443 725, 725, 726, 726, 726, 726, 726, 726, 727, 728,
15444 728, 728, 729, 730, 730, 731, 732, 732, 732, 732,
15445 733, 734, 734, 735, 735, 736, 737, 737, 738, 739,
15446 740, 740, 741, 742, 743, 744, 744, 744, 744, 745,
15447 746, 746, 747, 749, 748, 750, 750, 750, 750, 750,
15448 750, 752, 751, 753, 753, 753, 753, 754, 755, 755,
15449 756, 757, 757, 758, 759, 759, 760, 761, 761, 763,
15450 762, 764, 764, 764, 764, 765, 766, 766, 766, 767,
15451 767, 767, 768, 769, 770, 770, 770, 770, 771, 771,
15452 772, 773, 774, 774, 774, 774, 774, 774, 774, 774,
15453 774, 774, 774, 774, 774, 774, 775, 776, 776, 777,
15454 778, 778, 778, 779, 780, 780, 780, 780, 781, 781,
15455 781, 782, 783, 783, 783, 783, 783, 783, 783, 784,
15456 785, 786, 786, 787, 787, 787, 788, 790, 789, 791,
15457 791, 791, 791, 791, 792, 793, 793, 793, 793, 793,
15458 793, 795, 794, 796, 796, 796, 797, 798, 798, 798,
15459 798, 799, 800, 800, 800, 800, 800, 800, 801, 802,
15460 803, 804, 804, 804, 804, 805, 806, 806, 806, 806,
15461 806, 806, 806, 806, 806, 806, 806, 806, 806, 806,
15462 806, 806, 807, 808, 810, 809, 811, 811, 811, 811,
15463 811, 812, 812, 813, 813, 814, 814, 815, 817, 816,
15464 818, 818, 818, 818, 818, 818, 819, 820, 820, 820,
15465 821, 822, 822, 822, 822, 822, 822, 822, 822, 822,
15466 823, 824, 825, 826, 827, 827, 828, 829, 829, 830,
15467 831, 831, 831, 831, 831, 831, 831, 831, 831, 831,
15468 832, 833, 835, 834, 836, 838, 837, 839, 839, 839,
15469 839, 840, 841, 841, 841, 841, 841, 841, 841, 843,
15470 842, 844, 844, 844, 844, 844, 844, 844, 845, 846,
15475 const unsigned char
15478 0, 2, 0, 9, 0, 2, 2, 2, 2, 2,
15479 2, 1, 4, 6, 4, 1, 1, 4, 1, 2,
15480 2, 2, 2, 2, 4, 1, 1, 0, 5, 1,
15481 2, 2, 2, 2, 6, 6, 0, 1, 2, 1,
15482 4, 4, 1, 1, 1, 2, 2, 4, 4, 4,
15483 4, 3, 0, 5, 1, 1, 1, 5, 1, 1,
15484 1, 1, 4, 0, 2, 2, 2, 4, 1, 2,
15485 4, 1, 1, 6, 4, 4, 0, 6, 1, 2,
15486 2, 2, 2, 2, 2, 1, 5, 0, 1, 5,
15487 0, 1, 1, 1, 4, 1, 1, 1, 5, 1,
15488 1, 1, 0, 1, 1, 6, 0, 2, 6, 4,
15489 0, 2, 4, 0, 2, 2, 2, 2, 2, 2,
15490 2, 4, 0, 2, 4, 0, 2, 2, 2, 2,
15491 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15492 2, 2, 2, 4, 0, 1, 4, 1, 1, 1,
15493 4, 1, 1, 4, 4, 0, 2, 2, 5, 0,
15494 1, 5, 0, 1, 4, 1, 1, 4, 1, 1,
15495 4, 1, 1, 4, 1, 1, 4, 1, 1, 4,
15496 1, 1, 4, 0, 2, 4, 1, 1, 1, 0,
15497 6, 1, 2, 2, 2, 2, 4, 1, 1, 4,
15498 1, 1, 1, 4, 0, 2, 2, 2, 2, 2,
15499 2, 2, 2, 2, 2, 2, 2, 2, 2, 4,
15500 1, 1, 2, 2, 4, 1, 1, 1, 5, 1,
15501 1, 0, 2, 2, 2, 4, 0, 2, 4, 1,
15502 2, 4, 7, 1, 1, 2, 2, 4, 1, 1,
15503 1, 6, 1, 1, 1, 1, 1, 1, 1, 0,
15504 1, 1, 0, 5, 1, 1, 1, 1, 1, 2,
15505 2, 1, 1, 1, 4, 0, 7, 1, 2, 2,
15506 2, 2, 5, 3, 4, 1, 2, 2, 2, 2,
15507 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
15508 1, 4, 1, 1, 1, 4, 1, 2, 2, 2,
15509 2, 2, 2, 2, 2, 2, 2, 2, 2, 5,
15510 0, 1, 4, 1, 1, 2, 2, 2, 2, 2,
15511 2, 2, 2, 2, 6, 1, 1, 2, 2, 1,
15512 1, 1, 1, 1, 6, 1, 1, 2, 2, 6,
15513 1, 1, 2, 2, 6, 5, 1, 1, 1, 1,
15514 2, 2, 0, 5, 1, 2, 0, 5, 0, 2,
15515 2, 2, 2, 4, 4, 5, 3, 4, 1, 1,
15516 3, 0, 6, 1, 1, 2, 2, 2, 2, 2,
15517 2, 2, 2, 5, 0, 1, 1, 5, 0, 1,
15518 1, 4, 1, 2, 2, 2, 2, 4, 0, 2,
15519 4, 0, 2, 2, 2, 2, 1, 1, 1, 1,
15520 1, 1, 4, 1, 2, 4, 0, 2, 2, 2,
15521 4, 0, 2, 2, 2, 2, 2, 2, 2, 2,
15522 2, 2, 2, 2, 2, 2, 2, 2, 7, 1,
15523 1, 2, 2, 4, 1, 1, 2, 2, 6, 1,
15524 1, 2, 2, 4, 1, 1, 3, 0, 5, 0,
15525 2, 2, 4, 0, 2, 2, 2, 4, 1, 1,
15526 1, 1, 1, 1, 1, 1, 1, 4, 1, 2,
15527 4, 4, 1, 2, 1, 1, 4, 1, 1, 1,
15528 0, 7, 1, 2, 2, 2, 2, 4, 4, 4,
15529 0, 2, 4, 0, 2, 2, 5, 1, 1, 5,
15530 1, 1, 6, 1, 1, 1, 1, 1, 0, 1,
15531 1, 0, 5, 1, 2, 1, 1, 1, 0, 5,
15532 0, 2, 2, 2, 4, 4, 1, 1, 1, 0,
15533 5, 1, 0, 2, 2, 0, 5, 1, 2, 4,
15534 1, 2, 2, 2, 5, 0, 1, 0, 6, 0,
15535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15536 2, 2, 2, 2, 0, 5, 0, 2, 2, 2,
15537 2, 5, 1, 1, 0, 1, 1, 5, 1, 1,
15538 1, 1, 1, 1, 6, 0, 1, 6, 0, 1,
15539 4, 0, 2, 2, 2, 4, 1, 2, 1, 1,
15540 6, 1, 1, 1, 4, 0, 2, 0, 5, 0,
15541 2, 2, 2, 2, 4, 1, 2, 1, 1, 1,
15542 1, 1, 1, 1, 1, 1, 1, 0, 7, 0,
15543 2, 2, 2, 2, 2, 2, 2, 2, 2, 4,
15544 1, 2, 2, 2, 2, 0, 6, 1, 2, 2,
15545 2, 2, 2, 5, 1, 2, 2, 4, 1, 1,
15546 4, 0, 2, 2, 1, 4, 0, 2, 2, 4,
15547 0, 2, 2, 2, 2, 1, 1, 1, 1, 1,
15548 1, 5, 0, 1, 1, 1, 5, 0, 1, 1,
15549 1, 3, 0, 5, 0, 2, 2, 5, 1, 2,
15550 2, 6, 1, 1, 2, 2, 4, 0, 2, 2,
15551 2, 4, 1, 2, 4, 0, 2, 2, 2, 4,
15552 1, 2, 2, 2, 2, 5, 4, 1, 2, 4,
15553 1, 1, 1, 1, 1, 1, 1, 1, 4, 7,
15554 1, 1, 2, 2, 7, 1, 1, 2, 2, 6,
15555 1, 1, 4, 4, 1, 2, 2, 2, 2, 2,
15556 2, 2, 2, 2, 4, 4, 1, 2, 6, 0,
15557 1, 5, 4, 1, 2, 0, 5, 1, 2, 4,
15558 1, 1, 4, 0, 5, 0, 2, 2, 2, 4,
15559 0, 2, 4, 0, 2, 2, 2, 4, 1, 2,
15560 4, 0, 2, 5, 4, 1, 2, 0, 6, 0,
15561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15562 2, 2, 0, 6, 0, 2, 2, 2, 2, 2,
15563 2, 2, 2, 2, 2, 0, 6, 1, 2, 2,
15564 2, 5, 1, 1, 2, 2, 4, 0, 2, 2,
15565 1, 4, 0, 2, 2, 4, 1, 1, 2, 2,
15566 2, 2, 2, 2, 2, 2, 2, 4, 1, 1,
15567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15568 2, 4, 0, 2, 2, 4, 0, 2, 2, 5,
15569 4, 0, 2, 2, 2, 2, 1, 1, 1, 1,
15570 1, 1, 1, 1, 5, 0, 1, 1, 1, 5,
15571 0, 1, 1, 1, 5, 0, 1, 4, 1, 2,
15572 0, 6, 1, 2, 2, 2, 2, 1, 1, 4,
15573 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15574 2, 2, 1, 1, 1, 1, 1, 1, 4, 0,
15575 2, 2, 5, 1, 2, 6, 1, 1, 2, 2,
15576 5, 1, 1, 1, 1, 4, 0, 2, 1, 6,
15577 1, 5, 5, 5, 4, 1, 2, 2, 2, 4,
15578 1, 2, 1, 0, 5, 1, 2, 2, 2, 2,
15579 2, 0, 5, 0, 2, 2, 2, 4, 0, 1,
15580 5, 0, 1, 4, 0, 1, 4, 1, 2, 0,
15581 5, 0, 2, 2, 2, 5, 1, 1, 1, 1,
15582 2, 2, 4, 4, 0, 2, 2, 2, 1, 2,
15583 4, 4, 0, 2, 2, 2, 2, 2, 2, 2,
15584 2, 2, 2, 2, 2, 2, 4, 0, 2, 4,
15585 0, 2, 2, 5, 1, 1, 1, 1, 0, 1,
15586 1, 4, 1, 2, 2, 2, 2, 2, 2, 4,
15587 5, 1, 1, 1, 1, 1, 9, 0, 5, 1,
15588 2, 2, 2, 2, 4, 0, 2, 2, 2, 2,
15589 2, 0, 6, 1, 1, 1, 4, 0, 2, 2,
15590 2, 3, 1, 1, 1, 1, 1, 1, 3, 3,
15591 4, 1, 1, 2, 2, 4, 1, 1, 1, 1,
15592 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
15593 1, 1, 3, 3, 0, 5, 1, 2, 2, 2,
15594 2, 1, 1, 1, 1, 1, 1, 4, 0, 7,
15595 1, 2, 2, 2, 2, 2, 4, 0, 2, 2,
15596 4, 0, 2, 2, 2, 2, 2, 2, 2, 2,
15597 1, 1, 1, 5, 0, 1, 5, 0, 1, 4,
15598 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
15599 4, 4, 0, 7, 4, 0, 5, 0, 2, 2,
15600 2, 4, 1, 2, 2, 2, 2, 2, 2, 0,
15601 5, 1, 2, 2, 2, 2, 2, 2, 1, 1,
15605 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
15611 "\"end of file\"",
"error",
"$undefined",
"\"end of line\"",
15612 "\"identifier\"",
"\"integer\"",
"\"double\"",
"\"string\"",
"ANGLE",
15613 "BEHAVIOR",
"CALCULATED",
"CAPACITANCE",
"CENTERCENTER",
"CENTERLEFT",
15614 "CENTERRIGHT",
"CHARGE",
"CONDUCTANCE",
"CURRENT",
"DISTANCE",
15615 "DOCUMENT",
"ENERGY",
"EXTEND",
"FLUX",
"FREQUENCY",
"GENERIC",
15616 "GRAPHIC",
"INDUCTANCE",
"INOUT",
"INPUT",
"LOGICMODEL",
"LOWERCENTER",
15617 "LOWERLEFT",
"LOWERRIGHT",
"MASKLAYOUT",
"MASS",
"MEASURED",
"MX",
15618 "MXR90",
"MY",
"MYR90",
"NETLIST",
"OUTPUT",
"PCBLAYOUT",
"POWER",
"R0",
15619 "R180",
"R270",
"R90",
"REQUIRED",
"RESISTANCE",
"RIPPER",
"ROUND",
15620 "SCHEMATIC",
"STRANGER",
"SYMBOLIC",
"TEMPERATURE",
"TIE",
"TIME",
15621 "TRUNCATE",
"UPPERCENTER",
"UPPERLEFT",
"UPPERRIGHT",
"VOLTAGE",
15622 "ACLOAD",
"AFTER",
"ANNOTATE",
"APPLY",
"ARC",
"ARRAY",
"ARRAYMACRO",
15623 "ARRAYRELATEDINFO",
"ARRAYSITE",
"ATLEAST",
"ATMOST",
"AUTHOR",
15624 "BASEARRAY",
"BECOMES",
"BETWEEN",
"BOOLEAN",
"BOOLEANDISPLAY",
15625 "BOOLEANMAP",
"BORDERPATTERN",
"BORDERWIDTH",
"BOUNDINGBOX",
"CELL",
15626 "CELLREF",
"CELLTYPE",
"CHANGE",
"CIRCLE",
"COLOR",
"COMMENT",
15627 "COMMENTGRAPHICS",
"COMPOUND",
"CONNECTLOCATION",
"CONTENTS",
15628 "CORNERTYPE",
"CRITICALITY",
"CURRENTMAP",
"CURVE",
"CYCLE",
15629 "DATAORIGIN",
"DCFANINLOAD",
"DCFANOUTLOAD",
"DCMAXFANIN",
"DCMAXFANOUT",
15630 "DELAY",
"DELTA",
"DERIVATION",
"DESIGN",
"DESIGNATOR",
"DIFFERENCE",
15631 "DIRECTION",
"DISPLAY",
"DOMINATES",
"DOT",
"DURATION",
"E",
"EDIF",
15632 "EDIFLEVEL",
"EDIFVERSION",
"ENCLOSUREDISTANCE",
"ENDTYPE",
"ENTRY",
15633 "EVENT",
"EXACTLY",
"EXTERNAL",
"FABRICATE",
"FALSE",
"FIGURE",
15634 "FIGUREAREA",
"FIGUREGROUP",
"FIGUREGROUPOBJECT",
"FIGUREGROUPOVERRIDE",
15635 "FIGUREGROUPREF",
"FIGUREPERIMETER",
"FIGUREWIDTH",
"FILLPATTERN",
15636 "FOLLOW",
"FORBIDDENEVENT",
"GLOBALPORTREF",
"GREATERTHAN",
"GRIDMAP",
15637 "IGNORE",
"INCLUDEFIGUREGROUP",
"INITIAL_KW",
"INSTANCE",
15638 "INSTANCEBACKANNOTATE",
"INSTANCEGROUP",
"INSTANCEMAP",
"INSTANCEREF",
15639 "INTEGERDISPLAY",
"INTERFACE",
"INTERFIGUREGROUPSPACING",
"INTERSECTION",
15640 "INTRAFIGUREGROUPSPACING",
"INVERSE",
"ISOLATED",
"JOINED",
"JUSTIFY",
15641 "KEYWORDDISPLAY",
"KEYWORDLEVEL",
"KEYWORDMAP",
"LESSTHAN",
"LIBRARY",
15642 "LIBRARYREF",
"LISTOFNETS",
"LISTOFPORTS",
"LOADDELAY",
"LOGICASSIGN",
15643 "LOGICINPUT",
"LOGICLIST",
"LOGICMAPINPUT",
"LOGICMAPOUTPUT",
15644 "LOGICONEOF",
"LOGICOUTPUT",
"LOGICPORT",
"LOGICREF",
"LOGICVALUE",
15645 "LOGICWAVEFORM",
"MAINTAIN",
"MATCH",
"MEMBER",
"MINOMAX",
15646 "MINOMAXDISPLAY",
"MNM",
"MULTIPLEVALUESET",
"MUSTJOIN",
"NAME",
"NET",
15647 "NETBACKANNOTATE",
"NETBUNDLE",
"NETDELAY",
"NETGROUP",
"NETMAP",
15648 "NETREF",
"NOCHANGE",
"NONPERMUTABLE",
"NOTALLOWED",
"NOTCHSPACING",
15649 "NUMBER",
"NUMBERDEFINITION",
"NUMBERDISPLAY",
"OFFPAGECONNECTOR",
15650 "OFFSETEVENT",
"OPENSHAPE",
"ORIENTATION",
"ORIGIN",
"OVERHANGDISTANCE",
15651 "OVERLAPDISTANCE",
"OVERSIZE",
"OWNER",
"PAGE",
"PAGESIZE_EDIF",
15652 "PARAMETER",
"PARAMETERASSIGN",
"PARAMETERDISPLAY",
"PATH",
"PATHDELAY",
15653 "PATHWIDTH",
"PERMUTABLE",
"PHYSICALDESIGNRULE",
"PLUG",
"POINT",
15654 "POINTDISPLAY",
"POINTLIST",
"POLYGON",
"PORT",
"PORTBACKANNOTATE",
15655 "PORTBUNDLE",
"PORTDELAY",
"PORTGROUP",
"PORTIMPLEMENTATION",
15656 "PORTINSTANCE",
"PORTLIST",
"PORTLISTALIAS",
"PORTMAP",
"PORTREF",
15657 "PROGRAM",
"PROPERTY",
"PROPERTYDISPLAY",
"PROTECTIONFRAME",
"PT",
15658 "RANGEVECTOR",
"RECTANGLE",
"RECTANGLESIZE",
"RENAME",
"RESOLVES",
15659 "SCALE",
"SCALEX",
"SCALEY",
"SECTION",
"SHAPE",
"SIMULATE",
15660 "SIMULATIONINFO",
"SINGLEVALUESET",
"SITE",
"SOCKET",
"SOCKETSET",
15661 "STATUS",
"STEADY",
"STRINGDISPLAY",
"STRONG",
"SYMBOL",
"SYMMETRY",
15662 "TABLE",
"TABLEDEFAULT",
"TECHNOLOGY",
"TEXTHEIGHT",
"TIMEINTERVAL",
15663 "TIMESTAMP",
"TIMING",
"TRANSFORM",
"TRANSITION",
"TRIGGER",
"TRUE",
15664 "UNCONSTRAINED",
"UNDEFINED",
"UNION",
"UNIT",
"UNUSED",
"USERDATA",
15665 "VERSION",
"VIEW",
"VIEWLIST",
"VIEWMAP",
"VIEWREF",
"VIEWTYPE",
15666 "VISIBLE",
"VOLTAGEMAP",
"WAVEVALUE",
"WEAK",
"WEAKJOINED",
"WHEN",
15667 "WRITTEN",
"LBKT",
"RBKT",
"$accept",
"Edif",
"$@1",
"_Edif",
15668 "EdifFileName",
"EdifLevel",
"EdifVersion",
"AcLoad",
"_AcLoad",
"After",
15669 "_After",
"Annotate",
"_Annotate",
"Apply",
"$@2",
"_Apply",
"Arc",
15670 "ArrayData",
"_ArrayData",
"_IntegerList",
"ArrayMacro",
"ArrayRelInfo",
15671 "_ArrayRelInfo",
"ArraySite",
"AtLeast",
"AtMost",
"Author",
"BaseArray",
15672 "Becomes",
"$@3",
"_PresentValue",
"Between",
"__Between",
"_Between",
15673 "Boolean",
"_Boolean",
"BooleanDisp",
"_BooleanDisp",
"BooleanMap",
15674 "BooleanValue",
"BorderPat",
"BorderWidth",
"BoundBox",
"Cell",
"$@4",
15675 "_Cell",
"CellNameDef",
"CellRef",
"_CellRef",
"CellRefData",
15676 "_CellRefData",
"CellNameRef",
"CellNameRefData",
"CellType",
15677 "_CellType",
"Change",
"__Change",
"_Change",
"Circle",
"_Circle",
15678 "Color",
"Comment",
"_Comment",
"CommGraph",
"_CommGraph",
"Compound",
15679 "_Compound",
"Contents",
"_Contents",
"ConnectLoc",
"_ConnectLoc",
15680 "CornerType",
"_CornerType",
"Criticality",
"_Criticality",
"CurrentMap",
15681 "Curve",
"_Curve",
"Cycle",
"_Cycle",
"DataOrigin",
"_DataOrigin",
15682 "DcFanInLoad",
"_DcFanInLoad",
"DcFanOutLoad",
"_DcFanOutLoad",
15683 "DcMaxFanIn",
"_DcMaxFanIn",
"DcMaxFanOut",
"_DcMaxFanOut",
"DelayData",
15684 "_DelayData",
"Delay",
"_Delay",
"Delta",
"_Delta",
"Derivation",
15685 "_Derivation",
"Design",
"$@5",
"_Design",
"Designator",
"_Designator",
15686 "DesignatorData",
"_DesignatorData",
"DesignNameDef",
"DesignRule",
15687 "_DesignRule",
"Difference",
"_Difference",
"Direction",
"_Direction",
15688 "Display",
"_Display",
"_DisplayExt",
"Dominates",
"_Dominates",
"Dot",
15689 "_Dot",
"Duration",
"EncloseDist",
"_EncloseDist",
"EndType",
"_EndType",
15690 "Entry",
"___Entry",
"__Entry",
"_Entry",
"Event",
"$@6",
"_Event",
15691 "EventPortRefData",
"EventPortListData",
"EventNetRefData",
"Exactly",
15692 "External",
"$@7",
"_External",
"Fabricate",
"False",
"FigGrp",
15693 "_FigGrp",
"FigGrpNameDef",
"FigGrpNameRef",
"FigGrpObj",
"_FigGrpObj",
15694 "FigGrpOver",
"_FigGrpOver",
"FigGrpRef",
"_FigGrpRef",
"Figure",
15695 "_Figure",
"FigureArea",
"_FigureArea",
"FigureOp",
"FigurePerim",
15696 "_FigurePerim",
"FigureWidth",
"_FigureWidth",
"FillPattern",
"Follow",
15697 "__Follow",
"_Follow",
"Forbidden",
"$@8",
"_Forbidden",
"Form",
"$@9",
15698 "_Form",
"GlobPortRefData",
"GreaterThan",
"GridMap",
"Ignore",
15699 "IncFigGrp",
"_IncFigGrp",
"Initial",
"Instance",
"$@10",
"_Instance",
15700 "InstanceRef",
"_InstanceRef",
"InstanceRefData",
"_InstanceRefData",
15701 "InstBackAn",
"_InstBackAn",
"InstGroup",
"_InstGroup",
"InstMap",
15702 "_InstMap",
"InstNameDef",
"InstNameRef",
"InstNameRefData",
15703 "IntDisplay",
"_IntDisplay",
"Integer",
"_Integer",
"Interface",
15704 "_Interface",
"InterFigGrp",
"_InterFigGrp",
"Intersection",
15705 "_Intersection",
"IntraFigGrp",
"_IntraFigGrp",
"Inverse",
"_Inverse",
15706 "Isolated",
"Joined",
"$@11",
"_Joined",
"JoinedElements",
15707 "_JoinedElements",
"Justify",
"_Justify",
"KeywordDisp",
"_KeywordDisp",
15708 "KeywordLevel",
"KeywordMap",
"_KeywordMap",
"KeywordName",
15709 "LayerNameDef",
"LessThan",
"LibNameDef",
"LibNameRef",
"LibNameRefData",
15710 "Library",
"$@12",
"_Library",
"LibraryRef",
"LibraryRefData",
15711 "ListOfNets",
"_ListOfNets",
"ListOfPorts",
"_ListOfPorts",
15712 "LoadDelayData",
"_LoadDelayData",
"LoadDelay",
"_LoadDelay",
15713 "LogicAssn",
"___LogicAssn",
"__LogicAssn",
"_LogicAssn",
"LogicIn",
15714 "$@13",
"_LogicIn",
"CommonPortData",
"LogicList",
"$@14",
"_LogicList",
15715 "LogicMapIn",
"LogicMapOut",
"LogicNameDef",
"LogicNameRefData",
15716 "LogicNameRef",
"LogicOneOf",
"$@15",
"LogicNameData",
"_LogicOneOf",
15717 "LogicOut",
"$@16",
"_LogicOut",
"LogicPort",
"_LogicPort",
"LogicRef",
15718 "_LogicRef",
"LogicValue",
"$@17",
"_LogicValue",
"LogicWave",
"$@18",
15719 "_LogicWave",
"Maintain",
"__Maintain",
"_Maintain",
"Match",
"__Match",
15720 "_Match",
"MemberData",
"_MemberData",
"Member",
"_Member",
"MiNoMa",
15721 "_MiNoMa",
"MiNoMaDisp",
"_MiNoMaDisp",
"MiNoMaValue",
"Mnm",
"_Mnm",
15722 "MultValSet",
"_MultValSet",
"MustJoin",
"$@19",
"_MustJoin",
"Name",
15723 "_Name",
"NameDef",
"NameDefData",
"NameRef",
"NameRefData",
"Net",
15724 "$@20",
"_Net",
"NetBackAn",
"_NetBackAn",
"NetBundle",
"$@21",
15725 "_NetBundle",
"NetDelay",
"_NetDelay",
"NetDelayData",
"_NetDelayData",
15726 "EventNetGroup",
"_EventNetGroup",
"EventNetNameRef",
"NetGroup",
15727 "_NetGroup",
"NetMap",
"_NetMap",
"NetNameDef",
"NetNameRef",
15728 "NetNameRefData",
"NetRef",
"_NetRef",
"NetRefData",
"_NetRefData",
15729 "NoChange",
"NonPermut",
"$@22",
"_NonPermut",
"NotAllowed",
15730 "_NotAllowed",
"NotchSpace",
"_NotchSpace",
"Number",
"_Number",
15731 "NumbDisplay",
"_NumbDisplay",
"NumberDefn",
"_NumberDefn",
15732 "OffPageConn",
"_OffPageConn",
"OffsetEvent",
"OpenShape",
"_OpenShape",
15733 "Orientation",
"_Orientation",
"Origin",
"OverhngDist",
"_OverhngDist",
15734 "OverlapDist",
"_OverlapDist",
"Oversize",
"_Oversize",
"Owner",
"Page",
15735 "_Page",
"PageSize",
"ParamDisp",
"_ParamDisp",
"Parameter",
15736 "_Parameter",
"ParamAssign",
"Path",
"_Path",
"PathDelayData",
"$@23",
15737 "_PathDelay",
"PathDelay",
"_PathDelayValue",
"PathWidth",
"Permutable",
15738 "$@24",
"_Permutable",
"Plug",
"_Plug",
"Point",
"_Point",
"PointDisp",
15739 "_PointDisp",
"PointList",
"_PointList",
"PointValue",
"Polygon",
15740 "_Polygon",
"Port",
"$@25",
"_Port",
"PortBackAn",
"$@26",
"_PortBackAn",
15741 "PortBundle",
"$@27",
"_PortBundle",
"PortDelayData",
"_PortDelayData",
15742 "EventPortGroup",
"_EventPortGroup",
"EventPortNameRef",
"PortGroup",
15743 "_PortGroup",
"PortImpl",
"_PortImpl",
"PortInst",
"_PortInst",
15744 "PortList",
"_PortList",
"PortListData",
"_PortListData",
"PortListAls",
15745 "PortMap",
"_PortMap",
"PortNameDef",
"PortNameDefData",
"PortNameRef",
15746 "PortNameRefData",
"PortRef",
"_PortRef",
"PortRefData",
"_PortRefData",
15747 "Program",
"_Program",
"PropDisplay",
"_PropDisplay",
"Property",
"$@28",
15748 "_Property",
"PropNameDef",
"PropNameRef",
"ProtectFrame",
15749 "_ProtectFrame",
"Range",
"RangeVector",
"_RangeVector",
"Rectangle",
15750 "_Rectangle",
"RectSize",
"_RectSize",
"Rename",
"__Rename",
"_Rename",
15751 "Resolves",
"_Resolves",
"RuleNameDef",
"Scale",
"ScaledInt",
"ScaleX",
15752 "ScaleY",
"Section",
"_Section",
"Shape",
"_Shape",
"SimNameDef",
15753 "Simulate",
"$@29",
"_Simulate",
"SimulInfo",
"$@30",
"_SimulInfo",
15754 "SingleValSet",
"_SingleValSet",
"Site",
"_Site",
"Socket",
"_Socket",
15755 "SocketSet",
"_SocketSet",
"Status",
"$@31",
"_Status",
"Steady",
15756 "__Steady",
"_Steady",
"StrDisplay",
"String",
"_String",
"_StrDisplay",
15757 "Strong",
"Symbol",
"_Symbol",
"Symmetry",
"_Symmetry",
"Table",
15758 "_Table",
"TableDeflt",
"__TableDeflt",
"_TableDeflt",
"Technology",
15759 "_Technology",
"TextHeight",
"TimeIntval",
"StartTimeIntval",
15760 "EndTimeIntval",
"TimeStamp",
"Timing",
"$@32",
"_Timing",
"Transform",
15761 "_TransformExt",
"Transition",
"$@33",
"_PreviousValue",
"Trigger",
15762 "_Trigger",
"True",
"TypedValue",
"Unconstrained",
"Undefined",
"Union",
15763 "_Union",
"Unit",
"_Unit",
"Unused",
"UnusedData",
"UserData",
"$@34",
15764 "_UserData",
"ValueNameDefData",
"ValueNameRef",
"ValueNameRefData",
15765 "Version",
"View",
"$@35",
"_View",
"ViewList",
"_ViewList",
"ViewMap",
15766 "_ViewMap",
"ViewNameDef",
"ViewNameRef",
"ViewNameRefData",
"ViewRef",
15767 "_ViewRef",
"ViewRefData",
"_ViewRefData",
"ViewType",
"_ViewType",
15768 "Visible",
"VoltageMap",
"WaveValue",
"$@36",
"Weak",
"WeakJoined",
15769 "$@37",
"_WeakJoined",
"When",
"_When",
"Written",
"$@38",
"_Written",
15770 "Ident",
"Str",
"Int",
"Keyword", 0
15779 297, 0, -1, -1, 294, 117, 300, 302, 301, 513,
15780 298, 299, 295, -1, -1, 299, 762, -1, 299, 431,
15781 -1, 299, 521, -1, 299, 394, -1, 299, 357, -1,
15782 299, 809, -1, 592, -1, 294, 118, 847, 295, -1,
15783 294, 119, 847, 847, 847, 295, -1, 294, 63, 304,
15784 295, -1, 581, -1, 579, -1, 294, 64, 306, 295,
15785 -1, 581, -1, 306, 456, -1, 306, 567, -1, 306,
15786 534, -1, 306, 357, -1, 306, 809, -1, 294, 65,
15787 308, 295, -1, 846, -1, 768, -1, -1, 294, 66,
15788 310, 311, 295, -1, 374, -1, 311, 538, -1, 311,
15789 554, -1, 311, 357, -1, 311, 809, -1, 294, 67,
15790 677, 677, 677, 295, -1, 294, 68, 592, 847, 314,
15791 295, -1, -1, 315, -1, 847, 315, -1, 847, -1,
15792 294, 69, 669, 295, -1, 294, 70, 318, 295, -1,
15793 323, -1, 319, -1, 316, -1, 318, 357, -1, 318,
15794 809, -1, 294, 71, 758, 295, -1, 294, 72, 740,
15795 295, -1, 294, 73, 740, 295, -1, 294, 74, 846,
15796 295, -1, 294, 75, 295, -1, -1, 294, 76, 325,
15797 326, 295, -1, 552, -1, 542, -1, 550, -1, 294,
15798 77, 328, 329, 295, -1, 320, -1, 466, -1, 321,
15799 -1, 517, -1, 294, 78, 331, 295, -1, -1, 331,
15800 335, -1, 331, 332, -1, 331, 330, -1, 294, 79,
15801 333, 295, -1, 335, -1, 333, 408, -1, 294, 80,
15802 335, 295, -1, 799, -1, 435, -1, 294, 81, 847,
15803 847, 330, 295, -1, 294, 82, 847, 295, -1, 294,
15804 83, 729, 295, -1, -1, 294, 84, 342, 340, 341,
15805 295, -1, 349, -1, 341, 762, -1, 341, 821, -1,
15806 341, 816, -1, 341, 357, -1, 341, 809, -1, 341,
15807 719, -1, 592, -1, 294, 85, 347, 344, 295, -1,
15808 -1, 525, -1, 294, 85, 348, 346, 295, -1, -1,
15809 525, -1, 593, -1, 594, -1, 294, 86, 350, 295,
15810 -1, 56, -1, 50, -1, 24, -1, 294, 87, 352,
15811 353, 295, -1, 709, -1, 711, -1, 700, -1, -1,
15812 324, -1, 794, -1, 294, 88, 677, 677, 355, 295,
15813 -1, -1, 355, 719, -1, 294, 89, 740, 740, 740,
15814 295, -1, 294, 90, 358, 295, -1, -1, 358, 846,
15815 -1, 294, 91, 360, 295, -1, -1, 360, 307, -1,
15816 360, 446, -1, 360, 472, -1, 360, 338, -1, 360,
15817 719, -1, 360, 357, -1, 360, 809, -1, 294, 92,
15818 362, 295, -1, -1, 362, 548, -1, 294, 94, 364,
15819 295, -1, -1, 364, 472, -1, 364, 635, -1, 364,
15820 446, -1, 364, 743, -1, 364, 595, -1, 364, 600,
15821 -1, 364, 650, -1, 364, 359, -1, 364, 696, -1,
15822 364, 789, -1, 364, 748, -1, 364, 840, -1, 364,
15823 456, -1, 364, 557, -1, 364, 338, -1, 364, 357,
15824 -1, 364, 809, -1, 294, 93, 366, 295, -1, -1,
15825 446, -1, 294, 95, 368, 295, -1, 21, -1, 51,
15826 -1, 58, -1, 294, 96, 370, 295, -1, 847, -1,
15827 488, -1, 294, 97, 581, 295, -1, 294, 98, 373,
15828 295, -1, -1, 373, 312, -1, 373, 677, -1, 294,
15829 99, 847, 375, 295, -1, -1, 415, -1, 294, 100,
15830 846, 377, 295, -1, -1, 815, -1, 294, 101, 379,
15831 295, -1, 740, -1, 631, -1, 294, 102, 381, 295,
15832 -1, 740, -1, 631, -1, 294, 103, 383, 295, -1,
15833 740, -1, 631, -1, 294, 104, 385, 295, -1, 740,
15834 -1, 631, -1, 294, 105, 387, 295, -1, 581, -1,
15835 579, -1, 294, 105, 389, 295, -1, 581, -1, 579,
15836 -1, 294, 106, 391, 295, -1, -1, 391, 677, -1,
15837 294, 107, 393, 295, -1, 10, -1, 35, -1, 48,
15838 -1, -1, 294, 108, 401, 395, 396, 295, -1, 343,
15839 -1, 396, 762, -1, 396, 357, -1, 396, 719, -1,
15840 396, 809, -1, 294, 109, 398, 295, -1, 846, -1,
15841 768, -1, 294, 109, 400, 295, -1, 846, -1, 768,
15842 -1, 592, -1, 294, 220, 403, 295, -1, -1, 403,
15843 453, -1, 403, 448, -1, 403, 731, -1, 403, 451,
15844 -1, 403, 645, -1, 403, 643, -1, 403, 416, -1,
15845 403, 494, -1, 403, 498, -1, 403, 627, -1, 403,
15846 625, -1, 403, 436, -1, 403, 357, -1, 403, 809,
15847 -1, 294, 110, 405, 295, -1, 444, -1, 450, -1,
15848 405, 444, -1, 405, 450, -1, 294, 111, 407, 295,
15849 -1, 28, -1, 41, -1, 27, -1, 294, 112, 409,
15850 410, 295, -1, 439, -1, 442, -1, -1, 410, 508,
15851 -1, 410, 640, -1, 410, 642, -1, 294, 113, 412,
15852 295, -1, -1, 412, 548, -1, 294, 114, 414, 295,
15853 -1, 677, -1, 414, 719, -1, 294, 115, 740, 295,
15854 -1, 294, 120, 738, 440, 440, 417, 295, -1, 726,
15855 -1, 754, -1, 417, 357, -1, 417, 809, -1, 294,
15856 121, 419, 295, -1, 21, -1, 51, -1, 58, -1,
15857 294, 122, 421, 422, 423, 295, -1, 570, -1, 351,
15858 -1, 765, -1, 559, -1, 711, -1, 621, -1, 777,
15859 -1, -1, 388, -1, 532, -1, -1, 294, 123, 425,
15860 426, 295, -1, 427, -1, 428, -1, 691, -1, 429,
15861 -1, 607, -1, 426, 794, -1, 426, 324, -1, 713,
15862 -1, 702, -1, 619, -1, 294, 124, 740, 295, -1,
15863 -1, 294, 125, 518, 301, 432, 433, 295, -1, 782,
15864 -1, 433, 762, -1, 433, 339, -1, 433, 357, -1,
15865 433, 809, -1, 294, 126, 516, 439, 295, -1, 294,
15866 127, 295, -1, 294, 130, 437, 295, -1, 438, -1,
15867 437, 367, -1, 437, 418, -1, 437, 665, -1, 437,
15868 337, -1, 437, 356, -1, 437, 455, -1, 437, 336,
15869 -1, 437, 784, -1, 437, 832, -1, 437, 357, -1,
15870 437, 719, -1, 437, 809, -1, 437, 469, -1, 591,
15871 -1, 593, -1, 294, 131, 441, 295, -1, 439, -1,
15872 444, -1, 450, -1, 294, 132, 443, 295, -1, 439,
15873 -1, 443, 367, -1, 443, 418, -1, 443, 665, -1,
15874 443, 337, -1, 443, 356, -1, 443, 455, -1, 443,
15875 336, -1, 443, 784, -1, 443, 832, -1, 443, 357,
15876 -1, 443, 719, -1, 443, 809, -1, 294, 133, 439,
15877 445, 295, -1, -1, 524, -1, 294, 128, 447, 295,
15878 -1, 438, -1, 442, -1, 447, 354, -1, 447, 413,
15879 -1, 447, 638, -1, 447, 658, -1, 447, 678, -1,
15880 447, 729, -1, 447, 745, -1, 447, 357, -1, 447,
15881 809, -1, 294, 129, 738, 440, 449, 295, -1, 726,
15882 -1, 754, -1, 449, 357, -1, 449, 809, -1, 496,
15883 -1, 803, -1, 404, -1, 500, -1, 647, -1, 294,
15884 134, 738, 440, 452, 295, -1, 726, -1, 754, -1,
15885 452, 357, -1, 452, 809, -1, 294, 135, 738, 440,
15886 454, 295, -1, 726, -1, 754, -1, 454, 357, -1,
15887 454, 809, -1, 294, 136, 847, 847, 330, 295, -1,
15888 294, 137, 457, 458, 295, -1, 709, -1, 711, -1,
15889 711, -1, 777, -1, 458, 388, -1, 458, 532, -1,
15890 -1, 294, 138, 460, 461, 295, -1, 785, -1, 461,
15891 424, -1, -1, 294, 463, 848, 464, 295, -1, -1,
15892 464, 847, -1, 464, 846, -1, 464, 845, -1, 464,
15893 462, -1, 294, 139, 710, 295, -1, 294, 140, 740,
15894 295, -1, 294, 141, 740, 740, 295, -1, 294, 142,
15895 295, -1, 294, 143, 470, 295, -1, 444, -1, 450,
15896 -1, 294, 144, 295, -1, -1, 294, 145, 485, 473,
15897 474, 295, -1, 828, -1, 819, -1, 474, 792, -1,
15898 474, 657, -1, 474, 698, -1, 474, 789, -1, 474,
15899 399, -1, 474, 719, -1, 474, 357, -1, 474, 809,
15900 -1, 294, 149, 486, 476, 295, -1, -1, 475, -1,
15901 828, -1, 294, 149, 487, 478, 295, -1, -1, 475,
15902 -1, 828, -1, 294, 146, 480, 295, -1, 475, -1,
15903 480, 397, -1, 480, 789, -1, 480, 719, -1, 480,
15904 357, -1, 294, 147, 482, 295, -1, -1, 482, 475,
15905 -1, 294, 148, 484, 295, -1, -1, 484, 475, -1,
15906 484, 481, -1, 484, 357, -1, 484, 809, -1, 592,
15907 -1, 313, -1, 593, -1, 575, -1, 594, -1, 573,
15908 -1, 294, 150, 489, 295, -1, 847, -1, 489, 408,
15909 -1, 294, 5, 491, 295, -1, -1, 491, 847, -1,
15910 491, 488, -1, 491, 490, -1, 294, 151, 493, 295,
15911 -1, -1, 493, 680, -1, 493, 686, -1, 493, 773,
15912 -1, 493, 724, -1, 493, 317, -1, 493, 655, -1,
15913 493, 503, -1, 493, 586, -1, 493, 837, -1, 493,
15914 666, -1, 493, 789, -1, 493, 748, -1, 493, 399,
15915 -1, 493, 719, -1, 493, 357, -1, 493, 809, -1,
15916 294, 152, 738, 440, 440, 495, 295, -1, 726, -1,
15917 754, -1, 495, 357, -1, 495, 809, -1, 294, 153,
15918 497, 295, -1, 444, -1, 450, -1, 497, 444, -1,
15919 497, 450, -1, 294, 154, 738, 440, 499, 295, -1,
15920 726, -1, 754, -1, 499, 357, -1, 499, 809, -1,
15921 294, 155, 501, 295, -1, 444, -1, 450, -1, 294,
15922 156, 295, -1, -1, 294, 157, 504, 505, 295, -1,
15923 -1, 505, 713, -1, 505, 702, -1, 294, 157, 507,
15924 295, -1, -1, 507, 713, -1, 507, 702, -1, 507,
15925 465, -1, 294, 158, 509, 295, -1, 12, -1, 13,
15926 -1, 14, -1, 30, -1, 31, -1, 32, -1, 59,
15927 -1, 60, -1, 61, -1, 294, 159, 511, 295, -1,
15928 515, -1, 511, 408, -1, 294, 160, 847, 295, -1,
15929 294, 161, 514, 295, -1, 512, -1, 514, 357, -1,
15930 845, -1, 591, -1, 294, 162, 740, 295, -1, 592,
15931 -1, 593, -1, 594, -1, -1, 294, 163, 518, 301,
15932 522, 523, 295, -1, 782, -1, 523, 762, -1, 523,
15933 339, -1, 523, 357, -1, 523, 809, -1, 294, 164,
15934 519, 295, -1, 294, 164, 520, 295, -1, 294, 165,
15935 527, 295, -1, -1, 527, 595, -1, 294, 166, 529,
15936 295, -1, -1, 529, 680, -1, 529, 686, -1, 294,
15937 167, 531, 531, 295, -1, 581, -1, 579, -1, 294,
15938 167, 533, 533, 295, -1, 581, -1, 579, -1, 294,
15939 168, 535, 536, 537, 295, -1, 709, -1, 711, -1,
15940 711, -1, 559, -1, 777, -1, -1, 388, -1, 532,
15941 -1, -1, 294, 169, 539, 540, 295, -1, 541, -1,
15942 540, 564, -1, 702, -1, 713, -1, 710, -1, -1,
15943 294, 170, 543, 544, 295, -1, -1, 544, 552, -1,
15944 544, 550, -1, 544, 468, -1, 294, 171, 559, 295,
15945 -1, 294, 172, 559, 295, -1, 592, -1, 593, -1,
15946 593, -1, -1, 294, 173, 551, 553, 295, -1, 548,
15947 -1, -1, 553, 552, -1, 553, 542, -1, -1, 294,
15948 174, 555, 556, 295, -1, 541, -1, 556, 564, -1,
15949 294, 175, 558, 295, -1, 707, -1, 558, 719, -1,
15950 558, 357, -1, 558, 809, -1, 294, 176, 548, 560,
15951 295, -1, -1, 525, -1, -1, 294, 177, 547, 562,
15952 563, 295, -1, -1, 563, 833, -1, 563, 371, -1,
15953 563, 334, -1, 563, 361, -1, 563, 836, -1, 563,
15954 772, -1, 563, 411, -1, 563, 546, -1, 563, 545,
15955 -1, 563, 502, -1, 563, 736, -1, 563, 719, -1,
15956 563, 357, -1, 563, 809, -1, -1, 294, 178, 565,
15957 566, 295, -1, -1, 566, 552, -1, 566, 542, -1,
15958 566, 550, -1, 566, 468, -1, 294, 179, 568, 569,
15959 295, -1, 709, -1, 711, -1, -1, 388, -1, 532,
15960 -1, 294, 180, 571, 572, 295, -1, 709, -1, 711,
15961 -1, 700, -1, 549, -1, 542, -1, 550, -1, 294,
15962 181, 594, 847, 574, 295, -1, -1, 315, -1, 294,
15963 181, 593, 847, 576, 295, -1, -1, 315, -1, 294,
15964 182, 578, 295, -1, -1, 578, 581, -1, 578, 579,
15965 -1, 578, 577, -1, 294, 183, 580, 295, -1, 581,
15966 -1, 580, 408, -1, 582, -1, 740, -1, 294, 184,
15967 583, 583, 583, 295, -1, 740, -1, 802, -1, 801,
15968 -1, 294, 185, 585, 295, -1, -1, 585, 727, -1,
15969 -1, 294, 186, 587, 588, 295, -1, -1, 588, 713,
15970 -1, 588, 702, -1, 588, 837, -1, 588, 503, -1,
15971 294, 187, 590, 295, -1, 845, -1, 590, 408, -1,
15972 845, -1, 589, -1, 733, -1, 845, -1, 589, -1,
15973 733, -1, 845, -1, 589, -1, 845, -1, 589, -1,
15974 -1, 294, 188, 614, 596, 506, 597, 295, -1, -1,
15975 597, 369, -1, 597, 603, -1, 597, 446, -1, 597,
15976 595, -1, 597, 472, -1, 597, 359, -1, 597, 719,
15977 -1, 597, 357, -1, 597, 809, -1, 294, 189, 599,
15978 295, -1, 617, -1, 599, 603, -1, 599, 369, -1,
15979 599, 719, -1, 599, 357, -1, -1, 294, 190, 614,
15980 601, 602, 295, -1, 526, -1, 602, 446, -1, 602,
15981 359, -1, 602, 719, -1, 602, 357, -1, 602, 809,
15982 -1, 294, 191, 392, 604, 295, -1, 605, -1, 604,
15983 794, -1, 604, 324, -1, 294, 105, 606, 295, -1,
15984 581, -1, 579, -1, 294, 192, 608, 295, -1, -1,
15985 608, 609, -1, 608, 429, -1, 616, -1, 294, 192,
15986 611, 295, -1, -1, 611, 615, -1, 611, 617, -1,
15987 294, 193, 613, 295, -1, -1, 613, 617, -1, 613,
15988 610, -1, 613, 357, -1, 613, 809, -1, 592, -1,
15989 313, -1, 593, -1, 575, -1, 594, -1, 573, -1,
15990 294, 194, 615, 618, 295, -1, -1, 617, -1, 475,
15991 -1, 826, -1, 294, 194, 616, 620, 295, -1, -1,
15992 619, -1, 477, -1, 828, -1, 294, 195, 295, -1,
15993 -1, 294, 196, 623, 624, 295, -1, -1, 624, 713,
15994 -1, 624, 666, -1, 294, 197, 738, 626, 295, -1,
15995 440, -1, 626, 357, -1, 626, 809, -1, 294, 198,
15996 738, 440, 628, 295, -1, 726, -1, 754, -1, 628,
15997 357, -1, 628, 809, -1, 294, 199, 630, 295, -1,
15998 -1, 630, 740, -1, 630, 631, -1, 630, 629, -1,
15999 294, 201, 632, 295, -1, 740, -1, 632, 408, -1,
16000 294, 200, 634, 295, -1, -1, 634, 739, -1, 634,
16001 467, -1, 634, 357, -1, 294, 202, 636, 295, -1,
16002 707, -1, 636, 807, -1, 636, 719, -1, 636, 357,
16003 -1, 636, 809, -1, 294, 203, 424, 740, 295, -1,
16004 294, 204, 639, 295, -1, 372, -1, 639, 719, -1,
16005 294, 205, 641, 295, -1, 44, -1, 47, -1, 45,
16006 -1, 46, -1, 36, -1, 38, -1, 39, -1, 37,
16007 -1, 294, 206, 677, 295, -1, 294, 207, 738, 440,
16008 440, 644, 295, -1, 726, -1, 754, -1, 644, 357,
16009 -1, 644, 809, -1, 294, 208, 738, 440, 440, 646,
16010 295, -1, 726, -1, 754, -1, 646, 357, -1, 646,
16011 809, -1, 294, 209, 847, 648, 367, 295, -1, 444,
16012 -1, 450, -1, 294, 210, 846, 295, -1, 294, 211,
16013 651, 295, -1, 485, -1, 651, 472, -1, 651, 595,
16014 -1, 651, 600, -1, 651, 359, -1, 651, 696, -1,
16015 651, 652, -1, 651, 338, -1, 651, 357, -1, 651,
16016 809, -1, 294, 212, 729, 295, -1, 294, 215, 654,
16017 295, -1, 813, -1, 654, 408, -1, 294, 213, 812,
16018 800, 656, 295, -1, -1, 805, -1, 294, 214, 814,
16019 800, 295, -1, 294, 216, 659, 295, -1, 675, -1,
16020 659, 719, -1, -1, 294, 217, 661, 662, 295, -1,
16021 663, -1, 662, 424, -1, 294, 105, 664, 295, -1,
16022 581, -1, 579, -1, 294, 218, 847, 295, -1, -1,
16023 294, 219, 667, 668, 295, -1, -1, 668, 713, -1,
16024 668, 666, -1, 668, 622, -1, 294, 221, 670, 295,
16025 -1, -1, 670, 760, -1, 294, 222, 672, 295, -1,
16026 -1, 672, 677, -1, 672, 673, -1, 672, 671, -1,
16027 294, 223, 674, 295, -1, 677, -1, 674, 408, -1,
16028 294, 224, 676, 295, -1, -1, 676, 677, -1, 294,
16029 241, 847, 847, 295, -1, 294, 225, 679, 295, -1,
16030 675, -1, 679, 719, -1, -1, 294, 226, 708, 681,
16031 682, 295, -1, -1, 682, 406, -1, 682, 808, -1,
16032 682, 689, -1, 682, 399, -1, 682, 378, -1, 682,
16033 380, -1, 682, 382, -1, 682, 384, -1, 682, 303,
16034 -1, 682, 719, -1, 682, 357, -1, 682, 809, -1,
16035 -1, 294, 227, 713, 684, 685, 295, -1, -1, 685,
16036 808, -1, 685, 689, -1, 685, 399, -1, 685, 378,
16037 -1, 685, 380, -1, 685, 382, -1, 685, 384, -1,
16038 685, 303, -1, 685, 719, -1, 685, 357, -1, -1,
16039 294, 228, 592, 687, 688, 295, -1, 528, -1, 688,
16040 719, -1, 688, 357, -1, 688, 809, -1, 294, 229,
16041 392, 690, 295, -1, 386, -1, 530, -1, 690, 794,
16042 -1, 690, 324, -1, 294, 230, 692, 295, -1, -1,
16043 692, 693, -1, 692, 427, -1, 710, -1, 294, 230,
16044 695, 295, -1, -1, 695, 709, -1, 695, 711, -1,
16045 294, 231, 697, 295, -1, 711, -1, 709, -1, 697,
16046 365, -1, 697, 446, -1, 697, 472, -1, 697, 359,
16047 -1, 697, 717, -1, 697, 510, -1, 697, 719, -1,
16048 697, 809, -1, 697, 357, -1, 294, 232, 699, 295,
16049 -1, 713, -1, 710, -1, 699, 808, -1, 699, 689,
16050 -1, 699, 399, -1, 699, 378, -1, 699, 380, -1,
16051 699, 382, -1, 699, 384, -1, 699, 303, -1, 699,
16052 719, -1, 699, 357, -1, 699, 809, -1, 294, 233,
16053 701, 295, -1, -1, 701, 711, -1, 701, 709, -1,
16054 294, 233, 703, 295, -1, -1, 703, 713, -1, 703,
16055 710, -1, 294, 234, 708, 702, 295, -1, 294, 235,
16056 706, 295, -1, -1, 706, 711, -1, 706, 694, -1,
16057 706, 357, -1, 706, 809, -1, 591, -1, 313, -1,
16058 592, -1, 313, -1, 593, -1, 575, -1, 594, -1,
16059 573, -1, 294, 236, 709, 712, 295, -1, -1, 711,
16060 -1, 475, -1, 826, -1, 294, 236, 710, 714, 295,
16061 -1, -1, 713, -1, 477, -1, 828, -1, 294, 237,
16062 846, 716, 295, -1, -1, 815, -1, 294, 239, 718,
16063 295, -1, 723, -1, 718, 408, -1, -1, 294, 238,
16064 722, 720, 721, 295, -1, 800, -1, 721, 649, -1,
16065 721, 805, -1, 721, 719, -1, 721, 357, -1, 592,
16066 -1, 593, -1, 294, 240, 725, 295, -1, -1, 725,
16067 696, -1, 725, 446, -1, 725, 472, -1, 725, 359,
16068 -1, 725, 338, -1, 725, 717, -1, 725, 510, -1,
16069 725, 653, -1, 725, 719, -1, 725, 357, -1, 725,
16070 809, -1, 517, -1, 466, -1, 321, -1, 320, -1,
16071 430, -1, 327, -1, 294, 242, 728, 295, -1, -1,
16072 728, 726, -1, 728, 754, -1, 294, 243, 677, 730,
16073 295, -1, 677, -1, 730, 719, -1, 294, 244, 738,
16074 440, 732, 295, -1, 727, -1, 584, -1, 732, 357,
16075 -1, 732, 809, -1, 294, 245, 734, 735, 295, -1,
16076 845, -1, 589, -1, 846, -1, 768, -1, 294, 246,
16077 737, 295, -1, -1, 737, 548, -1, 591, -1, 294,
16078 247, 740, 740, 805, 295, -1, 847, -1, 294, 116,
16079 847, 847, 295, -1, 294, 248, 847, 847, 295, -1,
16080 294, 249, 847, 847, 295, -1, 294, 250, 744, 295,
16081 -1, 846, -1, 744, 743, -1, 744, 846, -1, 744,
16082 472, -1, 294, 251, 746, 295, -1, 372, -1, 746,
16083 719, -1, 592, -1, -1, 294, 252, 749, 750, 295,
16084 -1, 747, -1, 750, 704, -1, 750, 834, -1, 750,
16085 309, -1, 750, 357, -1, 750, 809, -1, -1, 294,
16086 253, 752, 753, 295, -1, -1, 753, 561, -1, 753,
16087 357, -1, 753, 809, -1, 294, 254, 755, 295, -1,
16088 -1, 726, -1, 294, 255, 826, 757, 295, -1, -1,
16089 792, -1, 294, 256, 759, 295, -1, -1, 775, -1,
16090 294, 257, 761, 295, -1, 775, -1, 761, 756, -1,
16091 -1, 294, 258, 763, 764, 295, -1, -1, 764, 842,
16092 -1, 764, 357, -1, 764, 809, -1, 294, 259, 766,
16093 767, 295, -1, 709, -1, 711, -1, 700, -1, 415,
16094 -1, 767, 794, -1, 767, 324, -1, 294, 260, 771,
16095 295, -1, 294, 7, 770, 295, -1, -1, 770, 846,
16096 -1, 770, 768, -1, 770, 769, -1, 846, -1, 771,
16097 408, -1, 294, 261, 548, 295, -1, 294, 262, 774,
16098 295, -1, -1, 774, 696, -1, 774, 446, -1, 774,
16099 472, -1, 774, 359, -1, 774, 307, -1, 774, 652,
16100 -1, 774, 338, -1, 774, 717, -1, 774, 510, -1,
16101 774, 653, -1, 774, 719, -1, 774, 357, -1, 774,
16102 809, -1, 294, 263, 776, 295, -1, -1, 776, 792,
16103 -1, 294, 264, 778, 295, -1, -1, 778, 420, -1,
16104 778, 779, -1, 294, 265, 780, 781, 295, -1, 559,
16105 -1, 711, -1, 621, -1, 777, -1, -1, 388, -1,
16106 532, -1, 294, 266, 783, 295, -1, 633, -1, 783,
16107 436, -1, 783, 434, -1, 783, 751, -1, 783, 402,
16108 -1, 783, 357, -1, 783, 809, -1, 294, 267, 847,
16109 295, -1, 294, 268, 786, 787, 295, -1, 424, -1,
16110 637, -1, 424, -1, 637, -1, 415, -1, 294, 269,
16111 847, 847, 847, 847, 847, 847, 295, -1, -1, 294,
16112 270, 790, 791, 295, -1, 392, -1, 791, 660, -1,
16113 791, 459, -1, 791, 357, -1, 791, 809, -1, 294,
16114 271, 793, 295, -1, -1, 793, 741, -1, 793, 742,
16115 -1, 793, 390, -1, 793, 640, -1, 793, 642, -1,
16116 -1, 294, 272, 795, 796, 326, 295, -1, 552, -1,
16117 542, -1, 550, -1, 294, 273, 798, 295, -1, -1,
16118 798, 351, -1, 798, 765, -1, 798, 471, -1, 294,
16119 274, 295, -1, 330, -1, 490, -1, 577, -1, 629,
16120 -1, 671, -1, 769, -1, 294, 275, 295, -1, 294,
16121 276, 295, -1, 294, 277, 804, 295, -1, 444, -1,
16122 450, -1, 804, 444, -1, 804, 450, -1, 294, 278,
16123 806, 295, -1, 8, -1, 11, -1, 16, -1, 15,
16124 -1, 17, -1, 18, -1, 20, -1, 22, -1, 23,
16125 -1, 26, -1, 34, -1, 43, -1, 49, -1, 55,
16126 -1, 57, -1, 62, -1, 294, 279, 295, -1, 294,
16127 279, 295, -1, -1, 294, 280, 810, 811, 295, -1,
16128 845, -1, 811, 847, -1, 811, 846, -1, 811, 845,
16129 -1, 811, 462, -1, 592, -1, 313, -1, 593, -1,
16130 575, -1, 594, -1, 573, -1, 294, 281, 846, 295,
16131 -1, -1, 294, 282, 823, 817, 830, 818, 295, -1,
16132 492, -1, 818, 762, -1, 818, 363, -1, 818, 357,
16133 -1, 818, 719, -1, 818, 809, -1, 294, 283, 820,
16134 295, -1, -1, 820, 826, -1, 820, 819, -1, 294,
16135 284, 822, 295, -1, -1, 822, 705, -1, 822, 683,
16136 -1, 822, 483, -1, 822, 479, -1, 822, 612, -1,
16137 822, 598, -1, 822, 357, -1, 822, 809, -1, 592,
16138 -1, 593, -1, 594, -1, 294, 285, 824, 827, 295,
16139 -1, -1, 343, -1, 294, 285, 825, 829, 295, -1,
16140 -1, 345, -1, 294, 286, 831, 295, -1, 33, -1,
16141 42, -1, 40, -1, 52, -1, 54, -1, 9, -1,
16142 29, -1, 19, -1, 25, -1, 53, -1, 294, 287,
16143 335, 295, -1, 294, 288, 581, 295, -1, -1, 294,
16144 289, 547, 740, 835, 564, 295, -1, 294, 290, 548,
16145 295, -1, -1, 294, 291, 838, 839, 295, -1, -1,
16146 839, 713, -1, 839, 702, -1, 839, 503, -1, 294,
16147 292, 841, 295, -1, 797, -1, 841, 305, -1, 841,
16148 456, -1, 841, 567, -1, 841, 534, -1, 841, 357,
16149 -1, 841, 809, -1, -1, 294, 293, 843, 844, 295,
16150 -1, 788, -1, 844, 322, -1, 844, 715, -1, 844,
16151 376, -1, 844, 719, -1, 844, 357, -1, 844, 809,
16152 -1, 4, -1, 7, -1, 5, -1, 845, -1
16157 const unsigned short int
16160 0, 0, 3, 4, 14, 15, 18, 21, 24, 27,
16161 30, 33, 35, 40, 47, 52, 54, 56, 61, 63,
16162 66, 69, 72, 75, 78, 83, 85, 87, 88, 94,
16163 96, 99, 102, 105, 108, 115, 122, 123, 125, 128,
16164 130, 135, 140, 142, 144, 146, 149, 152, 157, 162,
16165 167, 172, 176, 177, 183, 185, 187, 189, 195, 197,
16166 199, 201, 203, 208, 209, 212, 215, 218, 223, 225,
16167 228, 233, 235, 237, 244, 249, 254, 255, 262, 264,
16168 267, 270, 273, 276, 279, 282, 284, 290, 291, 293,
16169 299, 300, 302, 304, 306, 311, 313, 315, 317, 323,
16170 325, 327, 329, 330, 332, 334, 341, 342, 345, 352,
16171 357, 358, 361, 366, 367, 370, 373, 376, 379, 382,
16172 385, 388, 393, 394, 397, 402, 403, 406, 409, 412,
16173 415, 418, 421, 424, 427, 430, 433, 436, 439, 442,
16174 445, 448, 451, 454, 459, 460, 462, 467, 469, 471,
16175 473, 478, 480, 482, 487, 492, 493, 496, 499, 505,
16176 506, 508, 514, 515, 517, 522, 524, 526, 531, 533,
16177 535, 540, 542, 544, 549, 551, 553, 558, 560, 562,
16178 567, 569, 571, 576, 577, 580, 585, 587, 589, 591,
16179 592, 599, 601, 604, 607, 610, 613, 618, 620, 622,
16180 627, 629, 631, 633, 638, 639, 642, 645, 648, 651,
16181 654, 657, 660, 663, 666, 669, 672, 675, 678, 681,
16182 686, 688, 690, 693, 696, 701, 703, 705, 707, 713,
16183 715, 717, 718, 721, 724, 727, 732, 733, 736, 741,
16184 743, 746, 751, 759, 761, 763, 766, 769, 774, 776,
16185 778, 780, 787, 789, 791, 793, 795, 797, 799, 801,
16186 802, 804, 806, 807, 813, 815, 817, 819, 821, 823,
16187 826, 829, 831, 833, 835, 840, 841, 849, 851, 854,
16188 857, 860, 863, 869, 873, 878, 880, 883, 886, 889,
16189 892, 895, 898, 901, 904, 907, 910, 913, 916, 919,
16190 921, 923, 928, 930, 932, 934, 939, 941, 944, 947,
16191 950, 953, 956, 959, 962, 965, 968, 971, 974, 977,
16192 983, 984, 986, 991, 993, 995, 998, 1001, 1004, 1007,
16193 1010, 1013, 1016, 1019, 1022, 1029, 1031, 1033, 1036, 1039,
16194 1041, 1043, 1045, 1047, 1049, 1056, 1058, 1060, 1063, 1066,
16195 1073, 1075, 1077, 1080, 1083, 1090, 1096, 1098, 1100, 1102,
16196 1104, 1107, 1110, 1111, 1117, 1119, 1122, 1123, 1129, 1130,
16197 1133, 1136, 1139, 1142, 1147, 1152, 1158, 1162, 1167, 1169,
16198 1171, 1175, 1176, 1183, 1185, 1187, 1190, 1193, 1196, 1199,
16199 1202, 1205, 1208, 1211, 1217, 1218, 1220, 1222, 1228, 1229,
16200 1231, 1233, 1238, 1240, 1243, 1246, 1249, 1252, 1257, 1258,
16201 1261, 1266, 1267, 1270, 1273, 1276, 1279, 1281, 1283, 1285,
16202 1287, 1289, 1291, 1296, 1298, 1301, 1306, 1307, 1310, 1313,
16203 1316, 1321, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343,
16204 1346, 1349, 1352, 1355, 1358, 1361, 1364, 1367, 1370, 1378,
16205 1380, 1382, 1385, 1388, 1393, 1395, 1397, 1400, 1403, 1410,
16206 1412, 1414, 1417, 1420, 1425, 1427, 1429, 1433, 1434, 1440,
16207 1441, 1444, 1447, 1452, 1453, 1456, 1459, 1462, 1467, 1469,
16208 1471, 1473, 1475, 1477, 1479, 1481, 1483, 1485, 1490, 1492,
16209 1495, 1500, 1505, 1507, 1510, 1512, 1514, 1519, 1521, 1523,
16210 1525, 1526, 1534, 1536, 1539, 1542, 1545, 1548, 1553, 1558,
16211 1563, 1564, 1567, 1572, 1573, 1576, 1579, 1585, 1587, 1589,
16212 1595, 1597, 1599, 1606, 1608, 1610, 1612, 1614, 1616, 1617,
16213 1619, 1621, 1622, 1628, 1630, 1633, 1635, 1637, 1639, 1640,
16214 1646, 1647, 1650, 1653, 1656, 1661, 1666, 1668, 1670, 1672,
16215 1673, 1679, 1681, 1682, 1685, 1688, 1689, 1695, 1697, 1700,
16216 1705, 1707, 1710, 1713, 1716, 1722, 1723, 1725, 1726, 1733,
16217 1734, 1737, 1740, 1743, 1746, 1749, 1752, 1755, 1758, 1761,
16218 1764, 1767, 1770, 1773, 1776, 1777, 1783, 1784, 1787, 1790,
16219 1793, 1796, 1802, 1804, 1806, 1807, 1809, 1811, 1817, 1819,
16220 1821, 1823, 1825, 1827, 1829, 1836, 1837, 1839, 1846, 1847,
16221 1849, 1854, 1855, 1858, 1861, 1864, 1869, 1871, 1874, 1876,
16222 1878, 1885, 1887, 1889, 1891, 1896, 1897, 1900, 1901, 1907,
16223 1908, 1911, 1914, 1917, 1920, 1925, 1927, 1930, 1932, 1934,
16224 1936, 1938, 1940, 1942, 1944, 1946, 1948, 1950, 1951, 1959,
16225 1960, 1963, 1966, 1969, 1972, 1975, 1978, 1981, 1984, 1987,
16226 1992, 1994, 1997, 2000, 2003, 2006, 2007, 2014, 2016, 2019,
16227 2022, 2025, 2028, 2031, 2037, 2039, 2042, 2045, 2050, 2052,
16228 2054, 2059, 2060, 2063, 2066, 2068, 2073, 2074, 2077, 2080,
16229 2085, 2086, 2089, 2092, 2095, 2098, 2100, 2102, 2104, 2106,
16230 2108, 2110, 2116, 2117, 2119, 2121, 2123, 2129, 2130, 2132,
16231 2134, 2136, 2140, 2141, 2147, 2148, 2151, 2154, 2160, 2162,
16232 2165, 2168, 2175, 2177, 2179, 2182, 2185, 2190, 2191, 2194,
16233 2197, 2200, 2205, 2207, 2210, 2215, 2216, 2219, 2222, 2225,
16234 2230, 2232, 2235, 2238, 2241, 2244, 2250, 2255, 2257, 2260,
16235 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2279, 2281, 2286,
16236 2294, 2296, 2298, 2301, 2304, 2312, 2314, 2316, 2319, 2322,
16237 2329, 2331, 2333, 2338, 2343, 2345, 2348, 2351, 2354, 2357,
16238 2360, 2363, 2366, 2369, 2372, 2377, 2382, 2384, 2387, 2394,
16239 2395, 2397, 2403, 2408, 2410, 2413, 2414, 2420, 2422, 2425,
16240 2430, 2432, 2434, 2439, 2440, 2446, 2447, 2450, 2453, 2456,
16241 2461, 2462, 2465, 2470, 2471, 2474, 2477, 2480, 2485, 2487,
16242 2490, 2495, 2496, 2499, 2505, 2510, 2512, 2515, 2516, 2523,
16243 2524, 2527, 2530, 2533, 2536, 2539, 2542, 2545, 2548, 2551,
16244 2554, 2557, 2560, 2561, 2568, 2569, 2572, 2575, 2578, 2581,
16245 2584, 2587, 2590, 2593, 2596, 2599, 2600, 2607, 2609, 2612,
16246 2615, 2618, 2624, 2626, 2628, 2631, 2634, 2639, 2640, 2643,
16247 2646, 2648, 2653, 2654, 2657, 2660, 2665, 2667, 2669, 2672,
16248 2675, 2678, 2681, 2684, 2687, 2690, 2693, 2696, 2701, 2703,
16249 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729, 2732,
16250 2735, 2738, 2743, 2744, 2747, 2750, 2755, 2756, 2759, 2762,
16251 2768, 2773, 2774, 2777, 2780, 2783, 2786, 2788, 2790, 2792,
16252 2794, 2796, 2798, 2800, 2802, 2808, 2809, 2811, 2813, 2815,
16253 2821, 2822, 2824, 2826, 2828, 2834, 2835, 2837, 2842, 2844,
16254 2847, 2848, 2855, 2857, 2860, 2863, 2866, 2869, 2871, 2873,
16255 2878, 2879, 2882, 2885, 2888, 2891, 2894, 2897, 2900, 2903,
16256 2906, 2909, 2912, 2914, 2916, 2918, 2920, 2922, 2924, 2929,
16257 2930, 2933, 2936, 2942, 2944, 2947, 2954, 2956, 2958, 2961,
16258 2964, 2970, 2972, 2974, 2976, 2978, 2983, 2984, 2987, 2989,
16259 2996, 2998, 3004, 3010, 3016, 3021, 3023, 3026, 3029, 3032,
16260 3037, 3039, 3042, 3044, 3045, 3051, 3053, 3056, 3059, 3062,
16261 3065, 3068, 3069, 3075, 3076, 3079, 3082, 3085, 3090, 3091,
16262 3093, 3099, 3100, 3102, 3107, 3108, 3110, 3115, 3117, 3120,
16263 3121, 3127, 3128, 3131, 3134, 3137, 3143, 3145, 3147, 3149,
16264 3151, 3154, 3157, 3162, 3167, 3168, 3171, 3174, 3177, 3179,
16265 3182, 3187, 3192, 3193, 3196, 3199, 3202, 3205, 3208, 3211,
16266 3214, 3217, 3220, 3223, 3226, 3229, 3232, 3237, 3238, 3241,
16267 3246, 3247, 3250, 3253, 3259, 3261, 3263, 3265, 3267, 3268,
16268 3270, 3272, 3277, 3279, 3282, 3285, 3288, 3291, 3294, 3297,
16269 3302, 3308, 3310, 3312, 3314, 3316, 3318, 3328, 3329, 3335,
16270 3337, 3340, 3343, 3346, 3349, 3354, 3355, 3358, 3361, 3364,
16271 3367, 3370, 3371, 3378, 3380, 3382, 3384, 3389, 3390, 3393,
16272 3396, 3399, 3403, 3405, 3407, 3409, 3411, 3413, 3415, 3419,
16273 3423, 3428, 3430, 3432, 3435, 3438, 3443, 3445, 3447, 3449,
16274 3451, 3453, 3455, 3457, 3459, 3461, 3463, 3465, 3467, 3469,
16275 3471, 3473, 3475, 3479, 3483, 3484, 3490, 3492, 3495, 3498,
16276 3501, 3504, 3506, 3508, 3510, 3512, 3514, 3516, 3521, 3522,
16277 3530, 3532, 3535, 3538, 3541, 3544, 3547, 3552, 3553, 3556,
16278 3559, 3564, 3565, 3568, 3571, 3574, 3577, 3580, 3583, 3586,
16279 3589, 3591, 3593, 3595, 3601, 3602, 3604, 3610, 3611, 3613,
16280 3618, 3620, 3622, 3624, 3626, 3628, 3630, 3632, 3634, 3636,
16281 3638, 3643, 3648, 3649, 3657, 3662, 3663, 3669, 3670, 3673,
16282 3676, 3679, 3684, 3686, 3689, 3692, 3695, 3698, 3701, 3704,
16283 3705, 3711, 3713, 3716, 3719, 3722, 3725, 3728, 3731, 3733,
16288 const unsigned short int
16291 0, 945, 945, 944, 968, 969, 970, 971, 972, 973,
16292 980, 989, 992, 998, 1007, 1013, 1014, 1017, 1020, 1021,
16293 1022, 1023, 1024, 1028, 1034, 1037, 1041, 1048, 1047, 1082,
16294 1083, 1084, 1085, 1092, 1101, 1109, 1123, 1126, 1129, 1139,
16295 1146, 1149, 1152, 1153, 1154, 1155, 1159, 1165, 1168, 1174,
16296 1180, 1186, 1190, 1189, 1219, 1220, 1221, 1224, 1227, 1228,
16297 1231, 1232, 1235, 1251, 1254, 1261, 1268, 1281, 1287, 1291,
16298 1297, 1304, 1308, 1314, 1322, 1328, 1332, 1331, 1441, 1442,
16299 1443, 1444, 1445, 1452, 1459, 1462, 1466, 1481, 1484, 1491,
16300 1506, 1509, 1516, 1522, 1528, 1535, 1539, 1543, 1549, 1552,
16301 1553, 1554, 1557, 1558, 1559, 1562, 1569, 1570, 1573, 1581,
16302 1587, 1590, 1596, 1599, 1600, 1601, 1602, 1603, 1604, 1605,
16303 1609, 1615, 1622, 1625, 1632, 1635, 1636, 1637, 1638, 1639,
16304 1640, 1641, 1642, 1643, 1644, 1645, 1656, 1667, 1668, 1669,
16305 1670, 1671, 1675, 1681, 1684, 1685, 1688, 1691, 1692, 1693,
16306 1696, 1702, 1707, 1714, 1720, 1723, 1724, 1725, 1731, 1748,
16307 1751, 1757, 1763, 1766, 1772, 1778, 1779, 1782, 1788, 1789,
16308 1792, 1798, 1799, 1802, 1808, 1809, 1812, 1818, 1825, 1834,
16309 1837, 1841, 1847, 1850, 1851, 1857, 1863, 1867, 1871, 1878,
16310 1877, 1978, 1983, 1987, 1995, 1999, 2009, 2012, 2016, 2022,
16311 2028, 2029, 2032, 2035, 2038, 2039, 2040, 2041, 2042, 2043,
16312 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2055, 2061,
16313 2064, 2065, 2066, 2067, 2070, 2077, 2081, 2085, 2091, 2094,
16314 2095, 2098, 2099, 2100, 2101, 2104, 2111, 2114, 2121, 2124,
16315 2128, 2131, 2137, 2140, 2141, 2142, 2146, 2152, 2155, 2156,
16316 2157, 2160, 2163, 2164, 2165, 2168, 2172, 2173, 2174, 2177,
16317 2178, 2179, 2183, 2182, 2215, 2216, 2217, 2218, 2219, 2220,
16318 2236, 2254, 2390, 2575, 2699, 2706, 2705, 2809, 2810, 2811,
16319 2812, 2819, 2828, 2831, 2834, 2837, 2838, 2839, 2840, 2841,
16320 2842, 2843, 2844, 2845, 2846, 2847, 2851, 2852, 2856, 2859,
16321 2862, 2865, 2868, 2869, 2870, 2873, 2876, 2877, 2878, 2879,
16322 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2890, 2891, 2897,
16323 2900, 2901, 2904, 2907, 2908, 2909, 2910, 2911, 2912, 2913,
16324 2914, 2915, 2916, 2920, 2926, 2929, 2930, 2931, 2935, 2941,
16325 2942, 2943, 2944, 2945, 2948, 2952, 2953, 2954, 2958, 2964,
16326 2967, 2968, 2969, 2973, 2979, 2987, 2990, 2991, 2994, 2995,
16327 2996, 2997, 3001, 3000, 3034, 3035, 3049, 3048, 3055, 3056,
16328 3060, 3064, 3068, 3071, 3077, 3083, 3090, 3121, 3124, 3125,
16329 3128, 3132, 3131, 3575, 3580, 3584, 3588, 3593, 3598, 3607,
16330 3612, 3616, 3621, 3628, 3630, 3631, 3632, 3635, 3643, 3646,
16331 3650, 3657, 3660, 3661, 3662, 3663, 3664, 3670, 3673, 3674,
16332 3677, 3680, 3681, 3682, 3683, 3687, 3693, 3694, 3697, 3698,
16333 3701, 3702, 3705, 3711, 3715, 3721, 3738, 3741, 3747, 3753,
16334 3766, 3773, 3776, 3780, 3784, 3788, 3792, 3796, 3800, 3804,
16335 3808, 3812, 3816, 3826, 3836, 3841, 3845, 3850, 3858, 3861,
16336 3862, 3863, 3867, 3873, 3876, 3877, 3878, 3879, 3882, 3885,
16337 3886, 3887, 3891, 3897, 3900, 3901, 3904, 3908, 3907, 4017,
16338 4018, 4137, 4246, 4249, 4250, 4269, 4431, 4515, 4518, 4519,
16339 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4529, 4532, 4533,
16340 4536, 4542, 4545, 4546, 4552, 4558, 4561, 4567, 4570, 4573,
16341 4580, 4579, 4704, 4705, 4706, 4707, 4714, 4723, 4726, 4732,
16342 4735, 4736, 4739, 4742, 4743, 4744, 4747, 4760, 4761, 4764,
16343 4767, 4768, 4771, 4774, 4775, 4778, 4779, 4783, 4786, 4787,
16344 4788, 4792, 4791, 4827, 4828, 4831, 4924, 4986, 5031, 5030,
16345 5124, 5125, 5126, 5127, 5130, 5136, 5142, 5145, 5151, 5155,
16346 5154, 5248, 5346, 5347, 5348, 5352, 5351, 5387, 5388, 5391,
16347 5394, 5395, 5396, 5400, 5406, 5421, 5424, 5432, 5431, 5504,
16348 5507, 5513, 5519, 5525, 5595, 5626, 5657, 5727, 5808, 5889,
16349 5894, 5964, 5968, 5976, 5987, 5986, 6068, 6069, 6070, 6071,
16350 6072, 6075, 6078, 6079, 6082, 6083, 6084, 6087, 6090, 6091,
16351 6092, 6095, 6096, 6097, 6100, 6114, 6117, 6120, 6127, 6128,
16352 6134, 6150, 6153, 6161, 6169, 6182, 6188, 6192, 6198, 6202,
16353 6214, 6241, 6245, 6249, 6255, 6258, 6259, 6263, 6262, 6372,
16354 6373, 6492, 6599, 6600, 6603, 6609, 6615, 6618, 6622, 6626,
16355 6632, 6638, 6642, 6648, 6654, 6660, 6666, 6673, 6672, 6872,
16356 6875, 6880, 6886, 6890, 6894, 6898, 6902, 6906, 6914, 6924,
16357 6927, 6928, 6932, 6936, 6937, 6944, 6943, 7042, 7043, 7044,
16358 7045, 7046, 7054, 7064, 7073, 7077, 7089, 7103, 7109, 7115,
16359 7123, 7126, 7127, 7128, 7131, 7165, 7168, 7169, 7170, 7173,
16360 7176, 7177, 7178, 7179, 7183, 7189, 7190, 7193, 7194, 7197,
16361 7198, 7201, 7204, 7205, 7206, 7207, 7210, 7240, 7243, 7247,
16362 7254, 7261, 7265, 7264, 7361, 7362, 7486, 7489, 7492, 7493,
16363 7497, 7503, 7506, 7507, 7508, 7512, 7518, 7534, 7537, 7544,
16364 7551, 7564, 7570, 7574, 7580, 7583, 7584, 7585, 7586, 7592,
16365 7595, 7596, 7597, 7598, 7602, 7608, 7614, 7617, 7618, 7621,
16366 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7634, 7640,
16367 7643, 7644, 7645, 7649, 7655, 7658, 7659, 7660, 7664, 7670,
16368 7676, 7677, 7680, 7686, 7689, 7693, 7694, 7695, 7696, 7697,
16369 7698, 7699, 7700, 7704, 7710, 7713, 7716, 7717, 7720, 7813,
16370 7816, 7819, 7827, 7830, 7831, 7835, 7834, 7868, 7869, 7882,
16371 7892, 7893, 7896, 7903, 7902, 8003, 8004, 8128, 8129, 8132,
16372 8135, 8136, 8139, 8155, 8158, 8166, 8174, 8187, 8193, 8197,
16373 8203, 8206, 8207, 8213, 8219, 8222, 8223, 8227, 8226, 8387,
16374 8390, 8394, 8401, 8407, 8414, 8422, 8430, 8438, 8446, 8452,
16375 8456, 8464, 8475, 8474, 8649, 8652, 8659, 8665, 8672, 8680,
16376 8688, 8696, 8704, 8710, 8714, 8722, 8721, 8823, 8824, 8825,
16377 8833, 8843, 8853, 8859, 8865, 8877, 8891, 8894, 8895, 8896,
16378 8899, 8933, 8936, 8937, 8938, 8941, 8944, 8945, 8946, 8947,
16379 8948, 8949, 8950, 8951, 8952, 8953, 8957, 8963, 8969, 8974,
16380 8980, 8990, 8999, 9009, 9020, 9031, 9042, 9053, 9062, 9066,
16381 9071, 9078, 9081, 9082, 9083, 9086, 9093, 9096, 9101, 9110,
16382 9228, 9231, 9232, 9233, 9234, 9238, 9244, 9245, 9251, 9252,
16383 9255, 9256, 9259, 9260, 9263, 9265, 9266, 9267, 9268, 9271,
16384 9301, 9304, 9308, 9315, 9322, 9329, 9332, 9339, 9342, 9343,
16385 9347, 9346, 9439, 9460, 9466, 9471, 9472, 9480, 9483, 9486,
16386 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498,
16387 9499, 9503, 9509, 9510, 9511, 9512, 9513, 9514, 9517, 9520,
16388 9521, 9522, 9525, 9531, 9535, 9538, 9541, 9542, 9543, 9547,
16389 9553, 9561, 9567, 9573, 9577, 9583, 9590, 9593, 9600, 9603,
16390 9611, 9615, 9621, 9628, 9635, 9638, 9642, 9643, 9647, 9650,
16391 9653, 9654, 9657, 9661, 9660, 9693, 9713, 9714, 9715, 9716,
16392 9724, 9735, 9734, 9769, 9770, 9771, 9779, 9789, 9792, 9793,
16393 9796, 9799, 9800, 9803, 9806, 9807, 9810, 9813, 9814, 9818,
16394 9817, 9861, 9862, 9863, 9870, 9879, 9882, 9883, 9884, 9887,
16395 9891, 9892, 9895, 9901, 9918, 9921, 9928, 9935, 9948, 9952,
16396 9958, 9964, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974,
16397 9975, 9976, 9977, 9978, 9979, 9983, 9989, 9992, 9993, 9996,
16398 9999, 10000, 10001, 10004, 10007, 10011, 10012, 10013, 10016, 10017,
16399 10018, 10021, 10027, 10028, 10029, 10030, 10031, 10032, 10036, 10042,
16400 10048, 10051, 10062, 10080, 10091, 10107, 10120, 10139, 10138, 10171,
16401 10180, 10181, 10182, 10191, 10202, 10205, 10206, 10207, 10208, 10209,
16402 10210, 10214, 10213, 10243, 10244, 10245, 10248, 10251, 10252, 10253,
16403 10254, 10257, 10260, 10261, 10262, 10263, 10264, 10265, 10268, 10271,
16404 10274, 10277, 10278, 10279, 10280, 10283, 10289, 10293, 10297, 10301,
16405 10305, 10309, 10313, 10317, 10321, 10325, 10329, 10333, 10337, 10341,
16406 10345, 10349, 10355, 10358, 10365, 10364, 10377, 10381, 10385, 10389,
16407 10393, 10396, 10397, 10400, 10401, 10404, 10405, 10408, 10415, 10414,
16408 10556, 10566, 10567, 10568, 10575, 10576, 10588, 10591, 10592, 10593,
16409 10596, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10610,
16410 10616, 10619, 10622, 10625, 10628, 10629, 10632, 10647, 10650, 10656,
16411 10682, 10686, 10690, 10694, 10698, 10702, 10706, 10710, 10714, 10718,
16412 10724, 10730, 10737, 10736, 10800, 10807, 10806, 10916, 10917, 11036,
16413 11143, 11146, 11149, 11150, 11151, 11152, 11153, 11154, 11158, 11165,
16414 11164, 11201, 11208, 11215, 11223, 11231, 11232, 11239, 11248, 11254,
16433 unsigned int yylno =
yyrline_[yyrule];
16434 int yynrhs =
yyr2_[yyrule];
16436 *
yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
16437 <<
" (line " << yylno <<
"):" << std::endl;
16439 for (
int yyi = 0; yyi < yynrhs; yyi++)
16453 translate_table[] =
16455 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16456 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16457 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16458 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16460 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16461 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16463 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16470 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16471 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16474 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
16480 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
16481 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
16482 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
16483 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
16484 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
16485 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
16486 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
16487 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
16488 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
16489 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
16490 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
16491 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
16492 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
16493 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
16494 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
16495 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
16496 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
16497 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
16498 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
16499 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
16500 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
16501 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
16502 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
16503 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
16504 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
16505 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
16506 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
16507 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
16508 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
16509 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
16513 return translate_table[t];
16532 #line 58 "Parser.yy"
16536 #line 16537 "Parser.cc"
16540 #line 11275 "Parser.yy"
16550 __FUNCTION__, __FILE__, __LINE__ );
16556 log(
"Synthetic parser error created\n");
boost::shared_ptr< LogicValue > LogicValueSharedPtr
An acyclic inoutVisitor implementation.
static const unsigned short int yytable_[]
Represents attributes of a Port or PortReference object.
stack< location_type > location_stack_type
location stack type.
void log(const char *fmt,...)
static const short int yypact_ninf_
boost::shared_ptr< Instance > InstanceSharedPtr
PortAttributes * mAttribute
boost::shared_ptr< StatusContainer > StatusContainerSharedPtr
torc::generic::TimeStamp * timeStamp
boost::shared_ptr< EdifContext > EdifContextSharedPtr
Represents attributes of a Net object.
PortRefData * mParentPort
void set_debug_stream(std::ostream &)
Set the current debugging stream.
void set_debug_level(debug_level_type l)
Set the current debugging level.
boost::shared_ptr< NetAttributes > NetAttributesSharedPtr
LogicMapType mLogicMapType
position begin
Beginning of the located region.
boost::shared_ptr< ParameterArray > ParameterArraySharedPtr
boost::shared_ptr< ScalarPort > ScalarPortSharedPtr
#define YY_REDUCE_PRINT(Rule)
torc::generic::InstanceInfo * instanceInfo
boost::shared_ptr< WaveValue > WaveValueSharedPtr
debug_level_type debug_level() const
The current debugging level.
torc::generic::NetAttributes * netAttributes
boost::shared_ptr< ScalarNet > ScalarNetSharedPtr
static const unsigned short int yytoken_number_[]
For each scanner token number, its symbol number.
static const int yyterror_
boost::shared_ptr< PropertyContainer > PropertyContainerSharedPtr
boost::shared_ptr< LogicElement > LogicElementSharedPtr
const_iterator end() const
Bison undocumented.
boost::shared_ptr< PortBundle > PortBundleSharedPtr
boost::shared_ptr< Permutable > PermutableSharedPtr
Present a slice of the top of a stack.
unsigned int line
Current line number.
This structure is for logicRef and libraryRef used in logicMapInput/logicMapOutput.
void setNominal(const Value::Number &inSource)
static const unsigned short int yyrline_[]
For each rule, its source line number.
Represents the portDelay attribute on Port or PortReference.
virtual void error(const location_type &loc, const std::string &msg)
torc::generic::LogicListData * logicListData
std::vector< size_t > mIndices
void setMax(const Value::Number &inSource)
std::vector< Value > mValues
stack< semantic_type > semantic_stack_type
Semantic value stack type.
torc::generic::VersionData * edifVersion
boost::shared_ptr< Linker > LinkerSharedPtr
const_iterator begin() const
Bison undocumented.
Represents the netDelay attribute of Net.
boost::shared_ptr< Parameter > ParameterSharedPtr
state_stack_type yystate_stack_
The state stack.
boost::shared_ptr< Written > WrittenSharedPtr
virtual void yy_reduce_print_(int r)
Report on the debug stream that the rule r is going to be reduced.
boost::shared_ptr< ObjectFactory > ObjectFactorySharedPtr
static const unsigned short int yydefact_[]
boost::shared_ptr< InstanceArray > InstanceArraySharedPtr
torc::generic::PortListData * portListData
static const unsigned short int yystos_[]
For a state, its accessing symbol.
static const short int yycheck_[]
void setMin(const Value::Number &inSource)
void setAppendToUserDataBuffer(bool inAppendToBuffer)
void setAppendToBuffer(bool inAppendToBuffer)
boost::shared_ptr< Simulate > SimulateSharedPtr
boost::shared_ptr< Design > DesignSharedPtr
std::string getUserDataBuffer()
boost::shared_ptr< PortAttributes > PortAttributesSharedPtr
virtual void yy_symbol_value_print_(int yytype, const semantic_type *yyvaluep, const location_type *yylocationp)
Report a symbol value on the debug stream.
stack< state_type > state_stack_type
State stack type.
boost::shared_ptr< VectorPort > VectorPortSharedPtr
boost::shared_ptr< VectorNet > VectorNetSharedPtr
static const unsigned short int yyr1_[]
For a rule, its LHS.
The Error object thrown by different methods of EdifOM.
location_stack_type yylocation_stack_
The location stack.
boost::shared_ptr< LogicalResponse > LogicalResponseSharedPtr
torc::generic::LogicValueAttributes * logicValueAttributes
boost::shared_ptr< Net > NetSharedPtr
virtual Pointer getParentCollection() const
Represents a parameter array.
static const int yyfinal_
#define YYLLOC_DEFAULT(Current, Rhs, N)
Represents the time in Universal Time Coordinate (year, month, day, hour, minute, second) ...
Parser(class Driver &inDriver_yyarg)
Build a parser object.
void push(const T &t)
Bison undocumented.
boost::shared_ptr< Library > LibrarySharedPtr
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
torc::generic::PairStrData * pairStrData
boost::shared_ptr< PortReference > PortReferenceSharedPtr
boost::shared_ptr< SimulationInfo > SimulationInfoSharedPtr
static const short int yypgoto_[]
torc::generic::ParamAssignInfo * paramAssignInfo
std::string * filename
File name to which this position refers.
boost::shared_ptr< ForbiddenEvent > ForbiddenEventSharedPtr
boost::shared_ptr< PortList > PortListSharedPtr
boost::shared_ptr< Apply > ApplySharedPtr
static const unsigned int yyuser_token_number_max_
void saveContextData(const std::string &inName, const boost::any &inSource)
EdifContextSharedPtr getContext() const
Represents attributes of a view interface.
boost::shared_ptr< Event > EventSharedPtr
torc::generic::PortAttributes * portAttributes
void resetUserDataBuffer()
virtual std::string yysyntax_error_(int yystate, int tok)
torc::generic::InstanceRefData * instanceRef
static const short int yydefgoto_[]
boost::shared_ptr< SingleParameter > SingleParameterSharedPtr
torc::generic::ValueData * valueData
virtual std::string yytnamerr_(const char *n)
Convert the symbol name n to a form suitable for a diagnostic.
virtual void yy_symbol_print_(int yytype, const semantic_type *yyvaluep, const location_type *yylocationp)
Report a symbol on the debug stream.
Scanner * getLexer() const
This class is used within simulationInfo construct to define a logic value to use for modeling...
std::vector< size_t > * arrayDimensions
boost::shared_ptr< InterfaceAttributes > InterfaceAttributesSharedPtr
semantic_stack_type yysemantic_stack_
The semantic value stack.
torc::generic::PortInstData * portInst
std::ostream & debug_stream() const
The current debugging stream.
static const int yyempty_
static const short int yypact_[]
For a state, the index in yytable_ of its portion.
void error(const class location &inLocation, const std::string &inMessage)
static const signed char yytable_ninf_
position end
End of the located region.
std::deque< state_type >::const_reverse_iterator const_iterator
torc::generic::PortDelay * portDelay
torc::generic::NetDelay * netDelay
void yydestruct_(const char *yymsg, int yytype, semantic_type *yyvaluep, location_type *yylocationp)
Reclaim the memory associated to a symbol.
static const int yyerrcode_
token_number_type yytranslate_(int t)
Convert a scanner token number t to a symbol number.
void pop(unsigned int n=1)
Bison undocumented.
virtual const std::string getName() const
boost::shared_ptr< View > ViewSharedPtr
boost::shared_ptr< Cell > CellSharedPtr
static const int yyntokens_
void setParserError(const Error &inSource)
boost::shared_ptr< InterfaceJoinedInfo > InterfaceJoinedInfoSharedPtr
torc::generic::NameData * nameData
static const char *const yytname_[]
For a symbol, its name in clear.
boost::shared_ptr< PortListAlias > PortListAliasSharedPtr
boost::shared_ptr< Port > PortSharedPtr
boost::shared_ptr< PathDelay > PathDelaySharedPtr
torc::generic::ViewRefData * viewRefData
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
boost::shared_ptr< Property > PropertySharedPtr
void getLimits(std::vector< SizeType > &outLimits) const
boost::shared_ptr< SingleInstance > SingleInstanceSharedPtr
torc::generic::PairData * pairData
static const token_number_type yyundef_token_
const std::vector< SizeType > & getIndices() const
static const unsigned short int yyprhs_[]
For each rule, the index of the first RHS symbol in yyrhs_.
boost::shared_ptr< Timing > TimingSharedPtr
boost::shared_ptr< Status > StatusSharedPtr
boost::shared_ptr< NetBundle > NetBundleSharedPtr
static const rhs_number_type yyrhs_[]
A `-1'-separated list of the rules' RHS.
short int rhs_number_type
A type to store symbol numbers and -1.
virtual void yystack_print_()
Print the state stack on the debug stream.
torc::generic::PortRefData * portRefData
std::string & getStreamName()
int debug_level_type
Type for debugging levels.
torc::generic::CellRefData * cellRefData
unsigned short int token_number_type
Internal symbol numbers.
boost::shared_ptr< Root > RootSharedPtr
boost::shared_ptr< ParameterMap > ParameterMapSharedPtr
torc::generic::InterfaceAttributes * interfaceAttributes
torc::generic::LogicRefData * logicRefData
void setIsIdContext(bool inIsIdContext)
bool getIsParserErrorSet() const
static const unsigned char yyr2_[]
For a rule, its RHS length.
torc::generic::NetRefData * netRefData
void setCurrentLocation(const std::string &inFunction, const std::string &inFile, uint32_t inLine)