occam-verify-cli 0.0.982 → 0.0.984

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 (53) hide show
  1. package/lib/constants.js +5 -1
  2. package/lib/constructor/bracketed.js +2 -2
  3. package/lib/context/local.js +9 -9
  4. package/lib/frame.js +32 -29
  5. package/lib/judgement.js +4 -4
  6. package/lib/node/frame/bracketed.js +16 -0
  7. package/lib/node/statement/combinator/bracketed.js +3 -3
  8. package/lib/node/term/constructor/bracketed.js +3 -3
  9. package/lib/ocmbinator/bracketed.js +2 -2
  10. package/lib/ruleNames.js +11 -7
  11. package/lib/substitution/frameForMetavariable.js +252 -0
  12. package/lib/substitution/statementForMetavariable.js +9 -20
  13. package/lib/tokens/combinatorFrame/bracketed.js +17 -0
  14. package/lib/tokens/combinatorStatement/bracketed.js +17 -0
  15. package/lib/tokens/constructorTerm/bracketed.js +17 -0
  16. package/lib/utilities/brackets.js +22 -3
  17. package/lib/utilities/node.js +26 -22
  18. package/lib/utilities/tokens.js +18 -11
  19. package/lib/verify/assertion/contained.js +37 -34
  20. package/lib/verify/assertion/defined.js +27 -35
  21. package/lib/verify/declaration.js +3 -3
  22. package/lib/verify/frame.js +9 -8
  23. package/lib/verify/judgement.js +7 -12
  24. package/lib/verify/metavariableGivenMetaType.js +3 -6
  25. package/package.json +2 -2
  26. package/src/constants.js +1 -0
  27. package/src/constructor/bracketed.js +1 -1
  28. package/src/context/local.js +11 -12
  29. package/src/frame.js +31 -27
  30. package/src/judgement.js +1 -1
  31. package/src/node/frame/bracketed.js +9 -0
  32. package/src/node/statement/combinator/bracketed.js +3 -3
  33. package/src/node/term/constructor/bracketed.js +3 -3
  34. package/src/ocmbinator/bracketed.js +2 -2
  35. package/src/ruleNames.js +3 -2
  36. package/src/substitution/frameForMetavariable.js +183 -0
  37. package/src/substitution/statementForMetavariable.js +9 -24
  38. package/src/tokens/combinatorFrame/bracketed.js +10 -0
  39. package/src/tokens/combinatorStatement/bracketed.js +10 -0
  40. package/src/tokens/constructorTerm/bracketed.js +10 -0
  41. package/src/utilities/brackets.js +25 -1
  42. package/src/utilities/node.js +27 -28
  43. package/src/utilities/tokens.js +15 -10
  44. package/src/verify/assertion/contained.js +48 -45
  45. package/src/verify/assertion/defined.js +31 -46
  46. package/src/verify/declaration.js +8 -10
  47. package/src/verify/frame.js +11 -19
  48. package/src/verify/judgement.js +17 -26
  49. package/src/verify/metavariableGivenMetaType.js +2 -6
  50. package/lib/tokens/constructorDeclaration/bracketed.js +0 -17
  51. package/lib/tokens/unqualifiedStatement/combinator/bracketed.js +0 -17
  52. package/src/tokens/constructorDeclaration/bracketed.js +0 -10
  53. package/src/tokens/unqualifiedStatement/combinator/bracketed.js +0 -10
@@ -9,50 +9,54 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ frameNodeFromFrameString: function() {
13
+ return frameNodeFromFrameString;
14
+ },
15
+ frameNodeFromFrameTokens: function() {
16
+ return frameNodeFromFrameTokens;
17
+ },
12
18
  statementNodeFromStatementString: function() {
13
19
  return statementNodeFromStatementString;
14
20
  },
15
- statementNodeFromUnqualifiedStatementTokens: function() {
16
- return statementNodeFromUnqualifiedStatementTokens;
17
- },
18
- termNodeFromConstructorDeclarationTokens: function() {
19
- return termNodeFromConstructorDeclarationTokens;
21
+ statementNodeFromStatementTokens: function() {
22
+ return statementNodeFromStatementTokens;
20
23
  },
21
24
  termNodeFromTermString: function() {
22
25
  return termNodeFromTermString;
26
+ },
27
+ termNodeFromTermTokens: function() {
28
+ return termNodeFromTermTokens;
23
29
  }
24
30
  });
25
31
  var _occamcustomgrammars = require("occam-custom-grammars");
26
- var _query = require("../utilities/query");
27
32
  var _customGrammar = require("./customGrammar");
28
33
  var _ruleNames = require("../ruleNames");
29
34
  var _tokens = require("../utilities/tokens");
30
35
  var florenceParserFromCombinedCustomGrammar = _occamcustomgrammars.parsersUtilities.florenceParserFromCombinedCustomGrammar;
31
36
  var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromNothing)(), florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
32
- var termNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration/term!"), statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!");
33
37
  function termNodeFromTermString(termString, lexer, parser) {
34
- var constructorDeclarationTokens = (0, _tokens.constructorDeclarationTokensFromTermString)(termString, lexer), termNode = termNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser);
38
+ var termTokens = (0, _tokens.termTokensFromTermString)(termString, lexer), termNode = termNodeFromTermTokens(termTokens, parser);
35
39
  return termNode;
36
40
  }
41
+ function frameNodeFromFrameString(frameString, lexer, parser) {
42
+ var frameTokens = (0, _tokens.frameTokensFromFrameString)(frameString, lexer), frameNode = frameNodeFromFrameTokens(frameTokens, parser);
43
+ return frameNode;
44
+ }
37
45
  function statementNodeFromStatementString(statementString, lexer, parser) {
38
- var unqualifiedStatementTokens = (0, _tokens.unqualifiedStatementTokensFromStatementString)(statementString, lexer), statementNode = statementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser);
46
+ var statementTokens = (0, _tokens.statementTokensFromStatementString)(statementString, lexer), statementNode = statementNodeFromStatementTokens(statementTokens, parser);
39
47
  return statementNode;
40
48
  }
41
- function termNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser) {
42
- var constructorDeclarationNode = constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser), termNode = termNodeQuery(constructorDeclarationNode);
49
+ function termNodeFromTermTokens(termTokens, parser) {
50
+ var tokens = termTokens, ruleName = _ruleNames.TERM_RULE_NAME, termNode = nodeFromTokensRuleNameAndParser(tokens, ruleName, parser);
43
51
  return termNode;
44
52
  }
45
- function statementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
46
- var unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser), statementNode = statementNodeQuery(unqualifiedStatementNode);
47
- return statementNode;
48
- }
49
- function unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
50
- var ruleName = _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME, unqualifiedStatementNode = nodeFromTokensRuleNameAndParser(unqualifiedStatementTokens, ruleName, parser);
51
- return unqualifiedStatementNode;
53
+ function frameNodeFromFrameTokens(frameTokens, parser) {
54
+ var tokens = frameTokens, ruleName = _ruleNames.FRAME_RULE_NAME, frameNode = nodeFromTokensRuleNameAndParser(tokens, ruleName, parser);
55
+ return frameNode;
52
56
  }
