occam-verify-cli 0.0.391 → 0.0.393

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.
@@ -32,14 +32,9 @@ function verifyAction(argument, logLevel) {
32
32
 
33
33
  initialiseReleaseContext(dependency, context);
34
34
 
35
- const releaseName = name, ///
36
- releaseVerified = verifyRelease(releaseName, releaseContextMap);
35
+ const releaseName = name; ///
37
36
 
38
- if (releaseVerified) {
39
- const releaseContext = releaseContextMap[releaseName];
40
-
41
- ///
42
- }
37
+ verifyRelease(releaseName, releaseContextMap);
43
38
  });
44
39
  }
45
40
 
@@ -58,11 +58,12 @@ function checkReleaseMatchesDependency(dependency, dependentNames, releaseContex
58
58
  const { log } = context,
59
59
  version = releaseContext.getVersion(),
60
60
  versionString = version.toString(),
61
- dependencyName = dependency.getName(),
62
61
  lastDependentName = last(dependentNames),
62
+ dependentName = lastDependentName, ///
63
+ dependencyName = dependency.getName(),
63
64
  shortenedVersionString = shortenedVersion.toString();
64
65
 
65
- log.error(`Version mismatch: '${lastDependentName}' requires '${dependencyName}' to be version ${shortenedVersionString}.0 or higher but version ${versionString} has been supplied.`);
66
+ log.error(`Version mismatch: '${dependentName}' requires '${dependencyName}' to be version ${shortenedVersionString}.0 or higher but version ${versionString} has been supplied.`);
66
67
  }
67
68
  }
68
69
 
package/lib/axiom.js CHANGED
@@ -9,9 +9,10 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _label = /*#__PURE__*/ _interopRequireDefault(require("./label"));
12
+ var _query = require("./utilities/query");
12
13
  var _kinds = require("./kinds");
13
14
  var _string = require("./utilities/string");
14
- var _ruleNames = require("occam-custom-grammars/lib/ruleNames");
15
+ var _ruleNames = require("./ruleNames");
15
16
  function _classCallCheck(instance, Constructor) {
16
17
  if (!(instance instanceof Constructor)) {
17
18
  throw new TypeError("Cannot call a class as a function");
@@ -36,6 +37,7 @@ function _interopRequireDefault(obj) {
36
37
  default: obj
37
38
  };
38
39
  }
40
+ var statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement");
39
41
  var Axiom = /*#__PURE__*/ function() {
40
42
  function Axiom(labels, statementNode, suppositionStatementNode, consequentStatementNode) {
41
43
  _classCallCheck(this, Axiom);
@@ -117,25 +119,22 @@ var Axiom = /*#__PURE__*/ function() {
117
119
  return labels;
118
120
  }, []);
119
121
  if (statement !== null) {
120
- var content = statement, ruleName = _ruleNames.STATEMENT_RULE_NAME, node = callback(content, ruleName), statementNode = node; ///
121
- if (statementNode !== null) {
122
- var consequentNode = null, suppositionNode = null;
123
- axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
124
- }
122
+ var ruleName = _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME, content = "".concat(statement, "\n"), unqualifiedStatementNode = callback(content, ruleName), statementNode = statementNodeQuery(unqualifiedStatementNode), consequentNode = null, suppositionNode = null;
123
+ axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
125
124
  }
126
125
  if (consequent !== null && supposition !== null) {
127
- var node1, content1;
128
- var ruleName1 = _ruleNames.STATEMENT_RULE_NAME;
129
- content1 = consequent; ///
130
- node1 = callback(content1, ruleName1);
131
- var consequentNode1 = node1; ///
132
- content1 = supposition; ///
133
- node1 = callback(content1, ruleName1);
134
- var suppositionNode1 = node1; ///
135
- if (consequentNode1 !== null && suppositionNode1 !== null) {
136
- var statementNode1 = null;
137
- axiom = new Axiom(labels, statementNode1, consequentNode1, suppositionNode1);
138
- }
126
+ var content1, statementNode1, unqualifiedStatementNode1;
127
+ var ruleName1 = _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME;
128
+ content1 = "".concat(consequent, "\n");
129
+ unqualifiedStatementNode1 = callback(content1, ruleName1);
130
+ statementNode1 = statementNodeQuery(unqualifiedStatementNode1);
131
+ var consequentNode1 = statementNode1; ///
132
+ content1 = "".concat(supposition, "\n");
133
+ unqualifiedStatementNode1 = callback(content1, ruleName1);
134
+ statementNode1 = statementNodeQuery(unqualifiedStatementNode1);
135
+ var suppositionNode1 = statementNode1; ///
136
+ statementNode1 = null;
137
+ axiom = new Axiom(labels, statementNode1, consequentNode1, suppositionNode1);
139
138
  }
140
139
  return axiom;
141
140
  }
@@ -158,4 +157,4 @@ var Axiom = /*#__PURE__*/ function() {
158
157
  return Axiom;
159
158
  }();
160
159
 
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5cbmltcG9ydCB7IEFYSU9NX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnMvbGliL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBeGlvbSB7XG4gIGNvbnN0cnVjdG9yKGxhYmVscywgc3RhdGVtZW50Tm9kZSwgc3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlLCBjb25zZXF1ZW50U3RhdGVtZW50Tm9kZSkge1xuICAgIHRoaXMubGFiZWxzID0gbGFiZWxzO1xuICAgIHRoaXMuc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5zdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGU7XG4gICAgdGhpcy5jb25zZXF1ZW50U3RhdGVtZW50Tm9kZSA9IGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0TGFiZWxzKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVscztcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIGdldFN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3NpdGlvblN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRDb25zZXF1ZW50U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zZXF1ZW50U3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOYW1lKGxhYmVsTmFtZSkge1xuICAgIGNvbnN0IG1hdGNoZXNMYWJlbE5hbWUgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbmFtZSA9IGxhYmVsTmFtZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOYW1lID0gbGFiZWwubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTmFtZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtYXRjaGVzTGFiZWxOYW1lO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5zdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBjb25zZXF1ZW50U3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuY29uc2VxdWVudFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBraW5kID0gQVhJT01fS0lORCxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbHNKU09OLCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAgY29uc2VxdWVudCA9IGNvbnNlcXVlbnRTdGF0ZW1lbnRTdHJpbmcsIC8vL1xuICAgICAgICAgIHN1cHBvc2l0aW9uID0gc3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmcsIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBraW5kLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgc3RhdGVtZW50LFxuICAgICAgICAgICAgY29uc2VxdWVudCxcbiAgICAgICAgICAgIHN1cHBvc2l0aW9uXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNhbGxiYWNrKSB7XG4gICAgbGV0IGF4aW9tID0gbnVsbDtcblxuICAgIGxldCB7IGxhYmVscyB9ID0ganNvbjtcblxuICAgIGNvbnN0IHsgc3RhdGVtZW50LCBjb25zZXF1ZW50LCBzdXBwb3NpdGlvbiB9ID0ganNvbjtcblxuICAgIGxhYmVscyA9IGxhYmVscy5yZWR1Y2UoKGxhYmVscywgbGFiZWwpID0+IHtcbiAgICAgIGlmIChsYWJlbHMgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QganNvbiA9IGxhYmVsOyAvLy9cblxuICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OKGpzb24sIGNhbGxiYWNrKTsgLy8vXG5cbiAgICAgICAgaWYgKGxhYmVsICE9PSBudWxsKSB7XG4gICAgICAgICAgbGFiZWxzLnB1c2gobGFiZWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxhYmVscyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGxhYmVscztcbiAgICB9LCBbXSk7XG5cbiAgICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gc3RhdGVtZW50LCAgLy8vXG4gICAgICAgICAgICBydWxlTmFtZSA9IFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgICBub2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBjb25zZXF1ZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgICAgIHN1cHBvc2l0aW9uTm9kZSA9IG51bGw7XG5cbiAgICAgICAgYXhpb20gPSBuZXcgQXhpb20obGFiZWxzLCBzdGF0ZW1lbnROb2RlLCBjb25zZXF1ZW50Tm9kZSwgc3VwcG9zaXRpb25Ob2RlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoKGNvbnNlcXVlbnQgIT09IG51bGwpICYmIChzdXBwb3NpdGlvbiAhPT0gbnVsbCkpIHtcbiAgICAgIGxldCBub2RlLFxuICAgICAgICAgIGNvbnRlbnQ7XG5cbiAgICAgIGNvbnN0IHJ1bGVOYW1lID0gU1RBVEVNRU5UX1JVTEVfTkFNRTtcblxuICAgICAgY29udGVudCA9IGNvbnNlcXVlbnQ7ICAvLy9cblxuICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKTtcblxuICAgICAgY29uc3QgY29uc2VxdWVudE5vZGUgPSBub2RlOyAvLy9cblxuICAgICAgY29udGVudCA9IHN1cHBvc2l0aW9uOyAgLy8vXG5cbiAgICAgIG5vZGUgPSBjYWxsYmFjayhjb250ZW50LCBydWxlTmFtZSk7XG5cbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9uTm9kZSA9IG5vZGU7IC8vL1xuXG4gICAgICBpZiAoKGNvbnNlcXVlbnROb2RlICE9PSBudWxsKSAmJiAoc3VwcG9zaXRpb25Ob2RlICE9PSBudWxsKSkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gbnVsbDtcblxuICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnROb2RlLCBzdXBwb3NpdGlvbk5vZGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBheGlvbTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdXBwb3NpdGlvblN0YXRlbWVudE5vZGVDb25zZXF1ZW50U3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkF4aW9tIiwibGFiZWxzIiwic3RhdGVtZW50Tm9kZSIsInN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwiZ2V0TGFiZWxzIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdldFN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImdldENvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwibWF0Y2hMYWJlbE5hbWUiLCJsYWJlbE5hbWUiLCJtYXRjaGVzTGFiZWxOYW1lIiwic29tZSIsImxhYmVsIiwibmFtZSIsImxhYmVsTWF0Y2hlc05hbWUiLCJtYXRjaE5hbWUiLCJ0b0pTT04iLCJsYWJlbHNKU09OIiwibWFwIiwibGFiZWxKU09OIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29uc2VxdWVudFN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nIiwia2luZCIsIkFYSU9NX0tJTkQiLCJzdGF0ZW1lbnQiLCJjb25zZXF1ZW50Iiwic3VwcG9zaXRpb24iLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsImF4aW9tIiwicmVkdWNlIiwiTGFiZWwiLCJwdXNoIiwiY29udGVudCIsInJ1bGVOYW1lIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsIm5vZGUiLCJjb25zZXF1ZW50Tm9kZSIsInN1cHBvc2l0aW9uTm9kZSIsImZyb21TdGF0ZW1lbnROb2RlQW5kTGFiZWxzIiwiZnJvbVN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZUNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlQW5kTGFiZWxzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7OzswREFOSDtxQkFFUztzQkFDRTt5QkFDTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyQixJQUFBLEFBQU1BLHNCQUFOO2FBQU1BLE1BQ1BDLE1BQU0sRUFBRUMsYUFBYSxFQUFFQyx3QkFBd0IsRUFBRUMsdUJBQXVCOzhCQURqRUo7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0Msd0JBQXdCLEdBQUdBO1FBQ2hDLElBQUksQ0FBQ0MsdUJBQXVCLEdBQUdBOztpQkFMZEo7O1lBUW5CSyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixPQUFPLElBQUksQ0FBQ0osTUFBTTtZQUNwQjs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxtQkFBbUI7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDSixhQUFhO1lBQzNCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLDhCQUE4QjtnQkFDNUIsT0FBTyxJQUFJLENBQUNKLHdCQUF3QjtZQUN0Qzs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSw2QkFBNkI7Z0JBQzNCLE9BQU8sSUFB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
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbS5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgQVhJT01fS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZFN0YXRlbWVudC9zdGF0ZW1lbnRcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF4aW9tIHtcbiAgY29uc3RydWN0b3IobGFiZWxzLCBzdGF0ZW1lbnROb2RlLCBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5sYWJlbHMgPSBsYWJlbHM7XG4gICAgdGhpcy5zdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZTtcbiAgICB0aGlzLnN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSA9IHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZTtcbiAgICB0aGlzLmNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlID0gY29uc2VxdWVudFN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRMYWJlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxzO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0U3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIGdldENvbnNlcXVlbnRTdGF0ZW1lbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgbWF0Y2hMYWJlbE5hbWUobGFiZWxOYW1lKSB7XG4gICAgY29uc3QgbWF0Y2hlc0xhYmVsTmFtZSA9IHRoaXMubGFiZWxzLnNvbWUoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gbGFiZWxOYW1lLCAvLy9cbiAgICAgICAgICAgIGxhYmVsTWF0Y2hlc05hbWUgPSBsYWJlbC5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgIGlmIChsYWJlbE1hdGNoZXNOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNMYWJlbE5hbWU7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IHRoaXMubGFiZWxzLm1hcCgobGFiZWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsSlNPTiA9IGxhYmVsLnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWxKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLnN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5jb25zZXF1ZW50U3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5zdXBwb3NpdGlvblN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIGtpbmQgPSBBWElPTV9LSU5ELFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsc0pTT04sICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRTdHJpbmcsICAvLy9cbiAgICAgICAgICBjb25zZXF1ZW50ID0gY29uc2VxdWVudFN0YXRlbWVudFN0cmluZywgLy8vXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBzdXBwb3NpdGlvblN0YXRlbWVudFN0cmluZywgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBsYWJlbHMsXG4gICAgICAgICAgICBzdGF0ZW1lbnQsXG4gICAgICAgICAgICBjb25zZXF1ZW50LFxuICAgICAgICAgICAgc3VwcG9zaXRpb25cbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY2FsbGJhY2spIHtcbiAgICBsZXQgYXhpb20gPSBudWxsO1xuXG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyBzdGF0ZW1lbnQsIGNvbnNlcXVlbnQsIHN1cHBvc2l0aW9uIH0gPSBqc29uO1xuXG4gICAgbGFiZWxzID0gbGFiZWxzLnJlZHVjZSgobGFiZWxzLCBsYWJlbCkgPT4ge1xuICAgICAgaWYgKGxhYmVscyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBqc29uID0gbGFiZWw7IC8vL1xuXG4gICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT04oanNvbiwgY2FsbGJhY2spOyAvLy9cblxuICAgICAgICBpZiAobGFiZWwgIT09IG51bGwpIHtcbiAgICAgICAgICBsYWJlbHMucHVzaChsYWJlbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGFiZWxzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbGFiZWxzO1xuICAgIH0sIFtdKTtcblxuICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJ1bGVOYW1lID0gVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgICAgIGNvbnRlbnQgPSBgJHtzdGF0ZW1lbnR9XG5gLFxuICAgICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgY29uc2VxdWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25Ob2RlID0gbnVsbDtcblxuICAgICAgYXhpb20gPSBuZXcgQXhpb20obGFiZWxzLCBzdGF0ZW1lbnROb2RlLCBjb25zZXF1ZW50Tm9kZSwgc3VwcG9zaXRpb25Ob2RlKTtcbiAgICB9XG5cbiAgICBpZiAoKGNvbnNlcXVlbnQgIT09IG51bGwpICYmIChzdXBwb3NpdGlvbiAhPT0gbnVsbCkpIHtcbiAgICAgIGxldCBjb250ZW50LFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUsXG4gICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlO1xuXG4gICAgICBjb25zdCBydWxlTmFtZSA9IFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUU7XG5cbiAgICAgIGNvbnRlbnQgPSBgJHtjb25zZXF1ZW50fVxuYDtcblxuICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpO1xuXG4gICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIGNvbnN0IGNvbnNlcXVlbnROb2RlID0gc3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgIGNvbnRlbnQgPSBgJHtzdXBwb3NpdGlvbn1cbmA7XG5cbiAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKTtcblxuICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBjb25zdCBzdXBwb3NpdGlvbk5vZGUgPSBzdGF0ZW1lbnROb2RlOyAgLy8vXG5cbiAgICAgIHN0YXRlbWVudE5vZGUgPSBudWxsO1xuXG4gICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnROb2RlLCBzdXBwb3NpdGlvbk5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBheGlvbTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdXBwb3NpdGlvblN0YXRlbWVudE5vZGVDb25zZXF1ZW50U3RhdGVtZW50Tm9kZUFuZExhYmVscyhzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUsIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlLCBsYWJlbHMpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBheGlvbSA9IG5ldyBBeGlvbShsYWJlbHMsIHN0YXRlbWVudE5vZGUsIHN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSwgY29uc2VxdWVudFN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkF4aW9tIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxzIiwic3RhdGVtZW50Tm9kZSIsInN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwiZ2V0TGFiZWxzIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImdldFN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsImdldENvbnNlcXVlbnRTdGF0ZW1lbnROb2RlIiwibWF0Y2hMYWJlbE5hbWUiLCJsYWJlbE5hbWUiLCJtYXRjaGVzTGFiZWxOYW1lIiwic29tZSIsImxhYmVsIiwibmFtZSIsImxhYmVsTWF0Y2hlc05hbWUiLCJtYXRjaE5hbWUiLCJ0b0pTT04iLCJsYWJlbHNKU09OIiwibWFwIiwibGFiZWxKU09OIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29uc2VxdWVudFN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nIiwia2luZCIsIkFYSU9NX0tJTkQiLCJzdGF0ZW1lbnQiLCJjb25zZXF1ZW50Iiwic3VwcG9zaXRpb24iLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsImF4aW9tIiwicmVkdWNlIiwiTGFiZWwiLCJwdXNoIiwicnVsZU5hbWUiLCJVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwiY29udGVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnROb2RlIiwic3VwcG9zaXRpb25Ob2RlIiwiZnJvbVN0YXRlbWVudE5vZGVBbmRMYWJlbHMiLCJmcm9tU3VwcG9zaXRpb25TdGF0ZW1lbnROb2RlQ29uc2VxdWVudFN0YXRlbWVudE5vZGVBbmRMYWJlbHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBV3FCQTs7OzBEQVRIO3FCQUVRO3FCQUNDO3NCQUNFO3lCQUNtQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoRCxJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFdEIsSUFBQSxBQUFNRixzQkFBTjthQUFNQSxNQUNQRyxNQUFNLEVBQUVD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
package/lib/combinator.js CHANGED
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return Combinator;
9
9
  }
