occam-verify-cli 0.0.698 → 0.0.702

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 (123) hide show
  1. package/lib/assignment/equality.js +4 -4
  2. package/lib/assignment/metavariable.js +4 -4
  3. package/lib/assignment/variable.js +4 -4
  4. package/lib/collection.js +44 -6
  5. package/lib/conclusion.js +6 -6
  6. package/lib/consequent.js +4 -4
  7. package/lib/constructor.js +3 -10
  8. package/lib/context/file.js +12 -73
  9. package/lib/context/local.js +31 -70
  10. package/lib/context/localMeta.js +12 -9
  11. package/lib/context/release.js +2 -4
  12. package/lib/equality.js +22 -6
  13. package/lib/metaType.js +10 -10
  14. package/lib/metavariable.js +3 -10
  15. package/lib/mixins/context.js +107 -0
  16. package/lib/premise.js +9 -9
  17. package/lib/ruleNames.js +9 -1
  18. package/lib/supposition.js +4 -4
  19. package/lib/type.js +23 -27
  20. package/lib/utilities/collection.js +27 -13
  21. package/lib/utilities/node.js +3 -73
  22. package/lib/utilities/tokens.js +1 -8
  23. package/lib/variable.js +11 -10
  24. package/lib/verifier/node/statementAsCombinator.js +4 -1
  25. package/lib/verifier/node/termAsConstructor.js +4 -20
  26. package/lib/verifier/nodes/equality.js +169 -0
  27. package/lib/verifier/nodes/metastatementForMetavariable.js +6 -7
  28. package/lib/verifier/nodes/statement.js +12 -4
  29. package/lib/verifier/nodes/statementForMetavariable.js +6 -7
  30. package/lib/verifier/nodes/termForVariable.js +19 -20
  31. package/lib/verify/axiom.js +3 -8
  32. package/lib/verify/conclusion.js +2 -2
  33. package/lib/verify/conjecture.js +4 -9
  34. package/lib/verify/consequent.js +3 -3
  35. package/lib/verify/derivation.js +30 -13
  36. package/lib/verify/equality.js +17 -12
  37. package/lib/verify/givenType.js +32 -0
  38. package/lib/verify/lemma.js +4 -9
  39. package/lib/verify/metastatement.js +3 -3
  40. package/lib/verify/premises.js +28 -0
  41. package/lib/verify/rule.js +3 -8
  42. package/lib/verify/ruleDerivation.js +6 -8
  43. package/lib/verify/statement/qualified.js +135 -37
  44. package/lib/verify/statement.js +34 -42
  45. package/lib/verify/supposition.js +6 -7
  46. package/lib/verify/suppositions.js +28 -0
  47. package/lib/verify/term.js +25 -60
  48. package/lib/verify/termAndGivenType.js +39 -0
  49. package/lib/verify/termAsGivenVariable.js +36 -0
  50. package/lib/verify/theorem.js +3 -8
  51. package/lib/verify/typeAssertion.js +44 -27
  52. package/package.json +1 -1
  53. package/src/assignment/equality.js +5 -5
  54. package/src/assignment/metavariable.js +5 -5
  55. package/src/assignment/variable.js +7 -5
  56. package/src/collection.js +55 -5
  57. package/src/conclusion.js +6 -6
  58. package/src/consequent.js +4 -4
  59. package/src/constructor.js +2 -7
  60. package/src/context/file.js +16 -13
  61. package/src/context/local.js +39 -86
  62. package/src/context/localMeta.js +11 -7
  63. package/src/context/release.js +6 -9
  64. package/src/equality.js +25 -4
  65. package/src/metaType.js +10 -10
  66. package/src/metavariable.js +2 -7
  67. package/src/mixins/{file.js → context.js} +20 -2
  68. package/src/premise.js +10 -10
  69. package/src/ruleNames.js +2 -0
  70. package/src/supposition.js +3 -3
  71. package/src/type.js +27 -39
  72. package/src/utilities/collection.js +31 -11
  73. package/src/utilities/node.js +3 -81
  74. package/src/utilities/tokens.js +0 -8
  75. package/src/variable.js +9 -6
  76. package/src/verifier/node/statementAsCombinator.js +7 -1
  77. package/src/verifier/node/termAsConstructor.js +5 -26
  78. package/src/verifier/nodes/equality.js +47 -0
  79. package/src/verifier/nodes/metastatementForMetavariable.js +10 -10
  80. package/src/verifier/nodes/statement.js +1 -1
  81. package/src/verifier/nodes/statementForMetavariable.js +10 -10
  82. package/src/verifier/nodes/termForVariable.js +30 -30
  83. package/src/verify/axiom.js +2 -8
  84. package/src/verify/conclusion.js +1 -1
  85. package/src/verify/conjecture.js +3 -9
  86. package/src/verify/consequent.js +4 -4
  87. package/src/verify/derivation.js +39 -16
  88. package/src/verify/equality.js +20 -11
  89. package/src/verify/{standaloneType.js → givenType.js} +7 -7
  90. package/src/verify/lemma.js +3 -9
  91. package/src/verify/metastatement.js +2 -2
  92. package/src/verify/premises.js +17 -0
  93. package/src/verify/rule.js +2 -8
  94. package/src/verify/ruleDerivation.js +5 -7
  95. package/src/verify/statement/qualified.js +194 -39
  96. package/src/verify/statement.js +47 -47
  97. package/src/verify/supposition.js +10 -12
  98. package/src/verify/suppositions.js +17 -0
  99. package/src/verify/term.js +26 -64
  100. package/src/verify/termAndGivenType.js +37 -0
  101. package/src/verify/termAsGivenVariable.js +39 -0
  102. package/src/verify/theorem.js +2 -8
  103. package/src/verify/typeAssertion.js +59 -32
  104. package/lib/mixins/file.js +0 -83
  105. package/lib/mixins/logging.js +0 -39
  106. package/lib/verifier/nodes/metastatementForMetavariable/conclusion.js +0 -114
  107. package/lib/verifier/nodes/metastatementForMetavariable/premise.js +0 -114
  108. package/lib/verifier/nodes/statementForMetavariable/conclusion.js +0 -114
  109. package/lib/verifier/nodes/statementForMetavariable/premise.js +0 -114
  110. package/lib/verifier/nodes/termForVariable/consequent.js +0 -114
  111. package/lib/verifier/nodes/termForVariable/supposition.js +0 -114
  112. package/lib/verify/standaloneType.js +0 -32
  113. package/lib/verify/termAndStandaloneType.js +0 -39
  114. package/lib/verify/termAsVariableAndStandaloneType.js +0 -39
  115. package/src/mixins/logging.js +0 -24
  116. package/src/verifier/nodes/metastatementForMetavariable/conclusion.js +0 -11
  117. package/src/verifier/nodes/metastatementForMetavariable/premise.js +0 -11
  118. package/src/verifier/nodes/statementForMetavariable/conclusion.js +0 -11
  119. package/src/verifier/nodes/statementForMetavariable/premise.js +0 -11
  120. package/src/verifier/nodes/termForVariable/consequent.js +0 -11
  121. package/src/verifier/nodes/termForVariable/supposition.js +0 -11
  122. package/src/verify/termAndStandaloneType.js +0 -37
  123. package/src/verify/termAsVariableAndStandaloneType.js +0 -38
@@ -18,30 +18,12 @@ _export(exports, {
18
18
  labelNodeFromLabelTokens: function() {
19
19
  return labelNodeFromLabelTokens;
20
20
  },
21
- metaTypeDeclarationNodeFromMetavariableDeclarationTokens: function() {
22
- return metaTypeDeclarationNodeFromMetavariableDeclarationTokens;
23
- },
24
- metaTypeNodeFromMetavariableDeclarationTokens: function() {
25
- return metaTypeNodeFromMetavariableDeclarationTokens;
26
- },
27
- metaTypeNodeFromMetavariableString: function() {
28
- return metaTypeNodeFromMetavariableString;
29
- },
30
21
  metastatementNodeFromMetastatementString: function() {
31
22
  return metastatementNodeFromMetastatementString;
32
23
  },
33
24
  metastatementNodeFromUnqualifiedMetastatementTokens: function() {
34
25
  return metastatementNodeFromUnqualifiedMetastatementTokens;
35
26
  },
36
- metavariableDeclarationNodeFromMetavariableDeclarationTokens: function() {
37
- return metavariableDeclarationNodeFromMetavariableDeclarationTokens;
38
- },
39
- metavariableNodeFromMetavariableDeclarationTokens: function() {
40
- return metavariableNodeFromMetavariableDeclarationTokens;
41
- },
42
- metavariableNodeFromMetavariableString: function() {
43
- return metavariableNodeFromMetavariableString;
44
- },
45
27
  statementNodeFromStatementString: function() {
46
28
  return statementNodeFromStatementString;
47
29
  },
@@ -51,18 +33,6 @@ _export(exports, {
51
33
  termNodeFromConstructorDeclarationTokens: function() {
52
34
  return termNodeFromConstructorDeclarationTokens;
53
35
  },
54
- termNodeFromTermString: function() {
55
- return termNodeFromTermString;
56
- },
57
- typeDeclarationNodeFromVariableDeclarationTokens: function() {
58
- return typeDeclarationNodeFromVariableDeclarationTokens;
59
- },
60
- typeNodeFromVariableString: function() {
61
- return typeNodeFromVariableString;
62
- },
63
- typeNodeFromVariableVariableDeclarationTokens: function() {
64
- return typeNodeFromVariableVariableDeclarationTokens;
65
- },
66
36
  unqualifiedMetastatementNodeFromUnqualifiedMetastatementTokens: function() {
67
37
  return unqualifiedMetastatementNodeFromUnqualifiedMetastatementTokens;
68
38
  },
@@ -86,19 +56,11 @@ var _ruleNames = require("../ruleNames");
86
56
  var _tokens = require("../utilities/tokens");
87
57
  var florenceParserFromCombinedCustomGrammar = _occamcustomgrammars.parsersUtilities.florenceParserFromCombinedCustomGrammar;
88
58
  var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromNothing)(), florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
89
- var termNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration/term!"), typeNodeQuery = (0, _query.nodeQuery)("/variableDeclaration/type!"), variableNodeQuery = (0, _query.nodeQuery)("/variableDeclaration/variable!"), metaTypeNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metaType!"), statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!"), metavariableNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration/metavariable!"), metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/metastatement!");
90
- function termNodeFromTermString(termString, lexer, parser) {
91
- var constructorDeclarationTokens = (0, _tokens.constructorDeclarationTokensFromTermString)(termString, parser), termNode = termNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser);
92
- return termNode;
93
- }
59
+ var termNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration/term!"), variableNodeQuery = (0, _query.nodeQuery)("/variableDeclaration/variable!"), statementNodeQuery = (0, _query.nodeQuery)("/unqualifiedStatement/statement!"), metastatementNodeQuery = (0, _query.nodeQuery)("/unqualifiedMetastatement/metastatement!");
94
60
  function labelNodeFromLabelString(labelString, lexer, parser) {
95
61
  var labelTokens = (0, _tokens.labelTokensFromLabelString)(labelString, lexer), labelNode = labelNodeFromLabelTokens(labelTokens, parser);
96
62
  return labelNode;
97
63
  }
98
- function typeNodeFromVariableString(variableString, lexer, parser) {
99
- var variableDeclarationTokens = (0, _tokens.variableDeclarationTokensFromVariableString)(variableString, lexer), typeNode = typeNodeFromVariableVariableDeclarationTokens(variableDeclarationTokens, parser);
100
- return typeNode;
101
- }
102
64
  function variableNodeFromVariableString(variableString, lexer, parser) {
103
65
  var variableTDeclarationTokens = (0, _tokens.variableDeclarationTokensFromVariableString)(variableString, lexer), variableNode = variableNodeFromVariableVariableTDeclarationTokens(variableTDeclarationTokens, parser);
104
66
  return variableNode;
@@ -107,14 +69,6 @@ function statementNodeFromStatementString(statementString, lexer, parser) {
107
69
  var unqualifiedStatementTokens = (0, _tokens.unqualifiedStatementTokensFromStatementString)(statementString, lexer), statementNode = statementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser);
108
70
  return statementNode;
109
71
  }
110
- function metaTypeNodeFromMetavariableString(metavariableString, lexer, parser) {
111
- var metavariableDeclarationTokens = (0, _tokens.metavariableDeclarationTokensFromMetavariableString)(metavariableString, lexer), metaTypeNode = metaTypeNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser);
112
- return metaTypeNode;
113
- }
114
- function metavariableNodeFromMetavariableString(metavariableString, lexer, parser) {
115
- var metavariableDeclarationTokens = (0, _tokens.metavariableDeclarationTokensFromMetavariableString)(metavariableString, lexer), metavariableNode = metavariableNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser);
116
- return metavariableNode;
117
- }
118
72
  function metastatementNodeFromMetastatementString(metastatementString, lexer, parser) {
119
73
  var unqualifiedMetastatementTokens = (0, _tokens.unqualifiedMetastatementTokensFromMetastatementString)(metastatementString, lexer), metastatementNode = metastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser);
