jssm 5.142.2 → 5.142.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -428,11 +428,11 @@ function peg$parse(input, options) {
428
428
  return { config_kind: "action", config_items: action_items || [] };
429
429
  }, peg$c1359 = function (key, value) { return { key, value }; }, peg$c1360 = peg$otherExpectation("graph default edge color"), peg$c1361 = function (value) { return { key: 'graph_default_edge_color', value }; }, peg$c1362 = "transition", peg$c1363 = peg$literalExpectation("transition", false), peg$c1364 = function (transition_items) {
430
430
  return { config_kind: "transition", config_items: transition_items || [] };
431
- }, peg$c1365 = "graph_layout", peg$c1366 = peg$literalExpectation("graph_layout", false), peg$c1367 = function (value) { return { key: "graph_layout", value: value }; }, peg$c1368 = "start_states", peg$c1369 = peg$literalExpectation("start_states", false), peg$c1370 = function (value) { return { key: "start_states", value: value }; }, peg$c1371 = "end_states", peg$c1372 = peg$literalExpectation("end_states", false), peg$c1373 = function (value) { return { key: "end_states", value: value }; }, peg$c1374 = "failed_outputs", peg$c1375 = peg$literalExpectation("failed_outputs", false), peg$c1376 = function (value) { return { key: "failed_outputs", value: typeof value === 'string' ? [value] : value }; }, peg$c1377 = "graph_bg_color", peg$c1378 = peg$literalExpectation("graph_bg_color", false), peg$c1379 = function (value) { return { key: "graph_bg_color", value: value }; }, peg$c1380 = "allows_override", peg$c1381 = peg$literalExpectation("allows_override", false), peg$c1382 = function (value) { return { key: "allows_override", value: value }; }, peg$c1383 = function () { return true; }, peg$c1384 = function () { return false; }, peg$c1385 = peg$otherExpectation("configuration"), peg$c1386 = "MIT", peg$c1387 = peg$literalExpectation("MIT", false), peg$c1388 = "BSD 2-clause", peg$c1389 = peg$literalExpectation("BSD 2-clause", false), peg$c1390 = "BSD 3-clause", peg$c1391 = peg$literalExpectation("BSD 3-clause", false), peg$c1392 = "Apache 2.0", peg$c1393 = peg$literalExpectation("Apache 2.0", false), peg$c1394 = "Mozilla 2.0", peg$c1395 = peg$literalExpectation("Mozilla 2.0", false), peg$c1396 = "Public domain", peg$c1397 = peg$literalExpectation("Public domain", false), peg$c1398 = "GPL v2", peg$c1399 = peg$literalExpectation("GPL v2", false), peg$c1400 = "GPL v3", peg$c1401 = peg$literalExpectation("GPL v3", false), peg$c1402 = "LGPL v2.1", peg$c1403 = peg$literalExpectation("LGPL v2.1", false), peg$c1404 = "LGPL v3.0", peg$c1405 = peg$literalExpectation("LGPL v3.0", false), peg$c1406 = "Unknown", peg$c1407 = peg$literalExpectation("Unknown", false), peg$c1408 = peg$otherExpectation("direction"), peg$c1409 = "up", peg$c1410 = peg$literalExpectation("up", false), peg$c1411 = "right", peg$c1412 = peg$literalExpectation("right", false), peg$c1413 = "down", peg$c1414 = peg$literalExpectation("down", false), peg$c1415 = "left", peg$c1416 = peg$literalExpectation("left", false), peg$c1417 = peg$otherExpectation("hook definition (open/closed)"), peg$c1418 = "open", peg$c1419 = peg$literalExpectation("open", false), peg$c1420 = "closed", peg$c1421 = peg$literalExpectation("closed", false), peg$c1422 = "machine_author", peg$c1423 = peg$literalExpectation("machine_author", false), peg$c1424 = function (value) { return { key: "machine_author", value }; }, peg$c1425 = "machine_contributor", peg$c1426 = peg$literalExpectation("machine_contributor", false), peg$c1427 = function (value) { return { key: "machine_contributor", value }; }, peg$c1428 = "machine_comment", peg$c1429 = peg$literalExpectation("machine_comment", false), peg$c1430 = function (value) { return { key: "machine_comment", value }; }, peg$c1431 = "machine_definition", peg$c1432 = peg$literalExpectation("machine_definition", false), peg$c1433 = function (value) { return { key: "machine_definition", value }; }, peg$c1434 = "machine_name", peg$c1435 = peg$literalExpectation("machine_name", false), peg$c1436 = function (value) { return { key: "machine_name", value }; }, peg$c1437 = "npm_name", peg$c1438 = peg$literalExpectation("npm_name", false), peg$c1439 = function (value) { return { key: "npm_name", value }; }, peg$c1440 = "machine_reference", peg$c1441 = peg$literalExpectation("machine_reference", false), peg$c1442 = function (value) { return { key: "machine_reference", value }; }, peg$c1443 = "machine_version", peg$c1444 = peg$literalExpectation("machine_version", false), peg$c1445 = function (value) { return { key: "machine_version", value }; }, peg$c1446 = "machine_license", peg$c1447 = peg$literalExpectation("machine_license", false), peg$c1448 = function (value) { return { key: "machine_license", value }; }, peg$c1449 = "machine_language", peg$c1450 = peg$literalExpectation("machine_language", false), peg$c1451 = function (value) { return { key: "machine_language", value }; }, peg$c1452 = "fsl_version", peg$c1453 = peg$literalExpectation("fsl_version", false), peg$c1454 = function (value) { return { key: "fsl_version", value }; }, peg$c1455 = "theme", peg$c1456 = peg$literalExpectation("theme", false), peg$c1457 = function (value) { return { key: "theme", value }; }, peg$c1458 = "flow", peg$c1459 = peg$literalExpectation("flow", false), peg$c1460 = function (value) { return { key: "flow", value }; }, peg$c1461 = "hooks", peg$c1462 = peg$literalExpectation("hooks", false), peg$c1463 = function (value) { return { key: "hook_definition", value }; }, peg$c1464 = "dot_preamble", peg$c1465 = peg$literalExpectation("dot_preamble", false), peg$c1466 = function (value) { return { key: "dot_preamble", value }; }, peg$c1467 = peg$otherExpectation("machine attribute"), peg$c1468 = "label", peg$c1469 = peg$literalExpectation("label", false), peg$c1470 = function (value) { return { key: 'state-label', value }; }, peg$c1471 = "color", peg$c1472 = peg$literalExpectation("color", false), peg$c1473 = function (value) { return { key: 'color', value }; }, peg$c1474 = peg$otherExpectation("text color"), peg$c1475 = "text-color", peg$c1476 = peg$literalExpectation("text-color", false), peg$c1477 = function (value) { return { key: 'text-color', value }; }, peg$c1478 = peg$otherExpectation("background color"), peg$c1479 = "background-color", peg$c1480 = peg$literalExpectation("background-color", false), peg$c1481 = function (value) { return { key: 'background-color', value }; }, peg$c1482 = peg$otherExpectation("border color"), peg$c1483 = "border-color", peg$c1484 = peg$literalExpectation("border-color", false), peg$c1485 = function (value) { return { key: 'border-color', value }; }, peg$c1486 = peg$otherExpectation("shape"), peg$c1487 = "shape", peg$c1488 = peg$literalExpectation("shape", false), peg$c1489 = function (value) { return { key: 'shape', value }; }, peg$c1490 = peg$otherExpectation("corners"), peg$c1491 = "corners", peg$c1492 = peg$literalExpectation("corners", false), peg$c1493 = function (value) { return { key: 'corners', value }; }, peg$c1494 = peg$otherExpectation("linestyle"), peg$c1495 = function (value) { return { key: 'line-style', value }; }, peg$c1496 = "linestyle", peg$c1497 = peg$literalExpectation("linestyle", false), peg$c1498 = peg$otherExpectation("image"), peg$c1499 = "image", peg$c1500 = peg$literalExpectation("image", false), peg$c1501 = function (value) { return { key: 'image', value }; }, peg$c1502 = peg$otherExpectation("url"), peg$c1503 = "url", peg$c1504 = peg$literalExpectation("url", false), peg$c1505 = function (value) { return { key: 'url', value }; }, peg$c1506 = peg$otherExpectation("state property"), peg$c1507 = "property", peg$c1508 = peg$literalExpectation("property", false), peg$c1509 = function (name, value) {
431
+ }, peg$c1365 = "graph_layout", peg$c1366 = peg$literalExpectation("graph_layout", false), peg$c1367 = function (value) { return { key: "graph_layout", value: value }; }, peg$c1368 = "start_states", peg$c1369 = peg$literalExpectation("start_states", false), peg$c1370 = function (value) { return { key: "start_states", value: value }; }, peg$c1371 = "end_states", peg$c1372 = peg$literalExpectation("end_states", false), peg$c1373 = function (value) { return { key: "end_states", value: value }; }, peg$c1374 = "failed_outputs", peg$c1375 = peg$literalExpectation("failed_outputs", false), peg$c1376 = function (value) { return { key: "failed_outputs", value: typeof value === 'string' ? [value] : value }; }, peg$c1377 = "graph_bg_color", peg$c1378 = peg$literalExpectation("graph_bg_color", false), peg$c1379 = function (value) { return { key: "graph_bg_color", value: value }; }, peg$c1380 = "allows_override", peg$c1381 = peg$literalExpectation("allows_override", false), peg$c1382 = function (value) { return { key: "allows_override", value: value }; }, peg$c1383 = "allow_islands", peg$c1384 = peg$literalExpectation("allow_islands", false), peg$c1385 = function (value) { return { key: "allow_islands", value: value }; }, peg$c1386 = function () { return true; }, peg$c1387 = function () { return false; }, peg$c1388 = "with_start", peg$c1389 = peg$literalExpectation("with_start", false), peg$c1390 = function () { return 'with_start'; }, peg$c1391 = function () { return true; }, peg$c1392 = function () { return false; }, peg$c1393 = peg$otherExpectation("configuration"), peg$c1394 = "MIT", peg$c1395 = peg$literalExpectation("MIT", false), peg$c1396 = "BSD 2-clause", peg$c1397 = peg$literalExpectation("BSD 2-clause", false), peg$c1398 = "BSD 3-clause", peg$c1399 = peg$literalExpectation("BSD 3-clause", false), peg$c1400 = "Apache 2.0", peg$c1401 = peg$literalExpectation("Apache 2.0", false), peg$c1402 = "Mozilla 2.0", peg$c1403 = peg$literalExpectation("Mozilla 2.0", false), peg$c1404 = "Public domain", peg$c1405 = peg$literalExpectation("Public domain", false), peg$c1406 = "GPL v2", peg$c1407 = peg$literalExpectation("GPL v2", false), peg$c1408 = "GPL v3", peg$c1409 = peg$literalExpectation("GPL v3", false), peg$c1410 = "LGPL v2.1", peg$c1411 = peg$literalExpectation("LGPL v2.1", false), peg$c1412 = "LGPL v3.0", peg$c1413 = peg$literalExpectation("LGPL v3.0", false), peg$c1414 = "Unknown", peg$c1415 = peg$literalExpectation("Unknown", false), peg$c1416 = peg$otherExpectation("direction"), peg$c1417 = "up", peg$c1418 = peg$literalExpectation("up", false), peg$c1419 = "right", peg$c1420 = peg$literalExpectation("right", false), peg$c1421 = "down", peg$c1422 = peg$literalExpectation("down", false), peg$c1423 = "left", peg$c1424 = peg$literalExpectation("left", false), peg$c1425 = peg$otherExpectation("hook definition (open/closed)"), peg$c1426 = "open", peg$c1427 = peg$literalExpectation("open", false), peg$c1428 = "closed", peg$c1429 = peg$literalExpectation("closed", false), peg$c1430 = "machine_author", peg$c1431 = peg$literalExpectation("machine_author", false), peg$c1432 = function (value) { return { key: "machine_author", value }; }, peg$c1433 = "machine_contributor", peg$c1434 = peg$literalExpectation("machine_contributor", false), peg$c1435 = function (value) { return { key: "machine_contributor", value }; }, peg$c1436 = "machine_comment", peg$c1437 = peg$literalExpectation("machine_comment", false), peg$c1438 = function (value) { return { key: "machine_comment", value }; }, peg$c1439 = "machine_definition", peg$c1440 = peg$literalExpectation("machine_definition", false), peg$c1441 = function (value) { return { key: "machine_definition", value }; }, peg$c1442 = "machine_name", peg$c1443 = peg$literalExpectation("machine_name", false), peg$c1444 = function (value) { return { key: "machine_name", value }; }, peg$c1445 = "npm_name", peg$c1446 = peg$literalExpectation("npm_name", false), peg$c1447 = function (value) { return { key: "npm_name", value }; }, peg$c1448 = "machine_reference", peg$c1449 = peg$literalExpectation("machine_reference", false), peg$c1450 = function (value) { return { key: "machine_reference", value }; }, peg$c1451 = "machine_version", peg$c1452 = peg$literalExpectation("machine_version", false), peg$c1453 = function (value) { return { key: "machine_version", value }; }, peg$c1454 = "machine_license", peg$c1455 = peg$literalExpectation("machine_license", false), peg$c1456 = function (value) { return { key: "machine_license", value }; }, peg$c1457 = "machine_language", peg$c1458 = peg$literalExpectation("machine_language", false), peg$c1459 = function (value) { return { key: "machine_language", value }; }, peg$c1460 = "fsl_version", peg$c1461 = peg$literalExpectation("fsl_version", false), peg$c1462 = function (value) { return { key: "fsl_version", value }; }, peg$c1463 = "theme", peg$c1464 = peg$literalExpectation("theme", false), peg$c1465 = function (value) { return { key: "theme", value }; }, peg$c1466 = "flow", peg$c1467 = peg$literalExpectation("flow", false), peg$c1468 = function (value) { return { key: "flow", value }; }, peg$c1469 = "hooks", peg$c1470 = peg$literalExpectation("hooks", false), peg$c1471 = function (value) { return { key: "hook_definition", value }; }, peg$c1472 = "dot_preamble", peg$c1473 = peg$literalExpectation("dot_preamble", false), peg$c1474 = function (value) { return { key: "dot_preamble", value }; }, peg$c1475 = "height", peg$c1476 = peg$literalExpectation("height", false), peg$c1477 = function (n) { return { height: n }; }, peg$c1478 = function (w, h) { return { width: w, height: h }; }, peg$c1479 = function (w) { return { width: w }; }, peg$c1480 = "default_size", peg$c1481 = peg$literalExpectation("default_size", false), peg$c1482 = function (value) { return { key: "default_size", value }; }, peg$c1483 = peg$otherExpectation("machine attribute"), peg$c1484 = "label", peg$c1485 = peg$literalExpectation("label", false), peg$c1486 = function (value) { return { key: 'state-label', value }; }, peg$c1487 = "color", peg$c1488 = peg$literalExpectation("color", false), peg$c1489 = function (value) { return { key: 'color', value }; }, peg$c1490 = peg$otherExpectation("text color"), peg$c1491 = "text-color", peg$c1492 = peg$literalExpectation("text-color", false), peg$c1493 = function (value) { return { key: 'text-color', value }; }, peg$c1494 = peg$otherExpectation("background color"), peg$c1495 = "background-color", peg$c1496 = peg$literalExpectation("background-color", false), peg$c1497 = function (value) { return { key: 'background-color', value }; }, peg$c1498 = peg$otherExpectation("border color"), peg$c1499 = "border-color", peg$c1500 = peg$literalExpectation("border-color", false), peg$c1501 = function (value) { return { key: 'border-color', value }; }, peg$c1502 = peg$otherExpectation("shape"), peg$c1503 = "shape", peg$c1504 = peg$literalExpectation("shape", false), peg$c1505 = function (value) { return { key: 'shape', value }; }, peg$c1506 = peg$otherExpectation("corners"), peg$c1507 = "corners", peg$c1508 = peg$literalExpectation("corners", false), peg$c1509 = function (value) { return { key: 'corners', value }; }, peg$c1510 = peg$otherExpectation("linestyle"), peg$c1511 = function (value) { return { key: 'line-style', value }; }, peg$c1512 = "linestyle", peg$c1513 = peg$literalExpectation("linestyle", false), peg$c1514 = peg$otherExpectation("image"), peg$c1515 = "image", peg$c1516 = peg$literalExpectation("image", false), peg$c1517 = function (value) { return { key: 'image', value }; }, peg$c1518 = peg$otherExpectation("url"), peg$c1519 = "url", peg$c1520 = peg$literalExpectation("url", false), peg$c1521 = function (value) { return { key: 'url', value }; }, peg$c1522 = peg$otherExpectation("state property"), peg$c1523 = "property", peg$c1524 = peg$literalExpectation("property", false), peg$c1525 = function (name, value) {
432
432
  return { key: 'state_property', name, value };
433
- }, peg$c1510 = "required", peg$c1511 = peg$literalExpectation("required", false), peg$c1512 = function (name, value) {
433
+ }, peg$c1526 = "required", peg$c1527 = peg$literalExpectation("required", false), peg$c1528 = function (name, value) {
434
434
  return { key: 'state_property', name, value, required: true };
435
- }, peg$c1513 = function (name, value) { return { key: 'state_declaration', name, value }; }, peg$c1514 = "&", peg$c1515 = peg$literalExpectation("&", false), peg$c1516 = function (name, value) { return { key: 'named_list', name, value }; }, peg$c1517 = function (name, default_value) { return { key: 'property_definition', name, default_value, required: true }; }, peg$c1518 = function (name) { return { key: 'property_definition', name, required: true }; }, peg$c1519 = function (name, default_value) { return { key: 'property_definition', name, default_value }; }, peg$c1520 = function (name) { return { key: 'property_definition', name }; }, peg$c1521 = "arrange", peg$c1522 = peg$literalExpectation("arrange", false), peg$c1523 = function (value) { return { key: 'arrange_declaration', value }; }, peg$c1524 = "arrange-start", peg$c1525 = peg$literalExpectation("arrange-start", false), peg$c1526 = function (value) { return { key: 'arrange_start_declaration', value }; }, peg$c1527 = "arrange-end", peg$c1528 = peg$literalExpectation("arrange-end", false), peg$c1529 = function (value) { return { key: 'arrange_end_declaration', value }; }, peg$c1530 = peg$otherExpectation("arrange declaration"), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
435
+ }, peg$c1529 = function (name, value) { return { key: 'state_declaration', name, value }; }, peg$c1530 = "&", peg$c1531 = peg$literalExpectation("&", false), peg$c1532 = function (name, value) { return { key: 'named_list', name, value }; }, peg$c1533 = function (name, default_value) { return { key: 'property_definition', name, default_value, required: true }; }, peg$c1534 = function (name) { return { key: 'property_definition', name, required: true }; }, peg$c1535 = function (name, default_value) { return { key: 'property_definition', name, default_value }; }, peg$c1536 = function (name) { return { key: 'property_definition', name }; }, peg$c1537 = "arrange", peg$c1538 = peg$literalExpectation("arrange", false), peg$c1539 = function (value) { return { key: 'arrange_declaration', value }; }, peg$c1540 = "arrange-start", peg$c1541 = peg$literalExpectation("arrange-start", false), peg$c1542 = function (value) { return { key: 'arrange_start_declaration', value }; }, peg$c1543 = "arrange-end", peg$c1544 = peg$literalExpectation("arrange-end", false), peg$c1545 = function (value) { return { key: 'arrange_end_declaration', value }; }, peg$c1546 = peg$otherExpectation("arrange declaration"), peg$currPos = 0, peg$savedPos = 0, peg$posDetailsCache = [{ line: 1, column: 1 }], peg$maxFailPos = 0, peg$maxFailExpected = [], peg$silentFails = 0, peg$result;
436
436
  if ("startRule" in options) {
437
437
  if (!(options.startRule in peg$startRuleFunctions)) {
438
438
  throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
@@ -14960,6 +14960,119 @@ function peg$parse(input, options) {
14960
14960
  }
14961
14961
  return s0;
14962
14962
  }
14963
+ function peg$parseConfigAllowIslands() {
14964
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
14965
+ s0 = peg$currPos;
14966
+ s1 = peg$parseWS();
14967
+ if (s1 === peg$FAILED) {
14968
+ s1 = null;
14969
+ }
14970
+ if (s1 !== peg$FAILED) {
14971
+ if (input.substr(peg$currPos, 13) === peg$c1383) {
14972
+ s2 = peg$c1383;
14973
+ peg$currPos += 13;
14974
+ }
14975
+ else {
14976
+ s2 = peg$FAILED;
14977
+ if (peg$silentFails === 0) {
14978
+ peg$fail(peg$c1384);
14979
+ }
14980
+ }
14981
+ if (s2 !== peg$FAILED) {
14982
+ s3 = peg$parseWS();
14983
+ if (s3 === peg$FAILED) {
14984
+ s3 = null;
14985
+ }
14986
+ if (s3 !== peg$FAILED) {
14987
+ if (input.charCodeAt(peg$currPos) === 58) {
14988
+ s4 = peg$c1206;
14989
+ peg$currPos++;
14990
+ }
14991
+ else {
14992
+ s4 = peg$FAILED;
14993
+ if (peg$silentFails === 0) {
14994
+ peg$fail(peg$c1207);
14995
+ }
14996
+ }
14997
+ if (s4 !== peg$FAILED) {
14998
+ s5 = peg$parseWS();
14999
+ if (s5 === peg$FAILED) {
15000
+ s5 = null;
15001
+ }
15002
+ if (s5 !== peg$FAILED) {
15003
+ s6 = peg$parseIslandsT();
15004
+ if (s6 !== peg$FAILED) {
15005
+ s7 = peg$parseWS();
15006
+ if (s7 === peg$FAILED) {
15007
+ s7 = null;
15008
+ }
15009
+ if (s7 !== peg$FAILED) {
15010
+ if (input.charCodeAt(peg$currPos) === 59) {
15011
+ s8 = peg$c1208;
15012
+ peg$currPos++;
15013
+ }
15014
+ else {
15015
+ s8 = peg$FAILED;
15016
+ if (peg$silentFails === 0) {
15017
+ peg$fail(peg$c1209);
15018
+ }
15019
+ }
15020
+ if (s8 !== peg$FAILED) {
15021
+ s9 = peg$parseWS();
15022
+ if (s9 === peg$FAILED) {
15023
+ s9 = null;
15024
+ }
15025
+ if (s9 !== peg$FAILED) {
15026
+ peg$savedPos = s0;
15027
+ s1 = peg$c1385(s6);
15028
+ s0 = s1;
15029
+ }
15030
+ else {
15031
+ peg$currPos = s0;
15032
+ s0 = peg$FAILED;
15033
+ }
15034
+ }
15035
+ else {
15036
+ peg$currPos = s0;
15037
+ s0 = peg$FAILED;
15038
+ }
15039
+ }
15040
+ else {
15041
+ peg$currPos = s0;
15042
+ s0 = peg$FAILED;
15043
+ }
15044
+ }
15045
+ else {
15046
+ peg$currPos = s0;
15047
+ s0 = peg$FAILED;
15048
+ }
15049
+ }
15050
+ else {
15051
+ peg$currPos = s0;
15052
+ s0 = peg$FAILED;
15053
+ }
15054
+ }
15055
+ else {
15056
+ peg$currPos = s0;
15057
+ s0 = peg$FAILED;
15058
+ }
15059
+ }
15060
+ else {
15061
+ peg$currPos = s0;
15062
+ s0 = peg$FAILED;
15063
+ }
15064
+ }
15065
+ else {
15066
+ peg$currPos = s0;
15067
+ s0 = peg$FAILED;
15068
+ }
15069
+ }
15070
+ else {
15071
+ peg$currPos = s0;
15072
+ s0 = peg$FAILED;
15073
+ }
15074
+ return s0;
15075
+ }
14963
15076
  function peg$parseOverrideT() {
14964
15077
  var s0, s1;
14965
15078
  s0 = peg$currPos;
@@ -14975,7 +15088,7 @@ function peg$parse(input, options) {
14975
15088
  }
14976
15089
  if (s1 !== peg$FAILED) {
14977
15090
  peg$savedPos = s0;
14978
- s1 = peg$c1383();
15091
+ s1 = peg$c1386();
14979
15092
  }
14980
15093
  s0 = s1;
14981
15094
  if (s0 === peg$FAILED) {
@@ -14992,7 +15105,7 @@ function peg$parse(input, options) {
14992
15105
  }
14993
15106
  if (s1 !== peg$FAILED) {
14994
15107
  peg$savedPos = s0;
14995
- s1 = peg$c1384();
15108
+ s1 = peg$c1387();
14996
15109
  }
14997
15110
  s0 = s1;
14998
15111
  if (s0 === peg$FAILED) {
@@ -15016,6 +15129,62 @@ function peg$parse(input, options) {
15016
15129
  }
15017
15130
  return s0;
15018
15131
  }
15132
+ function peg$parseIslandsT() {
15133
+ var s0, s1;
15134
+ s0 = peg$currPos;
15135
+ if (input.substr(peg$currPos, 10) === peg$c1388) {
15136
+ s1 = peg$c1388;
15137
+ peg$currPos += 10;
15138
+ }
15139
+ else {
15140
+ s1 = peg$FAILED;
15141
+ if (peg$silentFails === 0) {
15142
+ peg$fail(peg$c1389);
15143
+ }
15144
+ }
15145
+ if (s1 !== peg$FAILED) {
15146
+ peg$savedPos = s0;
15147
+ s1 = peg$c1390();
15148
+ }
15149
+ s0 = s1;
15150
+ if (s0 === peg$FAILED) {
15151
+ s0 = peg$currPos;
15152
+ if (input.substr(peg$currPos, 4) === peg$c230) {
15153
+ s1 = peg$c230;
15154
+ peg$currPos += 4;
15155
+ }
15156
+ else {
15157
+ s1 = peg$FAILED;
15158
+ if (peg$silentFails === 0) {
15159
+ peg$fail(peg$c231);
15160
+ }
15161
+ }
15162
+ if (s1 !== peg$FAILED) {
15163
+ peg$savedPos = s0;
15164
+ s1 = peg$c1391();
15165
+ }
15166
+ s0 = s1;
15167
+ if (s0 === peg$FAILED) {
15168
+ s0 = peg$currPos;
15169
+ if (input.substr(peg$currPos, 5) === peg$c233) {
15170
+ s1 = peg$c233;
15171
+ peg$currPos += 5;
15172
+ }
15173
+ else {
15174
+ s1 = peg$FAILED;
15175
+ if (peg$silentFails === 0) {
15176
+ peg$fail(peg$c234);
15177
+ }
15178
+ }
15179
+ if (s1 !== peg$FAILED) {
15180
+ peg$savedPos = s0;
15181
+ s1 = peg$c1392();
15182
+ }
15183
+ s0 = s1;
15184
+ }
15185
+ }
15186
+ return s0;
15187
+ }
15019
15188
  function peg$parseConfig() {
15020
15189
  var s0;
15021
15190
  peg$silentFails++;
@@ -15038,6 +15207,9 @@ function peg$parse(input, options) {
15038
15207
  s0 = peg$parseConfigGraphBgColor();
15039
15208
  if (s0 === peg$FAILED) {
15040
15209
  s0 = peg$parseConfigAllowsOverride();
15210
+ if (s0 === peg$FAILED) {
15211
+ s0 = peg$parseConfigAllowIslands();
15212
+ }
15041
15213
  }
15042
15214
  }
15043
15215
  }
@@ -15050,131 +15222,131 @@ function peg$parse(input, options) {
15050
15222
  peg$silentFails--;
15051
15223
  if (s0 === peg$FAILED) {
15052
15224
  if (peg$silentFails === 0) {
15053
- peg$fail(peg$c1385);
15225
+ peg$fail(peg$c1393);
15054
15226
  }
15055
15227
  }
15056
15228
  return s0;
15057
15229
  }
15058
15230
  function peg$parseLicenseOrLabelOrList() {
15059
15231
  var s0;
15060
- if (input.substr(peg$currPos, 3) === peg$c1386) {
15061
- s0 = peg$c1386;
15232
+ if (input.substr(peg$currPos, 3) === peg$c1394) {
15233
+ s0 = peg$c1394;
15062
15234
  peg$currPos += 3;
15063
15235
  }
15064
15236
  else {
15065
15237
  s0 = peg$FAILED;
15066
15238
  if (peg$silentFails === 0) {
15067
- peg$fail(peg$c1387);
15239
+ peg$fail(peg$c1395);
15068
15240
  }
15069
15241
  }
15070
15242
  if (s0 === peg$FAILED) {
15071
- if (input.substr(peg$currPos, 12) === peg$c1388) {
15072
- s0 = peg$c1388;
15243
+ if (input.substr(peg$currPos, 12) === peg$c1396) {
15244
+ s0 = peg$c1396;
15073
15245
  peg$currPos += 12;
15074
15246
  }
15075
15247
  else {
15076
15248
  s0 = peg$FAILED;
15077
15249
  if (peg$silentFails === 0) {
15078
- peg$fail(peg$c1389);
15250
+ peg$fail(peg$c1397);
15079
15251
  }
15080
15252
  }
15081
15253
  if (s0 === peg$FAILED) {
15082
- if (input.substr(peg$currPos, 12) === peg$c1390) {
15083
- s0 = peg$c1390;
15254
+ if (input.substr(peg$currPos, 12) === peg$c1398) {
15255
+ s0 = peg$c1398;
15084
15256
  peg$currPos += 12;
15085
15257
  }
15086
15258
  else {
15087
15259
  s0 = peg$FAILED;
15088
15260
  if (peg$silentFails === 0) {
15089
- peg$fail(peg$c1391);
15261
+ peg$fail(peg$c1399);
15090
15262
  }
15091
15263
  }
15092
15264
  if (s0 === peg$FAILED) {
15093
- if (input.substr(peg$currPos, 10) === peg$c1392) {
15094
- s0 = peg$c1392;
15265
+ if (input.substr(peg$currPos, 10) === peg$c1400) {
15266
+ s0 = peg$c1400;
15095
15267
  peg$currPos += 10;
15096
15268
  }
15097
15269
  else {
15098
15270
  s0 = peg$FAILED;
15099
15271
  if (peg$silentFails === 0) {
15100
- peg$fail(peg$c1393);
15272
+ peg$fail(peg$c1401);
15101
15273
  }
15102
15274
  }
15103
15275
  if (s0 === peg$FAILED) {
15104
- if (input.substr(peg$currPos, 11) === peg$c1394) {
15105
- s0 = peg$c1394;
15276
+ if (input.substr(peg$currPos, 11) === peg$c1402) {
15277
+ s0 = peg$c1402;
15106
15278
  peg$currPos += 11;
15107
15279
  }
15108
15280
  else {
15109
15281
  s0 = peg$FAILED;
15110
15282
  if (peg$silentFails === 0) {
15111
- peg$fail(peg$c1395);
15283
+ peg$fail(peg$c1403);
15112
15284
  }
15113
15285
  }
15114
15286
  if (s0 === peg$FAILED) {
15115
- if (input.substr(peg$currPos, 13) === peg$c1396) {
15116
- s0 = peg$c1396;
15287
+ if (input.substr(peg$currPos, 13) === peg$c1404) {
15288
+ s0 = peg$c1404;
15117
15289
  peg$currPos += 13;
15118
15290
  }
15119
15291
  else {
15120
15292
  s0 = peg$FAILED;
15121
15293
  if (peg$silentFails === 0) {
15122
- peg$fail(peg$c1397);
15294
+ peg$fail(peg$c1405);
15123
15295
  }
15124
15296
  }
15125
15297
  if (s0 === peg$FAILED) {
15126
- if (input.substr(peg$currPos, 6) === peg$c1398) {
15127
- s0 = peg$c1398;
15298
+ if (input.substr(peg$currPos, 6) === peg$c1406) {
15299
+ s0 = peg$c1406;
15128
15300
  peg$currPos += 6;
15129
15301
  }
15130
15302
  else {
15131
15303
  s0 = peg$FAILED;
15132
15304
  if (peg$silentFails === 0) {
15133
- peg$fail(peg$c1399);
15305
+ peg$fail(peg$c1407);
15134
15306
  }
15135
15307
  }
15136
15308
  if (s0 === peg$FAILED) {
15137
- if (input.substr(peg$currPos, 6) === peg$c1400) {
15138
- s0 = peg$c1400;
15309
+ if (input.substr(peg$currPos, 6) === peg$c1408) {
15310
+ s0 = peg$c1408;
15139
15311
  peg$currPos += 6;
15140
15312
  }
15141
15313
  else {
15142
15314
  s0 = peg$FAILED;
15143
15315
  if (peg$silentFails === 0) {
15144
- peg$fail(peg$c1401);
15316
+ peg$fail(peg$c1409);
15145
15317
  }
15146
15318
  }
15147
15319
  if (s0 === peg$FAILED) {
15148
- if (input.substr(peg$currPos, 9) === peg$c1402) {
15149
- s0 = peg$c1402;
15320
+ if (input.substr(peg$currPos, 9) === peg$c1410) {
15321
+ s0 = peg$c1410;
15150
15322
  peg$currPos += 9;
15151
15323
  }
15152
15324
  else {
15153
15325
  s0 = peg$FAILED;
15154
15326
  if (peg$silentFails === 0) {
15155
- peg$fail(peg$c1403);
15327
+ peg$fail(peg$c1411);
15156
15328
  }
15157
15329
  }
15158
15330
  if (s0 === peg$FAILED) {
15159
- if (input.substr(peg$currPos, 9) === peg$c1404) {
15160
- s0 = peg$c1404;
15331
+ if (input.substr(peg$currPos, 9) === peg$c1412) {
15332
+ s0 = peg$c1412;
15161
15333
  peg$currPos += 9;
15162
15334
  }
15163
15335
  else {
15164
15336
  s0 = peg$FAILED;
15165
15337
  if (peg$silentFails === 0) {
15166
- peg$fail(peg$c1405);
15338
+ peg$fail(peg$c1413);
15167
15339
  }
15168
15340
  }
15169
15341
  if (s0 === peg$FAILED) {
15170
- if (input.substr(peg$currPos, 7) === peg$c1406) {
15171
- s0 = peg$c1406;
15342
+ if (input.substr(peg$currPos, 7) === peg$c1414) {
15343
+ s0 = peg$c1414;
15172
15344
  peg$currPos += 7;
15173
15345
  }
15174
15346
  else {
15175
15347
  s0 = peg$FAILED;
15176
15348
  if (peg$silentFails === 0) {
15177
- peg$fail(peg$c1407);
15349
+ peg$fail(peg$c1415);
15178
15350
  }
15179
15351
  }
15180
15352
  if (s0 === peg$FAILED) {
@@ -15198,47 +15370,47 @@ function peg$parse(input, options) {
15198
15370
  function peg$parseDirection() {
15199
15371
  var s0;
15200
15372
  peg$silentFails++;
15201
- if (input.substr(peg$currPos, 2) === peg$c1409) {
15202
- s0 = peg$c1409;
15373
+ if (input.substr(peg$currPos, 2) === peg$c1417) {
15374
+ s0 = peg$c1417;
15203
15375
  peg$currPos += 2;
15204
15376
  }
15205
15377
  else {
15206
15378
  s0 = peg$FAILED;
15207
15379
  if (peg$silentFails === 0) {
15208
- peg$fail(peg$c1410);
15380
+ peg$fail(peg$c1418);
15209
15381
  }
15210
15382
  }
15211
15383
  if (s0 === peg$FAILED) {
15212
- if (input.substr(peg$currPos, 5) === peg$c1411) {
15213
- s0 = peg$c1411;
15384
+ if (input.substr(peg$currPos, 5) === peg$c1419) {
15385
+ s0 = peg$c1419;
15214
15386
  peg$currPos += 5;
15215
15387
  }
15216
15388
  else {
15217
15389
  s0 = peg$FAILED;
15218
15390
  if (peg$silentFails === 0) {
15219
- peg$fail(peg$c1412);
15391
+ peg$fail(peg$c1420);
15220
15392
  }
15221
15393
  }
15222
15394
  if (s0 === peg$FAILED) {
15223
- if (input.substr(peg$currPos, 4) === peg$c1413) {
15224
- s0 = peg$c1413;
15395
+ if (input.substr(peg$currPos, 4) === peg$c1421) {
15396
+ s0 = peg$c1421;
15225
15397
  peg$currPos += 4;
15226
15398
  }
15227
15399
  else {
15228
15400
  s0 = peg$FAILED;
15229
15401
  if (peg$silentFails === 0) {
15230
- peg$fail(peg$c1414);
15402
+ peg$fail(peg$c1422);
15231
15403
  }
15232
15404
  }
15233
15405
  if (s0 === peg$FAILED) {
15234
- if (input.substr(peg$currPos, 4) === peg$c1415) {
15235
- s0 = peg$c1415;
15406
+ if (input.substr(peg$currPos, 4) === peg$c1423) {
15407
+ s0 = peg$c1423;
15236
15408
  peg$currPos += 4;
15237
15409
  }
15238
15410
  else {
15239
15411
  s0 = peg$FAILED;
15240
15412
  if (peg$silentFails === 0) {
15241
- peg$fail(peg$c1416);
15413
+ peg$fail(peg$c1424);
15242
15414
  }
15243
15415
  }
15244
15416
  }
@@ -15247,7 +15419,7 @@ function peg$parse(input, options) {
15247
15419
  peg$silentFails--;
15248
15420
  if (s0 === peg$FAILED) {
15249
15421
  if (peg$silentFails === 0) {
15250
- peg$fail(peg$c1408);
15422
+ peg$fail(peg$c1416);
15251
15423
  }
15252
15424
  }
15253
15425
  return s0;
@@ -15255,32 +15427,32 @@ function peg$parse(input, options) {
15255
15427
  function peg$parseHookDefinition() {
15256
15428
  var s0;
15257
15429
  peg$silentFails++;
15258
- if (input.substr(peg$currPos, 4) === peg$c1418) {
15259
- s0 = peg$c1418;
15430
+ if (input.substr(peg$currPos, 4) === peg$c1426) {
15431
+ s0 = peg$c1426;
15260
15432
  peg$currPos += 4;
15261
15433
  }
15262
15434
  else {
15263
15435
  s0 = peg$FAILED;
15264
15436
  if (peg$silentFails === 0) {
15265
- peg$fail(peg$c1419);
15437
+ peg$fail(peg$c1427);
15266
15438
  }
15267
15439
  }
15268
15440
  if (s0 === peg$FAILED) {
15269
- if (input.substr(peg$currPos, 6) === peg$c1420) {
15270
- s0 = peg$c1420;
15441
+ if (input.substr(peg$currPos, 6) === peg$c1428) {
15442
+ s0 = peg$c1428;
15271
15443
  peg$currPos += 6;
15272
15444
  }
15273
15445
  else {
15274
15446
  s0 = peg$FAILED;
15275
15447
  if (peg$silentFails === 0) {
15276
- peg$fail(peg$c1421);
15448
+ peg$fail(peg$c1429);
15277
15449
  }
15278
15450
  }
15279
15451
  }
15280
15452
  peg$silentFails--;
15281
15453
  if (s0 === peg$FAILED) {
15282
15454
  if (peg$silentFails === 0) {
15283
- peg$fail(peg$c1417);
15455
+ peg$fail(peg$c1425);
15284
15456
  }
15285
15457
  }
15286
15458
  return s0;
@@ -15293,14 +15465,14 @@ function peg$parse(input, options) {
15293
15465
  s1 = null;
15294
15466
  }
15295
15467
  if (s1 !== peg$FAILED) {
15296
- if (input.substr(peg$currPos, 14) === peg$c1422) {
15297
- s2 = peg$c1422;
15468
+ if (input.substr(peg$currPos, 14) === peg$c1430) {
15469
+ s2 = peg$c1430;
15298
15470
  peg$currPos += 14;
15299
15471
  }
15300
15472
  else {
15301
15473
  s2 = peg$FAILED;
15302
15474
  if (peg$silentFails === 0) {
15303
- peg$fail(peg$c1423);
15475
+ peg$fail(peg$c1431);
15304
15476
  }
15305
15477
  }
15306
15478
  if (s2 !== peg$FAILED) {
@@ -15349,7 +15521,7 @@ function peg$parse(input, options) {
15349
15521
  }
15350
15522
  if (s9 !== peg$FAILED) {
15351
15523
  peg$savedPos = s0;
15352
- s1 = peg$c1424(s6);
15524
+ s1 = peg$c1432(s6);
15353
15525
  s0 = s1;
15354
15526
  }
15355
15527
  else {
@@ -15406,14 +15578,14 @@ function peg$parse(input, options) {
15406
15578
  s1 = null;
15407
15579
  }
15408
15580
  if (s1 !== peg$FAILED) {
15409
- if (input.substr(peg$currPos, 19) === peg$c1425) {
15410
- s2 = peg$c1425;
15581
+ if (input.substr(peg$currPos, 19) === peg$c1433) {
15582
+ s2 = peg$c1433;
15411
15583
  peg$currPos += 19;
15412
15584
  }
15413
15585
  else {
15414
15586
  s2 = peg$FAILED;
15415
15587
  if (peg$silentFails === 0) {
15416
- peg$fail(peg$c1426);
15588
+ peg$fail(peg$c1434);
15417
15589
  }
15418
15590
  }
15419
15591
  if (s2 !== peg$FAILED) {
@@ -15462,7 +15634,7 @@ function peg$parse(input, options) {
15462
15634
  }
15463
15635
  if (s9 !== peg$FAILED) {
15464
15636
  peg$savedPos = s0;
15465
- s1 = peg$c1427(s6);
15637
+ s1 = peg$c1435(s6);
15466
15638
  s0 = s1;
15467
15639
  }
15468
15640
  else {
@@ -15519,14 +15691,14 @@ function peg$parse(input, options) {
15519
15691
  s1 = null;
15520
15692
  }
15521
15693
  if (s1 !== peg$FAILED) {
15522
- if (input.substr(peg$currPos, 15) === peg$c1428) {
15523
- s2 = peg$c1428;
15694
+ if (input.substr(peg$currPos, 15) === peg$c1436) {
15695
+ s2 = peg$c1436;
15524
15696
  peg$currPos += 15;
15525
15697
  }
15526
15698
  else {
15527
15699
  s2 = peg$FAILED;
15528
15700
  if (peg$silentFails === 0) {
15529
- peg$fail(peg$c1429);
15701
+ peg$fail(peg$c1437);
15530
15702
  }
15531
15703
  }
15532
15704
  if (s2 !== peg$FAILED) {
@@ -15575,7 +15747,7 @@ function peg$parse(input, options) {
15575
15747
  }
15576
15748
  if (s9 !== peg$FAILED) {
15577
15749
  peg$savedPos = s0;
15578
- s1 = peg$c1430(s6);
15750
+ s1 = peg$c1438(s6);
15579
15751
  s0 = s1;
15580
15752
  }
15581
15753
  else {
@@ -15632,14 +15804,14 @@ function peg$parse(input, options) {
15632
15804
  s1 = null;
15633
15805
  }
15634
15806
  if (s1 !== peg$FAILED) {
15635
- if (input.substr(peg$currPos, 18) === peg$c1431) {
15636
- s2 = peg$c1431;
15807
+ if (input.substr(peg$currPos, 18) === peg$c1439) {
15808
+ s2 = peg$c1439;
15637
15809
  peg$currPos += 18;
15638
15810
  }
15639
15811
  else {
15640
15812
  s2 = peg$FAILED;
15641
15813
  if (peg$silentFails === 0) {
15642
- peg$fail(peg$c1432);
15814
+ peg$fail(peg$c1440);
15643
15815
  }
15644
15816
  }
15645
15817
  if (s2 !== peg$FAILED) {
@@ -15688,7 +15860,7 @@ function peg$parse(input, options) {
15688
15860
  }
15689
15861
  if (s9 !== peg$FAILED) {
15690
15862
  peg$savedPos = s0;
15691
- s1 = peg$c1433(s6);
15863
+ s1 = peg$c1441(s6);
15692
15864
  s0 = s1;
15693
15865
  }
15694
15866
  else {
@@ -15745,14 +15917,14 @@ function peg$parse(input, options) {
15745
15917
  s1 = null;
15746
15918
  }
15747
15919
  if (s1 !== peg$FAILED) {
15748
- if (input.substr(peg$currPos, 12) === peg$c1434) {
15749
- s2 = peg$c1434;
15920
+ if (input.substr(peg$currPos, 12) === peg$c1442) {
15921
+ s2 = peg$c1442;
15750
15922
  peg$currPos += 12;
15751
15923
  }
15752
15924
  else {
15753
15925
  s2 = peg$FAILED;
15754
15926
  if (peg$silentFails === 0) {
15755
- peg$fail(peg$c1435);
15927
+ peg$fail(peg$c1443);
15756
15928
  }
15757
15929
  }
15758
15930
  if (s2 !== peg$FAILED) {
@@ -15801,7 +15973,7 @@ function peg$parse(input, options) {
15801
15973
  }
15802
15974
  if (s9 !== peg$FAILED) {
15803
15975
  peg$savedPos = s0;
15804
- s1 = peg$c1436(s6);
15976
+ s1 = peg$c1444(s6);
15805
15977
  s0 = s1;
15806
15978
  }
15807
15979
  else {
@@ -15858,14 +16030,14 @@ function peg$parse(input, options) {
15858
16030
  s1 = null;
15859
16031
  }
15860
16032
  if (s1 !== peg$FAILED) {
15861
- if (input.substr(peg$currPos, 8) === peg$c1437) {
15862
- s2 = peg$c1437;
16033
+ if (input.substr(peg$currPos, 8) === peg$c1445) {
16034
+ s2 = peg$c1445;
15863
16035
  peg$currPos += 8;
15864
16036
  }
15865
16037
  else {
15866
16038
  s2 = peg$FAILED;
15867
16039
  if (peg$silentFails === 0) {
15868
- peg$fail(peg$c1438);
16040
+ peg$fail(peg$c1446);
15869
16041
  }
15870
16042
  }
15871
16043
  if (s2 !== peg$FAILED) {
@@ -15914,7 +16086,7 @@ function peg$parse(input, options) {
15914
16086
  }
15915
16087
  if (s9 !== peg$FAILED) {
15916
16088
  peg$savedPos = s0;
15917
- s1 = peg$c1439(s6);
16089
+ s1 = peg$c1447(s6);
15918
16090
  s0 = s1;
15919
16091
  }
15920
16092
  else {
@@ -15971,14 +16143,14 @@ function peg$parse(input, options) {
15971
16143
  s1 = null;
15972
16144
  }
15973
16145
  if (s1 !== peg$FAILED) {
15974
- if (input.substr(peg$currPos, 17) === peg$c1440) {
15975
- s2 = peg$c1440;
16146
+ if (input.substr(peg$currPos, 17) === peg$c1448) {
16147
+ s2 = peg$c1448;
15976
16148
  peg$currPos += 17;
15977
16149
  }
15978
16150
  else {
15979
16151
  s2 = peg$FAILED;
15980
16152
  if (peg$silentFails === 0) {
15981
- peg$fail(peg$c1441);
16153
+ peg$fail(peg$c1449);
15982
16154
  }
15983
16155
  }
15984
16156
  if (s2 !== peg$FAILED) {
@@ -16027,7 +16199,7 @@ function peg$parse(input, options) {
16027
16199
  }
16028
16200
  if (s9 !== peg$FAILED) {
16029
16201
  peg$savedPos = s0;
16030
- s1 = peg$c1442(s6);
16202
+ s1 = peg$c1450(s6);
16031
16203
  s0 = s1;
16032
16204
  }
16033
16205
  else {
@@ -16084,14 +16256,14 @@ function peg$parse(input, options) {
16084
16256
  s1 = null;
16085
16257
  }
16086
16258
  if (s1 !== peg$FAILED) {
16087
- if (input.substr(peg$currPos, 15) === peg$c1443) {
16088
- s2 = peg$c1443;
16259
+ if (input.substr(peg$currPos, 15) === peg$c1451) {
16260
+ s2 = peg$c1451;
16089
16261
  peg$currPos += 15;
16090
16262
  }
16091
16263
  else {
16092
16264
  s2 = peg$FAILED;
16093
16265
  if (peg$silentFails === 0) {
16094
- peg$fail(peg$c1444);
16266
+ peg$fail(peg$c1452);
16095
16267
  }
16096
16268
  }
16097
16269
  if (s2 !== peg$FAILED) {
@@ -16140,7 +16312,7 @@ function peg$parse(input, options) {
16140
16312
  }
16141
16313
  if (s9 !== peg$FAILED) {
16142
16314
  peg$savedPos = s0;
16143
- s1 = peg$c1445(s6);
16315
+ s1 = peg$c1453(s6);
16144
16316
  s0 = s1;
16145
16317
  }
16146
16318
  else {
@@ -16197,14 +16369,14 @@ function peg$parse(input, options) {
16197
16369
  s1 = null;
16198
16370
  }
16199
16371
  if (s1 !== peg$FAILED) {
16200
- if (input.substr(peg$currPos, 15) === peg$c1446) {
16201
- s2 = peg$c1446;
16372
+ if (input.substr(peg$currPos, 15) === peg$c1454) {
16373
+ s2 = peg$c1454;
16202
16374
  peg$currPos += 15;
16203
16375
  }
16204
16376
  else {
16205
16377
  s2 = peg$FAILED;
16206
16378
  if (peg$silentFails === 0) {
16207
- peg$fail(peg$c1447);
16379
+ peg$fail(peg$c1455);
16208
16380
  }
16209
16381
  }
16210
16382
  if (s2 !== peg$FAILED) {
@@ -16253,7 +16425,7 @@ function peg$parse(input, options) {
16253
16425
  }
16254
16426
  if (s9 !== peg$FAILED) {
16255
16427
  peg$savedPos = s0;
16256
- s1 = peg$c1448(s6);
16428
+ s1 = peg$c1456(s6);
16257
16429
  s0 = s1;
16258
16430
  }
16259
16431
  else {
@@ -16310,14 +16482,14 @@ function peg$parse(input, options) {
16310
16482
  s1 = null;
16311
16483
  }
16312
16484
  if (s1 !== peg$FAILED) {
16313
- if (input.substr(peg$currPos, 16) === peg$c1449) {
16314
- s2 = peg$c1449;
16485
+ if (input.substr(peg$currPos, 16) === peg$c1457) {
16486
+ s2 = peg$c1457;
16315
16487
  peg$currPos += 16;
16316
16488
  }
16317
16489
  else {
16318
16490
  s2 = peg$FAILED;
16319
16491
  if (peg$silentFails === 0) {
16320
- peg$fail(peg$c1450);
16492
+ peg$fail(peg$c1458);
16321
16493
  }
16322
16494
  }
16323
16495
  if (s2 !== peg$FAILED) {
@@ -16366,7 +16538,7 @@ function peg$parse(input, options) {
16366
16538
  }
16367
16539
  if (s9 !== peg$FAILED) {
16368
16540
  peg$savedPos = s0;
16369
- s1 = peg$c1451(s6);
16541
+ s1 = peg$c1459(s6);
16370
16542
  s0 = s1;
16371
16543
  }
16372
16544
  else {
@@ -16423,14 +16595,14 @@ function peg$parse(input, options) {
16423
16595
  s1 = null;
16424
16596
  }
16425
16597
  if (s1 !== peg$FAILED) {
16426
- if (input.substr(peg$currPos, 11) === peg$c1452) {
16427
- s2 = peg$c1452;
16598
+ if (input.substr(peg$currPos, 11) === peg$c1460) {
16599
+ s2 = peg$c1460;
16428
16600
  peg$currPos += 11;
16429
16601
  }
16430
16602
  else {
16431
16603
  s2 = peg$FAILED;
16432
16604
  if (peg$silentFails === 0) {
16433
- peg$fail(peg$c1453);
16605
+ peg$fail(peg$c1461);
16434
16606
  }
16435
16607
  }
16436
16608
  if (s2 !== peg$FAILED) {
@@ -16479,7 +16651,7 @@ function peg$parse(input, options) {
16479
16651
  }
16480
16652
  if (s9 !== peg$FAILED) {
16481
16653
  peg$savedPos = s0;
16482
- s1 = peg$c1454(s6);
16654
+ s1 = peg$c1462(s6);
16483
16655
  s0 = s1;
16484
16656
  }
16485
16657
  else {
@@ -16536,14 +16708,14 @@ function peg$parse(input, options) {
16536
16708
  s1 = null;
16537
16709
  }
16538
16710
  if (s1 !== peg$FAILED) {
16539
- if (input.substr(peg$currPos, 5) === peg$c1455) {
16540
- s2 = peg$c1455;
16711
+ if (input.substr(peg$currPos, 5) === peg$c1463) {
16712
+ s2 = peg$c1463;
16541
16713
  peg$currPos += 5;
16542
16714
  }
16543
16715
  else {
16544
16716
  s2 = peg$FAILED;
16545
16717
  if (peg$silentFails === 0) {
16546
- peg$fail(peg$c1456);
16718
+ peg$fail(peg$c1464);
16547
16719
  }
16548
16720
  }
16549
16721
  if (s2 !== peg$FAILED) {
@@ -16592,7 +16764,7 @@ function peg$parse(input, options) {
16592
16764
  }
16593
16765
  if (s9 !== peg$FAILED) {
16594
16766
  peg$savedPos = s0;
16595
- s1 = peg$c1457(s6);
16767
+ s1 = peg$c1465(s6);
16596
16768
  s0 = s1;
16597
16769
  }
16598
16770
  else {
@@ -16649,14 +16821,14 @@ function peg$parse(input, options) {
16649
16821
  s1 = null;
16650
16822
  }
16651
16823
  if (s1 !== peg$FAILED) {
16652
- if (input.substr(peg$currPos, 4) === peg$c1458) {
16653
- s2 = peg$c1458;
16824
+ if (input.substr(peg$currPos, 4) === peg$c1466) {
16825
+ s2 = peg$c1466;
16654
16826
  peg$currPos += 4;
16655
16827
  }
16656
16828
  else {
16657
16829
  s2 = peg$FAILED;
16658
16830
  if (peg$silentFails === 0) {
16659
- peg$fail(peg$c1459);
16831
+ peg$fail(peg$c1467);
16660
16832
  }
16661
16833
  }
16662
16834
  if (s2 !== peg$FAILED) {
@@ -16705,7 +16877,7 @@ function peg$parse(input, options) {
16705
16877
  }
16706
16878
  if (s9 !== peg$FAILED) {
16707
16879
  peg$savedPos = s0;
16708
- s1 = peg$c1460(s6);
16880
+ s1 = peg$c1468(s6);
16709
16881
  s0 = s1;
16710
16882
  }
16711
16883
  else {
@@ -16762,14 +16934,14 @@ function peg$parse(input, options) {
16762
16934
  s1 = null;
16763
16935
  }
16764
16936
  if (s1 !== peg$FAILED) {
16765
- if (input.substr(peg$currPos, 5) === peg$c1461) {
16766
- s2 = peg$c1461;
16937
+ if (input.substr(peg$currPos, 5) === peg$c1469) {
16938
+ s2 = peg$c1469;
16767
16939
  peg$currPos += 5;
16768
16940
  }
16769
16941
  else {
16770
16942
  s2 = peg$FAILED;
16771
16943
  if (peg$silentFails === 0) {
16772
- peg$fail(peg$c1462);
16944
+ peg$fail(peg$c1470);
16773
16945
  }
16774
16946
  }
16775
16947
  if (s2 !== peg$FAILED) {
@@ -16818,7 +16990,7 @@ function peg$parse(input, options) {
16818
16990
  }
16819
16991
  if (s9 !== peg$FAILED) {
16820
16992
  peg$savedPos = s0;
16821
- s1 = peg$c1463(s6);
16993
+ s1 = peg$c1471(s6);
16822
16994
  s0 = s1;
16823
16995
  }
16824
16996
  else {
@@ -16875,14 +17047,14 @@ function peg$parse(input, options) {
16875
17047
  s1 = null;
16876
17048
  }
16877
17049
  if (s1 !== peg$FAILED) {
16878
- if (input.substr(peg$currPos, 12) === peg$c1464) {
16879
- s2 = peg$c1464;
17050
+ if (input.substr(peg$currPos, 12) === peg$c1472) {
17051
+ s2 = peg$c1472;
16880
17052
  peg$currPos += 12;
16881
17053
  }
16882
17054
  else {
16883
17055
  s2 = peg$FAILED;
16884
17056
  if (peg$silentFails === 0) {
16885
- peg$fail(peg$c1465);
17057
+ peg$fail(peg$c1473);
16886
17058
  }
16887
17059
  }
16888
17060
  if (s2 !== peg$FAILED) {
@@ -16931,7 +17103,187 @@ function peg$parse(input, options) {
16931
17103
  }
16932
17104
  if (s9 !== peg$FAILED) {
16933
17105
  peg$savedPos = s0;
16934
- s1 = peg$c1466(s6);
17106
+ s1 = peg$c1474(s6);
17107
+ s0 = s1;
17108
+ }
17109
+ else {
17110
+ peg$currPos = s0;
17111
+ s0 = peg$FAILED;
17112
+ }
17113
+ }
17114
+ else {
17115
+ peg$currPos = s0;
17116
+ s0 = peg$FAILED;
17117
+ }
17118
+ }
17119
+ else {
17120
+ peg$currPos = s0;
17121
+ s0 = peg$FAILED;
17122
+ }
17123
+ }
17124
+ else {
17125
+ peg$currPos = s0;
17126
+ s0 = peg$FAILED;
17127
+ }
17128
+ }
17129
+ else {
17130
+ peg$currPos = s0;
17131
+ s0 = peg$FAILED;
17132
+ }
17133
+ }
17134
+ else {
17135
+ peg$currPos = s0;
17136
+ s0 = peg$FAILED;
17137
+ }
17138
+ }
17139
+ else {
17140
+ peg$currPos = s0;
17141
+ s0 = peg$FAILED;
17142
+ }
17143
+ }
17144
+ else {
17145
+ peg$currPos = s0;
17146
+ s0 = peg$FAILED;
17147
+ }
17148
+ }
17149
+ else {
17150
+ peg$currPos = s0;
17151
+ s0 = peg$FAILED;
17152
+ }
17153
+ return s0;
17154
+ }
17155
+ function peg$parseDefaultSizeVal() {
17156
+ var s0, s1, s2, s3;
17157
+ s0 = peg$currPos;
17158
+ if (input.substr(peg$currPos, 6) === peg$c1475) {
17159
+ s1 = peg$c1475;
17160
+ peg$currPos += 6;
17161
+ }
17162
+ else {
17163
+ s1 = peg$FAILED;
17164
+ if (peg$silentFails === 0) {
17165
+ peg$fail(peg$c1476);
17166
+ }
17167
+ }
17168
+ if (s1 !== peg$FAILED) {
17169
+ s2 = peg$parseWS();
17170
+ if (s2 !== peg$FAILED) {
17171
+ s3 = peg$parseNonNegNumber();
17172
+ if (s3 !== peg$FAILED) {
17173
+ peg$savedPos = s0;
17174
+ s1 = peg$c1477(s3);
17175
+ s0 = s1;
17176
+ }
17177
+ else {
17178
+ peg$currPos = s0;
17179
+ s0 = peg$FAILED;
17180
+ }
17181
+ }
17182
+ else {
17183
+ peg$currPos = s0;
17184
+ s0 = peg$FAILED;
17185
+ }
17186
+ }
17187
+ else {
17188
+ peg$currPos = s0;
17189
+ s0 = peg$FAILED;
17190
+ }
17191
+ if (s0 === peg$FAILED) {
17192
+ s0 = peg$currPos;
17193
+ s1 = peg$parseNonNegNumber();
17194
+ if (s1 !== peg$FAILED) {
17195
+ s2 = peg$parseNonNegNumber();
17196
+ if (s2 !== peg$FAILED) {
17197
+ peg$savedPos = s0;
17198
+ s1 = peg$c1478(s1, s2);
17199
+ s0 = s1;
17200
+ }
17201
+ else {
17202
+ peg$currPos = s0;
17203
+ s0 = peg$FAILED;
17204
+ }
17205
+ }
17206
+ else {
17207
+ peg$currPos = s0;
17208
+ s0 = peg$FAILED;
17209
+ }
17210
+ if (s0 === peg$FAILED) {
17211
+ s0 = peg$currPos;
17212
+ s1 = peg$parseNonNegNumber();
17213
+ if (s1 !== peg$FAILED) {
17214
+ peg$savedPos = s0;
17215
+ s1 = peg$c1479(s1);
17216
+ }
17217
+ s0 = s1;
17218
+ }
17219
+ }
17220
+ return s0;
17221
+ }
17222
+ function peg$parseDefaultSize() {
17223
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
17224
+ s0 = peg$currPos;
17225
+ s1 = peg$parseWS();
17226
+ if (s1 === peg$FAILED) {
17227
+ s1 = null;
17228
+ }
17229
+ if (s1 !== peg$FAILED) {
17230
+ if (input.substr(peg$currPos, 12) === peg$c1480) {
17231
+ s2 = peg$c1480;
17232
+ peg$currPos += 12;
17233
+ }
17234
+ else {
17235
+ s2 = peg$FAILED;
17236
+ if (peg$silentFails === 0) {
17237
+ peg$fail(peg$c1481);
17238
+ }
17239
+ }
17240
+ if (s2 !== peg$FAILED) {
17241
+ s3 = peg$parseWS();
17242
+ if (s3 === peg$FAILED) {
17243
+ s3 = null;
17244
+ }
17245
+ if (s3 !== peg$FAILED) {
17246
+ if (input.charCodeAt(peg$currPos) === 58) {
17247
+ s4 = peg$c1206;
17248
+ peg$currPos++;
17249
+ }
17250
+ else {
17251
+ s4 = peg$FAILED;
17252
+ if (peg$silentFails === 0) {
17253
+ peg$fail(peg$c1207);
17254
+ }
17255
+ }
17256
+ if (s4 !== peg$FAILED) {
17257
+ s5 = peg$parseWS();
17258
+ if (s5 === peg$FAILED) {
17259
+ s5 = null;
17260
+ }
17261
+ if (s5 !== peg$FAILED) {
17262
+ s6 = peg$parseDefaultSizeVal();
17263
+ if (s6 !== peg$FAILED) {
17264
+ s7 = peg$parseWS();
17265
+ if (s7 === peg$FAILED) {
17266
+ s7 = null;
17267
+ }
17268
+ if (s7 !== peg$FAILED) {
17269
+ if (input.charCodeAt(peg$currPos) === 59) {
17270
+ s8 = peg$c1208;
17271
+ peg$currPos++;
17272
+ }
17273
+ else {
17274
+ s8 = peg$FAILED;
17275
+ if (peg$silentFails === 0) {
17276
+ peg$fail(peg$c1209);
17277
+ }
17278
+ }
17279
+ if (s8 !== peg$FAILED) {
17280
+ s9 = peg$parseWS();
17281
+ if (s9 === peg$FAILED) {
17282
+ s9 = null;
17283
+ }
17284
+ if (s9 !== peg$FAILED) {
17285
+ peg$savedPos = s0;
17286
+ s1 = peg$c1482(s6);
16935
17287
  s0 = s1;
16936
17288
  }
16937
17289
  else {
@@ -17012,6 +17364,9 @@ function peg$parse(input, options) {
17012
17364
  s0 = peg$parseMachineFlow();
17013
17365
  if (s0 === peg$FAILED) {
17014
17366
  s0 = peg$parseMachineHookDefinition();
17367
+ if (s0 === peg$FAILED) {
17368
+ s0 = peg$parseDefaultSize();
17369
+ }
17015
17370
  }
17016
17371
  }
17017
17372
  }
@@ -17029,7 +17384,7 @@ function peg$parse(input, options) {
17029
17384
  peg$silentFails--;
17030
17385
  if (s0 === peg$FAILED) {
17031
17386
  if (peg$silentFails === 0) {
17032
- peg$fail(peg$c1467);
17387
+ peg$fail(peg$c1483);
17033
17388
  }
17034
17389
  }
17035
17390
  return s0;
@@ -17060,14 +17415,14 @@ function peg$parse(input, options) {
17060
17415
  s1 = null;
17061
17416
  }
17062
17417
  if (s1 !== peg$FAILED) {
17063
- if (input.substr(peg$currPos, 5) === peg$c1468) {
17064
- s2 = peg$c1468;
17418
+ if (input.substr(peg$currPos, 5) === peg$c1484) {
17419
+ s2 = peg$c1484;
17065
17420
  peg$currPos += 5;
17066
17421
  }
17067
17422
  else {
17068
17423
  s2 = peg$FAILED;
17069
17424
  if (peg$silentFails === 0) {
17070
- peg$fail(peg$c1469);
17425
+ peg$fail(peg$c1485);
17071
17426
  }
17072
17427
  }
17073
17428
  if (s2 !== peg$FAILED) {
@@ -17116,7 +17471,7 @@ function peg$parse(input, options) {
17116
17471
  }
17117
17472
  if (s9 !== peg$FAILED) {
17118
17473
  peg$savedPos = s0;
17119
- s1 = peg$c1470(s6);
17474
+ s1 = peg$c1486(s6);
17120
17475
  s0 = s1;
17121
17476
  }
17122
17477
  else {
@@ -17181,14 +17536,14 @@ function peg$parse(input, options) {
17181
17536
  s1 = null;
17182
17537
  }
17183
17538
  if (s1 !== peg$FAILED) {
17184
- if (input.substr(peg$currPos, 5) === peg$c1471) {
17185
- s2 = peg$c1471;
17539
+ if (input.substr(peg$currPos, 5) === peg$c1487) {
17540
+ s2 = peg$c1487;
17186
17541
  peg$currPos += 5;
17187
17542
  }
17188
17543
  else {
17189
17544
  s2 = peg$FAILED;
17190
17545
  if (peg$silentFails === 0) {
17191
- peg$fail(peg$c1472);
17546
+ peg$fail(peg$c1488);
17192
17547
  }
17193
17548
  }
17194
17549
  if (s2 !== peg$FAILED) {
@@ -17237,7 +17592,7 @@ function peg$parse(input, options) {
17237
17592
  }
17238
17593
  if (s9 !== peg$FAILED) {
17239
17594
  peg$savedPos = s0;
17240
- s1 = peg$c1473(s6);
17595
+ s1 = peg$c1489(s6);
17241
17596
  s0 = s1;
17242
17597
  }
17243
17598
  else {
@@ -17302,14 +17657,14 @@ function peg$parse(input, options) {
17302
17657
  s1 = null;
17303
17658
  }
17304
17659
  if (s1 !== peg$FAILED) {
17305
- if (input.substr(peg$currPos, 10) === peg$c1475) {
17306
- s2 = peg$c1475;
17660
+ if (input.substr(peg$currPos, 10) === peg$c1491) {
17661
+ s2 = peg$c1491;
17307
17662
  peg$currPos += 10;
17308
17663
  }
17309
17664
  else {
17310
17665
  s2 = peg$FAILED;
17311
17666
  if (peg$silentFails === 0) {
17312
- peg$fail(peg$c1476);
17667
+ peg$fail(peg$c1492);
17313
17668
  }
17314
17669
  }
17315
17670
  if (s2 !== peg$FAILED) {
@@ -17358,7 +17713,7 @@ function peg$parse(input, options) {
17358
17713
  }
17359
17714
  if (s9 !== peg$FAILED) {
17360
17715
  peg$savedPos = s0;
17361
- s1 = peg$c1477(s6);
17716
+ s1 = peg$c1493(s6);
17362
17717
  s0 = s1;
17363
17718
  }
17364
17719
  else {
@@ -17409,7 +17764,7 @@ function peg$parse(input, options) {
17409
17764
  if (s0 === peg$FAILED) {
17410
17765
  s1 = peg$FAILED;
17411
17766
  if (peg$silentFails === 0) {
17412
- peg$fail(peg$c1474);
17767
+ peg$fail(peg$c1490);
17413
17768
  }
17414
17769
  }
17415
17770
  return s0;
@@ -17423,14 +17778,14 @@ function peg$parse(input, options) {
17423
17778
  s1 = null;
17424
17779
  }
17425
17780
  if (s1 !== peg$FAILED) {
17426
- if (input.substr(peg$currPos, 16) === peg$c1479) {
17427
- s2 = peg$c1479;
17781
+ if (input.substr(peg$currPos, 16) === peg$c1495) {
17782
+ s2 = peg$c1495;
17428
17783
  peg$currPos += 16;
17429
17784
  }
17430
17785
  else {
17431
17786
  s2 = peg$FAILED;
17432
17787
  if (peg$silentFails === 0) {
17433
- peg$fail(peg$c1480);
17788
+ peg$fail(peg$c1496);
17434
17789
  }
17435
17790
  }
17436
17791
  if (s2 !== peg$FAILED) {
@@ -17479,7 +17834,7 @@ function peg$parse(input, options) {
17479
17834
  }
17480
17835
  if (s9 !== peg$FAILED) {
17481
17836
  peg$savedPos = s0;
17482
- s1 = peg$c1481(s6);
17837
+ s1 = peg$c1497(s6);
17483
17838
  s0 = s1;
17484
17839
  }
17485
17840
  else {
@@ -17530,7 +17885,7 @@ function peg$parse(input, options) {
17530
17885
  if (s0 === peg$FAILED) {
17531
17886
  s1 = peg$FAILED;
17532
17887
  if (peg$silentFails === 0) {
17533
- peg$fail(peg$c1478);
17888
+ peg$fail(peg$c1494);
17534
17889
  }
17535
17890
  }
17536
17891
  return s0;
@@ -17544,14 +17899,14 @@ function peg$parse(input, options) {
17544
17899
  s1 = null;
17545
17900
  }
17546
17901
  if (s1 !== peg$FAILED) {
17547
- if (input.substr(peg$currPos, 12) === peg$c1483) {
17548
- s2 = peg$c1483;
17902
+ if (input.substr(peg$currPos, 12) === peg$c1499) {
17903
+ s2 = peg$c1499;
17549
17904
  peg$currPos += 12;
17550
17905
  }
17551
17906
  else {
17552
17907
  s2 = peg$FAILED;
17553
17908
  if (peg$silentFails === 0) {
17554
- peg$fail(peg$c1484);
17909
+ peg$fail(peg$c1500);
17555
17910
  }
17556
17911
  }
17557
17912
  if (s2 !== peg$FAILED) {
@@ -17600,7 +17955,7 @@ function peg$parse(input, options) {
17600
17955
  }
17601
17956
  if (s9 !== peg$FAILED) {
17602
17957
  peg$savedPos = s0;
17603
- s1 = peg$c1485(s6);
17958
+ s1 = peg$c1501(s6);
17604
17959
  s0 = s1;
17605
17960
  }
17606
17961
  else {
@@ -17651,7 +18006,7 @@ function peg$parse(input, options) {
17651
18006
  if (s0 === peg$FAILED) {
17652
18007
  s1 = peg$FAILED;
17653
18008
  if (peg$silentFails === 0) {
17654
- peg$fail(peg$c1482);
18009
+ peg$fail(peg$c1498);
17655
18010
  }
17656
18011
  }
17657
18012
  return s0;
@@ -17665,14 +18020,14 @@ function peg$parse(input, options) {
17665
18020
  s1 = null;
17666
18021
  }
17667
18022
  if (s1 !== peg$FAILED) {
17668
- if (input.substr(peg$currPos, 5) === peg$c1487) {
17669
- s2 = peg$c1487;
18023
+ if (input.substr(peg$currPos, 5) === peg$c1503) {
18024
+ s2 = peg$c1503;
17670
18025
  peg$currPos += 5;
17671
18026
  }
17672
18027
  else {
17673
18028
  s2 = peg$FAILED;
17674
18029
  if (peg$silentFails === 0) {
17675
- peg$fail(peg$c1488);
18030
+ peg$fail(peg$c1504);
17676
18031
  }
17677
18032
  }
17678
18033
  if (s2 !== peg$FAILED) {
@@ -17721,7 +18076,7 @@ function peg$parse(input, options) {
17721
18076
  }
17722
18077
  if (s9 !== peg$FAILED) {
17723
18078
  peg$savedPos = s0;
17724
- s1 = peg$c1489(s6);
18079
+ s1 = peg$c1505(s6);
17725
18080
  s0 = s1;
17726
18081
  }
17727
18082
  else {
@@ -17772,7 +18127,7 @@ function peg$parse(input, options) {
17772
18127
  if (s0 === peg$FAILED) {
17773
18128
  s1 = peg$FAILED;
17774
18129
  if (peg$silentFails === 0) {
17775
- peg$fail(peg$c1486);
18130
+ peg$fail(peg$c1502);
17776
18131
  }
17777
18132
  }
17778
18133
  return s0;
@@ -17786,14 +18141,14 @@ function peg$parse(input, options) {
17786
18141
  s1 = null;
17787
18142
  }
17788
18143
  if (s1 !== peg$FAILED) {
17789
- if (input.substr(peg$currPos, 7) === peg$c1491) {
17790
- s2 = peg$c1491;
18144
+ if (input.substr(peg$currPos, 7) === peg$c1507) {
18145
+ s2 = peg$c1507;
17791
18146
  peg$currPos += 7;
17792
18147
  }
17793
18148
  else {
17794
18149
  s2 = peg$FAILED;
17795
18150
  if (peg$silentFails === 0) {
17796
- peg$fail(peg$c1492);
18151
+ peg$fail(peg$c1508);
17797
18152
  }
17798
18153
  }
17799
18154
  if (s2 !== peg$FAILED) {
@@ -17842,7 +18197,7 @@ function peg$parse(input, options) {
17842
18197
  }
17843
18198
  if (s9 !== peg$FAILED) {
17844
18199
  peg$savedPos = s0;
17845
- s1 = peg$c1493(s6);
18200
+ s1 = peg$c1509(s6);
17846
18201
  s0 = s1;
17847
18202
  }
17848
18203
  else {
@@ -17893,7 +18248,7 @@ function peg$parse(input, options) {
17893
18248
  if (s0 === peg$FAILED) {
17894
18249
  s1 = peg$FAILED;
17895
18250
  if (peg$silentFails === 0) {
17896
- peg$fail(peg$c1490);
18251
+ peg$fail(peg$c1506);
17897
18252
  }
17898
18253
  }
17899
18254
  return s0;
@@ -17963,7 +18318,7 @@ function peg$parse(input, options) {
17963
18318
  }
17964
18319
  if (s9 !== peg$FAILED) {
17965
18320
  peg$savedPos = s0;
17966
- s1 = peg$c1495(s6);
18321
+ s1 = peg$c1511(s6);
17967
18322
  s0 = s1;
17968
18323
  }
17969
18324
  else {
@@ -18017,14 +18372,14 @@ function peg$parse(input, options) {
18017
18372
  s1 = null;
18018
18373
  }
18019
18374
  if (s1 !== peg$FAILED) {
18020
- if (input.substr(peg$currPos, 9) === peg$c1496) {
18021
- s2 = peg$c1496;
18375
+ if (input.substr(peg$currPos, 9) === peg$c1512) {
18376
+ s2 = peg$c1512;
18022
18377
  peg$currPos += 9;
18023
18378
  }
18024
18379
  else {
18025
18380
  s2 = peg$FAILED;
18026
18381
  if (peg$silentFails === 0) {
18027
- peg$fail(peg$c1497);
18382
+ peg$fail(peg$c1513);
18028
18383
  }
18029
18384
  }
18030
18385
  if (s2 !== peg$FAILED) {
@@ -18073,7 +18428,7 @@ function peg$parse(input, options) {
18073
18428
  }
18074
18429
  if (s9 !== peg$FAILED) {
18075
18430
  peg$savedPos = s0;
18076
- s1 = peg$c1495(s6);
18431
+ s1 = peg$c1511(s6);
18077
18432
  s0 = s1;
18078
18433
  }
18079
18434
  else {
@@ -18125,7 +18480,7 @@ function peg$parse(input, options) {
18125
18480
  if (s0 === peg$FAILED) {
18126
18481
  s1 = peg$FAILED;
18127
18482
  if (peg$silentFails === 0) {
18128
- peg$fail(peg$c1494);
18483
+ peg$fail(peg$c1510);
18129
18484
  }
18130
18485
  }
18131
18486
  return s0;
@@ -18139,14 +18494,14 @@ function peg$parse(input, options) {
18139
18494
  s1 = null;
18140
18495
  }
18141
18496
  if (s1 !== peg$FAILED) {
18142
- if (input.substr(peg$currPos, 5) === peg$c1499) {
18143
- s2 = peg$c1499;
18497
+ if (input.substr(peg$currPos, 5) === peg$c1515) {
18498
+ s2 = peg$c1515;
18144
18499
  peg$currPos += 5;
18145
18500
  }
18146
18501
  else {
18147
18502
  s2 = peg$FAILED;
18148
18503
  if (peg$silentFails === 0) {
18149
- peg$fail(peg$c1500);
18504
+ peg$fail(peg$c1516);
18150
18505
  }
18151
18506
  }
18152
18507
  if (s2 !== peg$FAILED) {
@@ -18195,7 +18550,7 @@ function peg$parse(input, options) {
18195
18550
  }
18196
18551
  if (s9 !== peg$FAILED) {
18197
18552
  peg$savedPos = s0;
18198
- s1 = peg$c1501(s6);
18553
+ s1 = peg$c1517(s6);
18199
18554
  s0 = s1;
18200
18555
  }
18201
18556
  else {
@@ -18246,7 +18601,7 @@ function peg$parse(input, options) {
18246
18601
  if (s0 === peg$FAILED) {
18247
18602
  s1 = peg$FAILED;
18248
18603
  if (peg$silentFails === 0) {
18249
- peg$fail(peg$c1498);
18604
+ peg$fail(peg$c1514);
18250
18605
  }
18251
18606
  }
18252
18607
  return s0;
@@ -18260,14 +18615,14 @@ function peg$parse(input, options) {
18260
18615
  s1 = null;
18261
18616
  }
18262
18617
  if (s1 !== peg$FAILED) {
18263
- if (input.substr(peg$currPos, 3) === peg$c1503) {
18264
- s2 = peg$c1503;
18618
+ if (input.substr(peg$currPos, 3) === peg$c1519) {
18619
+ s2 = peg$c1519;
18265
18620
  peg$currPos += 3;
18266
18621
  }
18267
18622
  else {
18268
18623
  s2 = peg$FAILED;
18269
18624
  if (peg$silentFails === 0) {
18270
- peg$fail(peg$c1504);
18625
+ peg$fail(peg$c1520);
18271
18626
  }
18272
18627
  }
18273
18628
  if (s2 !== peg$FAILED) {
@@ -18316,7 +18671,7 @@ function peg$parse(input, options) {
18316
18671
  }
18317
18672
  if (s9 !== peg$FAILED) {
18318
18673
  peg$savedPos = s0;
18319
- s1 = peg$c1505(s6);
18674
+ s1 = peg$c1521(s6);
18320
18675
  s0 = s1;
18321
18676
  }
18322
18677
  else {
@@ -18367,7 +18722,7 @@ function peg$parse(input, options) {
18367
18722
  if (s0 === peg$FAILED) {
18368
18723
  s1 = peg$FAILED;
18369
18724
  if (peg$silentFails === 0) {
18370
- peg$fail(peg$c1502);
18725
+ peg$fail(peg$c1518);
18371
18726
  }
18372
18727
  }
18373
18728
  return s0;
@@ -18381,14 +18736,14 @@ function peg$parse(input, options) {
18381
18736
  s1 = null;
18382
18737
  }
18383
18738
  if (s1 !== peg$FAILED) {
18384
- if (input.substr(peg$currPos, 8) === peg$c1507) {
18385
- s2 = peg$c1507;
18739
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
18740
+ s2 = peg$c1523;
18386
18741
  peg$currPos += 8;
18387
18742
  }
18388
18743
  else {
18389
18744
  s2 = peg$FAILED;
18390
18745
  if (peg$silentFails === 0) {
18391
- peg$fail(peg$c1508);
18746
+ peg$fail(peg$c1524);
18392
18747
  }
18393
18748
  }
18394
18749
  if (s2 !== peg$FAILED) {
@@ -18441,7 +18796,7 @@ function peg$parse(input, options) {
18441
18796
  }
18442
18797
  if (s11 !== peg$FAILED) {
18443
18798
  peg$savedPos = s0;
18444
- s1 = peg$c1509(s6, s8);
18799
+ s1 = peg$c1525(s6, s8);
18445
18800
  s0 = s1;
18446
18801
  }
18447
18802
  else {
@@ -18505,14 +18860,14 @@ function peg$parse(input, options) {
18505
18860
  s1 = null;
18506
18861
  }
18507
18862
  if (s1 !== peg$FAILED) {
18508
- if (input.substr(peg$currPos, 8) === peg$c1507) {
18509
- s2 = peg$c1507;
18863
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
18864
+ s2 = peg$c1523;
18510
18865
  peg$currPos += 8;
18511
18866
  }
18512
18867
  else {
18513
18868
  s2 = peg$FAILED;
18514
18869
  if (peg$silentFails === 0) {
18515
- peg$fail(peg$c1508);
18870
+ peg$fail(peg$c1524);
18516
18871
  }
18517
18872
  }
18518
18873
  if (s2 !== peg$FAILED) {
@@ -18545,14 +18900,14 @@ function peg$parse(input, options) {
18545
18900
  if (s8 !== peg$FAILED) {
18546
18901
  s9 = peg$parseWS();
18547
18902
  if (s9 !== peg$FAILED) {
18548
- if (input.substr(peg$currPos, 8) === peg$c1510) {
18549
- s10 = peg$c1510;
18903
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
18904
+ s10 = peg$c1526;
18550
18905
  peg$currPos += 8;
18551
18906
  }
18552
18907
  else {
18553
18908
  s10 = peg$FAILED;
18554
18909
  if (peg$silentFails === 0) {
18555
- peg$fail(peg$c1511);
18910
+ peg$fail(peg$c1527);
18556
18911
  }
18557
18912
  }
18558
18913
  if (s10 !== peg$FAILED) {
@@ -18578,7 +18933,7 @@ function peg$parse(input, options) {
18578
18933
  }
18579
18934
  if (s13 !== peg$FAILED) {
18580
18935
  peg$savedPos = s0;
18581
- s1 = peg$c1512(s6, s8);
18936
+ s1 = peg$c1528(s6, s8);
18582
18937
  s0 = s1;
18583
18938
  }
18584
18939
  else {
@@ -18650,7 +19005,7 @@ function peg$parse(input, options) {
18650
19005
  if (s0 === peg$FAILED) {
18651
19006
  s1 = peg$FAILED;
18652
19007
  if (peg$silentFails === 0) {
18653
- peg$fail(peg$c1506);
19008
+ peg$fail(peg$c1522);
18654
19009
  }
18655
19010
  }
18656
19011
  return s0;
@@ -18830,7 +19185,7 @@ function peg$parse(input, options) {
18830
19185
  }
18831
19186
  if (s11 !== peg$FAILED) {
18832
19187
  peg$savedPos = s0;
18833
- s1 = peg$c1513(s4, s8);
19188
+ s1 = peg$c1529(s4, s8);
18834
19189
  s0 = s1;
18835
19190
  }
18836
19191
  else {
@@ -18898,13 +19253,13 @@ function peg$parse(input, options) {
18898
19253
  }
18899
19254
  if (s1 !== peg$FAILED) {
18900
19255
  if (input.charCodeAt(peg$currPos) === 38) {
18901
- s2 = peg$c1514;
19256
+ s2 = peg$c1530;
18902
19257
  peg$currPos++;
18903
19258
  }
18904
19259
  else {
18905
19260
  s2 = peg$FAILED;
18906
19261
  if (peg$silentFails === 0) {
18907
- peg$fail(peg$c1515);
19262
+ peg$fail(peg$c1531);
18908
19263
  }
18909
19264
  }
18910
19265
  if (s2 !== peg$FAILED) {
@@ -18960,7 +19315,7 @@ function peg$parse(input, options) {
18960
19315
  }
18961
19316
  if (s11 !== peg$FAILED) {
18962
19317
  peg$savedPos = s0;
18963
- s1 = peg$c1516(s4, s8);
19318
+ s1 = peg$c1532(s4, s8);
18964
19319
  s0 = s1;
18965
19320
  }
18966
19321
  else {
@@ -19027,14 +19382,14 @@ function peg$parse(input, options) {
19027
19382
  s1 = null;
19028
19383
  }
19029
19384
  if (s1 !== peg$FAILED) {
19030
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19031
- s2 = peg$c1507;
19385
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19386
+ s2 = peg$c1523;
19032
19387
  peg$currPos += 8;
19033
19388
  }
19034
19389
  else {
19035
19390
  s2 = peg$FAILED;
19036
19391
  if (peg$silentFails === 0) {
19037
- peg$fail(peg$c1508);
19392
+ peg$fail(peg$c1524);
19038
19393
  }
19039
19394
  }
19040
19395
  if (s2 !== peg$FAILED) {
@@ -19061,14 +19416,14 @@ function peg$parse(input, options) {
19061
19416
  if (s8 !== peg$FAILED) {
19062
19417
  s9 = peg$parseWS();
19063
19418
  if (s9 !== peg$FAILED) {
19064
- if (input.substr(peg$currPos, 8) === peg$c1510) {
19065
- s10 = peg$c1510;
19419
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
19420
+ s10 = peg$c1526;
19066
19421
  peg$currPos += 8;
19067
19422
  }
19068
19423
  else {
19069
19424
  s10 = peg$FAILED;
19070
19425
  if (peg$silentFails === 0) {
19071
- peg$fail(peg$c1511);
19426
+ peg$fail(peg$c1527);
19072
19427
  }
19073
19428
  }
19074
19429
  if (s10 !== peg$FAILED) {
@@ -19094,7 +19449,7 @@ function peg$parse(input, options) {
19094
19449
  }
19095
19450
  if (s13 !== peg$FAILED) {
19096
19451
  peg$savedPos = s0;
19097
- s1 = peg$c1517(s4, s8);
19452
+ s1 = peg$c1533(s4, s8);
19098
19453
  s0 = s1;
19099
19454
  }
19100
19455
  else {
@@ -19168,14 +19523,14 @@ function peg$parse(input, options) {
19168
19523
  s1 = null;
19169
19524
  }
19170
19525
  if (s1 !== peg$FAILED) {
19171
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19172
- s2 = peg$c1507;
19526
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19527
+ s2 = peg$c1523;
19173
19528
  peg$currPos += 8;
19174
19529
  }
19175
19530
  else {
19176
19531
  s2 = peg$FAILED;
19177
19532
  if (peg$silentFails === 0) {
19178
- peg$fail(peg$c1508);
19533
+ peg$fail(peg$c1524);
19179
19534
  }
19180
19535
  }
19181
19536
  if (s2 !== peg$FAILED) {
@@ -19185,14 +19540,14 @@ function peg$parse(input, options) {
19185
19540
  if (s4 !== peg$FAILED) {
19186
19541
  s5 = peg$parseWS();
19187
19542
  if (s5 !== peg$FAILED) {
19188
- if (input.substr(peg$currPos, 8) === peg$c1510) {
19189
- s6 = peg$c1510;
19543
+ if (input.substr(peg$currPos, 8) === peg$c1526) {
19544
+ s6 = peg$c1526;
19190
19545
  peg$currPos += 8;
19191
19546
  }
19192
19547
  else {
19193
19548
  s6 = peg$FAILED;
19194
19549
  if (peg$silentFails === 0) {
19195
- peg$fail(peg$c1511);
19550
+ peg$fail(peg$c1527);
19196
19551
  }
19197
19552
  }
19198
19553
  if (s6 !== peg$FAILED) {
@@ -19218,7 +19573,7 @@ function peg$parse(input, options) {
19218
19573
  }
19219
19574
  if (s9 !== peg$FAILED) {
19220
19575
  peg$savedPos = s0;
19221
- s1 = peg$c1518(s4);
19576
+ s1 = peg$c1534(s4);
19222
19577
  s0 = s1;
19223
19578
  }
19224
19579
  else {
@@ -19272,14 +19627,14 @@ function peg$parse(input, options) {
19272
19627
  s1 = null;
19273
19628
  }
19274
19629
  if (s1 !== peg$FAILED) {
19275
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19276
- s2 = peg$c1507;
19630
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19631
+ s2 = peg$c1523;
19277
19632
  peg$currPos += 8;
19278
19633
  }
19279
19634
  else {
19280
19635
  s2 = peg$FAILED;
19281
19636
  if (peg$silentFails === 0) {
19282
- peg$fail(peg$c1508);
19637
+ peg$fail(peg$c1524);
19283
19638
  }
19284
19639
  }
19285
19640
  if (s2 !== peg$FAILED) {
@@ -19326,7 +19681,7 @@ function peg$parse(input, options) {
19326
19681
  }
19327
19682
  if (s11 !== peg$FAILED) {
19328
19683
  peg$savedPos = s0;
19329
- s1 = peg$c1519(s4, s8);
19684
+ s1 = peg$c1535(s4, s8);
19330
19685
  s0 = s1;
19331
19686
  }
19332
19687
  else {
@@ -19390,14 +19745,14 @@ function peg$parse(input, options) {
19390
19745
  s1 = null;
19391
19746
  }
19392
19747
  if (s1 !== peg$FAILED) {
19393
- if (input.substr(peg$currPos, 8) === peg$c1507) {
19394
- s2 = peg$c1507;
19748
+ if (input.substr(peg$currPos, 8) === peg$c1523) {
19749
+ s2 = peg$c1523;
19395
19750
  peg$currPos += 8;
19396
19751
  }
19397
19752
  else {
19398
19753
  s2 = peg$FAILED;
19399
19754
  if (peg$silentFails === 0) {
19400
- peg$fail(peg$c1508);
19755
+ peg$fail(peg$c1524);
19401
19756
  }
19402
19757
  }
19403
19758
  if (s2 !== peg$FAILED) {
@@ -19427,7 +19782,7 @@ function peg$parse(input, options) {
19427
19782
  }
19428
19783
  if (s7 !== peg$FAILED) {
19429
19784
  peg$savedPos = s0;
19430
- s1 = peg$c1520(s4);
19785
+ s1 = peg$c1536(s4);
19431
19786
  s0 = s1;
19432
19787
  }
19433
19788
  else {
@@ -19472,14 +19827,14 @@ function peg$parse(input, options) {
19472
19827
  function peg$parseRegularArrangeDeclaration() {
19473
19828
  var s0, s1, s2, s3, s4, s5, s6;
19474
19829
  s0 = peg$currPos;
19475
- if (input.substr(peg$currPos, 7) === peg$c1521) {
19476
- s1 = peg$c1521;
19830
+ if (input.substr(peg$currPos, 7) === peg$c1537) {
19831
+ s1 = peg$c1537;
19477
19832
  peg$currPos += 7;
19478
19833
  }
19479
19834
  else {
19480
19835
  s1 = peg$FAILED;
19481
19836
  if (peg$silentFails === 0) {
19482
- peg$fail(peg$c1522);
19837
+ peg$fail(peg$c1538);
19483
19838
  }
19484
19839
  }
19485
19840
  if (s1 !== peg$FAILED) {
@@ -19512,7 +19867,7 @@ function peg$parse(input, options) {
19512
19867
  }
19513
19868
  if (s6 !== peg$FAILED) {
19514
19869
  peg$savedPos = s0;
19515
- s1 = peg$c1523(s3);
19870
+ s1 = peg$c1539(s3);
19516
19871
  s0 = s1;
19517
19872
  }
19518
19873
  else {
@@ -19549,14 +19904,14 @@ function peg$parse(input, options) {
19549
19904
  function peg$parseArrangeStartDeclaration() {
19550
19905
  var s0, s1, s2, s3, s4, s5, s6;
19551
19906
  s0 = peg$currPos;
19552
- if (input.substr(peg$currPos, 13) === peg$c1524) {
19553
- s1 = peg$c1524;
19907
+ if (input.substr(peg$currPos, 13) === peg$c1540) {
19908
+ s1 = peg$c1540;
19554
19909
  peg$currPos += 13;
19555
19910
  }
19556
19911
  else {
19557
19912
  s1 = peg$FAILED;
19558
19913
  if (peg$silentFails === 0) {
19559
- peg$fail(peg$c1525);
19914
+ peg$fail(peg$c1541);
19560
19915
  }
19561
19916
  }
19562
19917
  if (s1 !== peg$FAILED) {
@@ -19589,7 +19944,7 @@ function peg$parse(input, options) {
19589
19944
  }
19590
19945
  if (s6 !== peg$FAILED) {
19591
19946
  peg$savedPos = s0;
19592
- s1 = peg$c1526(s3);
19947
+ s1 = peg$c1542(s3);
19593
19948
  s0 = s1;
19594
19949
  }
19595
19950
  else {
@@ -19626,14 +19981,14 @@ function peg$parse(input, options) {
19626
19981
  function peg$parseArrangeEndDeclaration() {
19627
19982
  var s0, s1, s2, s3, s4, s5, s6;
19628
19983
  s0 = peg$currPos;
19629
- if (input.substr(peg$currPos, 11) === peg$c1527) {
19630
- s1 = peg$c1527;
19984
+ if (input.substr(peg$currPos, 11) === peg$c1543) {
19985
+ s1 = peg$c1543;
19631
19986
  peg$currPos += 11;
19632
19987
  }
19633
19988
  else {
19634
19989
  s1 = peg$FAILED;
19635
19990
  if (peg$silentFails === 0) {
19636
- peg$fail(peg$c1528);
19991
+ peg$fail(peg$c1544);
19637
19992
  }
19638
19993
  }
19639
19994
  if (s1 !== peg$FAILED) {
@@ -19666,7 +20021,7 @@ function peg$parse(input, options) {
19666
20021
  }
19667
20022
  if (s6 !== peg$FAILED) {
19668
20023
  peg$savedPos = s0;
19669
- s1 = peg$c1529(s3);
20024
+ s1 = peg$c1545(s3);
19670
20025
  s0 = s1;
19671
20026
  }
19672
20027
  else {
@@ -19713,7 +20068,7 @@ function peg$parse(input, options) {
19713
20068
  peg$silentFails--;
19714
20069
  if (s0 === peg$FAILED) {
19715
20070
  if (peg$silentFails === 0) {
19716
- peg$fail(peg$c1530);
20071
+ peg$fail(peg$c1546);
19717
20072
  }
19718
20073
  }
19719
20074
  return s0;
@@ -21034,10 +21389,10 @@ function compile_rule_handler(rule) {
21034
21389
  'graph_layout', 'start_states', 'end_states', 'failed_outputs', 'machine_name', 'machine_version',
21035
21390
  'machine_comment', 'machine_author', 'machine_contributor', 'machine_definition',
21036
21391
  'machine_reference', 'machine_license', 'fsl_version', 'state_config', 'theme',
21037
- 'flow', 'dot_preamble', 'allows_override', 'default_state_config',
21392
+ 'flow', 'dot_preamble', 'allows_override', 'allow_islands', 'default_state_config',
21038
21393
  'default_start_state_config', 'default_end_state_config',
21039
21394
  'default_hooked_state_config', 'default_active_state_config',
21040
- 'default_terminal_state_config', 'npm_name'
21395
+ 'default_terminal_state_config', 'npm_name', 'default_size'
21041
21396
  ];
21042
21397
  if (tautologies.includes(rule.key)) {
21043
21398
  return { agg_as: rule.key, val: rule.value };
@@ -21114,6 +21469,7 @@ function compile(tree) {
21114
21469
  machine_name: [],
21115
21470
  machine_reference: [],
21116
21471
  npm_name: [],
21472
+ default_size: [],
21117
21473
  property_definition: [],
21118
21474
  state_property: {},
21119
21475
  theme: [],
@@ -21129,7 +21485,8 @@ function compile(tree) {
21129
21485
  default_terminal_state_config: [],
21130
21486
  default_start_state_config: [],
21131
21487
  default_end_state_config: [],
21132
- allows_override: []
21488
+ allows_override: [],
21489
+ allow_islands: []
21133
21490
  };
21134
21491
  tree.map((tr) => {
21135
21492
  const rule = compile_rule_handler(tr), agg_as = rule.agg_as, val = rule.val; // TODO FIXME no any
@@ -21150,7 +21507,7 @@ function compile(tree) {
21150
21507
  const oneOnlyKeys = [
21151
21508
  'graph_layout', 'machine_name', 'machine_version', 'machine_comment',
21152
21509
  'fsl_version', 'machine_license', 'machine_definition', 'machine_language',
21153
- 'flow', 'dot_preamble', 'allows_override', 'npm_name'
21510
+ 'flow', 'dot_preamble', 'allows_override', 'allow_islands', 'npm_name', 'default_size'
21154
21511
  ];
21155
21512
  oneOnlyKeys.map((oneOnlyKey) => {
21156
21513
  if (results[oneOnlyKey].length > 1) {
@@ -21665,7 +22022,7 @@ var constants = /*#__PURE__*/Object.freeze({
21665
22022
  * Useful for runtime diagnostics and for embedding in serialized machine
21666
22023
  * snapshots so that deserializers can detect version-skew.
21667
22024
  */
21668
- const version = "5.142.2";
22025
+ const version = "5.142.4";
21669
22026
 
21670
22027
  // whargarbl lots of these return arrays could/should be sets
21671
22028
  const { state_name_chars, state_name_first_chars, action_label_chars } = constants;
@@ -21855,9 +22212,56 @@ function state_style_condense(jssk, machine) {
21855
22212
  * `.data()`. Defaults to `undefined` when no data is used.
21856
22213
  *
21857
22214
  */
22215
+ /*********
22216
+ *
22217
+ * Partition a state graph into its connected components using an undirected
22218
+ * BFS over state names. Each edge (from, to) is treated as bidirectional so
22219
+ * that island membership is topology-based rather than flow-based.
22220
+ *
22221
+ * Used at construction time to enforce the `allow_islands` constraint.
22222
+ *
22223
+ * @param states The machine's state map (keys are state names).
22224
+ * @param edges The machine's edge list; only `from` and `to` are used.
22225
+ * @returns An array of components, each component an array of state names.
22226
+ *
22227
+ */
22228
+ function find_connected_components(states, edges) {
22229
+ // Build undirected adjacency list
22230
+ const adj = new Map();
22231
+ for (const name of states.keys()) {
22232
+ adj.set(name, new Set());
22233
+ }
22234
+ for (const edge of edges) {
22235
+ adj.get(edge.from).add(edge.to);
22236
+ adj.get(edge.to).add(edge.from);
22237
+ }
22238
+ const visited = new Set();
22239
+ const result = [];
22240
+ for (const start of states.keys()) {
22241
+ if (visited.has(start)) {
22242
+ continue;
22243
+ }
22244
+ // BFS to collect this component
22245
+ const component = [];
22246
+ const queue = [start];
22247
+ visited.add(start);
22248
+ while (queue.length > 0) {
22249
+ const node = queue.shift();
22250
+ component.push(node);
22251
+ for (const neighbor of adj.get(node)) {
22252
+ if (!visited.has(neighbor)) {
22253
+ visited.add(neighbor);
22254
+ queue.push(neighbor);
22255
+ }
22256
+ }
22257
+ }
22258
+ result.push(component);
22259
+ }
22260
+ return result;
22261
+ }
21858
22262
  class Machine {
21859
22263
  // whargarbl this badly needs to be broken up, monolith master
21860
- constructor({ start_states, end_states = [], failed_outputs = [], initial_state, start_states_no_enforce, complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, npm_name, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override, rng_seed, time_source, timeout_source, clear_timeout_source }) {
22264
+ constructor({ start_states, end_states = [], failed_outputs = [], initial_state, start_states_no_enforce, complete = [], transitions, machine_author, machine_comment, machine_contributor, machine_definition, machine_language, machine_license, machine_name, machine_version, npm_name, default_size, state_declaration, property_definition, state_property, fsl_version, dot_preamble = undefined, arrange_declaration = [], arrange_start_declaration = [], arrange_end_declaration = [], theme = ['default'], flow = 'down', graph_layout = 'dot', instance_name, history, data, default_state_config, default_active_state_config, default_hooked_state_config, default_terminal_state_config, default_start_state_config, default_end_state_config, allows_override, config_allows_override, allow_islands, rng_seed, time_source, timeout_source, clear_timeout_source }) {
21861
22265
  this._time_source = () => new Date().getTime();
21862
22266
  this._create_started = this._time_source();
21863
22267
  this._instance_name = instance_name;
@@ -21882,6 +22286,7 @@ class Machine {
21882
22286
  this._machine_name = machine_name;
21883
22287
  this._machine_version = machine_version;
21884
22288
  this._npm_name = npm_name;
22289
+ this._default_size = default_size;
21885
22290
  this._raw_state_declaration = state_declaration || [];
21886
22291
  this._fsl_version = fsl_version;
21887
22292
  this._arrange_declaration = arrange_declaration;
@@ -21922,6 +22327,7 @@ class Machine {
21922
22327
  // no need for a boolean for single hooks, just test for undefinedness
21923
22328
  this._code_allows_override = allows_override;
21924
22329
  this._config_allows_override = config_allows_override;
22330
+ this._allow_islands = allow_islands !== null && allow_islands !== void 0 ? allow_islands : true;
21925
22331
  if ((allows_override === false) && (config_allows_override === true)) {
21926
22332
  throw new JssmError(undefined, "Code specifies no override, but config tries to permit; config may not be less strict than code");
21927
22333
  }
@@ -22180,6 +22586,24 @@ class Machine {
22180
22586
  if (!(start_states.length === this._start_states.size)) {
22181
22587
  throw new JssmError(this, `Start states cannot be repeated`);
22182
22588
  }
22589
+ // assert connectivity constraints imposed by allow_islands
22590
+ if (this._allow_islands !== true) {
22591
+ const components = find_connected_components(this._states, this._edges);
22592
+ if (this._allow_islands === false) {
22593
+ if (components.length > 1) {
22594
+ throw new JssmError(this, `allow_islands is false but the state graph has ${components.length} disconnected components`);
22595
+ }
22596
+ }
22597
+ else {
22598
+ // 'with_start': every component must contain at least one start state
22599
+ for (const component of components) {
22600
+ const has_start = component.some(s => this._start_states.has(s));
22601
+ if (!has_start) {
22602
+ throw new JssmError(this, `allow_islands is 'with_start' but a connected component has no start state: [${[...component].join(', ')}]`);
22603
+ }
22604
+ }
22605
+ }
22606
+ }
22183
22607
  this._created = this._time_source();
22184
22608
  this.auto_set_state_timeout();
22185
22609
  this._arrange_declaration.forEach((arrange_pair) => arrange_pair.forEach((possibleState) => {
@@ -22674,6 +23098,23 @@ class Machine {
22674
23098
  npm_name() {
22675
23099
  return this._npm_name;
22676
23100
  }
23101
+ /** Get the render-size hint for the machine's visualization. Set via the
23102
+ * FSL `default_size` directive. Returns `undefined` when not present.
23103
+ *
23104
+ * The three FSL forms each produce a different subset of fields:
23105
+ *
23106
+ * - `default_size: 800;` → `{ width: 800 }`
23107
+ * - `default_size: 800 600;` → `{ width: 800, height: 600 }`
23108
+ * - `default_size: height 600;` → `{ height: 600 }`
23109
+ *
23110
+ * This is a hint, not a hard constraint. Renderers may ignore it.
23111
+ *
23112
+ * @returns The size-hint object, or `undefined` if not set.
23113
+ * @see npm_name
23114
+ */
23115
+ default_size() {
23116
+ return this._default_size;
23117
+ }
22677
23118
  /** Get the machine's version string. Set via the FSL `machine_version` directive.
22678
23119
  * @returns The version string.
22679
23120
  */
@@ -22900,6 +23341,19 @@ class Machine {
22900
23341
  return false;
22901
23342
  }
22902
23343
  }
23344
+ /*********
23345
+ *
23346
+ * Return the effective island policy for this machine. `true` means
23347
+ * disconnected components are allowed (the default), `false` requires a
23348
+ * single connected component, and `'with_start'` allows islands only when
23349
+ * every component contains at least one start state.
23350
+ *
23351
+ * @returns The island policy stored in the machine.
23352
+ *
23353
+ */
23354
+ get allow_islands() {
23355
+ return this._allow_islands;
23356
+ }
22903
23357
  /** List all available theme names.
22904
23358
  * @returns An array of theme name strings.
22905
23359
  */