brighterscript 1.0.0-alpha.41 → 1.0.0-alpha.43

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 (212) hide show
  1. package/CHANGELOG.md +78 -2
  2. package/dist/AstValidationSegmenter.d.ts +3 -0
  3. package/dist/AstValidationSegmenter.js +62 -2
  4. package/dist/AstValidationSegmenter.js.map +1 -1
  5. package/dist/BsConfig.d.ts +7 -7
  6. package/dist/CrossScopeValidator.js +3 -3
  7. package/dist/CrossScopeValidator.js.map +1 -1
  8. package/dist/DiagnosticFilterer.d.ts +5 -1
  9. package/dist/DiagnosticFilterer.js +92 -33
  10. package/dist/DiagnosticFilterer.js.map +1 -1
  11. package/dist/DiagnosticManager.js +12 -9
  12. package/dist/DiagnosticManager.js.map +1 -1
  13. package/dist/DiagnosticMessages.d.ts +374 -225
  14. package/dist/DiagnosticMessages.js +641 -424
  15. package/dist/DiagnosticMessages.js.map +1 -1
  16. package/dist/DiagnosticSeverityAdjuster.js +4 -0
  17. package/dist/DiagnosticSeverityAdjuster.js.map +1 -1
  18. package/dist/LanguageServer.js +0 -7
  19. package/dist/LanguageServer.js.map +1 -1
  20. package/dist/PluginInterface.js +2 -0
  21. package/dist/PluginInterface.js.map +1 -1
  22. package/dist/Program.d.ts +22 -1
  23. package/dist/Program.js +206 -49
  24. package/dist/Program.js.map +1 -1
  25. package/dist/SymbolTable.d.ts +3 -0
  26. package/dist/SymbolTable.js +19 -1
  27. package/dist/SymbolTable.js.map +1 -1
  28. package/dist/XmlScope.js +3 -6
  29. package/dist/XmlScope.js.map +1 -1
  30. package/dist/astUtils/creators.d.ts +35 -3
  31. package/dist/astUtils/creators.js +52 -1
  32. package/dist/astUtils/creators.js.map +1 -1
  33. package/dist/astUtils/reflection.d.ts +24 -5
  34. package/dist/astUtils/reflection.js +89 -19
  35. package/dist/astUtils/reflection.js.map +1 -1
  36. package/dist/astUtils/visitors.d.ts +3 -2
  37. package/dist/astUtils/visitors.js +37 -14
  38. package/dist/astUtils/visitors.js.map +1 -1
  39. package/dist/astUtils/visitors.spec.js +172 -6
  40. package/dist/astUtils/visitors.spec.js.map +1 -1
  41. package/dist/bscPlugin/codeActions/CodeActionsProcessor.d.ts +0 -1
  42. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js +0 -13
  43. package/dist/bscPlugin/codeActions/CodeActionsProcessor.js.map +1 -1
  44. package/dist/bscPlugin/completions/CompletionsProcessor.d.ts +2 -1
  45. package/dist/bscPlugin/completions/CompletionsProcessor.js +5 -5
  46. package/dist/bscPlugin/completions/CompletionsProcessor.js.map +1 -1
  47. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js +106 -2
  48. package/dist/bscPlugin/completions/CompletionsProcessor.spec.js.map +1 -1
  49. package/dist/bscPlugin/hover/HoverProcessor.spec.js +51 -3
  50. package/dist/bscPlugin/hover/HoverProcessor.spec.js.map +1 -1
  51. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.d.ts +1 -0
  52. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js +149 -0
  53. package/dist/bscPlugin/transpile/BrsFileTranspileProcessor.js.map +1 -1
  54. package/dist/bscPlugin/validation/BrsFileValidator.js +15 -8
  55. package/dist/bscPlugin/validation/BrsFileValidator.js.map +1 -1
  56. package/dist/bscPlugin/validation/BrsFileValidator.spec.js +170 -24
  57. package/dist/bscPlugin/validation/BrsFileValidator.spec.js.map +1 -1
  58. package/dist/bscPlugin/validation/ScopeValidator.d.ts +7 -0
  59. package/dist/bscPlugin/validation/ScopeValidator.js +150 -80
  60. package/dist/bscPlugin/validation/ScopeValidator.js.map +1 -1
  61. package/dist/bscPlugin/validation/ScopeValidator.spec.js +1341 -29
  62. package/dist/bscPlugin/validation/ScopeValidator.spec.js.map +1 -1
  63. package/dist/bscPlugin/validation/XmlFileValidator.js +0 -8
  64. package/dist/bscPlugin/validation/XmlFileValidator.js.map +1 -1
  65. package/dist/diagnosticUtils.js +6 -5
  66. package/dist/diagnosticUtils.js.map +1 -1
  67. package/dist/files/BrsFile.Class.spec.js +87 -28
  68. package/dist/files/BrsFile.Class.spec.js.map +1 -1
  69. package/dist/files/BrsFile.d.ts +1 -0
  70. package/dist/files/BrsFile.js +20 -8
  71. package/dist/files/BrsFile.js.map +1 -1
  72. package/dist/files/BrsFile.spec.js +133 -34
  73. package/dist/files/BrsFile.spec.js.map +1 -1
  74. package/dist/files/XmlFile.js +2 -2
  75. package/dist/files/XmlFile.js.map +1 -1
  76. package/dist/files/XmlFile.spec.js +3 -20
  77. package/dist/files/XmlFile.spec.js.map +1 -1
  78. package/dist/globalCallables.js +1 -1
  79. package/dist/index.d.ts +8 -3
  80. package/dist/index.js +24 -16
  81. package/dist/index.js.map +1 -1
  82. package/dist/interfaces.d.ts +18 -0
  83. package/dist/interfaces.js.map +1 -1
  84. package/dist/lexer/Lexer.js +17 -11
  85. package/dist/lexer/Lexer.js.map +1 -1
  86. package/dist/lexer/Lexer.spec.js +21 -3
  87. package/dist/lexer/Lexer.spec.js.map +1 -1
  88. package/dist/lexer/TokenKind.d.ts +9 -0
  89. package/dist/lexer/TokenKind.js +11 -1
  90. package/dist/lexer/TokenKind.js.map +1 -1
  91. package/dist/parser/AstNode.d.ts +2 -1
  92. package/dist/parser/AstNode.js +3 -2
  93. package/dist/parser/AstNode.js.map +1 -1
  94. package/dist/parser/Expression.d.ts +22 -2
  95. package/dist/parser/Expression.js +84 -49
  96. package/dist/parser/Expression.js.map +1 -1
  97. package/dist/parser/Parser.Class.spec.js +3 -3
  98. package/dist/parser/Parser.Class.spec.js.map +1 -1
  99. package/dist/parser/Parser.js +73 -61
  100. package/dist/parser/Parser.js.map +1 -1
  101. package/dist/parser/Parser.spec.js +198 -15
  102. package/dist/parser/Parser.spec.js.map +1 -1
  103. package/dist/parser/SGParser.js +9 -9
  104. package/dist/parser/SGParser.js.map +1 -1
  105. package/dist/parser/SGParser.spec.js +3 -2
  106. package/dist/parser/SGParser.spec.js.map +1 -1
  107. package/dist/parser/Statement.d.ts +16 -18
  108. package/dist/parser/Statement.js +136 -82
  109. package/dist/parser/Statement.js.map +1 -1
  110. package/dist/parser/tests/controlFlow/If.spec.js +1 -1
  111. package/dist/parser/tests/controlFlow/If.spec.js.map +1 -1
  112. package/dist/parser/tests/expression/ArrayLiterals.spec.js +3 -3
  113. package/dist/parser/tests/expression/ArrayLiterals.spec.js.map +1 -1
  114. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js +3 -3
  115. package/dist/parser/tests/expression/AssociativeArrayLiterals.spec.js.map +1 -1
  116. package/dist/parser/tests/expression/Call.spec.js +9 -9
  117. package/dist/parser/tests/expression/Call.spec.js.map +1 -1
  118. package/dist/parser/tests/expression/Indexing.spec.js +3 -3
  119. package/dist/parser/tests/expression/Indexing.spec.js.map +1 -1
  120. package/dist/parser/tests/expression/TemplateStringExpression.spec.js +1 -1
  121. package/dist/parser/tests/expression/TemplateStringExpression.spec.js.map +1 -1
  122. package/dist/parser/tests/expression/TernaryExpression.spec.js +353 -71
  123. package/dist/parser/tests/expression/TernaryExpression.spec.js.map +1 -1
  124. package/dist/parser/tests/statement/Dim.spec.js +10 -3
  125. package/dist/parser/tests/statement/Dim.spec.js.map +1 -1
  126. package/dist/parser/tests/statement/Enum.spec.js +2 -2
  127. package/dist/parser/tests/statement/Enum.spec.js.map +1 -1
  128. package/dist/parser/tests/statement/Increment.spec.js +3 -5
  129. package/dist/parser/tests/statement/Increment.spec.js.map +1 -1
  130. package/dist/parser/tests/statement/PrintStatement.spec.js +3 -3
  131. package/dist/parser/tests/statement/TryCatch.spec.js +1 -1
  132. package/dist/parser/tests/statement/TryCatch.spec.js.map +1 -1
  133. package/dist/roku-types/data.json +567 -247
  134. package/dist/roku-types/index.d.ts +72 -42
  135. package/dist/types/ArrayType.d.ts +3 -0
  136. package/dist/types/ArrayType.js +18 -5
  137. package/dist/types/ArrayType.js.map +1 -1
  138. package/dist/types/AssociativeArrayType.d.ts +1 -0
  139. package/dist/types/AssociativeArrayType.js +1 -0
  140. package/dist/types/AssociativeArrayType.js.map +1 -1
  141. package/dist/types/BaseFunctionType.d.ts +1 -0
  142. package/dist/types/BaseFunctionType.js +1 -0
  143. package/dist/types/BaseFunctionType.js.map +1 -1
  144. package/dist/types/BooleanType.d.ts +1 -0
  145. package/dist/types/BooleanType.js +1 -0
  146. package/dist/types/BooleanType.js.map +1 -1
  147. package/dist/types/BscType.d.ts +8 -1
  148. package/dist/types/BscType.js +22 -6
  149. package/dist/types/BscType.js.map +1 -1
  150. package/dist/types/BuiltInInterfaceAdder.js +10 -6
  151. package/dist/types/BuiltInInterfaceAdder.js.map +1 -1
  152. package/dist/types/ClassType.d.ts +1 -0
  153. package/dist/types/ClassType.js +5 -2
  154. package/dist/types/ClassType.js.map +1 -1
  155. package/dist/types/ComponentType.d.ts +11 -4
  156. package/dist/types/ComponentType.js +100 -8
  157. package/dist/types/ComponentType.js.map +1 -1
  158. package/dist/types/DoubleType.d.ts +2 -0
  159. package/dist/types/DoubleType.js +4 -5
  160. package/dist/types/DoubleType.js.map +1 -1
  161. package/dist/types/DynamicType.d.ts +1 -0
  162. package/dist/types/DynamicType.js +4 -0
  163. package/dist/types/DynamicType.js.map +1 -1
  164. package/dist/types/EnumType.d.ts +2 -0
  165. package/dist/types/EnumType.js +20 -2
  166. package/dist/types/EnumType.js.map +1 -1
  167. package/dist/types/FloatType.d.ts +2 -0
  168. package/dist/types/FloatType.js +4 -5
  169. package/dist/types/FloatType.js.map +1 -1
  170. package/dist/types/FunctionType.js +2 -1
  171. package/dist/types/FunctionType.js.map +1 -1
  172. package/dist/types/InheritableType.js +8 -0
  173. package/dist/types/InheritableType.js.map +1 -1
  174. package/dist/types/IntegerType.d.ts +2 -0
  175. package/dist/types/IntegerType.js +4 -5
  176. package/dist/types/IntegerType.js.map +1 -1
  177. package/dist/types/InterfaceType.js +4 -1
  178. package/dist/types/InterfaceType.js.map +1 -1
  179. package/dist/types/InvalidType.d.ts +2 -1
  180. package/dist/types/InvalidType.js +3 -2
  181. package/dist/types/InvalidType.js.map +1 -1
  182. package/dist/types/LongIntegerType.d.ts +2 -0
  183. package/dist/types/LongIntegerType.js +4 -5
  184. package/dist/types/LongIntegerType.js.map +1 -1
  185. package/dist/types/ObjectType.d.ts +1 -0
  186. package/dist/types/ObjectType.js +1 -0
  187. package/dist/types/ObjectType.js.map +1 -1
  188. package/dist/types/ReferenceType.d.ts +20 -2
  189. package/dist/types/ReferenceType.js +106 -5
  190. package/dist/types/ReferenceType.js.map +1 -1
  191. package/dist/types/StringType.d.ts +1 -0
  192. package/dist/types/StringType.js +3 -2
  193. package/dist/types/StringType.js.map +1 -1
  194. package/dist/types/TypedFunctionType.d.ts +1 -1
  195. package/dist/types/TypedFunctionType.js +8 -2
  196. package/dist/types/TypedFunctionType.js.map +1 -1
  197. package/dist/types/UninitializedType.d.ts +2 -0
  198. package/dist/types/UninitializedType.js +5 -6
  199. package/dist/types/UninitializedType.js.map +1 -1
  200. package/dist/types/UnionType.js +8 -2
  201. package/dist/types/UnionType.js.map +1 -1
  202. package/dist/types/VoidType.d.ts +4 -1
  203. package/dist/types/VoidType.js +5 -0
  204. package/dist/types/VoidType.js.map +1 -1
  205. package/dist/types/helpers.js +8 -1
  206. package/dist/types/helpers.js.map +1 -1
  207. package/dist/util.d.ts +17 -6
  208. package/dist/util.js +320 -24
  209. package/dist/util.js.map +1 -1
  210. package/dist/validators/ClassValidator.js +13 -5
  211. package/dist/validators/ClassValidator.js.map +1 -1
  212. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypedArrayExpression = exports.TypecastExpression = exports.TypeExpression = exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = void 0;