10
10
  });
11
+ var _query = require("./utilities/query");
11
12
  var _string = require("./utilities/string");
12
13
  var _kinds = require("./kinds");
13
14
  var _ruleNames = require("./ruleNames");
@@ -30,6 +31,7 @@ function _createClass(Constructor, protoProps, staticProps) {
30
31
  if (staticProps) _defineProperties(Constructor, staticProps);
31
32
  return Constructor;
32
33
  }
34
+ var statementNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration/statement");
33
35
  var Combinator = /*#__PURE__*/ function() {
34
36
  function Combinator(statementNode) {
35
37
  _classCallCheck(this, Combinator);
@@ -59,11 +61,7 @@ var Combinator = /*#__PURE__*/ function() {
59
61
  {
60
62
  key: "fromJSON",
61
63
  value: function fromJSON(json, callback) {
62
- var combinator = null;
63
- var statement = json.statement, content = statement, ruleName = _ruleNames.STATEMENT_RULE_NAME, node = callback(content, ruleName), statementNode = node; ///
64
- if (statementNode !== null) {
65
- combinator = new Combinator(statementNode);
66
- }
64
+ var statement = json.statement, ruleName = _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, content = "Combinator ".concat(statement, "\n"), combinatorDeclarationNode = callback(content, ruleName), statementNode = statementNodeQuery(combinatorDeclarationNode), combinator = new Combinator(statementNode);
67
65
  return combinator;
68
66
  }
69
67
  },
@@ -78,4 +76,4 @@ var Combinator = /*#__PURE__*/ function() {
78
76
  return Combinator;
79
77
  }();
80
78
 
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBDT01CSU5BVE9SX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5hdG9yIHtcbiAgY29uc3RydWN0b3Ioc3RhdGVtZW50Tm9kZSkge1xuICAgIHRoaXMuc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBzdHJpbmcgPSBgJHtzdGF0ZW1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMuc3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAga2luZCA9IENPTUJJTkFUT1JfS0lORCxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRTdHJpbmcsICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIHN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGxldCBjb21iaW5hdG9yID0gbnVsbDtcblxuICAgIGNvbnN0IHsgc3RhdGVtZW50IH0gPSBqc29uLFxuICAgICAgICAgIGNvbnRlbnQgPSBzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgbm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gbm9kZTsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29tYmluYXRvciA9IG5ldyBDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9yID0gbmV3IENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsImFzU3RyaW5nIiwic3RyaW5nIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidG9KU09OIiwia2luZCIsIkNPTUJJTkFUT1JfS0lORCIsInN0YXRlbWVudCIsImpzb24iLCJmcm9tSlNPTiIsImNhbGxiYWNrIiwiY29tYmluYXRvciIsImNvbnRlbnQiLCJydWxlTmFtZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJub2RlIiwiZnJvbVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NCQUpRO3FCQUNHO3lCQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyQixJQUFBLEFBQU1BLDJCQUFOO2FBQU1BLFdBQ1BDLGFBQWE7OEJBRE5EO1FBRWpCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTs7aUJBRkpEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVc7Z0JBQ1QsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ0osYUFBYTtnQkFFdkRFLFNBQVMsQUFBQyxHQUFrQixPQUFoQkM7Z0JBRVosT0FBT0Q7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1GLGtCQUFrQkMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNKLGFBQWEsR0FDakRNLE9BQU9DLHNCQUFlLEVBQ3RCQyxZQUFZTCxpQkFDWk0sT0FBTztvQkFDTEgsTUFBQUE7b0JBQ0FFLFdBQUFBO2dCQUNGO2dCQUVOLE9BQU9DO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFRSxRQUFRLEVBQUU7Z0JBQzlCLElBQUlDLGFBQWEsSUFBSTtnQkFFckIsSUFBTSxBQUFFSixZQUFjQyxLQUFkRCxXQUNGSyxVQUFVTCxXQUNWTSxXQUFXQyw4QkFBbUIsRUFDOUJDLE9BQU9MLFNBQVNFLFNBQVNDLFdBQ3pCZCxnQkFBZ0JnQixNQUFNLEdBQUc7Z0JBRS9CLElBQUloQixrQkFBa0IsSUFBSSxFQUFFO29CQUMxQlksYUFBYSxJQXJDRWIsV0FxQ2FDO2dCQUM5QixDQUFDO2dCQUVELE9BQU9ZO1lBQ1Q7OztZQUVPSyxLQUFBQTttQkFBUCxTQUFPQSxrQkFBa0JqQixhQUFhLEVBQUU7Z0JBQ3RDLElBQU1ZLGFBQWEsSUE1Q0ZiLFdBNENpQkM7Z0JBRWxDLE9BQU9ZO1lBQ1Q7OztXQS9DbUJiIn0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IENPTUJJTkFUT1JfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5pbXBvcnQgeyBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tYmluYXRvckRlY2xhcmF0aW9uL3N0YXRlbWVudFwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tYmluYXRvciB7XG4gIGNvbnN0cnVjdG9yKHN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLnN0YXRlbWVudE5vZGUpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RhdGVtZW50U3RyaW5nfWA7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLnN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIGtpbmQgPSBDT01CSU5BVE9SX0tJTkQsXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50U3RyaW5nLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBzdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY2FsbGJhY2spIHtcbiAgICBjb25zdCB7IHN0YXRlbWVudCB9ID0ganNvbixcbiAgICAgICAgICBydWxlTmFtZSA9IENPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgIGNvbnRlbnQgPSBgQ29tYmluYXRvciAke3N0YXRlbWVudH1cbmAsXG4gICAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSA9IGNhbGxiYWNrKGNvbnRlbnQsIHJ1bGVOYW1lKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIGNvbWJpbmF0b3IgPSBuZXcgQ29tYmluYXRvcihzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9yID0gbmV3IENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29tYmluYXRvcjtcbiAgfVxufVxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZSIsImFzU3RyaW5nIiwic3RyaW5nIiwic3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidG9KU09OIiwia2luZCIsIkNPTUJJTkFUT1JfS0lORCIsInN0YXRlbWVudCIsImpzb24iLCJmcm9tSlNPTiIsImNhbGxiYWNrIiwicnVsZU5hbWUiLCJDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbnRlbnQiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvciIsImZyb21TdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OztxQkFQSztzQkFDRztxQkFDRzt5QkFDaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpELElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixJQUFBLEFBQU1GLDJCQUFOO2FBQU1BLFdBQ1BHLGFBQWE7OEJBRE5IO1FBRWpCLElBQUksQ0FBQ0csYUFBYSxHQUFHQTs7aUJBRkpIOztZQUtuQkksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVc7Z0JBQ1QsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ0osYUFBYTtnQkFFdkRFLFNBQVMsQUFBQyxHQUFrQixPQUFoQkM7Z0JBRVosT0FBT0Q7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1GLGtCQUFrQkMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNKLGFBQWEsR0FDakRNLE9BQU9DLHNCQUFlLEVBQ3RCQyxZQUFZTCxpQkFDWk0sT0FBTztvQkFDTEgsTUFBQUE7b0JBQ0FFLFdBQUFBO2dCQUNGO2dCQUVOLE9BQU9DO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFRSxRQUFRLEVBQUU7Z0JBQzlCLElBQU0sQUFBRUgsWUFBY0MsS0FBZEQsV0FDRkksV0FBV0MsMkNBQWdDLEVBQzNDQyxVQUFVLEFBQUMsY0FBdUIsT0FBVk4sV0FBVSxPQUVsQ08sNEJBQTRCSixTQUFTRyxTQUFTRixXQUM5Q1osZ0JBQWdCRixtQkFBbUJpQiw0QkFDbkNDLGFBQWEsSUFsQ0ZuQixXQWtDaUJHO2dCQUVsQyxPQUFPZ0I7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLGtCQUFrQmpCLGFBQWEsRUFBRTtnQkFDdEMsSUFBTWdCLGFBQWEsSUF4Q0ZuQixXQXdDaUJHO2dCQUVsQyxPQUFPZ0I7WUFDVDs7O1dBM0NtQm5CIn0=
package/lib/conclusion.js CHANGED
@@ -9,8 +9,8 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _array = require("./utilities/array");
12
- var _string = require("./utilities/string");
13
12
  var _query = require("./utilities/query");
13
+ var _string = require("./utilities/string");
14
14
  var _ruleNames = require("./ruleNames");
15
15
  function _classCallCheck(instance, Constructor) {
16
16
  if (!(instance instanceof Constructor)) {
@@ -31,6 +31,7 @@ function _createClass(Constructor, protoProps, staticProps) {
31
31
  if (staticProps) _defineProperties(Constructor, staticProps);
32
32
  return Constructor;
33
33
  }
34
+ var metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/metastatement");
34
35
  var Conclusion = /*#__PURE__*/ function() {
35
36
  function Conclusion(metastatementNode) {
36
37
  _classCallCheck(this, Conclusion);
@@ -64,7 +65,7 @@ var Conclusion = /*#__PURE__*/ function() {
64
65
  key: "fromJSON",
65
66
  value: function fromJSON(json, callback) {
66
67
  var conclusion = null;
67
- var metastatement = json.metastatement, ruleName = _ruleNames.METASTATEMENT_RULE_NAME, content = metastatement, node = callback(content, ruleName), metastatementNode = node; ///
68
+ var metastatement = json.metastatement, ruleName = _ruleNames.UNQUALIFIED_METASTATEMENT_RULE_NAME, content = "".concat(metastatement, "\n"), unqualifiedMetastatementNode = callback(content, ruleName), metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
68
69
  if (metastatementNode !== null) {
69
70
  conclusion = new Conclusion(metastatementNode);
70
71
  }
@@ -158,4 +159,4 @@ function matchConclusionMetastatementNode(conclusionMetastatementNode, metastate
158
159
  return conclusionMetastatementNodeMatches;
159
160
  }
160
161
 
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25jbHVzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25jbHVzaW9uIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBtZXRhc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNhbGxiYWNrKSB7XG4gICAgbGV0IGNvbmNsdXNpb24gPSBudWxsO1xuXG4gICAgY29uc3QgeyBtZXRhc3RhdGVtZW50IH0gPSBqc29uLFxuICAgICAgICAgIHJ1bGVOYW1lID0gTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgY29udGVudCA9IG1ldGFzdGF0ZW1lbnQsICAvLy9cbiAgICAgICAgICBub2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbm9kZTsgLy8vXG5cbiAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbmNsdXNpb24gPSBuZXcgQ29uY2x1c2lvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmNsdXNpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3QgY29uY2x1c2lvbiA9IG5ldyBDb25jbHVzaW9uKG1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBjb25jbHVzaW9uO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk5vZGUoY29uY2x1c2lvbk5vZGUsIG5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25Ob2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUgPT09IHJ1bGVOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUoY29uY2x1c2lvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGNvbmNsdXNpb25Ob2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZShjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25jbHVzaW9uTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk5vZGVzKGNvbmNsdXNpb25Ob2Rlcywgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTm9kZXNNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIGNvbmNsdXNpb25Ob2Rlc0xlbmd0aCA9IGNvbmNsdXNpb25Ob2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBjb25jbHVzaW9uTm9kZXNMZW5ndGgpIHtcbiAgICBjb25jbHVzaW9uTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBjb25jbHVzaW9uTm9kZSA9IGNvbmNsdXNpb25Ob2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBjb25jbHVzaW9uTm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25Ob2RlKGNvbmNsdXNpb25Ob2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmIChjb25jbHVzaW9uTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vZGVzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uTWV0YXZhcmlhYmxlKGNvbmNsdXNpb25NZXRhdmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IGNvbmNsdXNpb25NZXRhdmFyaWFibGVNYXRjaGVzID0gdHJ1ZTtcblxuICBjb25zdCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGFTdWJzdGl0dXRpb24gPSBtZXRhU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGFTdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZU5hbWUgPT09IGNvbmNsdXNpb25NZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgaWYgKG1ldGFTdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCA9IG1ldGFTdWJzdGl0dXRpb24ubWF0Y2hOb2Rlcyhub2Rlcyk7XG5cbiAgICBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyA9IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoOyAgLy8vXG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvblRlcm1pbmFsTm9kZShjb25jbHVzaW9uVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBjb25jbHVzaW9uVGVybWluYWxOb2RlLm1hdGNoKHRlcm1pbmFsTm9kZSksXG4gICAgICAgIGNvbmNsdXNpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgY29uY2x1c2lvblJ1bGVOYW1lID0gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IGNvbmNsdXNpb25SdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzID0gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uTm9kZXMgPSBjb25jbHVzaW9uQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZXNNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9kZXMoY29uY2x1c2lvbk5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uQ2hpbGROb2Rlc01hdGNoZXM7IC8vL1xuXG4gICAgaWYgKCFjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgcnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAocnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUoY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzID0gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzTGVuZ3RoID0gY29uY2x1c2lvbkNoaWxkTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSA9IGZpcnN0KGNvbmNsdXNpb25DaGlsZE5vZGVzKSxcbiAgICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlID0gZmlyc3RDb25jbHVzaW9uQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25DaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChjb25jbHVzaW9uQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUgPSBjb25jbHVzaW9uQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSA9IChjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9PT0gTUVUQVZBUklBQkxFX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbmNsdXNpb25NZXRhdmFyaWFibGVOb2RlID0gY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgICAgICBjb25jbHVzaW9uTWV0YVZhcmlhYmxlTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbk1ldGFWYXJpYWJsZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIkNvbmNsdXNpb24iLCJtZXRhc3RhdGVtZW50Tm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFTdWJzdGl0dXRpb25zIiwibm9uVGVybWluYWxOb2RlIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwidG9KU09OIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsIm1ldGFzdGF0ZW1lbnQiLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsImNvbmNsdXNpb24iLCJydWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiY29udGVudCIsIm5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaENvbmNsdXNpb25Ob2RlIiwiY29uY2x1c2lvbk5vZGUiLCJjb25jbHVzaW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvblRlcm1pbmFsTm9kZSIsIm1hdGNoQ29uY2x1c2lvbk5vZGVzIiwiY29uY2x1c2lvbk5vZGVzIiwibm9kZXMiLCJjb25jbHVzaW9uTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJjb25jbHVzaW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2hDb25jbHVzaW9uTWV0YXZhcmlhYmxlIiwiY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUiLCJjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyIsImNvbmNsdXNpb25NZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YVN1YnN0aXR1dGlvbiIsImZpbmQiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIm1hdGNoZXMiLCJtYXRjaCIsImdldFJ1bGVOYW1lIiwiY29uY2x1c2lvblJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb25jbHVzaW9uQ2hpbGROb2RlcyIsImNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyIsInJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwiY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlIiwiY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlIiwiY29uY2x1c2lvbkNoaWxkTm9kZXNMZW5ndGgiLCJmaXJzdENvbmNsdXNpb25DaGlsZE5vZGUiLCJmaXJzdCIsImNvbmNsdXNpb25DaGlsZE5vZGUiLCJjb25jbHVzaW9uQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiY29uY2x1c2lvbk1ldGFWYXJpYWJsZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7O3FCQUxDO3NCQUNPO3FCQUN3Qjt5QkFDVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakQsSUFBQSxBQUFNQSwyQkFtRGxCLEFBbkRZO2FBQU1BLFdBQ1BDLGlCQUFpQjs4QkFEVkQ7UUFFakIsSUFBSSxDQUFDQyxpQkFBaUIsR0FBR0E7O2lCQUZSRDs7WUFLbkJFLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUI7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7WUFDL0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsdUJBQXVCRixpQkFBaUIsRUFBRUcsaUJBQWlCLEVBQUU7Z0JBQzNELElBQU1DLGtCQUFrQkosbUJBQ2xCSyw0QkFBNEIsSUFBSSxDQUFDTCxpQkFBaUIsRUFDbERNLG1DQUFtQ0MsK0JBQStCRiwyQkFBMkJELGlCQUFpQkQsb0JBQzlHSywyQkFBMkJGLGtDQUFrQyxHQUFHO2dCQUV0RSxPQUFPRTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVM7Z0JBQ1AsSUFBTUMsc0JBQXNCQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ1gsaUJBQWlCLEdBQ3pEWSxnQkFBZ0JGLHFCQUNoQkcsT0FBTztvQkFDTEQsZUFBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT0M7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFFBQVEsRUFBRTtnQkFDOUIsSUFBSUMsYUFBYSxJQUFJO2dCQUVyQixJQUFNLEFBQUVKLGdCQUFrQkMsS0FBbEJELGVBQ0ZLLFdBQVdDLGtDQUF1QixFQUNsQ0MsVUFBVVAsZUFDVlEsT0FBT0wsU0FBU0ksU0FBU0YsV0FDekJqQixvQkFBb0JvQixNQUFNLEdBQUc7Z0JBRW5DLElBQUlwQixzQkFBc0IsSUFBSSxFQUFFO29CQUM5QmdCLGFBQWEsSUF0Q0VqQixXQXNDYUM7Z0JBQzlCLENBQUM7Z0JBRUQsT0FBT2dCO1lBQ1Q7OztZQUVPSyxLQUFBQTttQkFBUCxTQUFPQSxzQkFBc0JyQixpQkFBaUIsRUFBRTtnQkFDOUMsSUFBTWdCLGFBQWEsSUE3Q0ZqQixXQTZDaUJDO2dCQUVsQyxPQUFPZ0I7WUFDVDs7O1dBaERtQmpCOztBQW1EckIsU0FBU3VCLG9CQUFvQkMsY0FBYyxFQUFFSCxJQUFJLEVBQUVqQixpQkFBaUIsRUFBRTtJQUNwRSxJQUFJcUIsd0JBQXdCLEtBQUs7SUFFakMsSUFBTUMsbUJBQW1CTCxLQUFLTSxjQUFjLElBQ3RDQyx1QkFBdUJKLGVBQWVHLGNBQWM7SUFFMUQsSUFBSUQscUJBQXFCRSxzQkFBc0I7UUFDN0MsSUFBSUYsa0JBQWtCO1lBQ3BCLElBQU1HLGVBQWVSLE1BQ2ZTLHlCQUF5Qk4sZ0JBQ3pCTyxnQ0FBZ0NDLDRCQUE0QkYsd0JBQXdCRCxjQUFjekI7WUFFeEdxQix3QkFBd0JNLCtCQUFnQyxHQUFHO1FBQzdELE9BQU87WUFDTCxJQUFNMUIsa0JBQWtCZ0IsTUFDbEJmLDRCQUE0QmtCLGdCQUM1QmpCLG1DQUFtQ0MsK0JBQStCRiwyQkFBMkJELGlCQUFpQkQ7WUFFcEhxQix3QkFBd0JsQixrQ0FBa0MsR0FBRztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9rQjtBQUNUO0FBRUEsU0FBU1EscUJBQXFCQyxlQUFlLEVBQUVDLEtBQUssRUFBRS9CLGlCQUFpQixFQUFFO0lBQ3ZFLElBQUlnQyx5QkFBeUIsS0FBSztJQUVsQyxJQUFNQyxjQUFjRixNQUFNRyxNQUFNLEVBQzFCQyx3QkFBd0JMLGdCQUFnQkksTUFBTTtJQUVwRCxJQUFJRCxnQkFBZ0JFLHVCQUF1QjtRQUN6Q0gseUJBQXlCRCxNQUFNSyxLQUFLLENBQUMsU0FBQ25CLE1BQU1vQixPQUFVO1lBQ3BELElBQU1qQixpQkFBaUJVLGVBQWUsQ0FBQ08sTUFBTSxFQUN2Q2hCLHdCQUF3QkYsb0JBQW9CQyxnQkFBZ0JILE1BQU1qQjtZQUV4RSxJQUFJcUIsdUJBQXVCO2dCQUN6QixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0g7SUFDRixDQUFDO0lBRUQsT0FBT1c7QUFDVDtBQUVBLFNBQVNNLDRCQUE0QkMsMEJBQTBCLEVBQUVSLEtBQUssRUFBRS9CLGlCQUFpQixFQUFFO0lBQ3pGLElBQUl3QyxnQ0FBZ0MsSUFBSTtJQUV4QyxJQUFNQyw2QkFBNkJDLElBQUFBLDJDQUFvQyxFQUFDSCw2QkFDbEVJLG1CQUFtQjNDLGtCQUFrQjRDLElBQUksQ0FBQyxTQUFDRCxrQkFBcUI7UUFDOUQsSUFBTUUsbUJBQW1CRixpQkFBaUJHLG1CQUFtQjtRQUU3RCxJQUFJRCxxQkFBcUJKLDRCQUE0QjtZQUNuRCxPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0gsTUFBTSxJQUFJO0lBRWhCLElBQUlFLHFCQUFxQixJQUFJLEVBQUU7UUFDN0IsSUFBTUksNkJBQTZCSixpQkFBaUJLLFVBQVUsQ0FBQ2pCO1FBRS9EUyxnQ0FBZ0NPLDRCQUE2QixHQUFHO0lBQ2xFLENBQUM7SUFFRCxPQUFPUDtBQUNUO0FBRUEsU0FBU1osNEJBQTRCRixzQkFBc0IsRUFBRUQsWUFBWSxFQUFFekIsaUJBQWlCLEVBQUU7SUFDNUYsSUFBTWlELFVBQVV2Qix1QkFBdUJ3QixLQUFLLENBQUN6QixlQUN2Q0UsZ0NBQWdDc0IsU0FBVSxHQUFHO0lBRW5ELE9BQU90QjtBQUNUO0FBRUEsU0FBU3ZCLCtCQUErQkYseUJBQXlCLEVBQUVELGVBQWUsRUFBRUQsaUJBQWlCLEVBQUU7SUFDckcsSUFBSUcsbUNBQW1DLEtBQUs7SUFFNUMsSUFBTVcsV0FBV2IsZ0JBQWdCa0QsV0FBVyxJQUN0Q0MscUJBQXFCbEQsMEJBQTBCaUQsV0FBVyxJQUFJLEdBQUc7SUFFdkUsSUFBSXJDLGFBQWFzQyxvQkFBb0I7UUFDbkMsSUFBTUMsYUFBYXBELGdCQUFnQnFELGFBQWEsSUFDMUNDLHVCQUF1QnJELDBCQUEwQm9ELGFBQWEsSUFDOUR2QixRQUFRc0IsWUFDUnZCLGtCQUFrQnlCLHNCQUNsQkMsOEJBQThCM0IscUJBQXFCQyxpQkFBaUJDLE9BQU8vQjtRQUVqRkcsbUNBQW1DcUQsNkJBQTZCLEdBQUc7UUFFbkUsSUFBSSxDQUFDckQsa0NBQWtDO1lBQ3JDLElBQU1zRCxnQ0FBaUMzQyxhQUFhQyxrQ0FBdUI7WUFFM0UsSUFBSTBDLCtCQUErQjtnQkFDakMsSUFBTTVELG9CQUFvQkksaUJBQ3BCeUQsOEJBQThCeEQsMkJBQzlCeUQscUNBQXFDQyxpQ0FBaUNGLDZCQUE2QjdELG1CQUFtQkc7Z0JBRTVIRyxtQ0FBbUN3RCxvQ0FBb0MsR0FBRztZQUM1RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPeEQ7QUFDVDtBQUVBLFNBQVN5RCxpQ0FBaUNGLDJCQUEyQixFQUFFN0QsaUJBQWlCLEVBQUVHLGlCQUFpQixFQUFFO0lBQzNHLElBQUkyRCxxQ0FBcUMsS0FBSztJQUU5QyxJQUFNekQsNEJBQTRCd0QsNkJBQzVCSCx1QkFBdUJyRCwwQkFBMEJvRCxhQUFhLElBQzlETyw2QkFBNkJOLHFCQUFxQnJCLE1BQU07SUFFOUQsSUFBSTJCLCtCQUErQixHQUFHO1FBQ3BDLElBQU1DLDJCQUEyQkMsSUFBQUEsWUFBSyxFQUFDUix1QkFDakNTLHNCQUFzQkYsMEJBQ3RCRyxxQ0FBcUNELG9CQUFvQkUsaUJBQWlCO1FBRWhGLElBQUlELG9DQUFvQztZQUN0QyxJQUFNRSxpQ0FBaUNILHFCQUNqQ0kseUNBQXlDRCwrQkFBK0JoQixXQUFXLElBQ25Ga0IsNkRBQThERCwyQ0FBMkNFLGlDQUFzQjtZQUVySSxJQUFJRCw0REFBNEQ7Z0JBQzlELElBQU05Qiw2QkFBNkI0QixnQ0FDN0JsRSxrQkFBa0JKLG1CQUNsQndELGFBQWFwRCxnQkFBZ0JxRCxhQUFhLElBQzFDdkIsUUFBUXNCLFlBQ1JrQixnQ0FBZ0NqQyw0QkFBNEJDLDRCQUE0QlIsT0FBTy9CO2dCQUVyRzJELHFDQUFxQ1ksK0JBQStCLEdBQUc7WUFDekUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT1o7QUFDVCJ9
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25jbHVzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsIE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FLCBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb25jbHVzaW9uIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBtZXRhc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNhbGxiYWNrKSB7XG4gICAgbGV0IGNvbmNsdXNpb24gPSBudWxsO1xuXG4gICAgY29uc3QgeyBtZXRhc3RhdGVtZW50IH0gPSBqc29uLFxuICAgICAgICAgIHJ1bGVOYW1lID0gVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICAgY29udGVudCA9IGAke21ldGFzdGF0ZW1lbnR9XG5gLFxuICAgICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBjYWxsYmFjayhjb250ZW50LCBydWxlTmFtZSksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKG1ldGFzdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25jbHVzaW9uID0gbmV3IENvbmNsdXNpb24obWV0YXN0YXRlbWVudE5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25jbHVzaW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbmNsdXNpb24gPSBuZXcgQ29uY2x1c2lvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29uY2x1c2lvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2RlKGNvbmNsdXNpb25Ob2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlID0gY29uY2x1c2lvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBjb25jbHVzaW9uTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUoY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGNvbmNsdXNpb25Ob2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25Ob2Rlcyhjb25jbHVzaW9uTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBjb25jbHVzaW9uTm9kZXNMZW5ndGggPSBjb25jbHVzaW9uTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gY29uY2x1c2lvbk5vZGVzTGVuZ3RoKSB7XG4gICAgY29uY2x1c2lvbk5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vZGUgPSBjb25jbHVzaW9uTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk5vZGVNYXRjaGVzID0gbWF0Y2hDb25jbHVzaW9uTm9kZShjb25jbHVzaW9uTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGF2YXJpYWJsZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG5cbiAgY29uc3QgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NZXRhdmFyaWFibGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbmNsdXNpb25UZXJtaW5hbE5vZGUoY29uY2x1c2lvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gY29uY2x1c2lvblRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpLFxuICAgICAgICBjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gY29uY2x1c2lvblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZShjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIGNvbmNsdXNpb25SdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBjb25jbHVzaW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbk5vZGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbk5vZGVzKGNvbmNsdXNpb25Ob2Rlcywgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbkNoaWxkTm9kZXNNYXRjaGVzOyAvLy9cblxuICAgIGlmICghY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lID0gKHJ1bGVOYW1lID09PSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZShjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlKGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGxldCBjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2RlcyA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCA9IGNvbmNsdXNpb25DaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZXNMZW5ndGggPT09IDEpIHtcbiAgICBjb25zdCBmaXJzdENvbmNsdXNpb25DaGlsZE5vZGUgPSBmaXJzdChjb25jbHVzaW9uQ2hpbGROb2RlcyksXG4gICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZSA9IGZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgIGNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjb25jbHVzaW9uQ2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlID0gY29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPSBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUgPSAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPT09IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgY29uY2x1c2lvbk1ldGFWYXJpYWJsZU1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb25NZXRhdmFyaWFibGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbmNsdXNpb25NZXRhVmFyaWFibGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJDb25jbHVzaW9uIiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YVN1YnN0aXR1dGlvbnMiLCJub25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJ0b0pTT04iLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibWV0YXN0YXRlbWVudCIsImpzb24iLCJmcm9tSlNPTiIsImNhbGxiYWNrIiwiY29uY2x1c2lvbiIsInJ1bGVOYW1lIiwiVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb250ZW50IiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsImZyb21NZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoQ29uY2x1c2lvbk5vZGUiLCJjb25jbHVzaW9uTm9kZSIsIm5vZGUiLCJjb25jbHVzaW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoQ29uY2x1c2lvblRlcm1pbmFsTm9kZSIsIm1hdGNoQ29uY2x1c2lvbk5vZGVzIiwiY29uY2x1c2lvbk5vZGVzIiwibm9kZXMiLCJjb25jbHVzaW9uTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJjb25jbHVzaW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2hDb25jbHVzaW9uTWV0YXZhcmlhYmxlIiwiY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUiLCJjb25jbHVzaW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyIsImNvbmNsdXNpb25NZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YVN1YnN0aXR1dGlvbiIsImZpbmQiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIm1hdGNoZXMiLCJtYXRjaCIsImdldFJ1bGVOYW1lIiwiY29uY2x1c2lvblJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJjb25jbHVzaW9uQ2hpbGROb2RlcyIsImNvbmNsdXNpb25DaGlsZE5vZGVzTWF0Y2hlcyIsInJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUiLCJjb25jbHVzaW9uQ2hpbGROb2Rlc0xlbmd0aCIsImZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSIsImZpcnN0IiwiY29uY2x1c2lvbkNoaWxkTm9kZSIsImNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJjb25jbHVzaW9uTWV0YVZhcmlhYmxlTWF0Y2hlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFVcUJBOzs7cUJBUkM7cUJBQ0k7c0JBQ0c7eUJBRXdFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRyxJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUM7QUFFMUIsSUFBQSxBQUFNRiwyQkFvRGxCLEFBcERZO2FBQU1BLFdBQ1BHLGlCQUFpQjs4QkFEVkg7UUFFakIsSUFBSSxDQUFDRyxpQkFBaUIsR0FBR0E7O2lCQUZSSDs7WUFLbkJJLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUI7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDRCxpQkFBaUI7WUFDL0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsdUJBQXVCRixpQkFBaUIsRUFBRUcsaUJBQWlCLEVBQUU7Z0JBQzNELElBQU1DLGtCQUFrQkosbUJBQ2xCSyw0QkFBNEIsSUFBSSxDQUFDTCxpQkFBaUIsRUFDbERNLG1DQUFtQ0MsK0JBQStCRiwyQkFBMkJELGlCQUFpQkQsb0JBQzlHSywyQkFBMkJGLGtDQUFrQyxHQUFHO2dCQUV0RSxPQUFPRTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNB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
@@ -9,9 +9,10 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _type = /*#__PURE__*/ _interopRequireDefault(require("./type"));
12
+ var _query = require("./utilities/query");
12
13
  var _string = require("./utilities/string");
13
- var _ruleNames = require("./ruleNames");
14
14
  var _kinds = require("./kinds");
15
+ var _ruleNames = require("./ruleNames");
15
16
  function _classCallCheck(instance, Constructor) {
16
17
  if (!(instance instanceof Constructor)) {
17
18
  throw new TypeError("Cannot call a class as a function");
@@ -36,6 +37,7 @@ function _interopRequireDefault(obj) {
36
37
  default: obj
37
38
  };
38
39
  }
40
+ var statementNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration/term");
39
41
  var Constructor = /*#__PURE__*/ function() {
40
42
  function Constructor(termNode, type) {
41
43
  _classCallCheck(this, Constructor);
@@ -84,14 +86,11 @@ var Constructor = /*#__PURE__*/ function() {
84
86
  {
85
87
  key: "fromJSON",
86
88
  value: function fromJSON(json, callback) {
87
- var constructor = null;
88
89
  var type = json.type;
89
- var term = json.term, content = term, ruleName = _ruleNames.TERM_RULE_NAME, node = callback(content, ruleName), termNode = node; ///
90
- if (termNode !== null) {
91
- json = type; ///
92
- type = _type.default.fromJSON(json);
93
- constructor = new Constructor(termNode, type);
94
- }
90
+ var term = json.term, ruleName = _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, content = "Constructor ".concat(term, "\n"), constructorDeclarationNode = callback(content, ruleName), termNode = statementNodeQuery(constructorDeclarationNode);
91
+ json = type; ///
92
+ type = _type.default.fromJSON(json);
93
+ var constructor = new Constructor(termNode, type);
95
94
  return constructor;
96
95
  }
97
96
  },
@@ -106,4 +105,4 @@ var Constructor = /*#__PURE__*/ function() {
106
105
  return Constructor;
107
106
  }();
108
107
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3Rvci5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vdHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBURVJNX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgQ09OU1RSVUNUT1JfS0lORCB9IGZyb20gXCIuL2tpbmRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnN0cnVjdG9yIHtcbiAgY29uc3RydWN0b3IodGVybU5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnRlcm1Ob2RlID0gdGVybU5vZGU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFRlcm1Ob2RlKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1Ob2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBudWxsKSB7XG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vU3VwZXJUeXBlID0gdHJ1ZSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuYXNTdHJpbmcobm9TdXBlclR5cGUpO1xuXG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfToke3R5cGVTdHJpbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSksXG4gICAgICAgICAgdHlwZUpTT04gPSAodGhpcy50eXBlID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlLnRvSlNPTigpLFxuICAgICAgICAgIGtpbmQgPSBDT05TVFJVQ1RPUl9LSU5ELFxuICAgICAgICAgIHRlcm0gPSB0ZXJtU3RyaW5nLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICB0ZXJtLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGxldCBjb25zdHJ1Y3RvciA9IG51bGw7XG5cbiAgICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gICAgY29uc3QgeyB0ZXJtIH0gPSBqc29uLFxuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtLCAgLy8vXG4gICAgICAgICAgcnVsZU5hbWUgPSBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgICBub2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGpzb24gPSB0eXBlOyAgLy8vXG5cbiAgICAgIHR5cGUgPSBUeXBlLmZyb21KU09OKGpzb24pO1xuXG4gICAgICBjb25zdHJ1Y3RvciA9IG5ldyBDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9IG5ldyBDb25zdHJ1Y3Rvcih0ZXJtTm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3I7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiQ29uc3RydWN0b3IiLCJ0ZXJtTm9kZSIsInR5cGUiLCJnZXRUZXJtTm9kZSIsImdldFR5cGUiLCJhc1N0cmluZyIsInN0cmluZyIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJub1N1cGVyVHlwZSIsInR5cGVTdHJpbmciLCJ0b0pTT04iLCJ0eXBlSlNPTiIsImtpbmQiLCJDT05TVFJVQ1RPUl9LSU5EIiwidGVybSIsImpzb24iLCJmcm9tSlNPTiIsImNhbGxiYWNrIiwiY29uc3RydWN0b3IiLCJjb250ZW50IiwicnVsZU5hbWUiLCJURVJNX1JVTEVfTkFNRSIsIm5vZGUiLCJUeXBlIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7eURBTko7c0JBRVk7eUJBQ0U7cUJBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEIsSUFBQSxBQUFNQSw0QkFBTjthQUFNQSxZQUNQQyxRQUFRLEVBQUVDLElBQUk7OEJBRFBGO1FBRWpCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLElBQUksR0FBR0E7O2lCQUhLRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjO2dCQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO1lBQ3RCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU7Z0JBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7WUFDbEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBVztnQkFDVCxJQUFJQztnQkFFSixJQUFNQyxhQUFhQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ1AsUUFBUTtnQkFFN0MsSUFBSSxJQUFJLENBQUNDLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ3RCSSxTQUFTLEFBQUMsR0FBYSxPQUFYQztnQkFDZCxPQUFPO29CQUNMLElBQU1FLGNBQWMsSUFBSSxFQUNsQkMsYUFBYSxJQUFJLENBQUNSLElBQUksQ0FBQ0csUUFBUSxDQUFDSTtvQkFFdENILFNBQVMsQUFBQyxHQUFnQkksT0FBZEgsWUFBVyxLQUFjLE9BQVhHO2dCQUM1QixDQUFDO2dCQUVELE9BQU9KO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNSixhQUFhQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ1AsUUFBUSxHQUN2Q1csV0FBVyxBQUFDLElBQUksQ0FBQ1YsSUFBSSxLQUFLLElBQUksR0FDaEIsSUFBSSxHQUNGLElBQUksQ0FBQ0EsSUFBSSxDQUFDUyxNQUFNLEVBQUUsRUFDbENFLE9BQU9DLHVCQUFnQixFQUN2QkMsT0FBT1IsWUFDUEwsT0FBT1UsVUFDUEksT0FBTztvQkFDTEgsTUFBQUE7b0JBQ0FFLE1BQUFBO29CQUNBYixNQUFBQTtnQkFDRjtnQkFFTixPQUFPYztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRUUsUUFBUSxFQUFFO2dCQUM5QixJQUFJQyxjQUFjLElBQUk7Z0JBRXRCLElBQUksQUFBRWpCLE9BQVNjLEtBQVRkO2dCQUVOLElBQU0sQUFBRWEsT0FBU0MsS0FBVEQsTUFDRkssVUFBVUwsTUFDVk0sV0FBV0MseUJBQWMsRUFDekJDLE9BQU9MLFNBQVNFLFNBQVNDLFdBQ3pCcEIsV0FBV3NCLE1BQU0sR0FBRztnQkFFMUIsSUFBSXRCLGFBQWEsSUFBSSxFQUFFO29CQUNyQmUsT0FBT2QsTUFBTyxHQUFHO29CQUVqQkEsT0FBT3NCLGFBQUksQ0FBQ1AsUUFBUSxDQUFDRDtvQkFFckJHLGNBQWMsSUFoRUNuQixZQWdFZUMsVUFBVUM7Z0JBQzFDLENBQUM7Z0JBRUQsT0FBT2lCO1lBQ1Q7OztZQUVPTSxLQUFBQTttQkFBUCxTQUFPQSxvQkFBb0J4QixRQUFRLEVBQUVDLElBQUksRUFBRTtnQkFDekMsSUFBTWlCLGNBQWMsSUF2RUhuQixZQXVFbUJDLFVBQVVDO2dCQUU5QyxPQUFPaUI7WUFDVDs7O1dBMUVtQm5CIn0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdHJ1Y3Rvci5qcyIsIjw8anN4LWNvbmZpZy1wcmFnbWEuanM+PiJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vdHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IENPTlNUUlVDVE9SX0tJTkQgfSBmcm9tIFwiLi9raW5kc1wiO1xuaW1wb3J0IHsgQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uL3Rlcm1cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnN0cnVjdG9yIHtcbiAgY29uc3RydWN0b3IodGVybU5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnRlcm1Ob2RlID0gdGVybU5vZGU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFRlcm1Ob2RlKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm1Ob2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZztcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSk7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBudWxsKSB7XG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vU3VwZXJUeXBlID0gdHJ1ZSxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuYXNTdHJpbmcobm9TdXBlclR5cGUpO1xuXG4gICAgICBzdHJpbmcgPSBgJHt0ZXJtU3RyaW5nfToke3R5cGVTdHJpbmd9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy50ZXJtTm9kZSksXG4gICAgICAgICAgdHlwZUpTT04gPSAodGhpcy50eXBlID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50eXBlLnRvSlNPTigpLFxuICAgICAgICAgIGtpbmQgPSBDT05TVFJVQ1RPUl9LSU5ELFxuICAgICAgICAgIHRlcm0gPSB0ZXJtU3RyaW5nLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICB0ZXJtLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGxldCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICBjb25zdCB7IHRlcm0gfSA9IGpzb24sXG4gICAgICAgICAgcnVsZU5hbWUgPSBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICAgY29udGVudCA9IGBDb25zdHJ1Y3RvciAke3Rlcm19XG5gLFxuICAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGpzb24gPSB0eXBlOyAgLy8vXG5cbiAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uKTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gbmV3IENvbnN0cnVjdG9yKHRlcm1Ob2RlLCB0eXBlKTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3IgPSBuZXcgQ29uc3RydWN0b3IodGVybU5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9XG59XG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkNvbnN0cnVjdG9yIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybU5vZGUiLCJ0eXBlIiwiZ2V0VGVybU5vZGUiLCJnZXRUeXBlIiwiYXNTdHJpbmciLCJzdHJpbmciLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwibm9TdXBlclR5cGUiLCJ0eXBlU3RyaW5nIiwidG9KU09OIiwidHlwZUpTT04iLCJraW5kIiwiQ09OU1RSVUNUT1JfS0lORCIsInRlcm0iLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsInJ1bGVOYW1lIiwiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiY29udGVudCIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImNvbnN0cnVjdG9yIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFXcUJBOzs7eURBVEo7cUJBRVM7c0JBQ0c7cUJBQ0k7eUJBQ2lCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxELElBQU1DLHFCQUFxQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUV0QixJQUFBLEFBQU1GLDRCQUFOO2FBQU1BLFlBQ1BHLFFBQVEsRUFBRUMsSUFBSTs4QkFEUEo7UUFFakIsSUFBSSxDQUFDRyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7aUJBSEtKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWM7Z0JBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7WUFDdEI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVTtnQkFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxXQUFXO2dCQUNULElBQUlDO2dCQUVKLElBQU1DLGFBQWFDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDUCxRQUFRO2dCQUU3QyxJQUFJLElBQUksQ0FBQ0MsSUFBSSxLQUFLLElBQUksRUFBRTtvQkFDdEJJLFNBQVMsQUFBQyxHQUFhLE9BQVhDO2dCQUNkLE9BQU87b0JBQ0wsSUFBTUUsY0FBYyxJQUFJLEVBQ2xCQyxhQUFhLElBQUksQ0FBQ1IsSUFBSSxDQUFDRyxRQUFRLENBQUNJO29CQUV0Q0gsU0FBUyxBQUFDLEdBQWdCSSxPQUFkSCxZQUFXLEtBQWMsT0FBWEc7Z0JBQzVCLENBQUM7Z0JBRUQsT0FBT0o7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1KLGFBQWFDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDUCxRQUFRLEdBQ3ZDVyxXQUFXLEFBQUMsSUFBSSxDQUFDVixJQUFJLEtBQUssSUFBSSxHQUNoQixJQUFJLEdBQ0YsSUFBSSxDQUFDQSxJQUFJLENBQUNTLE1BQU0sRUFBRSxFQUNsQ0UsT0FBT0MsdUJBQWdCLEVBQ3ZCQyxPQUFPUixZQUNQTCxPQUFPVSxVQUNQSSxPQUFPO29CQUNMSCxNQUFBQTtvQkFDQUUsTUFBQUE7b0JBQ0FiLE1BQUFBO2dCQUNGO2dCQUVOLE9BQU9jO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxFQUFFRSxRQUFRLEVBQUU7Z0JBQzlCLElBQUksQUFBRWhCLE9BQVNjLEtBQVRkO2dCQUVOLElBQU0sQUFBRWEsT0FBU0MsS0FBVEQsTUFDRkksV0FBV0MsNENBQWlDLEVBQzVDQyxVQUFVLEFBQUMsZUFBbUIsT0FBTE4sTUFBSyxPQUU5Qk8sNkJBQTZCSixTQUFTRyxTQUFTRixXQUMvQ2xCLFdBQVdGLG1CQUFtQnVCO2dCQUVwQ04sT0FBT2QsTUFBTyxHQUFHO2dCQUVqQkEsT0FBT3FCLGFBQUksQ0FBQ04sUUFBUSxDQUFDRDtnQkFFckIsSUFBTVEsY0FBYyxJQTlESDFCLFlBOERtQkcsVUFBVUM7Z0JBRTlDLE9BQU9zQjtZQUNUOzs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0Esb0JBQW9CeEIsUUFBUSxFQUFFQyxJQUFJLEVBQUU7Z0JBQ3pDLElBQU1zQixjQUFjLElBcEVIMUIsWUFvRW1CRyxVQUFVQztnQkFFOUMsT0FBT3NCO1lBQ1Q7OztXQXZFbUIxQiJ9
package/lib/premise.js CHANGED
@@ -37,7 +37,7 @@ function _interopRequireDefault(obj) {
37
37
  default: obj
38
38
  };
39
39
  }
40
- var metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion!"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
40
+ var metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/metastatement"), metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion!"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
41
41
  var Premise = /*#__PURE__*/ function() {
42
42
  function Premise(metastatementNode) {
43
43
  _classCallCheck(this, Premise);
@@ -88,7 +88,7 @@ var Premise = /*#__PURE__*/ function() {
88
88
  key: "fromJSON",
89
89
  value: function fromJSON(json, callback) {
90
90
  var premise = null;
91
- var metastatement = json.metastatement, ruleName = _ruleNames.METASTATEMENT_RULE_NAME, content = metastatement, node = callback(content, ruleName), metastatementNode = node; ///
91
+ var metastatement = json.metastatement, ruleName = _ruleNames.UNQUALIFIED_METASTATEMENT_RULE_NAME, content = "".concat(metastatement, "\n"), unqualifiedMetastatementNode = callback(content, ruleName), metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
92
92
  if (metastatementNode !== null) {
93
93
  premise = new Premise(metastatementNode);
94
94
  }
@@ -186,4 +186,4 @@ function matchPremiseMetastatementNode(premiseMetastatementNode, metastatementNo
186
186
  return premiseMetastatementNodeMatches;
187
187
  }
188
188
 
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YVN1YnN0aXR1dGlvbiBmcm9tIFwiLi9tZXRhU3Vic3RpdHV0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YVN1YnByb29mQXNzZXJ0aW9uL21ldGFzdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9tZXRhU3VicHJvb2ZBc3NlcnRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbWV0YVN1YnByb29mL3F1YWxpZmllZE1ldGFzdGF0ZW1lbnR8dW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmVtaXNlIHtcbiAgY29uc3RydWN0b3IobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGxldCBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMgPSBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMgPSBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KG1ldGFTdWJwcm9vZk5vZGUpLFxuICAgICAgICAgICAgZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlID0gZmlyc3QocXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMpO1xuXG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZSA9IGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAocHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgY29uc3Qgc2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBzZWNvbmQobWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVzKSxcbiAgICAgICAgICAgICAgc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc2Vjb25kUXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGUgPSBzZWNvbmRNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIG1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXRhU3VicHJvb2ZOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhc3RhdGVtZW50ID0gbWV0YXN0YXRlbWVudFN0cmluZywgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG1ldGFzdGF0ZW1lbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY2FsbGJhY2spIHtcbiAgICBsZXQgcHJlbWlzZSA9IG51bGw7XG5cbiAgICBjb25zdCB7IG1ldGFzdGF0ZW1lbnQgfSA9IGpzb24sXG4gICAgICAgICAgcnVsZU5hbWUgPSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgICBjb250ZW50ID0gbWV0YXN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBjYWxsYmFjayhjb250ZW50LCBydWxlTmFtZSksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBub2RlOyAvLy9cblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBwcmVtaXNlID0gbmV3IFByZW1pc2UobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIHJ1bGVOb2RlVGVybWluYWxOb2RlID0gcHJlbWlzZU5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gcnVsZU5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJlbWlzZVRlcm1pbmFsTm9kZSA9IHByZW1pc2VOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZVRlcm1pbmFsTm9kZShwcmVtaXNlVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgcHJlbWlzZU5vZGVNYXRjaGVzID0gcHJlbWlzZVRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gcHJlbWlzZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBwcmVtaXNlTm9kZU1hdGNoZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTm9kZXMocHJlbWlzZU5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VOb2Rlc01hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgcHJlbWlzZU5vZGVzTGVuZ3RoID0gcHJlbWlzZU5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IHByZW1pc2VOb2Rlc0xlbmd0aCkge1xuICAgIHByZW1pc2VOb2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHByZW1pc2VOb2RlID0gcHJlbWlzZU5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIHByZW1pc2VOb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIG5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKHByZW1pc2VOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTm9kZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VNZXRhdmFyaWFibGUocHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXM7XG5cbiAgY29uc3QgcHJlbWlzZU1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUocHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBwcmVtaXNlTWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBwcmVtaXNlTWV0YXZhcmlhYmxlTmFtZSwgLy8vXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbiA9IE1ldGFTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyhtZXRhdmFyaWFibGVOYW1lLCBub2Rlcyk7XG5cbiAgICBtZXRhU3Vic3RpdHV0aW9ucy5wdXNoKG1ldGFTdWJzdGl0dXRpb24pO1xuXG4gICAgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VUZXJtaW5hbE5vZGUocHJlbWlzZVRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gcHJlbWlzZVRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpLFxuICAgICAgICBwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7XG5cbiAgcmV0dXJuIHByZW1pc2VUZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUocHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICBwcmVtaXNlUnVsZU5hbWUgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gcHJlbWlzZVJ1bGVOYW1lKSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBwcmVtaXNlQ2hpbGROb2Rlc01hdGNoZXMgPSBtYXRjaFByZW1pc2VOb2RlcyhwcmVtaXNlTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByZW1pc2VDaGlsZE5vZGVzTWF0Y2hlczsgLy8vXG5cbiAgICBpZiAoIXByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzKSB7XG4gICAgICBjb25zdCBydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSA9IChydWxlTmFtZSA9PT0gTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAocnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUocHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZShwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHByZW1pc2VOb25UZXJtaW5hbE5vZGUgPSBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXNMZW5ndGggPSBwcmVtaXNlQ2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKHByZW1pc2VDaGlsZE5vZGVzTGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgZmlyc3RQcmVtaXNlQ2hpbGROb2RlID0gZmlyc3QocHJlbWlzZUNoaWxkTm9kZXMpLFxuICAgICAgICAgIHByZW1pc2VDaGlsZE5vZGUgPSBmaXJzdFByZW1pc2VDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBwcmVtaXNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gcHJlbWlzZUNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKHByZW1pc2VDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZSA9IHByZW1pc2VDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID0gcHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lID0gKHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgcHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUgPSBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VNZXRhVmFyaWFibGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTWV0YXZhcmlhYmxlKHByZW1pc2VNZXRhdmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBwcmVtaXNlTWV0YVZhcmlhYmxlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiUHJlbWlzZSIsIm1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImdldE1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhU3VicHJvb2ZOb2RlIiwibWV0YVN1YnByb29mTm9kZSIsIm1ldGFTdWJzdGl0dXRpb25zIiwibWV0YVN1YnByb29mTm9kZU1hdGNoZXMiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsImZpcnN0IiwicXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMiLCJmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJwcmVtaXNlTm9uVGVybWluYWxOb2RlIiwicHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUiLCJzZWNvbmRNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsInNlY29uZCIsInNlY29uZFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwidG9KU09OIiwibWV0YXN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsIm1ldGFzdGF0ZW1lbnQiLCJqc29uIiwiZnJvbUpTT04iLCJjYWxsYmFjayIsInByZW1pc2UiLCJydWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiY29udGVudCIsIm5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaFByZW1pc2VOb2RlIiwicHJlbWlzZU5vZGUiLCJwcmVtaXNlTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInByZW1pc2VUZXJtaW5hbE5vZGUiLCJwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoUHJlbWlzZVRlcm1pbmFsTm9kZSIsIm1hdGNoUHJlbWlzZU5vZGVzIiwicHJlbWlzZU5vZGVzIiwibm9kZXMiLCJwcmVtaXNlTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJwcmVtaXNlTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2hQcmVtaXNlTWV0YXZhcmlhYmxlIiwicHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUiLCJwcmVtaXNlTWV0YXZhcmlhYmxlTWF0Y2hlcyIsInByZW1pc2VNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YVN1YnN0aXR1dGlvbiIsImZpbmQiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIk1ldGFTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzIiwicHVzaCIsIm1hdGNoZXMiLCJtYXRjaCIsImdldFJ1bGVOYW1lIiwicHJlbWlzZVJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJwcmVtaXNlQ2hpbGROb2RlcyIsInByZW1pc2VDaGlsZE5vZGVzTWF0Y2hlcyIsInJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lIiwicHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoUHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlIiwicHJlbWlzZUNoaWxkTm9kZXNMZW5ndGgiLCJmaXJzdFByZW1pc2VDaGlsZE5vZGUiLCJwcmVtaXNlQ2hpbGROb2RlIiwicHJlbWlzZUNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwicHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlIiwicHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUiLCJwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lIiwiTUVU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
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmVtaXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YVN1YnN0aXR1dGlvbiBmcm9tIFwiLi9tZXRhU3Vic3RpdHV0aW9uXCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IGZpcnN0LCBzZWNvbmQgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSwgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgbWV0YXN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQvbWV0YXN0YXRlbWVudFwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2ZBc3NlcnRpb24vbWV0YXN0YXRlbWVudFwiKSxcbiAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGFTdWJwcm9vZkFzc2VydGlvbiFcIiksXG4gICAgICBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2YvcXVhbGlmaWVkTWV0YXN0YXRlbWVudHx1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQvbWV0YXN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByZW1pc2Uge1xuICBjb25zdHJ1Y3RvcihtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIHRoaXMubWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIGdldE1ldGFzdGF0ZW1lbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgbWF0Y2hNZXRhU3VicHJvb2ZOb2RlKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgbGV0IG1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gbWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZVF1ZXJ5KHRoaXMubWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgaWYgKG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyA9IG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgZmlyc3RNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGZpcnN0KG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyksXG4gICAgICAgICAgICBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlcyA9IHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkobWV0YVN1YnByb29mTm9kZSksXG4gICAgICAgICAgICBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGZpcnN0UXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gZmlyc3RNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUocHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmIChwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgICBjb25zdCBzZWNvbmRNZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgICBzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlID0gc2Vjb25kKHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzKTtcblxuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZSA9IHNlY29uZE1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUocHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgbWV0YVN1YnByb29mTm9kZU1hdGNoZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGUgPSB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUocHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMubWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnQgPSBtZXRhc3RhdGVtZW50U3RyaW5nLCAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbWV0YXN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjYWxsYmFjaykge1xuICAgIGxldCBwcmVtaXNlID0gbnVsbDtcblxuICAgIGNvbnN0IHsgbWV0YXN0YXRlbWVudCB9ID0ganNvbixcbiAgICAgICAgICBydWxlTmFtZSA9IFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgIGNvbnRlbnQgPSBgJHttZXRhc3RhdGVtZW50fVxuYCxcbiAgICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlID0gY2FsbGJhY2soY29udGVudCwgcnVsZU5hbWUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgcHJlbWlzZSA9IG5ldyBQcmVtaXNlKG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBwcmVtaXNlID0gbmV3IFByZW1pc2UobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTm9kZShwcmVtaXNlTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIHJ1bGVOb2RlVGVybWluYWxOb2RlID0gcHJlbWlzZU5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICBpZiAobm9kZVRlcm1pbmFsTm9kZSA9PT0gcnVsZU5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJlbWlzZVRlcm1pbmFsTm9kZSA9IHByZW1pc2VOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZVRlcm1pbmFsTm9kZShwcmVtaXNlVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgcHJlbWlzZU5vZGVNYXRjaGVzID0gcHJlbWlzZVRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlID0gcHJlbWlzZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlKHByZW1pc2VOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBwcmVtaXNlTm9kZU1hdGNoZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlTm9kZXMocHJlbWlzZU5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IHByZW1pc2VOb2Rlc01hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aCxcbiAgICAgICAgcHJlbWlzZU5vZGVzTGVuZ3RoID0gcHJlbWlzZU5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IHByZW1pc2VOb2Rlc0xlbmd0aCkge1xuICAgIHByZW1pc2VOb2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHByZW1pc2VOb2RlID0gcHJlbWlzZU5vZGVzW2luZGV4XSxcbiAgICAgICAgICAgIHByZW1pc2VOb2RlTWF0Y2hlcyA9IG1hdGNoUHJlbWlzZU5vZGUocHJlbWlzZU5vZGUsIG5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKHByZW1pc2VOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBwcmVtaXNlTm9kZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VNZXRhdmFyaWFibGUocHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXM7XG5cbiAgY29uc3QgcHJlbWlzZU1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUocHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBwcmVtaXNlTWV0YXZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KSB8fCBudWxsO1xuXG4gIGlmIChtZXRhU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2ggPSBtZXRhU3Vic3RpdHV0aW9uLm1hdGNoTm9kZXMobm9kZXMpO1xuXG4gICAgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBwcmVtaXNlTWV0YXZhcmlhYmxlTmFtZSwgLy8vXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbiA9IE1ldGFTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyhtZXRhdmFyaWFibGVOYW1lLCBub2Rlcyk7XG5cbiAgICBtZXRhU3Vic3RpdHV0aW9ucy5wdXNoKG1ldGFTdWJzdGl0dXRpb24pO1xuXG4gICAgcHJlbWlzZU1ldGF2YXJpYWJsZU1hdGNoZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VUZXJtaW5hbE5vZGUocHJlbWlzZVRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBtYXRjaGVzID0gcHJlbWlzZVRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpLFxuICAgICAgICBwcmVtaXNlVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7XG5cbiAgcmV0dXJuIHByZW1pc2VUZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VOb25UZXJtaW5hbE5vZGUocHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICBwcmVtaXNlUnVsZU5hbWUgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gcHJlbWlzZVJ1bGVOYW1lKSB7XG4gICAgY29uc3QgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByZW1pc2VOb2RlcyA9IHByZW1pc2VDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBwcmVtaXNlQ2hpbGROb2Rlc01hdGNoZXMgPSBtYXRjaFByZW1pc2VOb2RlcyhwcmVtaXNlTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICBwcmVtaXNlTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByZW1pc2VDaGlsZE5vZGVzTWF0Y2hlczsgLy8vXG5cbiAgICBpZiAoIXByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzKSB7XG4gICAgICBjb25zdCBydWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSA9IChydWxlTmFtZSA9PT0gTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAocnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlID0gcHJlbWlzZU5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUocHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZShwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgcHJlbWlzZU1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHByZW1pc2VOb25UZXJtaW5hbE5vZGUgPSBwcmVtaXNlTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXMgPSBwcmVtaXNlTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgcHJlbWlzZUNoaWxkTm9kZXNMZW5ndGggPSBwcmVtaXNlQ2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKHByZW1pc2VDaGlsZE5vZGVzTGVuZ3RoID09PSAxKSB7XG4gICAgY29uc3QgZmlyc3RQcmVtaXNlQ2hpbGROb2RlID0gZmlyc3QocHJlbWlzZUNoaWxkTm9kZXMpLFxuICAgICAgICAgIHByZW1pc2VDaGlsZE5vZGUgPSBmaXJzdFByZW1pc2VDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBwcmVtaXNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gcHJlbWlzZUNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKHByZW1pc2VDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZSA9IHByZW1pc2VDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID0gcHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lID0gKHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUpIHtcbiAgICAgICAgY29uc3QgcHJlbWlzZU1ldGF2YXJpYWJsZU5vZGUgPSBwcmVtaXNlTm9uVGVybWluYWxDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIHByZW1pc2VNZXRhVmFyaWFibGVNYXRjaGVzID0gbWF0Y2hQcmVtaXNlTWV0YXZhcmlhYmxlKHByZW1pc2VNZXRhdmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBwcmVtaXNlTWV0YVZhcmlhYmxlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiUHJlbWlzZSIsIm1ldGFzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkiLCJxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YVN1YnByb29mTm9kZSIsIm1ldGFTdWJwcm9vZk5vZGUiLCJtZXRhU3Vic3RpdHV0aW9ucyIsIm1ldGFTdWJwcm9vZk5vZGVNYXRjaGVzIiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyIsImZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJmaXJzdCIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwibm9uVGVybWluYWxOb2RlIiwicHJlbWlzZU5vblRlcm1pbmFsTm9kZSIsInByZW1pc2VOb25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcmVtaXNlTm9uVGVybWluYWxOb2RlIiwic2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJzZWNvbmQiLCJzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsInRvSlNPTiIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhc3RhdGVtZW50IiwianNvbiIsImZyb21KU09OIiwiY2FsbGJhY2siLCJwcmVtaXNlIiwicnVsZU5hbWUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsImNvbnRlbnQiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hQcmVtaXNlTm9kZSIsInByZW1pc2VOb2RlIiwibm9kZSIsInByZW1pc2VOb2RlTWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInJ1bGVOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwicHJlbWlzZVRlcm1pbmFsTm9kZSIsInByZW1pc2VUZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcmVtaXNlVGVybWluYWxOb2RlIiwibWF0Y2hQcmVtaXNlTm9kZXMiLCJwcmVtaXNlTm9kZXMiLCJub2RlcyIsInByZW1pc2VOb2Rlc01hdGNoZXMiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsInByZW1pc2VOb2Rlc0xlbmd0aCIsImV2ZXJ5IiwiaW5kZXgiLCJtYXRjaFByZW1pc2VNZXRhdmFyaWFibGUiLCJwcmVtaXNlTWV0YXZhcmlhYmxlTm9kZSIsInByZW1pc2VNZXRhdmFyaWFibGVNYXRjaGVzIiwicHJlbWlzZU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uIiwiZmluZCIsIm1ldGF2YXJpYWJsZU5hbWUiLCJnZXRNZXRhdmFyaWFibGVOYW1lIiwibWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2giLCJtYXRjaE5vZGVzIiwiTWV0YVN1YnN0aXR1dGlvbiIsImZyb21NZXRhdmFyaWFibGVOYW1lQW5kTm9kZXMiLCJwdXNoIiwibWF0Y2hlcyIsIm1hdGNoIiwiZ2V0UnVsZU5hbWUiLCJwcmVtaXNlUnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInByZW1pc2VDaGlsZE5vZGVzIiwicHJlbWlzZUNoaWxkTm9kZXNNYXRjaGVzIiwicnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZSIsInByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaFByZW1pc2VNZXRhc3RhdGVtZW50Tm9kZSIsInByZW1pc2VDaGlsZE5vZGVzTGVuZ3RoIiwiZmlyc3RQcmVtaXNlQ2hpbGROb2RlIiwicHJlbWlzZUNoaWxkTm9kZSIsInByZW1pc2VDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsInByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZSIsInByZW1pc2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lIiwicHJlbWlzZU5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJwcmVtaXNlTWV0YVZhcmlhYmxlTWF0Y2hlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFlcUJBOzs7cUVBYlE7c0JBRUE7cUJBQ0M7cUJBQ1E7eUJBRStEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJHLElBQU1DLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQyw0Q0FDbkNDLDBCQUEwQkMsSUFBQUEsaUJBQVUsRUFBQyx5Q0FDckNDLGlDQUFpQ0gsSUFBQUEsZ0JBQVMsRUFBQywwQ0FDM0NJLDZEQUE2REYsSUFBQUEsaUJBQVUsRUFBQztBQUUvRCxJQUFBLEFBQU1KLHdCQWtGbEIsQUFsRlk7YUFBTUEsUUFDUE8saUJBQWlCOzhCQURWUDtRQUVqQixJQUFJLENBQUNPLGlCQUFpQixHQUFHQTs7aUJBRlJQOztZQUtuQlEsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QjtnQkFDckIsT0FBTyxJQUFJLENBQUNELGlCQUFpQjtZQUMvQjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGdCQUFnQixFQUFFQyxpQkFBaUIsRUFBRTtnQkFDekQsSUFBSUMsMEJBQTBCLEtBQUs7Z0JBRW5DLElBQU1DLDRCQUE0QlIsK0JBQStCLElBQUksQ0FBQ0UsaUJBQWlCO2dCQUV2RixJQUFJTSw4QkFBOEIsSUFBSSxFQUFF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
package/lib/ruleNames.js CHANGED
@@ -21,9 +21,6 @@ _export(exports, {
21
21
  ARGUMENT_RULE_NAME: function() {
22
22
  return ARGUMENT_RULE_NAME;
23
23
  },
24
- STATEMENT_RULE_NAME: function() {
25
- return STATEMENT_RULE_NAME;
26
- },
27
24
  METAVARIABLE_RULE_NAME: function() {
28
25
  return METAVARIABLE_RULE_NAME;
29
26
  },
@@ -33,6 +30,15 @@ _export(exports, {
33
30
  META_SUBPROOF_RULE_NAME: function() {
34
31
  return META_SUBPROOF_RULE_NAME;
35
32
  },
33
+ UNQUALIFIED_STATEMENT_RULE_NAME: function() {
34
+ return UNQUALIFIED_STATEMENT_RULE_NAME;
35
+ },
36
+ COMBINATOR_DECLARATION_RULE_NAME: function() {
37
+ return COMBINATOR_DECLARATION_RULE_NAME;
38
+ },
39
+ CONSTRUCTOR_DECLARATION_RULE_NAME: function() {
40
+ return CONSTRUCTOR_DECLARATION_RULE_NAME;
41
+ },
36
42
  QUALIFIED_METASTATEMENT_RULE_NAME: function() {
37
43
  return QUALIFIED_METASTATEMENT_RULE_NAME;
38
44
  },
@@ -44,11 +50,13 @@ var TERM_RULE_NAME = "term";
44
50
  var TYPE_RULE_NAME = "type";
45
51
  var LABEL_RULE_NAME = "label";
46
52
  var ARGUMENT_RULE_NAME = "argument";
47
- var STATEMENT_RULE_NAME = "statement";
48
53
  var METAVARIABLE_RULE_NAME = "metavariable";
49
54
  var METASTATEMENT_RULE_NAME = "metastatement";
50
55
  var META_SUBPROOF_RULE_NAME = "metaSubproof";
56
+ var UNQUALIFIED_STATEMENT_RULE_NAME = "unqualifiedStatement";
57
+ var COMBINATOR_DECLARATION_RULE_NAME = "combinatorDeclaration";
58
+ var CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
51
59
  var QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
52
60
  var UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
53
61
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBURVJNX1JVTEVfTkFNRSA9IFwidGVybVwiO1xuZXhwb3J0IGNvbnN0IFRZUEVfUlVMRV9OQU1FID0gXCJ0eXBlXCI7XG5leHBvcnQgY29uc3QgTEFCRUxfUlVMRV9OQU1FID0gXCJsYWJlbFwiO1xuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX1JVTEVfTkFNRSA9IFwiYXJndW1lbnRcIjtcbmV4cG9ydCBjb25zdCBTVEFURU1FTlRfUlVMRV9OQU1FID0gXCJzdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwibWV0YXN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IE1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FID0gXCJtZXRhU3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgPSBcInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50XCI7XG4iXSwibmFtZXMiOlsiVEVSTV9SVUxFX05BTUUiLCJUWVBFX1JVTEVfTkFNRSIsIkxBQkVMX1JVTEVfTkFNRSIsIkFSR1VNRU5UX1JVTEVfTkFNRSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJNRVRBX1NVQlBST09GX1JVTEVfTkFNRSIsIlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsY0FBYztlQUFkQTs7SUFDQUMsY0FBYztlQUFkQTs7SUFDQUMsZUFBZTtlQUFmQTs7SUFDQUMsa0JBQWtCO2VBQWxCQTs7SUFDQUMsbUJBQW1CO2VBQW5CQTs7SUFDQUMsc0JBQXNCO2VBQXRCQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFDQUMsdUJBQXVCO2VBQXZCQTs7SUFDQUMsaUNBQWlDO2VBQWpDQTs7SUFDQUMsbUNBQW1DO2VBQW5DQTs7O0FBVE4sSUFBTVQsaUJBQWlCO0FBQ3ZCLElBQU1DLGlCQUFpQjtBQUN2QixJQUFNQyxrQkFBa0I7QUFDeEIsSUFBTUMscUJBQXFCO0FBQzNCLElBQU1DLHNCQUFzQjtBQUM1QixJQUFNQyx5QkFBeUI7QUFDL0IsSUFBTUMsMEJBQTBCO0FBQ2hDLElBQU1DLDBCQUEwQjtBQUNoQyxJQUFNQyxvQ0FBb0M7QUFDMUMsSUFBTUMsc0NBQXNDIn0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBURVJNX1JVTEVfTkFNRSA9IFwidGVybVwiO1xuZXhwb3J0IGNvbnN0IFRZUEVfUlVMRV9OQU1FID0gXCJ0eXBlXCI7XG5leHBvcnQgY29uc3QgTEFCRUxfUlVMRV9OQU1FID0gXCJsYWJlbFwiO1xuZXhwb3J0IGNvbnN0IEFSR1VNRU5UX1JVTEVfTkFNRSA9IFwiYXJndW1lbnRcIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwibWV0YXN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IE1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FID0gXCJtZXRhU3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FID0gXCJ1bnF1YWxpZmllZFN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IENPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJjb21iaW5hdG9yRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbnN0cnVjdG9yRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBRVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgPSBcInF1YWxpZmllZE1ldGFzdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50XCI7XG4iXSwibmFtZXMiOlsiVEVSTV9SVUxFX05BTUUiLCJUWVBFX1JVTEVfTkFNRSIsIkxBQkVMX1JVTEVfTkFNRSIsIkFSR1VNRU5UX1JVTEVfTkFNRSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIk1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVhQSxjQUFjO2VBQWRBOztJQUNBQyxjQUFjO2VBQWRBOztJQUNBQyxlQUFlO2VBQWZBOztJQUNBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyxzQkFBc0I7ZUFBdEJBOztJQUNBQyx1QkFBdUI7ZUFBdkJBOztJQUNBQyx1QkFBdUI7ZUFBdkJBOztJQUNBQywrQkFBK0I7ZUFBL0JBOztJQUNBQyxnQ0FBZ0M7ZUFBaENBOztJQUNBQyxpQ0FBaUM7ZUFBakNBOztJQUNBQyxpQ0FBaUM7ZUFBakNBOztJQUNBQyxtQ0FBbUM7ZUFBbkNBOzs7QUFYTixJQUFNWCxpQkFBaUI7QUFDdkIsSUFBTUMsaUJBQWlCO0FBQ3ZCLElBQU1DLGtCQUFrQjtBQUN4QixJQUFNQyxxQkFBcUI7QUFDM0IsSUFBTUMseUJBQXlCO0FBQy9CLElBQU1DLDBCQUEwQjtBQUNoQyxJQUFNQywwQkFBMEI7QUFDaEMsSUFBTUMsa0NBQWtDO0FBQ3hDLElBQU1DLG1DQUFtQztBQUN6QyxJQUFNQyxvQ0FBb0M7QUFDMUMsSUFBTUMsb0NBQW9DO0FBQzFDLElBQU1DLHNDQUFzQyJ9
@@ -15,22 +15,23 @@ function _interopRequireDefault(obj) {
15
15
  };
16
16
  }
17
17
  function verifyRelease(releaseName, releaseContextMap) {
18
+ var releaseVerified = false;
18
19
  var releaseContext = releaseContextMap[releaseName];
19
- if (releaseContext === null) {
20
- return;
21
- }
22
- var verified = releaseContext.isVerified();
23
- var releaseVerified = verified; ///
24
- if (!releaseVerified) {
25
- releaseContext.debug("Verifying the '".concat(releaseName, "' package..."));
20
+ if (releaseContext !== null) {
26
21
  var dependencyReleasesVVerified = verifyDependencyReleases(releaseContext, releaseContextMap);
27
22
  if (dependencyReleasesVVerified) {
28
- var releaseFilesVerified = verifyReleaseFiles(releaseContext);
29
- if (releaseFilesVerified) {
30
- var verified1 = true;
23
+ var verified = releaseContext.isVerified();
24
+ if (verified) {
31
25
  releaseVerified = true;
32
- releaseContext.setVerified(verified1);
33
- releaseContext.info("Verified the '".concat(releaseName, "' package."));
26
+ } else {
27
+ releaseContext.debug("Verifying the '".concat(releaseName, "' package..."));
28
+ var releaseFilesVerified = verifyReleaseFiles(releaseContext);
29
+ if (releaseFilesVerified) {
30
+ var verified1 = true;
31
+ releaseVerified = verified1;
32
+ releaseContext.setVerified(verified1);
33
+ releaseContext.info("Verified the '".concat(releaseName, "' package."));
34
+ }
34
35
  }
35
36
  }
36
37
  }
@@ -50,4 +51,4 @@ function verifyDependencyReleases(releaseContext, releaseContextMap) {
50
51
  return dependencyReleasesVVerified;
51
52
  }
52
53
 
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcmVsZWFzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUZpbGVzIGZyb20gXCIuLi92ZXJpZnkvZmlsZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UmVsZWFzZShyZWxlYXNlTmFtZSwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSByZWxlYXNlQ29udGV4dE1hcFtyZWxlYXNlTmFtZV07XG5cbiAgaWYgKHJlbGVhc2VDb250ZXh0ID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdmVyaWZpZWQgPSByZWxlYXNlQ29udGV4dC5pc1ZlcmlmaWVkKCk7XG5cbiAgbGV0IHJlbGVhc2VWZXJpZmllZCA9IHZlcmlmaWVkOyAvLy9cblxuICBpZiAoIXJlbGVhc2VWZXJpZmllZCkge1xuICAgIHJlbGVhc2VDb250ZXh0LmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZS4uLmApO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VzVlZlcmlmaWVkID0gdmVyaWZ5RGVwZW5kZW5jeVJlbGVhc2VzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICBpZiAoZGVwZW5kZW5jeVJlbGVhc2VzVlZlcmlmaWVkKSB7XG4gICAgICBjb25zdCByZWxlYXNlRmlsZXNWZXJpZmllZCA9IHZlcmlmeVJlbGVhc2VGaWxlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlRmlsZXNWZXJpZmllZCkge1xuICAgICAgICBjb25zdCB2ZXJpZmllZCA9IHRydWU7XG5cbiAgICAgICAgcmVsZWFzZVZlcmlmaWVkID0gdHJ1ZTtcblxuICAgICAgICByZWxlYXNlQ29udGV4dC5zZXRWZXJpZmllZCh2ZXJpZmllZCk7XG5cbiAgICAgICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZS5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlSZWxlYXNlRmlsZXMocmVsZWFzZUNvbnRleHQpIHtcbiAgY29uc3QgZmlsZXNWZXJpZmllZCA9IHZlcmlmeUZpbGVzKHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgcmVsZWFzZUZpbGVzVmVyaWZpZWQgPSBmaWxlc1ZlcmlmaWVkOyAvLy9cblxuICByZXR1cm4gcmVsZWFzZUZpbGVzVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcGVuZGVuY3lSZWxlYXNlcyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCksXG4gICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlc1ZWZXJpZmllZCA9IGRlcGVuZGVuY2llcy5ldmVyeURlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgICAgICBjb25zdCBuYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgICAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgICAgICAgICByZWxlYXNlVmVyaWZpZWQgPSB2ZXJpZnlSZWxlYXNlKHJlbGVhc2VOYW1lLCByZWxlYXNlQ29udGV4dE1hcCk7XG5cbiAgICAgICAgICBpZiAocmVsZWFzZVZlcmlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBkZXBlbmRlbmN5UmVsZWFzZXNWVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UmVsZWFzZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZUNvbnRleHRNYXAiLCJyZWxlYXNlQ29udGV4dCIsInZlcmlmaWVkIiwiaXNWZXJpZmllZCIsInJlbGVhc2VWZXJpZmllZCIsImRlYnVnIiwiZGVwZW5kZW5jeVJlbGVhc2VzVlZlcmlmaWVkIiwidmVyaWZ5RGVwZW5kZW5jeVJlbGVhc2VzIiwicmVsZWFzZUZpbGVzVmVyaWZpZWQiLCJ2ZXJpZnlSZWxlYXNlRmlsZXMiLCJzZXRWZXJpZmllZCIsImluZm8iLCJmaWxlc1ZlcmlmaWVkIiwidmVyaWZ5RmlsZXMiLCJkZXBlbmRlbmNpZXMiLCJnZXREZXBlbmRlbmNpZXMiLCJldmVyeURlcGVuZGVuY3kiLCJkZXBlbmRlbmN5IiwibmFtZSIsImdldE5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7MERBRkE7Ozs7OztBQUVULFNBQVNBLGNBQWNDLFdBQVcsRUFBRUMsaUJBQWlCLEVBQUU7SUFDcEUsSUFBTUMsaUJBQWlCRCxpQkFBaUIsQ0FBQ0QsWUFBWTtJQUVyRCxJQUFJRSxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCO0lBQ0YsQ0FBQztJQUVELElBQU1DLFdBQVdELGVBQWVFLFVBQVU7SUFFMUMsSUFBSUMsa0JBQWtCRixVQUFVLEdBQUc7SUFFbkMsSUFBSSxDQUFDRSxpQkFBaUI7UUFDcEJILGVBQWVJLEtBQUssQ0FBQyxBQUFDLGtCQUE2QixPQUFaTixhQUFZO1FBRW5ELElBQU1PLDhCQUE4QkMseUJBQXlCTixnQkFBZ0JEO1FBRTdFLElBQUlNLDZCQUE2QjtZQUMvQixJQUFNRSx1QkFBdUJDLG1CQUFtQlI7WUFFaEQsSUFBSU8sc0JBQXNCO2dCQUN4QixJQUFNTixZQUFXLElBQUk7Z0JBRXJCRSxrQkFBa0IsSUFBSTtnQkFFdEJILGVBQWVTLFdBQVcsQ0FBQ1I7Z0JBRTNCRCxlQUFlVSxJQUFJLENBQUMsQUFBQyxpQkFBNEIsT0FBWlosYUFBWTtZQUNuRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPSztBQUNUO0FBRUEsU0FBU0ssbUJBQW1CUixjQUFjLEVBQUU7SUFDMUMsSUFBTVcsZ0JBQWdCQyxJQUFBQSxjQUFXLEVBQUNaLGlCQUM1Qk8sdUJBQXVCSSxlQUFlLEdBQUc7SUFFL0MsT0FBT0o7QUFDVDtBQUVBLFNBQVNELHlCQUF5Qk4sY0FBYyxFQUFFRCxpQkFBaUIsRUFBRTtJQUNuRSxJQUFNYyxlQUFlYixlQUFlYyxlQUFlLElBQzdDVCw4QkFBOEJRLGFBQWFFLGVBQWUsQ0FBQyxTQUFDQyxZQUFlO1FBQ3pFLElBQU1DLE9BQU9ELFdBQVdFLE9BQU8sSUFDekJwQixjQUFjbUIsTUFDZGQsa0JBQWtCTixjQUFjQyxhQUFhQztRQUVuRCxJQUFJSSxpQkFBaUI7WUFDbkIsT0FBTyxJQUFJO1FBQ2IsQ0FBQztJQUNIO0lBRU4sT0FBT0U7QUFDVCJ9
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcmVsZWFzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeUZpbGVzIGZyb20gXCIuLi92ZXJpZnkvZmlsZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5UmVsZWFzZShyZWxlYXNlTmFtZSwgcmVsZWFzZUNvbnRleHRNYXApIHtcbiAgbGV0IHJlbGVhc2VWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRNYXBbcmVsZWFzZU5hbWVdO1xuXG4gIGlmIChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlc1ZWZXJpZmllZCA9IHZlcmlmeURlcGVuZGVuY3lSZWxlYXNlcyhyZWxlYXNlQ29udGV4dCwgcmVsZWFzZUNvbnRleHRNYXApO1xuXG4gICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlc1ZWZXJpZmllZCkge1xuICAgICAgY29uc3QgdmVyaWZpZWQgPSByZWxlYXNlQ29udGV4dC5pc1ZlcmlmaWVkKCk7XG5cbiAgICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgICByZWxlYXNlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVsZWFzZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwYWNrYWdlLi4uYCk7XG5cbiAgICAgICAgY29uc3QgcmVsZWFzZUZpbGVzVmVyaWZpZWQgPSB2ZXJpZnlSZWxlYXNlRmlsZXMocmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICAgIGlmIChyZWxlYXNlRmlsZXNWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHZlcmlmaWVkID0gdHJ1ZTtcblxuICAgICAgICAgIHJlbGVhc2VWZXJpZmllZCA9IHZlcmlmaWVkO1xuXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQuc2V0VmVyaWZpZWQodmVyaWZpZWQpO1xuXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQuaW5mbyhgVmVyaWZpZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZS5gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZWxlYXNlVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VGaWxlcyhyZWxlYXNlQ29udGV4dCkge1xuICBjb25zdCBmaWxlc1ZlcmlmaWVkID0gdmVyaWZ5RmlsZXMocmVsZWFzZUNvbnRleHQpLFxuICAgICAgICByZWxlYXNlRmlsZXNWZXJpZmllZCA9IGZpbGVzVmVyaWZpZWQ7IC8vL1xuXG4gIHJldHVybiByZWxlYXNlRmlsZXNWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVwZW5kZW5jeVJlbGVhc2VzKHJlbGVhc2VDb250ZXh0LCByZWxlYXNlQ29udGV4dE1hcCkge1xuICBjb25zdCBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VzVlZlcmlmaWVkID0gZGVwZW5kZW5jaWVzLmV2ZXJ5RGVwZW5kZW5jeSgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKSxcbiAgICAgICAgICAgICAgICByZWxlYXNlTmFtZSA9IG5hbWUsIC8vL1xuICAgICAgICAgICAgICAgIHJlbGVhc2VWZXJpZmllZCA9IHZlcmlmeVJlbGVhc2UocmVsZWFzZU5hbWUsIHJlbGVhc2VDb250ZXh0TWFwKTtcblxuICAgICAgICAgIGlmIChyZWxlYXNlVmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGRlcGVuZGVuY3lSZWxlYXNlc1ZWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlSZWxlYXNlIiwicmVsZWFzZU5hbWUiLCJyZWxlYXNlQ29udGV4dE1hcCIsInJlbGVhc2VWZXJpZmllZCIsInJlbGVhc2VDb250ZXh0IiwiZGVwZW5kZW5jeVJlbGVhc2VzVlZlcmlmaWVkIiwidmVyaWZ5RGVwZW5kZW5jeVJlbGVhc2VzIiwidmVyaWZpZWQiLCJpc1ZlcmlmaWVkIiwiZGVidWciLCJyZWxlYXNlRmlsZXNWZXJpZmllZCIsInZlcmlmeVJlbGVhc2VGaWxlcyIsInNldFZlcmlmaWVkIiwiaW5mbyIsImZpbGVzVmVyaWZpZWQiLCJ2ZXJpZnlGaWxlcyIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImV2ZXJ5RGVwZW5kZW5jeSIsImRlcGVuZGVuY3kiLCJuYW1lIiwiZ2V0TmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSUE7OztlQUF3QkE7OzswREFGQTs7Ozs7O0FBRVQsU0FBU0EsY0FBY0MsV0FBVyxFQUFFQyxpQkFBaUIsRUFBRTtJQUNwRSxJQUFJQyxrQkFBa0IsS0FBSztJQUUzQixJQUFNQyxpQkFBaUJGLGlCQUFpQixDQUFDRCxZQUFZO0lBRXJELElBQUlHLG1CQUFtQixJQUFJLEVBQUU7UUFDM0IsSUFBTUMsOEJBQThCQyx5QkFBeUJGLGdCQUFnQkY7UUFFN0UsSUFBSUcsNkJBQTZCO1lBQy9CLElBQU1FLFdBQVdILGVBQWVJLFVBQVU7WUFFMUMsSUFBSUQsVUFBVTtnQkFDWkosa0JBQWtCLElBQUk7WUFDeEIsT0FBTztnQkFDTEMsZUFBZUssS0FBSyxDQUFDLEFBQUMsa0JBQTZCLE9BQVpSLGFBQVk7Z0JBRW5ELElBQU1TLHVCQUF1QkMsbUJBQW1CUDtnQkFFaEQsSUFBSU0sc0JBQXNCO29CQUN4QixJQUFNSCxZQUFXLElBQUk7b0JBRXJCSixrQkFBa0JJO29CQUVsQkgsZUFBZVEsV0FBVyxDQUFDTDtvQkFFM0JILGVBQWVTLElBQUksQ0FBQyxBQUFDLGlCQUE0QixPQUFaWixhQUFZO2dCQUNuRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBT0U7QUFDVDtBQUVBLFNBQVNRLG1CQUFtQlAsY0FBYyxFQUFFO0lBQzFDLElBQU1VLGdCQUFnQkMsSUFBQUEsY0FBVyxFQUFDWCxpQkFDNUJNLHVCQUF1QkksZUFBZSxHQUFHO0lBRS9DLE9BQU9KO0FBQ1Q7QUFFQSxTQUFTSix5QkFBeUJGLGNBQWMsRUFBRUYsaUJBQWlCLEVBQUU7SUFDbkUsSUFBTWMsZUFBZVosZUFBZWEsZUFBZSxJQUM3Q1osOEJBQThCVyxhQUFhRSxlQUFlLENBQUMsU0FBQ0MsWUFBZTtRQUN6RSxJQUFNQyxPQUFPRCxXQUFXRSxPQUFPLElBQ3pCcEIsY0FBY21CLE1BQ2RqQixrQkFBa0JILGNBQWNDLGFBQWFDO1FBRW5ELElBQUlDLGlCQUFpQjtZQUNuQixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7SUFFTixPQUFPRTtBQUNUIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.391",
4
+ "version": "0.0.393",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
package/src/axiom.js CHANGED
@@ -2,9 +2,12 @@
2
2
 
3
3
  import Label from "./label";
4
4
 
5
+ import { nodeQuery } from "./utilities/query";
5
6
  import { AXIOM_KIND } from "./kinds";
6
7
  import { nodeAsString } from "./utilities/string";
7
- import { STATEMENT_RULE_NAME } from "occam-custom-grammars/lib/ruleNames";
8
+ import { UNQUALIFIED_STATEMENT_RULE_NAME } from "./ruleNames";
9
+
10
+ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement");
8
11
 
9
12
  export default class Axiom {
10
13
  constructor(labels, statementNode, suppositionStatementNode, consequentStatementNode) {
@@ -92,42 +95,45 @@ export default class Axiom {
92
95
  }, []);
93
96
 
94
97
  if (statement !== null) {
95
- const content = statement, ///
96
- ruleName = STATEMENT_RULE_NAME,
97
- node = callback(content, ruleName),
98
- statementNode = node; ///
99
-
100
- if (statementNode !== null) {
101
- const consequentNode = null,
102
- suppositionNode = null;
103
-
104
- axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
105
- }
98
+ const ruleName = UNQUALIFIED_STATEMENT_RULE_NAME,
99
+ content = `${statement}
100
+ `,
101
+ unqualifiedStatementNode = callback(content, ruleName),
102
+ statementNode = statementNodeQuery(unqualifiedStatementNode),
103
+ consequentNode = null,
104
+ suppositionNode = null;
105
+
106
+ axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
106
107
  }
107
108
 
108
109
  if ((consequent !== null) && (supposition !== null)) {
109
- let node,
110
- content;
110
+ let content,
111
+ statementNode,
112
+ unqualifiedStatementNode;
111
113
 
112
- const ruleName = STATEMENT_RULE_NAME;
114
+ const ruleName = UNQUALIFIED_STATEMENT_RULE_NAME;
113
115
 
114
- content = consequent; ///
116
+ content = `${consequent}
117
+ `;
115
118
 
116
- node = callback(content, ruleName);
119
+ unqualifiedStatementNode = callback(content, ruleName);
117
120
 
118
- const consequentNode = node; ///
121
+ statementNode = statementNodeQuery(unqualifiedStatementNode);
119
122
 
120
- content = supposition; ///
123
+ const consequentNode = statementNode; ///
121
124
 
122
- node = callback(content, ruleName);
125
+ content = `${supposition}
126
+ `;
123
127
 
124
- const suppositionNode = node; ///
128
+ unqualifiedStatementNode = callback(content, ruleName);
125
129
 
126
- if ((consequentNode !== null) && (suppositionNode !== null)) {
127
- const statementNode = null;
130
+ statementNode = statementNodeQuery(unqualifiedStatementNode);
128
131
 
129
- axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
130
- }
132
+ const suppositionNode = statementNode; ///
133
+
134
+ statementNode = null;
135
+
136
+ axiom = new Axiom(labels, statementNode, consequentNode, suppositionNode);
131
137
  }
132
138
 
133
139
  return axiom;
package/src/combinator.js CHANGED
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ import { nodeQuery } from "./utilities/query";
3
4
  import { nodeAsString } from "./utilities/string";
4
5
  import { COMBINATOR_KIND } from "./kinds";
5
- import { STATEMENT_RULE_NAME } from "./ruleNames";
6
+ import { COMBINATOR_DECLARATION_RULE_NAME } from "./ruleNames";
7
+
8
+ const statementNodeQuery = nodeQuery("/combinatorDeclaration/statement");
6
9
 
7
10
  export default class Combinator {
8
11
  constructor(statementNode) {
@@ -32,17 +35,13 @@ export default class Combinator {
32
35
  }
33
36
 
34
37
  static fromJSON(json, callback) {
35
- let combinator = null;
36
-
37
38
  const { statement } = json,
38
- content = statement, ///
39
- ruleName = STATEMENT_RULE_NAME,
40
- node = callback(content, ruleName),
41
- statementNode = node; ///
42
-
43
- if (statementNode !== null) {
44
- combinator = new Combinator(statementNode);
45
- }
39
+ ruleName = COMBINATOR_DECLARATION_RULE_NAME,
40
+ content = `Combinator ${statement}
41
+ `,
42
+ combinatorDeclarationNode = callback(content, ruleName),
43
+ statementNode = statementNodeQuery(combinatorDeclarationNode),
44
+ combinator = new Combinator(statementNode);
46
45
 
47
46
  return combinator;
48
47
  }
package/src/conclusion.js CHANGED
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { first } from "./utilities/array";
4
+ import { nodeQuery } from "./utilities/query";
4
5
  import { nodeAsString } from "./utilities/string";
5
6
  import { metavariableNameFromMetavariableNode } from "./utilities/query";
6
- import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME } from "./ruleNames";
7
+ import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME, UNQUALIFIED_METASTATEMENT_RULE_NAME } from "./ruleNames";
8
+
9
+ const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement");
7
10
 
8
11
  export default class Conclusion {
9
12
  constructor(metastatementNode) {
@@ -37,10 +40,11 @@ export default class Conclusion {
37
40
  let conclusion = null;
38
41
 
39
42
  const { metastatement } = json,
40
- ruleName = METASTATEMENT_RULE_NAME,
41
- content = metastatement, ///
42
- node = callback(content, ruleName),
43
- metastatementNode = node; ///
43
+ ruleName = UNQUALIFIED_METASTATEMENT_RULE_NAME,
44
+ content = `${metastatement}
45
+ `,
46
+ unqualifiedMetastatementNode = callback(content, ruleName),
47
+ metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
44
48
 
45
49
  if (metastatementNode !== null) {
46
50
  conclusion = new Conclusion(metastatementNode);
@@ -2,9 +2,12 @@
2
2
 
3
3
  import Type from "./type";
4
4
 
5
+ import { nodeQuery } from "./utilities/query";
5
6
  import { nodeAsString } from "./utilities/string";
6
- import { TERM_RULE_NAME } from "./ruleNames";
7
7
  import { CONSTRUCTOR_KIND } from "./kinds";
8
+ import { CONSTRUCTOR_DECLARATION_RULE_NAME } from "./ruleNames";
9
+
10
+ const statementNodeQuery = nodeQuery("/constructorDeclaration/term");
8
11
 
9
12
  export default class Constructor {
10
13
  constructor(termNode, type) {
@@ -55,23 +58,20 @@ export default class Constructor {
55
58
  }
56
59
 
57
60
  static fromJSON(json, callback) {
58
- let constructor = null;
59
-
60
61
  let { type } = json;
61
62
 
62
63
  const { term } = json,
63
- content = term, ///
64
- ruleName = TERM_RULE_NAME,
65
- node = callback(content, ruleName),
66
- termNode = node; ///
64
+ ruleName = CONSTRUCTOR_DECLARATION_RULE_NAME,
65
+ content = `Constructor ${term}
66
+ `,
67
+ constructorDeclarationNode = callback(content, ruleName),
68
+ termNode = statementNodeQuery(constructorDeclarationNode);
67
69
 
68
- if (termNode !== null) {
69
- json = type; ///
70
+ json = type; ///
70
71
 
71
- type = Type.fromJSON(json);
72
+ type = Type.fromJSON(json);
72
73
 
73
- constructor = new Constructor(termNode, type);
74
- }
74
+ const constructor = new Constructor(termNode, type);
75
75
 
76
76
  return constructor;
77
77
  }
package/src/premise.js CHANGED
@@ -6,9 +6,10 @@ import { nodeAsString } from "./utilities/string";
6
6
  import { first, second } from "./utilities/array";
7
7
  import { nodeQuery, nodesQuery } from "./utilities/query";
8
8
  import { metavariableNameFromMetavariableNode } from "./utilities/query";
9
- import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME } from "./ruleNames";
9
+ import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME, UNQUALIFIED_METASTATEMENT_RULE_NAME } from "./ruleNames";
10
10
 
11
- const metastatementNodesQuery = nodesQuery("/metaSubproofAssertion/metastatement"),
11
+ const metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement"),
12
+ metastatementNodesQuery = nodesQuery("/metaSubproofAssertion/metastatement"),
12
13
  metaSubproofAssertionNodeQuery = nodeQuery("/metastatement/metaSubproofAssertion!"),
13
14
  qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = nodesQuery("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
14
15
 
@@ -74,10 +75,11 @@ export default class Premise {
74
75
  let premise = null;
75
76
 
76
77
  const { metastatement } = json,
77
- ruleName = METASTATEMENT_RULE_NAME,
78
- content = metastatement, ///
79
- node = callback(content, ruleName),
80
- metastatementNode = node; ///
78
+ ruleName = UNQUALIFIED_METASTATEMENT_RULE_NAME,
79
+ content = `${metastatement}
80
+ `,
81
+ unqualifiedMetastatementNode = callback(content, ruleName),
82
+ metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode);
81
83
 
82
84
  if (metastatementNode !== null) {
83
85
  premise = new Premise(metastatementNode);
package/src/ruleNames.js CHANGED
@@ -4,9 +4,11 @@ export const TERM_RULE_NAME = "term";
4
4
  export const TYPE_RULE_NAME = "type";
5
5
  export const LABEL_RULE_NAME = "label";
6
6
  export const ARGUMENT_RULE_NAME = "argument";
7
- export const STATEMENT_RULE_NAME = "statement";
8
7
  export const METAVARIABLE_RULE_NAME = "metavariable";
9
8
  export const METASTATEMENT_RULE_NAME = "metastatement";
10
9
  export const META_SUBPROOF_RULE_NAME = "metaSubproof";
10
+ export const UNQUALIFIED_STATEMENT_RULE_NAME = "unqualifiedStatement";
11
+ export const COMBINATOR_DECLARATION_RULE_NAME = "combinatorDeclaration";
12
+ export const CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
11
13
  export const QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
12
14
  export const UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
@@ -3,32 +3,32 @@
3
3
  import verifyFiles from "../verify/files";
4
4
 
5
5
  export default function verifyRelease(releaseName, releaseContextMap) {
6
- const releaseContext = releaseContextMap[releaseName];
7
-
8
- if (releaseContext === null) {
9
- return;
10
- }
11
-
12
- const verified = releaseContext.isVerified();
13
-
14
- let releaseVerified = verified; ///
6
+ let releaseVerified = false;
15
7
 
16
- if (!releaseVerified) {
17
- releaseContext.debug(`Verifying the '${releaseName}' package...`);
8
+ const releaseContext = releaseContextMap[releaseName];
18
9
 
10
+ if (releaseContext !== null) {
19
11
  const dependencyReleasesVVerified = verifyDependencyReleases(releaseContext, releaseContextMap);
20
12
 
21
13
  if (dependencyReleasesVVerified) {
22
- const releaseFilesVerified = verifyReleaseFiles(releaseContext);
23
-
24
- if (releaseFilesVerified) {
25
- const verified = true;
14
+ const verified = releaseContext.isVerified();
26
15
 
16
+ if (verified) {
27
17
  releaseVerified = true;
18
+ } else {
19
+ releaseContext.debug(`Verifying the '${releaseName}' package...`);
20
+
21
+ const releaseFilesVerified = verifyReleaseFiles(releaseContext);
22
+
23
+ if (releaseFilesVerified) {
24
+ const verified = true;
25
+
26
+ releaseVerified = verified;
28
27
 
29
- releaseContext.setVerified(verified);
28
+ releaseContext.setVerified(verified);
30
29
 
31
- releaseContext.info(`Verified the '${releaseName}' package.`);
30
+ releaseContext.info(`Verified the '${releaseName}' package.`);
31
+ }
32
32
  }
33
33
  }
34
34
  }