occam-nominal 1.0.307 → 1.0.310

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 (73) hide show
  1. package/lib/context/file/nominal.js +2 -2
  2. package/lib/element/assertion/contained.js +5 -8
  3. package/lib/element/assertion/subproof.js +12 -15
  4. package/lib/element/combinator/bracketed.js +2 -2
  5. package/lib/element/combinator.js +2 -2
  6. package/lib/element/declaration/combinator.js +3 -3
  7. package/lib/element/declaration/metavariable.js +2 -2
  8. package/lib/element/declaration/variable.js +4 -4
  9. package/lib/element/deduction.js +5 -6
  10. package/lib/element/derivation.js +3 -3
  11. package/lib/element/equality.js +3 -4
  12. package/lib/element/frame.js +5 -5
  13. package/lib/element/goal.js +5 -8
  14. package/lib/element/judgement.js +4 -5
  15. package/lib/element/label.js +5 -6
  16. package/lib/element/metavariable.js +67 -67
  17. package/lib/element/procedureCall.js +25 -25
  18. package/lib/element/proofAssertion/premise.js +26 -19
  19. package/lib/element/proofAssertion/step.js +5 -5
  20. package/lib/element/proofAssertion/supposition.js +4 -5
  21. package/lib/element/proofAssertion.js +6 -13
  22. package/lib/element/rule.js +13 -13
  23. package/lib/element/statement.js +5 -5
  24. package/lib/element/subDerivation.js +3 -3
  25. package/lib/element/subproof.js +6 -6
  26. package/lib/element/substitution/frame.js +3 -5
  27. package/lib/element/substitution/term.js +3 -5
  28. package/lib/element/term.js +22 -22
  29. package/lib/element/topLevelAssertion.js +5 -5
  30. package/lib/pass/continuationZip.js +2 -2
  31. package/lib/process/unify.js +9 -9
  32. package/lib/process/validate.js +9 -9
  33. package/lib/process/validation.js +5 -5
  34. package/lib/process/verify.js +18 -18
  35. package/lib/utilities/compression.js +137 -0
  36. package/lib/utilities/continuation.js +5 -5
  37. package/package.json +3 -3
  38. package/src/context/file/nominal.js +1 -1
  39. package/src/element/assertion/contained.js +4 -10
  40. package/src/element/assertion/subproof.js +11 -17
  41. package/src/element/combinator/bracketed.js +1 -1
  42. package/src/element/combinator.js +1 -1
  43. package/src/element/declaration/combinator.js +2 -2
  44. package/src/element/declaration/metavariable.js +1 -1
  45. package/src/element/declaration/variable.js +3 -3
  46. package/src/element/deduction.js +4 -6
  47. package/src/element/derivation.js +2 -2
  48. package/src/element/equality.js +2 -4
  49. package/src/element/frame.js +4 -4
  50. package/src/element/goal.js +4 -10
  51. package/src/element/judgement.js +4 -6
  52. package/src/element/label.js +4 -6
  53. package/src/element/metavariable.js +79 -80
  54. package/src/element/procedureCall.js +28 -29
  55. package/src/element/proofAssertion/premise.js +32 -23
  56. package/src/element/proofAssertion/step.js +5 -5
  57. package/src/element/proofAssertion/supposition.js +5 -5
  58. package/src/element/proofAssertion.js +7 -19
  59. package/src/element/rule.js +12 -12
  60. package/src/element/statement.js +6 -4
  61. package/src/element/subDerivation.js +2 -2
  62. package/src/element/subproof.js +5 -5
  63. package/src/element/substitution/frame.js +4 -6
  64. package/src/element/substitution/term.js +4 -6
  65. package/src/element/term.js +25 -27
  66. package/src/element/topLevelAssertion.js +4 -4
  67. package/src/pass/continuationZip.js +1 -1
  68. package/src/process/unify.js +8 -9
  69. package/src/process/validate.js +8 -8
  70. package/src/process/validation.js +4 -4
  71. package/src/process/verify.js +17 -17
  72. package/src/utilities/compression.js +115 -0
  73. package/src/utilities/continuation.js +4 -4
@@ -130,15 +130,15 @@ function validateStatementAsMetavariable(statement, context, continuation) {
130
130
  }