3
+ exports.TypedArrayExpression = exports.TypecastExpression = exports.TypeExpression = exports.RegexLiteralExpression = exports.NullCoalescingExpression = exports.TernaryExpression = exports.AnnotationExpression = exports.TaggedTemplateStringExpression = exports.TemplateStringExpression = exports.TemplateStringQuasiExpression = exports.CallfuncExpression = exports.NewExpression = exports.SourceLiteralExpression = exports.VariableExpression = exports.UnaryExpression = exports.AALiteralExpression = exports.AAMemberExpression = exports.ArrayLiteralExpression = exports.EscapedCharCodeLiteralExpression = exports.PrintSeparatorExpression = exports.LiteralExpression = exports.GroupingExpression = exports.IndexedGetExpression = exports.XmlAttributeGetExpression = exports.DottedGetExpression = exports.FunctionParameterExpression = exports.FunctionExpression = exports.CallExpression = exports.BinaryExpression = void 0;
4
4
  const TokenKind_1 = require("../lexer/TokenKind");
5
5
  const util_1 = require("../util");
6
6
  const Parser_1 = require("./Parser");
@@ -19,8 +19,9 @@ const ReferenceType_1 = require("../types/ReferenceType");
19
19
  const UnionType_1 = require("../types/UnionType");
20
20
  const ArrayType_1 = require("../types/ArrayType");
21
21
  const AssociativeArrayType_1 = require("../types/AssociativeArrayType");
22
- const creators_1 = require("../astUtils/creators");
23
- const types_1 = require("../types");
22
+ const TypedFunctionType_1 = require("../types/TypedFunctionType");
23
+ const InvalidType_1 = require("../types/InvalidType");
24
+ const UninitializedType_1 = require("../types/UninitializedType");
24
25
  const FunctionType_1 = require("../types/FunctionType");
25
26
  const BrightScriptDocParser_1 = require("./BrightScriptDocParser");
26
27
  class BinaryExpression extends AstNode_1.Expression {
@@ -50,6 +51,7 @@ class BinaryExpression extends AstNode_1.Expression {
50
51
  }
51
52
  }
52
53
  getType(options) {
54
+ var _a;
53
55
  const operatorKind = this.tokens.operator.kind;
54
56
  if (options.flags & 2 /* SymbolTypeFlag.typetime */) {
55
57
  // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
@@ -60,7 +62,7 @@ class BinaryExpression extends AstNode_1.Expression {
60
62
  }
61
63
  }
62
64
  else if (options.flags & 1 /* SymbolTypeFlag.runtime */) {
63
- return util_1.default.binaryOperatorResultType(this.left.getType(options), this.tokens.operator, this.right.getType(options));
65
+ return (_a = util_1.default.binaryOperatorResultType(this.left.getType(options), this.tokens.operator, this.right.getType(options))) !== null && _a !== void 0 ? _a : DynamicType_1.DynamicType.instance;
64
66
  }
65
67
  return DynamicType_1.DynamicType.instance;
66
68
  }
@@ -110,9 +112,7 @@ class CallExpression extends AstNode_1.Expression {
110
112
  let arg = this.args[i];
111
113
  result.push(...arg.transpile(state));
112
114
  }
113
- if (this.tokens.closingParen) {
114
- result.push(state.transpileToken(this.tokens.closingParen));
115
- }
115
+ result.push(state.transpileToken(this.tokens.closingParen, ')'));
116
116
  return result;
117
117
  }
118
118
  walk(visitor, options) {
@@ -122,7 +122,7 @@ class CallExpression extends AstNode_1.Expression {
122
122
  }
123
123
  }
