occam-verify-cli 0.0.837 → 0.0.839

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.
Files changed (50) hide show
  1. package/lib/constants.js +5 -1
  2. package/lib/context/file.js +24 -9
  3. package/lib/context/local.js +77 -39
  4. package/lib/context/localMeta.js +3 -3
  5. package/lib/context/release.js +4 -5
  6. package/lib/equality.js +2 -2
  7. package/lib/equivalence.js +244 -0
  8. package/lib/log.js +3 -3
  9. package/lib/term.js +40 -1
  10. package/lib/utilities/array.js +5 -5
  11. package/lib/utilities/equivalences.js +169 -0
  12. package/lib/verifier/node/metastatement.js +12 -31
  13. package/lib/verifier/node/statementAsCombinator.js +4 -4
  14. package/lib/verifier/node/termAsConstructor.js +7 -27
  15. package/lib/verifier/nodes/equality.js +8 -8
  16. package/lib/verifier/nodes/metaLevelToIntrinsicLevel.js +22 -6
  17. package/lib/verify/containment.js +22 -12
  18. package/lib/verify/defining.js +38 -0
  19. package/lib/verify/metavariable.js +26 -4
  20. package/lib/verify/statement.js +62 -45
  21. package/lib/verify/term.js +6 -6
  22. package/lib/verify/type.js +7 -7
  23. package/lib/verify/variable.js +26 -4
  24. package/package.json +1 -1
  25. package/src/constants.js +1 -0
  26. package/src/context/file.js +35 -8
  27. package/src/context/local.js +113 -44
  28. package/src/context/localMeta.js +3 -3
  29. package/src/context/release.js +6 -9
  30. package/src/equality.js +2 -2
  31. package/src/{collection.js → equivalence.js} +84 -28
  32. package/src/log.js +2 -2
  33. package/src/term.js +48 -0
  34. package/src/utilities/array.js +1 -1
  35. package/src/utilities/equivalences.js +152 -0
  36. package/src/verifier/node/metastatement.js +23 -51
  37. package/src/verifier/node/statementAsCombinator.js +9 -6
  38. package/src/verifier/node/termAsConstructor.js +13 -44
  39. package/src/verifier/nodes/equality.js +7 -7
  40. package/src/verifier/nodes/metaLevelToIntrinsicLevel.js +38 -12
  41. package/src/verify/containment.js +31 -20
  42. package/src/verify/defining.js +43 -0
  43. package/src/verify/metavariable.js +22 -0
  44. package/src/verify/statement.js +88 -54
  45. package/src/verify/term.js +4 -5
  46. package/src/verify/type.js +6 -7
  47. package/src/verify/variable.js +22 -0
  48. package/lib/collection.js +0 -192
  49. package/lib/utilities/collection.js +0 -121
  50. package/src/utilities/collection.js +0 -103
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _nodes = /*#__PURE__*/ _interop_require_default(require("../../verifier/nodes"));
12
12
  var _ruleNames = require("../../ruleNames");
