occam-verify-cli 1.0.206 → 1.0.211

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 (56) hide show
  1. package/lib/constants.js +1 -5
  2. package/lib/dom/assertion/satisfies.js +36 -54
  3. package/lib/dom/axiom.js +49 -25
  4. package/lib/dom/metavariable.js +4 -7
  5. package/lib/dom/signature.js +197 -0
  6. package/lib/dom/substitution/frame.js +216 -0
  7. package/lib/dom/substitution/reference.js +203 -0
  8. package/lib/dom/substitution/statement.js +297 -0
  9. package/lib/dom/substitution/term.js +237 -0
  10. package/lib/dom/substitution.js +214 -0
  11. package/lib/dom/topLevelAssertion.js +21 -10
  12. package/lib/dom/topLevelMetaAssertion.js +4 -4
  13. package/lib/dom/variable.js +9 -10
  14. package/lib/index.js +6 -1
  15. package/lib/mixins/step/unify.js +3 -4
  16. package/lib/node/assertion/satisfies.js +5 -5
  17. package/lib/node/signature.js +116 -0
  18. package/lib/node/topLevelAssertion.js +8 -18
  19. package/lib/nonTerminalNodeMap.js +3 -2
  20. package/lib/ruleNames.js +5 -1
  21. package/lib/substitutions.js +2 -14
  22. package/lib/unifier/metaLevel.js +2 -4
  23. package/lib/utilities/json.js +49 -12
  24. package/lib/utilities/node.js +36 -1
  25. package/lib/utilities/substitutions.js +2 -4
  26. package/package.json +6 -6
  27. package/src/constants.js +0 -1
  28. package/src/dom/assertion/satisfies.js +45 -72
  29. package/src/dom/axiom.js +59 -31
  30. package/src/dom/metavariable.js +6 -6
  31. package/src/dom/signature.js +145 -0
  32. package/src/{substitution → dom/substitution}/frame.js +6 -4
  33. package/src/{substitution → dom/substitution}/reference.js +6 -4
  34. package/src/{substitution → dom/substitution}/statement.js +8 -7
  35. package/src/{substitution → dom/substitution}/term.js +7 -6
  36. package/src/dom/topLevelAssertion.js +26 -11
  37. package/src/dom/topLevelMetaAssertion.js +2 -2
  38. package/src/dom/variable.js +8 -10
  39. package/src/index.js +5 -0
  40. package/src/mixins/step/unify.js +4 -3
  41. package/src/node/assertion/satisfies.js +5 -5
  42. package/src/node/signature.js +16 -0
  43. package/src/node/topLevelAssertion.js +8 -21
  44. package/src/nonTerminalNodeMap.js +4 -1
  45. package/src/ruleNames.js +1 -0
  46. package/src/substitutions.js +3 -15
  47. package/src/unifier/metaLevel.js +2 -3
  48. package/src/utilities/json.js +60 -13
  49. package/src/utilities/node.js +45 -0
  50. package/src/utilities/substitutions.js +2 -3
  51. package/lib/substitution/frame.js +0 -175
  52. package/lib/substitution/reference.js +0 -162
  53. package/lib/substitution/statement.js +0 -296
  54. package/lib/substitution/term.js +0 -196
  55. package/lib/substitution.js +0 -214
  56. /package/src/{substitution.js → dom/substitution.js} +0 -0