124
124
  getType(options) {
125
- var _a, _b;
125
+ var _a, _b, _c;
126
126
  const calleeType = this.callee.getType(options);
127
127
  if (options.ignoreCall) {
128
128
  return calleeType;
@@ -130,14 +130,22 @@ class CallExpression extends AstNode_1.Expression {
130
130
  if ((0, reflection_1.isNewExpression)(this.parent)) {
131
131
  return calleeType;
132
132
  }
133
- const specialCaseReturnType = util_1.default.getSpecialCaseCallExpressionReturnType(this);
133
+ const specialCaseReturnType = util_1.default.getSpecialCaseCallExpressionReturnType(this, options);
134
134
  if (specialCaseReturnType) {
135
135
  return specialCaseReturnType;
136
136
  }
137
137
  if ((0, reflection_1.isCallableType)(calleeType) && (!(0, reflection_1.isReferenceType)(calleeType.returnType) || ((_a = calleeType.returnType) === null || _a === void 0 ? void 0 : _a.isResolvable()))) {
138
+ if ((0, reflection_1.isVoidType)(calleeType.returnType)) {
139
+ if ((_b = options.data) === null || _b === void 0 ? void 0 : _b.isBuiltIn) {
140
+ // built in functions that return `as void` will not initialize the result
141
+ return UninitializedType_1.UninitializedType.instance;
142
+ }
143
+ // non-built in functions with return type`as void` actually return `invalid`
144
+ return InvalidType_1.InvalidType.instance;
145
+ }
138
146
  return calleeType.returnType;
139
147
  }
140
- if (!(0, reflection_1.isReferenceType)(calleeType) && ((_b = calleeType === null || calleeType === void 0 ? void 0 : calleeType.returnType) === null || _b === void 0 ? void 0 : _b.isResolvable())) {
148
+ if (!(0, reflection_1.isReferenceType)(calleeType) && ((_c = calleeType === null || calleeType === void 0 ? void 0 : calleeType.returnType) === null || _c === void 0 ? void 0 : _c.isResolvable())) {
141
149
  return calleeType.returnType;
142
150
  }
143
151
  return new ReferenceType_1.TypePropertyReferenceType(calleeType, 'returnType');
@@ -216,7 +224,7 @@ class FunctionExpression extends AstNode_1.Expression {
216
224
  results.push(' ', state.transpileToken(name));
217
225
  }
218
226
  //leftParen
219
- results.push(state.transpileToken(this.tokens.leftParen));
227
+ results.push(state.transpileToken(this.tokens.leftParen, '('));
220
228
  //parameters
221
229
  for (let i = 0; i < this.parameters.length; i++) {
222
230
  let param = this.parameters[i];
@@ -228,7 +236,7 @@ class FunctionExpression extends AstNode_1.Expression {
228
236
  results.push(param.transpile(state));
229
237
  }
230
238
  //right paren
231
- results.push(state.transpileToken(this.tokens.rightParen));
239
+ results.push(state.transpileToken(this.tokens.rightParen, ')'));
232
240
  //as [Type]
233
241
  if (!state.options.removeParameterTypes && this.returnTypeExpression) {
234
242
  results.push(' ',
@@ -303,7 +311,7 @@ class FunctionExpression extends AstNode_1.Expression {
303
311
  if (!returnType) {
304
312
  returnType = isSub ? VoidType_1.VoidType.instance : DynamicType_1.DynamicType.instance;
305
313
  }
306
- const resultType = new types_1.TypedFunctionType(returnType);
314
+ const resultType = new TypedFunctionType_1.TypedFunctionType(returnType);
307
315
  resultType.isSub = isSub;
308
316
  for (let param of this.parameters) {
309
317
  resultType.addParameter(param.tokens.name.text, param.getType(Object.assign(Object.assign({}, options), { typeChain: undefined })), !!param.defaultValue);
@@ -357,8 +365,11 @@ class FunctionParameterExpression extends AstNode_1.Expression {
357
365
  var _a, _b, _c, _d, _e;
358
366
  const docs = BrightScriptDocParser_1.brsDocParser.parseNode(this.findAncestor(reflection_1.isFunctionStatement));
359
367
  const paramName = this.tokens.name.text;
360
- const paramTypeFromCode = (_b = (_a = this.typeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */, typeChain: undefined }))) !== null && _b !== void 0 ? _b : (_c = this.defaultValue) === null || _c === void 0 ? void 0 : _c.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */, typeChain: undefined }));
361
- const paramTypeFromDoc = docs.getParamBscType(paramName, Object.assign(Object.assign({}, options), { fullName: paramName, tableProvider: () => this.getSymbolTable() }));
368
+ let paramTypeFromCode = (_b = (_a = this.typeExpression) === null || _a === void 0 ? void 0 : _a.getType(Object.assign(Object.assign({}, options), { flags: 2 /* SymbolTypeFlag.typetime */, typeChain: undefined }))) !== null && _b !== void 0 ? _b : util_1.default.getDefaultTypeFromValueType((_c = this.defaultValue) === null || _c === void 0 ? void 0 : _c.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */, typeChain: undefined })));
369
+ if ((0, reflection_1.isInvalidType)(paramTypeFromCode) || (0, reflection_1.isVoidType)(paramTypeFromCode)) {
370
+ paramTypeFromCode = undefined;
371
+ }
372
+ const paramTypeFromDoc = docs.getParamBscType(paramName, Object.assign(Object.assign({}, options), { fullName: paramName, typeChain: undefined, tableProvider: () => this.getSymbolTable() }));
362
373
  let paramType = (_d = util_1.default.chooseTypeFromCodeOrDocComment(paramTypeFromCode, paramTypeFromDoc, options)) !== null && _d !== void 0 ? _d : DynamicType_1.DynamicType.instance;
363
374
  (_e = options.typeChain) === null || _e === void 0 ? void 0 : _e.push(new interfaces_1.TypeChainEntry({ name: paramName, type: paramType, data: options.data, astNode: this }));
364
375
  return paramType;
@@ -604,9 +615,9 @@ class GroupingExpression extends AstNode_1.Expression {
604
615
  return this.expression.transpile(state);
605
616
  }
606
617
  return [
607
- state.transpileToken(this.tokens.leftParen),
618
+ state.transpileToken(this.tokens.leftParen, '('),
608
619
  ...this.expression.transpile(state),
609
- state.transpileToken(this.tokens.rightParen)
620
+ state.transpileToken(this.tokens.rightParen, ')')
610
621
  ];
611
622
  }
612
623
  walk(visitor, options) {
@@ -678,6 +689,40 @@ class LiteralExpression extends AstNode_1.Expression {
678
689
  }
679
690
  }
680
691
  exports.LiteralExpression = LiteralExpression;
692
+ /**
693
+ * The print statement can have a mix of expressions and separators. These separators represent actual output to the screen,
694
+ * so this AstNode represents those separators (comma, semicolon, and whitespace)
695
+ */
696
+ class PrintSeparatorExpression extends AstNode_1.Expression {
697
+ constructor(options) {
698
+ super();
699
+ this.kind = AstNode_1.AstNodeKind.PrintSeparatorExpression;
700
+ this.tokens = {
701
+ separator: options.separator
702
+ };
703
+ this.location = this.tokens.separator.location;
704
+ }
705
+ transpile(state) {
706
+ var _a;
707
+ return [
708
+ ...(_a = this.tokens.separator.leadingWhitespace) !== null && _a !== void 0 ? _a : [],
709
+ ...state.transpileToken(this.tokens.separator)
710
+ ];
711
+ }
712
+ walk(visitor, options) {
713
+ //nothing to walk
714
+ }
715
+ get leadingTrivia() {
716
+ return this.tokens.separator.leadingTrivia;
717
+ }
718
+ clone() {
719
+ var _a;
720
+ return new PrintSeparatorExpression({
721
+ separator: util_1.default.cloneToken((_a = this.tokens) === null || _a === void 0 ? void 0 : _a.separator)
722
+ });
723
+ }
724
+ }
725
+ exports.PrintSeparatorExpression = PrintSeparatorExpression;
681
726
  /**
682
727
  * This is a special expression only used within template strings. It exists so we can prevent producing lots of empty strings
683
728
  * during template string transpile by identifying these expressions explicitly and skipping the bslib_toString around them
@@ -860,11 +905,18 @@ class AALiteralExpression extends AstNode_1.Expression {
860
905
  }
861
906
  }
862
907
  getType(options) {
908
+ var _a, _b, _c;
863
909
  const resultType = new AssociativeArrayType_1.AssociativeArrayType();
864
910
  resultType.addBuiltInInterfaces();
865
911
  for (const element of this.elements) {
866
912
  if ((0, reflection_1.isAAMemberExpression)(element)) {
867
- resultType.addMember(element.tokens.key.text, { definingNode: element }, element.getType(options), 1 /* SymbolTypeFlag.runtime */);
913
+ let memberName = (_c = (_b = (_a = element.tokens) === null || _a === void 0 ? void 0 : _a.key) === null || _b === void 0 ? void 0 : _b.text) !== null && _c !== void 0 ? _c : '';
914
+ if (element.tokens.key.kind === TokenKind_1.TokenKind.StringLiteral) {
915
+ memberName = memberName.replace(/"/g, ''); // remove quotes if it was a stringLiteral
916
+ }
917
+ if (memberName) {
918
+ resultType.addMember(memberName, { definingNode: element }, element.getType(options), 1 /* SymbolTypeFlag.runtime */);
919
+ }
868
920
  }
869
921
  }
870
922
  return resultType;
@@ -1050,6 +1102,7 @@ class SourceLiteralExpression extends AstNode_1.Expression {
1050
1102
  return -1;
1051
1103
  }