53
- function constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser) {
54
- var ruleName = _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, constructorDeclarationNode = nodeFromTokensRuleNameAndParser(constructorDeclarationTokens, ruleName, parser);
55
- return constructorDeclarationNode;
57
+ function statementNodeFromStatementTokens(statementTokens, parser) {
58
+ var tokens = statementTokens, ruleName = _ruleNames.STATEMENT_RULE_NAME, statementNode = nodeFromTokensRuleNameAndParser(tokens, ruleName, parser);
59
+ return statementNode;
56
60
  }
57
61
  function nodeFromTokensRuleNameAndParser(tokens, ruleName) {
58
62
  var parser = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : florenceParser;
@@ -60,4 +64,4 @@ function nodeFromTokensRuleNameAndParser(tokens, ruleName) {
60
64
  return node;
61
65
  }
62
66
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FLCBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmcsIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdG9rZW5zXCI7XG5cbmNvbnN0IHsgZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5jb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZygpLFxuICAgICAgZmxvcmVuY2VQYXJzZXIgPSBmbG9yZW5jZVBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uL3Rlcm0hXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBsZXhlciksXG4gICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlcikge1xuICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKTtcblxuICByZXR1cm4gdGVybU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG59XG5cbmZ1bmN0aW9uIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFRva2Vucyh1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcihjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGU7XG59XG5cbmZ1bmN0aW9uIG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyID0gZmxvcmVuY2VQYXJzZXIpIHtcbiAgY29uc3QgcnVsZU1hcCA9IHBhcnNlci5nZXRSdWxlTWFwKCksXG4gICAgICAgIHJ1bGUgPSBydWxlTWFwW3J1bGVOYW1lXSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHJ1bGUpO1xuXG4gIHJldHVybiBub2RlO1xufVxuIl0sIm5hbWVzIjpbInN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nIiwic3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJ0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIiwiZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIiwiZmxvcmVuY2VQYXJzZXIiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVN0cmluZyIsImxleGVyIiwicGFyc2VyIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tVGVybVN0cmluZyIsInRlcm1Ob2RlIiwic3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnROb2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwicnVsZU5hbWUiLCJVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwibm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlciIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsInRva2VucyIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwicnVsZSIsIm5vZGUiLCJwYXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBd0JnQkEsZ0NBQWdDO2VBQWhDQTs7SUFjQUMsMkNBQTJDO2VBQTNDQTs7SUFQQUMsd0NBQXdDO2VBQXhDQTs7SUFkQUMsc0JBQXNCO2VBQXRCQTs7O21DQWZpQjtxQkFFUDs2QkFDdUI7eUJBQ2tDO3NCQUN1QjtBQUUxRyxJQUFNLEFBQUVDLDBDQUE0Q0MscUNBQWdCLENBQTVERDtBQUVSLElBQU1FLHdCQUF3QkMsSUFBQUEsK0NBQWdDLEtBQ3hEQyxpQkFBaUJKLHdDQUF3Q0U7QUFFL0QsSUFBTUcsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLGtDQUMxQkMscUJBQXFCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRTlCLFNBQVNQLHVCQUF1QlMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLE1BQU07SUFDOUQsSUFBTUMsK0JBQStCQyxJQUFBQSxrREFBMEMsRUFBQ0osWUFBWUMsUUFDdEZJLFdBQVdmLHlDQUF5Q2EsOEJBQThCRDtJQUV4RixPQUFPRztBQUNUO0FBRU8sU0FBU2pCLGlDQUFpQ2tCLGVBQWUsRUFBRUwsS0FBSyxFQUFFQyxNQUFNO0lBQzdFLElBQU1LLDZCQUE2QkMsSUFBQUEscURBQTZDLEVBQUNGLGlCQUFpQkwsUUFDNUZRLGdCQUFnQnBCLDRDQUE0Q2tCLDRCQUE0Qkw7SUFFOUYsT0FBT087QUFDVDtBQUVPLFNBQVNuQix5Q0FBeUNhLDRCQUE0QixFQUFFRCxNQUFNO0lBQzNGLElBQU1RLDZCQUE2QkMsMkRBQTJEUiw4QkFBOEJELFNBQ3RIRyxXQUFXUixjQUFjYTtJQUUvQixPQUFPTDtBQUNUO0FBRU8sU0FBU2hCLDRDQUE0Q2tCLDBCQUEwQixFQUFFTCxNQUFNO0lBQzVGLElBQU1VLDJCQUEyQkMsdURBQXVETiw0QkFBNEJMLFNBQzlHTyxnQkFBZ0JWLG1CQUFtQmE7SUFFekMsT0FBT0g7QUFDVDtBQUVBLFNBQVNJLHVEQUF1RE4sMEJBQTBCLEVBQUVMLE1BQU07SUFDaEcsSUFBTVksV0FBV0MsMENBQStCLEVBQzFDSCwyQkFBMkJJLGdDQUFnQ1QsNEJBQTRCTyxVQUFVWjtJQUV2RyxPQUFPVTtBQUNUO0FBRUEsU0FBU0QsMkRBQTJEUiw0QkFBNEIsRUFBRUQsTUFBTTtJQUN0RyxJQUFNWSxXQUFXRyw0Q0FBaUMsRUFDNUNQLDZCQUE2Qk0sZ0NBQWdDYiw4QkFBOEJXLFVBQVVaO0lBRTNHLE9BQU9RO0FBQ1Q7QUFFQSxTQUFTTSxnQ0FBZ0NFLE1BQU0sRUFBRUosUUFBUTtRQUFFWixTQUFBQSxpRUFBU047SUFDbEUsSUFBTXVCLFVBQVVqQixPQUFPa0IsVUFBVSxJQUMzQkMsT0FBT0YsT0FBTyxDQUFDTCxTQUFTLEVBQ3hCUSxPQUFPcEIsT0FBT3FCLEtBQUssQ0FBQ0wsUUFBUUc7SUFFbEMsT0FBT0M7QUFDVCJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBURVJNX1JVTEVfTkFNRSwgRlJBTUVfUlVMRV9OQU1FLCBTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgdGVybVRva2Vuc0Zyb21UZXJtU3RyaW5nLCBmcmFtZVRva2Vuc0Zyb21GcmFtZVN0cmluZywgc3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdG9rZW5zXCI7XG5cbmNvbnN0IHsgZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5jb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZygpLFxuICAgICAgZmxvcmVuY2VQYXJzZXIgPSBmbG9yZW5jZVBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbVRlcm1TdHJpbmcodGVybVN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB0ZXJtVG9rZW5zID0gdGVybVRva2Vuc0Zyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGxleGVyKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUZyb21UZXJtVG9rZW5zKHRlcm1Ub2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVOb2RlRnJvbUZyYW1lU3RyaW5nKGZyYW1lU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IGZyYW1lVG9rZW5zID0gZnJhbWVUb2tlbnNGcm9tRnJhbWVTdHJpbmcoZnJhbWVTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlRnJvbUZyYW1lVG9rZW5zKGZyYW1lVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBmcmFtZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnROb2RlRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3Qgc3RhdGVtZW50VG9rZW5zID0gc3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50VG9rZW5zKHN0YXRlbWVudFRva2VucywgcGFyc2VyKTtcblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbVRlcm1Ub2tlbnModGVybVRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHRva2VucyA9IHRlcm1Ub2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgdGVybU5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJhbWVOb2RlRnJvbUZyYW1lVG9rZW5zKGZyYW1lVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gZnJhbWVUb2tlbnMsICAvLy9cbiAgICAgICAgcnVsZU5hbWUgPSBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgIGZyYW1lTm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gZnJhbWVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhdGVtZW50Tm9kZUZyb21TdGF0ZW1lbnRUb2tlbnMoc3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gc3RhdGVtZW50VG9rZW5zLCAgLy8vXG4gICAgICAgIHJ1bGVOYW1lID0gU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZnVuY3Rpb24gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIgPSBmbG9yZW5jZVBhcnNlcikge1xuICBjb25zdCBydWxlTWFwID0gcGFyc2VyLmdldFJ1bGVNYXAoKSxcbiAgICAgICAgcnVsZSA9IHJ1bGVNYXBbcnVsZU5hbWVdLFxuICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2VucywgcnVsZSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiZnJhbWVOb2RlRnJvbUZyYW1lU3RyaW5nIiwiZnJhbWVOb2RlRnJvbUZyYW1lVG9rZW5zIiwic3RhdGVtZW50Tm9kZUZyb21TdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnROb2RlRnJvbVN0YXRlbWVudFRva2VucyIsInRlcm1Ob2RlRnJvbVRlcm1TdHJpbmciLCJ0ZXJtTm9kZUZyb21UZXJtVG9rZW5zIiwiZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIiwiZmxvcmVuY2VQYXJzZXIiLCJ0ZXJtU3RyaW5nIiwibGV4ZXIiLCJwYXJzZXIiLCJ0ZXJtVG9rZW5zIiwidGVybVRva2Vuc0Zyb21UZXJtU3RyaW5nIiwidGVybU5vZGUiLCJmcmFtZVN0cmluZyIsImZyYW1lVG9rZW5zIiwiZnJhbWVUb2tlbnNGcm9tRnJhbWVTdHJpbmciLCJmcmFtZU5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnRUb2tlbnMiLCJzdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nIiwic3RhdGVtZW50Tm9kZSIsInRva2VucyIsInJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyIiwiRlJBTUVfUlVMRV9OQU1FIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwicnVsZSIsIm5vZGUiLCJwYXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBb0JnQkEsd0JBQXdCO2VBQXhCQTs7SUFzQkFDLHdCQUF3QjtlQUF4QkE7O0lBZkFDLGdDQUFnQztlQUFoQ0E7O0lBdUJBQyxnQ0FBZ0M7ZUFBaENBOztJQXJDQUMsc0JBQXNCO2VBQXRCQTs7SUFxQkFDLHNCQUFzQjtlQUF0QkE7OzttQ0FoQ2lCOzZCQUVnQjt5QkFDb0I7c0JBQ29DO0FBRXpHLElBQU0sQUFBRUMsMENBQTRDQyxxQ0FBZ0IsQ0FBNUREO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGlCQUFpQkosd0NBQXdDRTtBQUV4RCxTQUFTSix1QkFBdUJPLFVBQVUsRUFBRUMsS0FBSyxFQUFFQyxNQUFNO0lBQzlELElBQU1DLGFBQWFDLElBQUFBLGdDQUF3QixFQUFDSixZQUFZQyxRQUNsREksV0FBV1gsdUJBQXVCUyxZQUFZRDtJQUVwRCxPQUFPRztBQUNUO0FBRU8sU0FBU2hCLHlCQUF5QmlCLFdBQVcsRUFBRUwsS0FBSyxFQUFFQyxNQUFNO0lBQ2pFLElBQU1LLGNBQWNDLElBQUFBLGtDQUEwQixFQUFDRixhQUFhTCxRQUN0RFEsWUFBWW5CLHlCQUF5QmlCLGFBQWFMO0lBRXhELE9BQU9PO0FBQ1Q7QUFFTyxTQUFTbEIsaUNBQWlDbUIsZUFBZSxFQUFFVCxLQUFLLEVBQUVDLE1BQU07SUFDN0UsSUFBTVMsa0JBQWtCQyxJQUFBQSwwQ0FBa0MsRUFBQ0YsaUJBQWlCVCxRQUN0RVksZ0JBQWdCckIsaUNBQWlDbUIsaUJBQWlCVDtJQUV4RSxPQUFPVztBQUNUO0FBRU8sU0FBU25CLHVCQUF1QlMsVUFBVSxFQUFFRCxNQUFNO0lBQ3ZELElBQU1ZLFNBQVNYLFlBQ1RZLFdBQVdDLHlCQUFjLEVBQ3pCWCxXQUFXWSxnQ0FBZ0NILFFBQVFDLFVBQVViO0lBRW5FLE9BQU9HO0FBQ1Q7QUFFTyxTQUFTZix5QkFBeUJpQixXQUFXLEVBQUVMLE1BQU07SUFDMUQsSUFBTVksU0FBU1AsYUFDVFEsV0FBV0csMEJBQWUsRUFDMUJULFlBQVlRLGdDQUFnQ0gsUUFBUUMsVUFBVWI7SUFFcEUsT0FBT087QUFDVDtBQUVPLFNBQVNqQixpQ0FBaUNtQixlQUFlLEVBQUVULE1BQU07SUFDdEUsSUFBTVksU0FBU0gsaUJBQ1RJLFdBQVdJLDhCQUFtQixFQUM5Qk4sZ0JBQWdCSSxnQ0FBZ0NILFFBQVFDLFVBQVViO0lBRXhFLE9BQU9XO0FBQ1Q7QUFFQSxTQUFTSSxnQ0FBZ0NILE1BQU0sRUFBRUMsUUFBUTtRQUFFYixTQUFBQSxpRUFBU0g7SUFDbEUsSUFBTXFCLFVBQVVsQixPQUFPbUIsVUFBVSxJQUMzQkMsT0FBT0YsT0FBTyxDQUFDTCxTQUFTLEVBQ3hCUSxPQUFPckIsT0FBT3NCLEtBQUssQ0FBQ1YsUUFBUVE7SUFFbEMsT0FBT0M7QUFDVCJ9
@@ -9,24 +9,31 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- constructorDeclarationTokensFromTermString: function() {
13
- return constructorDeclarationTokensFromTermString;
12
+ frameTokensFromFrameString: function() {
13
+ return frameTokensFromFrameString;
14
14
  },
15
- unqualifiedStatementTokensFromStatementString: function() {
16
- return unqualifiedStatementTokensFromStatementString;
15
+ statementTokensFromStatementString: function() {
16
+ return statementTokensFromStatementString;
17
+ },
18
+ termTokensFromTermString: function() {
19
+ return termTokensFromTermString;
17
20
  }
18
21
  });
19
22
  var _occamcustomgrammars = require("occam-custom-grammars");
20
23
  var _customGrammar = require("./customGrammar");
21
24
  var florenceLexerFromCombinedCustomGrammar = _occamcustomgrammars.lexersUtilities.florenceLexerFromCombinedCustomGrammar;
22
25
  var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromNothing)(), florenceLexer = florenceLexerFromCombinedCustomGrammar(combinedCustomGrammar);
23
- function constructorDeclarationTokensFromTermString(termString, lexer) {
24
- var constructorDeclarationContent = "Constructor ".concat(termString, "\n"), constructorDeclarationTokens = tokensFromContentAndLexer(constructorDeclarationContent, lexer);
25
- return constructorDeclarationTokens;
26
+ function termTokensFromTermString(termString, lexer) {
27
+ var content = termString, termTokens = tokensFromContentAndLexer(content, lexer);
28
+ return termTokens;
29
+ }
30
+ function frameTokensFromFrameString(frameString, lexer) {
31
+ var content = frameString, frameTokens = tokensFromContentAndLexer(content, lexer);
32
+ return frameTokens;
26
33
  }
27
- function unqualifiedStatementTokensFromStatementString(statementString, lexer) {
28
- var unqualifiedStatementContent = "".concat(statementString, "\n"), unqualifiedStatementTokens = tokensFromContentAndLexer(unqualifiedStatementContent, lexer);
29
- return unqualifiedStatementTokens;
34
+ function statementTokensFromStatementString(statementString, lexer) {
35
+ var content = statementString, statementTokens = tokensFromContentAndLexer(content, lexer);
36
+ return statementTokens;
30
37
  }
31
38
  function tokensFromContentAndLexer(content) {
32
39
  var lexer = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : florenceLexer;
@@ -34,4 +41,4 @@ function tokensFromContentAndLexer(content) {
34
41
  return tokens;
35
42
  }
36
43
 
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IGZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCksXG4gICAgICBmbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uQ29udGVudCA9IGBDb25zdHJ1Y3RvciAke3Rlcm1TdHJpbmd9XG5gLFxuICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb25zdHJ1Y3RvckRlY2xhcmF0aW9uQ29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgbGV4ZXIpIHtcbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRDb250ZW50ID0gYCR7c3RhdGVtZW50U3RyaW5nfVxuYCxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKHVucXVhbGlmaWVkU3RhdGVtZW50Q29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vucztcbn1cblxuZnVuY3Rpb24gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb250ZW50LCBsZXhlciA9IGZsb3JlbmNlTGV4ZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmciLCJmbG9yZW5jZUxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIiwiZmxvcmVuY2VMZXhlciIsInRlcm1TdHJpbmciLCJsZXhlciIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Db250ZW50IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsInRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIiLCJzdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudENvbnRlbnQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBV2dCQSwwQ0FBMEM7ZUFBMUNBOztJQVFBQyw2Q0FBNkM7ZUFBN0NBOzs7bUNBakJnQjs2QkFFaUI7QUFFakQsSUFBTSxBQUFFQyx5Q0FBMkNDLG9DQUFlLENBQTFERDtBQUVSLElBQU1FLHdCQUF3QkMsSUFBQUEsK0NBQWdDLEtBQ3hEQyxnQkFBZ0JKLHVDQUF1Q0U7QUFFdEQsU0FBU0osMkNBQTJDTyxVQUFVLEVBQUVDLEtBQUs7SUFDMUUsSUFBTUMsZ0NBQWdDLEFBQUMsZUFBeUIsT0FBWEYsWUFBVyxPQUUxREcsK0JBQStCQywwQkFBMEJGLCtCQUErQkQ7SUFFOUYsT0FBT0U7QUFDVDtBQUVPLFNBQVNULDhDQUE4Q1csZUFBZSxFQUFFSixLQUFLO0lBQ2xGLElBQU1LLDhCQUE4QixBQUFDLEdBQWtCLE9BQWhCRCxpQkFBZ0IsT0FFakRFLDZCQUE2QkgsMEJBQTBCRSw2QkFBNkJMO0lBRTFGLE9BQU9NO0FBQ1Q7QUFFQSxTQUFTSCwwQkFBMEJJLE9BQU87UUFBRVAsUUFBQUEsaUVBQVFGO0lBQ2xELElBQU1VLFNBQVNSLE1BQU1TLFFBQVEsQ0FBQ0Y7SUFFOUIsT0FBT0M7QUFDVCJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IGZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCksXG4gICAgICBmbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ub2tlbnNGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBjb250ZW50ID0gdGVybVN0cmluZywgLy8vXG4gICAgICAgIHRlcm1Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gdGVybVRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyYW1lVG9rZW5zRnJvbUZyYW1lU3RyaW5nKGZyYW1lU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBjb250ZW50ID0gZnJhbWVTdHJpbmcsICAvLy9cbiAgICAgICAgZnJhbWVUb2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gZnJhbWVUb2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgbGV4ZXIpIHtcbiAgY29uc3QgY29udGVudCA9IHN0YXRlbWVudFN0cmluZywgIC8vL1xuICAgICAgICBzdGF0ZW1lbnRUb2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gc3RhdGVtZW50VG9rZW5zO1xufVxuXG5mdW5jdGlvbiB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnRlbnQsIGxleGVyID0gZmxvcmVuY2VMZXhlcikge1xuICBjb25zdCB0b2tlbnMgPSBsZXhlci50b2tlbmlzZShjb250ZW50KTtcblxuICByZXR1cm4gdG9rZW5zO1xufVxuIl0sIm5hbWVzIjpbImZyYW1lVG9rZW5zRnJvbUZyYW1lU3RyaW5nIiwic3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyIsInRlcm1Ub2tlbnNGcm9tVGVybVN0cmluZyIsImZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwibGV4ZXJzVXRpbGl0aWVzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmciLCJmbG9yZW5jZUxleGVyIiwidGVybVN0cmluZyIsImxleGVyIiwiY29udGVudCIsInRlcm1Ub2tlbnMiLCJ0b2tlbnNGcm9tQ29udGVudEFuZExleGVyIiwiZnJhbWVTdHJpbmciLCJmcmFtZVRva2VucyIsInN0YXRlbWVudFN0cmluZyIsInN0YXRlbWVudFRva2VucyIsInRva2VucyIsInRva2VuaXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFrQmdCQSwwQkFBMEI7ZUFBMUJBOztJQU9BQyxrQ0FBa0M7ZUFBbENBOztJQWRBQyx3QkFBd0I7ZUFBeEJBOzs7bUNBVGdCOzZCQUVpQjtBQUVqRCxJQUFNLEFBQUVDLHlDQUEyQ0Msb0NBQWUsQ0FBMUREO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGdCQUFnQkosdUNBQXVDRTtBQUV0RCxTQUFTSCx5QkFBeUJNLFVBQVUsRUFBRUMsS0FBSztJQUN4RCxJQUFNQyxVQUFVRixZQUNWRyxhQUFhQywwQkFBMEJGLFNBQVNEO0lBRXRELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTWCwyQkFBMkJhLFdBQVcsRUFBRUosS0FBSztJQUMzRCxJQUFNQyxVQUFVRyxhQUNWQyxjQUFjRiwwQkFBMEJGLFNBQVNEO0lBRXZELE9BQU9LO0FBQ1Q7QUFFTyxTQUFTYixtQ0FBbUNjLGVBQWUsRUFBRU4sS0FBSztJQUN2RSxJQUFNQyxVQUFVSyxpQkFDVkMsa0JBQWtCSiwwQkFBMEJGLFNBQVNEO0lBRTNELE9BQU9PO0FBQ1Q7QUFFQSxTQUFTSiwwQkFBMEJGLE9BQU87UUFBRUQsUUFBQUEsaUVBQVFGO0lBQ2xELElBQU1VLFNBQVNSLE1BQU1TLFFBQVEsQ0FBQ1I7SUFFOUIsT0FBT087QUFDVCJ9
@@ -16,7 +16,7 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
- var variableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/term/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/statement[0]/metavariable"), statementVariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement[-1]//variable"), statementMetavariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement[-1]//metavariable");
19
+ var variableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/term/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/frame/statement!/metavariable!"), statementVariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement//variable"), statementMetavariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement//metavariable");
20
20
  var verifyContainedAssertionFunctions = [
21
21
  verifyDerivedContainedAssertion,
22
22
  verifyStatedContainedAssertion
@@ -47,41 +47,44 @@ function verifyDerivedContainedAssertion(containedAssertionNode, assignments, st
47
47
  if (!stated) {
48
48
  var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
49
49
  localContext.trace("Verifying the '".concat(containedAssertionString, "' derived contained assertion..."), containedAssertionNode);
50
- var assertionNegated = (0, _assertion.isAssertionNegated)(containedAssertionNode), metavariableNode = metavariableNodeQuery(containedAssertionNode), variableNode = variableNodeQuery(containedAssertionNode), negated = assertionNegated; ///
51
- if (false) {
52
- ///
53
- } else if (metavariableNode !== null) {
54
- var statementMetavariableNodes = statementMetavariableNodesQuery(containedAssertionNode), variableNodeMatchesStatementMetavariableNode = statementMetavariableNodes.some(function(statementMetavariableNode) {
55
- var variableNodeMatchesStatementMetavariableNode = metavariableNode.match(statementMetavariableNode);
56
- if (variableNodeMatchesStatementMetavariableNode) {
57
- return true;
50
+ var metavariableNode = metavariableNodeQuery(containedAssertionNode);
51
+ if (metavariableNode !== null) {
52
+ var assertionNegated = (0, _assertion.isAssertionNegated)(containedAssertionNode), variableNode = variableNodeQuery(containedAssertionNode), negated = assertionNegated; ///
53
+ if (false) {
54
+ ///
55
+ } else if (metavariableNode !== null) {
56
+ var statementMetavariableNodes = statementMetavariableNodesQuery(containedAssertionNode), variableNodeMatchesStatementMetavariableNode = statementMetavariableNodes.some(function(statementMetavariableNode) {
57
+ var variableNodeMatchesStatementMetavariableNode = metavariableNode.match(statementMetavariableNode);
58
+ if (variableNodeMatchesStatementMetavariableNode) {
59
+ return true;
60
+ }
61
+ });
62
+ if (!negated) {
63
+ if (variableNodeMatchesStatementMetavariableNode) {
64
+ derivedContainedAssertionVerified = true;
65
+ }
58
66
  }
59
- });
60
- if (!negated) {
61
- if (variableNodeMatchesStatementMetavariableNode) {
62
- derivedContainedAssertionVerified = true;
67
+ if (negated) {
68
+ if (!variableNodeMatchesStatementMetavariableNode) {
69
+ derivedContainedAssertionVerified = true;
70
+ }
63
71
  }
64
- }
65
- if (negated) {
66
- if (!variableNodeMatchesStatementMetavariableNode) {
67
- derivedContainedAssertionVerified = true;
68
- }
69
- }
70
- } else if (variableNode !== null) {
71
- var statementVariableNodes = statementVariableNodesQuery(containedAssertionNode), variableNodeMatchesStatementVariableNode = statementVariableNodes.some(function(statementVariableNode) {
72
- var variableNodeMatchesStatementVariableNode = variableNode.match(statementVariableNode);
73
- if (variableNodeMatchesStatementVariableNode) {
74
- return true;
72
+ } else if (variableNode !== null) {
73
+ var statementVariableNodes = statementVariableNodesQuery(containedAssertionNode), variableNodeMatchesStatementVariableNode = statementVariableNodes.some(function(statementVariableNode) {
74
+ var variableNodeMatchesStatementVariableNode = variableNode.match(statementVariableNode);
75
+ if (variableNodeMatchesStatementVariableNode) {
76
+ return true;
77
+ }
78
+ });
79
+ if (!negated) {
80
+ if (variableNodeMatchesStatementVariableNode) {
81
+ derivedContainedAssertionVerified = true;
82
+ }
75
83
  }
76
- });
77
- if (!negated) {
78
- if (variableNodeMatchesStatementVariableNode) {
79
- derivedContainedAssertionVerified = true;
80
- }
81
- }
82
- if (negated) {
83
- if (!variableNodeMatchesStatementVariableNode) {
84
- derivedContainedAssertionVerified = true;
84
+ if (negated) {
85
+ if (!variableNodeMatchesStatementVariableNode) {
86
+ derivedContainedAssertionVerified = true;
87
+ }
85
88
  }
86
89
  }
87
90
  }
@@ -104,4 +107,4 @@ function verifyStatedContainedAssertion(containedAssertionNode, assignments, sta
104
107
  return statedContainedAssertionVerified;
105
108
  }
106
109
 
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL2NvbnRhaW5lZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFZlcmlmaWVyIGZyb20gXCIuLi8uLi92ZXJpZmllci9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgaXNBc3NlcnRpb25OZWdhdGVkIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hc3NlcnRpb25cIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29udGFpbmVkQXNzZXJ0aW9uL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnRbMF0vbWV0YXZhcmlhYmxlXCIpLFxuICAgICAgc3RhdGVtZW50VmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vc3RhdGVtZW50Wy0xXS8vdmFyaWFibGVcIiksXG4gICAgICBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vc3RhdGVtZW50Wy0xXS8vbWV0YXZhcmlhYmxlXCIpO1xuXG5jb25zdCB2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWRDb250YWluZWRBc3NlcnRpb24sXG4gIHZlcmlmeVN0YXRlZENvbnRhaW5lZEFzc2VydGlvblxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICBzYXZlZFN0YXRlZCA9IHN0YXRlZDsgLy8vXG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBhc3NpZ25tZW50cyA9IG51bGw7IC8vL1xuXG4gIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICBjb25zdCB2ZXJpZmllZCA9IG1ldGFMZXZlbFZlcmlmaWVyLnZlcmlmeShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gIHN0YXRlZCA9IHNhdmVkU3RhdGVkOyAvLy9cblxuICBpZiAodmVyaWZpZWQpIHtcbiAgICBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZWQpIHtcbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgYXNzZXJ0aW9uTmVnYXRlZCA9IGlzQXNzZXJ0aW9uTmVnYXRlZChjb250YWluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIG5lZ2F0ZWQgPSBhc3NlcnRpb25OZWdhdGVkOyAvLy9cblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlcyA9IHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVzUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICB2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSA9IHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVzLnNvbWUoKHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlLm1hdGNoKHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKCFuZWdhdGVkKSB7XG4gICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKCF2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50VmFyaWFibGVOb2RlcyA9IHN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzLnNvbWUoKHN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlLm1hdGNoKHN0YXRlbWVudFZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICghbmVnYXRlZCkge1xuICAgICAgICBpZiAodmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKCF2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRDb250YWluZWRBc3NlcnRpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcblxuICBpZiAoc3RhdGVkKSB7XG4gICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgc3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuXG4gICAgaWYgKHN0YXRlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIiwidmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZXNRdWVyeSIsInZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsImNvbnRhaW5lZEFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInNhdmVkU3RhdGVkIiwidHJhY2UiLCJ2ZXJpZmllZCIsIm1ldGFMZXZlbFZlcmlmaWVyIiwidmVyaWZ5Iiwic29tZSIsInZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJhc3NlcnRpb25OZWdhdGVkIiwiaXNBc3NlcnRpb25OZWdhdGVkIiwibWV0YXZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsIm5lZ2F0ZWQiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlcyIsInZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlIiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSIsIm1hdGNoIiwic3RhdGVtZW50VmFyaWFibGVOb2RlcyIsInZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRWYXJpYWJsZU5vZGUiLCJzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBaUJBOzs7ZUFBd0JBOzs7Z0VBZk07eUJBRUs7cUJBQ0c7Ozs7OztBQUV0QyxJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUMsdUNBQzlCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUMsa0RBQ2xDRSw4QkFBOEJDLElBQUFBLGlCQUFVLEVBQUMsZ0RBQ3pDQyxrQ0FBa0NELElBQUFBLGlCQUFVLEVBQUM7QUFFbkQsSUFBTUUsb0NBQW9DO0lBQ3hDQztJQUNBQztDQUNE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
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL2NvbnRhaW5lZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFZlcmlmaWVyIGZyb20gXCIuLi8uLi92ZXJpZmllci9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgaXNBc3NlcnRpb25OZWdhdGVkIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hc3NlcnRpb25cIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29udGFpbmVkQXNzZXJ0aW9uL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9mcmFtZS9zdGF0ZW1lbnQhL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnQvL3ZhcmlhYmxlXCIpLFxuICAgICAgc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29udGFpbmVkQXNzZXJ0aW9uL3N0YXRlbWVudC8vbWV0YXZhcmlhYmxlXCIpO1xuXG5jb25zdCB2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWRDb250YWluZWRBc3NlcnRpb24sXG4gIHZlcmlmeVN0YXRlZENvbnRhaW5lZEFzc2VydGlvblxuXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICBzYXZlZFN0YXRlZCA9IHN0YXRlZDsgLy8vXG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBhc3NpZ25tZW50cyA9IG51bGw7IC8vL1xuXG4gIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICBjb25zdCB2ZXJpZmllZCA9IG1ldGFMZXZlbFZlcmlmaWVyLnZlcmlmeShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gIHN0YXRlZCA9IHNhdmVkU3RhdGVkOyAvLy9cblxuICBpZiAodmVyaWZpZWQpIHtcbiAgICBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlDb250YWluZWRBc3NlcnRpb25GdW5jdGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZWQpIHtcbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBhc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICBuZWdhdGVkID0gYXNzZXJ0aW9uTmVnYXRlZDsgLy8vXG5cbiAgICAgIGlmIChmYWxzZSkge1xuICAgICAgICAvLy9cbiAgICAgIH0gZWxzZSBpZiAobWV0YXZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlcyA9IHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVzUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZXMuc29tZSgoc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZS5tYXRjaChzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzU3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAodmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgICBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50VmFyaWFibGVOb2RlcyA9IHN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgICAgdmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSA9IHN0YXRlbWVudFZhcmlhYmxlTm9kZXMuc29tZSgoc3RhdGVtZW50VmFyaWFibGVOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZS5tYXRjaChzdGF0ZW1lbnRWYXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFuZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlTm9kZU1hdGNoZXNTdGF0ZW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZENvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGlmIChzdGF0ZWQpIHtcbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlZCBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG5cbiAgICBpZiAoc3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlZCBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5IiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlZENvbnRhaW5lZEFzc2VydGlvbiIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImxvY2FsQ29udGV4dCIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiY29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic2F2ZWRTdGF0ZWQiLCJ0cmFjZSIsInZlcmlmaWVkIiwibWV0YUxldmVsVmVyaWZpZXIiLCJ2ZXJpZnkiLCJzb21lIiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJhc3NlcnRpb25OZWdhdGVkIiwiaXNBc3NlcnRpb25OZWdhdGVkIiwidmFyaWFibGVOb2RlIiwibmVnYXRlZCIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVzIiwidmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlIiwibWF0Y2giLCJzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzIiwidmFyaWFibGVOb2RlTWF0Y2hlc1N0YXRlbWVudFZhcmlhYmxlTm9kZSIsInN0YXRlbWVudFZhcmlhYmxlTm9kZSIsInN0YXRlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUF3QkE7OztnRUFmTTt5QkFFSztxQkFDRzs7Ozs7O0FBRXRDLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJD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
@@ -8,9 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyDefinedAssertion;
9
9
  }
10
10
  });
11
- var _term = /*#__PURE__*/ _interop_require_default(require("../../verify/term"));
12
11
  var _metaLevel = /*#__PURE__*/ _interop_require_default(require("../../verifier/metaLevel"));
13
- var _array = require("../../utilities/array");
14
12
  var _query = require("../../utilities/query");
15
13
  var _assertion = require("../../utilities/assertion");
16
14
  var _name = require("../../utilities/name");
@@ -19,7 +17,7 @@ function _interop_require_default(obj) {
19
17
  default: obj
20
18
  };
21
19
  }
22
- var variableNodeQuery = (0, _query.nodeQuery)("/definedAssertion/term/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/definedAssertion/statement[-1]/metavariable!");
20
+ var variableNodeQuery = (0, _query.nodeQuery)("/definedAssertion/term/variable!"), metavariableNodeQuery = (0, _query.nodeQuery)("/definedAssertion/frame/statement!/metavariable!");
23
21
  var verifyDefinedAssertionFunctions = [
24
22
  verifyDerivedDefinedAssertion,
25
23
  verifyStatedDefinedAssertion
@@ -50,31 +48,34 @@ function verifyDerivedDefinedAssertion(definedAssertionNode, assignments, stated
50
48
  if (!stated) {
51
49
  var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
52
50
  localContext.trace("Verifying the '".concat(definedAssertionString, "' derived defined assertion..."), definedAssertionNode);
53
- var assertionNegated = (0, _assertion.isAssertionNegated)(definedAssertionNode), metavariableNode = metavariableNodeQuery(definedAssertionNode), variableNode = variableNodeQuery(definedAssertionNode);
54
- if (false) {
55
- ///
56
- } else if (metavariableNode !== null) {
57
- var metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariable = localContext.findMetavariableByMetavariableName(metavariableName), metavariableDefined = localContext.isMetavariableDefined(metavariable);
58
- if (!assertionNegated) {
59
- if (metavariableDefined) {
60
- derivedDefinedAssertionVerified = true;
51
+ var metavariableNode = metavariableNodeQuery(definedAssertionNode);
52
+ if (metavariableNode !== null) {
53
+ var assertionNegated = (0, _assertion.isAssertionNegated)(definedAssertionNode), variableNode = variableNodeQuery(definedAssertionNode);
54
+ if (false) {
55
+ ///
56
+ } else if (metavariableNode !== null) {
57
+ var metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariableDefinedByMetavariableName = localContext.isMetavariableDefinedByMetavariableName(metavariableName);
58
+ if (!assertionNegated) {
59
+ if (metavariableDefinedByMetavariableName) {
60
+ derivedDefinedAssertionVerified = true;
61
+ }
61
62
  }
62
- }
63
- if (assertionNegated) {
64
- if (!metavariableDefined) {
65
- derivedDefinedAssertionVerified = true;
63
+ if (assertionNegated) {
64
+ if (!metavariableDefinedByMetavariableName) {
65
+ derivedDefinedAssertionVerified = true;
66
+ }
66
67
  }
67
- }
68
- } else if (variableNode !== null) {
69
- var variable = localContext.findVariableByVariableNode(variableNode), variableDefined = localContext.isVariableDefined(variable);
70
- if (!assertionNegated) {
71
- if (variableDefined) {
72
- derivedDefinedAssertionVerified = true;
68
+ } else if (variableNode !== null) {
69
+ var variable = localContext.findVariableByVariableNode(variableNode), variableDefined = localContext.isVariableDefined(variable);
70
+ if (!assertionNegated) {
71
+ if (variableDefined) {
72
+ derivedDefinedAssertionVerified = true;
73
+ }
73
74
  }
74
- }
75
- if (assertionNegated) {
76
- if (!variableDefined) {
77
- derivedDefinedAssertionVerified = true;
75
+ if (assertionNegated) {
76
+ if (!variableDefined) {
77
+ derivedDefinedAssertionVerified = true;
78
+ }
78
79
  }
79
80
  }
80
81
  }
@@ -96,14 +97,5 @@ function verifyStatedDefinedAssertion(definedAssertionNode, assignments, stated,
96
97
  }
97
98
  return statedDefinedAssertionVerified;
98
99
  }
99
- function termFromTermNode(termNode, localContext) {
100
- var terms = [];
101
- (0, _term.default)(termNode, terms, localContext, function() {
102
- var verifiedAhead = true;
103
- return verifiedAhead;
104
- });
105
- var firstTerm = (0, _array.first)(terms), term = firstTerm; ///
106
- return term;
107
- }
108
100
 
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL2RlZmluZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IG1ldGFMZXZlbFZlcmlmaWVyIGZyb20gXCIuLi8uLi92ZXJpZmllci9tZXRhTGV2ZWxcIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBpc0Fzc2VydGlvbk5lZ2F0ZWQgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Fzc2VydGlvblwiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2RlZmluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVmaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnRbLTFdL21ldGF2YXJpYWJsZSFcIik7XG5cbmNvbnN0IHZlcmlmeURlZmluZWRBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gIHZlcmlmeURlcml2ZWREZWZpbmVkQXNzZXJ0aW9uLFxuICB2ZXJpZnlTdGF0ZWREZWZpbmVkQXNzZXJ0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIHNhdmVkU3RhdGVkID0gc3RhdGVkOyAvLy87XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBhc3NpZ25tZW50cyA9IG51bGw7IC8vL1xuXG4gIHN0YXRlZCA9IHRydWU7ICAvLy9cblxuICBjb25zdCB2ZXJpZmllZCA9IG1ldGFMZXZlbFZlcmlmaWVyLnZlcmlmeShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICBzdGF0ZWQgPSBzYXZlZFN0YXRlZDsgLy8vXG5cbiAgaWYgKHZlcmlmaWVkKSB7XG4gICAgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeURlZmluZWRBc3NlcnRpb25GdW5jdGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVmaW5lZCBhc3NlcnRpb24uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZERlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICghc3RhdGVkKSB7XG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgYXNzZXJ0aW9uTmVnYXRlZCA9IGlzQXNzZXJ0aW9uTmVnYXRlZChkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZURlZmluZWQgPSBsb2NhbENvbnRleHQuaXNNZXRhdmFyaWFibGVEZWZpbmVkKG1ldGF2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghYXNzZXJ0aW9uTmVnYXRlZCkge1xuICAgICAgICBpZiAobWV0YXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhc3NlcnRpb25OZWdhdGVkKSB7XG4gICAgICAgIGlmICghbWV0YXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICB2YXJpYWJsZURlZmluZWQgPSBsb2NhbENvbnRleHQuaXNWYXJpYWJsZURlZmluZWQodmFyaWFibGUpO1xuXG4gICAgICBpZiAoIWFzc2VydGlvbk5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhc3NlcnRpb25OZWdhdGVkKSB7XG4gICAgICAgIGlmICghdmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVmaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgZGVmaW5lZCBhc3NlcnRpb24uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWREZWZpbmVkQXNzZXJ0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcblxuICBpZiAoc3RhdGVkKSB7XG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBzdGF0ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuXG4gICAgaWYgKHN0YXRlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVmaW5lZEFzc2VydGlvblN0cmluZ30nIHN0YXRlZCBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdGVybUZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHRlcm1zID0gW107XG5cbiAgdmVyaWZ5VGVybSh0ZXJtTm9kZSwgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gIH0pO1xuXG4gIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgdGVybSA9IGZpcnN0VGVybTsgLy8vXG5cbiAgcmV0dXJuIHRlcm07XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWREZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic2F2ZWRTdGF0ZWQiLCJ0cmFjZSIsInZlcmlmaWVkIiwibWV0YUxldmVsVmVyaWZpZXIiLCJ2ZXJpZnkiLCJzb21lIiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiYXNzZXJ0aW9uTmVnYXRlZCIsImlzQXNzZXJ0aW9uTmVnYXRlZCIsIm1ldGF2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZURlZmluZWQiLCJpc01ldGF2YXJpYWJsZURlZmluZWQiLCJ2YXJpYWJsZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlIiwidmFyaWFibGVEZWZpbmVkIiwiaXNWYXJpYWJsZURlZmluZWQiLCJzdGF0ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0ZXJtRnJvbVRlcm1Ob2RlIiwidGVybU5vZGUiLCJ0ZXJtcyIsInZlcmlmeVRlcm0iLCJ2ZXJpZmllZEFoZWFkIiwiZmlyc3RUZXJtIiwiZmlyc3QiLCJ0ZXJtIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7OzsyREFoQkQ7Z0VBQ087cUJBRVI7cUJBQ0k7eUJBQ1M7b0JBQ2tCOzs7Ozs7QUFFckQsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLHFDQUM5QkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQU1FLGtDQUFrQztJQUN0Q0M7SUFDQUM7Q0FDRDtBQUVjLFNBQVNOLHVCQUF1Qk8sb0JBQW9CLEVBQUVDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ3BHLElBQUlDO0lBRUosSUFBTUMseUJBQXlCRixhQUFhRyxZQUFZLENBQUNOLHVCQUNuRE8sY0FBY0wsUUFBUSxJQUFJO0lBRWhDQyxhQUFhSyxLQUFLLENBQUMsQUFBQyxrQkFBd0MsT0FBdkJILHdCQUF1QiwyQkFBeUJMO0lBRXJGQyxjQUFjLE1BQU0sR0FBRztJQUV2QkMsU0FBUyxNQUFPLEdBQUc7SUFFbkIsSUFBTU8sV0FBV0Msa0JBQWlCLENBQUNDLE1BQU0sQ0FBQ1gsc0JBQXNCQyxhQUFhQyxRQUFRQztJQUVyRkQsU0FBU0ssYUFBYSxHQUFHO0lBRXpCLElBQUlFLFVBQVU7UUFDWkwsMkJBQTJCUCxnQ0FBZ0NlLElBQUksQ0FBQyxTQUFDQztZQUMvRCxJQUFNVCwyQkFBMkJTLCtCQUErQmIsc0JBQXNCQyxhQUFhQyxRQUFRQztZQUUzRyxJQUFJQywwQkFBMEI7Z0JBQzVCLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxJQUFJQSwwQkFBMEI7UUFDNUJELGFBQWFXLEtBQUssQ0FBQyxB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
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL2RlZmluZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBtZXRhTGV2ZWxWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbWV0YUxldmVsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGlzQXNzZXJ0aW9uTmVnYXRlZCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXNzZXJ0aW9uXCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVmaW5lZEFzc2VydGlvbi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWZpbmVkQXNzZXJ0aW9uL2ZyYW1lL3N0YXRlbWVudCEvbWV0YXZhcmlhYmxlIVwiKTtcblxuY29uc3QgdmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgdmVyaWZ5RGVyaXZlZERlZmluZWRBc3NlcnRpb24sXG4gIHZlcmlmeVN0YXRlZERlZmluZWRBc3NlcnRpb25cbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgc2F2ZWRTdGF0ZWQgPSBzdGF0ZWQ7IC8vLztcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVmaW5lZEFzc2VydGlvblN0cmluZ30nIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gIGFzc2lnbm1lbnRzID0gbnVsbDsgLy8vXG5cbiAgc3RhdGVkID0gdHJ1ZTsgIC8vL1xuXG4gIGNvbnN0IHZlcmlmaWVkID0gbWV0YUxldmVsVmVyaWZpZXIudmVyaWZ5KGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gIHN0YXRlZCA9IHNhdmVkU3RhdGVkOyAvLy9cblxuICBpZiAodmVyaWZpZWQpIHtcbiAgICBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeURlZmluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9uKGRlZmluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgc3RhdGVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkRGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKCFzdGF0ZWQpIHtcbiAgICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVmaW5lZEFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgZGVmaW5lZCBhc3NlcnRpb24uLi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBhc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGRlZmluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgICBpZiAoZmFsc2UpIHtcbiAgICAgICAgLy8vXG4gICAgICB9IGVsc2UgaWYgKG1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVmaW5lZEJ5TWV0YXZhcmlhYmxlTmFtZSA9IGxvY2FsQ29udGV4dC5pc01ldGF2YXJpYWJsZURlZmluZWRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgaWYgKCFhc3NlcnRpb25OZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZURlZmluZWRCeU1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhc3NlcnRpb25OZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCFtZXRhdmFyaWFibGVEZWZpbmVkQnlNZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgICAgICAgICBkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlRGVmaW5lZCA9IGxvY2FsQ29udGV4dC5pc1ZhcmlhYmxlRGVmaW5lZCh2YXJpYWJsZSk7XG5cbiAgICAgICAgaWYgKCFhc3NlcnRpb25OZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKHZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgICAgZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFzc2VydGlvbk5lZ2F0ZWQpIHtcbiAgICAgICAgICBpZiAoIXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgICAgZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkRGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG5cbiAgaWYgKHN0YXRlZCkge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgc3RhdGVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcblxuICAgIGlmIChzdGF0ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgZGVmaW5lZCBhc3NlcnRpb24uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWREZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic2F2ZWRTdGF0ZWQiLCJ0cmFjZSIsInZlcmlmaWVkIiwibWV0YUxldmVsVmVyaWZpZXIiLCJ2ZXJpZnkiLCJzb21lIiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwibWV0YXZhcmlhYmxlTm9kZSIsImFzc2VydGlvbk5lZ2F0ZWQiLCJpc0Fzc2VydGlvbk5lZ2F0ZWQiLCJ2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlRGVmaW5lZEJ5TWV0YXZhcmlhYmxlTmFtZSIsImlzTWV0YXZhcmlhYmxlRGVmaW5lZEJ5TWV0YXZhcmlhYmxlTmFtZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZURlZmluZWQiLCJpc1ZhcmlhYmxlRGVmaW5lZCIsInN0YXRlZERlZmluZWRBc3NlcnRpb25WZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBd0JBOzs7Z0VBZE07cUJBRUo7eUJBQ1M7b0JBQ2tCOzs7Ozs7QUFFckQsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLHFDQUM5QkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQU1FLGtDQUFrQztJQUN0Q0M7SUFDQUM7Q0FDRDtBQUVjLFNBQVNOLHVCQUF1Qk8sb0JBQW9CLEVB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
@@ -44,7 +44,7 @@ function verifyDerivedDeclaration(declarationNode, declarations, stated, localCo
44
44
  if (!stated) {
45
45
  var declarationString = localContext.nodeAsString(declarationNode);
46
46
  localContext.trace("Verifying the '".concat(declarationString, "' derived declaration..."), declarationNode);
47
- var metaType = _reference1.default, metavariables = [], metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, metavariables, localContext);
47
+ var metaType = _reference1.default, metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
48
48
  if (metavariableVerifiedGivenMetaType) {
49
49
  var verifyStatement = _shim.default.verifyStatement, _$stated = true, assignments = null, statementNode = statementNodeQuery(declarationNode), statementVerified = verifyStatement(statementNode, assignments, _$stated, localContext);
50
50
  if (statementVerified) {
@@ -64,7 +64,7 @@ function verifyStatedDeclaration(declarationNode, declarations, stated, localCon
64
64
  if (stated) {
65
65
  var declarationString = localContext.nodeAsString(declarationNode);
66
66
  localContext.trace("Verifying the '".concat(declarationString, "' stated declaration..."), declarationNode);
67
- var metaType = _reference1.default, metavariables = [], metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, metavariables, localContext);
67
+ var metaType = _reference1.default, metavariableNode = metavariableNodeQuery(declarationNode), metavariableVerifiedGivenMetaType = (0, _metavariableGivenMetaType.default)(metavariableNode, metaType, localContext);
68
68
  if (metavariableVerifiedGivenMetaType) {
69
69
  var verifyStatement = _shim.default.verifyStatement, _$stated = true, assignments = null, statementNode = statementNodeQuery(declarationNode), statementVerified = verifyStatement(statementNode, assignments, _$stated, localContext);
70
70
  if (statementVerified) {
@@ -80,4 +80,4 @@ function verifyStatedDeclaration(declarationNode, declarations, stated, localCon
80
80
  return statedDeclarationVerified;
81
81
  }
82
82
 
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuLi9yZWZlcmVuY2VcIjtcbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIlxuaW1wb3J0IHJlZmVyZW5jZU1ldGFUeXBlIGZyb20gXCIuLi9tZXRhVHlwZS9yZWZlcmVuY2VcIjtcbmltcG9ydCB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlIGZyb20gXCIuLi92ZXJpZnkvbWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWNsYXJhdGlvbi9zdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVjbGFyYXRpb24vcmVmZXJlbmNlL21ldGF2YXJpYWJsZVwiKTsgLy8vXG5cbmNvbnN0IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb25zID0gW1xuICB2ZXJpZnlEZXJpdmVkRGVjbGFyYXRpb24sXG4gIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlY2xhcmF0aW9uU3RyaW5nfScgZGVjbGFyYXRpb24uLi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuXG4gIGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb24oZGVjbGFyYXRpb25Ob2RlLCBkZWNsYXJhdGlvbnMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZWNsYXJhdGlvbi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGlmICghc3RhdGVkKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZXJpdmVkIGRlY2xhcmF0aW9uLi4uYCwgZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGNvbnN0IG1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGUsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlID0gdmVyaWZ5TWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSwgbWV0YXZhcmlhYmxlcywgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IHsgdmVyaWZ5U3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgICAgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBSZWZlcmVuY2UuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgZGVjbGFyYXRpb24gPSBEZWNsYXJhdGlvbi5mcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZShyZWZlcmVuY2UsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcblxuICAgICAgICBkZXJpdmVkRGVjbGFyYXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIGRlcml2ZWQgZGVjbGFyYXRpb24uYCwgZGVjbGFyYXRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSwgZGVjbGFyYXRpb25zLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChzdGF0ZWQpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIHN0YXRlZCBkZWNsYXJhdGlvbi4uLmAsIGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhVHlwZSA9IHJlZmVyZW5jZU1ldGFUeXBlLCAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShkZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSA9IHZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUobWV0YXZhcmlhYmxlTm9kZSwgbWV0YVR5cGUsIG1ldGF2YXJpYWJsZXMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlKSB7XG4gICAgICAgIGNvbnN0IHsgdmVyaWZ5U3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgICAgICBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IG51bGwsXG4gICAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IFJlZmVyZW5jZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBEZWNsYXJhdGlvbi5mcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZShyZWZlcmVuY2UsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcblxuICAgICAgICBzdGF0ZWREZWNsYXJhdGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBzdGF0ZWQgZGVjbGFyYXRpb24uYCwgZGVjbGFyYXRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlEZWNsYXJhdGlvbiIsInN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZERlY2xhcmF0aW9uIiwidmVyaWZ5U3RhdGVkRGVjbGFyYXRpb24iLCJkZWNsYXJhdGlvbk5vZGUiLCJkZWNsYXJhdGlvbnMiLCJzdGF0ZWQiLCJsb2NhbENvbnRleHQiLCJkZWNsYXJhdGlvblZlcmlmaWVkIiwiZGVjbGFyYXRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInNvbWUiLCJ2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkRGVjbGFyYXRpb25WZXJpZmllZCIsIm1ldGFUeXBlIiwicmVmZXJlbmNlTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSIsInZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzaGltIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJyZWZlcmVuY2UiLCJSZWZlcmVuY2UiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsImRlY2xhcmF0aW9uIiwiRGVjbGFyYXRpb24iLCJmcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZSIsInB1c2giLCJzdGF0ZWREZWNsYXJhdGlvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7OzsyREFoQlA7Z0VBQ0s7a0VBQ0U7aUVBQ007Z0ZBQ2M7cUJBRWxCOzs7Ozs7QUFFMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLDJCQUMvQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDLHdDQUF3QyxHQUFHO0FBRW5GLElBQU1FLDZCQUE2QjtJQUNqQ0M7SUFDQUM7Q0FDRDtBQUVjLFNBQVNOLGtCQUFrQk8sZUFBZSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUMzRixJQUFJQztJQUVKLElBQU1DLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUVwREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IscUJBQW1CTDtJQUUxRUksc0JB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
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVjbGFyYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuLi9zaGltXCI7XG5pbXBvcnQgUmVmZXJlbmNlIGZyb20gXCIuLi9yZWZlcmVuY2VcIjtcbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIlxuaW1wb3J0IHJlZmVyZW5jZU1ldGFUeXBlIGZyb20gXCIuLi9tZXRhVHlwZS9yZWZlcmVuY2VcIjtcbmltcG9ydCB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlIGZyb20gXCIuLi92ZXJpZnkvbWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWNsYXJhdGlvbi9zdGF0ZW1lbnRcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVjbGFyYXRpb24vcmVmZXJlbmNlL21ldGF2YXJpYWJsZVwiKTsgLy8vXG5cbmNvbnN0IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb25zID0gW1xuICB2ZXJpZnlEZXJpdmVkRGVjbGFyYXRpb24sXG4gIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG5cbiAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlY2xhcmF0aW9uU3RyaW5nfScgZGVjbGFyYXRpb24uLi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuXG4gIGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeURlY2xhcmF0aW9uRnVuY3Rpb24oZGVjbGFyYXRpb25Ob2RlLCBkZWNsYXJhdGlvbnMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZWNsYXJhdGlvbi5gLCBkZWNsYXJhdGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWREZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgc3RhdGVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkO1xuXG4gIGlmICghc3RhdGVkKSB7XG4gICAgY29uc3QgZGVjbGFyYXRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZGVjbGFyYXRpb25TdHJpbmd9JyBkZXJpdmVkIGRlY2xhcmF0aW9uLi4uYCwgZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGNvbnN0IG1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGUsIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUgPSB2ZXJpZnlNZXRhdmFyaWFibGVHaXZlbk1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSkge1xuICAgICAgY29uc3QgeyB2ZXJpZnlTdGF0ZW1lbnQgfSA9IHNoaW0sXG4gICAgICAgICAgICBzdGF0ZWQgPSB0cnVlLFxuICAgICAgICAgICAgYXNzaWdubWVudHMgPSBudWxsLFxuICAgICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShkZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IFJlZmVyZW5jZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBEZWNsYXJhdGlvbi5mcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZShyZWZlcmVuY2UsIHN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucy5wdXNoKGRlY2xhcmF0aW9uKTtcblxuICAgICAgICBkZXJpdmVkRGVjbGFyYXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWREZWNsYXJhdGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIGRlcml2ZWQgZGVjbGFyYXRpb24uYCwgZGVjbGFyYXRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSwgZGVjbGFyYXRpb25zLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChzdGF0ZWQpIHtcbiAgICBjb25zdCBkZWNsYXJhdGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZGVjbGFyYXRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWNsYXJhdGlvblN0cmluZ30nIHN0YXRlZCBkZWNsYXJhdGlvbi4uLmAsIGRlY2xhcmF0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhVHlwZSA9IHJlZmVyZW5jZU1ldGFUeXBlLCAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWRHaXZlbk1ldGFUeXBlID0gdmVyaWZ5TWV0YXZhcmlhYmxlR2l2ZW5NZXRhVHlwZShtZXRhdmFyaWFibGVOb2RlLCBtZXRhVHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZEdpdmVuTWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IHsgdmVyaWZ5U3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgICAgc3RhdGVkID0gdHJ1ZSxcbiAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gbnVsbCxcbiAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoZGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBzdGF0ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBSZWZlcmVuY2UuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gRGVjbGFyYXRpb24uZnJvbVJlZmVyZW5jZUFuZFN0YXRlbWVudE5vZGUocmVmZXJlbmNlLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBkZWNsYXJhdGlvbnMucHVzaChkZWNsYXJhdGlvbik7XG5cbiAgICAgICAgc3RhdGVkRGVjbGFyYXRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlZERlY2xhcmF0aW9uVmVyaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlY2xhcmF0aW9uU3RyaW5nfScgc3RhdGVkIGRlY2xhcmF0aW9uLmAsIGRlY2xhcmF0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZERlY2xhcmF0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVjbGFyYXRpb24iLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJ2ZXJpZnlEZWNsYXJhdGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWREZWNsYXJhdGlvbiIsInZlcmlmeVN0YXRlZERlY2xhcmF0aW9uIiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25zIiwic3RhdGVkIiwibG9jYWxDb250ZXh0IiwiZGVjbGFyYXRpb25WZXJpZmllZCIsImRlY2xhcmF0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJzb21lIiwidmVyaWZ5RGVjbGFyYXRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZERlY2xhcmF0aW9uVmVyaWZpZWQiLCJtZXRhVHlwZSIsInJlZmVyZW5jZU1ldGFUeXBlIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkR2l2ZW5NZXRhVHlwZSIsInZlcmlmeU1ldGF2YXJpYWJsZUdpdmVuTWV0YVR5cGUiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzaGltIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWQiLCJyZWZlcmVuY2UiLCJSZWZlcmVuY2UiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsImRlY2xhcmF0aW9uIiwiRGVjbGFyYXRpb24iLCJmcm9tUmVmZXJlbmNlQW5kU3RhdGVtZW50Tm9kZSIsInB1c2giLCJzdGF0ZWREZWNsYXJhdGlvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUF3QkE7OzsyREFoQlA7Z0VBQ0s7a0VBQ0U7aUVBQ007Z0ZBQ2M7cUJBRWxCOzs7Ozs7QUFFMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLDJCQUMvQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDLHdDQUF3QyxHQUFHO0FBRW5GLElBQU1FLDZCQUE2QjtJQUNqQ0M7SUFDQUM7Q0FDRDtBQUVjLFNBQVNOLGtCQUFrQk8sZUFBZSxFQUFFQyxZQUFZLEVBQUVDLE1BQU0sRUFBRUMsWUFBWTtJQUMzRixJQUFJQztJQUVKLElBQU1DLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUVwREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IscUJBQW1CTDtJQUUxRUksc0JBQXNCUCwyQkFBMkJXLElBQUksQ0FBQyxTQUFDQztRQUNyRCxJQUFNTCxzQkFBc0JLLDBCQUEwQlQsaUJBQWlCQyxjQUFjQyxRQUFRQztRQUU3RixJQUFJQyxxQkFBcUI7WUFDdkIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSxxQkFBcUI7UUFDdkJELGFBQWFPLEtBQUssQ0FBQyxBQUFDLG9CQUFxQyxPQUFsQkwsbUJBQWtCLG1CQUFpQkw7SUFDNUU7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU04seUJBQXlCRSxlQUFlLEVBQUVDLFlBQVksRUFBRUMsTUFBTSxFQUFFQyxZQUFZO0lBQ25GLElBQUlRO0lBRUosSUFBSSxDQUFDVCxRQUFRO1FBQ1gsSUFBTUcsb0JBQW9CRixhQUFhRyxZQUFZLENBQUNOO1FBRXBERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBbUMsT0FBbEJGLG1CQUFrQiw2QkFBMkJMO1FBRWxGLElBQU1ZLFdBQVdDLG1CQUFpQixFQUM1QkMsbUJBQW1CbEIsc0JBQXNCSSxrQkFDekNlLG9DQUFvQ0MsSUFBQUEsa0NBQStCLEVBQUNGLGtCQUFrQkYsVUFBVVQ7UUFFdEcsSUFBSVksbUNBQW1DO1lBQ3JDLElBQU0sQUFBRUUsa0JBQW9CQyxhQUFJLENBQXhCRCxpQkFDRmYsV0FBUyxNQUNUaUIsY0FBYyxNQUNkQyxnQkFBZ0IxQixtQkFBbUJNLGtCQUNuQ3FCLG9CQUFvQkosZ0JBQWdCRyxlQUFlRCxhQUFhakIsVUFBUUM7WUFFOUUsSUFBSWtCLG1CQUFtQjtnQkFDckIsSUFBTUMsWUFBWUMsa0JBQVMsQ0FBQ0Msb0JBQW9CLENBQUNWLG1CQUMzQ1csY0FBY0Msb0JBQVcsQ0FBQ0MsNkJBQTZCLENBQUNMLFdBQVdGO2dCQUV6RW5CLGFBQWEyQixJQUFJLENBQUNIO2dCQUVsQmQsNkJBQTZCO1lBQy9CO1FBQ0Y7UUFFQSxJQUFJQSw0QkFBNEI7WUFDOUJSLGFBQWFPLEtBQUssQ0FBQyxBQUFDLG9CQUFxQyxPQUFsQkwsbUJBQWtCLDJCQUF5Qkw7UUFDcEY7SUFDRjtJQUVBLE9BQU9XO0FBQ1Q7QUFFQSxTQUFTWix3QkFBd0JDLGVBQWUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLEVBQUVDLFlBQVk7SUFDbEYsSUFBSTBCLDRCQUE0QjtJQUVoQyxJQUFJM0IsUUFBUTtRQUNWLElBQU1HLG9CQUFvQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVwREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0IsNEJBQTBCTDtRQUVqRixJQUFNWSxXQUFXQyxtQkFBaUIsRUFDNUJDLG1CQUFtQmxCLHNCQUFzQkksa0JBQ3pDZSxvQ0FBb0NDLElBQUFBLGtDQUErQixFQUFDRixrQkFBa0JGLFVBQVVUO1FBRXRHLElBQUlZLG1DQUFtQztZQUNyQyxJQUFNLEFBQUVFLGtCQUFvQkMsYUFBSSxDQUF4QkQsaUJBQ0ZmLFdBQVMsTUFDVGlCLGNBQWMsTUFDZEMsZ0JBQWdCMUIsbUJBQW1CTSxrQkFDbkNxQixvQkFBb0JKLGdCQUFnQkcsZUFBZUQsYUFBYWpCLFVBQVFDO1lBRTlFLElBQUlrQixtQkFBbUI7Z0JBQ3JCLElBQU1DLFlBQVlDLGtCQUFTLENBQUNDLG9CQUFvQixDQUFDVixtQkFDM0NXLGNBQWNDLG9CQUFXLENBQUNDLDZCQUE2QixDQUFDTCxXQUFXRjtnQkFFekVuQixhQUFhMkIsSUFBSSxDQUFDSDtnQkFFbEJJLDRCQUE0QjtZQUM5QjtRQUNGO1FBRUEsSUFBSUEsMkJBQTJCO1lBQzdCMUIsYUFBYU8sS0FBSyxDQUFDLEFBQUMsb0JBQXFDLE9BQWxCTCxtQkFBa0IsMEJBQXdCTDtRQUNuRjtJQUNGO0lBRUEsT0FBTzZCO0FBQ1QifQ==