@@ -34,6 +34,7 @@ var _deduction = /*#__PURE__*/ _interop_require_default(require("./node/deductio
34
34
  var _judgement = /*#__PURE__*/ _interop_require_default(require("./node/judgement"));
35
35
  var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./node/metaLemma"));
36
36
  var _parameter = /*#__PURE__*/ _interop_require_default(require("./node/parameter"));
37
+ var _signature = /*#__PURE__*/ _interop_require_default(require("./node/signature"));
37
38
  var _derivation = /*#__PURE__*/ _interop_require_default(require("./node/derivation"));
38
39
  var _combinator = /*#__PURE__*/ _interop_require_default(require("./node/combinator"));
39
40
  var _conclusion = /*#__PURE__*/ _interop_require_default(require("./node/conclusion"));
@@ -86,7 +87,7 @@ function _interop_require_default(obj) {
86
87
  };
87
88
  }
88
89
  var _obj;
89
- var nonTerminalNodeMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.TYPES_RULE_NAME, _types.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LABELS_RULE_NAME, _labels.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.ARGUMENT_RULE_NAME, _argument.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.DECLARATION_RULE_NAME, _declaration.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.META_ARGUMENT_RULE_NAME, _metaArgument.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.TYPE_DECLARATION_RULE_NAME, _type2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.TERM_SUBSTITUTION_RULE_NAME, _term1.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.FRAME_SUBSTITUTION_RULE_NAME, _frame1.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABEL_RULE_NAME, _parenthesisedLabel.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABELS_RULE_NAME, _parenthesisedLabels.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME, _statement1.default), _define_property(_obj, _ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME, _reference1.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
90
+ var nonTerminalNodeMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.TYPES_RULE_NAME, _types.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LABELS_RULE_NAME, _labels.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.ARGUMENT_RULE_NAME, _argument.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.SIGNATURE_RULE_NAME, _signature.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.DECLARATION_RULE_NAME, _declaration.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.META_ARGUMENT_RULE_NAME, _metaArgument.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.TYPE_DECLARATION_RULE_NAME, _type2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.TERM_SUBSTITUTION_RULE_NAME, _term1.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.FRAME_SUBSTITUTION_RULE_NAME, _frame1.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABEL_RULE_NAME, _parenthesisedLabel.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.PARENTHESISED_LABELS_RULE_NAME, _parenthesisedLabels.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME, _statement1.default), _define_property(_obj, _ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME, _reference1.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
90
91
  var _default = nonTerminalNodeMap;
91
92
 
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBQcmVtaXNlTm9kZSBmcm9tIFwiLi9ub2RlL3ByZW1pc2VcIjtcbmltcG9ydCBUaGVvcmVtTm9kZSBmcm9tIFwiLi9ub2RlL3RoZW9yZW1cIjtcbmltcG9ydCBBcmd1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9hcmd1bWVudFwiO1xuaW1wb3J0IFN1YnByb29mTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnByb29mXCI7XG5pbXBvcnQgUHJvcGVydHlOb2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlcIjtcbmltcG9ydCBNZXRhVHlwZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhVHlwZVwiO1xuaW1wb3J0IEVxdWFsaXR5Tm9kZSBmcm9tIFwiLi9ub2RlL2VxdWFsaXR5XCI7XG5pbXBvcnQgVmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvdmFyaWFibGVcIjtcbmltcG9ydCBTdGF0ZW1lbnROb2RlIGZyb20gXCIuL25vZGUvc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlTm9kZSBmcm9tIFwiLi9ub2RlL3JlZmVyZW5jZVwiO1xuaW1wb3J0IERlZHVjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWR1Y3Rpb25cIjtcbmltcG9ydCBKdWRnZW1lbnROb2RlIGZyb20gXCIuL25vZGUvanVkZ2VtZW50XCI7XG5pbXBvcnQgTWV0YUxlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL21ldGFMZW1tYVwiO1xuaW1wb3J0IFBhcmFtZXRlck5vZGUgZnJvbSBcIi4vbm9kZS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBEZXJpdmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Rlcml2YXRpb25cIjtcbmltcG9ydCBDb21iaW5hdG9yTm9kZSBmcm9tIFwiLi9ub2RlL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBDb25jbHVzaW9uTm9kZSBmcm9tIFwiLi9ub2RlL2NvbmNsdXNpb25cIjtcbmltcG9ydCBDb25qZWN0dXJlTm9kZSBmcm9tIFwiLi9ub2RlL2NvbmplY3R1cmVcIjtcbmltcG9ydCBTdXBwb3NpdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdXBwb3NpdGlvblwiO1xuaW1wb3J0IENvbnN0cnVjdG9yTm9kZSBmcm9tIFwiLi9ub2RlL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb25cIjtcbmltcG9ydCBNZXRhdGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhdGhlb3JlbVwiO1xuaW1wb3J0IE1ldGFBcmd1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhQXJndW1lbnRcIjtcbmltcG9ydCBNZXRhdmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvbWV0YXZhcmlhYmxlXCI7XG5pbXBvcnQgUHJvY2VkdXJlQ2FsbE5vZGUgZnJvbSBcIi4vbm9kZS9wcm9jZWR1cmVDYWxsXCI7XG5pbXBvcnQgU3ViRGVyaXZhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJEZXJpdmF0aW9uXCI7XG5pbXBvcnQgVHlwZUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IHR5cGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi90eXBlXCI7XG5pbXBvcnQgUHJvcGVydHlSZWxhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9wcm9wZXJ0eVJlbGF0aW9uXCJcbmltcG9ydCBEZWZpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgVGVybVN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vdGVybVwiO1xuaW1wb3J0IFByb3BlcnR5QXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxcIjtcbmltcG9ydCBDb250YWluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuaW1wb3J0IFNhdGlzZmllc0Fzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vc2F0aXNmaWVzXCI7XG5pbXBvcnQgUGFyZW50aGVzaXNlZExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9wYXJlbnRoZXNpc2VkTGFiZWxzXCJcbmltcG9ydCBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi92YXJpYWJsZVwiO1xuaW1wb3J0IFN0YXRlbWVudFN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnN0aXR1dGlvbi9yZWZlcmVuY2VcIjtcbmltcG9ydCBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tYmluYXRvclwiO1xuaW1wb3J0IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tcGxleFR5cGVcIjtcbmltcG9ydCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IFJVTEVfUlVMRV9OQU1FLFxuICAgICAgICAgU1RFUF9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRVNfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPT0ZfUlVMRV9OQU1FLFxuICAgICAgICAgRVJST1JfUlVMRV9OQU1FLFxuICAgICAgICAgRlJBTUVfUlVMRV9OQU1FLFxuICAgICAgICAgQVhJT01fUlVMRV9OQU1FLFxuICAgICAgICAgTEVNTUFfUlVMRV9OQU1FLFxuICAgICAgICAgTEFCRUxfUlVMRV9OQU1FLFxuICAgICAgICAgTEFCRUxTX1JVTEVfTkFNRSxcbiAgICAgICAgIFRIRU9SRU1fUlVMRV9OQU1FLFxuICAgICAgICAgUFJFTUlTRV9SVUxFX05BTUUsXG4gICAgICAgICBBUkdVTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBTVUJQUk9PRl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9SVUxFX05BTUUsXG4gICAgICAgICBFUVVBTElUWV9SVUxFX05BTUUsXG4gICAgICAgICBWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBX1RZUEVfUlVMRV9OQU1FLFxuICAgICAgICAgREVEVUNUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBQQVJBTUVURVJfUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBX0xFTU1BX1JVTEVfTkFNRSxcbiAgICAgICAgIERFUklWQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT05DTFVTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkpFQ1RVUkVfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OU1RSVUNUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VQUE9TSVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVRIRU9SRU1fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9SRUxBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBub25UZXJtaW5hbE5vZGVNYXAgPSB7XG4gIFtSVUxFX1JVTEVfTkFNRV06IFJ1bGVOb2RlLFxuICBbU1RFUF9SVUxFX05BTUVdOiBTdGVwTm9kZSxcbiAgW1RFUk1fUlVMRV9OQU1FXTogVGVybU5vZGUsXG4gIFtUWVBFX1JVTEVfTkFNRV06IFR5cGVOb2RlLFxuICBbVFlQRVNfUlVMRV9OQU1FXTogVHlwZXNOb2RlLFxuICBbRVJST1JfUlVMRV9OQU1FXTogRXJyb3JOb2RlLFxuICBbRlJBTUVfUlVMRV9OQU1FXTogRnJhbWVOb2RlLFxuICBbTEVNTUFfUlVMRV9OQU1FXTogTGVtbWFOb2RlLFxuICBbQVhJT01fUlVMRV9OQU1FXTogQXhpb21Ob2RlLFxuICBbUFJPT0ZfUlVMRV9OQU1FXTogUHJvb2ZOb2RlLFxuICBbTEFCRUxfUlVMRV9OQU1FXTogTGFiZWxOb2RlLFxuICBbTEFCRUxTX1JVTEVfTkFNRV06IExhYmVsc05vZGUsXG4gIFtUSEVPUkVNX1JVTEVfTkFNRV06IFRoZW9yZW1Ob2RlLFxuICBbUFJFTUlTRV9SVUxFX05BTUVdOiBQcmVtaXNlTm9kZSxcbiAgW0FSR1VNRU5UX1JVTEVfTkFNRV06IEFyZ3VtZW50Tm9kZSxcbiAgW1BST1BFUlRZX1JVTEVfTkFNRV06IFByb3BlcnR5Tm9kZSxcbiAgW1NVQlBST09GX1JVTEVfTkFNRV06IFN1YnByb29mTm9kZSxcbiAgW0VRVUFMSVRZX1JVTEVfTkFNRV06IEVxdWFsaXR5Tm9kZSxcbiAgW1ZBUklBQkxFX1JVTEVfTkFNRV06IFZhcmlhYmxlTm9kZSxcbiAgW1JFRkVSRU5DRV9SVUxFX05BTUVdOiBSZWZlcmVuY2VOb2RlLFxuICBbSlVER0VNRU5UX1JVTEVfTkFNRV06IEp1ZGdlbWVudE5vZGUsXG4gIFtNRVRBX1RZUEVfUlVMRV9OQU1FXTogTWV0YVR5cGVOb2RlLFxuICBbREVEVUNUSU9OX1JVTEVfTkFNRV06IERlZHVjdGlvbk5vZGUsXG4gIFtQQVJBTUVURVJfUlVMRV9OQU1FXTogUGFyYW1ldGVyTm9kZSxcbiAgW1NUQVRFTUVOVF9SVUxFX05BTUVdOiBTdGF0ZW1lbnROb2RlLFxuICBbTUVUQV9MRU1NQV9SVUxFX05BTUVdOiBNZXRhTGVtbWFOb2RlLFxuICBbQ09NQklOQVRPUl9SVUxFX05BTUVdOiBDb21iaW5hdG9yTm9kZSxcbiAgW0NPTkNMVVNJT05fUlVMRV9OQU1FXTogQ29uY2x1c2lvbk5vZGUsXG4gIFtDT05KRUNUVVJFX1JVTEVfTkFNRV06IENvbmplY3R1cmVOb2RlLFxuICBbREVSSVZBVElPTl9SVUxFX05BTUVdOiBEZXJpdmF0aW9uTm9kZSxcbiAgW1NVUFBPU0lUSU9OX1JVTEVfTkFNRV06IFN1cHBvc2l0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX1JVTEVfTkFNRV06IENvbnN0cnVjdG9yTm9kZSxcbiAgW0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IERlY2xhcmF0aW9uTm9kZSxcbiAgW01FVEFUSEVPUkVNX1JVTEVfTkFNRV06IE1ldGF0aGVvcmVtTm9kZSxcbiAgW01FVEFWQVJJQUJMRV9SVUxFX05BTUVdOiBNZXRhdmFyaWFibGVOb2RlLFxuICBbTUVUQV9BUkdVTUVOVF9SVUxFX05BTUVdOiBNZXRhQXJndW1lbnROb2RlLFxuICBbVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogVHlwZUFzc2VydGlvbk5vZGUsXG4gIFtQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUVdOiBQcm9jZWR1cmVDYWxsTm9kZSxcbiAgW1NVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRV06IFN1YkRlcml2YXRpb25Ob2RlLFxuICBbVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiB0eXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlSZWxhdGlvbk5vZGUsXG4gIFtERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBEZWZpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW1RFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IFRlcm1TdWJzdGl0dXRpb25Ob2RlLFxuICBbU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFN1YnByb29mQXNzZXJ0aW9uTm9kZSxcbiAgW1BST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eUFzc2VydGlvbk5vZGUsXG4gIFtGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FXTogRnJhbWVTdWJzdGl0dXRpb25Ob2RlLFxuICBbUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUVdOiBQYXJlbnRoZXNpc2VkTGFiZWxOb2RlLFxuICBbU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlLFxuICBbQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBDb250YWluZWRBc3NlcnRpb25Ob2RlLFxuICBbUEFSRU5USEVTSVNFRF9MQUJFTFNfUlVMRV9OQU1FXTogUGFyZW50aGVzaXNlZExhYmVsc05vZGUsXG4gIFtWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgW1BST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLFxuICBbU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlLFxuICBbUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBSZWZlcmVuY2VTdWJzdGl0dXRpb25Ob2RlLFxuICBbQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBub25UZXJtaW5hbE5vZGVNYXA7XG4iXSwibmFtZXMiOlsibm9uVGVybWluYWxOb2RlTWFwIiwiUlVMRV9SVUxFX05BTUUiLCJSdWxlTm9kZSIsIlNURVBfUlVMRV9OQU1FIiwiU3RlcE5vZGUiLCJURVJNX1JVTEVfTkFNRSIsIlRlcm1Ob2RlIiwiVFlQRV9SVUxFX05BTUUiLCJUeXBlTm9kZSIsIlRZUEVTX1JVTEVfTkFNRSIsIlR5cGVzTm9kZSIsIkVSUk9SX1JVTEVfTkFNRSIsIkVycm9yTm9kZSIsIkZSQU1FX1JVTEVfTkFNRSIsIkZyYW1lTm9kZSIsIkxFTU1BX1JVTEVfTkFNRSIsIkxlbW1hTm9kZSIsIkFYSU9NX1JVTEVfTkFNRSIsIkF4aW9tTm9kZSIsIlBST09GX1JVTEVfTkFNRSIsIlByb29mTm9kZSIsIkxBQkVMX1JVTEVfTkFNRSIsIkxhYmVsTm9kZSIsIkxBQkVMU19SVUxFX05BTUUiLCJMYWJlbHNOb2RlIiwiVEhFT1JFTV9SVUxFX05BTUUiLCJUaGVvcmVtTm9kZSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwiUHJlbWlzZU5vZGUiLCJBUkdVTUVOVF9SVUxFX05BTUUiLCJBcmd1bWVudE5vZGUiLCJQUk9QRVJUWV9SVUxFX05BTUUiLCJQcm9wZXJ0eU5vZGUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJTdWJwcm9vZk5vZGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJFcXVhbGl0eU5vZGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJWYXJpYWJsZU5vZGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUmVmZXJlbmNlTm9kZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJKdWRnZW1lbnROb2RlIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIk1ldGFUeXBlTm9kZSIsIkRFRFVDVElPTl9SVUxFX05BTUUiLCJEZWR1Y3Rpb25Ob2RlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsIlBhcmFtZXRlck5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiU3RhdGVtZW50Tm9kZSIsIk1FVEFfTEVNTUFfUlVMRV9OQU1FIiwiTWV0YUxlbW1hTm9kZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiQ29tYmluYXRvck5vZGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsIkNvbmNsdXNpb25Ob2RlIiwiQ09OSkVDVFVSRV9SVUxFX05BTUUiLCJDb25qZWN0dXJlTm9kZSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRGVyaXZhdGlvbk5vZGUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJTdXBwb3NpdGlvbk5vZGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJDb25zdHJ1Y3Rvck5vZGUiLCJERUNMQVJBVElPTl9SVUxFX05BTUUiLCJEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVEhFT1JFTV9SVUxFX05BTUUiLCJNZXRhdGhlb3JlbU5vZGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlTm9kZSIsIk1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FIiwiTWV0YUFyZ3VtZW50Tm9kZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlR5cGVBc3NlcnRpb25Ob2RlIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwiUHJvY2VkdXJlQ2FsbE5vZGUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTdWJEZXJpdmF0aW9uTm9kZSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsIlByb3BlcnR5UmVsYXRpb25Ob2RlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiRGVmaW5lZEFzc2VydGlvbk5vZGUiLCJURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJUZXJtU3Vic3RpdHV0aW9uTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSIsIlJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBcUxBOzs7ZUFBQTs7OzJEQW5McUI7MkRBQ0E7MkRBQ0E7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7NkRBQ0M7OERBQ0M7OERBQ0E7K0RBQ0M7K0RBQ0E7K0RBQ0E7K0RBQ0E7K0RBQ0E7K0RBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIjtcbmltcG9ydCBSdWxlTm9kZSBmcm9tIFwiLi9ub2RlL3J1bGVcIjtcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3N0ZXBcIjtcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIjtcbmltcG9ydCBUeXBlc05vZGUgZnJvbSBcIi4vbm9kZS90eXBlc1wiO1xuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCI7XG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIjtcbmltcG9ydCBBeGlvbU5vZGUgZnJvbSBcIi4vbm9kZS9heGlvbVwiO1xuaW1wb3J0IExlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL2xlbW1hXCI7XG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIjtcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiO1xuaW1wb3J0IExhYmVsc05vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbHNcIjtcbmltcG9ydCBQcmVtaXNlTm9kZSBmcm9tIFwiLi9ub2RlL3ByZW1pc2VcIjtcbmltcG9ydCBUaGVvcmVtTm9kZSBmcm9tIFwiLi9ub2RlL3RoZW9yZW1cIjtcbmltcG9ydCBBcmd1bWVudE5vZGUgZnJvbSBcIi4vbm9kZS9hcmd1bWVudFwiO1xuaW1wb3J0IFN1YnByb29mTm9kZSBmcm9tIFwiLi9ub2RlL3N1YnByb29mXCI7XG5pbXBvcnQgUHJvcGVydHlOb2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlcIjtcbmltcG9ydCBNZXRhVHlwZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhVHlwZVwiO1xuaW1wb3J0IEVxdWFsaXR5Tm9kZSBmcm9tIFwiLi9ub2RlL2VxdWFsaXR5XCI7XG5pbXBvcnQgVmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvdmFyaWFibGVcIjtcbmltcG9ydCBTdGF0ZW1lbnROb2RlIGZyb20gXCIuL25vZGUvc3RhdGVtZW50XCI7XG5pbXBvcnQgUmVmZXJlbmNlTm9kZSBmcm9tIFwiLi9ub2RlL3JlZmVyZW5jZVwiO1xuaW1wb3J0IERlZHVjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWR1Y3Rpb25cIjtcbmltcG9ydCBKdWRnZW1lbnROb2RlIGZyb20gXCIuL25vZGUvanVkZ2VtZW50XCI7XG5pbXBvcnQgTWV0YUxlbW1hTm9kZSBmcm9tIFwiLi9ub2RlL21ldGFMZW1tYVwiO1xuaW1wb3J0IFBhcmFtZXRlck5vZGUgZnJvbSBcIi4vbm9kZS9wYXJhbWV0ZXJcIjtcbmltcG9ydCBTaWduYXR1cmVOb2RlIGZyb20gXCIuL25vZGUvc2lnbmF0dXJlXCI7XG5pbXBvcnQgRGVyaXZhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZXJpdmF0aW9uXCI7XG5pbXBvcnQgQ29tYmluYXRvck5vZGUgZnJvbSBcIi4vbm9kZS9jb21iaW5hdG9yXCI7XG5pbXBvcnQgQ29uY2x1c2lvbk5vZGUgZnJvbSBcIi4vbm9kZS9jb25jbHVzaW9uXCI7XG5pbXBvcnQgQ29uamVjdHVyZU5vZGUgZnJvbSBcIi4vbm9kZS9jb25qZWN0dXJlXCI7XG5pbXBvcnQgU3VwcG9zaXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3VwcG9zaXRpb25cIjtcbmltcG9ydCBDb25zdHJ1Y3Rvck5vZGUgZnJvbSBcIi4vbm9kZS9jb25zdHJ1Y3RvclwiO1xuaW1wb3J0IERlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uXCI7XG5pbXBvcnQgTWV0YXRoZW9yZW1Ob2RlIGZyb20gXCIuL25vZGUvbWV0YXRoZW9yZW1cIjtcbmltcG9ydCBNZXRhQXJndW1lbnROb2RlIGZyb20gXCIuL25vZGUvbWV0YUFyZ3VtZW50XCI7XG5pbXBvcnQgTWV0YXZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL21ldGF2YXJpYWJsZVwiO1xuaW1wb3J0IFByb2NlZHVyZUNhbGxOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlQ2FsbFwiO1xuaW1wb3J0IFN1YkRlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3ViRGVyaXZhdGlvblwiO1xuaW1wb3J0IFR5cGVBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3R5cGVcIjtcbmltcG9ydCB0eXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdHlwZVwiO1xuaW1wb3J0IFByb3BlcnR5UmVsYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlSZWxhdGlvblwiXG5pbXBvcnQgRGVmaW5lZEFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vZGVmaW5lZFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3Rlcm1cIjtcbmltcG9ydCBQcm9wZXJ0eUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vcHJvcGVydHlcIjtcbmltcG9ydCBTdWJwcm9vZkFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vc3VicHJvb2ZcIjtcbmltcG9ydCBGcmFtZVN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vZnJhbWVcIjtcbmltcG9ydCBQYXJlbnRoZXNpc2VkTGFiZWxOb2RlIGZyb20gXCIuL25vZGUvcGFyZW50aGVzaXNlZExhYmVsXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3NhdGlzZmllc1wiO1xuaW1wb3J0IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIGZyb20gXCIuL25vZGUvcGFyZW50aGVzaXNlZExhYmVsc1wiXG5pbXBvcnQgUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCBTdGF0ZW1lbnRTdWJzdGl0dXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3Vic3RpdHV0aW9uL3N0YXRlbWVudFwiO1xuaW1wb3J0IFJlZmVyZW5jZVN1YnN0aXR1dGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJzdGl0dXRpb24vcmVmZXJlbmNlXCI7XG5pbXBvcnQgY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbXBsZXhUeXBlXCI7XG5pbXBvcnQgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9jb25zdHJ1Y3RvclwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBSVUxFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNURVBfUlVMRV9OQU1FLFxuICAgICAgICAgVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVTX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST09GX1JVTEVfTkFNRSxcbiAgICAgICAgIEVSUk9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1JVTEVfTkFNRSxcbiAgICAgICAgIEFYSU9NX1JVTEVfTkFNRSxcbiAgICAgICAgIExFTU1BX1JVTEVfTkFNRSxcbiAgICAgICAgIExBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgIExBQkVMU19SVUxFX05BTUUsXG4gICAgICAgICBUSEVPUkVNX1JVTEVfTkFNRSxcbiAgICAgICAgIFBSRU1JU0VfUlVMRV9OQU1FLFxuICAgICAgICAgQVJHVU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfUlVMRV9OQU1FLFxuICAgICAgICAgRVFVQUxJVFlfUlVMRV9OQU1FLFxuICAgICAgICAgVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQV9UWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNJR05BVFVSRV9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSlVER0VNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFBBUkFNRVRFUl9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfTEVNTUFfUlVMRV9OQU1FLFxuICAgICAgICAgREVSSVZBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09OSkVDVFVSRV9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gICAgICAgICBERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVEhFT1JFTV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBTVUJfREVSSVZBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgIFBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTVBMRVhfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZU1hcCA9IHtcbiAgW1JVTEVfUlVMRV9OQU1FXTogUnVsZU5vZGUsXG4gIFtTVEVQX1JVTEVfTkFNRV06IFN0ZXBOb2RlLFxuICBbVEVSTV9SVUxFX05BTUVdOiBUZXJtTm9kZSxcbiAgW1RZUEVfUlVMRV9OQU1FXTogVHlwZU5vZGUsXG4gIFtUWVBFU19SVUxFX05BTUVdOiBUeXBlc05vZGUsXG4gIFtFUlJPUl9SVUxFX05BTUVdOiBFcnJvck5vZGUsXG4gIFtGUkFNRV9SVUxFX05BTUVdOiBGcmFtZU5vZGUsXG4gIFtMRU1NQV9SVUxFX05BTUVdOiBMZW1tYU5vZGUsXG4gIFtBWElPTV9SVUxFX05BTUVdOiBBeGlvbU5vZGUsXG4gIFtQUk9PRl9SVUxFX05BTUVdOiBQcm9vZk5vZGUsXG4gIFtMQUJFTF9SVUxFX05BTUVdOiBMYWJlbE5vZGUsXG4gIFtMQUJFTFNfUlVMRV9OQU1FXTogTGFiZWxzTm9kZSxcbiAgW1RIRU9SRU1fUlVMRV9OQU1FXTogVGhlb3JlbU5vZGUsXG4gIFtQUkVNSVNFX1JVTEVfTkFNRV06IFByZW1pc2VOb2RlLFxuICBbQVJHVU1FTlRfUlVMRV9OQU1FXTogQXJndW1lbnROb2RlLFxuICBbUFJPUEVSVFlfUlVMRV9OQU1FXTogUHJvcGVydHlOb2RlLFxuICBbU1VCUFJPT0ZfUlVMRV9OQU1FXTogU3VicHJvb2ZOb2RlLFxuICBbRVFVQUxJVFlfUlVMRV9OQU1FXTogRXF1YWxpdHlOb2RlLFxuICBbVkFSSUFCTEVfUlVMRV9OQU1FXTogVmFyaWFibGVOb2RlLFxuICBbTUVUQV9UWVBFX1JVTEVfTkFNRV06IE1ldGFUeXBlTm9kZSxcbiAgW1NJR05BVFVSRV9SVUxFX05BTUVdOiBTaWduYXR1cmVOb2RlLFxuICBbUkVGRVJFTkNFX1JVTEVfTkFNRV06IFJlZmVyZW5jZU5vZGUsXG4gIFtKVURHRU1FTlRfUlVMRV9OQU1FXTogSnVkZ2VtZW50Tm9kZSxcbiAgW0RFRFVDVElPTl9SVUxFX05BTUVdOiBEZWR1Y3Rpb25Ob2RlLFxuICBbUEFSQU1FVEVSX1JVTEVfTkFNRV06IFBhcmFtZXRlck5vZGUsXG4gIFtTVEFURU1FTlRfUlVMRV9OQU1FXTogU3RhdGVtZW50Tm9kZSxcbiAgW01FVEFfTEVNTUFfUlVMRV9OQU1FXTogTWV0YUxlbW1hTm9kZSxcbiAgW0NPTUJJTkFUT1JfUlVMRV9OQU1FXTogQ29tYmluYXRvck5vZGUsXG4gIFtDT05DTFVTSU9OX1JVTEVfTkFNRV06IENvbmNsdXNpb25Ob2RlLFxuICBbQ09OSkVDVFVSRV9SVUxFX05BTUVdOiBDb25qZWN0dXJlTm9kZSxcbiAgW0RFUklWQVRJT05fUlVMRV9OQU1FXTogRGVyaXZhdGlvbk5vZGUsXG4gIFtTVVBQT1NJVElPTl9SVUxFX05BTUVdOiBTdXBwb3NpdGlvbk5vZGUsXG4gIFtDT05TVFJVQ1RPUl9SVUxFX05BTUVdOiBDb25zdHJ1Y3Rvck5vZGUsXG4gIFtERUNMQVJBVElPTl9SVUxFX05BTUVdOiBEZWNsYXJhdGlvbk5vZGUsXG4gIFtNRVRBVEhFT1JFTV9SVUxFX05BTUVdOiBNZXRhdGhlb3JlbU5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfUlVMRV9OQU1FXTogTWV0YXZhcmlhYmxlTm9kZSxcbiAgW01FVEFfQVJHVU1FTlRfUlVMRV9OQU1FXTogTWV0YUFyZ3VtZW50Tm9kZSxcbiAgW1RZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFR5cGVBc3NlcnRpb25Ob2RlLFxuICBbUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FXTogUHJvY2VkdXJlQ2FsbE5vZGUsXG4gIFtTVUJfREVSSVZBVElPTl9SVUxFX05BTUVdOiBTdWJEZXJpdmF0aW9uTm9kZSxcbiAgW1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogdHlwZURlY2xhcmF0aW9uTm9kZSxcbiAgW1BST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5UmVsYXRpb25Ob2RlLFxuICBbREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogRGVmaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUVdOiBUZXJtU3Vic3RpdHV0aW9uTm9kZSxcbiAgW1NVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTdWJwcm9vZkFzc2VydGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlBc3NlcnRpb25Ob2RlLFxuICBbRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRV06IEZyYW1lU3Vic3RpdHV0aW9uTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FXTogUGFyZW50aGVzaXNlZExhYmVsTm9kZSxcbiAgW1NBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FXTogU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSxcbiAgW0NPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FXTogQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW1BBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRV06IFBhcmVudGhlc2lzZWRMYWJlbHNOb2RlLFxuICBbVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSxcbiAgW1NUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FXTogU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSxcbiAgW1JFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FXTogUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSxcbiAgW0NPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgbm9uVGVybWluYWxOb2RlTWFwO1xuIl0sIm5hbWVzIjpbIm5vblRlcm1pbmFsTm9kZU1hcCIsIlJVTEVfUlVMRV9OQU1FIiwiUnVsZU5vZGUiLCJTVEVQX1JVTEVfTkFNRSIsIlN0ZXBOb2RlIiwiVEVSTV9SVUxFX05BTUUiLCJUZXJtTm9kZSIsIlRZUEVfUlVMRV9OQU1FIiwiVHlwZU5vZGUiLCJUWVBFU19SVUxFX05BTUUiLCJUeXBlc05vZGUiLCJFUlJPUl9SVUxFX05BTUUiLCJFcnJvck5vZGUiLCJGUkFNRV9SVUxFX05BTUUiLCJGcmFtZU5vZGUiLCJMRU1NQV9SVUxFX05BTUUiLCJMZW1tYU5vZGUiLCJBWElPTV9SVUxFX05BTUUiLCJBeGlvbU5vZGUiLCJQUk9PRl9SVUxFX05BTUUiLCJQcm9vZk5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJMYWJlbE5vZGUiLCJMQUJFTFNfUlVMRV9OQU1FIiwiTGFiZWxzTm9kZSIsIlRIRU9SRU1fUlVMRV9OQU1FIiwiVGhlb3JlbU5vZGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsIlByZW1pc2VOb2RlIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiQXJndW1lbnROb2RlIiwiUFJPUEVSVFlfUlVMRV9OQU1FIiwiUHJvcGVydHlOb2RlIiwiU1VCUFJPT0ZfUlVMRV9OQU1FIiwiU3VicHJvb2ZOb2RlIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwiRXF1YWxpdHlOb2RlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiVmFyaWFibGVOb2RlIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIk1ldGFUeXBlTm9kZSIsIlNJR05BVFVSRV9SVUxFX05BTUUiLCJTaWduYXR1cmVOb2RlIiwiUkVGRVJFTkNFX1JVTEVfTkFNRSIsIlJlZmVyZW5jZU5vZGUiLCJKVURHRU1FTlRfUlVMRV9OQU1FIiwiSnVkZ2VtZW50Tm9kZSIsIkRFRFVDVElPTl9SVUxFX05BTUUiLCJEZWR1Y3Rpb25Ob2RlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsIlBhcmFtZXRlck5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiU3RhdGVtZW50Tm9kZSIsIk1FVEFfTEVNTUFfUlVMRV9OQU1FIiwiTWV0YUxlbW1hTm9kZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiQ29tYmluYXRvck5vZGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsIkNvbmNsdXNpb25Ob2RlIiwiQ09OSkVDVFVSRV9SVUxFX05BTUUiLCJDb25qZWN0dXJlTm9kZSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRGVyaXZhdGlvbk5vZGUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJTdXBwb3NpdGlvbk5vZGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJDb25zdHJ1Y3Rvck5vZGUiLCJERUNMQVJBVElPTl9SVUxFX05BTUUiLCJEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVEhFT1JFTV9SVUxFX05BTUUiLCJNZXRhdGhlb3JlbU5vZGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlTm9kZSIsIk1FVEFfQVJHVU1FTlRfUlVMRV9OQU1FIiwiTWV0YUFyZ3VtZW50Tm9kZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlR5cGVBc3NlcnRpb25Ob2RlIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwiUHJvY2VkdXJlQ2FsbE5vZGUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTdWJEZXJpdmF0aW9uTm9kZSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsIlByb3BlcnR5UmVsYXRpb25Ob2RlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiRGVmaW5lZEFzc2VydGlvbk5vZGUiLCJURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJUZXJtU3Vic3RpdHV0aW9uTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkZyYW1lU3Vic3RpdHV0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxfUlVMRV9OQU1FIiwiUGFyZW50aGVzaXNlZExhYmVsTm9kZSIsIlNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIlBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSIsIlBhcmVudGhlc2lzZWRMYWJlbHNOb2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uTm9kZSIsIlJFRkVSRU5DRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiUmVmZXJlbmNlU3Vic3RpdHV0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0xBOzs7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
package/lib/ruleNames.js CHANGED
@@ -135,6 +135,9 @@ _export(exports, {
135
135
  get SATISFIES_ASSERTION_RULE_NAME () {
136
136
  return SATISFIES_ASSERTION_RULE_NAME;
137
137
  },
138
+ get SIGNATURE_RULE_NAME () {
139
+ return SIGNATURE_RULE_NAME;
140
+ },
138
141
  get STATEMENT_RULE_NAME () {
139
142
  return STATEMENT_RULE_NAME;
140
143
  },
@@ -203,6 +206,7 @@ var PROPERTY_RULE_NAME = "property";
203
206
  var EQUALITY_RULE_NAME = "equality";
204
207
  var VARIABLE_RULE_NAME = "variable";
205
208
  var SUBPROOF_RULE_NAME = "subproof";
209
+ var SIGNATURE_RULE_NAME = "signature";
206
210
  var META_TYPE_RULE_NAME = "metaType";
207
211
  var PARAMETER_RULE_NAME = "parameter";
208
212
  var DEDUCTION_RULE_NAME = "deduction";
@@ -243,4 +247,4 @@ var CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
243
247
  var COMPLEX_TYPE_DECLARATION_RULE_NAME = "complexTypeDeclaration";
244
248
  var METAVARIABLE_DECLARATION_RULE_NAME = "metavariableDeclaration";
245
249
 
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBSVUxFX1JVTEVfTkFNRSA9IFwicnVsZVwiO1xuZXhwb3J0IGNvbnN0IFNURVBfUlVMRV9OQU1FID0gXCJzdGVwXCI7XG5leHBvcnQgY29uc3QgVEVSTV9SVUxFX05BTUUgPSBcInRlcm1cIjtcbmV4cG9ydCBjb25zdCBUWVBFX1JVTEVfTkFNRSA9IFwidHlwZVwiO1xuZXhwb3J0IGNvbnN0IFRZUEVTX1JVTEVfTkFNRSA9IFwidHlwZXNcIjtcbmV4cG9ydCBjb25zdCBMRU1NQV9SVUxFX05BTUUgPSBcImxlbW1hXCI7XG5leHBvcnQgY29uc3QgQVhJT01fUlVMRV9OQU1FID0gXCJheGlvbVwiO1xuZXhwb3J0IGNvbnN0IEVSUk9SX1JVTEVfTkFNRSA9IFwiZXJyb3JcIjtcbmV4cG9ydCBjb25zdCBGUkFNRV9SVUxFX05BTUUgPSBcImZyYW1lXCI7XG5leHBvcnQgY29uc3QgUFJPT0ZfUlVMRV9OQU1FID0gXCJwcm9vZlwiO1xuZXhwb3J0IGNvbnN0IExBQkVMX1JVTEVfTkFNRSA9IFwibGFiZWxcIjtcbmV4cG9ydCBjb25zdCBMQUJFTFNfUlVMRV9OQU1FID0gXCJsYWJlbHNcIjtcbmV4cG9ydCBjb25zdCBUSEVPUkVNX1JVTEVfTkFNRSA9IFwidGhlb3JlbVwiO1xuZXhwb3J0IGNvbnN0IFBSRU1JU0VfUlVMRV9OQU1FID0gXCJwcmVtaXNlXCI7XG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUlVMRV9OQU1FID0gXCJhcmd1bWVudFwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX1JVTEVfTkFNRSA9IFwicHJvcGVydHlcIjtcbmV4cG9ydCBjb25zdCBFUVVBTElUWV9SVUxFX05BTUUgPSBcImVxdWFsaXR5XCI7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJ2YXJpYWJsZVwiO1xuZXhwb3J0IGNvbnN0IFNVQlBST09GX1JVTEVfTkFNRSA9IFwic3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBNRVRBX1RZUEVfUlVMRV9OQU1FID0gXCJtZXRhVHlwZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUl9SVUxFX05BTUUgPSBcInBhcmFtZXRlclwiO1xuZXhwb3J0IGNvbnN0IERFRFVDVElPTl9SVUxFX05BTUUgPSBcImRlZHVjdGlvblwiO1xuZXhwb3J0IGNvbnN0IEpVREdFTUVOVF9SVUxFX05BTUUgPSBcImp1ZGdlbWVudFwiO1xuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRV9SVUxFX05BTUUgPSBcInJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVF9SVUxFX05BTUUgPSBcInN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IE1FVEFfTEVNTUFfUlVMRV9OQU1FID0gXCJtZXRhTGVtbWFcIjtcbmV4cG9ydCBjb25zdCBDT01CSU5BVE9SX1JVTEVfTkFNRSA9IFwiY29tYmluYXRvclwiO1xuZXhwb3J0IGNvbnN0IENPTkNMVVNJT05fUlVMRV9OQU1FID0gXCJjb25jbHVzaW9uXCI7XG5leHBvcnQgY29uc3QgQ09OSkVDVFVSRV9SVUxFX05BTUUgPSBcImNvbmplY3R1cmVcIjtcbmV4cG9ydCBjb25zdCBERVJJVkFUSU9OX1JVTEVfTkFNRSA9IFwiZGVyaXZhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFNVUFBPU0lUSU9OX1JVTEVfTkFNRSA9IFwic3VwcG9zaXRpb25cIjtcbmV4cG9ydCBjb25zdCBDT05TVFJVQ1RPUl9SVUxFX05BTUUgPSBcImNvbnN0cnVjdG9yXCI7XG5leHBvcnQgY29uc3QgREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJkZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IE1FVEFUSEVPUkVNX1JVTEVfTkFNRSA9IFwibWV0YXRoZW9yZW1cIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSA9IFwibWV0YUFyZ3VtZW50XCI7XG5leHBvcnQgY29uc3QgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FID0gXCJwcm9jZWR1cmVDYWxsXCI7XG5leHBvcnQgY29uc3QgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FID0gXCJzdWJEZXJpdmF0aW9uXCI7XG5leHBvcnQgY29uc3QgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FID0gXCJ0eXBlQXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcInR5cGVEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSA9IFwicHJvcGVydHlSZWxhdGlvblwiO1xuZXhwb3J0IGNvbnN0IERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwiZGVmaW5lZEFzc2VydGlvblwiO1xuZXhwb3J0IGNvbnN0IFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSA9IFwidGVybVN1YnN0aXR1dGlvblwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUgPSBcInByb3BlcnR5QXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwic3VicHJvb2ZBc3NlcnRpb25cIjtcbmV4cG9ydCBjb25zdCBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FID0gXCJmcmFtZVN1YnN0aXR1dGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FID0gXCJjb250YWluZWRBc3NlcnRpb25cIjtcbmV4cG9ydCBjb25zdCBTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwic2F0aXNmaWVzQXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUUgPSBcInBhcmVudGhlc2lzZWRMYWJlbFwiO1xuZXhwb3J0IGNvbnN0IFBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSA9IFwicGFyZW50aGVzaXNlZExhYmVsc1wiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwicHJvcGVydHlEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwidmFyaWFibGVEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FID0gXCJzdGF0ZW1lbnRTdWJzdGl0dXRpb25cIjtcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSA9IFwicmVmZXJlbmNlU3Vic3RpdHV0aW9uXCI7XG5leHBvcnQgY29uc3QgQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbWJpbmF0b3JEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwiY29uc3RydWN0b3JEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTVBMRVhfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbXBsZXhUeXBlRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblwiO1xuIl0sIm5hbWVzIjpbIkFSR1VNRU5UX1JVTEVfTkFNRSIsIkFYSU9NX1JVTEVfTkFNRSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ09OQ0xVU0lPTl9SVUxFX05BTUUiLCJDT05KRUNUVVJFX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsIkRFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwiRVJST1JfUlVMRV9OQU1FIiwiRlJBTUVfUlVMRV9OQU1FIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJMQUJFTFNfUlVMRV9OQU1FIiwiTEFCRUxfUlVMRV9OQU1FIiwiTEVNTUFfUlVMRV9OQU1FIiwiTUVUQVRIRU9SRU1fUlVMRV9OQU1FIiwiTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1FVEFfTEVNTUFfUlVMRV9OQU1FIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUUiLCJQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwiUFJPT0ZfUlVMRV9OQU1FIiwiUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlJVTEVfUlVMRV9OQU1FIiwiU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJTVEVQX1JVTEVfTkFNRSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJURVJNX1JVTEVfTkFNRSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlRIRU9SRU1fUlVMRV9OQU1FIiwiVFlQRVNfUlVMRV9OQU1FIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJUWVBFX1JVTEVfTkFNRSIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlZBUklBQkxFX1JVTEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBZ0JhQTtlQUFBQTs7UUFSQUM7ZUFBQUE7O1FBZ0RBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQThCQUM7ZUFBQUE7O1FBN0JBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBMkJBQztlQUFBQTs7UUF4QkFDO2VBQUFBOztRQWVBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBWEFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBWkFDO2VBQUFBOztRQWJBQztlQUFBQTs7UUFUQUM7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQXFDQUM7ZUFBQUE7O1FBdkJBQztlQUFBQTs7UUFYQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQUxBQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQXdCQUM7ZUFBQUE7O1FBdkJBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQU5BQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBbkNBQztlQUFBQTs7UUF1QkFDO2VBQUFBOztRQTNCQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQXpCQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOztRQThCQUM7ZUFBQUE7O1FBckRBQztlQUFBQTs7UUErQ0FDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBNEJBQztlQUFBQTs7UUFuREFDO2VBQUFBOztRQTJDQUM7ZUFBQUE7O1FBMUJBQztlQUFBQTs7UUFtQkFDO2VBQUFBOztRQVBBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBOUJBQztlQUFBQTs7UUFSQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUFnREFDO2VBQUFBOztRQWxDQUM7ZUFBQUE7OztBQWpCTixJQUFNakIsaUJBQWlCO0FBQ3ZCLElBQU1JLGlCQUFpQjtBQUN2QixJQUFNSyxpQkFBaUI7QUFDdkIsSUFBTU0saUJBQWlCO0FBQ3ZCLElBQU1ILGtCQUFrQjtBQUN4QixJQUFNL0Isa0JBQWtCO0FBQ3hCLElBQU1wQixrQkFBa0I7QUFDeEIsSUFBTWMsa0JBQWtCO0FBQ3hCLElBQU1DLGtCQUFrQjtBQUN4QixJQUFNaUIsa0JBQWtCO0FBQ3hCLElBQU1iLGtCQUFrQjtBQUN4QixJQUFNRCxtQkFBbUI7QUFDekIsSUFBTWdDLG9CQUFvQjtBQUMxQixJQUFNcEIsb0JBQW9CO0FBQzFCLElBQU0vQixxQkFBcUI7QUFDM0IsSUFBTXFDLHFCQUFxQjtBQUMzQixJQUFNdkIscUJBQXFCO0FBQzNCLElBQU0yQyxxQkFBcUI7QUFDM0IsSUFBTVgscUJBQXFCO0FBQzNCLElBQU1uQixzQkFBc0I7QUFDNUIsSUFBTUMsc0JBQXNCO0FBQzVCLElBQU1qQixzQkFBc0I7QUFDNUIsSUFBTU8sc0JBQXNCO0FBQzVCLElBQU1vQixzQkFBc0I7QUFDNUIsSUFBTUksc0JBQXNCO0FBQzVCLElBQU1oQix1QkFBdUI7QUFDN0IsSUFBTXZCLHVCQUF1QjtBQUM3QixJQUFNRSx1QkFBdUI7QUFDN0IsSUFBTUMsdUJBQXVCO0FBQzdCLElBQU1PLHVCQUF1QjtBQUM3QixJQUFNbUMsd0JBQXdCO0FBQzlCLElBQU14Qyx3QkFBd0I7QUFDOUIsSUFBTUUsd0JBQXdCO0FBQzlCLElBQU1ZLHdCQUF3QjtBQUM5QixJQUFNRSx5QkFBeUI7QUFDL0IsSUFBTUMsMEJBQTBCO0FBQ2hDLElBQU1PLDJCQUEyQjtBQUNqQyxJQUFNZSwyQkFBMkI7QUFDakMsSUFBTU0sMkJBQTJCO0FBQ2pDLElBQU1DLDZCQUE2QjtBQUNuQyxJQUFNbEIsOEJBQThCO0FBQ3BDLElBQU14Qiw4QkFBOEI7QUFDcEMsSUFBTXNDLDhCQUE4QjtBQUNwQyxJQUFNaEIsK0JBQStCO0FBQ3JDLElBQU1XLCtCQUErQjtBQUNyQyxJQUFNNUIsK0JBQStCO0FBQ3JDLElBQU1SLGdDQUFnQztBQUN0QyxJQUFNZ0MsZ0NBQWdDO0FBQ3RDLElBQU1YLGdDQUFnQztBQUN0QyxJQUFNRCxpQ0FBaUM7QUFDdkMsSUFBTU0saUNBQWlDO0FBQ3ZDLElBQU1xQixpQ0FBaUM7QUFDdkMsSUFBTWIsbUNBQW1DO0FBQ3pDLElBQU1KLG1DQUFtQztBQUN6QyxJQUFNckMsbUNBQW1DO0FBQ3pDLElBQU1LLG9DQUFvQztBQUMxQyxJQUFNSCxxQ0FBcUM7QUFDM0MsSUFBTW1CLHFDQUFxQyJ9
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBSVUxFX1JVTEVfTkFNRSA9IFwicnVsZVwiO1xuZXhwb3J0IGNvbnN0IFNURVBfUlVMRV9OQU1FID0gXCJzdGVwXCI7XG5leHBvcnQgY29uc3QgVEVSTV9SVUxFX05BTUUgPSBcInRlcm1cIjtcbmV4cG9ydCBjb25zdCBUWVBFX1JVTEVfTkFNRSA9IFwidHlwZVwiO1xuZXhwb3J0IGNvbnN0IFRZUEVTX1JVTEVfTkFNRSA9IFwidHlwZXNcIjtcbmV4cG9ydCBjb25zdCBMRU1NQV9SVUxFX05BTUUgPSBcImxlbW1hXCI7XG5leHBvcnQgY29uc3QgQVhJT01fUlVMRV9OQU1FID0gXCJheGlvbVwiO1xuZXhwb3J0IGNvbnN0IEVSUk9SX1JVTEVfTkFNRSA9IFwiZXJyb3JcIjtcbmV4cG9ydCBjb25zdCBGUkFNRV9SVUxFX05BTUUgPSBcImZyYW1lXCI7XG5leHBvcnQgY29uc3QgUFJPT0ZfUlVMRV9OQU1FID0gXCJwcm9vZlwiO1xuZXhwb3J0IGNvbnN0IExBQkVMX1JVTEVfTkFNRSA9IFwibGFiZWxcIjtcbmV4cG9ydCBjb25zdCBMQUJFTFNfUlVMRV9OQU1FID0gXCJsYWJlbHNcIjtcbmV4cG9ydCBjb25zdCBUSEVPUkVNX1JVTEVfTkFNRSA9IFwidGhlb3JlbVwiO1xuZXhwb3J0IGNvbnN0IFBSRU1JU0VfUlVMRV9OQU1FID0gXCJwcmVtaXNlXCI7XG5leHBvcnQgY29uc3QgQVJHVU1FTlRfUlVMRV9OQU1FID0gXCJhcmd1bWVudFwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX1JVTEVfTkFNRSA9IFwicHJvcGVydHlcIjtcbmV4cG9ydCBjb25zdCBFUVVBTElUWV9SVUxFX05BTUUgPSBcImVxdWFsaXR5XCI7XG5leHBvcnQgY29uc3QgVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJ2YXJpYWJsZVwiO1xuZXhwb3J0IGNvbnN0IFNVQlBST09GX1JVTEVfTkFNRSA9IFwic3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBTSUdOQVRVUkVfUlVMRV9OQU1FID0gXCJzaWduYXR1cmVcIjtcbmV4cG9ydCBjb25zdCBNRVRBX1RZUEVfUlVMRV9OQU1FID0gXCJtZXRhVHlwZVwiO1xuZXhwb3J0IGNvbnN0IFBBUkFNRVRFUl9SVUxFX05BTUUgPSBcInBhcmFtZXRlclwiO1xuZXhwb3J0IGNvbnN0IERFRFVDVElPTl9SVUxFX05BTUUgPSBcImRlZHVjdGlvblwiO1xuZXhwb3J0IGNvbnN0IEpVREdFTUVOVF9SVUxFX05BTUUgPSBcImp1ZGdlbWVudFwiO1xuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRV9SVUxFX05BTUUgPSBcInJlZmVyZW5jZVwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVF9SVUxFX05BTUUgPSBcInN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IE1FVEFfTEVNTUFfUlVMRV9OQU1FID0gXCJtZXRhTGVtbWFcIjtcbmV4cG9ydCBjb25zdCBDT01CSU5BVE9SX1JVTEVfTkFNRSA9IFwiY29tYmluYXRvclwiO1xuZXhwb3J0IGNvbnN0IENPTkNMVVNJT05fUlVMRV9OQU1FID0gXCJjb25jbHVzaW9uXCI7XG5leHBvcnQgY29uc3QgQ09OSkVDVFVSRV9SVUxFX05BTUUgPSBcImNvbmplY3R1cmVcIjtcbmV4cG9ydCBjb25zdCBERVJJVkFUSU9OX1JVTEVfTkFNRSA9IFwiZGVyaXZhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFNVUFBPU0lUSU9OX1JVTEVfTkFNRSA9IFwic3VwcG9zaXRpb25cIjtcbmV4cG9ydCBjb25zdCBDT05TVFJVQ1RPUl9SVUxFX05BTUUgPSBcImNvbnN0cnVjdG9yXCI7XG5leHBvcnQgY29uc3QgREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJkZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IE1FVEFUSEVPUkVNX1JVTEVfTkFNRSA9IFwibWV0YXRoZW9yZW1cIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVcIjtcbmV4cG9ydCBjb25zdCBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSA9IFwibWV0YUFyZ3VtZW50XCI7XG5leHBvcnQgY29uc3QgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FID0gXCJwcm9jZWR1cmVDYWxsXCI7XG5leHBvcnQgY29uc3QgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FID0gXCJzdWJEZXJpdmF0aW9uXCI7XG5leHBvcnQgY29uc3QgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FID0gXCJ0eXBlQXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcInR5cGVEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSA9IFwicHJvcGVydHlSZWxhdGlvblwiO1xuZXhwb3J0IGNvbnN0IERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwiZGVmaW5lZEFzc2VydGlvblwiO1xuZXhwb3J0IGNvbnN0IFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSA9IFwidGVybVN1YnN0aXR1dGlvblwiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUgPSBcInByb3BlcnR5QXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwic3VicHJvb2ZBc3NlcnRpb25cIjtcbmV4cG9ydCBjb25zdCBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FID0gXCJmcmFtZVN1YnN0aXR1dGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FID0gXCJjb250YWluZWRBc3NlcnRpb25cIjtcbmV4cG9ydCBjb25zdCBTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRSA9IFwic2F0aXNmaWVzQXNzZXJ0aW9uXCI7XG5leHBvcnQgY29uc3QgUEFSRU5USEVTSVNFRF9MQUJFTF9SVUxFX05BTUUgPSBcInBhcmVudGhlc2lzZWRMYWJlbFwiO1xuZXhwb3J0IGNvbnN0IFBBUkVOVEhFU0lTRURfTEFCRUxTX1JVTEVfTkFNRSA9IFwicGFyZW50aGVzaXNlZExhYmVsc1wiO1xuZXhwb3J0IGNvbnN0IFBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwicHJvcGVydHlEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwidmFyaWFibGVEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FID0gXCJzdGF0ZW1lbnRTdWJzdGl0dXRpb25cIjtcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSA9IFwicmVmZXJlbmNlU3Vic3RpdHV0aW9uXCI7XG5leHBvcnQgY29uc3QgQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbWJpbmF0b3JEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwiY29uc3RydWN0b3JEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IENPTVBMRVhfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcImNvbXBsZXhUeXBlRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblwiO1xuIl0sIm5hbWVzIjpbIkFSR1VNRU5UX1JVTEVfTkFNRSIsIkFYSU9NX1JVTEVfTkFNRSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiQ09OQ0xVU0lPTl9SVUxFX05BTUUiLCJDT05KRUNUVVJFX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsIkRFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwiRVJST1JfUlVMRV9OQU1FIiwiRlJBTUVfUlVMRV9OQU1FIiwiRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJMQUJFTFNfUlVMRV9OQU1FIiwiTEFCRUxfUlVMRV9OQU1FIiwiTEVNTUFfUlVMRV9OQU1FIiwiTUVUQVRIRU9SRU1fUlVMRV9OQU1FIiwiTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1FVEFfTEVNTUFfUlVMRV9OQU1FIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJQQVJFTlRIRVNJU0VEX0xBQkVMU19SVUxFX05BTUUiLCJQQVJFTlRIRVNJU0VEX0xBQkVMX1JVTEVfTkFNRSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwiUFJPT0ZfUlVMRV9OQU1FIiwiUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsIlJVTEVfUlVMRV9OQU1FIiwiU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTSUdOQVRVUkVfUlVMRV9OQU1FIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwiU1RFUF9SVUxFX05BTUUiLCJTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FIiwiU1VCUFJPT0ZfUlVMRV9OQU1FIiwiU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiVEVSTV9SVUxFX05BTUUiLCJURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJUSEVPUkVNX1JVTEVfTkFNRSIsIlRZUEVTX1JVTEVfTkFNRSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVFlQRV9SVUxFX05BTUUiLCJWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJWQVJJQUJMRV9SVUxFX05BTUUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdCYUE7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQWlEQUM7ZUFBQUE7O1FBNUJBQztlQUFBQTs7UUE4QkFDO2VBQUFBOztRQTdCQUM7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQTJCQUM7ZUFBQUE7O1FBeEJBQztlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQVhBQztlQUFBQTs7UUFvQkFDO2VBQUFBOztRQVpBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBVEFDO2VBQUFBOztRQUNBQztlQUFBQTs7UUFzQ0FDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBWkFDO2VBQUFBOztRQURBQztlQUFBQTs7UUFMQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUF3QkFDO2VBQUFBOztRQXZCQUM7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFOQUM7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQTZCQUM7ZUFBQUE7O1FBREFDO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBd0JBQztlQUFBQTs7UUE1QkFDO2VBQUFBOztRQW1DQUM7ZUFBQUE7O1FBT0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUExQkFDO2VBQUFBOztRQVNBQztlQUFBQTs7UUE4QkFDO2VBQUFBOztRQXREQUM7ZUFBQUE7O1FBZ0RBQztlQUFBQTs7UUE3QkFDO2VBQUFBOztRQU1BQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQXBEQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUEzQkFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBUEFDO2VBQUFBOztRQTdCQUM7ZUFBQUE7O1FBeUNBQztlQUFBQTs7UUEvQkFDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFtQ0FDO2VBQUFBOztRQUNBQztlQUFBQTs7UUFyQ0FDO2VBQUFBOztRQWlEQUM7ZUFBQUE7O1FBbkNBQztlQUFBQTs7O0FBakJOLElBQU1sQixpQkFBaUI7QUFDdkIsSUFBTUssaUJBQWlCO0FBQ3ZCLElBQU1LLGlCQUFpQjtBQUN2QixJQUFNTSxpQkFBaUI7QUFDdkIsSUFBTUgsa0JBQWtCO0FBQ3hCLElBQU1oQyxrQkFBa0I7QUFDeEIsSUFBTXBCLGtCQUFrQjtBQUN4QixJQUFNYyxrQkFBa0I7QUFDeEIsSUFBTUMsa0JBQWtCO0FBQ3hCLElBQU1pQixrQkFBa0I7QUFDeEIsSUFBTWIsa0JBQWtCO0FBQ3hCLElBQU1ELG1CQUFtQjtBQUN6QixJQUFNaUMsb0JBQW9CO0FBQzFCLElBQU1yQixvQkFBb0I7QUFDMUIsSUFBTS9CLHFCQUFxQjtBQUMzQixJQUFNcUMscUJBQXFCO0FBQzNCLElBQU12QixxQkFBcUI7QUFDM0IsSUFBTTRDLHFCQUFxQjtBQUMzQixJQUFNWCxxQkFBcUI7QUFDM0IsSUFBTUwsc0JBQXNCO0FBQzVCLElBQU1mLHNCQUFzQjtBQUM1QixJQUFNQyxzQkFBc0I7QUFDNUIsSUFBTWpCLHNCQUFzQjtBQUM1QixJQUFNTyxzQkFBc0I7QUFDNUIsSUFBTW9CLHNCQUFzQjtBQUM1QixJQUFNSyxzQkFBc0I7QUFDNUIsSUFBTWpCLHVCQUF1QjtBQUM3QixJQUFNdkIsdUJBQXVCO0FBQzdCLElBQU1FLHVCQUF1QjtBQUM3QixJQUFNQyx1QkFBdUI7QUFDN0IsSUFBTU8sdUJBQXVCO0FBQzdCLElBQU1vQyx3QkFBd0I7QUFDOUIsSUFBTXpDLHdCQUF3QjtBQUM5QixJQUFNRSx3QkFBd0I7QUFDOUIsSUFBTVksd0JBQXdCO0FBQzlCLElBQU1FLHlCQUF5QjtBQUMvQixJQUFNQywwQkFBMEI7QUFDaEMsSUFBTU8sMkJBQTJCO0FBQ2pDLElBQU1nQiwyQkFBMkI7QUFDakMsSUFBTU0sMkJBQTJCO0FBQ2pDLElBQU1DLDZCQUE2QjtBQUNuQyxJQUFNbkIsOEJBQThCO0FBQ3BDLElBQU14Qiw4QkFBOEI7QUFDcEMsSUFBTXVDLDhCQUE4QjtBQUNwQyxJQUFNakIsK0JBQStCO0FBQ3JDLElBQU1ZLCtCQUErQjtBQUNyQyxJQUFNN0IsK0JBQStCO0FBQ3JDLElBQU1SLGdDQUFnQztBQUN0QyxJQUFNZ0MsZ0NBQWdDO0FBQ3RDLElBQU1YLGdDQUFnQztBQUN0QyxJQUFNRCxpQ0FBaUM7QUFDdkMsSUFBTU0saUNBQWlDO0FBQ3ZDLElBQU1zQixpQ0FBaUM7QUFDdkMsSUFBTWIsbUNBQW1DO0FBQ3pDLElBQU1MLG1DQUFtQztBQUN6QyxJQUFNckMsbUNBQW1DO0FBQ3pDLElBQU1LLG9DQUFvQztBQUMxQyxJQUFNSCxxQ0FBcUM7QUFDM0MsSUFBTW1CLHFDQUFxQyJ9
@@ -267,7 +267,7 @@ var Substitutions = /*#__PURE__*/ function() {
267
267
  {
268
268
  key: "matchSubstitutions",
269
269
  value: function matchSubstitutions(substitutions) {
270
- var array = substitutions.getArray(), correlates = correlate(array, this.array, function(substitutionA, substitutionB) {
270
+ var array = substitutions.getArray(), arrayA = array, arrayB = this.array, correlates = correlate(arrayA, arrayB, function(substitutionA, substitutionB) {
271
271
  var substitutionAMatchesSubstitutionB = substitutionA.match(substitutionB);
272
272
  if (substitutionAMatchesSubstitutionB) {
273
273
  return true;
@@ -276,18 +276,6 @@ var Substitutions = /*#__PURE__*/ function() {
276
276
  return match;
277
277
  }
278
278
  },
279
- {
280
- key: "matchTerms",
281
- value: function matchTerms(terms) {
282
- var correlates = correlate(terms, this.array, function(term, substitution) {
283
- var substitutionTerm = substitution.getTerm(), substitutionTermEqualToTerm = substitutionTerm.isEqualTo(term);
284
- if (substitutionTermEqualToTerm) {
285
- return true;
286
- }
287
- }), termsMatch = correlates; ///
288
- return termsMatch;
289
- }
290
- },
291
279
  {
292
280
  key: "clear",
293
281
  value: function clear1() {
@@ -403,4 +391,4 @@ function leftDifference(arrayA, arrayB) {
403
391
  });
404
392
  }
405
393
 
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmluZCwgZmlyc3QsIGNsZWFyLCBwcnVuZSwgZmlsdGVyLCBjb21wcmVzcywgY29ycmVsYXRlIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3Vic3RpdHV0aW9ucyB7XG4gIGNvbnN0cnVjdG9yKGFycmF5LCBzYXZlZEFycmF5KSB7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICAgIHRoaXMuc2F2ZWRBcnJheSA9IHNhdmVkQXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldFNhdmVkQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZWRBcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuYXJyYXkubGVuZ3RoOyB9XG5cbiAgZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKSB7XG4gICAgbGV0IGZpcnN0U3Vic3RpdHV0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgZmlyc3RTdWJzdGl0dXRpb24gPSBmaXJzdCh0aGlzLmFycmF5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3RTdWJzdGl0dXRpb247XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVzKCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZXMgPSBbXTtcblxuICAgIHRoaXMuZm9yRWFjaFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSBzdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlKCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlcy5wdXNoKG1ldGF2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyhtZXRhdmFyaWFibGVzLCAobWV0YXZhcmlhYmxlQSwgbWV0YXZhcmlhYmxlQikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCID0gbWV0YXZhcmlhYmxlQi5pc0VxdWFsVG8obWV0YXZhcmlhYmxlQSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBRXF1YWxUb01ldGF2YXJpYWJsZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIG1hcFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5tYXAoY2FsbGJhY2spOyB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5maW5kKGNhbGxiYWNrKSB8fCBudWxsOyB9ICAvLy9cblxuICBzb21lU3Vic3RpdHV0aW9uKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZXZlcnlTdWJzdGl0dXRpb24oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuZXZlcnkoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbnMoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhcnJheSA9IGZpbmQodGhpcy5hcnJheSwgY2FsbGJhY2spLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21BcnJheShhcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblZhcmlhYmxlID0gc3Vic3RpdHV0aW9uLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25WYXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25WYXJpYWJsZUVxdWFsVG9WYXJpYWJsZSA9IHN1YnN0aXR1dGlvblZhcmlhYmxlLmlzRXF1YWxUbyh2YXJpYWJsZSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvblZhcmlhYmxlRXF1YWxUb1ZhcmlhYmxlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUgPSBzdWJzdGl0dXRpb24uaXNNZXRhdmFyaWFibGVFcXVhbFRvKG1ldGF2YXJpYWJsZSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblNpbXBsZSA9IHN1YnN0aXR1dGlvbi5pc1NpbXBsZSgpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uU2ltcGxlKSB7XG4gICAgICAgIGNvbnN0IHNpbXBsZVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gc2ltcGxlU3Vic3RpdHV0aW9uLmlzTWV0YXZhcmlhYmxlRXF1YWxUbyhtZXRhdmFyaWFibGUpO1xuXG4gICAgICAgIGlmIChzaW1wbGVTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kQ29tcGxleFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHtcbiAgICBjb25zdCBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbnMoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQ29tcGxleCA9IHN1YnN0aXR1dGlvbi5pc0NvbXBsZXgoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbkNvbXBsZXgpIHtcbiAgICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gY29tcGxleFN1YnN0aXR1dGlvbi5pc01ldGF2YXJpYWJsZUVxdWFsVG8obWV0YXZhcmlhYmxlKTtcblxuICAgICAgICBpZiAoY29tcGxleFN1YnN0aXR1dGlvbk1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uQSA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICBzdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4geyAgLy8vXG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gc3Vic3RpdHV0aW9uLmlzTWV0YXZhcmlhYmxlRXF1YWxUbyhtZXRhdmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uQlN1YnN0aXR1dGlvbkVxdWFsVG9TdWJzdGl0dXRpb25BID0gc3Vic3RpdHV0aW9uQi5pc1N1YnN0aXR1dGlvbkVxdWFsVG8oc3Vic3RpdHV0aW9uQSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvbkJTdWJzdGl0dXRpb25FcXVhbFRvU3Vic3RpdHV0aW9uQSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgaXNTdWJzdGl0dXRpb25QcmVzZW50QnlWYXJpYWJsZSh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUodmFyaWFibGUpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvblByZXNlbnQgPSAoc3Vic3RpdHV0aW9uICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25QcmVzZW50O1xuICB9XG5cbiAgaXNTaW1wbGVTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb25QcmVzZW50ID0gKHNpbXBsZVN1YnN0aXR1dGlvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudDtcbiAgfVxuXG4gIGlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKSB7XG4gICAgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24obWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24pOyAgLy8vXG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb25QcmVzZW50ID0gKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uUHJlc2VudDtcbiAgfVxuXG4gIGFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHNwZWNpZmljQ29udGV4dCkge1xuICAgIHRoaXMuYXJyYXkucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBBZGRlZCB0aGUgJHtzdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbi5gKTtcbiAgfVxuXG4gIHJlbW92ZVN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbkEgPSBzdWJzdGl0dXRpb247IC8vL1xuXG4gICAgcHJ1bmUodGhpcy5hcnJheSwgKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQiA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25BICE9PSBzdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBSZW1vdmVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmApO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMpIHtcbiAgICBjb25zdCBhcnJheSA9IHN1YnN0aXR1dGlvbnMuZ2V0QXJyYXkoKSxcbiAgICAgICAgICBjb3JyZWxhdGVzID0gY29ycmVsYXRlKGFycmF5LCB0aGlzLmFycmF5LCAoc3Vic3RpdHV0aW9uQSwgc3Vic3RpdHV0aW9uQikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQU1hdGNoZXNTdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uQS5tYXRjaChzdWJzdGl0dXRpb25CKTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbkFNYXRjaGVzU3Vic3RpdHV0aW9uQikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtYXRjaCA9IGNvcnJlbGF0ZXM7IC8vL1xuXG4gICAgcmV0dXJuIG1hdGNoO1xuICB9XG5cbiAgbWF0Y2hUZXJtcyh0ZXJtcykge1xuICAgIGNvbnN0IGNvcnJlbGF0ZXMgPSBjb3JyZWxhdGUodGVybXMsIHRoaXMuYXJyYXksICh0ZXJtLCBzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblRlcm0gPSBzdWJzdGl0dXRpb24uZ2V0VGVybSgpLFxuICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uVGVybS5pc0VxdWFsVG8odGVybSk7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGVybXNNYXRjaCA9IGNvcnJlbGF0ZXM7IC8vL1xuXG4gICAgcmV0dXJuIHRlcm1zTWF0Y2g7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjbGVhcih0aGlzLmFycmF5KTtcblxuICAgIHRoaXMuc2F2ZWRBcnJheSA9IG51bGw7XG4gIH1cblxuICByZXNvbHZlKGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gdGhpcy5nZXRNZXRhdmFyaWFibGVzKCk7XG5cbiAgICBtZXRhdmFyaWFibGVzLmZvckVhY2goKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRDb21wbGV4U3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9uc1Jlc29sdmVkID0gY29tcGxleFN1YnN0aXR1dGlvbnMuZXZlcnlTdWJzdGl0dXRpb24oKGNvbXBsZXhTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgICAgbGV0IHJlc29sdmVkO1xuXG4gICAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gY29tcGxleFN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgICAgICAgICAgcmVzb2x2ZWQgPSBzdWJzdGl0dXRpb24uaXNSZXNvbHZlZCgpO1xuXG4gICAgICAgICAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24ucmVzb2x2ZShzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChjb21wbGV4U3Vic3RpdHV0aW9uc1Jlc29sdmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXJlUmVzb2x2ZWQoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlcyA9IHRoaXMuZ2V0TWV0YXZhcmlhYmxlcygpLFxuICAgICAgICAgIHJlc29sdmVkID0gbWV0YXZhcmlhYmxlcy5ldmVyeSgobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZENvbXBsZXhTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25zUmVzb2x2ZWQgPSBjb21wbGV4U3Vic3RpdHV0aW9ucy5ldmVyeVN1YnN0aXR1dGlvbigoY29tcGxleFN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkID0gY29tcGxleFN1YnN0aXR1dGlvbi5pc1Jlc29sdmVkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXhTdWJzdGl0dXRpb25zUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH1cblxuICBzbmFwc2hvdCgpIHtcbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBbXG4gICAgICAuLi50aGlzLmFycmF5XG4gICAgXTtcbiAgfVxuXG4gIHJvbGxiYWNrKHNwZWNpZmljQ29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgLi4udGhpcy5hcnJheVxuICAgIF07XG5cbiAgICBsZWZ0RGlmZmVyZW5jZShhcnJheSwgdGhpcy5zYXZlZEFycmF5KTtcblxuICAgIGFycmF5LmZvckVhY2goKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBzcGVjaWZpY0NvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcnJheSA9IFtcbiAgICAgIC4uLnRoaXMuc2F2ZWRBcnJheVxuICAgIF07XG5cbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBudWxsO1xuICB9XG5cbiAgY29udGludWUoKSB7XG4gICAgdGhpcy5zYXZlZEFycmF5ID0gbnVsbDtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGxldCBzdHJpbmc7XG5cbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zU3RyaW5nID0gdGhpcy5hcnJheS5yZWR1Y2UoKHN1YnN0aXR1dGlvbnNTdHJpbmcsIHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgc3Vic3RpdHV0aW9uc1N0cmluZyA9IChzdWJzdGl0dXRpb25zU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1YnN0aXR1dGlvbnNTdHJpbmd9LCAke3N1YnN0aXR1dGlvblN0cmluZ31gO1xuXG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRpb25zU3RyaW5nO1xuICAgICAgfSwgbnVsbCk7XG5cbiAgICAgIHN0cmluZyA9IHN1YnN0aXR1dGlvbnNTdHJpbmc7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5KGFycmF5KSB7XG4gICAgY29uc3Qgc2F2ZWRBcnJheSA9IFtdLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIHNhdmVkQXJyYXkgPSBudWxsLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxufVxuXG5mdW5jdGlvbiBsZWZ0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJTdWJzdGl0dXRpb25zIiwiZmluZCIsImFycmF5VXRpbGl0aWVzIiwiZmlyc3QiLCJjbGVhciIsInBydW5lIiwiZmlsdGVyIiwiY29tcHJlc3MiLCJjb3JyZWxhdGUiLCJhcnJheSIsInNhdmVkQXJyYXkiLCJnZXRBcnJheSIsImdldFNhdmVkQXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRGaXJzdFN1YnN0aXR1dGlvbiIsImZpcnN0U3Vic3RpdHV0aW9uIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJmb3JFYWNoU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwicHVzaCIsIm1ldGF2YXJpYWJsZUEiLCJtZXRhdmFyaWFibGVCIiwibWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCIiwiaXNFcXVhbFRvIiwibWFwU3Vic3RpdHV0aW9uIiwiY2FsbGJhY2siLCJtYXAiLCJmaW5kU3Vic3RpdHV0aW9uIiwic29tZVN1YnN0aXR1dGlvbiIsInNvbWUiLCJldmVyeVN1YnN0aXR1dGlvbiIsImV2ZXJ5IiwiZm9yRWFjaCIsImZpbmRTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsImZyb21BcnJheSIsImZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlIiwidmFyaWFibGUiLCJzdWJzdGl0dXRpb25WYXJpYWJsZSIsImdldFZhcmlhYmxlIiwic3Vic3RpdHV0aW9uVmFyaWFibGVFcXVhbFRvVmFyaWFibGUiLCJmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlIiwic3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImlzTWV0YXZhcmlhYmxlRXF1YWxUbyIsImZpbmRTaW1wbGVTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZSIsInNpbXBsZVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblNpbXBsZSIsImlzU2ltcGxlIiwic2ltcGxlU3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImZpbmRDb21wbGV4U3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlIiwiY29tcGxleFN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25Db21wbGV4IiwiaXNDb21wbGV4IiwiY29tcGxleFN1YnN0aXR1dGlvbiIsImNvbXBsZXhTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlIiwiZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uQSIsInN1YnN0aXR1dGlvbkIiLCJzdWJzdGl0dXRpb25CU3Vic3RpdHV0aW9uRXF1YWxUb1N1YnN0aXR1dGlvbkEiLCJpc1N1YnN0aXR1dGlvbkVxdWFsVG8iLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uUHJlc2VudCIsImlzU2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlIiwic2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudCIsImlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwiYWRkU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNDb250ZXh0Iiwic3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJyZW1vdmVTdWJzdGl0dXRpb24iLCJtYXRjaFN1YnN0aXR1dGlvbnMiLCJjb3JyZWxhdGVzIiwic3Vic3RpdHV0aW9uQU1hdGNoZXNTdWJzdGl0dXRpb25CIiwibWF0Y2giLCJtYXRjaFRlcm1zIiwidGVybXMiLCJ0ZXJtIiwic3Vic3RpdHV0aW9uVGVybSIsImdldFRlcm0iLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJ0ZXJtc01hdGNoIiwicmVzb2x2ZSIsImdlbmVyYWxDb250ZXh0IiwiY29tcGxleFN1YnN0aXR1dGlvbnNSZXNvbHZlZCIsInJlc29sdmVkIiwiaXNSZXNvbHZlZCIsImFyZVJlc29sdmVkIiwiY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkIiwic25hcHNob3QiLCJyb2xsYmFjayIsImxlZnREaWZmZXJlbmNlIiwiY29udGludWUiLCJhc1N0cmluZyIsInN0cmluZyIsIkVNUFRZX1NUUklORyIsInN1YnN0aXR1dGlvbnNTdHJpbmciLCJyZWR1Y2UiLCJmcm9tTm90aGluZyIsImFycmF5QSIsImFycmF5QiIsImVsZW1lbnRBIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozt5QkFOVTt5QkFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQVFDLE9BQTJEQyx5QkFBYyxDQUF6RUQsTUFBTUUsUUFBcURELHlCQUFjLENBQW5FQyxPQUFPQyxRQUE4Q0YseUJBQWMsQ0FBNURFLE9BQU9DLFFBQXVDSCx5QkFBYyxDQUFyREcsT0FBT0MsU0FBZ0NKLHlCQUFjLENBQTlDSSxRQUFRQyxXQUF3QkwseUJBQWMsQ0FBdENLLFVBQVVDLFlBQWNOLHlCQUFjLENBQTVCTTtBQUV0QyxJQUFBLEFBQU1SLDhCQUFOO2FBQU1BLGNBQ1BTLEtBQUssRUFBRUMsVUFBVTtnQ0FEVlY7UUFFakIsSUFBSSxDQUFDUyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOztrQkFIRFY7O1lBTW5CVyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJ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
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdWJzdGl0dXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgZmluZCwgZmlyc3QsIGNsZWFyLCBwcnVuZSwgZmlsdGVyLCBjb21wcmVzcywgY29ycmVsYXRlIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3Vic3RpdHV0aW9ucyB7XG4gIGNvbnN0cnVjdG9yKGFycmF5LCBzYXZlZEFycmF5KSB7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICAgIHRoaXMuc2F2ZWRBcnJheSA9IHNhdmVkQXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldFNhdmVkQXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZWRBcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHsgcmV0dXJuIHRoaXMuYXJyYXkubGVuZ3RoOyB9XG5cbiAgZ2V0Rmlyc3RTdWJzdGl0dXRpb24oKSB7XG4gICAgbGV0IGZpcnN0U3Vic3RpdHV0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAobGVuZ3RoID4gMCkge1xuICAgICAgZmlyc3RTdWJzdGl0dXRpb24gPSBmaXJzdCh0aGlzLmFycmF5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlyc3RTdWJzdGl0dXRpb247XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVzKCkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZXMgPSBbXTtcblxuICAgIHRoaXMuZm9yRWFjaFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSBzdWJzdGl0dXRpb24uZ2V0TWV0YXZhcmlhYmxlKCk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlcy5wdXNoKG1ldGF2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb21wcmVzcyhtZXRhdmFyaWFibGVzLCAobWV0YXZhcmlhYmxlQSwgbWV0YXZhcmlhYmxlQikgPT4ge1xuICAgICAgY29uc3QgbWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCID0gbWV0YXZhcmlhYmxlQi5pc0VxdWFsVG8obWV0YXZhcmlhYmxlQSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVBRXF1YWxUb01ldGF2YXJpYWJsZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIG1hcFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5tYXAoY2FsbGJhY2spOyB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5maW5kKGNhbGxiYWNrKSB8fCBudWxsOyB9ICAvLy9cblxuICBzb21lU3Vic3RpdHV0aW9uKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZXZlcnlTdWJzdGl0dXRpb24oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuZXZlcnkoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaFN1YnN0aXR1dGlvbihjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbnMoY2FsbGJhY2spIHtcbiAgICBjb25zdCBhcnJheSA9IGZpbmQodGhpcy5hcnJheSwgY2FsbGJhY2spLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21BcnJheShhcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblZhcmlhYmxlID0gc3Vic3RpdHV0aW9uLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25WYXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25WYXJpYWJsZUVxdWFsVG9WYXJpYWJsZSA9IHN1YnN0aXR1dGlvblZhcmlhYmxlLmlzRXF1YWxUbyh2YXJpYWJsZSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvblZhcmlhYmxlRXF1YWxUb1ZhcmlhYmxlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRTdWJzdGl0dXRpb25zKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbk1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUgPSBzdWJzdGl0dXRpb24uaXNNZXRhdmFyaWFibGVFcXVhbFRvKG1ldGF2YXJpYWJsZSk7XG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBmaW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvblNpbXBsZSA9IHN1YnN0aXR1dGlvbi5pc1NpbXBsZSgpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uU2ltcGxlKSB7XG4gICAgICAgIGNvbnN0IHNpbXBsZVN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gc2ltcGxlU3Vic3RpdHV0aW9uLmlzTWV0YXZhcmlhYmxlRXF1YWxUbyhtZXRhdmFyaWFibGUpO1xuXG4gICAgICAgIGlmIChzaW1wbGVTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kQ29tcGxleFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHtcbiAgICBjb25zdCBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbnMoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQ29tcGxleCA9IHN1YnN0aXR1dGlvbi5pc0NvbXBsZXgoKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvbkNvbXBsZXgpIHtcbiAgICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gY29tcGxleFN1YnN0aXR1dGlvbi5pc01ldGF2YXJpYWJsZUVxdWFsVG8obWV0YXZhcmlhYmxlKTtcblxuICAgICAgICBpZiAoY29tcGxleFN1YnN0aXR1dGlvbk1ldGF2YXJpYWJsZUVxdWFsVG9NZXRhdmFyaWFibGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uQSA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICBzdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRTdWJzdGl0dXRpb24oKHN1YnN0aXR1dGlvbikgPT4geyAgLy8vXG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlID0gc3Vic3RpdHV0aW9uLmlzTWV0YXZhcmlhYmxlRXF1YWxUbyhtZXRhdmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25CID0gc3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uQlN1YnN0aXR1dGlvbkVxdWFsVG9TdWJzdGl0dXRpb25BID0gc3Vic3RpdHV0aW9uQi5pc1N1YnN0aXR1dGlvbkVxdWFsVG8oc3Vic3RpdHV0aW9uQSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvbkJTdWJzdGl0dXRpb25FcXVhbFRvU3Vic3RpdHV0aW9uQSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgaXNTdWJzdGl0dXRpb25QcmVzZW50QnlWYXJpYWJsZSh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbiA9IHRoaXMuZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUodmFyaWFibGUpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvblByZXNlbnQgPSAoc3Vic3RpdHV0aW9uICE9PSBudWxsKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25QcmVzZW50O1xuICB9XG5cbiAgaXNTaW1wbGVTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3Qgc2ltcGxlU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU2ltcGxlU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICBzaW1wbGVTdWJzdGl0dXRpb25QcmVzZW50ID0gKHNpbXBsZVN1YnN0aXR1dGlvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudDtcbiAgfVxuXG4gIGlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uKG1ldGF2YXJpYWJsZSwgc3Vic3RpdHV0aW9uKSB7XG4gICAgc3Vic3RpdHV0aW9uID0gdGhpcy5maW5kU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVBbmRTdWJzdGl0dXRpb24obWV0YXZhcmlhYmxlLCBzdWJzdGl0dXRpb24pOyAgLy8vXG5cbiAgICBjb25zdCBzdWJzdGl0dXRpb25QcmVzZW50ID0gKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uUHJlc2VudDtcbiAgfVxuXG4gIGFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHNwZWNpZmljQ29udGV4dCkge1xuICAgIHRoaXMuYXJyYXkucHVzaChzdWJzdGl0dXRpb24pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBBZGRlZCB0aGUgJHtzdWJzdGl0dXRpb25TdHJpbmd9IHN1YnN0aXR1dGlvbi5gKTtcbiAgfVxuXG4gIHJlbW92ZVN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGNvbnN0IHN1YnN0aXR1dGlvbkEgPSBzdWJzdGl0dXRpb247IC8vL1xuXG4gICAgcHJ1bmUodGhpcy5hcnJheSwgKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQiA9IHN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgIGlmIChzdWJzdGl0dXRpb25BICE9PSBzdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uU3RyaW5nID0gc3Vic3RpdHV0aW9uLmdldFN0cmluZygpO1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBSZW1vdmVkIHRoZSAke3N1YnN0aXR1dGlvblN0cmluZ30gc3Vic3RpdHV0aW9uLmApO1xuICB9XG5cbiAgbWF0Y2hTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMpIHtcbiAgICBjb25zdCBhcnJheSA9IHN1YnN0aXR1dGlvbnMuZ2V0QXJyYXkoKSxcbiAgICAgICAgICBhcnJheUEgPSBhcnJheSwgLy8vXG4gICAgICAgICAgYXJyYXlCID0gdGhpcy5hcnJheSwgIC8vL1xuICAgICAgICAgIGNvcnJlbGF0ZXMgPSBjb3JyZWxhdGUoYXJyYXlBLCBhcnJheUIsIChzdWJzdGl0dXRpb25BLCBzdWJzdGl0dXRpb25CKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25BTWF0Y2hlc1N1YnN0aXR1dGlvbkIgPSBzdWJzdGl0dXRpb25BLm1hdGNoKHN1YnN0aXR1dGlvbkIpO1xuXG4gICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uQU1hdGNoZXNTdWJzdGl0dXRpb25CKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hdGNoID0gY29ycmVsYXRlczsgLy8vXG5cbiAgICByZXR1cm4gbWF0Y2g7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBjbGVhcih0aGlzLmFycmF5KTtcblxuICAgIHRoaXMuc2F2ZWRBcnJheSA9IG51bGw7XG4gIH1cblxuICByZXNvbHZlKGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gdGhpcy5nZXRNZXRhdmFyaWFibGVzKCk7XG5cbiAgICBtZXRhdmFyaWFibGVzLmZvckVhY2goKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvbnMgPSB0aGlzLmZpbmRDb21wbGV4U3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgICBjb21wbGV4U3Vic3RpdHV0aW9uc1Jlc29sdmVkID0gY29tcGxleFN1YnN0aXR1dGlvbnMuZXZlcnlTdWJzdGl0dXRpb24oKGNvbXBsZXhTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgICAgbGV0IHJlc29sdmVkO1xuXG4gICAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gY29tcGxleFN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgICAgICAgICAgICAgcmVzb2x2ZWQgPSBzdWJzdGl0dXRpb24uaXNSZXNvbHZlZCgpO1xuXG4gICAgICAgICAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24ucmVzb2x2ZShzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChjb21wbGV4U3Vic3RpdHV0aW9uc1Jlc29sdmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXJlUmVzb2x2ZWQoKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlcyA9IHRoaXMuZ2V0TWV0YXZhcmlhYmxlcygpLFxuICAgICAgICAgIHJlc29sdmVkID0gbWV0YXZhcmlhYmxlcy5ldmVyeSgobWV0YXZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wbGV4U3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZENvbXBsZXhTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25zUmVzb2x2ZWQgPSBjb21wbGV4U3Vic3RpdHV0aW9ucy5ldmVyeVN1YnN0aXR1dGlvbigoY29tcGxleFN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcGxleFN1YnN0aXR1dGlvblJlc29sdmVkID0gY29tcGxleFN1YnN0aXR1dGlvbi5pc1Jlc29sdmVkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXhTdWJzdGl0dXRpb25zUmVzb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH1cblxuICBzbmFwc2hvdCgpIHtcbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBbXG4gICAgICAuLi50aGlzLmFycmF5XG4gICAgXTtcbiAgfVxuXG4gIHJvbGxiYWNrKHNwZWNpZmljQ29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5ID0gW1xuICAgICAgLi4udGhpcy5hcnJheVxuICAgIF07XG5cbiAgICBsZWZ0RGlmZmVyZW5jZShhcnJheSwgdGhpcy5zYXZlZEFycmF5KTtcblxuICAgIGFycmF5LmZvckVhY2goKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBzcGVjaWZpY0NvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcnJheSA9IFtcbiAgICAgIC4uLnRoaXMuc2F2ZWRBcnJheVxuICAgIF07XG5cbiAgICB0aGlzLnNhdmVkQXJyYXkgPSBudWxsO1xuICB9XG5cbiAgY29udGludWUoKSB7XG4gICAgdGhpcy5zYXZlZEFycmF5ID0gbnVsbDtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGxldCBzdHJpbmc7XG5cbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zU3RyaW5nID0gdGhpcy5hcnJheS5yZWR1Y2UoKHN1YnN0aXR1dGlvbnNTdHJpbmcsIHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25TdHJpbmcgPSBzdWJzdGl0dXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgc3Vic3RpdHV0aW9uc1N0cmluZyA9IChzdWJzdGl0dXRpb25zU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb25TdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1YnN0aXR1dGlvbnNTdHJpbmd9LCAke3N1YnN0aXR1dGlvblN0cmluZ31gO1xuXG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRpb25zU3RyaW5nO1xuICAgICAgfSwgbnVsbCk7XG5cbiAgICAgIHN0cmluZyA9IHN1YnN0aXR1dGlvbnNTdHJpbmc7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbUFycmF5KGFycmF5KSB7XG4gICAgY29uc3Qgc2F2ZWRBcnJheSA9IFtdLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBhcnJheSA9IFtdLFxuICAgICAgICAgIHNhdmVkQXJyYXkgPSBudWxsLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBuZXcgU3Vic3RpdHV0aW9ucyhhcnJheSwgc2F2ZWRBcnJheSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbiAgfVxufVxuXG5mdW5jdGlvbiBsZWZ0RGlmZmVyZW5jZShhcnJheUEsIGFycmF5Qikge1xuICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJTdWJzdGl0dXRpb25zIiwiZmluZCIsImFycmF5VXRpbGl0aWVzIiwiZmlyc3QiLCJjbGVhciIsInBydW5lIiwiZmlsdGVyIiwiY29tcHJlc3MiLCJjb3JyZWxhdGUiLCJhcnJheSIsInNhdmVkQXJyYXkiLCJnZXRBcnJheSIsImdldFNhdmVkQXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRGaXJzdFN1YnN0aXR1dGlvbiIsImZpcnN0U3Vic3RpdHV0aW9uIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJmb3JFYWNoU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YXZhcmlhYmxlIiwicHVzaCIsIm1ldGF2YXJpYWJsZUEiLCJtZXRhdmFyaWFibGVCIiwibWV0YXZhcmlhYmxlQUVxdWFsVG9NZXRhdmFyaWFibGVCIiwiaXNFcXVhbFRvIiwibWFwU3Vic3RpdHV0aW9uIiwiY2FsbGJhY2siLCJtYXAiLCJmaW5kU3Vic3RpdHV0aW9uIiwic29tZVN1YnN0aXR1dGlvbiIsInNvbWUiLCJldmVyeVN1YnN0aXR1dGlvbiIsImV2ZXJ5IiwiZm9yRWFjaCIsImZpbmRTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsImZyb21BcnJheSIsImZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlIiwidmFyaWFibGUiLCJzdWJzdGl0dXRpb25WYXJpYWJsZSIsImdldFZhcmlhYmxlIiwic3Vic3RpdHV0aW9uVmFyaWFibGVFcXVhbFRvVmFyaWFibGUiLCJmaW5kU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlIiwic3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImlzTWV0YXZhcmlhYmxlRXF1YWxUbyIsImZpbmRTaW1wbGVTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZSIsInNpbXBsZVN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvblNpbXBsZSIsImlzU2ltcGxlIiwic2ltcGxlU3Vic3RpdHV0aW9uTWV0YXZhcmlhYmxlRXF1YWxUb01ldGF2YXJpYWJsZSIsImZpbmRDb21wbGV4U3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlIiwiY29tcGxleFN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25Db21wbGV4IiwiaXNDb21wbGV4IiwiY29tcGxleFN1YnN0aXR1dGlvbiIsImNvbXBsZXhTdWJzdGl0dXRpb25NZXRhdmFyaWFibGVFcXVhbFRvTWV0YXZhcmlhYmxlIiwiZmluZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uQSIsInN1YnN0aXR1dGlvbkIiLCJzdWJzdGl0dXRpb25CU3Vic3RpdHV0aW9uRXF1YWxUb1N1YnN0aXR1dGlvbkEiLCJpc1N1YnN0aXR1dGlvbkVxdWFsVG8iLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uUHJlc2VudCIsImlzU2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlIiwic2ltcGxlU3Vic3RpdHV0aW9uUHJlc2VudCIsImlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlQW5kU3Vic3RpdHV0aW9uIiwiYWRkU3Vic3RpdHV0aW9uIiwic3BlY2lmaWNDb250ZXh0Iiwic3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJyZW1vdmVTdWJzdGl0dXRpb24iLCJtYXRjaFN1YnN0aXR1dGlvbnMiLCJhcnJheUEiLCJhcnJheUIiLCJjb3JyZWxhdGVzIiwic3Vic3RpdHV0aW9uQU1hdGNoZXNTdWJzdGl0dXRpb25CIiwibWF0Y2giLCJyZXNvbHZlIiwiZ2VuZXJhbENvbnRleHQiLCJjb21wbGV4U3Vic3RpdHV0aW9uc1Jlc29sdmVkIiwicmVzb2x2ZWQiLCJpc1Jlc29sdmVkIiwiYXJlUmVzb2x2ZWQiLCJjb21wbGV4U3Vic3RpdHV0aW9uUmVzb2x2ZWQiLCJzbmFwc2hvdCIsInJvbGxiYWNrIiwibGVmdERpZmZlcmVuY2UiLCJjb250aW51ZSIsImFzU3RyaW5nIiwic3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwic3Vic3RpdHV0aW9uc1N0cmluZyIsInJlZHVjZSIsImZyb21Ob3RoaW5nIiwiZWxlbWVudEEiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMi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
@@ -10,8 +10,6 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _dom = /*#__PURE__*/ _interop_require_default(require("../dom"));
12
12
  var _unifier = /*#__PURE__*/ _interop_require_default(require("../unifier"));
13
- var _term = /*#__PURE__*/ _interop_require_default(require("../substitution/term"));
14
- var _frame = /*#__PURE__*/ _interop_require_default(require("../substitution/frame"));
15
13
  var _query = require("../utilities/query");
16
14
  function _assert_this_initialized(self) {
17
15
  if (self === void 0) {
@@ -136,7 +134,7 @@ _define_property(MetaLevelUnifier, "maps", [
136
134
  var context, statementNode1;
137
135
  context = generalContext; ///
138
136
  statementNode1 = generalStatementNode; ///
139
- var frameSubstitution = _frame.default.fromStatementNode(statementNode1, context), termSubstitution = _term.default.fromStatementNode(statementNode1, context), metavariable = Metavariable.fromStatementNode(statementNode1, context), substitution = frameSubstitution || termSubstitution;
137
+ var TermSubstitution = _dom.default.TermSubstitution, FrameSubstitution = _dom.default.FrameSubstitution, frameSubstitution = FrameSubstitution.fromStatementNode(statementNode1, context), termSubstitution = TermSubstitution.fromStatementNode(statementNode1, context), metavariable = Metavariable.fromStatementNode(statementNode1, context), substitution = frameSubstitution || termSubstitution;
140
138
  context = specificContext; ///
141
139
  statementNode1 = specificStatementNode; ///
142
140
  var statement = Statement.fromStatementNode(statementNode1, context);
@@ -203,4 +201,4 @@ function unifyChildNodes(generalStatementNode, specificStatementNode, substituti
203
201
  return childNodesUnified;
204
202
  }
205
203
 
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVW5pZmllciBmcm9tIFwiLi4vdW5pZmllclwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5pbXBvcnQgRnJhbWVTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudFwiKSxcbiAgICAgIHRlcm1WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIGZyYW1lTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBkZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWNsYXJhdGlvbi9tZXRhdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBNZXRhTGV2ZWxVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZWRBdE1ldGFMZXZlbDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIHVuaWZpZWRBdE1ldGFMZXZlbCA9IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7IC8vL1xuXG4gICAgcmV0dXJuIHVuaWZpZWRBdE1ldGFMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICB1bmlmeTogKGdlbmVyYWxTdGF0ZW1lbnROb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgICAgc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgICBpZiAoc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgeyBNZXRhdmFyaWFibGUsIFN0YXRlbWVudCB9ID0gZG9tOyAvLy9cblxuICAgICAgICAgIGxldCBjb250ZXh0LFxuICAgICAgICAgICAgICBzdGF0ZW1lbnROb2RlO1xuXG4gICAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgICAgICBjb25zdCBmcmFtZVN1YnN0aXR1dGlvbiA9IEZyYW1lU3Vic3RpdHV0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gPSAoZnJhbWVTdWJzdGl0dXRpb24gfHwgdGVybVN1YnN0aXR1dGlvbik7XG5cbiAgICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAvLy9cblxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzcGVjaWZpY1N0YXRlbWVudE5vZGU7ICAvLy9cblxuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IFN0YXRlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KTtcblxuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBtZXRhdmFyaWFibGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb24sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNoaWxkTm9kZXNVbmlmaWVkID0gdW5pZnlDaGlsZE5vZGVzKGdlbmVyYWxTdGF0ZW1lbnROb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IGNoaWxkTm9kZXNVbmlmaWVkOyAvLy9cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogZGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICB1bmlmeTogKGdlbmVyYWxEZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljRGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCByZWZlcmVuY2VVbmlmaWVkO1xuXG4gICAgICAgIGNvbnN0IHsgUmVmZXJlbmNlLCBNZXRhdmFyaWFibGUgfSA9IGRvbTtcblxuICAgICAgICBsZXQgY29udGV4dCxcbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGU7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZ2VuZXJhbERlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZTsgIC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IHNwZWNpZmljRGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgICBjb25zdCByZWZlcmVuY2UgPSBSZWZlcmVuY2UuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgcmVmZXJlbmNlVW5pZmllZCA9IG1ldGF2YXJpYWJsZS51bmlmeVJlZmVyZW5jZShyZWZlcmVuY2UsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiByZWZlcmVuY2VVbmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogZnJhbWVOb2RlUXVlcnksXG4gICAgICB1bmlmeTogKGdlbmVyYWxGcmFtZU1ldGF2YXJpYWJsZU5vZGUsIHNwZWNpZmljRnJhbWVOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCBmcmFtZVVuaWZpZWQ7XG5cbiAgICAgICAgY29uc3QgeyBGcmFtZSwgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgICAgICAgIGZyYW1lTm9kZSA9IHNwZWNpZmljRnJhbWVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxGcmFtZU1ldGF2YXJpYWJsZU5vZGU7ICAvLy9cblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0OyAgLy8vXG5cbiAgICAgICAgY29uc3QgZnJhbWUgPSBGcmFtZS5mcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgZnJhbWVVbmlmaWVkID0gbWV0YXZhcmlhYmxlLnVuaWZ5RnJhbWUoZnJhbWUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiBmcmFtZVVuaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBzcGVjaWZpY05vZGVRdWVyeTogdGVybU5vZGVRdWVyeSxcbiAgICAgIHVuaWZ5OiAoZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUsIHNwZWNpZmljVGVybU5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHRlcm1VbmlmaWVkO1xuXG4gICAgICAgIGNvbnN0IHsgVGVybSwgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgICAgICAgdGVybU5vZGUgPSBzcGVjaWZpY1Rlcm1Ob2RlLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVOb2RlID0gZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGU7IC8vL1xuXG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgY29uc3QgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnN0IHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgdGVybVVuaWZpZWQgPSB2YXJpYWJsZS51bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHRlcm1VbmlmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YUxldmVsVW5pZmllciA9IG5ldyBNZXRhTGV2ZWxVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGFMZXZlbFVuaWZpZXI7XG5cbmZ1bmN0aW9uIHVuaWZ5Q2hpbGROb2RlcyhnZW5lcmFsU3RhdGVtZW50Tm9kZSwgc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gIGNvbnN0IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBnZW5lcmFsQ2hpbGROb2RlcyA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gbWV0YUxldmVsVW5pZmllci51bmlmeUNoaWxkTm9kZXMoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcywgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCksXG4gICAgICAgIGNoaWxkTm9kZXNVbmlmaWVkID0gY2hpbGROb2Rlc1ZlcmlmaWVkOyAvLy9cblxuICByZXR1cm4gY2hpbGROb2Rlc1VuaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImZyYW1lTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5IiwiZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJkZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIk1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsImdlbmVyYWxOb25UZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZSIsInN1YnN0aXR1dGlvbnMiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInVuaWZpZWRBdE1ldGFMZXZlbCIsIm5vblRlcm1pbmFsTm9kZVVuaWZpZWQiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsIlVuaWZpZXIiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsInNwZWNpZmljTm9kZVF1ZXJ5IiwiZ2VuZXJhbFN0YXRlbWVudE5vZGUiLCJzcGVjaWZpY1N0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRVbmlmaWVkIiwic3RhdGVtZW50Tm9kZSIsInNpbmd1bGFyTWV0YXZhcmlhYmxlTm9kZSIsImdldFNpbmd1bGFyTWV0YXZhcmlhYmxlTm9kZSIsIk1ldGF2YXJpYWJsZSIsImRvbSIsIlN0YXRlbWVudCIsImNvbnRleHQiLCJmcmFtZVN1YnN0aXR1dGlvbiIsIkZyYW1lU3Vic3RpdHV0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ0ZXJtU3Vic3RpdHV0aW9uIiwiVGVybVN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZSIsInN1YnN0aXR1dGlvbiIsInN0YXRlbWVudCIsInVuaWZ5U3RhdGVtZW50IiwiY2hpbGROb2Rlc1VuaWZpZWQiLCJ1bmlmeUNoaWxkTm9kZXMiLCJnZW5lcmFsRGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNEZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGUiLCJyZWZlcmVuY2VVbmlmaWVkIiwiUmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlTm9kZSIsImZyb21NZXRhdmFyaWFibGVOb2RlIiwicmVmZXJlbmNlIiwidW5pZnlSZWZlcmVuY2UiLCJnZW5lcmFsRnJhbWVNZXRhdmFyaWFibGVOb2RlIiwic3BlY2lmaWNGcmFtZU5vZGUiLCJmcmFtZVVuaWZpZWQiLCJGcmFtZSIsImZyYW1lTm9kZSIsImZyYW1lIiwiZnJvbUZyYW1lTm9kZSIsInVuaWZ5RnJhbWUiLCJnZW5lcmFsVGVybVZhcmlhYmxlTm9kZSIsInNwZWNpZmljVGVybU5vZGUiLCJ0ZXJtVW5pZmllZCIsIlRlcm0iLCJWYXJpYWJsZSIsInRlcm1Ob2RlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmcm9tVmFyaWFibGVOb2RlIiwidGVybSIsImZyb21UZXJtTm9kZSIsInVuaWZ5VGVybSIsIm1ldGFMZXZlbFVuaWZpZXIiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZW5lcmFsQ2hpbGROb2RlcyIsInNwZWNpZmljQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBdUpBOzs7ZUFBQTs7OzBEQXJKZ0I7OERBQ0k7MkRBQ1M7NERBQ0M7cUJBRUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxVQUMxQkMsaUJBQWlCRCxJQUFBQSxnQkFBUyxFQUFDLFdBQzNCRSxxQkFBcUJGLElBQUFBLGdCQUFTLEVBQUMsZUFDL0JHLHdCQUF3QkgsSUFBQUEsZ0JBQVMsRUFBQyxvQkFDbENJLDZCQUE2QkosSUFBQUEsZ0JBQVMsRUFBQyx5QkFDdkNLLG1DQUFtQ0wsSUFBQUEsZ0JBQVMsRUFBQztBQUVuRCxJQUFBLEFBQU1NLGlDQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1B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
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVW5pZmllciBmcm9tIFwiLi4vdW5pZmllclwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudFwiKSxcbiAgICAgIHRlcm1WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIGZyYW1lTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lL21ldGF2YXJpYWJsZSFcIiksXG4gICAgICBkZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9kZWNsYXJhdGlvbi9tZXRhdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBNZXRhTGV2ZWxVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZWRBdE1ldGFMZXZlbDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIHVuaWZpZWRBdE1ldGFMZXZlbCA9IG5vblRlcm1pbmFsTm9kZVVuaWZpZWQ7IC8vL1xuXG4gICAgcmV0dXJuIHVuaWZpZWRBdE1ldGFMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IHN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgIHNwZWNpZmljTm9kZVF1ZXJ5OiBzdGF0ZW1lbnROb2RlUXVlcnksXG4gICAgICB1bmlmeTogKGdlbmVyYWxTdGF0ZW1lbnROb2RlLCBzcGVjaWZpY1N0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGdlbmVyYWxTdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgICAgc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50Tm9kZS5nZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUoKTtcblxuICAgICAgICBpZiAoc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgeyBNZXRhdmFyaWFibGUsIFN0YXRlbWVudCB9ID0gZG9tOyAvLy9cblxuICAgICAgICAgIGxldCBjb250ZXh0LFxuICAgICAgICAgICAgICBzdGF0ZW1lbnROb2RlO1xuXG4gICAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBnZW5lcmFsU3RhdGVtZW50Tm9kZTsgLy8vXG5cbiAgICAgICAgICBjb25zdCB7IFRlcm1TdWJzdGl0dXRpb24sIEZyYW1lU3Vic3RpdHV0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgICAgZnJhbWVTdWJzdGl0dXRpb24gPSBGcmFtZVN1YnN0aXR1dGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICB0ZXJtU3Vic3RpdHV0aW9uID0gVGVybVN1YnN0aXR1dGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gKGZyYW1lU3Vic3RpdHV0aW9uIHx8IHRlcm1TdWJzdGl0dXRpb24pO1xuXG4gICAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgLy8vXG5cbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3BlY2lmaWNTdGF0ZW1lbnROb2RlOyAgLy8vXG5cbiAgICAgICAgICBjb25zdCBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbWV0YXZhcmlhYmxlLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjaGlsZE5vZGVzVW5pZmllZCA9IHVuaWZ5Q2hpbGROb2RlcyhnZW5lcmFsU3RhdGVtZW50Tm9kZSwgc3BlY2lmaWNTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBjaGlsZE5vZGVzVW5pZmllZDsgLy8vXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IGRlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGRlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChnZW5lcmFsRGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY0RlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgcmVmZXJlbmNlVW5pZmllZDtcblxuICAgICAgICBjb25zdCB7IFJlZmVyZW5jZSwgTWV0YXZhcmlhYmxlIH0gPSBkb207XG5cbiAgICAgICAgbGV0IGNvbnRleHQsXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlO1xuXG4gICAgICAgIGNvbnRleHQgPSBnZW5lcmFsQ29udGV4dDsgLy8vXG5cbiAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IGdlbmVyYWxEZWNsYXJhdGlvbk1ldGF2YXJpYWJsZU5vZGU7ICAvLy9cblxuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzcGVjaWZpY0RlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZTsgLy8vXG5cbiAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gUmVmZXJlbmNlLmZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHJlZmVyZW5jZVVuaWZpZWQgPSBtZXRhdmFyaWFibGUudW5pZnlSZWZlcmVuY2UocmVmZXJlbmNlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gcmVmZXJlbmNlVW5pZmllZDtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGdlbmVyYWxOb2RlUXVlcnk6IGZyYW1lTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IGZyYW1lTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChnZW5lcmFsRnJhbWVNZXRhdmFyaWFibGVOb2RlLCBzcGVjaWZpY0ZyYW1lTm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgICBsZXQgZnJhbWVVbmlmaWVkO1xuXG4gICAgICAgIGNvbnN0IHsgRnJhbWUsIE1ldGF2YXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBzcGVjaWZpY0ZyYW1lTm9kZSwgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBnZW5lcmFsRnJhbWVNZXRhdmFyaWFibGVOb2RlOyAgLy8vXG5cbiAgICAgICAgbGV0IGNvbnRleHQ7XG5cbiAgICAgICAgY29udGV4dCA9IGdlbmVyYWxDb250ZXh0OyAvLy9cblxuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnN0IGZyYW1lID0gRnJhbWUuZnJvbUZyYW1lTm9kZShmcmFtZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGZyYW1lVW5pZmllZCA9IG1ldGF2YXJpYWJsZS51bmlmeUZyYW1lKGZyYW1lLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gZnJhbWVVbmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgZ2VuZXJhbE5vZGVRdWVyeTogdGVybVZhcmlhYmxlTm9kZVF1ZXJ5LFxuICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB1bmlmeTogKGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlLCBzcGVjaWZpY1Rlcm1Ob2RlLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllZDtcblxuICAgICAgICBjb25zdCB7IFRlcm0sIFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgICAgICAgIHRlcm1Ob2RlID0gc3BlY2lmaWNUZXJtTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IGdlbmVyYWxUZXJtVmFyaWFibGVOb2RlOyAvLy9cblxuICAgICAgICBsZXQgY29udGV4dDtcblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7IC8vL1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIHJldHVybiB0ZXJtVW5pZmllZDtcbiAgICAgIH1cbiAgICB9XG4gIF07XG59XG5cbmNvbnN0IG1ldGFMZXZlbFVuaWZpZXIgPSBuZXcgTWV0YUxldmVsVW5pZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhTGV2ZWxVbmlmaWVyO1xuXG5mdW5jdGlvbiB1bmlmeUNoaWxkTm9kZXMoZ2VuZXJhbFN0YXRlbWVudE5vZGUsIHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbFN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIGdlbmVyYWxOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzID0gZ2VuZXJhbE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgZ2VuZXJhbENoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgIHNwZWNpZmljQ2hpbGROb2RlcyA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnlDaGlsZE5vZGVzKGdlbmVyYWxDaGlsZE5vZGVzLCBzcGVjaWZpY0NoaWxkTm9kZXMsIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpLFxuICAgICAgICBjaGlsZE5vZGVzVW5pZmllZCA9IGNoaWxkTm9kZXNWZXJpZmllZDsgLy8vXG5cbiAgcmV0dXJuIGNoaWxkTm9kZXNVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJmcmFtZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiZGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJNZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJzdWJzdGl0dXRpb25zIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJ1bmlmaWVkQXRNZXRhTGV2ZWwiLCJub25UZXJtaW5hbE5vZGVVbmlmaWVkIiwidW5pZnlOb25UZXJtaW5hbE5vZGUiLCJVbmlmaWVyIiwibWFwcyIsImdlbmVyYWxOb2RlUXVlcnkiLCJzcGVjaWZpY05vZGVRdWVyeSIsImdlbmVyYWxTdGF0ZW1lbnROb2RlIiwic3BlY2lmaWNTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VW5pZmllZCIsInN0YXRlbWVudE5vZGUiLCJzaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJnZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJNZXRhdmFyaWFibGUiLCJkb20iLCJTdGF0ZW1lbnQiLCJjb250ZXh0IiwiVGVybVN1YnN0aXR1dGlvbiIsIkZyYW1lU3Vic3RpdHV0aW9uIiwiZnJhbWVTdWJzdGl0dXRpb24iLCJmcm9tU3RhdGVtZW50Tm9kZSIsInRlcm1TdWJzdGl0dXRpb24iLCJtZXRhdmFyaWFibGUiLCJzdWJzdGl0dXRpb24iLCJzdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudCIsImNoaWxkTm9kZXNVbmlmaWVkIiwidW5pZnlDaGlsZE5vZGVzIiwiZ2VuZXJhbERlY2xhcmF0aW9uTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljRGVjbGFyYXRpb25NZXRhdmFyaWFibGVOb2RlIiwicmVmZXJlbmNlVW5pZmllZCIsIlJlZmVyZW5jZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmcm9tTWV0YXZhcmlhYmxlTm9kZSIsInJlZmVyZW5jZSIsInVuaWZ5UmVmZXJlbmNlIiwiZ2VuZXJhbEZyYW1lTWV0YXZhcmlhYmxlTm9kZSIsInNwZWNpZmljRnJhbWVOb2RlIiwiZnJhbWVVbmlmaWVkIiwiRnJhbWUiLCJmcmFtZU5vZGUiLCJmcmFtZSIsImZyb21GcmFtZU5vZGUiLCJ1bmlmeUZyYW1lIiwiZ2VuZXJhbFRlcm1WYXJpYWJsZU5vZGUiLCJzcGVjaWZpY1Rlcm1Ob2RlIiwidGVybVVuaWZpZWQiLCJUZXJtIiwiVmFyaWFibGUiLCJ0ZXJtTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlIiwiZnJvbVZhcmlhYmxlTm9kZSIsInRlcm0iLCJmcm9tVGVybU5vZGUiLCJ1bmlmeVRlcm0iLCJtZXRhTGV2ZWxVbmlmaWVyIiwiZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzIiwiZ2VuZXJhbENoaWxkTm9kZXMiLCJzcGVjaWZpY0NoaWxkTm9kZXMiLCJjaGlsZE5vZGVzVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNKQTs7O2VBQUE7OzswREFwSmdCOzhEQUNJO3FCQUVNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsVUFDMUJDLGlCQUFpQkQsSUFBQUEsZ0JBQVMsRUFBQyxXQUMzQkUscUJBQXFCRixJQUFBQSxnQkFBUyxFQUFDLGVBQy9CRyx3QkFBd0JILElBQUFBLGdCQUFTLEVBQUMsb0JBQ2xDSSw2QkFBNkJKLElBQUFBLGdCQUFTLEVBQUMseUJBQ3ZDSyxtQ0FBbUNMLElBQUFBLGdCQUFTLEVBQUM7QUFFbkQsSUFBQSxBQUFNTSxpQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsc0JBQXNCLEVBQUVDLHVCQUF1QixF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