120
74
  return metastatementNode;
@@ -127,18 +81,6 @@ function statementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens,
127
81
  var unqualifiedStatementNode = unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser), statementNode = statementNodeQuery(unqualifiedStatementNode);
128
82
  return statementNode;
129
83
  }
130
- function typeNodeFromVariableVariableDeclarationTokens(variableDeclarationTokens, parser) {
131
- var typeDeclarationNode = typeDeclarationNodeFromVariableDeclarationTokens(variableDeclarationTokens, parser), typeNode = typeNodeQuery(typeDeclarationNode);
132
- return typeNode;
133
- }
134
- function metaTypeNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser) {
135
- var metaTypeDeclarationNode = metaTypeDeclarationNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser), metaTypeNode = metaTypeNodeQuery(metaTypeDeclarationNode);
136
- return metaTypeNode;
137
- }
138
- function metavariableNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser) {
139
- var metavariableDeclarationNode = metavariableDeclarationNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser), metavariableNode = metavariableNodeQuery(metavariableDeclarationNode);
140
- return metavariableNode;
141
- }
142
84
  function variableNodeFromVariableVariableTDeclarationTokens(variableTDeclarationTokens, parser) {
143
85
  var variableDeclarationNode = variableDeclarationNodeFromVariableTDeclarationTokens(variableTDeclarationTokens, parser), variableNode = variableNodeQuery(variableDeclarationNode);
144
86
  return variableNode;
@@ -151,30 +93,18 @@ function labelNodeFromLabelTokens(labelTokens, parser) {
151
93
  var ruleName = _ruleNames.LABEL_RULE_NAME, labelNode = nodeFromTokensRuleNameAndParser(labelTokens, ruleName, parser);
152
94
  return labelNode;
153
95
  }
154
- function typeDeclarationNodeFromVariableDeclarationTokens(variableDeclarationTokens, parser) {
155
- var ruleName = _ruleNames.TYPE_RULE_NAME, typeDeclarationNode = nodeFromTokensRuleNameAndParser(variableDeclarationTokens, ruleName, parser);
156
- return typeDeclarationNode;
157
- }
158
96
  function variableDeclarationNodeFromVariableTDeclarationTokens(variableTDeclarationTokens, parser) {
159
- var ruleName = _ruleNames.VARIABLE_RULE_NAME, variableDeclarationNode = nodeFromTokensRuleNameAndParser(variableTDeclarationTokens, ruleName, parser);
97
+ var ruleName = _ruleNames.VARIABLE_DECLARATION_RULE_NAME, variableDeclarationNode = nodeFromTokensRuleNameAndParser(variableTDeclarationTokens, ruleName, parser);
160
98
  return variableDeclarationNode;
161
99
  }
162
100
  function unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
163
101
  var ruleName = _ruleNames.UNQUALIFIED_STATEMENT_RULE_NAME, unqualifiedStatementNode = nodeFromTokensRuleNameAndParser(unqualifiedStatementTokens, ruleName, parser);
164
102
  return unqualifiedStatementNode;
165
103
  }
166
- function metaTypeDeclarationNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser) {
167
- var ruleName = _ruleNames.META_TYPE_RULE_NAME, metaTypeDeclarationNode = nodeFromTokensRuleNameAndParser(metavariableDeclarationTokens, ruleName, parser);
168
- return metaTypeDeclarationNode;
169
- }
170
104
  function constructorDeclarationNodeFromConstructorDeclarationTokens(constructorDeclarationTokens, parser) {
171
105
  var ruleName = _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, constructorDeclarationNode = nodeFromTokensRuleNameAndParser(constructorDeclarationTokens, ruleName, parser);
172
106
  return constructorDeclarationNode;
173
107
  }