1052
1104
  transpile(state) {
1105
+ var _a;
1053
1106
  let text;
1054
1107
  switch (this.tokens.value.kind) {
1055
1108
  case TokenKind_1.TokenKind.SourceFilePathLiteral:
@@ -1066,6 +1119,17 @@ class SourceLiteralExpression extends AstNode_1.Expression {
1066
1119
  case TokenKind_1.TokenKind.SourceFunctionNameLiteral:
1067
1120
  text = `"${this.getFunctionName(state, Parser_1.ParseMode.BrighterScript)}"`;
1068
1121
  break;
1122
+ case TokenKind_1.TokenKind.SourceNamespaceNameLiteral:
1123
+ let namespaceParts = this.getFunctionName(state, Parser_1.ParseMode.BrighterScript).split('.');
1124
+ namespaceParts.pop(); // remove the function name
1125
+ text = `"${namespaceParts.join('.')}"`;
1126
+ break;
1127
+ case TokenKind_1.TokenKind.SourceNamespaceRootNameLiteral:
1128
+ let namespaceRootParts = this.getFunctionName(state, Parser_1.ParseMode.BrighterScript).split('.');
1129
+ namespaceRootParts.pop(); // remove the function name
1130
+ let rootNamespace = (_a = namespaceRootParts.shift()) !== null && _a !== void 0 ? _a : '';
1131
+ text = `"${rootNamespace}"`;
1132
+ break;
1069
1133
  case TokenKind_1.TokenKind.SourceLocationLiteral:
1070
1134
  const locationUrl = fileUrl(state.srcPath);
1071
1135
  //TODO find first parent that has range, or default to -1
@@ -1205,37 +1269,8 @@ class CallfuncExpression extends AstNode_1.Expression {
1205
1269
  }
1206
1270
  }
1207
1271
  getType(options) {
1208
- var _a, _b, _c;
1209
- let result = DynamicType_1.DynamicType.instance;
1210
- // a little hacky here with checking options.ignoreCall because callFuncExpression has the method name
1211
- // It's nicer for CallExpression, because it's a call on any expression.
1212
- const calleeType = this.callee.getType(Object.assign(Object.assign({}, options), { flags: 1 /* SymbolTypeFlag.runtime */ }));
1213
- if ((0, reflection_1.isComponentType)(calleeType) || (0, reflection_1.isReferenceType)(calleeType)) {
1214
- const funcType = (_b = (_a = calleeType).getCallFuncType) === null || _b === void 0 ? void 0 : _b.call(_a, this.tokens.methodName.text, options);
1215
- if (funcType) {
1216
- (_c = options.typeChain) === null || _c === void 0 ? void 0 : _c.push(new interfaces_1.TypeChainEntry({
1217
- name: this.tokens.methodName.text,
1218
- type: funcType,
1219
- data: options.data,
1220
- location: this.tokens.methodName.location,
1221
- separatorToken: (0, creators_1.createToken)(TokenKind_1.TokenKind.Callfunc),
1222
- astNode: this
1223
- }));
1224
- if (options.ignoreCall) {
1225
- result = funcType;
1226
- }
1227
- }
1228
- /* TODO:
1229
- make callfunc return types work
1230
- else if (isCallableType(funcType) && (!isReferenceType(funcType.returnType) || funcType.returnType.isResolvable())) {
1231
- result = funcType.returnType;
1232
- } else if (!isReferenceType(funcType) && (funcType as any)?.returnType?.isResolvable()) {
1233
- result = (funcType as any).returnType;
1234
- } else {
1235
- return new TypePropertyReferenceType(funcType, 'returnType');
1236
- }
1237
- */
1238
- }
1272
+ var _a;
1273
+ const result = (_a = util_1.default.getCallFuncType(this, this.tokens.methodName, options)) !== null && _a !== void 0 ? _a : DynamicType_1.DynamicType.instance;
1239
1274
  return result;
1240
1275
  }
1241
1276
  get leadingTrivia() {
@@ -1 +1 @@
1
- {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":";;;AAEA,kDAA+C;AAG/C,kCAA2B;AAE3B,qCAAqC;AACrC,oCAAoC;AAEpC,mDAAgD;AAChD,mDAAyE;AACzE,uDAAunB;AAEvnB,8CAA+C;AAC/C,gDAA6C;AAC7C,sDAAmD;AAGnD,uCAAoD;AACpD,gDAA6C;AAC7C,2CAAwC;AAExC,oDAAiD;AACjD,0DAAmE;AACnE,kDAA+C;AAC/C,kDAA+C;AAC/C,wEAAqE;AAErE,mDAAmD;AACnD,oCAA6C;AAE7C,wDAAqD;AAErD,mEAAuD;AAIvD,MAAa,gBAAiB,SAAQ,oBAAU;IAC5C,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QAeI,SAAI,GAAG,qBAAW,CAAC,gBAAgB,CAAC;QAdhD,IAAI,CAAC,MAAM,GAAG;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IAYD,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvD,GAAG;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,GAAG;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5D,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;IAGM,OAAO,CAAC,OAAuB;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,IAAI,OAAO,CAAC,KAAK,kCAA0B,EAAE;YACzC,0EAA0E;YAC1E,QAAQ,YAAY,EAAE;gBAClB,KAAK,qBAAS,CAAC,EAAE;oBACb,OAAO,IAAI,qBAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpF,oDAAoD;aACvD;SACJ;aAAM,IAAI,OAAO,CAAC,KAAK,iCAAyB,EAAE;YAC/C,OAAO,cAAI,CAAC,wBAAwB,CAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,yBAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,gBAAgB,CAAC;YACjB,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE;YACxB,QAAQ,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE;SAC7B,CAAC,EACF,CAAC,MAAM,EAAE,OAAO,CAAC,CACpB,CAAC;IACN,CAAC;CACJ;AA3ED,4CA2EC;AAGD,MAAa,cAAe,SAAQ,oBAAU;IAS1C,YAAY,OAKX;;QACG,KAAK,EAAE,CAAC;QAoBI,SAAI,GAAG,qBAAW,CAAC,cAAc,CAAC;QAnB9C,IAAI,CAAC,MAAM,GAAG;YACV,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrI,CAAC;IAgBD,SAAS,CAAC,KAAwB,EAAE,YAAqB;QACrD,IAAI,MAAM,GAAoB,EAAE,CAAC;QAEjC,oBAAoB;QACpB,IAAI,YAAY,EAAE;YACd,MAAM,CAAC,IAAI;YACP,kGAAkG;YAClG,GAAG,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC,EACjD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAC9C,CAAC;SACL;aAAM;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAChD;QAED,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CACtD,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,wBAAwB;YACxB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CACjD,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAChD;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,UAAU,CAAC;SACrB;QACD,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,UAAU,CAAC;SACrB;QACD,MAAM,qBAAqB,GAAG,cAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,CAAC;QAChF,IAAI,qBAAqB,EAAE;YACvB,OAAO,qBAAqB,CAAC;SAChC;QACD,IAAI,IAAA,2BAAc,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAA,4BAAe,EAAC,UAAU,CAAC,UAAU,CAAC,KAAI,MAAA,UAAU,CAAC,UAAU,0CAAE,YAAY,EAAE,CAAA,CAAC,EAAE;YAClH,OAAO,UAAU,CAAC,UAAU,CAAC;SAChC;QACD,IAAI,CAAC,IAAA,4BAAe,EAAC,UAAU,CAAC,KAAI,MAAC,UAA+B,aAA/B,UAAU,uBAAV,UAAU,CAAuB,UAAU,0CAAE,YAAY,EAAE,CAAA,EAAE;YAC9F,OAAQ,UAA+B,CAAC,UAAU,CAAC;SACtD;QACD,OAAO,IAAI,yCAAyB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACrC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,cAAc,CAAC;YACf,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE;YAC5B,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;SACxC,CAAC,EACF,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrB,CAAC;IACN,CAAC;;AAlHL,wCAmHC;AAlHG;;;;;GAKG;AACI,+BAAgB,GAAG,EAAE,CAAC;AA8GjC,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OASX;;QACG,KAAK,EAAE,CAAC;QAuBI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QAtBlD,IAAI,CAAC,MAAM,GAAG;YACV,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACxB,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aACjF;iBAAM;gBACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aACzE;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SAC3B;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,oBAAoB,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,cAAc,EAAE,CAAA,EAAA,CAAC,CAAC;IAClG,CAAC;IAgBD,IAAW,aAAa;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,aAAa,CAAC;IACnD,CAAC;IAED,IAAW,SAAS;;QAChB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,eAAe,0CAAE,aAAa,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,IAAW,QAAQ;;QACf,OAAO,cAAI,CAAC,sBAAsB,CAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,EACxB,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,oBAAoB,EACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,CAAC;IACN,CAAC;IAED,SAAS,CAAC,KAAwB,EAAE,IAAiB,EAAE,WAAW,GAAG,IAAI;;QACrE,IAAI,OAAO,GAAG,EAAqB,CAAC;QACpC,kBAAkB;QAClB,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAC/F,CAAC;QACF,eAAe;QACf,IAAI,IAAI,EAAE;YACN,OAAO,CAAC,IAAI,CACR,GAAG,EACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAC7B,CAAC;SACL;QACD,WAAW;QACX,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAC9C,CAAC;QACF,YAAY;QACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,YAAY;YACZ,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;YACD,eAAe;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;QACD,aAAa;QACb,OAAO,CAAC,IAAI,CACR,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAC/C,CAAC;QACF,WAAW;QACX,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAClE,OAAO,CAAC,IAAI,CACR,GAAG;YACH,IAAI;YACJ,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAC1C,GAAG;YACH,aAAa;YACb,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAChD,CAAC;SACL;QACD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,WAAW,EAAE;YACb,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACtC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;SACzB;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,MAAA,IAAI,CAAC,oBAAoB,mCAAI,IAAI,CAAC,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3H,OAAO,CAAC,IAAI,CACR,GAAG,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,UAAU,EAAE,CAAC,CAC/H,CAAC;QACF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,KAAwB;;QAC/B,IAAI,OAAO,GAAG;YACV,IAAI,uBAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;gBACvB,kBAAkB;gBAClB,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,IAAI,mCAAI,UAAU;gBAC5C,eAAe;gBACf,GAAG,CAAC,IAAA,gCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,0CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzH,WAAW;gBACX,GAAG;gBACH,YAAY;gBACZ,GAAG,CACC,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,kBAAkB;oBAClB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACjB,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;iBAC7B,CAAC,CAAC,mCAAI,EAAE,CACL;gBACR,aAAa;gBACb,GAAG;gBACH,iBAAiB;gBACjB,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;oBAC5B,GAAG;oBACH,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,0CAAE,IAAI,mCAAI,IAAI;oBAC5B,GAAG;oBACH,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC;iBACjD,CAAC,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI;gBACJ,KAAK,CAAC,MAAM,EAAE;gBACd,0BAA0B;gBAC1B,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,eAAe,0CAAE,IAAI,mCAAI,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,mCAAI,UAAU,EAAE;aACvF,CAAC;SACL,CAAC;QACF,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,oBAAS,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACnD,IAAA,eAAI,EAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,oFAAoF;YACpF,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,qBAAqB,EAAE;gBAC3D,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aACxC;SACJ;IACL,CAAC;IAEM,OAAO,CAAC,OAAuB;;QAClC,4CAA4C;QAC5C,IAAI,UAAmB,CAAC;QAExB,MAAM,IAAI,GAAG,oCAAY,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,gCAAmB,CAAC,CAAC,CAAC;QAE5E,UAAU,GAAG,cAAI,CAAC,8BAA8B,CAC5C,MAAA,IAAI,CAAC,oBAAoB,0CAAE,OAAO,iCAAM,OAAO,KAAE,SAAS,EAAE,SAAS,IAAG,EACxE,IAAI,CAAC,gBAAgB,iCAAM,OAAO,KAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAG,EACjF,OAAO,CACV,CAAC;QAEF,MAAM,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,IAAI,MAAK,qBAAS,CAAC,GAAG,CAAC;QAC/D,qGAAqG;QACrG,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,mBAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAW,CAAC,QAAQ,CAAC;SACjE;QAED,MAAM,UAAU,GAAG,IAAI,yBAAiB,CAAC,UAAU,CAAC,CAAC;QACrD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE;YAC/B,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,iCAAM,OAAO,KAAE,SAAS,EAAE,SAAS,IAAG,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9H;QACD,4CAA4C;QAC5C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAA,uCAA0B,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC3E,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,SAAS,EAAE;gBACnB,+CAA+C;gBAC/C,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC;aACxC;SACJ;aAAM,IAAI,IAAA,gCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACzC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAAC;SAC5D;QACD,IAAI,QAAQ,EAAE;YACV,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAChC;QACD,MAAA,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,2BAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrH,OAAO,UAAU,CAAC;IACtB,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACjD,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE;YACxB,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,eAAe,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC7D,SAAS,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,UAAU,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnD,EAAE,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,oBAAoB,EAAE,MAAA,IAAI,CAAC,oBAAoB,0CAAE,KAAK,EAAE;SAC3D,CAAC,EACF,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACnC,CAAC;IACN,CAAC;CACJ;AAxOD,gDAwOC;AAED,MAAa,2BAA4B,SAAQ,oBAAU;IACvD,YAAY,OAMX;QACG,KAAK,EAAE,CAAC;QAUI,SAAI,GAAG,qBAAW,CAAC,2BAA2B,CAAC;QAT3D,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,EAAE,EAAE,OAAO,CAAC,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IACjD,CAAC;IAaM,OAAO,CAAC,OAAuB;;QAClC,MAAM,IAAI,GAAG,oCAAY,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,gCAAmB,CAAC,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAExC,MAAM,iBAAiB,GAAG,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,OAAO,iCAAM,OAAO,KAAE,KAAK,mCAA2B,SAAS,EAAE,SAAS,IAAG,mCACxH,MAAA,IAAI,CAAC,YAAY,0CAAE,OAAO,iCAAM,OAAO,KAAE,KAAK,kCAA0B,SAAS,EAAE,SAAS,IAAG,CAAC;QACpG,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,kCAAO,OAAO,KAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAG,CAAC;QAE1I,IAAI,SAAS,GAAG,MAAA,cAAI,CAAC,8BAA8B,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,CAAC,mCAAI,yBAAW,CAAC,QAAQ,CAAC;QAC1H,MAAA,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,2BAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrH,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,cAAI,CAAC,sBAAsB,CAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,IAAI,CAAC,YAAY,CACpB,CAAC;IACN,CAAC;IAEM,SAAS,CAAC,KAAwB;;QACrC,IAAI,MAAM,GAAoB;YAC1B,MAAM;YACN,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACzC,CAAC;QACF,eAAe;QACf,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD;QACD,kBAAkB;QAClB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,CACP,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CACnD,CAAC;SACL;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,UAAU,CAAC,KAAwB;;QACtC,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAoB,CAAC;QAE3D,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAC9D;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErB,gEAAgE;YAChE,+BAA+B;YAC/B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,UAAU,CAAC,KAAK,CAAC,mCAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACrE;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,sCAAsC;QACtC,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAA,eAAI,EAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAClD;IACL,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,2BAA2B,CAAC;YAC5B,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,EAAE,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,cAAc,EAAE,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,EAAE;YAC5C,MAAM,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAC3C,YAAY,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,EAAE;SAC3C,CAAC,EACF,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACrC,CAAC;IACN,CAAC;CACJ;AAvHD,kEAuHC;AAED,MAAa,mBAAoB,SAAQ,oBAAU;IAC/C,YAAY,OAOX;QACG,KAAK,EAAE,CAAC;QAgBI,SAAI,GAAG,qBAAW,CAAC,mBAAmB,CAAC;QAfnD,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvB,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;IAYD,SAAS,CAAC,KAAwB;QAC9B,gEAAgE;QAChE,IAAI,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO;gBACH,GAAG,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC;gBACjD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC;aAC/D,CAAC;SACL;aAAM;YACH,OAAO;gBACH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC1C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;aACzC,CAAC;SACL;IACL,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACvC;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;;QAC3B,MAAM,OAAO,GAAG,MAAA,IAAI,CAAC,GAAG,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAErE,IAAI,cAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;YACnD,6CAA6C;YAC7C,MAAM,GAAG,2BAAY,CAAC,QAAQ,CAAC;SAClC;QACD,MAAA,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,2BAAc,CAAC;YACvC,IAAI,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,IAAI;YAC5B,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,QAAQ,mCAAI,IAAI,CAAC,QAAQ;YACrD,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC,CAAC;QACJ,IAAI,MAAM;YACN,OAAO,CAAC,KAAK,kCAA0B;YACvC,CAAC,IAAA,4BAAe,EAAC,OAAO,CAAC,IAAI,IAAA,2BAAc,EAAC,OAAO,CAAC,CAAC,EAAE;YACvD,kEAAkE;YAClE,OAAO,MAAM,CAAC;SACjB;QACD,+FAA+F;QAC/F,0CAA0C;QAC1C,OAAO,yBAAW,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,SAAoB;QACxB,OAAO,cAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAClC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,mBAAmB,CAAC;YACpB,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE;YACtB,GAAG,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1C,CAAC,EACF,CAAC,KAAK,CAAC,CACV,CAAC;IACN,CAAC;CACJ;AA/FD,kDA+FC;AAED,MAAa,yBAA0B,SAAQ,oBAAU;IACrD,YAAY,OAOX;QACG,KAAK,EAAE,CAAC;QAMI,SAAI,GAAG,qBAAW,CAAC,yBAAyB,CAAC;QALzD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5F,CAAC;IAaD,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;YACzC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SACzC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACvC;IACL,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAClC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,yBAAyB,CAAC;YAC1B,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE;YACtB,EAAE,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1C,CAAC,EACF,CAAC,KAAK,CAAC,CACV,CAAC;IACN,CAAC;CACJ;AAtDD,8DAsDC;AAED,MAAa,oBAAqB,SAAQ,oBAAU;IAChD,YAAY,OASX;;QACG,KAAK,EAAE,CAAC;QAkBI,SAAI,GAAG,qBAAW,CAAC,oBAAoB,CAAC;QAjBpD,IAAI,CAAC,MAAM,GAAG;YACV,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;SACnC,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,EACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAC5B,CAAC;IACN,CAAC;IAkBD,SAAS,CAAC,KAAwB;;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAC5B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAC5E,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CACvD,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,2BAA2B;YAC3B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,CAAC,IAAI,CACP,GAAG,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC,CACrC,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CACvD,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,IAAA,oBAAS,EAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACnD;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAA,wBAAW,EAAC,OAAO,CAAC,EAAE;YACtB,oEAAoE;YACpE,OAAO,OAAO,CAAC,WAAW,CAAC;SAC9B;QACD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IAClC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,oBAAoB,CAAC;YACrB,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE;YACtB,WAAW,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACrD,aAAa,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YACzD,OAAO,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YAC3C,aAAa,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;SAC5D,CAAC,EACF,CAAC,KAAK,EAAE,SAAS,CAAC,CACrB,CAAC;IACN,CAAC;CACJ;AApGD,oDAoGC;AAED,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QAeI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QAdlD,IAAI,CAAC,MAAM,GAAG;YACV,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC/B,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChH,CAAC;IAYD,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC3C;QACD,OAAO;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YAC3C,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;YACnC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SAC/C,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,aAAa;;QACb,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,0CAAE,aAAa,CAAC;IAChD,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,SAAS,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACjD,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;YACpC,UAAU,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;SACtD,CAAC,EACF,CAAC,YAAY,CAAC,CACjB,CAAC;IACN,CAAC;CACJ;AA5DD,gDA4DC;AAED,MAAa,iBAAkB,SAAQ,oBAAU;IAC7C,YAAY,OAEX;QACG,KAAK,EAAE,CAAC;QAUI,SAAI,GAAG,qBAAW,CAAC,iBAAiB,CAAC;QATjD,IAAI,CAAC,MAAM,GAAG;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;IACN,CAAC;IAQD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;IACtC,CAAC;IAEM,OAAO,CAAC,OAAwB;QACnC,OAAO,cAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,mBAAmB,EAAE;YAC1D,uDAAuD;YACvD,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;SAE5D;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,aAAa,EAAE;YAC3D,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,+FAA+F;YAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;gBAC9B,IAAI,IAAI,GAAG,CAAC;aACf;SACJ;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;SACjC;QAED,OAAO;YACH,KAAK,CAAC,cAAc,iCAAM,IAAI,CAAC,MAAM,CAAC,KAAK,KAAE,IAAI,EAAE,IAAI,IAAG;SAC7D,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IAC3C,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,iBAAiB,CAAC;YAClB,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5C,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AA5DD,8CA4DC;AAED;;;GAGG;AACH,MAAa,gCAAiC,SAAQ,oBAAU;IAC5D,YAAY,OAEX;QACG,KAAK,EAAE,CAAC;QAKI,SAAI,GAAG,qBAAW,CAAC,gCAAgC,CAAC;QAJhE,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC;IAUD,SAAS,CAAC,KAAwB;QAC9B,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;SAC/D,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,gCAAgC,CAAC;YACjC,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5C,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AAlCD,4EAkCC;AAED,MAAa,sBAAuB,SAAQ,oBAAU;IAClD,YAAY,OAIX;;QACG,KAAK,EAAE,CAAC;QAgBI,SAAI,GAAG,qBAAW,CAAC,sBAAsB,CAAC;QAftD,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7G,CAAC;IAaD,SAAS,CAAC,KAAwB;;QAC9B,IAAI,MAAM,GAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAC9C,CAAC;QACF,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,cAAI,CAAC,0BAA0B,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAC/E,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB;iBAAM;gBACH,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,KAAK,CAAC,MAAM,EAAE,CACjB,CAAC;aACL;YACD,MAAM,CAAC,IAAI,CACP,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAC9B,CAAC;SACL;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,4DAA4D;QAC5D,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAEjG,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,oBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACpD;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,OAAO,IAAI,qBAAS,CAAC,GAAG,UAAU,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,aAAa;;QACb,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,aAAa,CAAC;IAC3C,CAAC;IAED,IAAI,SAAS;;QACT,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,aAAa,CAAC;IAC5C,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,sBAAsB,CAAC;YACvB,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YAC7C,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5C,CAAC,EACF,CAAC,UAAU,CAAC,CACf,CAAC;IACN,CAAC;CACJ;AAtFD,wDAsFC;AAED,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OAMX;QACG,KAAK,EAAE,CAAC;QAUI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QATlD,IAAI,CAAC,MAAM,GAAG;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAeD,SAAS,CAAC,KAAwB;QAC9B,sEAAsE;QACtE,OAAO,EAAE,CAAC;IACd,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,GAAG,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE;SAC7B,CAAC,EACF,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;CACJ;AA1DD,gDA0DC;AAED,MAAa,mBAAoB,SAAQ,oBAAU;IAC/C,YAAY,OAIX;;QACG,KAAK,EAAE,CAAC;QAeI,SAAI,GAAG,qBAAW,CAAC,mBAAmB,CAAC;QAdnD,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7G,CAAC;IAYD,SAAS,CAAC,KAAwB;;QAC9B,IAAI,MAAM,GAAoB,EAAE,CAAC;QACjC,YAAY;QACZ,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAC9C,CAAC;QACF,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3C,uHAAuH;QACvH,IAAI,WAAW,IAAI,CAAC,cAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEvC,sCAAsC;YACtC,IAAI,cAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;gBAC1D,cAAI,CAAC,0BAA0B,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE;gBAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB;iBAAM;gBACH,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B;YAED,KAAK;YACL,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAC3C,CAAC;YACF,OAAO;YACP,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAC/C,GAAG,CACN,CAAC;YACF,OAAO;YACP,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAE/C,0DAA0D;YAC1D,IAAI,WAAW,IAAI,CAAC,cAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;gBACvE,kCAAkC;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;QACD,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAChF,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;QAE/F,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,oBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACpD;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,UAAU,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAC9C,UAAU,CAAC,oBAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,IAAA,iCAAoB,EAAC,OAAO,CAAC,EAAE;gBAC/B,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAyB,CAAC;aAC9H;SACJ;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAW,aAAa;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,SAAS;;QAChB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,aAAa,CAAC;IAC5C,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,mBAAmB,CAAC;YACpB,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YAC7C,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACvC,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5C,CAAC,EACF,CAAC,UAAU,CAAC,CACf,CAAC;IACN,CAAC;CACJ;AAhHD,kDAgHC;AAED,MAAa,eAAgB,SAAQ,oBAAU;IAC3C,YAAY,OAGX;QACG,KAAK,EAAE,CAAC;QAQI,SAAI,GAAG,qBAAW,CAAC,eAAe,CAAC;QAP/C,IAAI,CAAC,MAAM,GAAG;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IAWD,SAAS,CAAC,KAAwB;QAC9B,IAAI,oBAAwC,CAAC;QAC7C,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACnE;aAAM,IAAI,IAAA,gCAAmB,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACxC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC;SACpE;aAAM;YACH,oBAAoB,GAAG,GAAG,CAAC;SAC9B;QAED,OAAO;YACH,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC1C,oBAAoB;YACpB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;SACjC,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACzC;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,OAAO,cAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC9C,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,eAAe,CAAC;YAChB,QAAQ,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,EAAE;SAC7B,CAAC,EACF,CAAC,OAAO,CAAC,CACZ,CAAC;IACN,CAAC;CACJ;AA9DD,0CA8DC;AAED,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OAEX;;QACG,KAAK,EAAE,CAAC;QAWI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QAVlD,IAAI,CAAC,MAAM,GAAG;YACV,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,aAAa,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAUM,OAAO,CAAC,SAAqB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAoB,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAqB,iCAAoB,CAAC,CAAC;QAC9E,yDAAyD;QACzD,IAAI,SAAS,IAAI,cAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE;YACrF,MAAM,CAAC,IAAI;YACP,4EAA4E;YAC5E,GAAG,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC,EACjD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE;gBACnB,SAAS,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC;gBACzC,GAAG;gBACH,IAAI,CAAC,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC;aACvC,CAAC,CACL,CAAC;YACF,qBAAqB;SACxB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CACzC,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IAGD,OAAO,CAAC,OAAuB;;QAC3B,IAAI,UAAU,GAAY,cAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,EAAE;YACb,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,UAAU,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,aAAa,CAAC,OAAO,kCAAO,OAAO,KAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAG,CAAC;YAEhI,IAAI,cAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBACvD,UAAU,GAAG,2BAAY,CAAC,QAAQ,CAAC;aACtC;SAEJ;QACD,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,0CAAE,IAAI,CAAC,IAAI,2BAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrH,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;IAC1C,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1C,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AA9ED,gDA8EC;AAED,MAAa,uBAAwB,SAAQ,oBAAU;IACnD,YAAY,OAEX;;QACG,KAAK,EAAE,CAAC;QASI,SAAI,GAAG,qBAAW,CAAC,uBAAuB,CAAC;QARvD,IAAI,CAAC,MAAM,GAAG;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,aAAa,CAAC,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAUD;;OAEG;IACK,iBAAiB,CAAC,cAAkC,EAAE,IAAwB;QAClF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,IAAI,IAAA,iCAAoB,EAAC,IAAI,CAAC,EAAE;gBAC5B,KAAK,EAAE,CAAC;gBACR,IAAI,IAAI,KAAK,IAAI,EAAE;oBACf,OAAO,IAAI,CAAC;iBACf;aACJ;QACL,CAAC,EAAE;YACC,QAAQ,EAAE,mBAAQ,CAAC,iBAAiB;SACvC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,eAAe,CAAC,KAAwB,EAAE,SAAoB;QAClE,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAqB,iCAAoB,CAAC,CAAC;QACvE,IAAI,SAAS,GAAG,EAAqB,CAAC;QACtC,IAAI,cAAkC,CAAC;QACvC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAqB,iCAAoB,CAAC,CAAC,EAAE;YACnF,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACzD,SAAS,CAAC,OAAO,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAClC,IAAI,GAAG,cAAc,CAAC;SACzB;QACD,8CAA8C;QAC9C,IAAI,IAAA,gCAAmB,EAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAClC,SAAS,CAAC,OAAO,CACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CACjC,CAAC;SACL;QACD,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,oBAAoB;;QACxB,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,OAAO,IAAI,EAAE;YACT,IAAI,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE;gBACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;aAC7C;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;SACtB;QACD,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAY,CAAC;QACjB,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YAC5B,KAAK,qBAAS,CAAC,qBAAqB;gBAChC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;gBAClE,MAAM;YACV,KAAK,qBAAS,CAAC,oBAAoB;gBAC/B,yDAAyD;gBACzD,IAAI,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;gBACxC,MAAM;YACV,KAAK,qBAAS,CAAC,mBAAmB;gBAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAS,CAAC,YAAY,CAAC,GAAG,CAAC;gBAClE,MAAM;YACV,KAAK,qBAAS,CAAC,yBAAyB;gBACpC,IAAI,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAS,CAAC,cAAc,CAAC,GAAG,CAAC;gBACpE,MAAM;YACV,KAAK,qBAAS,CAAC,qBAAqB;gBAChC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3C,yDAAyD;gBACzD,IAAI,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC;gBACzG,MAAM;YACV,KAAK,qBAAS,CAAC,cAAc;gBACzB,IAAI,GAAG,IAAI,cAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACvD,MAAM;YACV,KAAK,qBAAS,CAAC,kBAAkB;gBAC7B,IAAI,GAAG,IAAI,cAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;gBACxE,MAAM;YACV,KAAK,qBAAS,CAAC,cAAc,CAAC;YAC9B;gBACI,0DAA0D;gBAC1D,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9B,MAAM;SAEb;QACD,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;SAC/B,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC;IAC3C,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,uBAAuB,CAAC;YACxB,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5C,CAAC,CACL,CAAC;IACN,CAAC;CACJ;AA5HD,0DA4HC;AAED;;;;GAIG;AACH,MAAa,aAAc,SAAQ,oBAAU;IACzC,YAAY,OAGX;QACG,KAAK,EAAE,CAAC;QAQI,SAAI,GAAG,qBAAW,CAAC,aAAa,CAAC;QAP7C,IAAI,CAAC,MAAM,GAAG;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IAWD;;OAEG;IACH,IAAW,SAAS;QAChB,2EAA2E;QAC3E,4CAA4C;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,MAAoD,CAAC;IAC1E,CAAC;IAEM,SAAS,CAAC,KAAwB;;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAqB,iCAAoB,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,gBAAgB,CACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,EAChD,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,kBAAS,CAAC,cAAc,CAAC,CAC/C,0CAAE,IAAI,CAAC;QACR,qHAAqH;QACrH,6GAA6G;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,kBAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SACxC;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,wDAAwD;YACxD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;aAC5B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,aAAa,CAAC;YACd,GAAG,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YACrC,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE;SAC3B,CAAC,EACF,CAAC,MAAM,CAAC,CACX,CAAC;IACN,CAAC;CACJ;AAzED,sCAyEC;AAED,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OAOX;;QACG,KAAK,EAAE,CAAC;QA8BI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QA7BlD,IAAI,CAAC,MAAM,GAAG;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,QAAQ,EACpB,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,EAClB,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAgBM,SAAS,CAAC,KAAwB;;QACrC,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,MAAM,CAAC,IAAI,CACP,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAC/B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,EACnD,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC;QACnD,0BAA0B;QAC1B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CACpF,CAAC;QACF,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,IAAG,CAAC,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,gBAAgB;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,wBAAwB;gBACxB,IAAI,CAAC,GAAG,CAAC,EAAE;oBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;gBACD,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aACxC;SACJ;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,sBAAsB,EAAE;YAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAChC;QAED,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CACtD,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAChD;IACL,CAAC;IAED,OAAO,CAAC,OAAuB;;QAC3B,IAAI,MAAM,GAAY,yBAAW,CAAC,QAAQ,CAAC;QAC3C,sGAAsG;QACtG,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,iCAAM,OAAO,KAAE,KAAK,oCAA2B,CAAC;QACtF,IAAI,IAAA,4BAAe,EAAC,UAAU,CAAC,IAAI,IAAA,4BAAe,EAAC,UAAU,CAAC,EAAE;YAC5D,MAAM,QAAQ,GAAG,MAAA,MAAC,UAA4B,EAAC,eAAe,mDAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvG,IAAI,QAAQ,EAAE;gBACV,MAAA,OAAO,CAAC,SAAS,0CAAE,IAAI,CAAC,IAAI,2BAAc,CAAC;oBACvC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;oBACjC,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ;oBACzC,cAAc,EAAE,IAAA,sBAAW,EAAC,qBAAS,CAAC,QAAQ,CAAC;oBAC/C,OAAO,EAAE,IAAI;iBAChB,CAAC,CAAC,CAAC;gBACJ,IAAI,OAAO,CAAC,UAAU,EAAE;oBACpB,MAAM,GAAG,QAAQ,CAAC;iBACrB;aACJ;YACD;;;;;;;;;cASE;SACL;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACrC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE;YAC5B,QAAQ,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,UAAU,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;YACnD,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACrC,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SAC1D,CAAC,EACF,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrB,CAAC;IACN,CAAC;CACJ;AApID,gDAoIC;AAED;;;GAGG;AACH,MAAa,6BAA8B,SAAQ,oBAAU;IACzD,YAAY,OAEX;;QACG,KAAK,EAAE,CAAC;QAQI,SAAI,GAAG,qBAAW,CAAC,6BAA6B,CAAC;QAP7D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE,CAC5B,CAAC;IACN,CAAC;IAOD,SAAS,CAAC,KAAwB,EAAE,gBAAgB,GAAG,IAAI;QACvD,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACrC,oBAAoB;YACpB,8DAA8D;YAC9D,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,gBAAgB,KAAK,IAAI,EAAE;gBAClE,SAAS;aACZ;YACD,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;YACF,IAAI,GAAG,KAAK,CAAC;SAChB;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,oBAAS,EAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACvD;IACL,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,6BAA6B,CAAC;YAC9B,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;SACtD,CAAC,EACF,CAAC,aAAa,CAAC,CAClB,CAAC;IACN,CAAC;CACJ;AAhDD,sEAgDC;AAED,MAAa,wBAAyB,SAAQ,oBAAU;IACpD,YAAY,OAKX;;QACG,KAAK,EAAE,CAAC;QAeI,SAAI,GAAG,qBAAW,CAAC,wBAAwB,CAAC;QAdxD,IAAI,CAAC,MAAM,GAAG;YACV,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,MAAA,IAAI,CAAC,MAAM,0CAAG,CAAC,CAAC,EAChB,MAAA,IAAI,CAAC,MAAM,0CAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,CAAC,EACtC,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,CAAC;IACN,CAAC;IAaM,OAAO,CAAC,OAAuB;QAClC,OAAO,uBAAU,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC1C;QACD,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,wDAAwD;QACxD,SAAS,GAAG,CAAC,GAAG,KAAK;YACjB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,MAAM,CAAC,IAAI,CACP,IAAI,EACJ,GAAG,KAAK,CACX,CAAC;aACL;YACD,yEAAyE;YACzE,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjC,IAAI,GAAG,KAAK,CAAC;aAChB;QACL,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAErC,GAAG,CACC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAC5B,CAAC;YACF,IAAI,UAAU,EAAE;gBACZ,sDAAsD;gBACtD,IACI,IAAA,+CAAkC,EAAC,UAAU,CAAC;oBAC9C,CAAC,IAAA,gCAAmB,EAAC,UAAU,CAAC,IAAI,IAAA,yBAAY,EAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,EACzE;oBACE,GAAG,CACC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;oBAEF,+FAA+F;iBAClG;qBAAM;oBACH,GAAG,CACC,KAAK,CAAC,WAAW,GAAG,YAAY,EAChC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EAC9B,GAAG,CACN,CAAC;iBACL;aACJ;SACJ;QACD,kGAAkG;QAClG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAA,eAAI,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE7C,4FAA4F;gBAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACrB,IAAA,eAAI,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACrD;aACJ;SACJ;IACL,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,wBAAwB,CAAC;YACzB,eAAe,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC7D,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACzC,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACnD,eAAe,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;SAChE,CAAC,EACF,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC5B,CAAC;IACN,CAAC;CACJ;AAnHD,4DAmHC;AAED,MAAa,8BAA+B,SAAQ,oBAAU;IAC1D,YAAY,OAMX;;QACG,KAAK,EAAE,CAAC;QAkBI,SAAI,GAAG,qBAAW,CAAC,8BAA8B,CAAC;QAjB9D,IAAI,CAAC,MAAM,GAAG;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAEvC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,MAAM,CAAC,eAAe,EAC3B,MAAA,IAAI,CAAC,MAAM,0CAAG,CAAC,CAAC,EAChB,MAAA,IAAI,CAAC,MAAM,0CAAG,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,IAAG,CAAC,CAAC,EACtC,IAAI,CAAC,MAAM,CAAC,eAAe,CAC9B,CAAC;IACN,CAAC;IAeD,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EACzC,IAAI,CACP,CAAC;QAEF,+BAA+B;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,6BAA6B;YAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CACP,IAAI,CACP,CAAC;aACL;YACD,MAAM,CAAC,IAAI,CACP,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CACnC,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CACP,MAAM,CACT,CAAC;QAEF,qCAAqC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACP,MAAM,CAAC,IAAI,CACP,IAAI,CACP,CAAC;aACL;YACD,MAAM,CAAC,IAAI,CACP,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CACjC,CAAC;SACL;QACD,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CACtD,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;;QAC3C,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,wDAAwD;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAA,eAAI,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE7C,4FAA4F;gBAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACrB,IAAA,eAAI,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBACrD;aACJ;SACJ;IACL,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,8BAA8B,CAAC;YAC/B,OAAO,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7C,eAAe,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC7D,MAAM,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACzC,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,CAAC;YACnD,eAAe,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;SAChE,CAAC,EACF,CAAC,QAAQ,EAAE,aAAa,CAAC,CAC5B,CAAC;IACN,CAAC;CACJ;AA3GD,wEA2GC;AAED,MAAa,oBAAqB,SAAQ,oBAAU;IAChD,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QASI,SAAI,GAAG,qBAAW,CAAC,oBAAoB,CAAC;QARpD,IAAI,CAAC,MAAM,GAAG;YACV,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACtC,CAAC;IASD,IAAW,QAAQ;QACf,OAAO,cAAI,CAAC,sBAAsB,CAC9B,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,IAAI,CAAC,IAAI,CACZ,CAAC;IACN,CAAC;IAMD;;;OAGG;IACH,YAAY,CAAC,MAAM,GAAG,IAAI;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO,EAAE,CAAC;SACb;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAW,aAAa;;QACpB,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,EAAE,0CAAE,aAAa,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,qCAAqC;QACrC,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IACD,UAAU,CAAC,KAAwB;;QAC/B,OAAO;YACH,GAAG;YACH,IAAI,CAAC,IAAI;YACT,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;SACzC,CAAC;IACN,CAAC;IAEM,KAAK;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAC5B,IAAI,oBAAoB,CAAC;YACrB,EAAE,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,IAAI,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;SAC1C,CAAC,CACL,CAAC;QACF,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA1ED,oDA0EC;AAED,MAAa,iBAAkB,SAAQ,oBAAU;IAC7C,YAAY,OAMX;QACG,KAAK,EAAE,CAAC;QAiBI,SAAI,GAAG,qBAAW,CAAC,iBAAiB,CAAC;QAhBjD,IAAI,CAAC,MAAM,GAAG;YACV,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,CAAC,YAAY,EACxB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAeD,SAAS,CAAC,KAAwB;;QAC9B,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,cAAc,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAU,EAAE,IAAI,CAAC,CAAC;QAElE,8HAA8H;QAC9H,IAAI,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjH,IAAI,mBAAmB,GAAG;YACtB,GAAG,cAAc,CAAC,WAAW;YAC7B,GAAG,aAAa,CAAC,WAAW;SAC/B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,cAAc,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,YAAY,mBAAmB,CAAC,CAAC;QAElH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CACZ,IAAI,CAAC,MAAM,CAAC,YAAY;YACxB,8CAA8C;YAC9C,oDAAoD;YACpD,aAAa,CAAC,eAAe,EAAE,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACrE,EACD,KAAK,CAAC,OAAO;YACb,2EAA2E;YAC3E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,EACpD,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,EACxE,GAAG,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,EAC/F,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,EACrE,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,EACxE,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,EACjH,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,EACpD,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAC5D,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAC1F,CAAC;YACF,KAAK,CAAC,UAAU,EAAE,CAAC;SACtB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,EAC5D,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAC7B,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EACjC,GAAG,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,SAAS,CAAC,EACnD,IAAI,EACJ,GAAG,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,KAAK,CAAC,mCAAI,CAAC,SAAS,CAAC,EAClD,GAAG,CACN,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;IACnC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,iBAAiB,CAAC;YAClB,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,EAAE;YACxB,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YACvD,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;YACpC,KAAK,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACzC,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE;SACrC,CAAC,EACF,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CACtC,CAAC;IACN,CAAC;CACJ;AA1HD,8CA0HC;AAED,MAAa,wBAAyB,SAAQ,oBAAU;IACpD,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QAaI,SAAI,GAAG,qBAAW,CAAC,wBAAwB,CAAC;QAZxD,IAAI,CAAC,MAAM,GAAG;YACV,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC7C,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,IAAI,CAAC,SAAS,CACjB,CAAC;IACN,CAAC;IAaD,SAAS,CAAC,KAAwB;QAC9B,IAAI,MAAM,GAAG,EAAqB,CAAC;QACnC,IAAI,cAAc,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,aAAa,GAAG,cAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvE,8HAA8H;QAC9H,IAAI,iBAAiB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,cAAc,EAAE,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjH,IAAI,qBAAqB,GAAG;YACxB,GAAG,cAAc,CAAC,WAAW;YAC7B,GAAG,aAAa,CAAC,WAAW;SAC/B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,6BAAgB,EAAC,CAAC,CAAC,IAAI,IAAA,iCAAoB,EAAC,CAAC,CAAC,IAAI,IAAA,kCAAqB,EAAC,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,qBAAqB,EAAE;YACvB,MAAM,CAAC,IAAI,CACP,YAAY;YACZ,8CAA8C;YAC9C,oDAAoD;YACpD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,GAAG,EACH,KAAK,CAAC,OAAO;YACb,2EAA2E;YAC3E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACf,kFAAkF;YAClF,mBAAmB,EACnB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EACnC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,EAAE,EACd,mCAAmC,EACnC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,uBAAuB,EACvB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,MAAM,EACN,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EACf,SAAS,EACT,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAClC,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,QAAQ,EACR,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAChB,gBAAgB,EAChB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,GAAG,CACN,CAAC;YACF,KAAK,CAAC,UAAU,EAAE,CAAC;SACtB;aAAM;YACH,MAAM,CAAC,IAAI,CACP,KAAK,CAAC,WAAW,GAAG,YAAY,EAChC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,EACnC,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAClC,GAAG,CACN,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAA,eAAI,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;IACzC,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,wBAAwB,CAAC;YACzB,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;YACpC,gBAAgB,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC/D,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE;SACrC,CAAC,EACF,CAAC,YAAY,EAAE,WAAW,CAAC,CAC9B,CAAC;IACN,CAAC;CACJ;AA/GD,4DA+GC;AAED,MAAa,sBAAuB,SAAQ,oBAAU;IAClD,YAAY,OAEX;QACG,KAAK,EAAE,CAAC;QAMI,SAAI,GAAG,qBAAW,CAAC,sBAAsB,CAAC;QALtD,IAAI,CAAC,MAAM,GAAG;YACV,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC;IACN,CAAC;IAOD,IAAW,QAAQ;;QACf,OAAO,MAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,YAAY,0CAAE,QAAQ,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,KAAwB;;QACrC,IAAI,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,IAAI,mCAAI,EAAE,CAAC;QAChD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,4BAA4B;QAC5B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE;YACX,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9C,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,IAAI,OAAO,GAAG,IAAI;YACd,qCAAqC;aACpC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,mBAAmB;aAClB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAExC,OAAO;YACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;gBACvC,0BAA0B;gBAC1B,IAAI,OAAO,KAAK;gBAChB,IAAI,KAAK,GAAG;gBACZ,GAAG;aACN,CAAC;SACL,CAAC;IACN,CAAC;IAED,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAC3C,iBAAiB;IACrB,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,sBAAsB,CAAC;YACvB,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SAC1D,CAAC,CACL,CAAC;IACN,CAAC;IAED,IAAI,aAAa;;QACb,OAAO,MAAA,IAAI,CAAC,MAAM,CAAC,YAAY,0CAAE,aAAa,CAAC;IACnD,CAAC;CACJ;AA3DD,wDA2DC;AAKD,SAAS,iBAAiB,CAAC,IAAgB,EAAE,MAAe;;IACxD,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAC;KACf;IACD,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACxD,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACzE;IACD,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;QACvB,oCAAoC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;KACrE;IACD,IAAI,IAAA,4BAAe,EAAC,IAAI,CAAC,EAAE;QACvB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,IAAI,IAAA,6BAAgB,EAAC,IAAI,CAAC,EAAE;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;KAC1D;IACD,IAAI,IAAA,qCAAwB,EAAC,IAAI,CAAC,EAAE;QAChC,OAAO,IAAI,CAAC,QAAQ;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;KAC/C;IACD,IAAI,IAAA,kCAAqB,EAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACnC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5D,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;IACD,iEAAiE;IACjE,IAAI,IAAA,uCAA0B,EAAC,IAAI,CAAC,EAAE;QAClC,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,MAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC5E;KACJ;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAuB,EAAE,QAAQ,GAAG,EAAE;IACnE,IAAI,IAAA,0BAAa,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAA,8BAAiB,EAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;QACpE,OAAO,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACtD;SAAM;QACH,OAAO,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACxD;AACL,CAAC;AAED,MAAa,cAAe,SAAQ,oBAAU;IAC1C,YAAY,OAKX;;QACG,KAAK,EAAE,CAAC;QAKI,SAAI,GAAG,qBAAW,CAAC,cAAc,CAAC;QAJ9C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,aAAa,CAAC,MAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAWM,SAAS,CAAC,KAAwB;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,iCAAyB,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;IACM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC9C;IACL,CAAC;IAEM,OAAO,CAAC,OAAuB;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,iCAAM,OAAO,KAAE,KAAK,qCAA4B,CAAC;IACnF,CAAC;IAED,UAAU,CAAC,KAAqB;QAC5B,oDAAoD;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAA0B,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,SAAS,GAAG,kBAAS,CAAC,cAAc;QACxC,kEAAkE;QAClE,OAAO,cAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,YAAY;QACR,iFAAiF;QACjF,OAAO,cAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,cAAc,CAAC;YACf,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE;SACvC,CAAC,EACF,CAAC,YAAY,CAAC,CACjB,CAAC;IACN,CAAC;CACJ;AAzDD,wCAyDC;AAED,MAAa,kBAAmB,SAAQ,oBAAU;IAC9C,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QAaI,SAAI,GAAG,qBAAW,CAAC,kBAAkB,CAAC;QAZlD,IAAI,CAAC,MAAM,GAAG;YACV,EAAE,EAAE,OAAO,CAAC,EAAE;SACjB,CAAC;QACF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,MAAM,CAAC,EAAE,EACd,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IAcM,SAAS,CAAC,KAAwB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACpC,IAAA,eAAI,EAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAClD;IACL,CAAC;IAEM,OAAO,CAAC,OAAuB;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,uDAAuD;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;aAC5B;SACJ;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,kBAAkB,CAAC;YACnB,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE;YACtB,EAAE,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,cAAc,EAAE,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,EAAE;SAC/C,CAAC,EACF,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAC5B,CAAC;IACN,CAAC;CACJ;AA/DD,gDA+DC;AAED,MAAa,oBAAqB,SAAQ,oBAAU;IAChD,YAAY,OAIX;QACG,KAAK,EAAE,CAAC;QAoBI,SAAI,GAAG,qBAAW,CAAC,oBAAoB,CAAC;QAnBpD,IAAI,CAAC,MAAM,GAAG;YACV,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,sBAAsB,CACvC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CAAC,WAAW,EACvB,IAAI,CAAC,MAAM,CAAC,YAAY,CAC3B,CAAC;IACN,CAAC;IAaM,SAAS,CAAC,KAAwB;QACrC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,iCAAyB,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEM,IAAI,CAAC,OAAoB,EAAE,OAAoB;QAClD,IAAI,OAAO,CAAC,QAAQ,GAAG,2BAAgB,CAAC,eAAe,EAAE;YACrD,IAAA,eAAI,EAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7C;IACL,CAAC;IAEM,OAAO,CAAC,OAAuB;QAClC,OAAO,IAAI,qBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK;;QACR,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,oBAAoB,CAAC;YACrB,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE;YAClC,WAAW,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YACrD,YAAY,EAAE,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SAC1D,CAAC,EACF,CAAC,WAAW,CAAC,CAChB,CAAC;IACN,CAAC;CACJ;AAtDD,oDAsDC"}
1
+ {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../src/parser/Expression.ts"],"names":[],"mappings":"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"}
@@ -164,7 +164,7 @@ describe('parser class', () => {
164
164
  `);
165
165
  let { ast, diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
166
166
  (0, chai_config_spec_1.expect)(diagnostics).length.to.be.greaterThan(0);
167
- (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('class').code);
167
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('class').code);
168
168
  (0, chai_config_spec_1.expect)(ast.statements[0]).instanceof(Statement_1.ClassStatement);
169
169
  });
170
170
  it('catches malformed class', () => {
@@ -225,7 +225,7 @@ describe('parser class', () => {
225
225
  (0, chai_config_spec_1.expect)(diagnostics.length).to.be.greaterThan(0);
226
226
  let cls = ast.statements[0];
227
227
  (0, chai_config_spec_1.expect)(cls.fields[0].tokens.name.text).to.equal('middleName');
228
- (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('as'));
228
+ (0, testHelpers_spec_1.expectDiagnosticsIncludes)(diagnostics, DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('as'));
229
229
  });
230
230
  it('field access modifier defaults to undefined when omitted', () => {
231
231
  let { tokens } = Lexer_1.Lexer.scan(`
@@ -362,7 +362,7 @@ describe('parser class', () => {
362
362
  end class
363
363
  `);
364
364
  let { diagnostics } = Parser_1.Parser.parse(tokens, { mode: Parser_1.ParseMode.BrighterScript });
365
- (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifierAfterKeyword('extends').code);
365
+ (0, chai_config_spec_1.expect)(diagnostics[0].code).to.equal(DiagnosticMessages_1.DiagnosticMessages.expectedIdentifier('extends').code);
366
366
  });
367
367
  describe('new keyword', () => {
368
368
  it('parses properly', () => {