131
131
  function unifyStatementWithCombinators(statement, context, continuation) {
132
132
  const combinators = context.getCombinators();
133
- some(combinators, (combinator, continuation)=>{
133
+ return some(combinators, (combinator, continuation)=>{
134
134
  (0, _context.descend)((context)=>{
135
- combinator.unifyStatement(statement, context, continuation);
135
+ return combinator.unifyStatement(statement, context, continuation);
136
136
  }, context);
137
137
  }, continuation);
138
138
  }
139
139
  function unifyStatementWithBracketedCombinator(statement, context, continuation) {
140
140
  const bracketedCombinator = (0, _instance.bracketedCombinatorFromNothing)();
141
- bracketedCombinator.unifyStatement(statement, context, continuation);
141
+ return bracketedCombinator.unifyStatement(statement, context, continuation);
142
142
  }
143
143
  function validateStatementAsEquality(statement, context, continuation) {
144
144
  const { Equality } = _elements.default, equality = Equality.fromStatement(statement, context);
@@ -167,7 +167,7 @@ function validateStatementAsJudgement(statement, context, continuation) {
167
167
  }
168
168
  const statementString = statement.getString();
169
169
  context.trace(`Validating the '${statementString}' statement as a judgement...`);
170
- judgement.validate(context, (jusgement)=>{
170
+ judgement.validate(context, (judgement)=>{
171
171
  let validatesStatementAsJudgement = false;
172
172
  if (judgement !== null) {
173
173
  validatesStatementAsJudgement = true;
@@ -332,4 +332,4 @@ const validateStatements = [
332
332
  validateStatementAsSignatureAssertion
333
333
  ];
334
334
 
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBjaG9vc2UsIGRlc2NlbmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZywgYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9pbnN0YW5jZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVybUFzVmFyaWFibGUodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gIGlmICh2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuLi5gKTtcblxuICB2YXJpYWJsZS52YWxpZGF0ZShjb250ZXh0LCAodmFyaWFibGUpID0+IHtcbiAgICBpZiAodmFyaWFibGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odGVybVZhbGlkYXRlc0FzVmFyaWFibGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB2YXJpYWJsZS5pc1Byb3Zpc2lvbmFsKCksXG4gICAgICAgICAgcHJvdmlzaW9uYWxseVN0cmluZyA9IHByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpO1xuXG4gICAgY29udGV4dC50cmFjZShgU2V0dGluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyB0eXBlIHRvIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSR7cHJvdmlzaW9uYWxseVN0cmluZ30uYCk7XG5cbiAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS5gKTtcblxuICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odGVybVZhbGlkYXRlc0FzVmFyaWFibGUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdW5pZnlUZXJtV2l0aEdlbmVyYXRvcnModGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3JzO1xuXG4gIGNvbnN0IGdlbmVyYXRvcnMgPSBjb250ZXh0LmdldEdlbmVyYXRvcnMoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3JzID0gc29tZShnZW5lcmF0b3JzLCAoZ2VuZXJhdG9yKSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IGZhbHNlO1xuXG4gICAgY2hvb3NlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB0ZXJtVW5pZmllcyA9IGdlbmVyYXRvci51bmlmeVRlcm0odGVybSwgY29udGV4dCwgY29udGludWF0aW9uKTtcblxuICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnModGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvcnM7XG5cbiAgY29uc3QgY29uc3RydWN0b3JzID0gY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvcnMgPSBzb21lKGNvbnN0cnVjdG9ycywgKGNvbnN0cnVjdG9yKSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yID0gZmFsc2U7XG5cbiAgICBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1VbmlmaWVzID0gY29uc3RydWN0b3IudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3JzO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvcjtcblxuICBjb25zdCBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yLnVuaWZ5VGVybSh0ZXJtLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gIHJldHVybiB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3Rvcjtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCB7IE1ldGF2YXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gKTtcblxuICBjb25zdCBzdHJpY3QgPSB0cnVlOyAgLy8vXG5cbiAgbWV0YXZhcmlhYmxlLnZhbGlkYXRlKHN0cmljdCwgY29udGV4dCwgKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgIGlmIChtZXRhdmFyaWFibGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgVGVybVN1YnN0aXR1dGlvbiwgRnJhbWVTdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uID0gRnJhbWVTdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSAodGVybVN1YnN0aXR1dGlvbiB8fCBmcmFtZVN1YnN0aXR1dGlvbik7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uID09PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSA9IHRydWU7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpO1xuICAgIH1cblxuICAgIHN1YnN0aXR1dGlvbi52YWxpZGF0ZShjb250ZXh0LCAoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIG1ldGF2YXJpYWJsZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyhzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICBzb21lKGNvbWJpbmF0b3JzLCAoY29tYmluYXRvciwgY29udGludWF0aW9uKSA9PiB7XG4gICAgZGVzY2VuZCgoY29udGV4dCkgPT4ge1xuICAgICAgY29tYmluYXRvci51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGV4dCk7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aEJyYWNrZXRlZENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgYnJhY2tldGVkQ29tYmluYXRvciA9IGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tTm90aGluZygpO1xuXG4gIGJyYWNrZXRlZENvbWJpbmF0b3IudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChlcXVhbGl0eSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCk7XG5cbiAgZXF1YWxpdHkudmFsaWRhdGUoY29udGV4dCwgKGVxdWFsaXR5KSA9PiB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkgPSBmYWxzZTtcblxuICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzSnVkZ2VtZW50KHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgSnVkZ2VtZW50IH0gPSBlbGVtZW50cyxcbiAgICAgICAganVkZ2VtZW50ID0gSnVkZ2VtZW50LmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoanVkZ2VtZW50ID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNKdWRnZW1lbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmFsaWRhdGVzU3RhdGVtZW50QXNKdWRnZW1lbnQpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC4uLmApO1xuXG4gIGp1ZGdlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoanVzZ2VtZW50KSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50ID0gZmFsc2U7XG5cbiAgICBpZiAoanVkZ2VtZW50ICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc0p1ZGdlbWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgVHlwZUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHR5cGVBc3NlcnRpb24gPSBUeXBlQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAodHlwZUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbGlkYXRlc1N0YXRlbWVudEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgdHlwZUFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0LCAodHlwZUFzc2VydGlvbikgPT4ge1xuICAgIGxldCB2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmICh0eXBlQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBEZWZpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbiA9IERlZmluZWRBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbik7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICBkZWZpbmVkQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChkZWZpbmVkQXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKGRlZmluZWRBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzUHJvcGVydHlBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBQcm9wZXJ0eUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gUHJvcGVydHlBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChwcm9wZXJ0eUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbik7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcHJvcGVydHlBc3NlcnRpb24udmFsaWRhdGUoY29udGV4dCwgKHByb3BlcnR5QXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmIChwcm9wZXJ0eUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlc0FzU3VicHJvb2ZBc3NlcnRpb24pO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gIHN1YnByb29mQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChzdWJwcm9vZkFzc2VydGlvbikgPT4ge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0FzU3VicHJvb2ZBc3NlcnRpb24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNTdWJwcm9vZkFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgQ29udGFpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gQ29udGFpbmVkQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gIGNvbnRhaW5lZEFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0LCAoY29udGFpbmVkQXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBTaWduYXR1cmVBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBTaWduYXR1cmVBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzaWduYXR1cmVBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICBjb25zdCB2YWxpZGF0ZXNBU3RhdGVtZW50c1NpZ25hdHVyZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgY29udGludWF0aW9uKHZhbGlkYXRlc0FTdGF0ZW1lbnRzU2lnbmF0dXJlQXNzZXJ0aW9uKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgc2lnbmF0dXJlQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChzaWduYXR1cmVBc3NlcnRpb24pID0+IHtcbiAgICBsZXQgdmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmIChzaWduYXR1cmVBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlc0FTdGF0ZW1lbnRzU2lnbmF0dXJlQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24odmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhQcm9wZXJ0aWVzKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcztcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gY29udGV4dC5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcyA9IHNvbWUocHJvcGVydGllcywgKHByb3BlcnR5KSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5ID0gZmFsc2U7XG5cbiAgICBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1VbmlmaWVzID0gcHJvcGVydHkudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICB0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVGVybXMgPSBbXG4gIHZhbGlkYXRlVGVybUFzVmFyaWFibGUsXG4gIHVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzLFxuICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzLFxuICB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3Jcbl07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudHMgPSBbXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUsXG4gIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzLFxuICB1bmlmeVN0YXRlbWVudFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHksXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNKdWRnZW1lbnQsXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb25cbl07XG4iXSwibmFtZXMiOlsidW5pZnlUZXJtV2l0aFByb3BlcnRpZXMiLCJ2YWxpZGF0ZVN0YXRlbWVudHMiLCJ2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlIiwidmFsaWRhdGVUZXJtcyIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ0ZXJtIiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsIlZhcmlhYmxlIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsImZyb21UZXJtIiwidGVybVZhbGlkYXRlc0FzVmFyaWFibGUiLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWxpZGF0ZSIsInR5cGUiLCJnZXRUeXBlIiwidHlwZVN0cmluZyIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInByb3Zpc2lvbmFsbHlTdHJpbmciLCJwcm92aXNpb25hbGx5U3RyaW5nRnJvbVByb3Zpc2lvbmFsIiwic2V0VHlwZSIsInNldFByb3Zpc2lvbmFsIiwiZGVidWciLCJ1bmlmeVRlcm1XaXRoR2VuZXJhdG9ycyIsInRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0R2VuZXJhdG9ycyIsImdlbmVyYXRvciIsInRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciIsImNob29zZSIsInRlcm1VbmlmaWVzIiwidW5pZnlUZXJtIiwiY29tbWl0IiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyIsInRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9yIiwidGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZyIsInZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnQiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJzdHJpY3QiLCJUZXJtU3Vic3RpdHV0aW9uIiwiRnJhbWVTdWJzdGl0dXRpb24iLCJmcmFtZVN1YnN0aXR1dGlvbiIsInRlcm1TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9yIiwiZGVzY2VuZCIsInVuaWZ5U3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvciIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmciLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHkiLCJFcXVhbGl0eSIsImVxdWFsaXR5Iiwic3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSIsInZhbGlkYXRlU3RhdGVtZW50QXNKdWRnZW1lbnQiLCJKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc0p1ZGdlbWVudCIsImp1c2dlbWVudCIsInZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsIkRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVzU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uIiwiUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24iLCJTdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uIiwic3RhdGVtZW50VmFsaWRhdGVzQXNTdWJwcm9vZkFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24iLCJDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb24iLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb24iLCJTaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb24iLCJ2YWxpZGF0ZXNBU3RhdGVtZW50c1NpZ25hdHVyZUFzc2VydGlvbiIsInRlcm1VbmlmaWVzV2l0aFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiZ2V0UHJvcGVydGllcyIsInByb3BlcnR5IiwidGVybVVuaWZpZXNXaXRoUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdhZ0JBO2VBQUFBOztRQWlDSEM7ZUFBQUE7O1FBcmJHQztlQUFBQTs7UUE4YUhDO2VBQUFBOzs7Z0NBeGJ5QjtpRUFFakI7eUJBRVc7d0JBQ21COzBCQUM2Qjs7Ozs7O0FBRWhGLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLHFDQUFxQjtBQUUvQixTQUFTSCx1QkFBdUJJLElBQUksRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2hFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3ZCQyxXQUFXRixTQUFTRyxRQUFRLENBQUNOLE1BQU1DO0lBRXpDLElBQUlJLGFBQWEsTUFBTTtRQUNyQixNQUFNRSwwQkFBMEI7UUFFaEMsT0FBT0wsYUFBYUs7SUFDdEI7SUFFQSxNQUFNQyxhQUFhUixLQUFLUyxTQUFTO0lBRWpDUixRQUFRUyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsV0FBVyx1QkFBdUIsQ0FBQztJQUVwRUgsU0FBU00sUUFBUSxDQUFDVixTQUFTLENBQUNJO1FBQzFCLElBQUlBLGFBQWEsTUFBTTtZQUNyQixNQUFNRSwwQkFBMEI7WUFFaEMsT0FBT0wsYUFBYUs7UUFDdEI7UUFFQSxNQUFNSyxPQUFPUCxTQUFTUSxPQUFPLElBQ3ZCQyxhQUFhRixLQUFLSCxTQUFTLElBQzNC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
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZhbGlkYXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBjaG9vc2UsIGRlc2NlbmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZywgYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9pbnN0YW5jZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVybUFzVmFyaWFibGUodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UZXJtKHRlcm0sIGNvbnRleHQpO1xuXG4gIGlmICh2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFzIGEgdmFyaWFibGUuLi5gKTtcblxuICB2YXJpYWJsZS52YWxpZGF0ZShjb250ZXh0LCAodmFyaWFibGUpID0+IHtcbiAgICBpZiAodmFyaWFibGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odGVybVZhbGlkYXRlc0FzVmFyaWFibGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB2YXJpYWJsZS5pc1Byb3Zpc2lvbmFsKCksXG4gICAgICAgICAgcHJvdmlzaW9uYWxseVN0cmluZyA9IHByb3Zpc2lvbmFsbHlTdHJpbmdGcm9tUHJvdmlzaW9uYWwocHJvdmlzaW9uYWwpO1xuXG4gICAgY29udGV4dC50cmFjZShgU2V0dGluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyB0eXBlIHRvIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSR7cHJvdmlzaW9uYWxseVN0cmluZ30uYCk7XG5cbiAgICB0ZXJtLnNldFR5cGUodHlwZSk7XG5cbiAgICB0ZXJtLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXMgYSB2YXJpYWJsZS5gKTtcblxuICAgIGNvbnN0IHRlcm1WYWxpZGF0ZXNBc1ZhcmlhYmxlID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odGVybVZhbGlkYXRlc0FzVmFyaWFibGUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdW5pZnlUZXJtV2l0aEdlbmVyYXRvcnModGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3JzO1xuXG4gIGNvbnN0IGdlbmVyYXRvcnMgPSBjb250ZXh0LmdldEdlbmVyYXRvcnMoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3JzID0gc29tZShnZW5lcmF0b3JzLCAoZ2VuZXJhdG9yKSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IGZhbHNlO1xuXG4gICAgY2hvb3NlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB0ZXJtVW5pZmllcyA9IGdlbmVyYXRvci51bmlmeVRlcm0odGVybSwgY29udGV4dCwgY29udGludWF0aW9uKTtcblxuICAgICAgaWYgKHRlcm1VbmlmaWVzKSB7XG4gICAgICAgIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhHZW5lcmF0b3IpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhDb25zdHJ1Y3RvcnModGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvcnM7XG5cbiAgY29uc3QgY29uc3RydWN0b3JzID0gY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvcnMgPSBzb21lKGNvbnN0cnVjdG9ycywgKGNvbnN0cnVjdG9yKSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9yID0gZmFsc2U7XG5cbiAgICBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1VbmlmaWVzID0gY29uc3RydWN0b3IudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICB0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3RvciA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhDb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3JzO1xufVxuXG5mdW5jdGlvbiB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IodGVybSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGxldCB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvcjtcblxuICBjb25zdCBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yRnJvbU5vdGhpbmcoKTtcblxuICB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciA9IGJyYWNrZXRlZENvbnN0cnVjdG9yLnVuaWZ5VGVybSh0ZXJtLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gIHJldHVybiB0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3Rvcjtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc01ldGF2YXJpYWJsZShzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCB7IE1ldGF2YXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlKTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBtZXRhdmFyaWFibGUuLi5gKTtcblxuICBjb25zdCBzdHJpY3QgPSB0cnVlOyAgLy8vXG5cbiAgbWV0YXZhcmlhYmxlLnZhbGlkYXRlKHN0cmljdCwgY29udGV4dCwgKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgIGlmIChtZXRhdmFyaWFibGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzTWV0YXZhcmlhYmxlID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgVGVybVN1YnN0aXR1dGlvbiwgRnJhbWVTdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uID0gRnJhbWVTdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSAodGVybVN1YnN0aXR1dGlvbiB8fCBmcmFtZVN1YnN0aXR1dGlvbik7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uID09PSBudWxsKSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSA9IHRydWU7XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUpO1xuICAgIH1cblxuICAgIHN1YnN0aXR1dGlvbi52YWxpZGF0ZShjb250ZXh0LCAoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUgPSBmYWxzZTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSkge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIG1ldGF2YXJpYWJsZS5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXNBc01ldGF2YXJpYWJsZSk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyhzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICByZXR1cm4gc29tZShjb21iaW5hdG9ycywgKGNvbWJpbmF0b3IsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGRlc2NlbmQoKGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiBjb21iaW5hdG9yLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvcihzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBicmFja2V0ZWRDb21iaW5hdG9yID0gYnJhY2tldGVkQ29tYmluYXRvckZyb21Ob3RoaW5nKCk7XG5cbiAgcmV0dXJuIGJyYWNrZXRlZENvbWJpbmF0b3IudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBFcXVhbGl0eSB9ID0gZWxlbWVudHMsXG4gICAgICAgIGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChlcXVhbGl0eSA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSk7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCk7XG5cbiAgZXF1YWxpdHkudmFsaWRhdGUoY29udGV4dCwgKGVxdWFsaXR5KSA9PiB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkgPSBmYWxzZTtcblxuICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzRXF1YWxpdHkpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzSnVkZ2VtZW50KHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgSnVkZ2VtZW50IH0gPSBlbGVtZW50cyxcbiAgICAgICAganVkZ2VtZW50ID0gSnVkZ2VtZW50LmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoanVkZ2VtZW50ID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNKdWRnZW1lbnQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmFsaWRhdGVzU3RhdGVtZW50QXNKdWRnZW1lbnQpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC4uLmApO1xuXG4gIGp1ZGdlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoanVkZ2VtZW50KSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50ID0gZmFsc2U7XG5cbiAgICBpZiAoanVkZ2VtZW50ICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc0p1ZGdlbWVudCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGp1ZGdlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzSnVkZ2VtZW50KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgVHlwZUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHR5cGVBc3NlcnRpb24gPSBUeXBlQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAodHlwZUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbGlkYXRlc1N0YXRlbWVudEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgdHlwZUFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0LCAodHlwZUFzc2VydGlvbikgPT4ge1xuICAgIGxldCB2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmICh0eXBlQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBEZWZpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbiA9IERlZmluZWRBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbik7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgZGVmaW5lZCBhc3NlcnRpb24uLi5gKTtcblxuICBkZWZpbmVkQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChkZWZpbmVkQXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKGRlZmluZWRBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbikge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzUHJvcGVydHlBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBQcm9wZXJ0eUFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHByb3BlcnR5QXNzZXJ0aW9uID0gUHJvcGVydHlBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChwcm9wZXJ0eUFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbik7XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgcHJvcGVydHlBc3NlcnRpb24udmFsaWRhdGUoY29udGV4dCwgKHByb3BlcnR5QXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmIChwcm9wZXJ0eUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgcHJvcGVydHkgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNQcm9wZXJ0eUFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBTdWJwcm9vZkFzc2VydGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gU3VicHJvb2ZBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzdWJwcm9vZkFzc2VydGlvbiA9PT0gbnVsbCkge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlc0FzU3VicHJvb2ZBc3NlcnRpb24pO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gIHN1YnByb29mQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChzdWJwcm9vZkFzc2VydGlvbikgPT4ge1xuICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoc3VicHJvb2ZBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHN0YXRlbWVudFZhbGlkYXRlc0FzU3VicHJvb2ZBc3NlcnRpb24gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc1N1YnByb29mQXNzZXJ0aW9uKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzQXNTdWJwcm9vZkFzc2VydGlvbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IHsgQ29udGFpbmVkQXNzZXJ0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uID0gQ29udGFpbmVkQXNzZXJ0aW9uLmZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uID09PSBudWxsKSB7XG4gICAgY29uc3QgdmFsaWRhdGVzU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbih2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbik7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmApO1xuXG4gIGNvbnRhaW5lZEFzc2VydGlvbi52YWxpZGF0ZShjb250ZXh0LCAoY29udGFpbmVkQXNzZXJ0aW9uKSA9PiB7XG4gICAgbGV0IHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICB2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbnRhaW5lZCBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uKHZhbGlkYXRlc1N0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb24oc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgY29uc3QgeyBTaWduYXR1cmVBc3NlcnRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICBzaWduYXR1cmVBc3NlcnRpb24gPSBTaWduYXR1cmVBc3NlcnRpb24uZnJvbVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQpO1xuXG4gIGlmIChzaWduYXR1cmVBc3NlcnRpb24gPT09IG51bGwpIHtcbiAgICBjb25zdCB2YWxpZGF0ZXNBU3RhdGVtZW50c1NpZ25hdHVyZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gICAgY29udGludWF0aW9uKHZhbGlkYXRlc0FTdGF0ZW1lbnRzU2lnbmF0dXJlQXNzZXJ0aW9uKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBzaWduYXR1cmUgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgc2lnbmF0dXJlQXNzZXJ0aW9uLnZhbGlkYXRlKGNvbnRleHQsIChzaWduYXR1cmVBc3NlcnRpb24pID0+IHtcbiAgICBsZXQgdmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24gPSBmYWxzZTtcblxuICAgIGlmIChzaWduYXR1cmVBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIHZhbGlkYXRlc0FTdGF0ZW1lbnRzU2lnbmF0dXJlQXNzZXJ0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24pIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgc2lnbmF0dXJlIGFzc2VydGlvbi5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24odmFsaWRhdGVzQVN0YXRlbWVudHNTaWduYXR1cmVBc3NlcnRpb24pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuaWZ5VGVybVdpdGhQcm9wZXJ0aWVzKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBsZXQgdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcztcblxuICBjb25zdCBwcm9wZXJ0aWVzID0gY29udGV4dC5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcyA9IHNvbWUocHJvcGVydGllcywgKHByb3BlcnR5KSA9PiB7XG4gICAgbGV0IHRlcm1VbmlmaWVzV2l0aFByb3BlcnR5ID0gZmFsc2U7XG5cbiAgICBjaG9vc2UoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHRlcm1VbmlmaWVzID0gcHJvcGVydHkudW5pZnlUZXJtKHRlcm0sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICAgIGlmICh0ZXJtVW5pZmllcykge1xuICAgICAgICB0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSA9IHRydWU7XG5cbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIH1cbiAgICB9LCBjb250ZXh0KTtcblxuICAgIGlmICh0ZXJtVW5pZmllc1dpdGhQcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVVuaWZpZXNXaXRoUHJvcGVydGllcztcbn1cblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlVGVybXMgPSBbXG4gIHZhbGlkYXRlVGVybUFzVmFyaWFibGUsXG4gIHVuaWZ5VGVybVdpdGhHZW5lcmF0b3JzLFxuICB1bmlmeVRlcm1XaXRoQ29uc3RydWN0b3JzLFxuICB1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3Jcbl07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudHMgPSBbXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUsXG4gIHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3JzLFxuICB1bmlmeVN0YXRlbWVudFdpdGhCcmFja2V0ZWRDb21iaW5hdG9yLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHksXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNKdWRnZW1lbnQsXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbixcbiAgdmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uLFxuICB2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gIHZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb25cbl07XG4iXSwibmFtZXMiOlsidW5pZnlUZXJtV2l0aFByb3BlcnRpZXMiLCJ2YWxpZGF0ZVN0YXRlbWVudHMiLCJ2YWxpZGF0ZVRlcm1Bc1ZhcmlhYmxlIiwidmFsaWRhdGVUZXJtcyIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ0ZXJtIiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsIlZhcmlhYmxlIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsImZyb21UZXJtIiwidGVybVZhbGlkYXRlc0FzVmFyaWFibGUiLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWxpZGF0ZSIsInR5cGUiLCJnZXRUeXBlIiwidHlwZVN0cmluZyIsInByb3Zpc2lvbmFsIiwiaXNQcm92aXNpb25hbCIsInByb3Zpc2lvbmFsbHlTdHJpbmciLCJwcm92aXNpb25hbGx5U3RyaW5nRnJvbVByb3Zpc2lvbmFsIiwic2V0VHlwZSIsInNldFByb3Zpc2lvbmFsIiwiZGVidWciLCJ1bmlmeVRlcm1XaXRoR2VuZXJhdG9ycyIsInRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0R2VuZXJhdG9ycyIsImdlbmVyYXRvciIsInRlcm1VbmlmaWVzV2l0aEdlbmVyYXRvciIsImNob29zZSIsInRlcm1VbmlmaWVzIiwidW5pZnlUZXJtIiwiY29tbWl0IiwidW5pZnlUZXJtV2l0aENvbnN0cnVjdG9ycyIsInRlcm1VbmlmaWVzV2l0aENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9yIiwidGVybVVuaWZpZXNXaXRoQ29uc3RydWN0b3IiLCJ1bmlmeVRlcm1XaXRoQnJhY2tldGVkQ29uc3RydWN0b3IiLCJ0ZXJtVW5pZmllc1dpdGhCcmFja2V0ZWRDb25zdHJ1Y3RvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tTm90aGluZyIsInZhbGlkYXRlU3RhdGVtZW50QXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnQiLCJNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50VmFsaWRhdGVzQXNNZXRhdmFyaWFibGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJzdHJpY3QiLCJUZXJtU3Vic3RpdHV0aW9uIiwiRnJhbWVTdWJzdGl0dXRpb24iLCJmcmFtZVN1YnN0aXR1dGlvbiIsInRlcm1TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9yIiwiZGVzY2VuZCIsInVuaWZ5U3RhdGVtZW50IiwidW5pZnlTdGF0ZW1lbnRXaXRoQnJhY2tldGVkQ29tYmluYXRvciIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmciLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRXF1YWxpdHkiLCJFcXVhbGl0eSIsImVxdWFsaXR5Iiwic3RhdGVtZW50VmFsaWRhdGVzQXNFcXVhbGl0eSIsInZhbGlkYXRlU3RhdGVtZW50QXNKdWRnZW1lbnQiLCJKdWRnZW1lbnQiLCJqdWRnZW1lbnQiLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc0p1ZGdlbWVudCIsInZhbGlkYXRlU3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiVHlwZUFzc2VydGlvbiIsInR5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc1R5cGVBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsIkRlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVzU3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmFsaWRhdGVTdGF0ZW1lbnRBc1Byb3BlcnR5QXNzZXJ0aW9uIiwiUHJvcGVydHlBc3NlcnRpb24iLCJwcm9wZXJ0eUFzc2VydGlvbiIsInN0YXRlbWVudFZhbGlkYXRlc0FzUHJvcGVydHlBc3NlcnRpb24iLCJ2YWxpZGF0ZVN0YXRlbWVudEFzU3VicHJvb2ZBc3NlcnRpb24iLCJTdWJwcm9vZkFzc2VydGlvbiIsInN1YnByb29mQXNzZXJ0aW9uIiwic3RhdGVtZW50VmFsaWRhdGVzQXNTdWJwcm9vZkFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24iLCJDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb24iLCJ2YWxpZGF0ZXNTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbiIsInZhbGlkYXRlU3RhdGVtZW50QXNTaWduYXR1cmVBc3NlcnRpb24iLCJTaWduYXR1cmVBc3NlcnRpb24iLCJzaWduYXR1cmVBc3NlcnRpb24iLCJ2YWxpZGF0ZXNBU3RhdGVtZW50c1NpZ25hdHVyZUFzc2VydGlvbiIsInRlcm1VbmlmaWVzV2l0aFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwiZ2V0UHJvcGVydGllcyIsInByb3BlcnR5IiwidGVybVVuaWZpZXNXaXRoUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdhZ0JBO2VBQUFBOztRQWlDSEM7ZUFBQUE7O1FBcmJHQztlQUFBQTs7UUE4YUhDO2VBQUFBOzs7Z0NBeGJ5QjtpRUFFakI7eUJBRVc7d0JBQ21COzBCQUM2Qjs7Ozs7O0FBRWhGLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdDLHFDQUFxQjtBQUUvQixTQUFTSCx1QkFBdUJJLElBQUksRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ2hFLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3ZCQyxXQUFXRixTQUFTRyxRQUFRLENBQUNOLE1BQU1DO0lBRXpDLElBQUlJLGFBQWEsTUFBTTtRQUNyQixNQUFNRSwwQkFBMEI7UUFFaEMsT0FBT0wsYUFBYUs7SUFDdEI7SUFFQSxNQUFNQyxhQUFhUixLQUFLUyxTQUFTO0lBRWpDUixRQUFRUyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsV0FBVyx1QkFBdUIsQ0FBQztJQUVwRUgsU0FBU00sUUFBUSxDQUFDVixTQUFTLENBQUNJO1FBQzFCLElBQUlBLGFBQWEsTUFBTTtZQUNyQixNQUFNRSwwQkFBMEI7WUFFaEMsT0FBT0wsYUFBYUs7UUFDdEI7UUFFQSxNQUFNSyxPQUFPUCxTQUFTUSxPQUFPLElBQ3ZCQyxhQUFhRixLQUFLSCxT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
@@ -19,112 +19,112 @@ class TopLevelPass extends _occamlanguages.ContinuationPass {
19
19
  nodeQuery: errorNodeQuery,
20
20
  run: (errorNode, context, continuation)=>{
21
21
  const error = (0, _element.errorFromErrorNode)(errorNode, context);
22
- error.verify(context, continuation);
22
+ return error.verify(context, continuation);
23
23
  }
24
24
  },
25
25
  {
26
26
  nodeQuery: ruleNodeQuery,
27
27
  run: (ruleNode, context, continuation)=>{
28
28
  const rule = (0, _element.ruleFromRuleNode)(ruleNode, context);
29
- rule.verify(context, continuation);
29
+ return rule.verify(context, continuation);
30
30
  }
31
31
  },
32
32
  {
33
33
  nodeQuery: axiomNodeQuery,
34
34
  run: (axiomNode, context, continuation)=>{
35
35
  const axiom = (0, _element.axiomFromAxiomNode)(axiomNode, context);
36
- axiom.verify(context, continuation);
36
+ return axiom.verify(context, continuation);
37
37
  }
38
38
  },
39
39
  {
40
40
  nodeQuery: lemmaNodeQuery,
41
41
  run: (lemmaNode, context, continuation)=>{
42
42
  const lemma = (0, _element.lemmaFromLemmaNode)(lemmaNode, context);
43
- lemma.verify(context, continuation);
43
+ return lemma.verify(context, continuation);
44
44
  }
45
45
  },
46
46
  {
47
47
  nodeQuery: schemaNodeQuery,
48
48
  run: (schemaNode, context, continuation)=>{
49
49
  const schema = (0, _element.schemaFromSchemaNode)(schemaNode, context);
50
- schema.verify(context, continuation);
50
+ return schema.verify(context, continuation);
51
51
  }
52
52
  },
53
53
  {
54
54
  nodeQuery: sectionNodeQuery,
55
55
  run: (sectionNode, context, continuation)=>{
56
56
  const section = (0, _element.sectionFromSectionNode)(sectionNode, context);
57
- section.verify(context, continuation);
57
+ return section.verify(context, continuation);
58
58
  }
59
59
  },
60
60
  {
61
61
  nodeQuery: theoremNodeQuery,
62
62
  run: (theoremNode, context, continuation)=>{
63
63
  const theorem = (0, _element.theoremFromTheoremNode)(theoremNode, context);
64
- theorem.verify(context, continuation);
64
+ return theorem.verify(context, continuation);
65
65
  }
66
66
  },
67
67
  {
68
68
  nodeQuery: conjectureNodeQuery,
69
69
  run: (conjectureNode, context, continuation)=>{
70
70
  const conjecture = (0, _element.conjectureFromConjectureNode)(conjectureNode, context);
71
- conjecture.verify(context, continuation);
71
+ return conjecture.verify(context, continuation);
72
72
  }
73
73
  },
74
74
  {
75
75
  nodeQuery: typeDeclarationNodeQuery,
76
76
  run: (typeDeclarationNode, context, continuation)=>{
77
77
  const typeDeclaration = (0, _element.typeDeclarationFromTypeDeclarationNode)(typeDeclarationNode, context);
78
- typeDeclaration.verify(context, continuation);
78
+ return typeDeclaration.verify(context, continuation);
79
79
  }
80
80
  },
81
81
  {
82
82
  nodeQuery: cotypeDeclarationNodeQuery,
83
83
  run: (cotypeDeclarationNode, context, continuation)=>{
84
84
  const cotypeDeclaration = (0, _element.cotypeDeclarationFromCotypeDeclarationNode)(cotypeDeclarationNode, context);
85
- cotypeDeclaration.verify(context, continuation);
85
+ return cotypeDeclaration.verify(context, continuation);
86
86
  }
87
87
  },
88
88
  {
89
89
  nodeQuery: variableDeclarationNodeQuery,
90
90
  run: (variableDeclarationNode, context, continuation)=>{
91
91
  const variableDeclaration = (0, _element.variableDeclarationFromVariableDeclarationNode)(variableDeclarationNode, context);
92
- variableDeclaration.verify(context, continuation);
92
+ return variableDeclaration.verify(context, continuation);
93
93
  }
94
94
  },
95
95
  {
96
96
  nodeQuery: generatorDeclarationNodeQuery,
97
97
  run: (generatorDeclarationNode, context, continuation)=>{
98
98
  const generatorDeclaration = (0, _element.generatorDeclarationFromGeneratorDeclarationNode)(generatorDeclarationNode, context);
99
- generatorDeclaration.verify(context, continuation);
99
+ return generatorDeclaration.verify(context, continuation);
100
100
  }
101
101
  },
102
102
  {
103
103
  nodeQuery: typePrefixDeclarationNodeQuery,
104
104
  run: (typePrefixDeclarationNode, context, continuation)=>{
105
105
  const typePrefixDeclaration = (0, _element.typePrefixDeclarationFromTypePrefixDeclarationNode)(typePrefixDeclarationNode, context);
106
- typePrefixDeclaration.verify(context, continuation);
106
+ return typePrefixDeclaration.verify(context, continuation);
107
107
  }
108
108
  },
109
109
  {
110
110
  nodeQuery: combinatorDeclarationNodeQuery,
111
111
  run: (combinatorDeclarationNode, context, continuation)=>{
112
112
  const combinatorDeclaration = (0, _element.combinatorDeclarationFromCombinatorDeclarationNode)(combinatorDeclarationNode, context);
113
- combinatorDeclaration.verify(context, continuation);
113
+ return combinatorDeclaration.verify(context, continuation);
114
114
  }
115
115
  },
116
116
  {
117
117
  nodeQuery: constructorDeclarationNodeQuery,
118
118
  run: (constructorDeclarationNode, context, continuation)=>{
119
119
  const constructorDeclaration = (0, _element.constructorDeclarationFromConstructorDeclarationNode)(constructorDeclarationNode, context);
120
- constructorDeclaration.verify(context, continuation);
120
+ return constructorDeclaration.verify(context, continuation);
121
121
  }
122
122
  },
123
123
  {
124
124
  nodeQuery: metavariableDeclarationNodeQuery,
125
125
  run: (metavariableDeclarationNode, context, continuation)=>{
126
126
  const metavariableDeclaration = (0, _element.metavariableDeclarationFromMetavariableDeclarationNode)(metavariableDeclarationNode, context);
127
- metavariableDeclaration.verify(context, continuation);
127
+ return metavariableDeclaration.verify(context, continuation);
128
128
  }
129
129
  }
130
130
  ];
@@ -132,7 +132,7 @@ class TopLevelPass extends _occamlanguages.ContinuationPass {
132
132
  const topLevelPass = new TopLevelPass();
133
133
  function verifyFile(fileNode, context, continuation) {
134
134
  const node = fileNode; ///
135
- topLevelPass.run(node, context, continuation);
135
+ return topLevelPass.run(node, context, continuation);
136
136
  }
137
137
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIlxuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21SdWxlTm9kZSxcbiAgICAgICAgIGVycm9yRnJvbUVycm9yTm9kZSxcbiAgICAgICAgIGF4aW9tRnJvbUF4aW9tTm9kZSxcbiAgICAgICAgIGxlbW1hRnJvbUxlbW1hTm9kZSxcbiAgICAgICAgIHNjaGVtYUZyb21TY2hlbWFOb2RlLFxuICAgICAgICAgc2VjdGlvbkZyb21TZWN0aW9uTm9kZSxcbiAgICAgICAgIHRoZW9yZW1Gcm9tVGhlb3JlbU5vZGUsXG4gICAgICAgICBjb25qZWN0dXJlRnJvbUNvbmplY3R1cmVOb2RlLFxuICAgICAgICAgdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb3R5cGVEZWNsYXJhdGlvbkZyb21Db3R5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbkZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIGF4aW9tTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2F4aW9tXCIpLFxuICAgICAgbGVtbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWFcIiksXG4gICAgICBzY2hlbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2NoZW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvdHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZ2VuZXJhdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tYmluYXRvckRlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVQcmVmaXhEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGVycm9yTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JGcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgZXJyb3IudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHJ1bGVOb2RlUXVlcnksXG4gICAgICBydW46IChydWxlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJ1bGUgPSBydWxlRnJvbVJ1bGVOb2RlKHJ1bGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBydWxlLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBheGlvbU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGF4aW9tTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGF4aW9tID0gYXhpb21Gcm9tQXhpb21Ob2RlKGF4aW9tTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgYXhpb20udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAobGVtbWFOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbGVtbWEgPSBsZW1tYUZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBsZW1tYS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2NoZW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoc2NoZW1hTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjaGVtYSA9IHNjaGVtYUZyb21TY2hlbWFOb2RlKHNjaGVtYU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHNjaGVtYS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2VjdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHNlY3Rpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25Gcm9tU2VjdGlvbk5vZGUoc2VjdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHNlY3Rpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0aGVvcmVtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW0gPSB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICB0aGVvcmVtLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25qZWN0dXJlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29uamVjdHVyZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25qZWN0dXJlID0gY29uamVjdHVyZUZyb21Db25qZWN0dXJlTm9kZShjb25qZWN0dXJlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29uamVjdHVyZS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGVEZWNsYXJhdGlvbiA9IHR5cGVEZWNsYXJhdGlvbkZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY290eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb3R5cGVEZWNsYXJhdGlvbiA9IGNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZShjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvdHlwZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uID0gdmFyaWFibGVEZWNsYXJhdGlvbkZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBnZW5lcmF0b3JEZWNsYXJhdGlvbiA9IGdlbmVyYXRvckRlY2xhcmF0aW9uRnJvbUdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZShnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGdlbmVyYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZVByZWZpeERlY2xhcmF0aW9uID0gdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUodHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29tYmluYXRvckRlY2xhcmF0aW9uID0gY29tYmluYXRvckRlY2xhcmF0aW9uRnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbkZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgdG9wTGV2ZWxQYXNzID0gbmV3IFRvcExldmVsUGFzcygpO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5RmlsZShmaWxlTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gIGNvbnN0IG5vZGUgPSBmaWxlTm9kZTsgLy8vXG5cbiAgdG9wTGV2ZWxQYXNzLnJ1bihub2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUZpbGUiLCJub2RlUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsInJ1bGVOb2RlUXVlcnkiLCJlcnJvck5vZGVRdWVyeSIsImF4aW9tTm9kZVF1ZXJ5IiwibGVtbWFOb2RlUXVlcnkiLCJzY2hlbWFOb2RlUXVlcnkiLCJzZWN0aW9uTm9kZVF1ZXJ5IiwidGhlb3JlbU5vZGVRdWVyeSIsImNvbmplY3R1cmVOb2RlUXVlcnkiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb3R5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIlRvcExldmVsUGFzcyIsIkNvbnRpbnVhdGlvblBhc3MiLCJtYXBzIiwicnVuIiwiZXJyb3JOb2RlIiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsImVycm9yIiwiZXJyb3JGcm9tRXJyb3JOb2RlIiwidmVyaWZ5IiwicnVsZU5vZGUiLCJydWxlIiwicnVsZUZyb21SdWxlTm9kZSIsImF4aW9tTm9kZSIsImF4aW9tIiwiYXhpb21Gcm9tQXhpb21Ob2RlIiwibGVtbWFOb2RlIiwibGVtbWEiLCJsZW1tYUZyb21MZW1tYU5vZGUiLCJzY2hlbWFOb2RlIiwic2NoZW1hIiwic2NoZW1hRnJvbVNjaGVtYU5vZGUiLCJzZWN0aW9uTm9kZSIsInNlY3Rpb24iLCJzZWN0aW9uRnJvbVNlY3Rpb25Ob2RlIiwidGhlb3JlbU5vZGUiLCJ0aGVvcmVtIiwidGhlb3JlbUZyb21UaGVvcmVtTm9kZSIsImNvbmplY3R1cmVOb2RlIiwiY29uamVjdHVyZSIsImNvbmplY3R1cmVGcm9tQ29uamVjdHVyZU5vZGUiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uIiwidHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb3R5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb3R5cGVEZWNsYXJhdGlvbiIsImNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbiIsInZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJnZW5lcmF0b3JEZWNsYXJhdGlvbiIsImdlbmVyYXRvckRlY2xhcmF0aW9uRnJvbUdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlUHJlZml4RGVjbGFyYXRpb24iLCJ0eXBlUHJlZml4RGVjbGFyYXRpb25Gcm9tVHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb24iLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInRvcExldmVsUGFzcyIsImZpbGVOb2RlIiwibm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0xnQkE7OztlQUFBQTs7OzRCQTlLZTtnQ0FDRTt5QkFpQnNDO0FBRXZFLE1BQU0sRUFBRUMsU0FBUyxFQUFFLEdBQUdDLDBCQUFjO0FBRXBDLE1BQU1DLGdCQUFnQkYsVUFBVSxVQUMxQkcsaUJBQWlCSCxVQUFVLFdBQzNCSSxpQkFBaUJKLFVBQVUsV0FDM0JLLGlCQUFpQkwsVUFBVSxXQUMzQk0sa0JBQWtCTixVQUFVLFlBQzVCTyxtQkFBbUJQLFVBQVUsYUFDN0JRLG1CQUFtQlIsVUFBVSxhQUM3QlMsc0JBQXNCVCxVQUFVLGdCQUNoQ1UsMkJBQTJCVixVQUFVLHFCQUNyQ1csNkJBQTZCWCxVQUFVLHVCQUN2Q1ksK0JBQStCWixVQUFVLHlCQUN6Q2EsZ0NBQWdDYixVQUFVLDBCQUMxQ2MsaUNBQWlDZCxVQUFVLDJCQUMzQ2UsaUNBQWlDZixVQUFVLDJCQUMzQ2dCLGtDQUFrQ2hCLFVBQVUsNEJBQzVDaUIsbUNBQW1DakIsVUFBVTtBQUVuRCxNQUFNa0IscUJBQXFCQyxnQ0FBZ0I7SUFDekMsT0FBT0MsT0FBTztRQUNaO1lBQ0VwQixXQUFXRztZQUNYa0IsS0FBSyxDQUFDQyxXQUFXQyxTQUFTQztnQkFDeEIsTUFBTUMsUUFBUUMsSUFBQUEsMkJBQWtC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
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL3ZlcmlmeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcXVlcnlVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tcXVlcnlcIlxuaW1wb3J0IHsgQ29udGludWF0aW9uUGFzcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgcnVsZUZyb21SdWxlTm9kZSxcbiAgICAgICAgIGVycm9yRnJvbUVycm9yTm9kZSxcbiAgICAgICAgIGF4aW9tRnJvbUF4aW9tTm9kZSxcbiAgICAgICAgIGxlbW1hRnJvbUxlbW1hTm9kZSxcbiAgICAgICAgIHNjaGVtYUZyb21TY2hlbWFOb2RlLFxuICAgICAgICAgc2VjdGlvbkZyb21TZWN0aW9uTm9kZSxcbiAgICAgICAgIHRoZW9yZW1Gcm9tVGhlb3JlbU5vZGUsXG4gICAgICAgICBjb25qZWN0dXJlRnJvbUNvbmplY3R1cmVOb2RlLFxuICAgICAgICAgdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb3R5cGVEZWNsYXJhdGlvbkZyb21Db3R5cGVEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlLFxuICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Gcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Gcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbkZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBub2RlUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBlcnJvck5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9lcnJvclwiKSxcbiAgICAgIGF4aW9tTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2F4aW9tXCIpLFxuICAgICAgbGVtbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbGVtbWFcIiksXG4gICAgICBzY2hlbWFOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc2NoZW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgY29uamVjdHVyZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25qZWN0dXJlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvdHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgZ2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZ2VuZXJhdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tYmluYXRvckRlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVQcmVmaXhEZWNsYXJhdGlvblwiKSxcbiAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCIpO1xuXG5jbGFzcyBUb3BMZXZlbFBhc3MgZXh0ZW5kcyBDb250aW51YXRpb25QYXNzIHtcbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGVycm9yTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JGcm9tRXJyb3JOb2RlKGVycm9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBydWxlTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAocnVsZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBydWxlID0gcnVsZUZyb21SdWxlTm9kZShydWxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHJ1bGUudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGF4aW9tTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoYXhpb21Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgYXhpb20gPSBheGlvbUZyb21BeGlvbU5vZGUoYXhpb21Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gYXhpb20udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAobGVtbWFOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgbGVtbWEgPSBsZW1tYUZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gbGVtbWEudmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNjaGVtYU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHNjaGVtYU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzY2hlbWEgPSBzY2hlbWFGcm9tU2NoZW1hTm9kZShzY2hlbWFOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gc2NoZW1hLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBzZWN0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoc2VjdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbkZyb21TZWN0aW9uTm9kZShzZWN0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHNlY3Rpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICBydW46ICh0aGVvcmVtTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW9yZW0gPSB0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdGhlb3JlbS52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uamVjdHVyZU5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGNvbmplY3R1cmVOb2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29uamVjdHVyZSA9IGNvbmplY3R1cmVGcm9tQ29uamVjdHVyZU5vZGUoY29uamVjdHVyZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb25qZWN0dXJlLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZURlY2xhcmF0aW9uID0gdHlwZURlY2xhcmF0aW9uRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY290eXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjb3R5cGVEZWNsYXJhdGlvbiA9IGNvdHlwZURlY2xhcmF0aW9uRnJvbUNvdHlwZURlY2xhcmF0aW9uTm9kZShjb3R5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb3R5cGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvbiA9IHZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBnZW5lcmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHJ1bjogKGdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRvckRlY2xhcmF0aW9uID0gZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlKGdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIGdlbmVyYXRvckRlY2xhcmF0aW9uLnZlcmlmeShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46ICh0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdHlwZVByZWZpeERlY2xhcmF0aW9uID0gdHlwZVByZWZpeERlY2xhcmF0aW9uRnJvbVR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUodHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHR5cGVQcmVmaXhEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgcnVuOiAoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmF0b3JEZWNsYXJhdGlvbiA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbkZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb24udmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb24gPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICBydW46IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbi52ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IHRvcExldmVsUGFzcyA9IG5ldyBUb3BMZXZlbFBhc3MoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICBjb25zdCBub2RlID0gZmlsZU5vZGU7IC8vL1xuXG4gIHJldHVybiB0b3BMZXZlbFBhc3MucnVuKG5vZGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RmlsZSIsIm5vZGVRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicnVsZU5vZGVRdWVyeSIsImVycm9yTm9kZVF1ZXJ5IiwiYXhpb21Ob2RlUXVlcnkiLCJsZW1tYU5vZGVRdWVyeSIsInNjaGVtYU5vZGVRdWVyeSIsInNlY3Rpb25Ob2RlUXVlcnkiLCJ0aGVvcmVtTm9kZVF1ZXJ5IiwiY29uamVjdHVyZU5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvdHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwidHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiVG9wTGV2ZWxQYXNzIiwiQ29udGludWF0aW9uUGFzcyIsIm1hcHMiLCJydW4iLCJlcnJvck5vZGUiLCJjb250ZXh0IiwiY29udGludWF0aW9uIiwiZXJyb3IiLCJlcnJvckZyb21FcnJvck5vZGUiLCJ2ZXJpZnkiLCJydWxlTm9kZSIsInJ1bGUiLCJydWxlRnJvbVJ1bGVOb2RlIiwiYXhpb21Ob2RlIiwiYXhpb20iLCJheGlvbUZyb21BeGlvbU5vZGUiLCJsZW1tYU5vZGUiLCJsZW1tYSIsImxlbW1hRnJvbUxlbW1hTm9kZSIsInNjaGVtYU5vZGUiLCJzY2hlbWEiLCJzY2hlbWFGcm9tU2NoZW1hTm9kZSIsInNlY3Rpb25Ob2RlIiwic2VjdGlvbiIsInNlY3Rpb25Gcm9tU2VjdGlvbk5vZGUiLCJ0aGVvcmVtTm9kZSIsInRoZW9yZW0iLCJ0aGVvcmVtRnJvbVRoZW9yZW1Ob2RlIiwiY29uamVjdHVyZU5vZGUiLCJjb25qZWN0dXJlIiwiY29uamVjdHVyZUZyb21Db25qZWN0dXJlTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlRGVjbGFyYXRpb24iLCJ0eXBlRGVjbGFyYXRpb25Gcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsImNvdHlwZURlY2xhcmF0aW9uTm9kZSIsImNvdHlwZURlY2xhcmF0aW9uIiwiY290eXBlRGVjbGFyYXRpb25Gcm9tQ290eXBlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwidmFyaWFibGVEZWNsYXJhdGlvbkZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsImdlbmVyYXRvckRlY2xhcmF0aW9uTm9kZSIsImdlbmVyYXRvckRlY2xhcmF0aW9uIiwiZ2VuZXJhdG9yRGVjbGFyYXRpb25Gcm9tR2VuZXJhdG9yRGVjbGFyYXRpb25Ob2RlIiwidHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbiIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbkZyb21UeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbkZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbkZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Gcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidG9wTGV2ZWxQYXNzIiwiZmlsZU5vZGUiLCJub2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnTGdCQTs7O2VBQUFBOzs7NEJBOUtlO2dDQUNFO3lCQWlCc0M7QUFFdkUsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsMEJBQWM7QUFFcEMsTUFBTUMsZ0JBQWdCRixVQUFVLFVBQzFCRyxpQkFBaUJILFVBQVUsV0FDM0JJLGlCQUFpQkosVUFBVSxXQUMzQkssaUJBQWlCTCxVQUFVLFdBQzNCTSxrQkFBa0JOLFVBQVUsWUFDNUJPLG1CQUFtQlAsVUFBVSxhQUM3QlEsbUJBQW1CUixVQUFVLGFBQzdCUyxzQkFBc0JULFVBQVUsZ0JBQ2hDVSwyQkFBMkJWLFVBQVUscUJBQ3JDVyw2QkFBNkJYLFVBQVUsdUJBQ3ZDWSwrQkFBK0JaLFVBQVUseUJBQ3pDYSxnQ0FBZ0NiLFVBQVUsMEJBQzFDYyxpQ0FBaUNkLFVBQVUsMkJBQzNDZSxpQ0FBaUNmLFVBQVUsMkJBQzNDZ0Isa0NBQWtDaEIsVUFBVSw0QkFDNUNpQixtQ0FBbUNqQixVQUFVO0FBRW5E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
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get compressAssertions () {
13
+ return compressAssertions;
14
+ },
15
+ get compressAssumptions () {
16
+ return compressAssumptions;
17
+ },
18
+ get compressEqualities () {
19
+ return compressEqualities;
20
+ },
21
+ get compressFrames () {
22
+ return compressFrames;
23
+ },
24
+ get compressGoals () {
25
+ return compressGoals;
26
+ },
27
+ get compressJudgements () {
28
+ return compressJudgements;
29
+ },
30
+ get compressReferences () {
31
+ return compressReferences;
32
+ },
33
+ get compressSignatures () {
34
+ return compressSignatures;
35
+ },
36
+ get compressStatements () {
37
+ return compressStatements;
38
+ },
39
+ get compressSubstitutions () {
40
+ return compressSubstitutions;
41
+ },
42
+ get compressTerms () {
43
+ return compressTerms;
44
+ }
45
+ });
46
+ const _necessary = require("necessary");
47
+ const { compress } = _necessary.arrayUtilities;
48
+ function compressTerms(terms) {
49
+ compress(terms, (termA, termB)=>{
50
+ const termAEqualToTermB = termA.isEqualTo(termB);
51
+ if (!termAEqualToTermB) {
52
+ return true;
53
+ }
54
+ });
55
+ }
56
+ function compressGoals(goals) {
57
+ compress(goals, (goalA, goalB)=>{
58
+ const goalAEqualToGoalB = goalA.isEqualTo(goalB);
59
+ if (!goalAEqualToGoalB) {
60
+ return true;
61
+ }
62
+ });
63
+ }
64
+ function compressFrames(frames) {
65
+ compress(frames, (frameA, frameB)=>{
66
+ const frameAEqualToFrameB = frameA.isEqualTo(frameB);
67
+ if (!frameAEqualToFrameB) {
68
+ return true;
69
+ }
70
+ });
71
+ }
72
+ function compressEqualities(equalities) {
73
+ compress(equalities, (equalityA, equalityB)=>{
74
+ const equalityAEqualToEqualityB = equalityA.isEqualTo(equalityB);
75
+ if (!equalityAEqualToEqualityB) {
76
+ return true;
77
+ }
78
+ });
79
+ }
80
+ function compressJudgements(judgements) {
81
+ compress(judgements, (judgementA, judgementB)=>{
82
+ const judgementAEqualToJudgementB = judgementA.isEqualTo(judgementB);
83
+ if (!judgementAEqualToJudgementB) {
84
+ return true;
85
+ }
86
+ });
87
+ }
88
+ function compressAssertions(assertions) {
89
+ compress(assertions, (assertionA, assertionB)=>{
90
+ const assertionAEqualToAssertionB = assertionA.isEqualTo(assertionB);
91
+ if (!assertionAEqualToAssertionB) {
92
+ return true;
93
+ }
94
+ });
95
+ }
96
+ function compressStatements(statements) {
97
+ compress(statements, (statementA, statementB)=>{
98
+ const statementAEqualToStatementB = statementA.isEqualTo(statementB);
99
+ if (!statementAEqualToStatementB) {
100
+ return true;
101
+ }
102
+ });
103
+ }
104
+ function compressSignatures(signatures) {
105
+ compress(signatures, (signatureA, signatureB)=>{
106
+ const signatureAEqualToSignatureB = signatureA.isEqualTo(signatureB);
107
+ if (!signatureAEqualToSignatureB) {
108
+ return true;
109
+ }
110
+ });
111
+ }
112
+ function compressReferences(references) {
113
+ compress(references, (referenceA, referenceB)=>{
114
+ const referenceAEqualToReferenceB = referenceA.isEqualTo(referenceB);
115
+ if (!referenceAEqualToReferenceB) {
116
+ return true;
117
+ }
118
+ });
119
+ }
120
+ function compressAssumptions(assumptions) {
121
+ compress(assumptions, (assumptionA, assumptionB)=>{
122
+ const assumptionAEqualToAssumptionB = assumptionA.isEqualTo(assumptionB);
123
+ if (!assumptionAEqualToAssumptionB) {
124
+ return true;
125
+ }
126
+ });
127
+ }
128
+ function compressSubstitutions(substitutions) {
129
+ compress(substitutions, (substitutionA, substitutionB)=>{
130
+ const substitutionAEqualToSubstitutionB = substitutionA.isEqualTo(substitutionB);
131
+ if (!substitutionAEqualToSubstitutionB) {
132
+ return true;
133
+ }
134
+ });
135
+ }
136
+
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29tcHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGNvbXByZXNzIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzVGVybXModGVybXMpIHtcbiAgY29tcHJlc3ModGVybXMsICh0ZXJtQSwgdGVybUIpID0+IHtcbiAgICBjb25zdCB0ZXJtQUVxdWFsVG9UZXJtQiA9IHRlcm1BLmlzRXF1YWxUbyh0ZXJtQik7XG5cbiAgICBpZiAoIXRlcm1BRXF1YWxUb1Rlcm1CKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3NHb2Fscyhnb2Fscykge1xuICBjb21wcmVzcyhnb2FscywgKGdvYWxBLCBnb2FsQikgPT4ge1xuICAgIGNvbnN0IGdvYWxBRXF1YWxUb0dvYWxCID0gZ29hbEEuaXNFcXVhbFRvKGdvYWxCKTtcblxuICAgIGlmICghZ29hbEFFcXVhbFRvR29hbEIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wcmVzc0ZyYW1lcyhmcmFtZXMpIHtcbiAgY29tcHJlc3MoZnJhbWVzLCAoZnJhbWVBLCBmcmFtZUIpID0+IHtcbiAgICBjb25zdCBmcmFtZUFFcXVhbFRvRnJhbWVCID0gZnJhbWVBLmlzRXF1YWxUbyhmcmFtZUIpO1xuXG4gICAgaWYgKCFmcmFtZUFFcXVhbFRvRnJhbWVCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3NFcXVhbGl0aWVzKGVxdWFsaXRpZXMpIHtcbiAgY29tcHJlc3MoZXF1YWxpdGllcywgKGVxdWFsaXR5QSwgZXF1YWxpdHlCKSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHlBRXF1YWxUb0VxdWFsaXR5QiA9IGVxdWFsaXR5QS5pc0VxdWFsVG8oZXF1YWxpdHlCKTtcblxuICAgIGlmICghZXF1YWxpdHlBRXF1YWxUb0VxdWFsaXR5Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSnVkZ2VtZW50cyhqdWRnZW1lbnRzKSB7XG4gIGNvbXByZXNzKGp1ZGdlbWVudHMsIChqdWRnZW1lbnRBLCBqdWRnZW1lbnRCKSA9PiB7XG4gICAgY29uc3QganVkZ2VtZW50QUVxdWFsVG9KdWRnZW1lbnRCID0ganVkZ2VtZW50QS5pc0VxdWFsVG8oanVkZ2VtZW50Qik7XG5cbiAgICBpZiAoIWp1ZGdlbWVudEFFcXVhbFRvSnVkZ2VtZW50Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzQXNzZXJ0aW9ucyhhc3NlcnRpb25zKSB7XG4gIGNvbXByZXNzKGFzc2VydGlvbnMsIChhc3NlcnRpb25BLCBhc3NlcnRpb25CKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0aW9uQUVxdWFsVG9Bc3NlcnRpb25CID0gYXNzZXJ0aW9uQS5pc0VxdWFsVG8oYXNzZXJ0aW9uQik7XG5cbiAgICBpZiAoIWFzc2VydGlvbkFFcXVhbFRvQXNzZXJ0aW9uQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzU3RhdGVtZW50cyhzdGF0ZW1lbnRzKSB7XG4gIGNvbXByZXNzKHN0YXRlbWVudHMsIChzdGF0ZW1lbnRBLCBzdGF0ZW1lbnRCKSA9PiB7XG4gICAgY29uc3Qgc3RhdGVtZW50QUVxdWFsVG9TdGF0ZW1lbnRCID0gc3RhdGVtZW50QS5pc0VxdWFsVG8oc3RhdGVtZW50Qik7XG5cbiAgICBpZiAoIXN0YXRlbWVudEFFcXVhbFRvU3RhdGVtZW50Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzU2lnbmF0dXJlcyhzaWduYXR1cmVzKSB7XG4gIGNvbXByZXNzKHNpZ25hdHVyZXMsIChzaWduYXR1cmVBLCBzaWduYXR1cmVCKSA9PiB7XG4gICAgY29uc3Qgc2lnbmF0dXJlQUVxdWFsVG9TaWduYXR1cmVCID0gc2lnbmF0dXJlQS5pc0VxdWFsVG8oc2lnbmF0dXJlQik7XG5cbiAgICBpZiAoIXNpZ25hdHVyZUFFcXVhbFRvU2lnbmF0dXJlQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzUmVmZXJlbmNlcyhyZWZlcmVuY2VzKSB7XG4gIGNvbXByZXNzKHJlZmVyZW5jZXMsIChyZWZlcmVuY2VBLCByZWZlcmVuY2VCKSA9PiB7XG4gICAgY29uc3QgcmVmZXJlbmNlQUVxdWFsVG9SZWZlcmVuY2VCID0gcmVmZXJlbmNlQS5pc0VxdWFsVG8ocmVmZXJlbmNlQik7XG5cbiAgICBpZiAoIXJlZmVyZW5jZUFFcXVhbFRvUmVmZXJlbmNlQikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzQXNzdW1wdGlvbnMoYXNzdW1wdGlvbnMpIHtcbiAgY29tcHJlc3MoYXNzdW1wdGlvbnMsIChhc3N1bXB0aW9uQSwgYXNzdW1wdGlvbkIpID0+IHtcbiAgICBjb25zdCBhc3N1bXB0aW9uQUVxdWFsVG9Bc3N1bXB0aW9uQiA9IGFzc3VtcHRpb25BLmlzRXF1YWxUbyhhc3N1bXB0aW9uQik7XG5cbiAgICBpZiAoIWFzc3VtcHRpb25BRXF1YWxUb0Fzc3VtcHRpb25CKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHJlc3NTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMpIHtcbiAgY29tcHJlc3Moc3Vic3RpdHV0aW9ucywgKHN1YnN0aXR1dGlvbkEsIHN1YnN0aXR1dGlvbkIpID0+IHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25BRXF1YWxUb1N1YnN0aXR1dGlvbkIgPSBzdWJzdGl0dXRpb25BLmlzRXF1YWxUbyhzdWJzdGl0dXRpb25CKTtcblxuICAgIGlmICghc3Vic3RpdHV0aW9uQUVxdWFsVG9TdWJzdGl0dXRpb25CKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImNvbXByZXNzQXNzZXJ0aW9ucyIsImNvbXByZXNzQXNzdW1wdGlvbnMiLCJjb21wcmVzc0VxdWFsaXRpZXMiLCJjb21wcmVzc0ZyYW1lcyIsImNvbXByZXNzR29hbHMiLCJjb21wcmVzc0p1ZGdlbWVudHMiLCJjb21wcmVzc1JlZmVyZW5jZXMiLCJjb21wcmVzc1NpZ25hdHVyZXMiLCJjb21wcmVzc1N0YXRlbWVudHMiLCJjb21wcmVzc1N1YnN0aXR1dGlvbnMiLCJjb21wcmVzc1Rlcm1zIiwiY29tcHJlc3MiLCJhcnJheVV0aWxpdGllcyIsInRlcm1zIiwidGVybUEiLCJ0ZXJtQiIsInRlcm1BRXF1YWxUb1Rlcm1CIiwiaXNFcXVhbFRvIiwiZ29hbHMiLCJnb2FsQSIsImdvYWxCIiwiZ29hbEFFcXVhbFRvR29hbEIiLCJmcmFtZXMiLCJmcmFtZUEiLCJmcmFtZUIiLCJmcmFtZUFFcXVhbFRvRnJhbWVCIiwiZXF1YWxpdGllcyIsImVxdWFsaXR5QSIsImVxdWFsaXR5QiIsImVxdWFsaXR5QUVxdWFsVG9FcXVhbGl0eUIiLCJqdWRnZW1lbnRzIiwianVkZ2VtZW50QSIsImp1ZGdlbWVudEIiLCJqdWRnZW1lbnRBRXF1YWxUb0p1ZGdlbWVudEIiLCJhc3NlcnRpb25zIiwiYXNzZXJ0aW9uQSIsImFzc2VydGlvbkIiLCJhc3NlcnRpb25BRXF1YWxUb0Fzc2VydGlvbkIiLCJzdGF0ZW1lbnRzIiwic3RhdGVtZW50QSIsInN0YXRlbWVudEIiLCJzdGF0ZW1lbnRBRXF1YWxUb1N0YXRlbWVudEIiLCJzaWduYXR1cmVzIiwic2lnbmF0dXJlQSIsInNpZ25hdHVyZUIiLCJzaWduYXR1cmVBRXF1YWxUb1NpZ25hdHVyZUIiLCJyZWZlcmVuY2VzIiwicmVmZXJlbmNlQSIsInJlZmVyZW5jZUIiLCJyZWZlcmVuY2VBRXF1YWxUb1JlZmVyZW5jZUIiLCJhc3N1bXB0aW9ucyIsImFzc3VtcHRpb25BIiwiYXNzdW1wdGlvbkIiLCJhc3N1bXB0aW9uQUVxdWFsVG9Bc3N1bXB0aW9uQiIsInN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25BIiwic3Vic3RpdHV0aW9uQiIsInN1YnN0aXR1dGlvbkFFcXVhbFRvU3Vic3RpdHV0aW9uQiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBd0RnQkE7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUE1REFDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBOEJBQztlQUFBQTs7UUF3Q0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFWQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUFwR0FDO2VBQUFBOzs7MkJBSmU7QUFFL0IsTUFBTSxFQUFFQyxRQUFRLEVBQUUsR0FBR0MseUJBQWM7QUFFNUIsU0FBU0YsY0FBY0csS0FBSztJQUNqQ0YsU0FBU0UsT0FBTyxDQUFDQyxPQUFPQztRQUN0QixNQUFNQyxvQkFBb0JGLE1BQU1HLFNBQVMsQ0FBQ0Y7UUFFMUMsSUFBSSxDQUFDQyxtQkFBbUI7WUFDdEIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVPLFNBQVNaLGNBQWNjLEtBQUs7SUFDakNQLFNBQVNPLE9BQU8sQ0FBQ0MsT0FBT0M7UUFDdEIsTUFBTUMsb0JBQW9CRixNQUFNRixTQUFTLENBQUNHO1FBRTFDLElBQUksQ0FBQ0MsbUJBQW1CO1lBQ3RCLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTbEIsZUFBZW1CLE1BQU07SUFDbkNYLFNBQVNXLFFBQVEsQ0FBQ0MsUUFBUUM7UUFDeEIsTUFBTUMsc0JBQXNCRixPQUFPTixTQUFTLENBQUNPO1FBRTdDLElBQUksQ0FBQ0MscUJBQXFCO1lBQ3hCLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTdkIsbUJBQW1Cd0IsVUFBVTtJQUMzQ2YsU0FBU2UsWUFBWSxDQUFDQyxXQUFXQztRQUMvQixNQUFNQyw0QkFBNEJGLFVBQVVWLFNBQVMsQ0FBQ1c7UUFFdEQsSUFBSSxDQUFDQywyQkFBMkI7WUFDOUIsT0FBTztRQUNUO0lBQ0Y7QUFDRjtBQUVPLFNBQVN4QixtQkFBbUJ5QixVQUFVO0lBQzNDbkIsU0FBU21CLFlBQVksQ0FBQ0MsWUFBWUM7UUFDaEMsTUFBTUMsOEJBQThCRixXQUFXZCxTQUFTLENBQUNlO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTakMsbUJBQW1Ca0MsVUFBVTtJQUMzQ3ZCLFNBQVN1QixZQUFZLENBQUNDLFlBQVlDO1FBQ2hDLE1BQU1DLDhCQUE4QkYsV0FBV2xCLFNBQVMsQ0FBQ21CO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTN0IsbUJBQW1COEIsVUFBVTtJQUMzQzNCLFNBQVMyQixZQUFZLENBQUNDLFlBQVlDO1FBQ2hDLE1BQU1DLDhCQUE4QkYsV0FBV3RCLFNBQVMsQ0FBQ3VCO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTbEMsbUJBQW1CbUMsVUFBVTtJQUMzQy9CLFNBQVMrQixZQUFZLENBQUNDLFlBQVlDO1FBQ2hDLE1BQU1DLDhCQUE4QkYsV0FBVzFCLFNBQVMsQ0FBQzJCO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTdkMsbUJBQW1Cd0MsVUFBVTtJQUMzQ25DLFNBQVNtQyxZQUFZLENBQUNDLFlBQVlDO1FBQ2hDLE1BQU1DLDhCQUE4QkYsV0FBVzlCLFNBQVMsQ0FBQytCO1FBRXpELElBQUksQ0FBQ0MsNkJBQTZCO1lBQ2hDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTaEQsb0JBQW9CaUQsV0FBVztJQUM3Q3ZDLFNBQVN1QyxhQUFhLENBQUNDLGFBQWFDO1FBQ2xDLE1BQU1DLGdDQUFnQ0YsWUFBWWxDLFNBQVMsQ0FBQ21DO1FBRTVELElBQUksQ0FBQ0MsK0JBQStCO1lBQ2xDLE9BQU87UUFDVDtJQUNGO0FBQ0Y7QUFFTyxTQUFTNUMsc0JBQXNCNkMsYUFBYTtJQUNqRDNDLFNBQVMyQyxlQUFlLENBQUNDLGVBQWVDO1FBQ3RDLE1BQU1DLG9DQUFvQ0YsY0FBY3RDLFNBQVMsQ0FBQ3VDO1FBRWxFLElBQUksQ0FBQ0MsbUNBQW1DO1lBQ3RDLE9BQU87UUFDVDtJQUNGO0FBQ0YifQ==
@@ -47,15 +47,15 @@ const _occamlanguages = require("occam-languages");
47
47
  const { some, every, match, reduce, forEach, extract, resolve, forwardsEvery, backwardsEvery } = _occamlanguages.continuationUtilities;
48
48
  function all(callbacks, ...remainingArguments) {
49
49
  const continuation = remainingArguments.pop();
50
- every(callbacks, (callback, continuation)=>{
51
- callback(...remainingArguments, continuation);
50
+ return every(callbacks, (callback, continuation)=>{
51
+ return callback(...remainingArguments, continuation);
52
52
  }, continuation);
53
53
  }
54
54
  function exists(callbacks, ...remainingArguments) {
55
55
  const continuation = remainingArguments.pop();
56
- some(callbacks, (callback, continuation)=>{
57
- callback(...remainingArguments, continuation);
56
+ return some(callbacks, (callback, continuation)=>{
57
+ return callback(...remainingArguments, continuation);
58
58
  }, continuation);
59
59
  }
60
60
 
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmV4cG9ydCBjb25zdCB7IHNvbWUsIGV2ZXJ5LCBtYXRjaCwgcmVkdWNlLCBmb3JFYWNoLCBleHRyYWN0LCByZXNvbHZlLCBmb3J3YXJkc0V2ZXJ5LCBiYWNrd2FyZHNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBldmVyeShjYWxsYmFja3MsIChjYWxsYmFjaywgY29udGludWF0aW9uKSA9PiB7XG4gICAgY2FsbGJhY2soLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9LCBjb250aW51YXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhpc3RzKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG4iXSwibmFtZXMiOlsiYWxsIiwiYmFja3dhcmRzRXZlcnkiLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJjYWxsYmFja3MiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJjb250aW51YXRpb24iLCJwb3AiLCJjYWxsYmFjayJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBTWdCQTtlQUFBQTs7UUFGcUVDO2VBQUFBOztRQUFoRUM7ZUFBQUE7O1FBVUxDO2VBQUFBOztRQVZvQ0M7ZUFBQUE7O1FBQVRDO2VBQUFBOztRQUEyQkM7ZUFBQUE7O1FBQTFDQztlQUFBQTs7UUFBT0M7ZUFBQUE7O1FBQTBCQztlQUFBQTs7UUFBOUNDO2VBQUFBOzs7Z0NBRnVCO0FBRS9CLE1BQU0sRUFBRUEsSUFBSSxFQUFFUixLQUFLLEVBQUVLLEtBQUssRUFBRUMsTUFBTSxFQUFFSCxPQUFPLEVBQUVELE9BQU8sRUFBRUssT0FBTyxFQUFFSCxhQUFhLEVBQUVMLGNBQWMsRUFBRSxHQUFHVSxxQ0FBcUI7QUFFdEgsU0FBU1gsSUFBSVksU0FBUyxFQUFFLEdBQUdDLGtCQUFrQjtJQUNsRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7SUFFM0NiLE1BQU1VLFdBQVcsQ0FBQ0ksVUFBVUY7UUFDMUJFLFlBQVlILG9CQUFvQkM7SUFDbEMsR0FBR0E7QUFDTDtBQUVPLFNBQVNYLE9BQU9TLFNBQVMsRUFBRSxHQUFHQyxrQkFBa0I7SUFDckQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO0lBRTNDTCxLQUFLRSxXQUFXLENBQUNJLFVBQVVGO1FBQ3pCRSxZQUFZSCxvQkFBb0JDO0lBQ2xDLEdBQUdBO0FBQ0wifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmV4cG9ydCBjb25zdCB7IHNvbWUsIGV2ZXJ5LCBtYXRjaCwgcmVkdWNlLCBmb3JFYWNoLCBleHRyYWN0LCByZXNvbHZlLCBmb3J3YXJkc0V2ZXJ5LCBiYWNrd2FyZHNFdmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCBjb250aW51YXRpb24pID0+IHtcbiAgICByZXR1cm4gY2FsbGJhY2soLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9LCBjb250aW51YXRpb24pO1xufVxuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiZXZlcnkiLCJleGlzdHMiLCJleHRyYWN0IiwiZm9yRWFjaCIsImZvcndhcmRzRXZlcnkiLCJtYXRjaCIsInJlZHVjZSIsInJlc29sdmUiLCJzb21lIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiY2FsbGJhY2tzIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQU1nQkE7ZUFBQUE7O1FBRnFFQztlQUFBQTs7UUFBaEVDO2VBQUFBOztRQVVMQztlQUFBQTs7UUFWb0NDO2VBQUFBOztRQUFUQztlQUFBQTs7UUFBMkJDO2VBQUFBOztRQUExQ0M7ZUFBQUE7O1FBQU9DO2VBQUFBOztRQUEwQkM7ZUFBQUE7O1FBQTlDQztlQUFBQTs7O2dDQUZ1QjtBQUUvQixNQUFNLEVBQUVBLElBQUksRUFBRVIsS0FBSyxFQUFFSyxLQUFLLEVBQUVDLE1BQU0sRUFBRUgsT0FBTyxFQUFFRCxPQUFPLEVBQUVLLE9BQU8sRUFBRUgsYUFBYSxFQUFFTCxjQUFjLEVBQUUsR0FBR1UscUNBQXFCO0FBRXRILFNBQVNYLElBQUlZLFNBQVMsRUFBRSxHQUFHQyxrQkFBa0I7SUFDbEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO0lBRTNDLE9BQU9iLE1BQU1VLFdBQVcsQ0FBQ0ksVUFBVUY7UUFDakMsT0FBT0UsWUFBWUgsb0JBQW9CQztJQUN6QyxHQUFHQTtBQUNMO0FBRU8sU0FBU1gsT0FBT1MsU0FBUyxFQUFFLEdBQUdDLGtCQUFrQjtJQUNyRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7SUFFM0MsT0FBT0wsS0FBS0UsV0FBVyxDQUFDSSxVQUFVRjtRQUNoQyxPQUFPRSxZQUFZSCxvQkFBb0JDO0lBQ3pDLEdBQUdBO0FBQ0wifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.307",
4
+ "version": "1.0.310",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -11,9 +11,9 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.5.2",
14
- "occam-furtle": "^3.0.399",
14
+ "occam-furtle": "^3.0.403",
15
15
  "occam-grammar-utilities": "^8.1.17",
16
- "occam-languages": "^2.1.25",
16
+ "occam-languages": "^2.1.33",
17
17
  "occam-query": "^4.1.198"
18
18
  },
19
19
  "devDependencies": {
@@ -731,7 +731,7 @@ export default class NominalFileContext extends FileContext {
731
731
  context = this, ///
732
732
  fileNode = node; ///
733
733
 
734
- verifyFile(fileNode, context, continuation);
734
+ return verifyFile(fileNode, context, continuation);
735
735
  }
736
736
 
737
737
  initialise() {