174
- function metavariableDeclarationNodeFromMetavariableDeclarationTokens(metavariableDeclarationTokens, parser) {
175
- var ruleName = _ruleNames.METAVARIABLE_RULE_NAME, metavariableDeclarationNode = nodeFromTokensRuleNameAndParser(metavariableDeclarationTokens, ruleName, parser);
176
- return metavariableDeclarationNode;
177
- }
178
108
  function unqualifiedMetastatementNodeFromUnqualifiedMetastatementTokens(unqualifiedMetastatementTokens, parser) {
179
109
  var ruleName = _ruleNames.UNQUALIFIED_METASTATEMENT_RULE_NAME, unqualifiedMetastatementNode = nodeFromTokensRuleNameAndParser(unqualifiedMetastatementTokens, ruleName, parser);
180
110
  return unqualifiedMetastatementNode;
@@ -185,4 +115,4 @@ function nodeFromTokensRuleNameAndParser(tokens, ruleName) {
185
115
  return node;
186
116
  }
187
117
 
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBUWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgIExBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuaW1wb3J0IHsgbGFiZWxUb2tlbnNGcm9tTGFiZWxTdHJpbmcsXG4gICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmcsXG4gICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nLFxuICAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nLFxuICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnNGcm9tTWV0YXZhcmlhYmxlU3RyaW5nLFxuICAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Rva2Vuc1wiO1xuXG5jb25zdCB7IGZsb3JlbmNlUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSxcbiAgICAgIGZsb3JlbmNlUGFyc2VyID0gZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hcik7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uc3RydWN0b3JEZWNsYXJhdGlvbi90ZXJtIVwiKSxcbiAgICAgIHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGUhXCIpLFxuICAgICAgbWV0YVR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YVR5cGUhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3VucXVhbGlmaWVkU3RhdGVtZW50L3N0YXRlbWVudCFcIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybU5vZGVGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmcodGVybVN0cmluZywgcGFyc2VyKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHRlcm1Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxOb2RlRnJvbUxhYmVsU3RyaW5nKGxhYmVsU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IGxhYmVsVG9rZW5zID0gbGFiZWxUb2tlbnNGcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbGFiZWxOb2RlID0gbGFiZWxOb2RlRnJvbUxhYmVsVG9rZW5zKGxhYmVsVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBsYWJlbE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zID0gdmFyaWFibGVEZWNsYXJhdGlvblRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIpLFxuICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlRnJvbVZhcmlhYmxlVmFyaWFibGVEZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiB0eXBlTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB2YXJpYWJsZVREZWNsYXJhdGlvblRva2VucyA9IHZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnNGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlVmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnModmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHZhcmlhYmxlTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHN0YXRlbWVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZU5vZGVGcm9tTWV0YXZhcmlhYmxlU3RyaW5nKG1ldGF2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlcikge1xuICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2VucyA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyhtZXRhdmFyaWFibGVTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbWV0YVR5cGVOb2RlID0gbWV0YVR5cGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhVHlwZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVN0cmluZyhtZXRhdmFyaWFibGVTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMgPSBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmcobWV0YXZhcmlhYmxlU3RyaW5nLCBsZXhlciksXG4gICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXN0YXRlbWVudE5vZGVGcm9tTWV0YXN0YXRlbWVudFN0cmluZyhtZXRhc3RhdGVtZW50U3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vuc0Zyb21NZXRhc3RhdGVtZW50U3RyaW5nKG1ldGFzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlcikge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlciksXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVOb2RlRnJvbVZhcmlhYmxlVmFyaWFibGVEZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uTm9kZSA9IHR5cGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVEZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIHR5cGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YVR5cGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgbWV0YVR5cGVEZWNsYXJhdGlvbk5vZGUgPSBtZXRhVHlwZURlY2xhcmF0aW9uTm9kZUZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2VucyhtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSxcbiAgICAgICAgbWV0YVR5cGVOb2RlID0gbWV0YVR5cGVOb2RlUXVlcnkobWV0YVR5cGVEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIHJldHVybiBtZXRhVHlwZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlID0gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVWYXJpYWJsZVREZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZVREZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlID0gdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnModmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlciksXG4gICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKTtcblxuICByZXR1cm4gdmFyaWFibGVOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vucyh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnMsIHBhcnNlciksXG4gICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gbWV0YXN0YXRlbWVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbE5vZGVGcm9tTGFiZWxUb2tlbnMobGFiZWxUb2tlbnMsIHBhcnNlcikge1xuICBjb25zdCBydWxlTmFtZSA9IExBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgbGFiZWxOb2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcihsYWJlbFRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIGxhYmVsTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVEZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBUWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgdHlwZURlY2xhcmF0aW9uTm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodmFyaWFibGVEZWNsYXJhdGlvblRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvbk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZUZyb21WYXJpYWJsZVREZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZVREZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZFN0YXRlbWVudFRva2Vucyh1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFUeXBlRGVjbGFyYXRpb25Ob2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBNRVRBX1RZUEVfUlVMRV9OQU1FLFxuICAgICAgICBtZXRhVHlwZURlY2xhcmF0aW9uTm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhVHlwZURlY2xhcmF0aW9uTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgcnVsZU5hbWUgPSBVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZTtcbn1cblxuZnVuY3Rpb24gbm9kZUZyb21Ub2tlbnNSdWxlTmFtZUFuZFBhcnNlcih0b2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIgPSBmbG9yZW5jZVBhcnNlcikge1xuICBjb25zdCBydWxlTWFwID0gcGFyc2VyLmdldFJ1bGVNYXAoKSxcbiAgICAgICAgcnVsZSA9IHJ1bGVNYXBbcnVsZU5hbWVdLFxuICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2VucywgcnVsZSk7XG5cbiAgcmV0dXJuIG5vZGU7XG59XG4iXSwibmFtZXMiOlsiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsImxhYmVsTm9kZUZyb21MYWJlbFN0cmluZyIsImxhYmVsTm9kZUZyb21MYWJlbFRva2VucyIsIm1ldGFUeXBlRGVjbGFyYXRpb25Ob2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zIiwibWV0YVR5cGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zIiwibWV0YVR5cGVOb2RlRnJvbU1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGFzdGF0ZW1lbnROb2RlRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmciLCJtZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnMiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVGcm9tTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMiLCJtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zIiwibWV0YXZhcmlhYmxlTm9kZUZyb21NZXRhdmFyaWFibGVTdHJpbmciLCJzdGF0ZW1lbnROb2RlRnJvbVN0YXRlbWVudFN0cmluZyIsInN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMiLCJ0ZXJtTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwidGVybU5vZGVGcm9tVGVybVN0cmluZyIsInR5cGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVEZWNsYXJhdGlvblRva2VucyIsInR5cGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nIiwidHlwZU5vZGVGcm9tVmFyaWFibGVWYXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZUZyb21WYXJpYWJsZVREZWNsYXJhdGlvblRva2VucyIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zIiwiZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIiwiZmxvcmVuY2VQYXJzZXIiLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwibWV0YVR5cGVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5IiwidGVybVN0cmluZyIsImxleGVyIiwicGFyc2VyIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnNGcm9tVGVybVN0cmluZyIsInRlcm1Ob2RlIiwibGFiZWxTdHJpbmciLCJsYWJlbFRva2VucyIsImxhYmVsVG9rZW5zRnJvbUxhYmVsU3RyaW5nIiwibGFiZWxOb2RlIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zIiwidmFyaWFibGVEZWNsYXJhdGlvblRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyIsInR5cGVOb2RlIiwidmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMiLCJ2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyIsInN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2VucyIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGFUeXBlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmciLCJtZXRhc3RhdGVtZW50Tm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIm1ldGFUeXBlRGVjbGFyYXRpb25Ob2RlIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwicnVsZU5hbWUiLCJMQUJFTF9SVUxFX05BTUUiLCJub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyIiwiVFlQRV9SVUxFX05BTUUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJVTlFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsInRva2VucyIsInJ1bGVNYXAiLCJnZXRSdWxlTWFwIiwicnVsZSIsIm5vZGUiLCJwYXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBOEtnQkEsMERBQTBEO2VBQTFEQTs7SUFySUFDLHdCQUF3QjtlQUF4QkE7O0lBa0dBQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsd0RBQXdEO2VBQXhEQTs7SUF4REFDLDZDQUE2QztlQUE3Q0E7O0lBMUNBQyxrQ0FBa0M7ZUFBbENBOztJQWNBQyx3Q0FBd0M7ZUFBeENBOztJQWlEQUMsbURBQW1EO2VBQW5EQTs7SUFpREFDLDREQUE0RDtlQUE1REE7O0lBL0RBQyxpREFBaUQ7ZUFBakRBOztJQTFDQUMsc0NBQXNDO2VBQXRDQTs7SUFkQUMsZ0NBQWdDO2VBQWhDQTs7SUFtQ0FDLDJDQUEyQztlQUEzQ0E7O0lBUEFDLHdDQUF3QztlQUF4Q0E7O0lBeERBQyxzQkFBc0I7ZUFBdEJBOztJQWdIQUMsZ0RBQWdEO2VBQWhEQTs7SUFsR0FDLDBCQUEwQjtlQUExQkE7O0lBd0RBQyw2Q0FBNkM7ZUFBN0NBOztJQW9GQUMsOERBQThEO2VBQTlEQTs7SUE1QkFDLHNEQUFzRDtlQUF0REE7O0lBUEFDLHFEQUFxRDtlQUFyREE7O0lBbEdBQyw4QkFBOEI7ZUFBOUJBOztJQXNFQUMsa0RBQWtEO2VBQWxEQTs7O21DQTNIaUI7cUJBRVA7NkJBQ3VCO3lCQVFHO3NCQU1rQjtBQUV0RSxJQUFNLEFBQUVDLDBDQUE0Q0MscUNBQWdCLENBQTVERDtBQUVSLElBQU1FLHdCQUF3QkMsSUFBQUEsK0NBQWdDLEtBQ3hEQyxpQkFBaUJKLHdDQUF3Q0U7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
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9jdXN0b21HcmFtbWFyXCI7XG5pbXBvcnQgeyBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBsYWJlbFRva2Vuc0Zyb21MYWJlbFN0cmluZyxcbiAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnNGcm9tVmFyaWFibGVTdHJpbmcsXG4gICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmcsXG4gICAgICAgICB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnNGcm9tTWV0YXN0YXRlbWVudFN0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdG9rZW5zXCI7XG5cbmNvbnN0IHsgZmxvcmVuY2VQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBwYXJzZXJzVXRpbGl0aWVzO1xuXG5jb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZygpLFxuICAgICAgZmxvcmVuY2VQYXJzZXIgPSBmbG9yZW5jZVBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uL3Rlcm0hXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi92YXJpYWJsZSFcIiksXG4gICAgICBzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxOb2RlRnJvbUxhYmVsU3RyaW5nKGxhYmVsU3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IGxhYmVsVG9rZW5zID0gbGFiZWxUb2tlbnNGcm9tTGFiZWxTdHJpbmcobGFiZWxTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbGFiZWxOb2RlID0gbGFiZWxOb2RlRnJvbUxhYmVsVG9rZW5zKGxhYmVsVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBsYWJlbE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgdmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMgPSB2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciksXG4gICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zKHZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiB2YXJpYWJsZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnROb2RlRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyLCBwYXJzZXIpIHtcbiAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMgPSB1bnF1YWxpZmllZFN0YXRlbWVudFRva2Vuc0Zyb21TdGF0ZW1lbnRTdHJpbmcoc3RhdGVtZW50U3RyaW5nLCBsZXhlciksXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXN0YXRlbWVudE5vZGVGcm9tTWV0YXN0YXRlbWVudFN0cmluZyhtZXRhc3RhdGVtZW50U3RyaW5nLCBsZXhlciwgcGFyc2VyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucyA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vuc0Zyb21NZXRhc3RhdGVtZW50U3RyaW5nKG1ldGFzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSxcbiAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpO1xuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMoY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vucyhjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIHJldHVybiB0ZXJtTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlcikge1xuICBjb25zdCB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlciksXG4gICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zKHZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZUZyb21WYXJpYWJsZVREZWNsYXJhdGlvblRva2Vucyh2YXJpYWJsZVREZWNsYXJhdGlvblRva2VucywgcGFyc2VyKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIHJldHVybiB2YXJpYWJsZU5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhc3RhdGVtZW50Tm9kZUZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zLCBwYXJzZXIpIHtcbiAgY29uc3QgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSA9IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucywgcGFyc2VyKSxcbiAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBtZXRhc3RhdGVtZW50Tm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsTm9kZUZyb21MYWJlbFRva2VucyhsYWJlbFRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gTEFCRUxfUlVMRV9OQU1FLFxuICAgICAgICBsYWJlbE5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKGxhYmVsVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gbGFiZWxOb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnModmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlcikge1xuICBjb25zdCBydWxlTmFtZSA9IFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHZhcmlhYmxlVERlY2xhcmF0aW9uVG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyKTtcblxuICByZXR1cm4gdmFyaWFibGVEZWNsYXJhdGlvbk5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnModW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHBhcnNlcikge1xuICBjb25zdCBydWxlTmFtZSA9IFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZFN0YXRlbWVudE5vZGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZUZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsIHBhcnNlcikge1xuICBjb25zdCBydWxlTmFtZSA9IENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMsIHJ1bGVOYW1lLCBwYXJzZXIpO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucywgcGFyc2VyKSB7XG4gIGNvbnN0IHJ1bGVOYW1lID0gVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUgPSBub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyKHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucywgcnVsZU5hbWUsIHBhcnNlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGU7XG59XG5cbmZ1bmN0aW9uIG5vZGVGcm9tVG9rZW5zUnVsZU5hbWVBbmRQYXJzZXIodG9rZW5zLCBydWxlTmFtZSwgcGFyc2VyID0gZmxvcmVuY2VQYXJzZXIpIHtcbiAgY29uc3QgcnVsZU1hcCA9IHBhcnNlci5nZXRSdWxlTWFwKCksXG4gICAgICAgIHJ1bGUgPSBydWxlTWFwW3J1bGVOYW1lXSxcbiAgICAgICAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHJ1bGUpO1xuXG4gIHJldHVybiBub2RlO1xufVxuIl0sIm5hbWVzIjpbImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlRnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJsYWJlbE5vZGVGcm9tTGFiZWxTdHJpbmciLCJsYWJlbE5vZGVGcm9tTGFiZWxUb2tlbnMiLCJtZXRhc3RhdGVtZW50Tm9kZUZyb21NZXRhc3RhdGVtZW50U3RyaW5nIiwibWV0YXN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zIiwic3RhdGVtZW50Tm9kZUZyb21TdGF0ZW1lbnRTdHJpbmciLCJzdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwidGVybU5vZGVGcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvblRva2VucyIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGVGcm9tVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlRnJvbVVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGVGcm9tVmFyaWFibGVURGVjbGFyYXRpb25Ub2tlbnMiLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVWYXJpYWJsZVREZWNsYXJhdGlvblRva2VucyIsImZsb3JlbmNlUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsImZsb3JlbmNlUGFyc2VyIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsImxhYmVsU3RyaW5nIiwibGV4ZXIiLCJwYXJzZXIiLCJsYWJlbFRva2VucyIsImxhYmVsVG9rZW5zRnJvbUxhYmVsU3RyaW5nIiwibGFiZWxOb2RlIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZVREZWNsYXJhdGlvblRva2VucyIsInZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnNGcm9tVmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyIsInN0YXRlbWVudE5vZGUiLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zRnJvbU1ldGFzdGF0ZW1lbnRTdHJpbmciLCJtZXRhc3RhdGVtZW50Tm9kZSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsInRlcm1Ob2RlIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwicnVsZU5hbWUiLCJMQUJFTF9SVUxFX05BTUUiLCJub2RlRnJvbVRva2Vuc1J1bGVOYW1lQW5kUGFyc2VyIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIlVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwidG9rZW5zIiwicnVsZU1hcCIsImdldFJ1bGVNYXAiLCJydWxlIiwibm9kZSIsInBhcnNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUF1R2dCQSwwREFBMEQ7ZUFBMURBOztJQTdFQUMsd0JBQXdCO2VBQXhCQTs7SUF3REFDLHdCQUF3QjtlQUF4QkE7O0lBbkNBQyx3Q0FBd0M7ZUFBeENBOztJQTRCQUMsbURBQW1EO2VBQW5EQTs7SUFuQ0FDLGdDQUFnQztlQUFoQ0E7O0lBcUJBQywyQ0FBMkM7ZUFBM0NBOztJQVBBQyx3Q0FBd0M7ZUFBeENBOztJQXdEQUMsOERBQThEO2VBQTlEQTs7SUFkQUMsc0RBQXNEO2VBQXREQTs7SUFQQUMscURBQXFEO2VBQXJEQTs7SUF4REFDLDhCQUE4QjtlQUE5QkE7O0lBbUNBQyxrREFBa0Q7ZUFBbERBOzs7bUNBbEVpQjtxQkFFUDs2QkFDdUI7eUJBS0c7c0JBSWtCO0FBRXRFLElBQU0sQUFBRUMsMENBQTRDQyxxQ0FBZ0IsQ0FBNUREO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSwrQ0FBZ0MsS0FDeERDLGlCQUFpQkosd0NBQXdDRTtBQUUvRCxJQUFNRyxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsa0NBQzFCQyxvQkFBb0JELElBQUFBLGdCQUFTLEVBQUMsbUNBQzlCRSxxQkFBcUJGLElBQUFBLGdCQUFTLEVBQUMscUNBQy9CRyx5QkFBeUJILElBQUFBLGdCQUFTLEVBQUM7QUFFbEMsU0FBU2xCLHlCQUF5QnNCLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxNQUFNO0lBQ2pFLElBQU1DLGNBQWNDLElBQUFBLGtDQUEwQixFQUFDSixhQUFhQyxRQUN0REksWUFBWTFCLHlCQUF5QndCLGFBQWFEO0lBRXhELE9BQU9HO0FB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
@@ -15,9 +15,6 @@ _export(exports, {
15
15
  labelTokensFromLabelString: function() {
16
16
  return labelTokensFromLabelString;
17
17
  },
18
- metavariableDeclarationTokensFromMetavariableString: function() {
19
- return metavariableDeclarationTokensFromMetavariableString;
20
- },
21
18
  unqualifiedMetastatementTokensFromMetastatementString: function() {
22
19
  return unqualifiedMetastatementTokensFromMetastatementString;
23
20
  },
@@ -48,10 +45,6 @@ function unqualifiedStatementTokensFromStatementString(statementString, lexer) {
48
45
  var unqualifiedStatementContent = "".concat(statementString, "\n"), unqualifiedStatementTokens = tokensFromContentAndLexer(unqualifiedStatementContent, lexer);
49
46
  return unqualifiedStatementTokens;
50
47
  }
51
- function metavariableDeclarationTokensFromMetavariableString(metavariableString, lexer) {
52
- var metavariableDeclarationContent = "Metavariable ".concat(metavariableString, "\n"), metavariableDeclarationTokens = tokensFromContentAndLexer(metavariableDeclarationContent, lexer);
53
- return metavariableDeclarationTokens;
54
- }
55
48
  function unqualifiedMetastatementTokensFromMetastatementString(metastatementString, lexer) {
56
49
  var unqualifiedMetastatementContent = "".concat(metastatementString, "\n"), unqualifiedMetastatementTokens = tokensFromContentAndLexer(unqualifiedMetastatementContent, lexer);
57
50
  return unqualifiedMetastatementTokens;
@@ -62,4 +55,4 @@ function tokensFromContentAndLexer(content) {
62
55
  return tokens;
63
56
  }
64
57
 
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IGZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCksXG4gICAgICBmbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsVG9rZW5zRnJvbUxhYmVsU3RyaW5nKGxhYmVsU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBsYWJlbENvbnRlbnQgPSBgJHtsYWJlbFN0cmluZ31gLFxuICAgICAgICBsYWJlbFRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIobGFiZWxDb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIGxhYmVsVG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Db250ZW50ID0gYENvbnN0cnVjdG9yICR7dGVybVN0cmluZ31cbmAsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Db250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uQ29udGVudCA9IGBWYXJpYWJsZSAke3ZhcmlhYmxlU3RyaW5nfVxuYCxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIodmFyaWFibGVEZWNsYXJhdGlvbkNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gdmFyaWFibGVEZWNsYXJhdGlvblRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Q29udGVudCA9IGAke3N0YXRlbWVudFN0cmluZ31cbmAsXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcih1bnF1YWxpZmllZFN0YXRlbWVudENvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2Vuc0Zyb21NZXRhdmFyaWFibGVTdHJpbmcobWV0YXZhcmlhYmxlU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbkNvbnRlbnQgPSBgTWV0YXZhcmlhYmxlICR7bWV0YXZhcmlhYmxlU3RyaW5nfVxuYCxcbiAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uQ29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vuc0Zyb21NZXRhc3RhdGVtZW50U3RyaW5nKG1ldGFzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudENvbnRlbnQgPSBgJHttZXRhc3RhdGVtZW50U3RyaW5nfVxuYCxcbiAgICAgICAgdW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcih1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRDb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vucztcbn1cblxuZnVuY3Rpb24gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcihjb250ZW50LCBsZXhlciA9IGZsb3JlbmNlTGV4ZXIpIHtcbiAgY29uc3QgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgcmV0dXJuIHRva2Vucztcbn1cbiJdLCJuYW1lcyI6WyJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zRnJvbVRlcm1TdHJpbmciLCJsYWJlbFRva2Vuc0Zyb21MYWJlbFN0cmluZyIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbU1ldGF2YXJpYWJsZVN0cmluZyIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2Vuc0Zyb21NZXRhc3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnNGcm9tU3RhdGVtZW50U3RyaW5nIiwidmFyaWFibGVEZWNsYXJhdGlvblRva2Vuc0Zyb21WYXJpYWJsZVN0cmluZyIsImZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwibGV4ZXJzVXRpbGl0aWVzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmciLCJmbG9yZW5jZUxleGVyIiwibGFiZWxTdHJpbmciLCJsZXhlciIsImxhYmVsQ29udGVudCIsImxhYmVsVG9rZW5zIiwidG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlciIsInRlcm1TdHJpbmciLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uQ29udGVudCIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMiLCJ2YXJpYWJsZVN0cmluZyIsInZhcmlhYmxlRGVjbGFyYXRpb25Db250ZW50IiwidmFyaWFibGVEZWNsYXJhdGlvblRva2VucyIsInN0YXRlbWVudFN0cmluZyIsInVucXVhbGlmaWVkU3RhdGVtZW50Q29udGVudCIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zIiwibWV0YXZhcmlhYmxlU3RyaW5nIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Db250ZW50IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMiLCJtZXRhc3RhdGVtZW50U3RyaW5nIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Q29udGVudCIsInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucyIsImNvbnRlbnQiLCJ0b2tlbnMiLCJ0b2tlbmlzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBa0JnQkEsMENBQTBDO2VBQTFDQTs7SUFQQUMsMEJBQTBCO2VBQTFCQTs7SUErQkFDLG1EQUFtRDtlQUFuREE7O0lBUUFDLHFEQUFxRDtlQUFyREE7O0lBaEJBQyw2Q0FBNkM7ZUFBN0NBOztJQVJBQywyQ0FBMkM7ZUFBM0NBOzs7bUNBeEJnQjs2QkFFaUI7QUFFakQsSUFBTSxBQUFFQyx5Q0FBMkNDLG9DQUFlLENBQTFERDtBQUVSLElBQU1FLHdCQUF3QkMsSUFBQUEsK0NBQWdDLEtBQ3hEQyxnQkFBZ0JKLHVDQUF1Q0U7QUFFdEQsU0FBU1AsMkJBQTJCVSxXQUFXLEVBQUVDLEtBQUs7SUFDM0QsSUFBTUMsZUFBZSxBQUFDLEdBQWMsT0FBWkYsY0FDbEJHLGNBQWNDLDBCQUEwQkYsY0FBY0Q7SUFFNUQsT0FBT0U7QUFDVDtBQUVPLFNBQVNkLDJDQUEyQ2dCLFVBQVUsRUFBRUosS0FBSztJQUMxRSxJQUFNSyxnQ0FBZ0MsQUFBQyxlQUF5QixPQUFYRCxZQUFXLE9BRTFERSwrQkFBK0JILDBCQUEwQkUsK0JBQStCTDtJQUU5RixPQUFPTTtBQUNUO0FBRU8sU0FBU2IsNENBQTRDYyxjQUFjLEVBQUVQLEtBQUs7SUFDL0UsSUFBTVEsNkJBQTZCLEFBQUMsWUFBMEIsT0FBZkQsZ0JBQWUsT0FFeERFLDRCQUE0Qk4sMEJBQTBCSyw0QkFBNEJSO0lBRXhGLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTakIsOENBQThDa0IsZUFBZSxFQUFFVixLQUFLO0lBQ2xGLElBQU1XLDhCQUE4QixBQUFDLEdBQWtCLE9BQWhCRCxpQkFBZ0IsT0FFakRFLDZCQUE2QlQsMEJBQTBCUSw2QkFBNkJYO0lBRTFGLE9BQU9ZO0FBQ1Q7QUFFTyxTQUFTdEIsb0RBQW9EdUIsa0JBQWtCLEVBQUViLEtBQUs7SUFDM0YsSUFBTWMsaUNBQWlDLEFBQUMsZ0JBQWtDLE9BQW5CRCxvQkFBbUIsT0FFcEVFLGdDQUFnQ1osMEJBQTBCVyxnQ0FBZ0NkO0lBRWhHLE9BQU9lO0FBQ1Q7QUFFTyxTQUFTeEIsc0RBQXNEeUIsbUJBQW1CLEVBQUVoQixLQUFLO0lBQzlGLElBQU1pQixrQ0FBa0MsQUFBQyxHQUFzQixPQUFwQkQscUJBQW9CLE9BRXpERSxpQ0FBaUNmLDBCQUEwQmMsaUNBQWlDakI7SUFFbEcsT0FBT2tCO0FBQ1Q7QUFFQSxTQUFTZiwwQkFBMEJnQixPQUFPO1FBQUVuQixRQUFBQSxpRUFBUUY7SUFDbEQsSUFBTXNCLFNBQVNwQixNQUFNcUIsUUFBUSxDQUFDRjtJQUU5QixPQUFPQztBQUNUIn0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdG9rZW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IGZsb3JlbmNlTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gPSBsZXhlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCksXG4gICAgICBmbG9yZW5jZUxleGVyID0gZmxvcmVuY2VMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsVG9rZW5zRnJvbUxhYmVsU3RyaW5nKGxhYmVsU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCBsYWJlbENvbnRlbnQgPSBgJHtsYWJlbFN0cmluZ31gLFxuICAgICAgICBsYWJlbFRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIobGFiZWxDb250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIGxhYmVsVG9rZW5zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Db250ZW50ID0gYENvbnN0cnVjdG9yICR7dGVybVN0cmluZ31cbmAsXG4gICAgICAgIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnMgPSB0b2tlbnNGcm9tQ29udGVudEFuZExleGVyKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Db250ZW50LCBsZXhlcik7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ub2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZURlY2xhcmF0aW9uVG9rZW5zRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlcikge1xuICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uQ29udGVudCA9IGBWYXJpYWJsZSAke3ZhcmlhYmxlU3RyaW5nfVxuYCxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIodmFyaWFibGVEZWNsYXJhdGlvbkNvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gdmFyaWFibGVEZWNsYXJhdGlvblRva2Vucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyhzdGF0ZW1lbnRTdHJpbmcsIGxleGVyKSB7XG4gIGNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Q29udGVudCA9IGAke3N0YXRlbWVudFN0cmluZ31cbmAsXG4gICAgICAgIHVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zID0gdG9rZW5zRnJvbUNvbnRlbnRBbmRMZXhlcih1bnF1YWxpZmllZFN0YXRlbWVudENvbnRlbnQsIGxleGVyKTtcblxuICByZXR1cm4gdW5xdWFsaWZpZWRTdGF0ZW1lbnRUb2tlbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnNGcm9tTWV0YXN0YXRlbWVudFN0cmluZyhtZXRhc3RhdGVtZW50U3RyaW5nLCBsZXhlcikge1xuICBjb25zdCB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRDb250ZW50ID0gYCR7bWV0YXN0YXRlbWVudFN0cmluZ31cbmAsXG4gICAgICAgIHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFRva2VucyA9IHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Q29udGVudCwgbGV4ZXIpO1xuXG4gIHJldHVybiB1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnM7XG59XG5cbmZ1bmN0aW9uIHRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIoY29udGVudCwgbGV4ZXIgPSBmbG9yZW5jZUxleGVyKSB7XG4gIGNvbnN0IHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIHJldHVybiB0b2tlbnM7XG59XG4iXSwibmFtZXMiOlsiY29uc3RydWN0b3JEZWNsYXJhdGlvblRva2Vuc0Zyb21UZXJtU3RyaW5nIiwibGFiZWxUb2tlbnNGcm9tTGFiZWxTdHJpbmciLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRUb2tlbnNGcm9tTWV0YXN0YXRlbWVudFN0cmluZyIsInVucXVhbGlmaWVkU3RhdGVtZW50VG9rZW5zRnJvbVN0YXRlbWVudFN0cmluZyIsInZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnNGcm9tVmFyaWFibGVTdHJpbmciLCJmbG9yZW5jZUxleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIiwiZmxvcmVuY2VMZXhlciIsImxhYmVsU3RyaW5nIiwibGV4ZXIiLCJsYWJlbENvbnRlbnQiLCJsYWJlbFRva2VucyIsInRva2Vuc0Zyb21Db250ZW50QW5kTGV4ZXIiLCJ0ZXJtU3RyaW5nIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbkNvbnRlbnQiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVG9rZW5zIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZURlY2xhcmF0aW9uQ29udGVudCIsInZhcmlhYmxlRGVjbGFyYXRpb25Ub2tlbnMiLCJzdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZFN0YXRlbWVudENvbnRlbnQiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFRva2VucyIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRDb250ZW50IiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50VG9rZW5zIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFrQmdCQSwwQ0FBMEM7ZUFBMUNBOztJQVBBQywwQkFBMEI7ZUFBMUJBOztJQStCQUMscURBQXFEO2VBQXJEQTs7SUFSQUMsNkNBQTZDO2VBQTdDQTs7SUFSQUMsMkNBQTJDO2VBQTNDQTs7O21DQXhCZ0I7NkJBRWlCO0FBRWpELElBQU0sQUFBRUMseUNBQTJDQyxvQ0FBZSxDQUExREQ7QUFFUixJQUFNRSx3QkFBd0JDLElBQUFBLCtDQUFnQyxLQUN4REMsZ0JBQWdCSix1Q0FBdUNFO0FBRXRELFNBQVNOLDJCQUEyQlMsV0FBVyxFQUFFQyxLQUFLO0lBQzNELElBQU1DLGVBQWUsQUFBQyxHQUFjLE9BQVpGLGNBQ2xCRyxjQUFjQywwQkFBMEJGLGNBQWNEO0lBRTVELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTYiwyQ0FBMkNlLFVBQVUsRUFBRUosS0FBSztJQUMxRSxJQUFNSyxnQ0FBZ0MsQUFBQyxlQUF5QixPQUFYRCxZQUFXLE9BRTFERSwrQkFBK0JILDBCQUEwQkUsK0JBQStCTDtJQUU5RixPQUFPTTtBQUNUO0FBRU8sU0FBU2IsNENBQTRDYyxjQUFjLEVBQUVQLEtBQUs7SUFDL0UsSUFBTVEsNkJBQTZCLEFBQUMsWUFBMEIsT0FBZkQsZ0JBQWUsT0FFeERFLDRCQUE0Qk4sMEJBQTBCSyw0QkFBNEJSO0lBRXhGLE9BQU9TO0FBQ1Q7QUFFTyxTQUFTakIsOENBQThDa0IsZUFBZSxFQUFFVixLQUFLO0lBQ2xGLElBQU1XLDhCQUE4QixBQUFDLEdBQWtCLE9BQWhCRCxpQkFBZ0IsT0FFakRFLDZCQUE2QlQsMEJBQTBCUSw2QkFBNkJYO0lBRTFGLE9BQU9ZO0FBQ1Q7QUFFTyxTQUFTckIsc0RBQXNEc0IsbUJBQW1CLEVBQUViLEtBQUs7SUFDOUYsSUFBTWMsa0NBQWtDLEFBQUMsR0FBc0IsT0FBcEJELHFCQUFvQixPQUV6REUsaUNBQWlDWiwwQkFBMEJXLGlDQUFpQ2Q7SUFFbEcsT0FBT2U7QUFDVDtBQUVBLFNBQVNaLDBCQUEwQmEsT0FBTztRQUFFaEIsUUFBQUEsaUVBQVFGO0lBQ2xELElBQU1tQixTQUFTakIsTUFBTWtCLFFBQVEsQ0FBQ0Y7SUFFOUIsT0FBT0M7QUFDVCJ9
package/lib/variable.js CHANGED
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "default", {
8
8
  return Variable;
9
9
  }
10
10
  });
11
- var _type = /*#__PURE__*/ _interop_require_default(require("./type"));
12
11
  var _string = require("./utilities/string");
12
+ var _type = require("./type");
13
13
  var _node = require("./utilities/node");
14
14
  function _class_call_check(instance, Constructor) {
15
15
  if (!(instance instanceof Constructor)) {
@@ -30,11 +30,6 @@ function _create_class(Constructor, protoProps, staticProps) {
30
30
  if (staticProps) _defineProperties(Constructor, staticProps);
31
31
  return Constructor;
32
32
  }
33
- function _interop_require_default(obj) {
34
- return obj && obj.__esModule ? obj : {
35
- default: obj
36
- };
37
- }
38
33
  var Variable = /*#__PURE__*/ function() {
39
34
  function Variable(node, type) {
40
35
  _class_call_check(this, Variable);
@@ -110,13 +105,19 @@ var Variable = /*#__PURE__*/ function() {
110
105
  node = variableNode; ///
111
106
  var type = json.type;
112
107
  json = type; ///
113
- type = _type.default.fromJSONAndFileContext(json, fileContext);
114
- var typeName = type.getName();
115
- type = fileContext.findTypeByTypeName(typeName); ///
108
+ type = (0, _type.typeFromJSONAndFileContext)(json, fileContext);
116
109
  var variable = new Variable(node, type);
117
110
  return variable;
118
111
  }
119
112
  },
113
+ {
114
+ key: "fromVariableAndType",
115
+ value: function fromVariableAndType(variable, type) {
116
+ var node = variable.getNode();
117
+ variable = new Variable(node, type); ///
118
+ return variable;
119
+ }
120
+ },
120
121
  {
121
122
  key: "fromVariableNodeAndType",
122
123
  value: function fromVariableNodeAndType(variableNode, type) {
@@ -128,4 +129,4 @@ var Variable = /*#__PURE__*/ function() {
128
129
  return Variable;
129
130
  }();
130
131
 
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4vdHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBtYXRjaCh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICB0eXBlTWF0Y2hlcyA9IHRoaXMubWF0Y2hUeXBlKHR5cGUpLFxuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbWF0Y2hlcyA9IG5vZGVNYXRjaGVzICYmIHR5cGVNYXRjaGVzO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE5vZGUobm9kZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5ub2RlLm1hdGNoKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlKHR5cGUpIHtcbiAgICBjb25zdCB0eXBlTWF0Y2hlcyA9IHRoaXMudHlwZS5tYXRjaCh0eXBlKTtcblxuICAgIHJldHVybiB0eXBlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTm9kZUFuZFR5cGUobm9kZSwgdHlwZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgdHlwZU1hdGNoZXMgPSB0aGlzLm1hdGNoVHlwZSh0eXBlKSxcbiAgICAgICAgICBub2RlQW5kVHlwZU1hdGNoID0gbm9kZU1hdGNoZXMgJiYgdHlwZU1hdGNoZXM7XG5cbiAgICByZXR1cm4gbm9kZUFuZFR5cGVNYXRjaDtcbiAgfVxuXG4gIGFzU3RyaW5nKHRva2Vucykge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfToke3R5cGVOYW1lfWA7IC8vL1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHRvSlNPTih0b2tlbnMpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHRoaXMudHlwZS50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIG5vZGUgPSBzdHJpbmcsICAvL1xuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgbm9kZSB9ID0ganNvbjtcblxuICAgIGNvbnN0IGxleGVyICA9IGZpbGVDb250ZXh0LmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gZmlsZUNvbnRleHQuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKTtcblxuICAgIG5vZGUgPSB2YXJpYWJsZU5vZGU7ICAvLy9cblxuICAgIGxldCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICBqc29uID0gdHlwZTsgIC8vL1xuXG4gICAgdHlwZSA9IFR5cGUuZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7IC8vL1xuXG4gICAgY29uc3QgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUobm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlKSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKG5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVmFyaWFibGUiLCJub2RlIiwidHlwZSIsImdldE5vZGUiLCJnZXRUeXBlIiwibWF0Y2giLCJ2YXJpYWJsZSIsInR5cGVNYXRjaGVzIiwibWF0Y2hUeXBlIiwibm9kZU1hdGNoZXMiLCJtYXRjaE5vZGUiLCJtYXRjaGVzIiwibWF0Y2hOb2RlQW5kVHlwZSIsIm5vZGVBbmRUeXBlTWF0Y2giLCJhc1N0cmluZyIsInRva2VucyIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsInN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRvSlNPTiIsInR5cGVKU09OIiwianNvbiIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsImxleGVyIiwiZ2V0TGV4ZXIiLCJwYXJzZXIiLCJnZXRQYXJzZXIiLCJ2YXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsIlR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFPcUJBOzs7MkRBTEo7c0JBRVk7b0JBQ2tCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhDLElBQUEsQUFBTUEseUJBQUQsQUFBTDthQUFNQSxTQUNQQyxJQUFJLEVBQUVDLElBQUk7Z0NBREhGO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7a0JBSEtGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLE1BQU1DLFFBQVE7Z0JBQ1osSUFBTUosT0FBT0ksU0FBU0YsT0FBTyxJQUN2QkgsT0FBT0ssU0FBU0gsT0FBTyxJQUN2QkksY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ04sT0FDN0JPLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNULE9BQzdCVSxVQUFVRixlQUFlRjtnQkFFL0IsT0FBT0k7WUFDVDs7O1lBRUFELEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVVCxJQUFJO2dCQUNaLElBQU1RLGNBQWMsSUFBSSxDQUFDUixJQUFJLENBQUNJLEtBQUssQ0FBQ0o7Z0JBRXBDLE9BQU9RO1lBQ1Q7OztZQUVBRCxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVU4sSUFBSTtnQkFDWixJQUFNSyxjQUFjLElBQUksQ0FBQ0wsSUFBSSxDQUFDRyxLQUFLLENBQUNIO2dCQUVwQyxPQUFPSztZQUNUOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQlgsSUFBSSxFQUFFQyxJQUFJO2dCQUN6QixJQUFNTyxjQUFjLElBQUksQ0FBQ0MsU0FBUyxDQUFDVCxPQUM3Qk0sY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ04sT0FDN0JXLG1CQUFtQkosZUFBZUY7Z0JBRXhDLE9BQU9NO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0MsTUFBTTtnQkFDYixJQUFNQyxXQUFXLElBQUksQ0FBQ2QsSUFBSSxDQUFDZSxPQUFPO2dCQUVsQyxJQUFJQyxTQUFTQyxJQUFBQSxvQkFBWSxFQUFDLElBQUksQ0FBQ2xCLElBQUksRUFBRWM7Z0JBRXJDRyxTQUFTLEFBQUMsR0FBWUYsT0FBVkUsUUFBTyxLQUFZLE9BQVRGLFdBQVksR0FBRztnQkFFckMsT0FBT0U7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPTCxNQUFNO2dCQUNYLElBQU1NLFdBQVcsSUFBSSxDQUFDbkIsSUFBSSxDQUFDa0IsTUFBTSxDQUFDTCxTQUM1QkcsU0FBU0MsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNsQixJQUFJLEVBQUVjLFNBQ2pDZCxPQUFPaUIsUUFDUGhCLE9BQU9tQixVQUNQQyxPQUFPO29CQUNMckIsTUFBQUE7b0JBQ0FDLE1BQUFBO2dCQUNGO2dCQUVOLE9BQU9vQjtZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLHVCQUF1QkQsSUFBSSxFQUFFRSxXQUFXO2dCQUM3QyxJQUFJLEFBQUV2QixPQUFTcUIsS0FBVHJCO2dCQUVOLElBQU13QixRQUFTRCxZQUFZRSxRQUFRLElBQzdCQyxTQUFTSCxZQUFZSSxTQUFTLElBQzlCQyxpQkFBaUI1QixNQUNqQjZCLGVBQWVDLElBQUFBLG9DQUE4QixFQUFDRixnQkFBZ0JKLE9BQU9FO2dCQUUzRTFCLE9BQU82QixjQUFlLEdBQUc7Z0JBRXpCLElBQUksQUFBRTVCLE9BQVNvQixLQUFUcEI7Z0JBRU5vQixPQUFPcEIsTUFBTyxHQUFHO2dCQUVqQkEsT0FBTzhCLGFBQUksQ0FBQ1Qsc0JBQXNCLENBQUNELE1BQU1FO2dCQUV6QyxJQUFNUixXQUFXZCxLQUFLZSxPQUFPO2dCQUU3QmYsT0FBT3NCLFlBQVlTLGtCQUFrQixDQUFDakIsV0FBVyxHQUFHO2dCQUVwRCxJQUFNVixXQUFXLElBdkZBTixTQXVGYUMsTUFBTUM7Z0JBRXBDLE9BQU9JO1lBQ1Q7OztZQUVPNEIsS0FBQUE7bUJBQVAsU0FBT0Esd0JBQXdCSixZQUFZLEVBQUU1QixJQUFJO2dCQUMvQyxJQUFNRCxPQUFPNkIsY0FDUHhCLFdBQVcsSUE5RkFOLFNBOEZhQyxNQUFNQztnQkFFcEMsT0FBT0k7WUFDVDs7O1dBakdtQk4ifQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBtYXRjaCh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICB0eXBlTWF0Y2hlcyA9IHRoaXMubWF0Y2hUeXBlKHR5cGUpLFxuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbWF0Y2hlcyA9IG5vZGVNYXRjaGVzICYmIHR5cGVNYXRjaGVzO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE5vZGUobm9kZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5ub2RlLm1hdGNoKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlKHR5cGUpIHtcbiAgICBjb25zdCB0eXBlTWF0Y2hlcyA9IHRoaXMudHlwZS5tYXRjaCh0eXBlKTtcblxuICAgIHJldHVybiB0eXBlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTm9kZUFuZFR5cGUobm9kZSwgdHlwZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgdHlwZU1hdGNoZXMgPSB0aGlzLm1hdGNoVHlwZSh0eXBlKSxcbiAgICAgICAgICBub2RlQW5kVHlwZU1hdGNoID0gbm9kZU1hdGNoZXMgJiYgdHlwZU1hdGNoZXM7XG5cbiAgICByZXR1cm4gbm9kZUFuZFR5cGVNYXRjaDtcbiAgfVxuXG4gIGFzU3RyaW5nKHRva2Vucykge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfToke3R5cGVOYW1lfWA7IC8vL1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHRvSlNPTih0b2tlbnMpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHRoaXMudHlwZS50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIG5vZGUgPSBzdHJpbmcsICAvL1xuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgbm9kZSB9ID0ganNvbjtcblxuICAgIGNvbnN0IGxleGVyICA9IGZpbGVDb250ZXh0LmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gZmlsZUNvbnRleHQuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKTtcblxuICAgIG5vZGUgPSB2YXJpYWJsZU5vZGU7ICAvLy9cblxuICAgIGxldCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICBqc29uID0gdHlwZTsgIC8vL1xuXG4gICAgdHlwZSA9IHR5cGVGcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKG5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlID0gdmFyaWFibGUuZ2V0Tm9kZSgpO1xuXG4gICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUobm9kZSwgdHlwZSk7ICAvLy9cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUobm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJWYXJpYWJsZSIsIm5vZGUiLCJ0eXBlIiwiZ2V0Tm9kZSIsImdldFR5cGUiLCJtYXRjaCIsInZhcmlhYmxlIiwidHlwZU1hdGNoZXMiLCJtYXRjaFR5cGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm1hdGNoZXMiLCJtYXRjaE5vZGVBbmRUeXBlIiwibm9kZUFuZFR5cGVNYXRjaCIsImFzU3RyaW5nIiwidG9rZW5zIiwidHlwZU5hbWUiLCJnZXROYW1lIiwic3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidG9KU09OIiwidHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT05BbmRGaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nIiwidHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmcm9tVmFyaWFibGVBbmRUeXBlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NCQUpRO29CQUNjO29CQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHlCQUFELEFBQUw7YUFBTUEsU0FDUEMsSUFBSSxFQUFFQyxJQUFJO2dDQURIRjtRQUVqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUhLRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxRQUFRO2dCQUNaLElBQU1KLE9BQU9JLFNBQVNGLE9BQU8sSUFDdkJILE9BQU9LLFNBQVNILE9BQU8sSUFDdkJJLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCTyxjQUFjLElBQUksQ0FBQ0MsU0FBUyxDQUFDVCxPQUM3QlUsVUFBVUYsZUFBZUY7Z0JBRS9CLE9BQU9JO1lBQ1Q7OztZQUVBRCxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVVQsSUFBSTtnQkFDWixJQUFNUSxjQUFjLElBQUksQ0FBQ1IsSUFBSSxDQUFDSSxLQUFLLENBQUNKO2dCQUVwQyxPQUFPUTtZQUNUOzs7WUFFQUQsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVOLElBQUk7Z0JBQ1osSUFBTUssY0FBYyxJQUFJLENBQUNMLElBQUksQ0FBQ0csS0FBSyxDQUFDSDtnQkFFcEMsT0FBT0s7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJYLElBQUksRUFBRUMsSUFBSTtnQkFDekIsSUFBTU8sY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ1QsT0FDN0JNLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCVyxtQkFBbUJKLGVBQWVGO2dCQUV4QyxPQUFPTTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNDLE1BQU07Z0JBQ2IsSUFBTUMsV0FBVyxJQUFJLENBQUNkLElBQUksQ0FBQ2UsT0FBTztnQkFFbEMsSUFBSUMsU0FBU0MsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNsQixJQUFJLEVBQUVjO2dCQUVyQ0csU0FBUyxBQUFDLEdBQVlGLE9BQVZFLFFBQU8sS0FBWSxPQUFURixXQUFZLEdBQUc7Z0JBRXJDLE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0wsTUFBTTtnQkFDWCxJQUFNTSxXQUFXLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLE1BQU0sQ0FBQ0wsU0FDNUJHLFNBQVNDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDbEIsSUFBSSxFQUFFYyxTQUNqQ2QsT0FBT2lCLFFBQ1BoQixPQUFPbUIsVUFDUEMsT0FBTztvQkFDTHJCLE1BQUFBO29CQUNBQyxNQUFBQTtnQkFDRjtnQkFFTixPQUFPb0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSx1QkFBdUJELElBQUksRUFBRUUsV0FBVztnQkFDN0MsSUFBSSxBQUFFdkIsT0FBU3FCLEtBQVRyQjtnQkFFTixJQUFNd0IsUUFBU0QsWUFBWUUsUUFBUSxJQUM3QkMsU0FBU0gsWUFBWUksU0FBUyxJQUM5QkMsaUJBQWlCNUIsTUFDakI2QixlQUFlQyxJQUFBQSxvQ0FBOEIsRUFBQ0YsZ0JBQWdCSixPQUFPRTtnQkFFM0UxQixPQUFPNkIsY0FBZSxHQUFHO2dCQUV6QixJQUFJLEFBQUU1QixPQUFTb0IsS0FBVHBCO2dCQUVOb0IsT0FBT3BCLE1BQU8sR0FBRztnQkFFakJBLE9BQU84QixJQUFBQSxnQ0FBMEIsRUFBQ1YsTUFBTUU7Z0JBRXhDLElBQU1sQixXQUFXLElBbkZBTixTQW1GYUMsTUFBTUM7Z0JBRXBDLE9BQU9JO1lBQ1Q7OztZQUVPMkIsS0FBQUE7bUJBQVAsU0FBT0Esb0JBQW9CM0IsUUFBUSxFQUFFSixJQUFJO2dCQUN2QyxJQUFNRCxPQUFPSyxTQUFTSCxPQUFPO2dCQUU3QkcsV0FBVyxJQTNGTU4sU0EyRk9DLE1BQU1DLE9BQVEsR0FBRztnQkFFekMsT0FBT0k7WUFDVDs7O1lBRU80QixLQUFBQTttQkFBUCxTQUFPQSx3QkFBd0JKLFlBQVksRUFBRTVCLElBQUk7Z0JBQy9DLElBQU1ELE9BQU82QixjQUNQeEIsV0FBVyxJQWxHQU4sU0FrR2FDLE1BQU1DO2dCQUVwQyxPQUFPSTtZQUNUOzs7V0FyR21CTiJ9
@@ -141,18 +141,21 @@ var StatementAsCombinatorNodeVerifier = /*#__PURE__*/ function(NodeVerifier) {
141
141
  switch(ruleName){
142
142
  case _ruleNames.TYPE_RULE_NAME:
143
143
  {
144
+ debugger;
144
145
  var typeNode = nonTerminalNode, typeVerified = (0, _termAsConstructor.verifyType)(typeNode, fileContext, verifyAhead), typeNodeVerified = typeVerified; ///
145
146
  nonTerminalNodeVerified = typeNodeVerified; ///
146
147
  break;
147
148
  }
148
149
  case _ruleNames.TERM_RULE_NAME:
149
150
  {
151
+ debugger;
150
152
  var termNode = nonTerminalNode, standaloneTermVerified = (0, _termAsConstructor.verifyStandaloneTerm)(termNode, fileContext, verifyAhead), termNodeVerified = standaloneTermVerified; ///
151
153
  nonTerminalNodeVerified = termNodeVerified; ///
152
154
  break;
153
155
  }
154
156
  case _ruleNames.STATEMENT_RULE_NAME:
155
157
  {
158
+ debugger;
156
159
  var statementNode = nonTerminalNode, standaloneStatementVerified = verifyStandaloneStatement(statementNode, fileContext, verifyAhead), statementNodeVerified = standaloneStatementVerified; ///
157
160
  nonTerminalNodeVerified = statementNodeVerified; ///
158
161
  break;
@@ -183,4 +186,4 @@ function verifyStandaloneStatement(statementNode, fileContext, verifyAhead) {
183
186
  return standaloneStatementVerified;
184
187
  }
185
188
 
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2RlL3N0YXRlbWVudEFzQ29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGVWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbm9kZVwiO1xuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlTdGFuZGFsb25lVGVybSwgdmVyaWZ5VHlwZSB9IGZyb20gXCIuLy4uLy4uL3ZlcmlmaWVyL25vZGUvdGVybUFzQ29uc3RydWN0b3JcIjtcbmltcG9ydCB7IFRZUEVfUlVMRV9OQU1FLCBURVJNX1JVTEVfTkFNRSwgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi8uLi9ydWxlTmFtZXNcIjtcblxuY2xhc3MgU3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyIGV4dGVuZHMgTm9kZVZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gICAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICAgIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICAgIGNhc2UgVFlQRV9SVUxFX05BTUU6IHtcbiAgICAgICAgY29uc3QgdHlwZU5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICB0eXBlVmVyaWZpZWQgPSB2ZXJpZnlUeXBlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpLFxuICAgICAgICAgICAgICB0eXBlTm9kZVZlcmlmaWVkID0gdHlwZVZlcmlmaWVkOyAgLy8vXG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB0eXBlTm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQgPSB2ZXJpZnlTdGFuZGFsb25lVGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSxcbiAgICAgICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUQVRFTUVOVF9SVUxFX05BTUU6IHtcbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkOyAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cbn1cblxuY29uc3Qgc3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyID0gbmV3IFN0YXRlbWVudEFzQ29tYmluYXRvck5vZGVWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBzdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXI7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaWxlQ29udGV4dCIsInZlcmlmeUFoZWFkIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiVFlQRV9SVUxFX05BTUUiLCJ0eXBlTm9kZSIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiLCJ0eXBlTm9kZVZlcmlmaWVkIiwiVEVSTV9SVUxFX05BTUUiLCJ0ZXJtTm9kZSIsInN0YW5kYWxvbmVUZXJtVmVyaWZpZWQiLCJ2ZXJpZnlTdGFuZGFsb25lVGVybSIsInRlcm1Ob2RlVmVyaWZpZWQiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwic3RhdGVtZW50Tm9kZSIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlVmVyaWZpZWQiLCJOb2RlVmVyaWZpZXIiLCJzdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXIiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImNvbnRleHQiLCJkZXJpdmVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwREE7OztlQUFBOzs7MkRBeER5QjtnRUFDRztpQ0FFcUI7eUJBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEUsSUFBQSxBQUFNQSxrREFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGVBQWUsRUFBRUMsV0FBVyxFQUFFQyxXQUFXO2dCQUM3RCxJQUFJQztnQkFFSixJQUFNQyxXQUFXSixnQkFBZ0JLLFdBQVc7Z0JBRTVDLE9BQVFEO29CQUNOLEtBQUtFLHlCQUFjO3dCQUFFOzRCQUNuQixJQUFNQyxXQUFXUCxpQkFDWFEsZUFBZUMsSUFBQUEsNkJBQVUsRUFBQ0YsVUFBVU4sYUFBYUMsY0FDakRRLG1CQUFtQkYsY0FBZSxHQUFHOzRCQUUzQ0wsMEJBQTBCTyxrQkFBa0IsR0FBRzs0QkFFL0M7d0JBQ0Y7b0JBRUEsS0FBS0MseUJBQWM7d0JBQUU7NEJBQ25CLElBQU1DLFdBQVdaLGlCQUNYYSx5QkFBeUJDLElBQUFBLHVDQUFvQixFQUFDRixVQUFVWCxhQUFhQyxjQUNyRWEsbUJBQW1CRix3QkFBeUIsR0FBRzs0QkFFckRWLDBCQUEwQlksa0JBQWtCLEdBQUc7NEJBRS9DO3dCQUNGO29CQUVBLEtBQUtDLDhCQUFtQjt3QkFBRTs0QkFDeEIsSUFBTUMsZ0JBQWdCakIsaUJBQ2hCa0IsOEJBQThCQywwQkFBMEJGLGVBQWVoQixhQUFhQyxjQUNwRmtCLHdCQUF3QkYsNkJBQTZCLEdBQUc7NEJBRTlEZiwwQkFBMEJpQix1QkFBdUIsR0FBRzs0QkFFcEQ7d0JBQ0Y7b0JBRUE7d0JBQVM7NEJBQ1BqQiwwQkFBMEIsdUJBdEM1QkwsOENBc0NrQ0MseUJBQU4sSUFBSyxhQUF1QkMsaUJBQWlCQyxhQUFhQyxjQUFjLEdBQUc7NEJBRXJHO3dCQUNGO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztXQTdDSUw7RUFBMEN1QixhQUFZO0FBZ0Q1RCxJQUFNQyxvQ0FBb0MsSUFBSXhCO0lBRTlDLFdBQWV3QjtBQUVmLFNBQVNILDBCQUEwQkYsYUFBYSxFQUFFaEIsV0FBVyxFQUFFQyxXQUFXO0lBQ3hFLElBQUlnQjtJQUVKLElBQU1LLGtCQUFrQnRCLFlBQVl1QixZQUFZLENBQUNQO0lBRWpEaEIsWUFBWXdCLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLDhCQUE0Qk47SUFFaEYsSUFBTVMsVUFBVXpCLGFBQ1YwQixVQUFVLE9BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDYixlQUFlVyxhQUFhRCxTQUFTRCxTQUFTeEI7SUFFeEZnQiw4QkFBOEJXLG1CQUFvQixHQUFHO0lBRXJELElBQUlYLDZCQUE2QjtRQUMvQmpCLFlBQVk4QixLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJSLGlCQUFnQiw0QkFBMEJOO0lBQ2xGO0lBRUEsT0FBT0M7QUFDVCJ9
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2RlL3N0YXRlbWVudEFzQ29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGVWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbm9kZVwiO1xuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlUeXBlLCB2ZXJpZnlTdGFuZGFsb25lVGVybSB9IGZyb20gXCIuLy4uLy4uL3ZlcmlmaWVyL25vZGUvdGVybUFzQ29uc3RydWN0b3JcIjtcbmltcG9ydCB7IFRZUEVfUlVMRV9OQU1FLCBURVJNX1JVTEVfTkFNRSwgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi8uLi9ydWxlTmFtZXNcIjtcblxuY2xhc3MgU3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyIGV4dGVuZHMgTm9kZVZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gICAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICAgIHN3aXRjaCAocnVsZU5hbWUpIHtcbiAgICAgIGNhc2UgVFlQRV9SVUxFX05BTUU6IHtcbiAgICAgICAgZGVidWdnZXJcblxuICAgICAgICBjb25zdCB0eXBlTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHR5cGVWZXJpZmllZCA9IHZlcmlmeVR5cGUodHlwZU5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCksXG4gICAgICAgICAgICAgIHR5cGVOb2RlVmVyaWZpZWQgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHR5cGVOb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgIGRlYnVnZ2VyXG5cbiAgICAgICAgY29uc3QgdGVybU5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICBzdGFuZGFsb25lVGVybVZlcmlmaWVkID0gdmVyaWZ5U3RhbmRhbG9uZVRlcm0odGVybU5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCksXG4gICAgICAgICAgICAgIHRlcm1Ob2RlVmVyaWZpZWQgPSBzdGFuZGFsb25lVGVybVZlcmlmaWVkOyAgLy8vXG5cbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSB0ZXJtTm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBTVEFURU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGRlYnVnZ2VyXG5cbiAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZVZlcmlmaWVkID0gc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkOyAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudE5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cbn1cblxuY29uc3Qgc3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyID0gbmV3IFN0YXRlbWVudEFzQ29tYmluYXRvck5vZGVWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBzdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXI7XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50Li4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJTdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaWxlQ29udGV4dCIsInZlcmlmeUFoZWFkIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiVFlQRV9SVUxFX05BTUUiLCJ0eXBlTm9kZSIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiLCJ0eXBlTm9kZVZlcmlmaWVkIiwiVEVSTV9SVUxFX05BTUUiLCJ0ZXJtTm9kZSIsInN0YW5kYWxvbmVUZXJtVmVyaWZpZWQiLCJ2ZXJpZnlTdGFuZGFsb25lVGVybSIsInRlcm1Ob2RlVmVyaWZpZWQiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwic3RhdGVtZW50Tm9kZSIsInN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlVmVyaWZpZWQiLCJOb2RlVmVyaWZpZXIiLCJzdGF0ZW1lbnRBc0NvbWJpbmF0b3JOb2RlVmVyaWZpZXIiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImNvbnRleHQiLCJkZXJpdmVkIiwiYXNzaWdubWVudHMiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnRUE7OztlQUFBOzs7MkRBOUR5QjtnRUFDRztpQ0FFcUI7eUJBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFcEUsSUFBQSxBQUFNQSxrREFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxzQkFBc0JDLGVBQWUsRUFBRUMsV0FBVyxFQUFFQyxXQUFXO2dCQUM3RCxJQUFJQztnQkFFSixJQUFNQyxXQUFXSixnQkFBZ0JLLFdBQVc7Z0JBRTVDLE9BQVFEO29CQUNOLEtBQUtFLHlCQUFjO3dCQUFFOzRCQUNuQixRQUFROzRCQUVSLElBQU1DLFdBQVdQLGlCQUNYUSxlQUFlQyxJQUFBQSw2QkFBVSxFQUFDRixVQUFVTixhQUFhQyxjQUNqRFEsbUJBQW1CRixjQUFlLEdBQUc7NEJBRTNDTCwwQkFBMEJPLGtCQUFrQixHQUFHOzRCQUUvQzt3QkFDRjtvQkFFQSxLQUFLQyx5QkFBYzt3QkFBRTs0QkFDbkIsUUFBUTs0QkFFUixJQUFNQyxXQUFXWixpQkFDWGEseUJBQXlCQyxJQUFBQSx1Q0FBb0IsRUFBQ0YsVUFBVVgsYUFBYUMsY0FDckVhLG1CQUFtQkYsd0JBQXlCLEdBQUc7NEJBRXJEViwwQkFBMEJZLGtCQUFrQixHQUFHOzRCQUUvQzt3QkFDRjtvQkFFQSxLQUFLQyw4QkFBbUI7d0JBQUU7NEJBQ3hCLFFBQVE7NEJBRVIsSUFBTUMsZ0JBQWdCakIsaUJBQ2hCa0IsOEJBQThCQywwQkFBMEJGLGVBQWVoQixhQUFhQyxjQUNwRmtCLHdCQUF3QkYsNkJBQTZCLEdBQUc7NEJBRTlEZiwwQkFBMEJpQix1QkFBdUIsR0FBRzs0QkFFcEQ7d0JBQ0Y7b0JBRUE7d0JBQVM7NEJBQ1BqQiwwQkFBMEIsdUJBNUM1QkwsOENBNENrQ0MseUJBQU4sSUFBSyxhQUF1QkMsaUJBQWlCQyxhQUFhQyxjQUFjLEdBQUc7NEJBRXJHO3dCQUNGO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztXQW5ESUw7RUFBMEN1QixhQUFZO0FBc0Q1RCxJQUFNQyxvQ0FBb0MsSUFBSXhCO0lBRTlDLFdBQWV3QjtBQUVmLFNBQVNILDBCQUEwQkYsYUFBYSxFQUFFaEIsV0FBVyxFQUFFQyxXQUFXO0lBQ3hFLElBQUlnQjtJQUVKLElBQU1LLGtCQUFrQnRCLFlBQVl1QixZQUFZLENBQUNQO0lBRWpEaEIsWUFBWXdCLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLDhCQUE0Qk47SUFFaEYsSUFBTVMsVUFBVXpCLGFBQ1YwQixVQUFVLE9BQ1ZDLGNBQWMsRUFBRSxFQUNoQkMsb0JBQW9CQyxJQUFBQSxrQkFBZSxFQUFDYixlQUFlVyxhQUFhRCxTQUFTRCxTQUFTeEI7SUFFeEZnQiw4QkFBOEJXLG1CQUFvQixHQUFHO0lBRXJELElBQUlYLDZCQUE2QjtRQUMvQmpCLFlBQVk4QixLQUFLLENBQUMsQUFBQyxvQkFBbUMsT0FBaEJSLGlCQUFnQiw0QkFBMEJOO0lBQ2xGO0lBRUEsT0FBT0M7QUFDVCJ9
@@ -14,13 +14,11 @@ _export(exports, {
14
14
  },
15
15
  verifyStandaloneTerm: function() {
16
16
  return verifyStandaloneTerm;
17
- },
18
- verifyType: function() {
19
- return verifyType;
20
17
  }
21
18
  });
22
19
  var _term = /*#__PURE__*/ _interop_require_default(require("../../verify/term"));
23
20
  var _node = /*#__PURE__*/ _interop_require_default(require("../../verifier/node"));
21
+ var _givenType = /*#__PURE__*/ _interop_require_default(require("../../verify/givenType"));
24
22
  var _query = require("../../utilities/query");
25
23
  var _ruleNames = require("../../ruleNames");
26
24
  function _assert_this_initialized(self) {
@@ -188,28 +186,14 @@ function verifyStandaloneTerm(termNode, fileContext, verifyAhead) {
188
186
  }
189
187
  return standaloneTermVerified;
190
188
  }
191
- function verifyType(typeNode, fileContext, verifyAhead) {
192
- var typeVerified = false;
193
- var typeString = fileContext.nodeAsString(typeNode);
194
- fileContext.trace("Verifying the '".concat(typeString, "' type..."), typeNode);
195
- var typeName = (0, _query.typeNameFromTypeNode)(typeNode), typePresent = fileContext.isTypePresentByTypeName(typeName);
196
- if (!typePresent) {
197
- fileContext.debug("The type '".concat(typeName, "' is not present."), typeNode);
198
- } else {
199
- fileContext.debug("...verified the '".concat(typeString, "' type."), typeNode);
200
- var verifiedAhead = verifyAhead();
201
- typeVerified = verifiedAhead; ///
202
- }
203
- return typeVerified;
204
- }
205
189
  function verifyArgument(argumentNode, fileContext, verifyAhead) {
206
190
  var argumentVerified;
207
191
  var argumentString = fileContext.nodeAsString(argumentNode);
208
192
  fileContext.trace("Verifying the '".concat(argumentString, "' argument..."), argumentNode);
209
193
  var typeNode = typeNodeQuery(argumentNode), termNode = termNodeQuery(argumentNode);
210
194
  if (typeNode !== null) {
211
- var typeVerified = verifyType(typeNode, fileContext, verifyAhead);
212
- argumentVerified = typeVerified; ///
195
+ var types = [], givenTypeVerified = (0, _givenType.default)(typeNode, types, fileContext, verifyAhead);
196
+ argumentVerified = givenTypeVerified; ///
213
197
  }
214
198
  if (termNode !== null) {
215
199
  var standaloneTermVerified = verifyStandaloneTerm(termNode, fileContext, verifyAhead);
@@ -221,4 +205,4 @@ function verifyArgument(argumentNode, fileContext, verifyAhead) {
221
205
  return argumentVerified;
222
206
  }
223
207
 
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2RlL3Rlcm1Bc0NvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBOb2RlVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5LCB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLCBBUkdVTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdHlwZVwiKSxcbiAgICAgIHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybVwiKTtcblxuY2xhc3MgVGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIgZXh0ZW5kcyBOb2RlVmVyaWZpZXIge1xuICB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgc3dpdGNoIChydWxlTmFtZSkge1xuICAgICAgY2FzZSBURVJNX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCB0ZXJtTm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQgPSB2ZXJpZnlTdGFuZGFsb25lVGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSxcbiAgICAgICAgICAgICAgdGVybU5vZGVWZXJpZmllZCA9IHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIEFSR1VNRU5UX1JVTEVfTkFNRToge1xuICAgICAgICBjb25zdCBhcmd1bWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsIC8vL1xuICAgICAgICAgICAgICBhcmd1bWVudFZlcmlmaWVkID0gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpLFxuICAgICAgICAgICAgICBhcmd1bWVudE5vZGVWZXJpZmllZCA9IGFyZ3VtZW50VmVyaWZpZWQ7ICAvLy9cblxuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IGFyZ3VtZW50Tm9kZVZlcmlmaWVkOyAvLy9cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN1cGVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG59XG5cbmNvbnN0IHRlcm1Bc0NvbnN0cnVjdG9yTm9kZVZlcmlmaWVyID0gbmV3IFRlcm1Bc0NvbnN0cnVjdG9yTm9kZVZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHRlcm1Bc0NvbnN0cnVjdG9yTm9kZVZlcmlmaWVyO1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhbmRhbG9uZVRlcm0odGVybU5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVRlcm1WZXJpZmllZDtcblxuICBjb25zdCB0ZXJtU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHRlcm1Ob2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgc3RhbmRhbG9uZSB0ZXJtLi4uYCwgdGVybU5vZGUpO1xuXG4gIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgIGNvbnRleHQgPSBmaWxlQ29udGV4dCwgIC8vL1xuICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgY29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gIHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQgPSB0ZXJtVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAoc3RhbmRhbG9uZVRlcm1WZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHN0YW5kYWxvbmUgdGVybS5gLCB0ZXJtTm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhbmRhbG9uZVRlcm1WZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVR5cGUodHlwZU5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgdHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gLCB0eXBlTm9kZSk7XG5cbiAgY29uc3QgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlIHR5cGUgJyR7dHlwZU5hbWV9JyBpcyBub3QgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZS5gLCB0eXBlTm9kZSk7XG5cbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHR5cGVWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5QXJndW1lbnQoYXJndW1lbnROb2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgbGV0IGFyZ3VtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgYXJndW1lbnRTdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcoYXJndW1lbnROb2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHthcmd1bWVudFN0cmluZ30nIGFyZ3VtZW50Li4uYCwgYXJndW1lbnROb2RlKTtcblxuICBjb25zdCB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkoYXJndW1lbnROb2RlKSxcbiAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGFyZ3VtZW50Tm9kZSk7XG5cbiAgaWYgKHR5cGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdmVyaWZ5VHlwZSh0eXBlTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB0eXBlVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhbmRhbG9uZVRlcm1WZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgYXJndW1lbnRWZXJpZmllZCA9IHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQ7ICAvLy9cbiAgfVxuXG4gIGlmIChhcmd1bWVudFZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthcmd1bWVudFN0cmluZ30nIGFyZ3VtZW50LmAsIGFyZ3VtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGFuZGFsb25lVGVybSIsInZlcmlmeVR5cGUiLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybU5vZGVRdWVyeSIsIlRlcm1Bc0NvbnN0cnVjdG9yTm9kZVZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZmlsZUNvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIlRFUk1fUlVMRV9OQU1FIiwidGVybU5vZGUiLCJzdGFuZGFsb25lVGVybVZlcmlmaWVkIiwidGVybU5vZGVWZXJpZmllZCIsIkFSR1VNRU5UX1JVTEVfTkFNRSIsImFyZ3VtZW50Tm9kZSIsImFyZ3VtZW50VmVyaWZpZWQiLCJ2ZXJpZnlBcmd1bWVudCIsImFyZ3VtZW50Tm9kZVZlcmlmaWVkIiwiTm9kZVZlcmlmaWVyIiwidGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIiLCJ0ZXJtU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ0ZXJtcyIsImNvbnRleHQiLCJ0ZXJtVmVyaWZpZWQiLCJ2ZXJpZnlUZXJtIiwiZGVidWciLCJ0eXBlTm9kZSIsInR5cGVWZXJpZmllZCIsInR5cGVTdHJpbmciLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsInZlcmlmaWVkQWhlYWQiLCJhcmd1bWVudFN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBbURBLE9BQTZDO2VBQTdDOztJQUVnQkEsb0JBQW9CO2VBQXBCQTs7SUFvQkFDLFVBQVU7ZUFBVkE7OzsyREF2RU87MkRBQ0U7cUJBRXVCO3lCQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkQsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG1CQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRWhDLElBQUEsQUFBTUUsOENBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxlQUFlLEVBQUVDLFdBQVcsRUFBRUMsV0FBVztnQkFDN0QsSUFBSUM7Z0JBRUosSUFBTUMsV0FBV0osZ0JBQWdCSyxXQUFXO2dCQUU1QyxPQUFRRDtvQkFDTixLQUFLRSx5QkFBYzt3QkFBRTs0QkFDbkIsSUFBTUMsV0FBV1AsaUJBQ1hRLHlCQUF5QmYscUJBQXFCYyxVQUFVTixhQUFhQyxjQUNyRU8sbUJBQW1CRCx3QkFBeUIsR0FBRzs0QkFFckRMLDBCQUEwQk0sa0JBQWtCLEdBQUc7NEJBRS9DO3dCQUNGO29CQUVBLEtBQUtDLDZCQUFrQjt3QkFBRTs0QkFDdkIsSUFBTUMsZUFBZVgsaUJBQ2ZZLG1CQUFtQkMsZUFBZUYsY0FBY1YsYUFBYUMsY0FDN0RZLHVCQUF1QkYsa0JBQW1CLEdBQUc7NEJBRW5EVCwwQkFBMEJXLHNCQUFzQixHQUFHOzRCQUVuRDt3QkFDRjtvQkFFQTt3QkFBUzs0QkFDUFgsMEJBQTBCLHVCQTVCNUJMLDBDQTRCa0NDLHlCQUFOLElBQUssYUFBdUJDLGlCQUFpQkMsYUFBYUM7NEJBRXBGO3dCQUNGO2dCQUNGO2dCQUVBLE9BQU9DO1lBQ1Q7OztXQW5DSUw7RUFBc0NpQixhQUFZO0FBc0N4RCxJQUFNQyxnQ0FBZ0MsSUFBSWxCO0lBRTFDLFdBQWVrQjtBQUVSLFNBQVN2QixxQkFBcUJjLFFBQVEsRUFBRU4sV0FBVyxFQUFFQyxXQUFXO0lBQ3JFLElBQUlNO0lBRUosSUFBTVMsYUFBYWhCLFlBQVlpQixZQUFZLENBQUNYO0lBRTVDTixZQUFZa0IsS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhGLFlBQVcseUJBQXVCVjtJQUV0RSxJQUFNYSxRQUFRLEVBQUUsRUFDVkMsVUFBVXBCLGFBQ1ZxQixlQUFlQyxJQUFBQSxhQUFVLEVBQUNoQixVQUFVYSxPQUFPQyxTQUFTbkI7SUFFMURNLHlCQUF5QmMsY0FBZSxHQUFHO0lBRTNDLElBQUlkLHdCQUF3QjtRQUMxQlAsWUFBWXVCLEtBQUssQ0FBQyxBQUFDLG9CQUE4QixPQUFYUCxZQUFXLHVCQUFxQlY7SUFDeEU7SUFFQSxPQUFPQztBQUNUO0FBRU8sU0FBU2QsV0FBVytCLFFBQVEsRUFBRXhCLFdBQVcsRUFBRUMsV0FBVztJQUMzRCxJQUFJd0IsZUFBZTtJQUVuQixJQUFNQyxhQUFhMUIsWUFBWWlCLFlBQVksQ0FBQ087SUFFNUN4QixZQUFZa0IsS0FBSyxDQUFDLEFBQUMsa0JBQTRCLE9BQVhRLFlBQVcsY0FBWUY7SUFFM0QsSUFBTUcsV0FBV0MsSUFBQUEsMkJBQW9CLEVBQUNKLFdBQ2hDSyxjQUFjN0IsWUFBWThCLHVCQUF1QixDQUFDSDtJQUV4RCxJQUFJLENBQUNFLGFBQWE7UUFDaEI3QixZQUFZdUIsS0FBSyxDQUFDLEFBQUMsYUFBcUIsT0FBVEksVUFBUyxzQkFBb0JIO0lBQzlELE9BQU87UUFDTHhCLFlBQVl1QixLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWEcsWUFBVyxZQUFVRjtRQUUzRCxJQUFNTyxnQkFBZ0I5QjtRQUV0QndCLGVBQWVNLGVBQWUsR0FBRztJQUNuQztJQUVBLE9BQU9OO0FBQ1Q7QUFFQSxTQUFTYixlQUFlRixZQUFZLEVBQUVWLFdBQVcsRUFBRUMsV0FBVztJQUM1RCxJQUFJVTtJQUVKLElBQU1xQixpQkFBaUJoQyxZQUFZaUIsWUFBWSxDQUFDUDtJQUVoRFYsWUFBWWtCLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmYyxnQkFBZSxrQkFBZ0J0QjtJQUVuRSxJQUFNYyxXQUFXOUIsY0FBY2dCLGVBQ3pCSixXQUFXVixjQUFjYztJQUUvQixJQUFJYyxhQUFhLE1BQU07UUFDckIsSUFBTUMsZUFBZWhDLFdBQVcrQixVQUFVeEIsYUFBYUM7UUFFdkRVLG1CQUFtQmMsY0FBYyxHQUFHO0lBQ3RDO0lBRUEsSUFBSW5CLGFBQWEsTUFBTTtRQUNyQixJQUFNQyx5QkFBeUJmLHFCQUFxQmMsVUFBVU4sYUFBYUM7UUFFM0VVLG1CQUFtQkosd0JBQXlCLEdBQUc7SUFDakQ7SUFFQSxJQUFJSSxrQkFBa0I7UUFDcEJYLFlBQVl1QixLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZlMsZ0JBQWUsZ0JBQWN0QjtJQUNyRTtJQUVBLE9BQU9DO0FBQ1QifQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2RlL3Rlcm1Bc0NvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5VGVybSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3Rlcm1cIjtcbmltcG9ydCBOb2RlVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVcIjtcbmltcG9ydCB2ZXJpZnlHaXZlblR5cGUgZnJvbSBcIi4uLy4uL3ZlcmlmeS9naXZlblR5cGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgVEVSTV9SVUxFX05BTUUsIEFSR1VNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi8uLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90eXBlXCIpLFxuICAgICAgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9hcmd1bWVudC90ZXJtXCIpO1xuXG5jbGFzcyBUZXJtQXNDb25zdHJ1Y3Rvck5vZGVWZXJpZmllciBleHRlbmRzIE5vZGVWZXJpZmllciB7XG4gIHZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICBzd2l0Y2ggKHJ1bGVOYW1lKSB7XG4gICAgICBjYXNlIFRFUk1fUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gbm9uVGVybWluYWxOb2RlLCAvLy9cbiAgICAgICAgICAgICAgc3RhbmRhbG9uZVRlcm1WZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpLFxuICAgICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkID0gc3RhbmRhbG9uZVRlcm1WZXJpZmllZDsgIC8vL1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gdGVybU5vZGVWZXJpZmllZDsgLy8vXG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQVJHVU1FTlRfUlVMRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgICAgIGFyZ3VtZW50VmVyaWZpZWQgPSB2ZXJpZnlBcmd1bWVudChhcmd1bWVudE5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCksXG4gICAgICAgICAgICAgIGFyZ3VtZW50Tm9kZVZlcmlmaWVkID0gYXJndW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gYXJndW1lbnROb2RlVmVyaWZpZWQ7IC8vL1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3VwZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cbn1cblxuY29uc3QgdGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIgPSBuZXcgVGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgdGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlTdGFuZGFsb25lVGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gIGxldCBzdGFuZGFsb25lVGVybVZlcmlmaWVkO1xuXG4gIGNvbnN0IHRlcm1TdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcodGVybU5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyBzdGFuZGFsb25lIHRlcm0uLi5gLCB0ZXJtTm9kZSk7XG5cbiAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgc3RhbmRhbG9uZVRlcm1WZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lVGVybVZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgc3RhbmRhbG9uZSB0ZXJtLmAsIHRlcm1Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lVGVybVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlBcmd1bWVudChhcmd1bWVudE5vZGUsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgYXJndW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBhcmd1bWVudFN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhhcmd1bWVudE5vZGUpO1xuXG4gIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2FyZ3VtZW50U3RyaW5nfScgYXJndW1lbnQuLi5gLCBhcmd1bWVudE5vZGUpO1xuXG4gIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeShhcmd1bWVudE5vZGUpLFxuICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoYXJndW1lbnROb2RlKTtcblxuICBpZiAodHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0eXBlcyA9IFtdLCAvLy9cbiAgICAgICAgICBnaXZlblR5cGVWZXJpZmllZCA9IHZlcmlmeUdpdmVuVHlwZSh0eXBlTm9kZSwgdHlwZXMsIGZpbGVDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBhcmd1bWVudFZlcmlmaWVkID0gZ2l2ZW5UeXBlVmVyaWZpZWQ7IC8vL1xuICB9XG5cbiAgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhbmRhbG9uZVRlcm1WZXJpZmllZCA9IHZlcmlmeVN0YW5kYWxvbmVUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgYXJndW1lbnRWZXJpZmllZCA9IHN0YW5kYWxvbmVUZXJtVmVyaWZpZWQ7ICAvLy9cbiAgfVxuXG4gIGlmIChhcmd1bWVudFZlcmlmaWVkKSB7XG4gICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHthcmd1bWVudFN0cmluZ30nIGFyZ3VtZW50LmAsIGFyZ3VtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gYXJndW1lbnRWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGFuZGFsb25lVGVybSIsInR5cGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0ZXJtTm9kZVF1ZXJ5IiwiVGVybUFzQ29uc3RydWN0b3JOb2RlVmVyaWZpZXIiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaWxlQ29udGV4dCIsInZlcmlmeUFoZWFkIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZWQiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJ0ZXJtTm9kZSIsInN0YW5kYWxvbmVUZXJtVmVyaWZpZWQiLCJ0ZXJtTm9kZVZlcmlmaWVkIiwiQVJHVU1FTlRfUlVMRV9OQU1FIiwiYXJndW1lbnROb2RlIiwiYXJndW1lbnRWZXJpZmllZCIsInZlcmlmeUFyZ3VtZW50IiwiYXJndW1lbnROb2RlVmVyaWZpZWQiLCJOb2RlVmVyaWZpZXIiLCJ0ZXJtQXNDb25zdHJ1Y3Rvck5vZGVWZXJpZmllciIsInRlcm1TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInRlcm1zIiwiY29udGV4dCIsInRlcm1WZXJpZmllZCIsInZlcmlmeVRlcm0iLCJkZWJ1ZyIsImFyZ3VtZW50U3RyaW5nIiwidHlwZU5vZGUiLCJ0eXBlcyIsImdpdmVuVHlwZVZlcmlmaWVkIiwidmVyaWZ5R2l2ZW5UeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFvREEsT0FBNkM7ZUFBN0M7O0lBRWdCQSxvQkFBb0I7ZUFBcEJBOzs7MkRBcERPOzJEQUNFO2dFQUNHO3FCQUVGO3lCQUN5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5ELElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxtQkFDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVoQyxJQUFBLEFBQU1FLDhDQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQkMsZUFBZSxFQUFFQyxXQUFXLEVBQUVDLFdBQVc7Z0JBQzdELElBQUlDO2dCQUVKLElBQU1DLFdBQVdKLGdCQUFnQkssV0FBVztnQkFFNUMsT0FBUUQ7b0JBQ04sS0FBS0UseUJBQWM7d0JBQUU7NEJBQ25CLElBQU1DLFdBQVdQLGlCQUNYUSx5QkFBeUJkLHFCQUFxQmEsVUFBVU4sYUFBYUMsY0FDckVPLG1CQUFtQkQsd0JBQXlCLEdBQUc7NEJBRXJETCwwQkFBMEJNLGtCQUFrQixHQUFHOzRCQUUvQzt3QkFDRjtvQkFFQSxLQUFLQyw2QkFBa0I7d0JBQUU7NEJBQ3ZCLElBQU1DLGVBQWVYLGlCQUNmWSxtQkFBbUJDLGVBQWVGLGNBQWNWLGFBQWFDLGNBQzdEWSx1QkFBdUJGLGtCQUFtQixHQUFHOzRCQUVuRFQsMEJBQTBCVyxzQkFBc0IsR0FBRzs0QkFFbkQ7d0JBQ0Y7b0JBRUE7d0JBQVM7NEJBQ1BYLDBCQUEwQix1QkE1QjVCTCwwQ0E0QmtDQyx5QkFBTixJQUFLLGFBQXVCQyxpQkFBaUJDLGFBQWFDOzRCQUVwRjt3QkFDRjtnQkFDRjtnQkFFQSxPQUFPQztZQUNUOzs7V0FuQ0lMO0VBQXNDaUIsYUFBWTtBQXNDeEQsSUFBTUMsZ0NBQWdDLElBQUlsQjtJQUUxQyxXQUFla0I7QUFFUixTQUFTdEIscUJBQXFCYSxRQUFRLEVBQUVOLFdBQVcsRUFBRUMsV0FBVztJQUNyRSxJQUFJTTtJQUVKLElBQU1TLGFBQWFoQixZQUFZaUIsWUFBWSxDQUFDWDtJQUU1Q04sWUFBWWtCLEtBQUssQ0FBQyxBQUFDLGtCQUE0QixPQUFYRixZQUFXLHlCQUF1QlY7SUFFdEUsSUFBTWEsUUFBUSxFQUFFLEVBQ1ZDLFVBQVVwQixhQUNWcUIsZUFBZUMsSUFBQUEsYUFBVSxFQUFDaEIsVUFBVWEsT0FBT0MsU0FBU25CO0lBRTFETSx5QkFBeUJjLGNBQWUsR0FBRztJQUUzQyxJQUFJZCx3QkFBd0I7UUFDMUJQLFlBQVl1QixLQUFLLENBQUMsQUFBQyxvQkFBOEIsT0FBWFAsWUFBVyx1QkFBcUJWO0lBQ3hFO0lBRUEsT0FBT0M7QUFDVDtBQUVBLFNBQVNLLGVBQWVGLFlBQVksRUFBRVYsV0FBVyxFQUFFQyxXQUFXO0lBQzVELElBQUlVO0lBRUosSUFBTWEsaUJBQWlCeEIsWUFBWWlCLFlBQVksQ0FBQ1A7SUFFaERWLFlBQVlrQixLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZk0sZ0JBQWUsa0JBQWdCZDtJQUVuRSxJQUFNZSxXQUFXL0IsY0FBY2dCLGVBQ3pCSixXQUFXVixjQUFjYztJQUUvQixJQUFJZSxhQUFhLE1BQU07UUFDckIsSUFBTUMsUUFBUSxFQUFFLEVBQ1ZDLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0gsVUFBVUMsT0FBTzFCLGFBQWFDO1FBRXhFVSxtQkFBbUJnQixtQkFBbUIsR0FBRztJQUMzQztJQUVBLElBQUlyQixhQUFhLE1BQU07UUFDckIsSUFBTUMseUJBQXlCZCxxQkFBcUJhLFVBQVVOLGFBQWFDO1FBRTNFVSxtQkFBbUJKLHdCQUF5QixHQUFHO0lBQ2pEO0lBRUEsSUFBSUksa0JBQWtCO1FBQ3BCWCxZQUFZdUIsS0FBSyxDQUFDLEFBQUMsb0JBQWtDLE9BQWZDLGdCQUFlLGdCQUFjZDtJQUNyRTtJQUVBLE9BQU9DO0FBQ1QifQ==