13
- var _collection = require("../../utilities/collection");
13
+ var _equivalences = require("../../utilities/equivalences");
14
14
  function _assert_this_initialized(self) {
15
15
  if (self === void 0) {
16
16
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -134,20 +134,20 @@ var EqualityNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
134
134
  _create_class(EqualityNodesVerifier, [
135
135
  {
136
136
  key: "verifyNonTerminalNode",
137
- value: function verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, collections, localContext, verifyAhead) {
137
+ value: function verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, equivalences, localContext, verifyAhead) {
138
138
  var nonTerminalNodeVerified = false;
139
139
  var ruleNameA = nonTerminalNodeA.getRuleName(), ruleNameB = nonTerminalNodeB.getRuleName(); ///
140
140
  if (ruleNameA === ruleNameB) {
141
141
  switch(ruleNameA){
142
142
  case _ruleNames.TERM_RULE_NAME:
143
143
  {
144
- var termNodeA = nonTerminalNodeA, termNodeB = nonTerminalNodeB, termNodeVerified = this.verifyTermNode(termNodeA, termNodeB, collections, localContext, verifyAhead);
144
+ var termNodeA = nonTerminalNodeA, termNodeB = nonTerminalNodeB, termNodeVerified = this.verifyTermNode(termNodeA, termNodeB, equivalences, localContext, verifyAhead);
145
145
  nonTerminalNodeVerified = termNodeVerified; ///
146
146
  break;
147
147
  }
148
148
  default:
149
149
  {
150
- nonTerminalNodeVerified = _get(_get_prototype_of(EqualityNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, collections, localContext, verifyAhead);
150
+ nonTerminalNodeVerified = _get(_get_prototype_of(EqualityNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, equivalences, localContext, verifyAhead);
151
151
  break;
152
152
  }
153
153
  }
@@ -157,15 +157,15 @@ var EqualityNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
157
157
  },
158
158
  {
159
159
  key: "verifyTermNode",
160
- value: function verifyTermNode(termNodeA, termNodeB, collections, localContext, verifyAhead) {
160
+ value: function verifyTermNode(termNodeA, termNodeB, equivalences, localContext, verifyAhead) {
161
161
  var termNodeVerified;
162
- var leftTermNode = termNodeA, rightTermNode = termNodeB, termNodesEqual = (0, _collection.areTermNodesEqual)(leftTermNode, rightTermNode, collections);
162
+ var leftTermNode = termNodeA, rightTermNode = termNodeB, termNodesEqual = (0, _equivalences.areTermNodesEqual)(leftTermNode, rightTermNode, equivalences);
163
163
  if (termNodesEqual) {
164
164
  var verifiedAhead = verifyAhead();
165
165
  termNodeVerified = verifiedAhead; ///
166
166
  } else {
167
167
  var nonTerminalNodeA = termNodeA, nonTerminalNodeB = termNodeB; ///
168
- termNodeVerified = _get(_get_prototype_of(EqualityNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, collections, localContext, verifyAhead);
168
+ termNodeVerified = _get(_get_prototype_of(EqualityNodesVerifier.prototype), "verifyNonTerminalNode", this).call(this, nonTerminalNodeA, nonTerminalNodeB, equivalences, localContext, verifyAhead);
169
169
  }
170
170
  return termNodeVerified;
171
171
  }
@@ -176,4 +176,4 @@ var EqualityNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
176
176
  var equalityNodesVerifier = new EqualityNodesVerifier();
177
177
  var _default = equalityNodesVerifier;
178
178
 
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy9lcXVhbGl0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgYXJlVGVybU5vZGVzRXF1YWwgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbGxlY3Rpb25cIjtcblxuY2xhc3MgRXF1YWxpdHlOb2Rlc1ZlcmlmaWVyIGV4dGVuZHMgTm9kZXNWZXJpZmllciB7XG4gIHZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBjb2xsZWN0aW9ucywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcnVsZU5hbWVBID0gbm9uVGVybWluYWxOb2RlQS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgICBydWxlTmFtZUIgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgaWYgKHJ1bGVOYW1lQSA9PT0gcnVsZU5hbWVCKSB7XG4gICAgICBzd2l0Y2ggKHJ1bGVOYW1lQSkge1xuICAgICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3QgdGVybU5vZGVBID0gbm9uVGVybWluYWxOb2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGVCID0gbm9uVGVybWluYWxOb2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VGVybU5vZGUodGVybU5vZGVBLCB0ZXJtTm9kZUIsIGNvbGxlY3Rpb25zLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGVybU5vZGVWZXJpZmllZDsgIC8vL1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgY29sbGVjdGlvbnMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZUEsIHRlcm1Ob2RlQiwgY29sbGVjdGlvbnMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybU5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IGxlZnRUZXJtTm9kZSA9IHRlcm1Ob2RlQSwgLy8vXG4gICAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgdGVybU5vZGVzRXF1YWwgPSBhcmVUZXJtTm9kZXNFcXVhbChsZWZ0VGVybU5vZGUsIHJpZ2h0VGVybU5vZGUsIGNvbGxlY3Rpb25zKTtcblxuICAgIGlmICh0ZXJtTm9kZXNFcXVhbCkge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSB2ZXJpZmllZEFoZWFkOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSB0ZXJtTm9kZUEsIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IHRlcm1Ob2RlQjsgLy8vXG5cbiAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgY29sbGVjdGlvbnMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkO1xuICB9XG59XG5cbmNvbnN0IGVxdWFsaXR5Tm9kZXNWZXJpZmllciA9IG5ldyBFcXVhbGl0eU5vZGVzVmVyaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZXF1YWxpdHlOb2Rlc1ZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbIkVxdWFsaXR5Tm9kZXNWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwiY29sbGVjdGlvbnMiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwicnVsZU5hbWVBIiwiZ2V0UnVsZU5hbWUiLCJydWxlTmFtZUIiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlQSIsInRlcm1Ob2RlQiIsInRlcm1Ob2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtTm9kZSIsImxlZnRUZXJtTm9kZSIsInJpZ2h0VGVybU5vZGUiLCJ0ZXJtTm9kZXNFcXVhbCIsImFyZVRlcm1Ob2Rlc0VxdWFsIiwidmVyaWZpZWRBaGVhZCIsIk5vZGVzVmVyaWZpZXIiLCJlcXVhbGl0eU5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTZEQTs7O2VBQUE7Ozs0REEzRDBCO3lCQUVLOzBCQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEMsSUFBQSxBQUFNQSxzQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGdCQUFnQixFQUFFQyxnQkFBZ0IsRUFBRUMsV0FBVyxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7Z0JBQzlGLElBQUlDLDBCQUEwQjtnQkFFOUIsSUFBTUMsWUFBWU4saUJBQWlCTyxXQUFXLElBQ3hDQyxZQUFZUCxpQkFBaUJNLFdBQVcsSUFBSSxHQUFHO2dCQUVyRCxJQUFJRCxjQUFjRSxXQUFXO29CQUMzQixPQUFRRjt3QkFDTixLQUFLRyx5QkFBYzs0QkFBRTtnQ0FDbkIsSUFBTUMsWUFBWVYsa0JBQ1pXLFlBQVlWLGtCQUNaVyxtQkFBbUIsSUFBSSxDQUFDQyxjQUFjLENBQUNILFdBQVdDLFdBQVdULGFBQWFDLGNBQWNDO2dDQUU5RkMsMEJBQTBCTyxrQkFBbUIsR0FBRztnQ0FFaEQ7NEJBQ0Y7d0JBRUE7NEJBQVM7Z0NBQ1BQLDBCQUEwQix1QkFwQjlCUCxrQ0FvQm9DQyx5QkFBTixJQUFLLGFBQXVCQyxrQkFBa0JDLGtCQUFrQkMsYUFBYUMsY0FBY0M7Z0NBRXJIOzRCQUNGO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztZQUVBUSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUgsU0FBUyxFQUFFQyxTQUFTLEVBQUVULFdBQVcsRUFBRUMsWUFBWSxFQUFFQyxXQUFXO2dCQUN6RSxJQUFJUTtnQkFFSixJQUFNRSxlQUFlSixXQUNmSyxnQkFBZ0JKLFdBQ2hCSyxpQkFBaUJDLElBQUFBLDZCQUFpQixFQUFDSCxjQUFjQyxlQUFlYjtnQkFFdEUsSUFBSWMsZ0JBQWdCO29CQUNsQixJQUFNRSxnQkFBZ0JkO29CQUV0QlEsbUJBQW1CTSxlQUFnQixHQUFHO2dCQUN4QyxPQUFPO29CQUNMLElBQU1sQixtQkFBbUJVLFdBQ25CVCxtQkFBbUJVLFdBQVcsR0FBRztvQkFFdkNDLG1CQUFtQix1QkE3Q25CZCxrQ0E2Q3lCQyx5QkFBTixJQUFLLGFBQXVCQyxrQkFBa0JDLGtCQUFrQkMsYUFBYUMsY0FBY0M7Z0JBQ2hIO2dCQUVBLE9BQU9RO1lBQ1Q7OztXQWpESWQ7RUFBOEJxQixjQUFhO0FBb0RqRCxJQUFNQyx3QkFBd0IsSUFBSXRCO0lBRWxDLFdBQWVzQiJ9
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy9lcXVhbGl0eS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgYXJlVGVybU5vZGVzRXF1YWwgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2VxdWl2YWxlbmNlc1wiO1xuXG5jbGFzcyBFcXVhbGl0eU5vZGVzVmVyaWZpZXIgZXh0ZW5kcyBOb2Rlc1ZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcnVsZU5hbWVBID0gbm9uVGVybWluYWxOb2RlQS5nZXRSdWxlTmFtZSgpLCAvLy9cbiAgICAgICAgICBydWxlTmFtZUIgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgaWYgKHJ1bGVOYW1lQSA9PT0gcnVsZU5hbWVCKSB7XG4gICAgICBzd2l0Y2ggKHJ1bGVOYW1lQSkge1xuICAgICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgICAgY29uc3QgdGVybU5vZGVBID0gbm9uVGVybWluYWxOb2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGVCID0gbm9uVGVybWluYWxOb2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VGVybU5vZGUodGVybU5vZGVBLCB0ZXJtTm9kZUIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3VwZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVRlcm1Ob2RlKHRlcm1Ob2RlQSwgdGVybU5vZGVCLCBlcXVpdmFsZW5jZXMsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybU5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IGxlZnRUZXJtTm9kZSA9IHRlcm1Ob2RlQSwgLy8vXG4gICAgICAgICAgcmlnaHRUZXJtTm9kZSA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgdGVybU5vZGVzRXF1YWwgPSBhcmVUZXJtTm9kZXNFcXVhbChsZWZ0VGVybU5vZGUsIHJpZ2h0VGVybU5vZGUsIGVxdWl2YWxlbmNlcyk7XG5cbiAgICBpZiAodGVybU5vZGVzRXF1YWwpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB2ZXJpZnlBaGVhZCgpO1xuXG4gICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdmVyaWZpZWRBaGVhZDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gdGVybU5vZGVBLCAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSB0ZXJtTm9kZUI7IC8vL1xuXG4gICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gc3VwZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1Ob2RlVmVyaWZpZWQ7XG4gIH1cbn1cblxuY29uc3QgZXF1YWxpdHlOb2Rlc1ZlcmlmaWVyID0gbmV3IEVxdWFsaXR5Tm9kZXNWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBlcXVhbGl0eU5vZGVzVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsiRXF1YWxpdHlOb2Rlc1ZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJlcXVpdmFsZW5jZXMiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwicnVsZU5hbWVBIiwiZ2V0UnVsZU5hbWUiLCJydWxlTmFtZUIiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlQSIsInRlcm1Ob2RlQiIsInRlcm1Ob2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtTm9kZSIsImxlZnRUZXJtTm9kZSIsInJpZ2h0VGVybU5vZGUiLCJ0ZXJtTm9kZXNFcXVhbCIsImFyZVRlcm1Ob2Rlc0VxdWFsIiwidmVyaWZpZWRBaGVhZCIsIk5vZGVzVmVyaWZpZXIiLCJlcXVhbGl0eU5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTZEQTs7O2VBQUE7Ozs0REEzRDBCO3lCQUVLOzRCQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEMsSUFBQSxBQUFNQSxzQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGdCQUFnQixFQUFFQyxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFQyxZQUFZLEVBQUVDLFdBQVc7Z0JBQy9GLElBQUlDLDBCQUEwQjtnQkFFOUIsSUFBTUMsWUFBWU4saUJBQWlCTyxXQUFXLElBQ3hDQyxZQUFZUCxpQkFBaUJNLFdBQVcsSUFBSSxHQUFHO2dCQUVyRCxJQUFJRCxjQUFjRSxXQUFXO29CQUMzQixPQUFRRjt3QkFDTixLQUFLRyx5QkFBYzs0QkFBRTtnQ0FDbkIsSUFBTUMsWUFBWVYsa0JBQ1pXLFlBQVlWLGtCQUNaVyxtQkFBbUIsSUFBSSxDQUFDQyxjQUFjLENBQUNILFdBQVdDLFdBQVdULGNBQWNDLGNBQWNDO2dDQUUvRkMsMEJBQTBCTyxrQkFBbUIsR0FBRztnQ0FFaEQ7NEJBQ0Y7d0JBRUE7NEJBQVM7Z0NBQ1BQLDBCQUEwQix1QkFwQjlCUCxrQ0FvQm9DQyx5QkFBTixJQUFLLGFBQXVCQyxrQkFBa0JDLGtCQUFrQkMsY0FBY0MsY0FBY0M7Z0NBRXRIOzRCQUNGO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztZQUVBUSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUgsU0FBUyxFQUFFQyxTQUFTLEVBQUVULFlBQVksRUFBRUMsWUFBWSxFQUFFQyxXQUFXO2dCQUMxRSxJQUFJUTtnQkFFSixJQUFNRSxlQUFlSixXQUNmSyxnQkFBZ0JKLFdBQ2hCSyxpQkFBaUJDLElBQUFBLCtCQUFpQixFQUFDSCxjQUFjQyxlQUFlYjtnQkFFdEUsSUFBSWMsZ0JBQWdCO29CQUNsQixJQUFNRSxnQkFBZ0JkO29CQUV0QlEsbUJBQW1CTSxlQUFnQixHQUFHO2dCQUN4QyxPQUFPO29CQUNMLElBQU1sQixtQkFBbUJVLFdBQ25CVCxtQkFBbUJVLFdBQVcsR0FBRztvQkFFdkNDLG1CQUFtQix1QkE3Q25CZCxrQ0E2Q3lCQyx5QkFBTixJQUFLLGFBQXVCQyxrQkFBa0JDLGtCQUFrQkMsY0FBY0MsY0FBY0M7Z0JBQ2pIO2dCQUVBLE9BQU9RO1lBQ1Q7OztXQWpESWQ7RUFBOEJxQixjQUFhO0FBb0RqRCxJQUFNQyx3QkFBd0IsSUFBSXRCO0lBRWxDLFdBQWVzQiJ9
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _local = /*#__PURE__*/ _interop_require_default(require("../../context/local"));
12
12
  var _nodes = /*#__PURE__*/ _interop_require_default(require("../../verifier/nodes"));
13
+ var _termForVariable = /*#__PURE__*/ _interop_require_default(require("../../substitution/termForVariable"));
13
14
  var _intrinsiclevel = /*#__PURE__*/ _interop_require_default(require("../../mixins/nodesVerifier/intrinsiclevel"));
14
15
  var _statementForMetavariable = /*#__PURE__*/ _interop_require_default(require("../../substitution/statementForMetavariable"));
15
16
  var _query = require("../../utilities/query");
@@ -127,7 +128,7 @@ function _create_super(Derived) {
127
128
  return _possible_constructor_return(this, result);
128
129
  };
129
130
  }
130
- var variableNodeQuery = (0, _query.nodeQuery)("/term/variable!"), statementNodeQuery = (0, _query.nodeQuery)("/metaArgument/statement"), metavariableNodeQuery = (0, _query.nodeQuery)("/metastatement/metavariable!");
131
+ var termNodeQuery = (0, _query.nodeQuery)("/substitution/term!"), variableNodeQuery = (0, _query.nodeQuery)("/*/variable!"), statementNodeQuery = (0, _query.nodeQuery)("/metaArgument/statement"), metavariableNodeQuery = (0, _query.nodeQuery)("/metastatement/metavariable!"), substitutionNodeQuery = (0, _query.nodeQuery)("/metastatement/substitution!");
131
132
  var MetaLevelToIntrinsicLevelNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
132
133
  _inherits(MetaLevelToIntrinsicLevelNodesVerifier, NodesVerifier);
133
134
  var _super = _create_super(MetaLevelToIntrinsicLevelNodesVerifier);
@@ -190,8 +191,17 @@ var MetaLevelToIntrinsicLevelNodesVerifier = /*#__PURE__*/ function(NodesVerifie
190
191
  var metaArgumentNodeVerified = false;
191
192
  var statementNodeB = statementNodeQuery(metaArgumentNodeB), metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
192
193
  if (metavariableNodeA !== null && statementNodeB !== null) {
193
- var metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
194
- metaArgumentNodeVerified = metavariableNodeVerified; ///
194
+ var substitutionNode = substitutionNodeQuery(metastatementNodeA);
195
+ if (substitutionNode !== null) {
196
+ var variableNode = variableNodeQuery(substitutionNode), variable = fileContextA.findVariableByVariableNode(variableNode);
197
+ if (variable !== null) {
198
+ var termNode = termNodeQuery(substitutionNode);
199
+ debugger;
200
+ }
201
+ } else {
202
+ var metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
203
+ metaArgumentNodeVerified = metavariableNodeVerified; ///
204
+ }
195
205
  }
196
206
  return metaArgumentNodeVerified;
197
207
  }
@@ -221,8 +231,14 @@ var MetaLevelToIntrinsicLevelNodesVerifier = /*#__PURE__*/ function(NodesVerifie
221
231
  key: "verifyStatementNode",
222
232
  value: function verifyStatementNode(metastatementNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead) {
223
233
  var statementNodeVerified;
224
- var nonTerminalNodeA = metastatementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, childNodesB = nonTerminalNodeBChildNodes, childNodesVerified = _get(_get_prototype_of(MetaLevelToIntrinsicLevelNodesVerifier.prototype), "verifyChildNodes", this).call(this, childNodesA, childNodesB, substitutions, fileContextA, localContextB, verifyAhead);
225
- statementNodeVerified = childNodesVerified; ///
234
+ var metavariableNodeA = metavariableNodeQuery(metastatementNodeA);
235
+ if (metavariableNodeA !== null) {
236
+ var metavariableNodeVerified = this.verifyMetavariableNode(metavariableNodeA, statementNodeB, substitutions, fileContextA, localContextB, verifyAhead);
237
+ statementNodeVerified = metavariableNodeVerified; ///
238
+ } else {
239
+ var nonTerminalNodeA = metastatementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, childNodesB = nonTerminalNodeBChildNodes, childNodesVerified = _get(_get_prototype_of(MetaLevelToIntrinsicLevelNodesVerifier.prototype), "verifyChildNodes", this).call(this, childNodesA, childNodesB, substitutions, fileContextA, localContextB, verifyAhead);
240
+ statementNodeVerified = childNodesVerified; ///
241
+ }
226
242
  return statementNodeVerified;
227
243
  }
228
244
  },
@@ -254,4 +270,4 @@ Object.assign(MetaLevelToIntrinsicLevelNodesVerifier.prototype, _intrinsiclevel.
254
270
  var metaLevelToIntrinsicLevelNodesVerifier = new MetaLevelToIntrinsicLevelNodesVerifier();
255
271
  var _default = metaLevelToIntrinsicLevelNodesVerifier;
256
272
 
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy9tZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbm9kZXNcIjtcbmltcG9ydCBpbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXJNaXhpbnMgZnJvbSBcIi4uLy4uL21peGlucy9ub2Rlc1ZlcmlmaWVyL2ludHJpbnNpY2xldmVsXCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLCBTVEFURU1FTlRfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSwgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFBcmd1bWVudC9zdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9tZXRhdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBNZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllciBleHRlbmRzIE5vZGVzVmVyaWZpZXIge1xuICB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKTtcblxuICAgIHN3aXRjaCAobm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lKSB7XG4gICAgICBjYXNlIE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGVybU5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5TWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSkge1xuICAgICAgY2FzZSBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBtZXRhQXJndW1lbnROb2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsIC8vL1xuICAgICAgICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeU1ldGFBcmd1bWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBtZXRhQXJndW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgU1RBVEVNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsICAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlTdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZWQgPSBzdGF0ZW1lbnROb2RlVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeU1ldGFBcmd1bWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBtZXRhQXJndW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGVCID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KG1ldGFBcmd1bWVudE5vZGVCKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlQSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgaWYgKChtZXRhdmFyaWFibGVOb2RlQSAhPT0gbnVsbCkgJiYgKHN0YXRlbWVudE5vZGVCICE9PSBudWxsKSkge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCA9IG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZDsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmQoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uTWF0Y2hlc01ldGF2YXJpYWJsZU5vZGVBID0gc3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlQSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25NYXRjaGVzTWV0YXZhcmlhYmxlTm9kZUEpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChzdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlQiwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHN1YnN0aXR1dGlvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZCA9IHN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZUIsIC8vL1xuICAgICAgICAgICAgc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uID0gU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uLmZyb21NZXRhdmFyaWFibGVOb2RlQW5kU3RhdGVtZW50Tm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICBzdWJzdGl0dXRpb25zLnB1c2goc3Vic3RpdHV0aW9uKTtcblxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5U3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IHN0YXRlbWVudE5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBtZXRhc3RhdGVtZW50Tm9kZUEsICAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gc3RhdGVtZW50Tm9kZUIsICAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQi5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0EgPSBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY2hpbGROb2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gc3VwZXIudmVyaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzQSwgY2hpbGROb2Rlc0IsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gY2hpbGROb2Rlc1ZlcmlmaWVkOyAgLy8vXG5cbiAgICByZXR1cm4gc3RhdGVtZW50Tm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VGVybU5vZGUodGVybU5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IHRlcm1Ob2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0UnVsZU5hbWUoKTtcblxuICAgIHN3aXRjaCAobm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lKSB7XG4gICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZUEgPSB2YXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZUEpO1xuXG4gICAgICAgIGlmICh2YXJpYWJsZU5vZGVBICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdGVybU5vZGVCID0gbm9uVGVybWluYWxOb2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgbG9jYWxDb250ZXh0QSA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHRBKSxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZU5vZGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZUEsIHRlcm1Ob2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHZhcmlhYmxlTm9kZVZlcmlmaWVkOyAvLy9cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gdGVybU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gdGVybU5vZGVCLCAvLy9cbiAgICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN1cGVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllZDsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGVybU5vZGVWZXJpZmllZDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE1ldGFMZXZlbFRvSW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyLnByb3RvdHlwZSwgaW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyTWl4aW5zKTtcblxuY29uc3QgbWV0YUxldmVsVG9JbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIgPSBuZXcgTWV0YUxldmVsVG9JbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YUxldmVsVG9JbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJNZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwic3Vic3RpdHV0aW9ucyIsImZpbGVDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIm1ldGFzdGF0ZW1lbnROb2RlQSIsIm1ldGFBcmd1bWVudE5vZGVWZXJpZmllZCIsInZlcmlmeU1ldGFzdGF0ZW1lbnROb2RlIiwiVEVSTV9SVUxFX05BTUUiLCJ0ZXJtTm9kZUEiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwidmVyaWZ5VGVybU5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZVZlcmlmaWVkIiwibm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lIiwiTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUiLCJtZXRhQXJndW1lbnROb2RlQiIsInZlcmlmeU1ldGFBcmd1bWVudE5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwic3RhdGVtZW50Tm9kZUIiLCJzdGF0ZW1lbnROb2RlVmVyaWZpZWQiLCJ2ZXJpZnlTdGF0ZW1lbnROb2RlIiwibWV0YXZhcmlhYmxlTm9kZUEiLCJtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uIiwiZmluZCIsInN1YnN0aXR1dGlvbk1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQSIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoU3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZFN0YXRlbWVudE5vZGUiLCJwdXNoIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQSIsImNoaWxkTm9kZXNCIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidmVyaWZ5Q2hpbGROb2RlcyIsInZhcmlhYmxlTm9kZUEiLCJ0ZXJtTm9kZUIiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidmFyaWFibGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZU5vZGUiLCJOb2Rlc1ZlcmlmaWVyIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiaW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyTWl4aW5zIiwibWV0YUxldmVsVG9JbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlLQTs7O2VBQUE7Ozs0REF2S3lCOzREQUNDO3FFQUNvQjsrRUFDRztxQkFFdkI7eUJBQzRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEcsSUFBTUEsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUM5QkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDLDRCQUMvQkUsd0JBQXdCRixJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQUEsQUFBTUcsdURBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUVDLGFBQWEsRUFBRUMsWUFBWSxFQUFFQyxhQUFhLEVBQUVDLFdBQVc7Z0JBQy9HLElBQUlDO2dCQUVKLElBQU1DLDJCQUEyQlAsaUJBQWlCUSxXQUFXO2dCQUU3RCxP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
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy9tZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTG9jYWxDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbm9kZXNcIjtcbmltcG9ydCBUZXJtRm9yVmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4uLy4uL3N1YnN0aXR1dGlvbi90ZXJtRm9yVmFyaWFibGVcIjtcbmltcG9ydCBpbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXJNaXhpbnMgZnJvbSBcIi4uLy4uL21peGlucy9ub2Rlc1ZlcmlmaWVyL2ludHJpbnNpY2xldmVsXCI7XG5pbXBvcnQgU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIGZyb20gXCIuLi8uLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLCBTVEFURU1FTlRfUlVMRV9OQU1FLCBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSwgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3Vic3RpdHV0aW9uL3Rlcm0hXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKi92YXJpYWJsZSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUFyZ3VtZW50L3N0YXRlbWVudFwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBzdWJzdGl0dXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXN0YXRlbWVudC9zdWJzdGl0dXRpb24hXCIpO1xuXG5jbGFzcyBNZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllciBleHRlbmRzIE5vZGVzVmVyaWZpZXIge1xuICB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKTtcblxuICAgIHN3aXRjaCAobm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lKSB7XG4gICAgICBjYXNlIE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeU1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlQSA9IG5vblRlcm1pbmFsTm9kZUEsIC8vL1xuICAgICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUZXJtTm9kZSh0ZXJtTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGVybU5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5TWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSkge1xuICAgICAgY2FzZSBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBtZXRhQXJndW1lbnROb2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsIC8vL1xuICAgICAgICAgICAgICBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeU1ldGFBcmd1bWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBtZXRhQXJndW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgbWV0YXN0YXRlbWVudE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgU1RBVEVNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnROb2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsICAvLy9cbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlTdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZWQgPSBzdGF0ZW1lbnROb2RlVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeU1ldGFBcmd1bWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGVBLCBtZXRhQXJndW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBtZXRhQXJndW1lbnROb2RlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN0YXRlbWVudE5vZGVCID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KG1ldGFBcmd1bWVudE5vZGVCKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlQSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgaWYgKChtZXRhdmFyaWFibGVOb2RlQSAhPT0gbnVsbCkgJiYgKHN0YXRlbWVudE5vZGVCICE9PSBudWxsKSkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGVRdWVyeShtZXRhc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeShzdWJzdGl0dXRpb25Ob2RlKSxcbiAgICAgICAgICAgICAgdmFyaWFibGUgPSBmaWxlQ29udGV4dEEuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgICAgICBkZWJ1Z2dlclxuXG5cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgbWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFBcmd1bWVudE5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25NYXRjaGVzTWV0YXZhcmlhYmxlTm9kZUEgPSBzdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbk1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVCLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGVNYXRjaGVzID0gc3Vic3RpdHV0aW9uLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gc3RhdGVtZW50Tm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlQiwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gPSBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRTdGF0ZW1lbnROb2RlKG1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICAgIHN1YnN0aXR1dGlvbnMucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgICBtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlTdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgc3RhdGVtZW50Tm9kZVZlcmlmaWVkO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZUEgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGVBKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOb2RlQSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIHN0YXRlbWVudE5vZGVWZXJpZmllZCA9IG1ldGF2YXJpYWJsZU5vZGVWZXJpZmllZDsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbWV0YXN0YXRlbWVudE5vZGVBLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gc3RhdGVtZW50Tm9kZUIsICAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgY2hpbGROb2Rlc0EgPSBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICBjaGlsZE5vZGVzQiA9IG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IHN1cGVyLnZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2Rlc0EsIGNoaWxkTm9kZXNCLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gY2hpbGROb2Rlc1ZlcmlmaWVkOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVRlcm1Ob2RlKHRlcm1Ob2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCB0ZXJtTm9kZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGVCLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSkge1xuICAgICAgY2FzZSBURVJNX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVBID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGVBKTtcblxuICAgICAgICBpZiAodmFyaWFibGVOb2RlQSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHRlcm1Ob2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIGxvY2FsQ29udGV4dEEgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0QSksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVOb2RlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSB2YXJpYWJsZU5vZGVWZXJpZmllZDsgLy8vXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IHRlcm1Ob2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHRBLCBsb2NhbENvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7IC8vL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm1Ob2RlVmVyaWZpZWQ7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihNZXRhTGV2ZWxUb0ludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllci5wcm90b3R5cGUsIGludHJpbnNpY0xldmVsTm9kZXNWZXJpZmllck1peGlucyk7XG5cbmNvbnN0IG1ldGFMZXZlbFRvSW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyID0gbmV3IE1ldGFMZXZlbFRvSW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGFMZXZlbFRvSW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInN1YnN0aXR1dGlvbk5vZGVRdWVyeSIsIk1ldGFMZXZlbFRvSW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJzdWJzdGl0dXRpb25zIiwiZmlsZUNvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInZlcmlmeUFoZWFkIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJub25UZXJtaW5hbE5vZGVBUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwibWV0YXN0YXRlbWVudE5vZGVBIiwibWV0YUFyZ3VtZW50Tm9kZVZlcmlmaWVkIiwidmVyaWZ5TWV0YXN0YXRlbWVudE5vZGUiLCJURVJNX1JVTEVfTkFNRSIsInRlcm1Ob2RlQSIsInRlcm1Ob2RlVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlVmVyaWZpZWQiLCJub25UZXJtaW5hbE5vZGVCUnVsZU5hbWUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIm1ldGFBcmd1bWVudE5vZGVCIiwidmVyaWZ5TWV0YUFyZ3VtZW50Tm9kZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJzdGF0ZW1lbnROb2RlQiIsInN0YXRlbWVudE5vZGVWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVOb2RlQSIsInN1YnN0aXR1dGlvbk5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidGVybU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGVOb2RlIiwic3Vic3RpdHV0aW9uIiwiZmluZCIsInN1YnN0aXR1dGlvbk1hdGNoZXNNZXRhdmFyaWFibGVOb2RlQSIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoU3RhdGVtZW50Tm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZFN0YXRlbWVudE5vZGUiLCJwdXNoIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQSIsImNoaWxkTm9kZXNCIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidmVyaWZ5Q2hpbGROb2RlcyIsInZhcmlhYmxlTm9kZUEiLCJ0ZXJtTm9kZUIiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidmFyaWFibGVOb2RlVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZU5vZGUiLCJOb2Rlc1ZlcmlmaWVyIiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiaW50cmluc2ljTGV2ZWxOb2Rlc1ZlcmlmaWVyTWl4aW5zIiwibWV0YUxldmVsVG9JbnRyaW5zaWNMZXZlbE5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1NQTs7O2VBQUE7Ozs0REFqTXlCOzREQUNDO3NFQUNjO3FFQUNNOytFQUNHO3FCQUV2Qjt5QkFDNEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0RyxJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsd0JBQzFCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUMs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
@@ -11,23 +11,33 @@ Object.defineProperty(exports, "default", {
11
11
  var _array = require("../utilities/array");
12
12
  var _constants = require("../constants");
13
13
  var _query = require("../utilities/query");
14
- var statementVariableNodesQuery = (0, _query.nodesQuery)("/statement//variable"), containmentVariableNodeQuery = (0, _query.nodeQuery)("/containment/argument/term/variable!");
15
- function verifyContainment(containmentNode, statementNode) {
14
+ var variableNodesQuery = (0, _query.nodesQuery)("/metaArgument//variable"), containmentVariableNodeQuery = (0, _query.nodeQuery)("/argument/term/variable!");
15
+ function verifyContainment(argumentNode, containmentNode, metaArgumentNode, context) {
16
16
  var containmentVerified = false;
17
- var contained = containedFromContainmendNode(containmentNode), statementVariableNodes = statementVariableNodesQuery(statementNode), containmentVariableNode = containmentVariableNodeQuery(containmentNode), containmentVariableNodeMatchesStatementVariableNode = statementVariableNodes.some(function(statementVariableNode) {
18
- var containmentVariableNodeMatchesStatementVariableNode = containmentVariableNode.match(statementVariableNode);
19
- if (containmentVariableNodeMatchesStatementVariableNode) {
20
- return true;
17
+ var containmentVariableNode = containmentVariableNodeQuery(argumentNode);
18
+ if (containmentVariableNode !== null) {
19
+ var contained = containedFromContainmentNode(containmentNode), variableNodes = variableNodesQuery(metaArgumentNode), containmentVariableNodeMatchesStatementVariableNode = variableNodes.some(function(statementVariableNode) {
20
+ var containmentVariableNodeMatchesStatementVariableNode = containmentVariableNode.match(statementVariableNode);
21
+ if (containmentVariableNodeMatchesStatementVariableNode) {
22
+ return true;
23
+ }
24
+ });
25
+ if (contained) {
26
+ if (containmentVariableNodeMatchesStatementVariableNode) {
27
+ containmentVerified = true;
28
+ }
29
+ }
30
+ if (!contained) {
31
+ if (!containmentVariableNodeMatchesStatementVariableNode) {
32
+ containmentVerified = true;
33
+ }
21
34
  }
22
- });
23
- if (contained === containmentVariableNodeMatchesStatementVariableNode) {
24
- containmentVerified = true;
25
35
  }
26
36
  return containmentVerified;
27
37
  }
28
- function containedFromContainmendNode(containmentNode) {
29
- var childNodes = containmentNode.getChildNodes(), thirdChildNode = (0, _array.third)(childNodes), terminalNode = thirdChildNode, content = terminalNode.getContent(), contained = content === _constants.CONTAINED;
38
+ function containedFromContainmentNode(containmentNode) {
39
+ var childNodes = containmentNode.getChildNodes(), secondChildNode = (0, _array.second)(childNodes), terminalNode = secondChildNode, content = terminalNode.getContent(), contained = content === _constants.CONTAINED;
30
40
  return contained;
31
41
  }
32
42
 
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbm1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHRoaXJkIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgQ09OVEFJTkVEIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3N0YXRlbWVudC8vdmFyaWFibGVcIiksXG4gICAgICBjb250YWlubWVudFZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5tZW50L2FyZ3VtZW50L3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlDb250YWlubWVudChjb250YWlubWVudE5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IGNvbnRhaW5tZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWQgPSBjb250YWluZWRGcm9tQ29udGFpbm1lbmROb2RlKGNvbnRhaW5tZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudFZhcmlhYmxlTm9kZXMgPSBzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5tZW50VmFyaWFibGVOb2RlID0gY29udGFpbm1lbnRWYXJpYWJsZU5vZGVRdWVyeShjb250YWlubWVudE5vZGUpLFxuICAgICAgICBjb250YWlubWVudFZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzLnNvbWUoKHN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5tZW50VmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSA9IGNvbnRhaW5tZW50VmFyaWFibGVOb2RlLm1hdGNoKHN0YXRlbWVudFZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgICBpZiAoY29udGFpbm1lbnRWYXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gIGlmIChjb250YWluZWQgPT09IGNvbnRhaW5tZW50VmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnRhaW5tZW50VmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRhaW5tZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIGNvbnRhaW5lZEZyb21Db250YWlubWVuZE5vZGUoY29udGFpbm1lbnROb2RlKSB7XG4gIGNvbnN0IGNoaWxkTm9kZXMgPSBjb250YWlubWVudE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICB0aGlyZENoaWxkTm9kZSA9IHRoaXJkKGNoaWxkTm9kZXMpLFxuICAgICAgICB0ZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgY29udGFpbmVkID0gKGNvbnRlbnQgPT09IENPTlRBSU5FRCk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb250YWlubWVudCIsInN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb250YWlubWVudFZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiY29udGFpbm1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsImNvbnRhaW5tZW50VmVyaWZpZWQiLCJjb250YWluZWQiLCJjb250YWluZWRGcm9tQ29udGFpbm1lbmROb2RlIiwic3RhdGVtZW50VmFyaWFibGVOb2RlcyIsImNvbnRhaW5tZW50VmFyaWFibGVOb2RlIiwiY29udGFpbm1lbnRWYXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlIiwic29tZSIsInN0YXRlbWVudFZhcmlhYmxlTm9kZSIsIm1hdGNoIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJ0aGlyZENoaWxkTm9kZSIsInRoaXJkIiwidGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJDT05UQUlORUQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBd0JBOzs7cUJBUEY7eUJBQ0k7cUJBQ1k7QUFFdEMsSUFBTUMsOEJBQThCQyxJQUFBQSxpQkFBVSxFQUFDLHlCQUN6Q0MsK0JBQStCQyxJQUFBQSxnQkFBUyxFQUFDO0FBRWhDLFNBQVNKLGtCQUFrQkssZUFBZSxFQUFFQyxhQUFhO0lBQ3RFLElBQUlDLHNCQUFzQjtJQUUxQixJQUFNQyxZQUFZQyw2QkFBNkJKLGtCQUN6Q0sseUJBQXlCVCw0QkFBNEJLLGdCQUNyREssMEJBQTBCUiw2QkFBNkJFLGtCQUN2RE8sc0RBQXNERix1QkFBdUJHLElBQUksQ0FBQyxTQUFDQztRQUNqRixJQUFNRixzREFBc0RELHdCQUF3QkksS0FBSyxDQUFDRDtRQUUxRixJQUFJRixxREFBcUQ7WUFDdkQsT0FBTztRQUNUO0lBQ0Y7SUFFTixJQUFJSixjQUFjSSxxREFBcUQ7UUFDckVMLHNCQUFzQjtJQUN4QjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTRSw2QkFBNkJKLGVBQWU7SUFDbkQsSUFBTVcsYUFBYVgsZ0JBQWdCWSxhQUFhLElBQzFDQyxpQkFBaUJDLElBQUFBLFlBQUssRUFBQ0gsYUFDdkJJLGVBQWVGLGdCQUNmRyxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDZCxZQUFhYSxZQUFZRSxvQkFBUztJQUV4QyxPQUFPZjtBQUNUIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbm1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IENPTlRBSU5FRCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhQXJndW1lbnQvL3ZhcmlhYmxlXCIpLFxuICAgICAgY29udGFpbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbm1lbnQoYXJndW1lbnROb2RlLCBjb250YWlubWVudE5vZGUsIG1ldGFBcmd1bWVudE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGNvbnRhaW5tZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBjb250YWlubWVudFZhcmlhYmxlTm9kZSA9IGNvbnRhaW5tZW50VmFyaWFibGVOb2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICBpZiAoY29udGFpbm1lbnRWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBjb250YWluZWQgPSBjb250YWluZWRGcm9tQ29udGFpbm1lbnROb2RlKGNvbnRhaW5tZW50Tm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlcyA9IHZhcmlhYmxlTm9kZXNRdWVyeShtZXRhQXJndW1lbnROb2RlKSxcbiAgICAgICAgICBjb250YWlubWVudFZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVzLnNvbWUoKHN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udGFpbm1lbnRWYXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlID0gY29udGFpbm1lbnRWYXJpYWJsZU5vZGUubWF0Y2goc3RhdGVtZW50VmFyaWFibGVOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRhaW5tZW50VmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmIChjb250YWluZWQpIHtcbiAgICAgIGlmIChjb250YWlubWVudFZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgY29udGFpbm1lbnRWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFjb250YWluZWQpIHtcbiAgICAgIGlmICghY29udGFpbm1lbnRWYXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgIGNvbnRhaW5tZW50VmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb250YWlubWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiBjb250YWluZWRGcm9tQ29udGFpbm1lbnROb2RlKGNvbnRhaW5tZW50Tm9kZSkge1xuICBjb25zdCBjaGlsZE5vZGVzID0gY29udGFpbm1lbnROb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICB0ZXJtaW5hbE5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIGNvbnRhaW5lZCA9IChjb250ZW50ID09PSBDT05UQUlORUQpO1xuXG4gIHJldHVybiBjb250YWluZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5Q29udGFpbm1lbnQiLCJ2YXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29udGFpbm1lbnRWYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImFyZ3VtZW50Tm9kZSIsImNvbnRhaW5tZW50Tm9kZSIsIm1ldGFBcmd1bWVudE5vZGUiLCJjb250ZXh0IiwiY29udGFpbm1lbnRWZXJpZmllZCIsImNvbnRhaW5tZW50VmFyaWFibGVOb2RlIiwiY29udGFpbmVkIiwiY29udGFpbmVkRnJvbUNvbnRhaW5tZW50Tm9kZSIsInZhcmlhYmxlTm9kZXMiLCJjb250YWlubWVudFZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUiLCJzb21lIiwic3RhdGVtZW50VmFyaWFibGVOb2RlIiwibWF0Y2giLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInNlY29uZENoaWxkTm9kZSIsInNlY29uZCIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiQ09OVEFJTkVEIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQXdCQTs7O3FCQVBEO3lCQUNHO3FCQUNZO0FBRXRDLElBQU1DLHFCQUFxQkMsSUFBQUEsaUJBQVUsRUFBQyw0QkFDaENDLCtCQUErQkMsSUFBQUEsZ0JBQVMsRUFBQztBQUVoQyxTQUFTSixrQkFBa0JLLFlBQVksRUFBRUMsZUFBZSxFQUFFQyxnQkFBZ0IsRUFBRUMsT0FBTztJQUNoRyxJQUFJQyxzQkFBc0I7SUFFMUIsSUFBTUMsMEJBQTBCUCw2QkFBNkJFO0lBRTdELElBQUlLLDRCQUE0QixNQUFNO1FBQ3BDLElBQU1DLFlBQVlDLDZCQUE2Qk4sa0JBQ3pDTyxnQkFBZ0JaLG1CQUFtQk0sbUJBQ25DTyxzREFBc0RELGNBQWNFLElBQUksQ0FBQyxTQUFDQztZQUN4RSxJQUFNRixzREFBc0RKLHdCQUF3Qk8sS0FBSyxDQUFDRDtZQUUxRixJQUFJRixxREFBcUQ7Z0JBQ3ZELE9BQU87WUFDVDtRQUNGO1FBRU4sSUFBSUgsV0FBVztZQUNiLElBQUlHLHFEQUFxRDtnQkFDdkRMLHNCQUFzQjtZQUN4QjtRQUNGO1FBRUEsSUFBSSxDQUFDRSxXQUFXO1lBQ2QsSUFBSSxDQUFDRyxxREFBcUQ7Z0JBQ3hETCxzQkFBc0I7WUFDeEI7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLDZCQUE2Qk4sZUFBZTtJQUNuRCxJQUFNWSxhQUFhWixnQkFBZ0JhLGFBQWEsSUFDMUNDLGtCQUFrQkMsSUFBQUEsYUFBTSxFQUFDSCxhQUN6QkksZUFBZUYsaUJBQ2ZHLFVBQVVELGFBQWFFLFVBQVUsSUFDakNiLFlBQWFZLFlBQVlFLG9CQUFTO0lBRXhDLE9BQU9kO0FBQ1QifQ==
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return verifyDefining;
9
+ }
10
+ });
11
+ var _array = require("../utilities/array");
12
+ var _constants = require("../constants");
13
+ var _query = require("../utilities/query");
14
+ var definedVariableNodeQuery = (0, _query.nodeQuery)("/argument/term/variable!");
15
+ function verifyDefining(argumentNode, definingNode, context) {
16
+ var definingVerified = false;
17
+ var definedVariableNode = definedVariableNodeQuery(argumentNode);
18
+ if (definedVariableNode !== null) {
19
+ var defined = definedFromDefiningNode(definingNode), variableNode = definedVariableNode, variableDefined = context.isVariableDefined(variableNode);
20
+ if (defined) {
21
+ if (variableDefined) {
22
+ definingVerified = true;
23
+ }
24
+ }
25
+ if (!defined) {
26
+ if (!variableDefined) {
27
+ definingVerified = true;
28
+ }
29
+ }
30
+ }
31
+ return definingVerified;
32
+ }
33
+ function definedFromDefiningNode(definingNode) {
34
+ var childNodes = definingNode.getChildNodes(), secondChildNode = (0, _array.second)(childNodes), terminalNode = secondChildNode, content = terminalNode.getContent(), defined = content === _constants.DEFINED;
35
+ return defined;
36
+ }
37
+
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVmaW5pbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNlY29uZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IERFRklORUQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRlZmluZWRWYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtL3ZhcmlhYmxlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5RGVmaW5pbmcoYXJndW1lbnROb2RlLCBkZWZpbmluZ05vZGUsIGNvbnRleHQpIHtcbiAgbGV0IGRlZmluaW5nVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBkZWZpbmVkVmFyaWFibGVOb2RlID0gZGVmaW5lZFZhcmlhYmxlTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSk7XG5cbiAgaWYgKGRlZmluZWRWYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBkZWZpbmVkID0gZGVmaW5lZEZyb21EZWZpbmluZ05vZGUoZGVmaW5pbmdOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSBkZWZpbmVkVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZURlZmluZWQgPSBjb250ZXh0LmlzVmFyaWFibGVEZWZpbmVkKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAoZGVmaW5lZCkge1xuICAgICAgaWYgKHZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICBkZWZpbmluZ1ZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWRlZmluZWQpIHtcbiAgICAgIGlmICghdmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgIGRlZmluaW5nVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZWZpbmluZ1ZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiBkZWZpbmVkRnJvbURlZmluaW5nTm9kZShkZWZpbmluZ05vZGUpIHtcbiAgY29uc3QgY2hpbGROb2RlcyA9IGRlZmluaW5nTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgdGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBkZWZpbmVkID0gKGNvbnRlbnQgPT09IERFRklORUQpO1xuXG4gIHJldHVybiBkZWZpbmVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeURlZmluaW5nIiwiZGVmaW5lZFZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiYXJndW1lbnROb2RlIiwiZGVmaW5pbmdOb2RlIiwiY29udGV4dCIsImRlZmluaW5nVmVyaWZpZWQiLCJkZWZpbmVkVmFyaWFibGVOb2RlIiwiZGVmaW5lZCIsImRlZmluZWRGcm9tRGVmaW5pbmdOb2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVEZWZpbmVkIiwiaXNWYXJpYWJsZURlZmluZWQiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsInNlY29uZENoaWxkTm9kZSIsInNlY29uZCIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiREVGSU5FRCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUF3QkE7OztxQkFORDt5QkFDQztxQkFDRTtBQUUxQixJQUFNQywyQkFBMkJDLElBQUFBLGdCQUFTLEVBQUM7QUFFNUIsU0FBU0YsZUFBZUcsWUFBWSxFQUFFQyxZQUFZLEVBQUVDLE9BQU87SUFDeEUsSUFBSUMsbUJBQW1CO0lBRXZCLElBQU1DLHNCQUFzQk4seUJBQXlCRTtJQUVyRCxJQUFJSSx3QkFBd0IsTUFBTTtRQUNoQyxJQUFNQyxVQUFVQyx3QkFBd0JMLGVBQ2xDTSxlQUFlSCxxQkFDZkksa0JBQWtCTixRQUFRTyxpQkFBaUIsQ0FBQ0Y7UUFFbEQsSUFBSUYsU0FBUztZQUNYLElBQUlHLGlCQUFpQjtnQkFDbkJMLG1CQUFtQjtZQUNyQjtRQUNGO1FBRUEsSUFBSSxDQUFDRSxTQUFTO1lBQ1osSUFBSSxDQUFDRyxpQkFBaUI7Z0JBQ3BCTCxtQkFBbUI7WUFDckI7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLHdCQUF3QkwsWUFBWTtJQUMzQyxJQUFNUyxhQUFhVCxhQUFhVSxhQUFhLElBQ3ZDQyxrQkFBa0JDLElBQUFBLGFBQU0sRUFBQ0gsYUFDekJJLGVBQWVGLGlCQUNmRyxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDWCxVQUFXVSxZQUFZRSxrQkFBTztJQUVwQyxPQUFPWjtBQUNUIn0=
@@ -2,10 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ default: function() {
8
13
  return verifyMetavariable;
14
+ },
15
+ verifyStandaloneMetavariable: function() {
16
+ return verifyStandaloneMetavariable;
9
17
  }
10
18
  });
11
19
  var _metavariable = /*#__PURE__*/ _interop_require_default(require("../metavariable"));
@@ -34,5 +42,19 @@ function verifyMetavariable(metavariableNode, metaTypeNode, fileContext) {
34
42
  }
35
43
  return metavariableVerified;
36
44
  }
45
+ function verifyStandaloneMetavariable(metavariableNode, contexct, verifyAhead) {
46
+ var standaloneMetavariableVerified = false;
47
+ var metavariableString = contexct.nodeAsString(metavariableNode);
48
+ contexct.trace("Verifying the '".concat(metavariableString, "' standalone metavariable..."), metavariableNode);
49
+ var metavariablePresent = contexct.isMetavariablePresentByMetavariableNode(metavariableNode);
50
+ if (metavariablePresent) {
51
+ var verifiedAhead = verifyAhead();
52
+ standaloneMetavariableVerified = verifiedAhead; ///
53
+ }
54
+ if (standaloneMetavariableVerified) {
55
+ contexct.debug("...verified the '".concat(metavariableString, "' standalone metavariable."), metavariableNode);
56
+ }
57
+ return standaloneMetavariableVerified;
58
+ }
37
59
 
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlKG1ldGFUeXBlTm9kZSksXG4gICAgICAgICAgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZUFuZE1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25tZW50ID0gTWV0YXZhcmlhYmxlQXNzaWdubWVudC5mcm9tTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlQXNzaWduZWQpIHtcbiAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YVR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJtZXRhdmFyaWFibGVWZXJpZmllZCIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsImRlYnVnIiwibWV0YVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSIsIm1ldGFUeXBlIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJtZXRhdmFyaWFibGUiLCJNZXRhdmFyaWFibGUiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZE1ldGFUeXBlIiwibWV0YXZhcmlhYmxlQXNzaWdubWVudCIsIk1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJmcm9tTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlQXNzaWduZWQiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7bUVBTEM7b0VBQ1U7cUJBRVU7Ozs7OztBQUU5QixTQUFTQSxtQkFBbUJDLGdCQUFnQixFQUFFQyxZQUFZLEVBQUVDLFdBQVc7SUFDcEYsSUFBSUMsdUJBQXVCO0lBRTNCLElBQU1DLHFCQUFxQkYsWUFBWUcsWUFBWSxDQUFDTDtJQUVwREUsWUFBWUksS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5CRixvQkFBbUIsc0JBQW9CSjtJQUUzRSxJQUFNTyxzQkFBc0JMLFlBQVlNLHVDQUF1QyxDQUFDUjtJQUVoRixJQUFJTyxxQkFBcUI7UUFDdkJMLFlBQVlPLEtBQUssQ0FBQyxBQUFDLHFCQUF1QyxPQUFuQkwsb0JBQW1CLDBCQUF3Qko7SUFDcEYsT0FBTztRQUNMLElBQU1VLGVBQWVDLElBQUFBLG1DQUE0QixFQUFDVixlQUM1Q1csV0FBV1YsWUFBWVcsMEJBQTBCLENBQUNILGVBQ2xESSxlQUFlQyxxQkFBWSxDQUFDQywrQkFBK0IsQ0FBQ2hCLGtCQUFrQlksV0FDOUVLLHlCQUF5QkMsc0JBQXNCLENBQUNDLGdCQUFnQixDQUFDTCxlQUNqRU0sdUJBQXVCSCx1QkFBdUJJLE1BQU0sQ0FBQ25CO1FBRTNELElBQUlrQixzQkFBc0I7WUFDeEJqQix1QkFBdUI7UUFDekI7SUFDRjtJQUVBLElBQUlBLHNCQUFzQjtRQUN4QkQsWUFBWU8sS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CTCxvQkFBbUIsb0JBQWtCSjtJQUM3RTtJQUVBLE9BQU9HO0FBQ1QifQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YXZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXZhcmlhYmxlIGZyb20gXCIuLi9tZXRhdmFyaWFibGVcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgbWV0YXZhcmlhYmxlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGlzIGFscmVhZHkgcHJlc2VudC5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlKG1ldGFUeXBlTm9kZSksXG4gICAgICAgICAgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZUFuZE1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVBc3NpZ25tZW50ID0gTWV0YXZhcmlhYmxlQXNzaWdubWVudC5mcm9tTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlQXNzaWduZWQgPSBtZXRhdmFyaWFibGVBc3NpZ25tZW50LmFzc2lnbihmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlQXNzaWduZWQpIHtcbiAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4Y3QsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBjb250ZXhjdC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29udGV4Y3QudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgc3RhbmRhbG9uZSBtZXRhdmFyaWFibGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVQcmVzZW50ID0gY29udGV4Y3QuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGVQcmVzZW50KSB7XG4gICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHZlcmlmeUFoZWFkKCk7XG5cbiAgICBzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZmllZEFoZWFkOyAvLy9cbiAgfVxuXG4gIGlmIChzdGFuZGFsb25lTWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBjb250ZXhjdC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHN0YW5kYWxvbmUgbWV0YXZhcmlhYmxlLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJ2ZXJpZnlTdGFuZGFsb25lTWV0YXZhcmlhYmxlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlTm9kZSIsImZpbGVDb250ZXh0IiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJkZWJ1ZyIsIm1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlTmFtZUZyb21NZXRhVHlwZU5vZGUiLCJtZXRhVHlwZSIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwibWV0YXZhcmlhYmxlIiwiTWV0YXZhcmlhYmxlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGVBbmRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZUFzc2lnbm1lbnQiLCJNZXRhdmFyaWFibGVBc3NpZ25tZW50IiwiZnJvbU1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUFzc2lnbmVkIiwiYXNzaWduIiwiY29udGV4Y3QiLCJ2ZXJpZnlBaGVhZCIsInN0YW5kYWxvbmVNZXRhdmFyaWFibGVWZXJpZmllZCIsInZlcmlmaWVkQWhlYWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU9BLE9BNEJDO2VBNUJ1QkE7O0lBOEJSQyw0QkFBNEI7ZUFBNUJBOzs7bUVBbkNTO29FQUNVO3FCQUVVOzs7Ozs7QUFFOUIsU0FBU0QsbUJBQW1CRSxnQkFBZ0IsRUFBRUMsWUFBWSxFQUFFQyxXQUFXO0lBQ3BGLElBQUlDLHVCQUF1QjtJQUUzQixJQUFNQyxxQkFBcUJGLFlBQVlHLFlBQVksQ0FBQ0w7SUFFcERFLFlBQVlJLEtBQUssQ0FBQyxBQUFDLGtCQUFvQyxPQUFuQkYsb0JBQW1CLHNCQUFvQko7SUFFM0UsSUFBTU8sc0JBQXNCTCxZQUFZTSx1Q0FBdUMsQ0FBQ1I7SUFFaEYsSUFBSU8scUJBQXFCO1FBQ3ZCTCxZQUFZTyxLQUFLLENBQUMsQUFBQyxxQkFBdUMsT0FBbkJMLG9CQUFtQiwwQkFBd0JKO0lBQ3BGLE9BQU87UUFDTCxJQUFNVSxlQUFlQyxJQUFBQSxtQ0FBNEIsRUFBQ1YsZUFDNUNXLFdBQVdWLFlBQVlXLDBCQUEwQixDQUFDSCxlQUNsREksZUFBZUMscUJBQVksQ0FBQ0MsK0JBQStCLENBQUNoQixrQkFBa0JZLFdBQzlFSyx5QkFBeUJDLHNCQUFzQixDQUFDQyxnQkFBZ0IsQ0FBQ0wsZUFDakVNLHVCQUF1QkgsdUJBQXVCSSxNQUFNLENBQUNuQjtRQUUzRCxJQUFJa0Isc0JBQXNCO1lBQ3hCakIsdUJBQXVCO1FBQ3pCO0lBQ0Y7SUFFQSxJQUFJQSxzQkFBc0I7UUFDeEJELFlBQVlPLEtBQUssQ0FBQyxBQUFDLG9CQUFzQyxPQUFuQkwsb0JBQW1CLG9CQUFrQko7SUFDN0U7SUFFQSxPQUFPRztBQUNUO0FBRU8sU0FBU0osNkJBQTZCQyxnQkFBZ0IsRUFBRXNCLFFBQVEsRUFBRUMsV0FBVztJQUNsRixJQUFJQyxpQ0FBaUM7SUFFckMsSUFBTXBCLHFCQUFxQmtCLFNBQVNqQixZQUFZLENBQUNMO0lBRWpEc0IsU0FBU2hCLEtBQUssQ0FBQyxBQUFDLGtCQUFvQyxPQUFuQkYsb0JBQW1CLGlDQUErQko7SUFFbkYsSUFBTU8sc0JBQXNCZSxTQUFTZCx1Q0FBdUMsQ0FBQ1I7SUFFN0UsSUFBSU8scUJBQXFCO1FBQ3ZCLElBQU1rQixnQkFBZ0JGO1FBRXRCQyxpQ0FBaUNDLGVBQWUsR0FBRztJQUNyRDtJQUVBLElBQUlELGdDQUFnQztRQUNsQ0YsU0FBU2IsS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CTCxvQkFBbUIsK0JBQTZCSjtJQUNyRjtJQUVBLE9BQU93QjtBQUNUIn0=