@hpcc-js/marshaller 2.28.10 → 3.1.0

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 (172) hide show
  1. package/dist/index.js +2 -18051
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +3 -0
  4. package/dist/index.umd.cjs.map +1 -0
  5. package/package.json +46 -46
  6. package/src/__package__.ts +3 -3
  7. package/src/dashy.css +45 -34
  8. package/src/dashy.ts +20 -18
  9. package/src/ddl1/FlyoutButton.ts +3 -2
  10. package/src/ddl1/Graph.ts +8 -5
  11. package/src/ddl1/HTML.ts +1 -1
  12. package/src/ddl1/HipieDDL.ts +5 -1
  13. package/src/ddl1/HipieDDLMixin.ts +31 -20
  14. package/src/ddl1/Tabbed.ts +1 -1
  15. package/src/ddl1/TargetMarshaller.ts +1 -1
  16. package/src/ddl2/PopupManager.ts +2 -2
  17. package/src/ddl2/activities/activity.ts +1 -1
  18. package/src/ddl2/activities/databomb.ts +3 -3
  19. package/src/ddl2/activities/datasource.ts +25 -18
  20. package/src/ddl2/activities/dspicker.ts +38 -29
  21. package/src/ddl2/activities/filter.ts +79 -56
  22. package/src/ddl2/activities/form.ts +29 -20
  23. package/src/ddl2/activities/groupby.ts +55 -37
  24. package/src/ddl2/activities/hipiepipeline.ts +61 -74
  25. package/src/ddl2/activities/limit.ts +8 -6
  26. package/src/ddl2/activities/logicalfile.ts +14 -10
  27. package/src/ddl2/activities/nullview.ts +1 -1
  28. package/src/ddl2/activities/project.ts +78 -50
  29. package/src/ddl2/activities/rest.ts +95 -70
  30. package/src/ddl2/activities/roxie.ts +55 -41
  31. package/src/ddl2/activities/sort.ts +23 -14
  32. package/src/ddl2/activities/wuresult.ts +78 -54
  33. package/src/ddl2/dashboard.css +8 -8
  34. package/src/ddl2/dashboard.ts +17 -17
  35. package/src/ddl2/dashboardDockPanel.ts +3 -3
  36. package/src/ddl2/dashboardGrid.ts +4 -4
  37. package/src/ddl2/ddl.ts +19 -21
  38. package/src/ddl2/dsTable.ts +22 -18
  39. package/src/ddl2/dvTable.ts +1 -1
  40. package/src/ddl2/graphadapter.ts +11 -11
  41. package/src/ddl2/javascriptadapter.ts +4 -4
  42. package/src/ddl2/model/element.ts +56 -42
  43. package/src/ddl2/model/visualization.ts +92 -70
  44. package/src/ddl2/pipelinePanel.ts +26 -18
  45. package/src/index.ts +25 -25
  46. package/types/__package__.d.ts +3 -4
  47. package/types/dashy.d.ts +9 -7
  48. package/types/ddl2/PopupManager.d.ts +2 -3
  49. package/types/ddl2/activities/activity.d.ts +0 -1
  50. package/types/ddl2/activities/databomb.d.ts +3 -4
  51. package/types/ddl2/activities/datasource.d.ts +12 -10
  52. package/types/ddl2/activities/dspicker.d.ts +11 -8
  53. package/types/ddl2/activities/filter.d.ts +45 -26
  54. package/types/ddl2/activities/form.d.ts +19 -10
  55. package/types/ddl2/activities/groupby.d.ts +29 -15
  56. package/types/ddl2/activities/hipiepipeline.d.ts +27 -20
  57. package/types/ddl2/activities/limit.d.ts +6 -5
  58. package/types/ddl2/activities/logicalfile.d.ts +10 -7
  59. package/types/ddl2/activities/nullview.d.ts +1 -2
  60. package/types/ddl2/activities/project.d.ts +42 -21
  61. package/types/ddl2/activities/rest.d.ts +49 -30
  62. package/types/ddl2/activities/roxie.d.ts +28 -18
  63. package/types/ddl2/activities/sort.d.ts +13 -7
  64. package/types/ddl2/activities/wuresult.d.ts +24 -16
  65. package/types/ddl2/dashboard.d.ts +3 -4
  66. package/types/ddl2/dashboardDockPanel.d.ts +2 -3
  67. package/types/ddl2/dashboardGrid.d.ts +3 -4
  68. package/types/ddl2/ddl.d.ts +11 -12
  69. package/types/ddl2/ddleditor.d.ts +2 -2
  70. package/types/ddl2/dsTable.d.ts +2 -3
  71. package/types/ddl2/dvTable.d.ts +1 -2
  72. package/types/ddl2/graphadapter.d.ts +4 -5
  73. package/types/ddl2/javascriptadapter.d.ts +2 -3
  74. package/types/ddl2/model/element.d.ts +22 -14
  75. package/types/ddl2/model/visualization.d.ts +28 -20
  76. package/types/ddl2/model/vizChartPanel.d.ts +0 -1
  77. package/types/ddl2/pipelinePanel.d.ts +5 -3
  78. package/types/index.d.ts +25 -26
  79. package/dist/index.es6.js +0 -17994
  80. package/dist/index.es6.js.map +0 -1
  81. package/dist/index.min.js +0 -3
  82. package/dist/index.min.js.map +0 -1
  83. package/types/__package__.d.ts.map +0 -1
  84. package/types/dashy.d.ts.map +0 -1
  85. package/types/ddl1/DDLApi.d.ts +0 -179
  86. package/types/ddl1/DDLApi.d.ts.map +0 -1
  87. package/types/ddl1/FlyoutButton.d.ts +0 -24
  88. package/types/ddl1/FlyoutButton.d.ts.map +0 -1
  89. package/types/ddl1/Graph.d.ts +0 -22
  90. package/types/ddl1/Graph.d.ts.map +0 -1
  91. package/types/ddl1/HTML.d.ts +0 -12
  92. package/types/ddl1/HTML.d.ts.map +0 -1
  93. package/types/ddl1/HipieDDL.d.ts +0 -100
  94. package/types/ddl1/HipieDDL.d.ts.map +0 -1
  95. package/types/ddl1/HipieDDLMixin.d.ts +0 -77
  96. package/types/ddl1/HipieDDLMixin.d.ts.map +0 -1
  97. package/types/ddl1/Tabbed.d.ts +0 -12
  98. package/types/ddl1/Tabbed.d.ts.map +0 -1
  99. package/types/ddl1/TargetMarshaller.d.ts +0 -5
  100. package/types/ddl1/TargetMarshaller.d.ts.map +0 -1
  101. package/types/ddl2/PopupManager.d.ts.map +0 -1
  102. package/types/ddl2/activities/activity.d.ts.map +0 -1
  103. package/types/ddl2/activities/databomb.d.ts.map +0 -1
  104. package/types/ddl2/activities/datasource.d.ts.map +0 -1
  105. package/types/ddl2/activities/dspicker.d.ts.map +0 -1
  106. package/types/ddl2/activities/filter.d.ts.map +0 -1
  107. package/types/ddl2/activities/form.d.ts.map +0 -1
  108. package/types/ddl2/activities/groupby.d.ts.map +0 -1
  109. package/types/ddl2/activities/hipiepipeline.d.ts.map +0 -1
  110. package/types/ddl2/activities/limit.d.ts.map +0 -1
  111. package/types/ddl2/activities/logicalfile.d.ts.map +0 -1
  112. package/types/ddl2/activities/nullview.d.ts.map +0 -1
  113. package/types/ddl2/activities/project.d.ts.map +0 -1
  114. package/types/ddl2/activities/rest.d.ts.map +0 -1
  115. package/types/ddl2/activities/roxie.d.ts.map +0 -1
  116. package/types/ddl2/activities/sort.d.ts.map +0 -1
  117. package/types/ddl2/activities/wuresult.d.ts.map +0 -1
  118. package/types/ddl2/dashboard.d.ts.map +0 -1
  119. package/types/ddl2/dashboardDockPanel.d.ts.map +0 -1
  120. package/types/ddl2/dashboardGrid.d.ts.map +0 -1
  121. package/types/ddl2/ddl.d.ts.map +0 -1
  122. package/types/ddl2/ddleditor.d.ts.map +0 -1
  123. package/types/ddl2/dsTable.d.ts.map +0 -1
  124. package/types/ddl2/dvTable.d.ts.map +0 -1
  125. package/types/ddl2/graphadapter.d.ts.map +0 -1
  126. package/types/ddl2/javascriptadapter.d.ts.map +0 -1
  127. package/types/ddl2/model/element.d.ts.map +0 -1
  128. package/types/ddl2/model/visualization.d.ts.map +0 -1
  129. package/types/ddl2/model/vizChartPanel.d.ts.map +0 -1
  130. package/types/ddl2/pipelinePanel.d.ts.map +0 -1
  131. package/types/index.d.ts.map +0 -1
  132. package/types-3.4/__package__.d.ts +0 -4
  133. package/types-3.4/dashy.d.ts +0 -54
  134. package/types-3.4/ddl1/DDLApi.d.ts +0 -179
  135. package/types-3.4/ddl1/FlyoutButton.d.ts +0 -24
  136. package/types-3.4/ddl1/Graph.d.ts +0 -22
  137. package/types-3.4/ddl1/HTML.d.ts +0 -12
  138. package/types-3.4/ddl1/HipieDDL.d.ts +0 -100
  139. package/types-3.4/ddl1/HipieDDLMixin.d.ts +0 -77
  140. package/types-3.4/ddl1/Tabbed.d.ts +0 -12
  141. package/types-3.4/ddl1/TargetMarshaller.d.ts +0 -5
  142. package/types-3.4/ddl2/PopupManager.d.ts +0 -20
  143. package/types-3.4/ddl2/activities/activity.d.ts +0 -106
  144. package/types-3.4/ddl2/activities/databomb.d.ts +0 -46
  145. package/types-3.4/ddl2/activities/datasource.d.ts +0 -24
  146. package/types-3.4/ddl2/activities/dspicker.d.ts +0 -29
  147. package/types-3.4/ddl2/activities/filter.d.ts +0 -113
  148. package/types-3.4/ddl2/activities/form.d.ts +0 -40
  149. package/types-3.4/ddl2/activities/groupby.d.ts +0 -85
  150. package/types-3.4/ddl2/activities/hipiepipeline.d.ts +0 -37
  151. package/types-3.4/ddl2/activities/limit.d.ts +0 -15
  152. package/types-3.4/ddl2/activities/logicalfile.d.ts +0 -19
  153. package/types-3.4/ddl2/activities/nullview.d.ts +0 -6
  154. package/types-3.4/ddl2/activities/project.d.ts +0 -122
  155. package/types-3.4/ddl2/activities/rest.d.ts +0 -142
  156. package/types-3.4/ddl2/activities/roxie.d.ts +0 -112
  157. package/types-3.4/ddl2/activities/sort.d.ts +0 -38
  158. package/types-3.4/ddl2/activities/wuresult.d.ts +0 -87
  159. package/types-3.4/ddl2/dashboard.d.ts +0 -53
  160. package/types-3.4/ddl2/dashboardDockPanel.d.ts +0 -19
  161. package/types-3.4/ddl2/dashboardGrid.d.ts +0 -29
  162. package/types-3.4/ddl2/ddl.d.ts +0 -44
  163. package/types-3.4/ddl2/ddleditor.d.ts +0 -14
  164. package/types-3.4/ddl2/dsTable.d.ts +0 -21
  165. package/types-3.4/ddl2/dvTable.d.ts +0 -10
  166. package/types-3.4/ddl2/graphadapter.d.ts +0 -30
  167. package/types-3.4/ddl2/javascriptadapter.d.ts +0 -31
  168. package/types-3.4/ddl2/model/element.d.ts +0 -99
  169. package/types-3.4/ddl2/model/visualization.d.ts +0 -48
  170. package/types-3.4/ddl2/model/vizChartPanel.d.ts +0 -44
  171. package/types-3.4/ddl2/pipelinePanel.d.ts +0 -16
  172. package/types-3.4/index.d.ts +0 -27
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../src/ddl2/activities/activity.ts","../src/ddl2/activities/datasource.ts","../src/ddl2/activities/form.ts","../src/ddl2/activities/databomb.ts","../src/ddl2/activities/wuresult.ts","../src/ddl2/activities/logicalfile.ts","../src/ddl2/activities/rest.ts","../src/ddl2/activities/roxie.ts","../src/ddl2/activities/dspicker.ts","../../ddl-shim/src/__package__.ts","../../ddl-shim/src/ddl/v1.ts","../../ddl-shim/src/ddl/v2.ts","../../ddl-shim/src/dermatology.ts","../../ddl-shim/src/upgrade.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/data.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/definition_schema.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/ajv.js","../../ddl-shim/src/validate.ts","../../ddl-shim/src/index.ts","../src/ddl2/activities/filter.ts","../src/ddl2/activities/groupby.ts","../src/ddl2/activities/limit.ts","../src/ddl2/activities/project.ts","../src/ddl2/activities/sort.ts","../src/ddl2/activities/hipiepipeline.ts","../src/ddl2/activities/nullview.ts","../src/ddl2/model/vizChartPanel.ts","../src/ddl2/model/visualization.ts","../src/ddl2/model/element.ts","../../../node_modules/d3-fetch/src/text.js","../src/ddl2/PopupManager.ts","../src/ddl2/dashboardDockPanel.ts","../src/ddl2/dashboardGrid.ts","../src/ddl2/ddl.ts","../src/ddl2/javascriptadapter.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/ddl2/dashboard.ts","../src/ddl2/ddleditor.ts","../src/ddl2/graphadapter.ts","../src/ddl2/dsTable.ts","../src/ddl2/dvTable.ts","../src/ddl2/pipelinePanel.ts","../src/dashy.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/marshaller\";\nexport const PKG_VERSION = \"2.28.10\";\nexport const BUILD_VERSION = \"2.108.10\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { IMonitorHandle, PropertyExt } from \"@hpcc-js/common\";\nimport { IField as WsEclField } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, update } from \"@hpcc-js/util\";\n\nexport function stringify(obj_from_json) {\n if (Array.isArray(obj_from_json)) {\n // not an object, stringify using native function\n return \"[\" + obj_from_json.map(stringify).join(\", \") + \"]\";\n }\n if (typeof obj_from_json !== \"object\" || obj_from_json === null || obj_from_json === undefined) {\n // not an object, stringify using native function\n return JSON.stringify(obj_from_json);\n }\n // Implements recursive object serialization according to JSON spec\n // but without quotes around the keys.\n const props = Object\n .keys(obj_from_json)\n .map(key => `${key}: ${stringify(obj_from_json[key])}`)\n .join(\", \");\n return `{ ${props} }`;\n}\n\nexport function schemaType2IFieldType(type): \"boolean\" | \"number\" | \"number64\" | \"range\" | \"string\" {\n switch (type) {\n case \"boolean\":\n return \"boolean\";\n case \"xs:byte\":\n case \"xs:double\":\n case \"xs:decimal\":\n case \"xs:float\":\n case \"xs:int\":\n case \"xs:short\":\n case \"xs:unsignedInt\":\n case \"xs:unsignedShort\":\n case \"xs:unsignedByte\":\n case \"number\":\n return \"number\";\n case \"xs:integer\":\n case \"xs:long\":\n case \"xs:negativeInteger\":\n case \"xs:nonNegativeInteger\":\n case \"xs:nonPositiveInteger\":\n case \"xs:positiveInteger\":\n case \"xs:unsignedLong\":\n return \"number64\";\n case \"string\":\n return \"string\";\n case \"range\":\n return \"range\";\n }\n return \"string\";\n}\n\nexport function schemaRow2IField(row: any): DDL2.IField {\n if (row._children && row._children.length) {\n return {\n type: \"dataset\",\n id: row.name,\n children: row._children.map(schemaRow2IField)\n };\n } else {\n return {\n id: row.name,\n type: schemaType2IFieldType(row.type)\n };\n }\n}\n\nexport function wsEclSchemaRow2IField(row: WsEclField): DDL2.IField {\n return row;\n}\n\nexport type ReferencedFields = {\n inputs: { [activityID: string]: string[] },\n outputs: { [activityID: string]: string[] }\n};\n\nexport interface IActivityError {\n source: string;\n msg: string;\n hint: string;\n}\n\n/*\nexport const ROW_ID = \"__##__\"; // TODO: Should be Symbol\nexport function rowID(row: Readonly<object>): undefined | number {\n return row[ROW_ID] || row[\"__lparam\"];\n}\n*/\n\nexport abstract class Activity extends PropertyExt {\n private _sourceActivity: Activity;\n\n fixInt64(data) {\n if (!data || data.length === 0) return [];\n const int64Fields = this.outFields().filter(field => {\n switch (field.type) {\n case \"number\":\n // Test actual data for integer64 cases.\n return typeof data[0][field.id] !== \"number\";\n case \"number64\":\n return true;\n }\n return false;\n });\n if (int64Fields.length) {\n return data.map(row => {\n for (const int64Field of int64Fields) {\n row[int64Field.id] = +row[int64Field.id];\n }\n return row;\n });\n }\n return data;\n }\n\n sourceActivity(): Activity;\n sourceActivity(_: Activity): this;\n sourceActivity(_?: Activity): Activity | this {\n if (!arguments.length) return this._sourceActivity;\n this._sourceActivity = _;\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.refreshMeta() : Promise.resolve();\n }\n\n exists(): boolean {\n return true;\n }\n\n validate(): IActivityError[] {\n return [];\n }\n\n label(): string {\n return this.id();\n }\n\n updatedBy(): string[] {\n return [];\n }\n\n private _emptyFields: ReadonlyArray<DDL2.IField> = [];\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._sourceActivity ? this._sourceActivity.outFields() : this._emptyFields;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => inFields;\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.computeFields(this.inFields())();\n }\n\n localFields(): DDL2.IField[] {\n const inFieldIDs = this.inFields().map(field => field.id);\n return this.outFields().filter(field => inFieldIDs.indexOf(field.id) < 0);\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n if (this.localFields().filter(field => field.id === fieldID).length) {\n return this;\n } else if (this.sourceActivity()) {\n return this.sourceActivity().fieldOrigin(fieldID);\n }\n return null;\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n for (const fieldID of fieldIDs) {\n const fieldOrigin = this.fieldOrigin(fieldID);\n if (fieldOrigin) {\n if (!refs.outputs[fieldOrigin.id()]) {\n refs.outputs[fieldOrigin.id()] = [];\n }\n if (refs.outputs[fieldOrigin.id()].indexOf(fieldID) < 0) {\n refs.outputs[fieldOrigin.id()].push(fieldID);\n }\n }\n }\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n return this._sourceActivity && this._sourceActivity.resolveFields(refs, fieldIDs);\n }\n\n referencedFields(refs: ReferencedFields): void {\n this._sourceActivity && this._sourceActivity.referencedFields(refs);\n }\n\n exec(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.exec() : Promise.resolve();\n }\n\n _emptyData: ReadonlyArray<object> = [];\n inData(): ReadonlyArray<object> {\n return this._sourceActivity ? this._sourceActivity.outData() || this._emptyData : this._emptyData;\n }\n\n computeData(): ReadonlyArray<object> {\n return this.inData();\n }\n\n private _prevDataHash: string = \"\";\n private _prevInData: ReadonlyArray<object> = [];\n private _prevData: ReadonlyArray<object> = [];\n private cachedComputeData(inData: ReadonlyArray<object>): ReadonlyArray<object> {\n const hash = this.hash();\n if (this._prevDataHash !== hash || this._prevInData !== inData) {\n this._prevDataHash = hash;\n this._prevInData = inData;\n this._prevData = update(this._prevData, this.computeData());\n }\n return this._prevData;\n }\n\n outData(): ReadonlyArray<object> {\n return this.cachedComputeData(this.inData());\n }\n}\n\nexport class ActivityArray extends Activity {\n private _activities: Activity[] = [];\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return this._activities;\n this._activities = _;\n return this;\n }\n}\nActivityArray.prototype._class += \" ActivityArray\";\n\nexport class ActivityPipeline extends ActivityArray {\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return super.activities();\n super.activities(_);\n let prevActivity: Activity;\n for (const activity of _) {\n if (prevActivity) {\n activity.sourceActivity(prevActivity);\n }\n prevActivity = activity;\n }\n return this;\n }\n\n first(): Activity {\n const retVal = this.activities();\n return retVal[0];\n }\n\n last(): Activity | null {\n const retVal = this.activities();\n return retVal[retVal.length - 1];\n }\n\n protected calcUpdatedGraph(activity: Activity): Array<{ from: string, to: Activity }> {\n return activity.updatedBy().map(source => {\n return {\n from: source,\n to: activity\n };\n });\n }\n\n updatedByGraph(): Array<{ from: string, to: Activity }> {\n let retVal: Array<{ from: string, to: Activity }> = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(this.calcUpdatedGraph(activity));\n }\n return retVal;\n }\n\n fetch(from: number = 0, count: number = Number.MAX_VALUE): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this.outData();\n if (from === 0 && data.length <= count) {\n return data;\n }\n return data.slice(from, from + count);\n });\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n activities: [this.activities().map(activity => activity.hash())],\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this.last().refreshMeta();\n }\n\n updatedBy(): string[] {\n let retVal: string[] = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(activity.updatedBy());\n }\n return retVal;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.first().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.last().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.last().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.last().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.last().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.last().outData();\n }\n}\nActivityPipeline.prototype._class += \" ActivitySequence\";\n\nexport class ActivitySelection extends ActivityArray {\n private _selection: Activity;\n private _monitorHandle: IMonitorHandle;\n\n selection(): Activity;\n selection(_: Activity): this;\n selection(_?: Activity): Activity | this {\n if (_ === undefined) return this._selection;\n if (this._monitorHandle) {\n this._monitorHandle.remove();\n }\n this._selection = _;\n this._monitorHandle = _.monitor((id, newVal, oldVal) => {\n this.broadcast(id, newVal, oldVal, _);\n });\n return this;\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n selection: this.selection().hash(),\n ...more\n });\n }\n\n label(): string {\n return this.selection().label();\n }\n\n refreshMeta(): Promise<void> {\n return this.selection().refreshMeta();\n }\n\n updatedBy(): string[] {\n return this.selection().updatedBy();\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.selection().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.selection().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.selection().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.selection().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.selection().outData();\n }\n}\nActivitySelection.prototype._class += \" ActivitySelection\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Activity } from \"./activity\";\nimport { Databomb } from \"./databomb\";\nimport { Form } from \"./form\";\nimport { LogicalFile } from \"./logicalfile\";\nimport { RestResult, RestService } from \"./rest\";\nimport { RoxieResult, RoxieService } from \"./roxie\";\nimport { WU, WUResult } from \"./wuresult\";\n\nlet datasourceID = 0;\nexport class Datasource extends Activity {\n\n constructor() {\n super();\n this._id = `ds_${++datasourceID}`;\n }\n}\n\nexport type DatasourceRefType = Databomb | Form | LogicalFile | RoxieResult | WUResult | RestResult;\nexport type DatasourceType = Databomb | Form | LogicalFile | RoxieService | WU | RestService;\n\nexport class DatasourceRef extends Activity {\n @publish(null, \"widget\", \"Datasource Reference\", null, { internal: true })\n _datasource: DatasourceRefType;\n datasource(): DatasourceRefType;\n datasource(_: DatasourceRefType): this;\n datasource(_?: DatasourceRefType): this | DatasourceRefType {\n if (!arguments.length) return this._datasource;\n this._datasource = _;\n this.sourceActivity(_);\n return this;\n }\n\n constructor() {\n super();\n }\n\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n datasource: this._datasource ? this._datasource.hash(more) : undefined,\n ...more\n });\n }\n\n toDDL(): DDL2.IDatabombRef {\n return {\n id: this.datasource().id()\n };\n }\n}\nDatasourceRef.prototype._class += \" DatasourceRef\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Datasource } from \"./datasource\";\n\ntype IField = DDL2.IFieldBoolean | DDL2.IFieldNumber | DDL2.IFieldString | DDL2.IFieldDataset;\n\nexport class FormField extends PropertyExt {\n protected _owner: Form;\n\n @publish(\"\", \"string\", \"FormField Label\")\n fieldID: publish<this, string>;\n\n @publish(\"string\", \"set\", \"FormField Type\", [\"boolean\", \"number\", \"string\", \"dataset\"])\n type: publish<this, \"boolean\" | \"number\" | \"string\" | \"dataset\">;\n\n @publish(null, \"any\", \"Default Value\", null, { optional: true })\n default: publish<this, boolean | number | string | any[]>;\n\n @publish(null, \"any\", \"Default Value\", null, { optional: true })\n value: publish<this, boolean | number | string>;\n value_exists: () => boolean;\n\n @publish([], \"propertyArray\", \"Child Fields\", null, { autoExpand: FormField, disable: (w: FormField) => w.disableChildField() })\n childFields: publish<this, FormField[]>;\n\n disableChildField(): boolean {\n return this.type() !== \"dataset\";\n }\n\n constructor() {\n super();\n }\n\n toDDL(): IField {\n return {\n type: this.type(),\n id: this.fieldID(),\n default: this.default(),\n children: this.type() === \"dataset\" ? this.childFields().map(cf => cf.toDDL()) : undefined\n } as IField;\n }\n\n fromDDL(ddl: IField): this {\n return this\n .type(ddl.type)\n .fieldID(ddl.id)\n .default(ddl.default)\n .childFields(ddl.type === \"dataset\" && ddl.children ? ddl.children.map(FormField.fromDDL) : [])\n ;\n }\n\n static fromDDL(ddl: IField): FormField {\n return new FormField().fromDDL(ddl);\n }\n\n owner(): Form;\n owner(_: Form): this;\n owner(_?: Form): Form | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.type() && !!this.fieldID();\n }\n\n coerceFunc(): (cell: any) => boolean | number | string {\n switch (this.type()) {\n case \"boolean\":\n return cell => !!cell;\n case \"number\":\n return cell => +cell;\n case \"string\":\n return cell => \"\" + cell;\n }\n return cell => cell;\n }\n\n calcValue() {\n return this.value_exists() ? this.value() : this.default();\n }\n}\n\nexport class Form extends Datasource {\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField })\n formFields: publish<this, FormField[]>;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IForm {\n return {\n type: \"form\",\n id: this.id(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IForm, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .formFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IForm, skipID = false): Form {\n return new Form().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.formFields().filter(f => f.valid());\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Form\";\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n const retVal: DDL2.IField[] = this.validFields().map(f => f.toDDL());\n return () => retVal;\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const retVal = {};\n this.validFields().forEach(f => {\n retVal[f.fieldID()] = f.calcValue();\n });\n return [retVal];\n }\n\n // ===\n total(): number {\n return 1;\n }\n}\nForm.prototype._class += \" Form\";\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IDatasource } from \"@hpcc-js/dgrid\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { csvParse as d3CsvParse, tsvParse as d3TsvParse } from \"d3-dsv\";\nimport { Activity } from \"./activity\";\nimport { Datasource } from \"./datasource\";\nimport { FormField } from \"./form\";\n\nfunction fieldType(field: any): DDL2.IFieldType {\n if (isArray(field)) {\n return \"dataset\";\n }\n const type = typeof field;\n switch (type) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"object\":\n return type;\n }\n return \"string\";\n}\n\nexport function rowToFields(row: object, _jsonData): DDL2.IField[] {\n // TODO: This heuristic will fail if there are empty nested rows in the first row...\n const retVal: DDL2.IField[] = [];\n for (const key in row) {\n const field = {\n type: fieldType(row[key]),\n id: key\n } as DDL2.IField;\n switch (field.type) {\n case \"object\":\n for (const row of _jsonData) {\n let found = false;\n for (const _childKey in row[key]) {\n const rowFields = rowToFields(row[key], [row[key]]);\n field.fields = {};\n if (rowFields.length) {\n rowFields.forEach(rf => field.fields[rf.id] = rf);\n found = true;\n }\n break;\n }\n if (found) break;\n }\n break;\n case \"dataset\":\n for (const row of _jsonData) {\n if (row[key] && row[key].length) {\n field.children = rowToFields(row[key][0], row[key]);\n break;\n }\n }\n break;\n }\n retVal.push(field);\n }\n return retVal;\n}\n\nexport class Databomb extends Datasource {\n\n private _jsonData: ReadonlyArray<object> = [];\n\n constructor() {\n super();\n }\n\n toDDL(skipPayload: boolean = false): DDL2.IDatabomb {\n return {\n type: \"databomb\",\n id: this.id(),\n format: this.format(),\n payload: skipPayload ? undefined : this.payload(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IDatabomb, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .format(ddl.format)\n .payload(ddl.payload)\n .databombFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IDatabomb, skipID = false): Databomb {\n return new Databomb().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.databombFields().filter(f => f.valid());\n }\n\n updateJsonData() {\n try {\n switch (this.format()) {\n case \"csv\":\n this._jsonData = d3CsvParse(this.payload());\n break;\n case \"tsv\":\n this._jsonData = d3TsvParse(this.payload());\n break;\n case \"json\":\n default:\n this._jsonData = JSON.parse(this.payload());\n break;\n }\n this.databombFields(this.preCalcFields().map(FormField.fromDDL));\n } catch (e) {\n this.databombFields([]);\n this._jsonData = [];\n }\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL(true),\n ...more\n }) + this.payload();\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Databomb\";\n }\n\n private preCalcFields(): DDL2.IField[] {\n if (this._jsonData.length === 0) return [];\n return rowToFields(this._jsonData[0], this._jsonData);\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.validFields().map(f => f.toDDL());\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const coarceFuncMap = {};\n this.validFields().forEach(field => {\n coarceFuncMap[field.fieldID()] = field.coerceFunc();\n });\n return this._jsonData.map(row => {\n const retVal = {};\n for (const key in coarceFuncMap) {\n retVal[key] = coarceFuncMap[key](row[key]);\n }\n return retVal;\n });\n }\n\n // ===\n total(): number {\n return this._jsonData.length;\n }\n}\nDatabomb.prototype._class += \" Databomb\";\n\nexport interface Databomb {\n format(): \"json\" | \"csv\" | \"tsv\";\n format(_: \"json\" | \"csv\" | \"tsv\"): this;\n payload(): string;\n payload(_: string): this;\n databombFields(): FormField[];\n databombFields(_: FormField[]): this;\n}\n\nDatabomb.prototype.publish(\"format\", \"json\", \"set\", \"Databomb Format\", [\"json\", \"csv\", \"tsv\"]);\nDatabomb.prototype.publish(\"payload\", \"\", \"string\", \"Databomb array\", null, { multiline: true });\nDatabomb.prototype.publish(\"databombFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField });\n\nconst payloadFormat = Databomb.prototype.format;\nDatabomb.prototype.format = function (this: Databomb, _?) {\n const retVal = payloadFormat.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nconst databombPayloadOrig = Databomb.prototype.payload;\nDatabomb.prototype.payload = function (this: Databomb, _?) {\n const retVal = databombPayloadOrig.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nexport const emptyDatabomb = new Databomb().id(\"Empty\").payload(\"[]\");\n\nexport class DatasourceAdapt implements IDatasource {\n private _activity: Activity;\n\n constructor(activity: Activity) {\n this._activity = activity || emptyDatabomb;\n }\n\n exec(): Promise<void> {\n return this._activity.refreshMeta().then(() => {\n return this._activity.exec();\n });\n }\n\n id(): string {\n return this._activity.id();\n }\n hash(more: { [key: string]: any } = {}): string {\n return this._activity.hash(more);\n }\n label(): string {\n return this._activity.label();\n }\n outFields(): DDL2.IField[] {\n return this._activity && this._activity.outFields ? this._activity.outFields() as DDL2.IField[] : [];\n }\n total(): number {\n return this._activity ? this._activity.outData().length : 0;\n }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this._activity.outData();\n if (from === 0 && data.length <= count) {\n return Promise.resolve(data);\n }\n return Promise.resolve(data.slice(from, from + count));\n });\n }\n}\n","import { publish } from \"@hpcc-js/common\";\nimport { Result, Workunit, XSDXMLNode } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, debounce, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element\";\nimport { schemaRow2IField } from \"./activity\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\n\nexport abstract class ESPResult extends Datasource {\n protected _result: Result;\n protected _schema: XSDXMLNode[] = [];\n protected _meta: DDL2.IField[] = [];\n protected _total: number;\n private _data: ReadonlyArray<object> = [];\n\n @publish(10, \"number\", \"Number of samples\")\n samples: publish<this, number>;\n @publish(100, \"number\", \"Sample size\")\n sampleSize: publish<this, number>;\n\n constructor(protected _ec: ElementContainer) {\n super();\n this\n .samples(this._ec.samples())\n .sampleSize(this._ec.sampleSize())\n ;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n samples: this.samples(),\n sampleSize: this.sampleSize(),\n ...more\n });\n }\n\n abstract _createResult(): Result;\n\n _prevMetaHash: string;\n refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevMetaHash !== this.hash()) {\n this._prevMetaHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._result = this._createResult();\n if (this._result) {\n return this._result.refresh();\n }\n throw new Error(\"No valid result\");\n }).then(result => {\n this._total = result.Total;\n this._schema = result.fields();\n this._meta = this._meta && this._meta.length ? this._meta : this._schema.map(schemaRow2IField);\n }).catch(e => {\n this._total = 0;\n this._schema = [];\n this._meta = [];\n });\n }\n return this.refreshMetaPromise;\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): ReadonlyArray<DDL2.IField> | this {\n if (!arguments.length) return this._meta;\n this._meta = _;\n this.refreshMeta();\n return this;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.responseFields();\n }\n\n exec(): Promise<void> {\n return this._exec();\n }\n\n private _prevExecHash: string;\n private _exec = debounce((): Promise<void> => {\n if (this._prevExecHash !== this.hash()) {\n this._prevExecHash = this.hash();\n return super.exec().then(() => {\n return this.sample();\n }).then(response => {\n this._data = this.fixInt64(response);\n }).catch(e => {\n this._data = [];\n });\n } else {\n return Promise.resolve();\n }\n });\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n\n total(): number {\n return this._total;\n }\n\n // ---\n async fetch(from: number, count: number): Promise<any[]> {\n if (count > this.samples() * this.sampleSize()) {\n return this.sample();\n }\n return this._fetch(from, count);\n }\n\n private _fetchQ = new AsyncOrderedQueue();\n private _fetch(from: number, count: number): Promise<any[]> {\n return this._fetchQ.push(\n this._result ? this._result\n .fetchRows(from, count)\n .catch(e => {\n return [];\n }) :\n Promise.resolve([])\n );\n }\n\n private sample = debounce((samples: number = this.samples(), sampleSize: number = this.sampleSize()): Promise<any[]> => {\n const pages: Array<Promise<any[]>> = [];\n if (samples * sampleSize >= this.total()) {\n pages.push(this._fetch(0, this.total()));\n } else {\n const lastPage = this.total() - sampleSize;\n for (let i = 0; i < samples; ++i) {\n pages.push(this._fetch(Math.floor(i * lastPage / samples), sampleSize));\n }\n }\n return Promise.all(pages).then(responses => {\n let retVal2: any[] = [];\n for (const response of responses) {\n retVal2 = retVal2.concat(response);\n }\n return retVal2;\n });\n });\n}\nESPResult.prototype._class += \" ESPResult\";\n\nexport class WUResult extends ESPResult {\n\n @publish(null, \"widget\", \"Workunit\")\n _wu: WU;\n wu(): WU;\n wu(_: WU): this;\n wu(_?: WU): this | WU {\n if (!arguments.length) return this._wu;\n this._wu = _;\n this._wu.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"set\", \"Result Name\", function (this: WUResult): string[] {\n return this._wu !== undefined ? this._wu.resultNames() : [];\n })\n _resultName: string;\n resultName(_: string): this;\n resultName(): string;\n resultName(_?: string): string | this {\n if (_ === void 0) return this._resultName;\n if (this._resultName !== _) {\n this._resultName = _;\n this.responseFields([]);\n }\n return this;\n }\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n this._wu = new WU(this._ec);\n }\n\n url(): string {\n return this._wu.url();\n }\n\n wuid(): string {\n return this._wu.wuid();\n }\n\n toDDL(): DDL2.IWUResult {\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this._wu.url(),\n wuid: this.wuid(),\n outputs: {\n [this.resultName()]: {\n fields: this.responseFields()\n }\n }\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n if (ddl.outputs[this.resultName()]) {\n return this.responseFields(ddl.outputs[this.resultName()].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IWUResult, wu: WU, resultName: string, skipID = false): WUResult {\n return new WUResult(ec)\n .wu(wu)\n .resultName(resultName)\n .fromDDL(ddl)\n ;\n }\n\n _createResult(): Result {\n if (this._wu.url() && this.wuid() && this.resultName()) {\n return Result.attach({ baseUrl: this._wu.url(), hookSend: this._ec.hookSend() }, this.wuid(), this.resultName());\n }\n return undefined;\n }\n\n sourceHash(): string {\n return super.hash({\n wuid: this.wuid()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.wuid()}\\n${this.resultName()}`;\n }\n}\nWUResult.prototype._class += \" WUResult\";\n\nexport class WU extends Datasource {\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\")\n _url: string;\n url(): string;\n url(_: string): this;\n url(_?: string): this | string {\n if (!arguments.length) return this._url;\n this._url = _;\n this.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"string\", \"Workunit ID\")\n _wuid: string;\n wuid(): string;\n wuid(_: string): this;\n wuid(_?: string): this | string {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n this.refreshMeta();\n return this;\n }\n\n protected _workunit: Workunit;\n protected _outputs: { [id: string]: WUResult } = {};\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IWUResult {\n const ddlOutputs: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n ddlOutputs[resultName] = {\n fields: this._outputs[resultName].responseFields()\n };\n }\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this.url(),\n wuid: this.wuid(),\n outputs: ddlOutputs\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .wuid(ddl.wuid)\n ;\n const wuResults: { [id: string]: WUResult } = {};\n for (const resultName in ddl.outputs) {\n wuResults[resultName] = WUResult.fromDDL(this._ec, ddl, this, resultName);\n }\n this._outputs = wuResults;\n return this;\n }\n\n static fromDDL(elementContainer: ElementContainer, ddl: DDL2.IWUResult, skipID = false): WU {\n return new WU(elementContainer).fromDDL(ddl, skipID);\n }\n\n hash(): string {\n return hashSum({\n url: this.url(),\n wuid: this.wuid()\n });\n }\n\n label(): string {\n return this.wuid();\n }\n\n outputs(): WUResult[] {\n const retVal = [];\n for (const resultName in this._outputs) {\n retVal.push(this._outputs[resultName]);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n retVal[resultName] = {\n fields: this._outputs[resultName].outFields() as DDL2.IField[]\n };\n }\n return retVal;\n }\n\n output(id: string): WUResult {\n return this._outputs[id];\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n private _resultNames: string[] = [];\n refreshMeta(): Promise<void> {\n if (!this.url() || !this.wuid()) {\n return Promise.resolve();\n }\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._workunit = Workunit.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.wuid());\n return this._workunit.fetchResults();\n }).then(results => {\n this._resultNames = results.map(r => r.Name);\n }).catch(e => {\n });\n }\n return this.refreshMetaPromise;\n }\n\n resultNames(): string[] {\n return this._resultNames;\n }\n}\nWU.prototype._class += \" WU\";\n\nexport class WUResultRef extends DatasourceRef {\n\n datasource(): WUResult;\n datasource(_: WUResult): this;\n datasource(_?: WUResult): this | WUResult {\n return super.datasource.apply(this, arguments);\n }\n\n resultName(): string;\n resultName(_: string): this;\n resultName(_?: string): string | this {\n if (!arguments.length) return this.datasource().resultName();\n this.datasource().resultName(_);\n return this;\n }\n\n toDDL(): DDL2.IWUResultRef {\n return {\n id: this.datasource().wu().id(),\n output: this.resultName()\n };\n }\n}\nWUResultRef.prototype._class += \" WUResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { Result } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { ESPResult } from \"./wuresult\";\n\nexport class LogicalFile extends ESPResult {\n\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Node Group\")\n nodeGroup: publish<this, string>;\n @publish(\"\", \"string\", \"Logical File Name\")\n logicalFile: publish<this, string>;\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n }\n\n toDDL(): DDL2.ILogicalFile {\n return {\n type: \"logicalfile\",\n id: this.id(),\n url: this.url(),\n logicalFile: this.logicalFile(),\n fields: this.responseFields()\n };\n }\n\n fromDDL(ddl: DDL2.ILogicalFile, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .logicalFile(ddl.logicalFile)\n ;\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.ILogicalFile, skipID = false): LogicalFile {\n return new LogicalFile(ec).fromDDL(ddl, skipID);\n }\n\n _createResult(): Result {\n return Result.attachLogicalFile({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.nodeGroup(), this.logicalFile());\n }\n\n sourceHash(): string {\n return super.hash({\n logicalFile: this.logicalFile()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.logicalFile()}`;\n }\n}\nLogicalFile.prototype._class += \" LogicalFile\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { createConnection } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element\";\nimport { IActivityError, ReferencedFields } from \"./activity\";\nimport { rowToFields } from \"./databomb\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\n\nexport class RestField extends PropertyExt {\n protected _owner: RestService;\n\n @publish(\"\", \"string\", \"RestField Label\")\n fieldID: publish<this, string>;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IFieldString {\n return {\n type: \"string\",\n id: this.fieldID()\n };\n }\n\n fromDDL(ddl: DDL2.IFieldString): this {\n return this\n .fieldID(ddl.id)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFieldString): RestField {\n return new RestField().fromDDL(ddl);\n }\n\n owner(): RestService;\n owner(_: RestService): this;\n owner(_?: RestService): RestService | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n}\n\nexport class RestService extends Datasource {\n\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n\n @publish(\"\", \"string\", \"REST Url\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Query Set\")\n action: publish<this, string>;\n @publish(\"get\", \"set\", \"Request mode\", [\"get\", \"post\"])\n mode: publish<this, \"get\" | \"post\">;\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: RestField })\n requestFields: publish<this, RestField[]>;\n\n constructor(readonly _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRestService {\n return {\n type: \"rest\",\n id: this.id(),\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n inputs: this.validRequestFields().map(rf => rf.toDDL()),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRestService, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .action(ddl.action)\n .mode(ddl.mode || \"get\")\n .requestFields(ddl.inputs.map(RestField.fromDDL))\n ;\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRestService, skipID = false): RestService {\n return new RestService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n ...more\n });\n }\n\n label(): string {\n return this.action();\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n validRequestFields(): RestField[] {\n return this.requestFields().filter(f => f.valid());\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n const conn = createConnection({ baseUrl: this.url(), type: this.mode() });\n this._prevPromise = this._submitQ.push(conn.send(this.action(), request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRestService.prototype._class += \" RestService\";\n\nexport class RestResult extends Datasource {\n\n @publish(null, \"widget\", \"Rest service\")\n _service: RestService = new RestService(this._ec);\n service(): RestService;\n service(_: RestService): this;\n service(_?: RestService): this | RestService {\n if (!arguments.length) return this._service;\n this._service = _;\n this._service.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"string\", \"Result Name\")\n resultName: publish<this, string>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n validRequestFields(): RestField[] {\n return this.service().validRequestFields();\n }\n\n toDDL(): DDL2.IRestService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRestService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RestService, resultName: string): RestResult {\n return new RestResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().action()}}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields().map(rf => rf.toDDL());\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n private _jsonData: object[] = [];\n private jsonDataFields(): DDL2.IField[] {\n if (!this._jsonData || !this._jsonData.length) return [];\n const retVal = rowToFields(this._jsonData[0], this._jsonData);\n this.responseFields(retVal);\n return retVal;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.jsonDataFields();\n }\n\n computeData(): ReadonlyArray<object> {\n return this._jsonData;\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request).then(response => {\n const resultName = this.resultName();\n const resultFields = resultName ? resultName.split(\".\") : [];\n for (const field of resultFields) {\n response = (response || {})[field];\n }\n this._jsonData = response as object[];\n return response;\n });\n }\n\n formatRequest() {\n const request = {};\n this.service().validRequestFields().forEach(f => {\n request[f.fieldID()] = \"\";\n });\n return request;\n }\n\n exec(): Promise<void> {\n return this.submit(this.formatRequest()).then(response => { });\n }\n}\nRestResult.prototype._class += \" RestResult\";\n\nexport class Param extends PropertyExt {\n\n @publish(null, \"string\", \"Label\") // TODO Add ReadOnly\n localField: publish<this, string>;\n localField_exists: () => boolean;\n @publish(null, \"set\", \"Activity\", function (this: Param) { return this.visualizationIDs(); }, {\n optional: true,\n disable: (w: Param): boolean => w.value_exists(),\n validate: (w: Param): boolean => w.source_disabled() || w.visualizationIDs().indexOf(w.source()) >= 0\n })\n source: publish<this, string>;\n source_exists: () => boolean;\n source_valid: () => boolean;\n source_disabled: () => boolean;\n @publish(null, \"set\", \"Source Field\", function (this: Param) { return this.sourceFields(); }, {\n optional: true,\n disable: (w: Param): boolean => !w.source_exists() || w.value_exists(),\n validate: (w: Param): boolean => w.remoteField_disabled() || w.sourceFields().indexOf(w.remoteField()) >= 0\n })\n remoteField: publish<this, string>;\n remoteField_exists: () => boolean;\n remoteField_valid: () => boolean;\n remoteField_disabled: () => boolean;\n @publish(null, \"string\", \"Static Value\", null, {\n optional: true,\n disable: (w: Param): boolean => w.source_exists(),\n validate: (w: Param): boolean => w.value_disabled() || w.value_exists()\n })\n value: publish<this, string>;\n value_exists: () => boolean;\n value_valid: () => boolean;\n value_disabled: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: \"expected: any value.\"\n });\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRequestField {\n return {\n source: this.source(),\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n value: this.value()\n };\n }\n\n fromDDL(ddl: DDL2.IRequestField): this {\n return this\n .source(ddl.source)\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .value(ddl.value)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRequestField): Param {\n return new Param(ec).fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n label: this.localField(),\n source: this.source(),\n sourceField: this.remoteField()\n });\n }\n\n visualizationIDs() {\n return this._ec.elementIDs();\n }\n\n sourceFields() {\n return this.sourceOutFields().map(field => field.id);\n }\n\n sourceViz(): Element {\n return this._ec.element(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n calcValue(): Array<string | number | boolean> {\n if (this.source_exists() && this.remoteField_exists()) {\n const sourceSelection = this.sourceSelection();\n return sourceSelection.map(row => row[this.remoteField()]);\n } else if (this.value_exists()) {\n return [this.value()];\n }\n return [\"\"];\n }\n\n exists(): boolean {\n return this.localField_exists() && ((this.source_exists() && this.remoteField_exists()) || this.value_exists());\n }\n}\nParam.prototype._class += \" Param\";\n\nexport class RestResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RestResult;\n datasource(_: RestResult): this;\n datasource(_?: RestResult): this | RestResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n action(): string {\n return this.datasource().service().action();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n @publish([], \"propertyArray\", \"Request Fields\")\n _request: Param[];\n request(): Param[];\n request(_: Param[]): this;\n request(_?: Param[]): Param[] | this {\n if (!arguments.length) return this._request;\n this._request = _;\n return this;\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().validRequestFields().map(ff => ff.fieldID()));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return this.datasource().computeFields(inFields);\n }\n\n formatRequest(): { [key: string]: any } {\n const request = this.datasource().formatRequest();\n this.request().forEach(f => {\n if (request[f.localField()] !== undefined) {\n request[f.localField()] = f.calcValue() || request[f.localField()];\n }\n });\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n this._data = this.fixInt64(response);\n return this._data;\n });\n }\n return this._prevRequestPromise;\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRestResultRef.prototype._class += \" RestResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { Query as CommsQuery } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element\";\nimport { IActivityError, ReferencedFields } from \"./activity\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\nimport { Param } from \"./rest\";\n\nfunction parseUrl(_: string): { url: string, querySet: string, queryID: string } {\n // \"http://10.241.100.157:8002/WsEcl/submit/query/roxie/carmigjx_govbisgsavi.Ins4621360_Service_00000006/json\",\n const parts = _.split(\"/WsEcl/submit/query/\");\n if (parts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n const urlParts = parts[0].split(\":\");\n if (urlParts.length < 3) throw new Error(`Invalid roxie URL: ${_}`);\n const roxieParts = parts[1].split(\"/\");\n if (roxieParts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n return {\n url: `${urlParts[0]}:${urlParts[1]}:${urlParts[2] === \"18002\" ? \"18010\" : \"8010\"}`,\n querySet: roxieParts[0],\n queryID: roxieParts[1]\n };\n}\n\nfunction isHipieRequest(requestField: string): boolean {\n return requestField.length >= 8 && requestField.indexOf(\"_changed\") === requestField.length - 8;\n}\n\nfunction isHipieResponse(resultName: string): boolean {\n return (resultName.length >= 8 && resultName.indexOf(\"_changed\") === resultName.length - 8) ||\n ([\"HIPIE_DDL\", \"HIPIE_DDLGLOBALS\", \"hipieversion\"].indexOf(resultName) >= 0)\n ;\n}\n\nexport class RoxieService extends Datasource {\n private _query: CommsQuery;\n private _requestFields: DDL2.IField[];\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n private _type: \"roxie\" | \"hipie\" = \"roxie\";\n\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8002)\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Query Set\")\n querySet: publish<this, string>;\n @publish(\"\", \"string\", \"Query ID\")\n queryID: publish<this, string>;\n @publish(false, \"boolean\", \"Ignore provided DDL request\")\n ignoreHipieRequest: publish<this, boolean>;\n @publish(false, \"boolean\", \"Ignore provided DDL response\")\n ignoreHipieResponse: publish<this, boolean>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return {\n type: this._type,\n id: this.id(),\n url: this.url(),\n querySet: this.querySet(),\n queryID: this.queryID(),\n inputs: this.requestFields(),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): this {\n this._type = ddl.type;\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .querySet(ddl.querySet)\n .queryID(ddl.queryID)\n ;\n if (ddl.inputs && ddl.inputs.length) {\n this.requestFields(ddl.inputs);\n }\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): RoxieService {\n return new RoxieService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n querySet: this.querySet(),\n queryId: this.queryID(),\n ignoreHipieRequest: this.ignoreHipieRequest(),\n ignoreHipieResponse: this.ignoreHipieResponse(),\n ...more\n });\n }\n\n label(): string {\n return this.queryID();\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n const hasMeta = !!this._requestFields;\n this.refreshMetaPromise = new Promise<CommsQuery>((resolve, reject) => {\n const query = CommsQuery.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.querySet(), this.queryID());\n if (!hasMeta || this.ignoreHipieRequest() || this.ignoreHipieResponse()) {\n resolve(query.refresh());\n }\n resolve(query);\n }).then((query) => {\n this._query = query;\n if (!hasMeta || this.ignoreHipieRequest()) {\n this._requestFields = query.requestFields().filter(row => this._type === \"roxie\" || !isHipieRequest(row.id));\n }\n if (!hasMeta || this.ignoreHipieResponse()) {\n query.resultNames().filter(resultName => this._type === \"roxie\" || !isHipieResponse(resultName)).forEach(resultName => {\n this._responseFields[resultName] = query.resultFields(resultName);\n });\n }\n });\n }\n return this.refreshMetaPromise;\n }\n\n requestFields(): DDL2.IField[];\n requestFields(_: DDL2.IField[]): this;\n requestFields(_?: DDL2.IField[]): DDL2.IField[] | this {\n if (!arguments.length) return this._requestFields || [];\n this._requestFields = _;\n return this;\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevPromise = this._submitQ.push(this._query.submit(request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRoxieService.prototype._class += \" RoxieService\";\n\nexport class RoxieResult extends Datasource {\n\n @publish(null, \"widget\", \"Roxie service\")\n _service: RoxieService = new RoxieService(this._ec);\n service(): RoxieService;\n service(_: RoxieService): this;\n service(_?: RoxieService): this | RoxieService {\n if (!arguments.length) return this._service;\n this._service = _;\n this._service.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"set\", \"Result Name\", function (this: RoxieResult): string[] {\n return this._service !== undefined ? this._service.resultNames() : [];\n })\n resultName: publish<this, string>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRoxieService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RoxieService, resultName: string): RoxieResult {\n return new RoxieResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().querySet()}/${this.service().queryID()}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields();\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.service().responseFields(this.resultName());\n }\n\n refreshMeta(): Promise<void> {\n return this.service().refreshMeta();\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request);\n }\n}\nRoxieResult.prototype._class += \" RoxieResult\";\n\nexport class RoxieResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RoxieResult;\n datasource(_: RoxieResult): this;\n datasource(_?: RoxieResult): this | RoxieResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n querySet(): string {\n return this.datasource().service().querySet();\n }\n\n queryID(): string {\n return this.datasource().service().queryID();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n @publish([], \"propertyArray\", \"Request Fields\")\n _request: Param[];\n request(): Param[];\n request(_: Param[]): this;\n request(_?: Param[]): Param[] | this {\n if (!arguments.length) return this._request;\n this._request = _;\n return this;\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n params: this.request().map(param => param.hash()),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n localFieldIDs.push(param.localField());\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().requestFields().map(ff => ff.id));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.datasource().responseFields();\n }\n\n formatRequest(): { [key: string]: any } {\n const request: { [key: string]: any } = {};\n let hasRequest = false;\n const fields = this.datasource().requestFields();\n for (const param of this.validParams()) {\n const _value = param.calcValue();\n const field = fields.filter(row => row.id === param.localField())[0];\n let value;\n if (field.type === \"set\") {\n value = {\n Item: _value\n };\n } else {\n value = _value[0];\n }\n if (value !== undefined) {\n request[param.localField()] = value;\n }\n hasRequest = true;\n }\n if (!hasRequest) {\n request.refresh = true;\n }\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n return super.exec().then(() => {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n const resultName = this.datasource().resultName();\n let result = response[resultName];\n if (!result) {\n // See: https://track.hpccsystems.com/browse/HPCC-21176 ---\n // \"Result 1\" => \"result_1\"\n result = response[resultName.toLowerCase().replace(/ /g, \"_\")];\n }\n return this.fixInt64(result);\n });\n }\n return this._prevRequestPromise;\n }).then(data => {\n this._data = data;\n });\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRoxieResultRef.prototype._class += \" RoxieResultRef\";\n\nexport class HipieResultRef extends RoxieResultRef {\n\n fullUrl(_: string): this {\n const info = parseUrl(_);\n this.datasource().service().url(info.url);\n this.datasource().service().querySet(info.querySet);\n this.datasource().service().queryID(info.queryID);\n return this;\n }\n\n formatRequest(): { [key: string]: any } {\n const _request = super.formatRequest();\n const request: { [key: string]: any } = {};\n for (const key in _request) {\n request[key] = _request[key];\n request[`${key}_changed`] = true;\n }\n return request;\n }\n}\nHipieResultRef.prototype._class += \" HipieResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { ActivitySelection, IActivityError } from \"./activity\";\nimport { Databomb, emptyDatabomb } from \"./databomb\";\nimport { DatasourceRef, DatasourceRefType } from \"./datasource\";\nimport { Form } from \"./form\";\nimport { LogicalFile } from \"./logicalfile\";\nimport { RestResult, RestResultRef } from \"./rest\";\nimport { HipieResultRef, RoxieResult, RoxieService } from \"./roxie\";\nimport { WUResult, WUResultRef } from \"./wuresult\";\n\nlet dsPickerID = 0;\nexport class DSPicker extends ActivitySelection {\n private _nullDatasource = emptyDatabomb;\n\n @publish(\"\", \"set\", \"Activity\", function (this: DSPicker) { return this.datasourceIDs(); }, { optional: false })\n _datasourceID: string; // DDL2.IDatasourceType;\n datasourceID(): string;\n datasourceID(_: string): this;\n datasourceID(_?: string): this | string {\n if (!arguments.length) return this._datasourceID;\n if (this._datasourceID !== _) {\n this._datasourceID = _;\n this.refreshRef(_);\n }\n return this;\n }\n\n @publish(\"\", \"widget\", \"Activity\")\n _datasourceRef: DatasourceRef;\n datasourceRef(): DatasourceRef;\n datasourceRef(_: DatasourceRef): this;\n datasourceRef(_?: DatasourceRef): this | DatasourceRef {\n return super.selection.apply(this, arguments);\n }\n\n datasource(): DatasourceRefType {\n return this.datasourceRef().datasource();\n }\n\n refreshRef(id: string) {\n const ds: DatasourceRefType = this._ec.datasource(id);\n if (ds instanceof Databomb) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof Form) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof LogicalFile) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof RoxieService) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof WUResult) {\n this.selection(new WUResultRef().datasource(ds));\n } else if (ds instanceof RoxieResult) {\n this.selection(new HipieResultRef(this._ec).datasource(ds));\n } else if (ds instanceof RestResult) {\n this.selection(new RestResultRef(this._ec).datasource(ds));\n }\n }\n\n selection(): DatasourceRef;\n selection(_: DatasourceRef): this;\n selection(_?: DatasourceRef): DatasourceRef | this {\n const retVal = super.selection.apply(this, arguments);\n if (!arguments.length) return retVal || this._nullDatasource;\n if (this._datasourceID !== _.datasource().id()) {\n this._datasourceID = _.datasource().id();\n }\n return this;\n }\n\n validate(): IActivityError[] {\n return this.selection().validate();\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._id = `ds_${++dsPickerID}`;\n const ds = this._ec.datasources()[0];\n this.datasourceID(ds.id());\n }\n\n toDDL(): DDL2.IDatasourceRef {\n return {\n ...this.datasourceRef().toDDL(),\n id: this.datasourceID()\n };\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n ...more\n });\n }\n\n datasourceIDs() {\n return this._ec.datasources().map(ds => {\n return {\n value: ds.id(),\n text: `${ds.label()} ${ds.id() !== ds.label() ? ` (${ds.id()})` : \"\"}`\n };\n });\n }\n}\nDSPicker.prototype._class += \" DSPicker\";\n","export const PKG_NAME = \"@hpcc-js/ddl-shim\";\nexport const PKG_VERSION = \"2.25.2\";\nexport const BUILD_VERSION = \"2.108.10\";\n","export type StringStringDict = { [key: string]: string; };\n\n// Datasource ===============================================================\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\nexport interface IFilter {\n fieldid: string;\n nullable: boolean;\n rule: IFilterRule;\n minid?: string;\n maxid?: string;\n}\n\nexport interface IOutput {\n id: string;\n from?: string;\n filter?: IFilter[];\n notify?: string[];\n}\n\nexport interface IDatasource {\n id: string;\n filter?: IFilter[];\n outputs: IOutput[];\n}\n\nexport interface IWorkunitDatasource extends IDatasource {\n WUID: boolean;\n}\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\n return (ref as IWorkunitDatasource).WUID !== undefined;\n}\n\nexport interface IDatabombDatasource extends IDatasource {\n databomb: true;\n}\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\n return (ref as IDatabombDatasource).databomb === true;\n}\n\nexport interface IHipieDatasource extends IDatasource {\n URL: string;\n}\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\n return (ref as IHipieDatasource).URL !== undefined;\n}\n\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\n// Event ====================================================================\nexport interface IEventUpdate {\n visualization: string;\n instance?: string;\n datasource: string;\n col?: string;\n merge: boolean;\n mappings?: StringStringDict;\n}\n\nexport interface IEvent {\n mappings?: StringStringDict; // Legacy\n updates: IEventUpdate[];\n}\n\n// Mappings =================================================================\nexport interface IPieMapping {\n label: string;\n weight: string;\n}\n\nexport interface ILineMapping {\n x: string[];\n y: string[];\n}\n\nexport interface ITableMapping {\n value: string[];\n}\n\nexport interface IChoroMapping {\n weight: string | string[];\n}\n\nexport interface IChoroUSStateMapping extends IChoroMapping {\n state: string;\n}\n\nexport interface IChoroUSCountyMapping extends IChoroMapping {\n county: string;\n}\n\nexport interface IChoroGeohashMapping extends IChoroMapping {\n geohash: string;\n}\n\nexport interface IGraphMapping {\n uid: string;\n label: string;\n weight: string;\n flags: string;\n}\n\nexport interface IGraphLinkMapping {\n uid: string;\n}\n\nexport interface IHeatMapMapping {\n x: string;\n y: string;\n weight: string;\n}\n\nexport interface ISliderMapping {\n label: string;\n}\n// Source ===================================================================\nexport interface ISource {\n id: string;\n output: string;\n sort?: string[];\n first?: string | number;\n reverse?: boolean;\n properties?: StringStringDict; // TODO Needed?\n}\n\nexport interface IPieSource extends ISource {\n mappings: IPieMapping;\n}\n\nexport interface ILineSource extends ISource {\n mappings: ILineMapping;\n}\n\nexport interface ITableSource extends ISource {\n mappings: ITableMapping;\n}\n\nexport interface IGraphLink {\n mappings: IGraphLinkMapping;\n childfile: string;\n}\n\nexport interface IGraphSource extends ISource {\n mappings: IGraphMapping;\n link: IGraphLink;\n}\n\nexport interface IHeatMapSource extends ISource {\n mappings: IHeatMapMapping;\n}\n\nexport interface IChoroSource extends ISource {\n mappings: IAnyChoroMapping;\n}\n\nexport interface ISliderSource extends ISource {\n mappings: ISliderMapping;\n}\n\n// Visualization ============================================================\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\n\nexport interface IVisualizationField {\n id: string;\n properties: {\n label?: string;\n datatype: VisualizationFieldDataType;\n default?: any[];\n function?: VisualizationFieldFuncitonType;\n params?: {\n param1: string;\n param2: string;\n }\n type: VisualizationFieldType;\n };\n}\n\nexport interface IVisualization {\n id: string;\n title?: string;\n type: VisualizationType;\n fields?: IVisualizationField[];\n properties?: {\n charttype?: string,\n\n // TODO Split Known Properties ---\n [key: string]: any\n };\n events?: { [key: string]: IEvent };\n onSelect?: any; // legacy\n color?: any; // legacy\n}\n\nexport interface IPieVisualization extends IVisualization {\n type: \"PIE\" | \"BAR\";\n source: IPieSource;\n}\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\n}\n\nexport interface ILineVisualization extends IVisualization {\n type: \"LINE\";\n source: ILineSource;\n}\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\n return (viz as ILineVisualization).type === \"LINE\";\n}\n\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\nexport interface IChoroVisualization extends IVisualization {\n type: \"CHORO\";\n source: IChoroSource;\n\n visualizations?: IChoroVisualization[];\n color?: ChoroColor;\n}\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\n return (viz as IChoroVisualization).type === \"CHORO\";\n}\n\nexport interface ITableVisualization extends IVisualization {\n type: \"TABLE\";\n label: string[];\n source: ITableSource;\n}\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\n return (viz as ITableVisualization).type === \"TABLE\";\n}\n\nexport interface ISliderVisualization extends IVisualization {\n type: \"SLIDER\";\n source: ISliderSource;\n range?: number[];\n}\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\n return (viz as ISliderVisualization).type === \"SLIDER\";\n}\n\nexport interface IIcon {\n [id: string]: string | number | boolean;\n}\n\nexport type IValueMappings = { [key: string]: IIcon; };\n\nexport interface IVisualizationIcon {\n fieldid?: string;\n faChar?: string;\n valuemappings?: IValueMappings;\n}\n\nexport interface IGraphVisualization extends IVisualization {\n type: \"GRAPH\";\n source: IGraphSource;\n\n label: string[];\n icon: IVisualizationIcon;\n flag: IVisualizationIcon[];\n}\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\n return (viz as IGraphVisualization).type === \"GRAPH\";\n}\n\nexport interface IHeatMapVisualization extends IVisualization {\n type: \"HEAT_MAP\";\n source: IHeatMapSource;\n}\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\n}\n\nexport interface IFormVisualization extends IVisualization {\n type: \"FORM\";\n}\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\n return (viz as IFormVisualization).type === \"FORM\";\n}\n\n// Dashboard ================================================================\nexport interface IDashboard {\n id?: string;\n title?: string;\n enable?: string;\n label?: string;\n primary?: boolean;\n visualizations: IAnyVisualization[];\n}\n\nexport interface IDDL {\n dashboards: IDashboard[];\n datasources: IAnyDatasource[];\n hipieversion: string;\n visualizationversion: string;\n}\n\n// DDL ======================================================================\nexport type DDLSchema = IDDL;\n\n// Helpers ==================================================================\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSStateMapping).state !== undefined;\n}\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSCountyMapping).county !== undefined;\n}\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\n}\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\n","export type RowType = { [key: string]: any; };\n\n// Fields ==============================================================\nexport type Number64 = string;\nexport type Range = [number | string, number | string];\nexport type Dataset = any[];\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\n\nexport interface IFieldBoolean {\n type: \"boolean\";\n id: string;\n default?: boolean;\n}\n\nexport interface IFieldNumber {\n type: \"number\";\n id: string;\n default?: number;\n}\n\nexport interface IFieldNumber64 {\n type: \"number64\";\n id: string;\n default?: Number64;\n}\n\nexport interface IFieldString {\n type: \"string\";\n id: string;\n default?: string;\n}\n\nexport interface IFieldRange {\n type: \"range\";\n id: string;\n default?: Range;\n}\n\nexport interface IFieldDataset {\n type: \"dataset\";\n id: string;\n default?: Dataset;\n children: IField[];\n}\n\nexport interface IFieldSet {\n type: \"set\";\n id: string;\n default?: Array<string | number>;\n fieldType: \"string\" | \"number\";\n}\n\nexport interface IFieldObject {\n type: \"object\";\n id: string;\n default?: object;\n fields: { [key: string]: IField };\n}\n\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\n\n// Datasources ==============================================================\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\n\nexport interface IDatasource {\n type: IDatasourceType;\n id: string;\n}\n\nexport interface IService extends IDatasource {\n url: string;\n}\n\nexport interface IOutput {\n fields: IField[];\n}\n\nexport type OutputDict = { [key: string]: IOutput };\n\nexport interface IWUResult extends IService {\n type: \"wuresult\";\n wuid: string;\n outputs: OutputDict;\n}\n\nexport interface ILogicalFile extends IService {\n type: \"logicalfile\";\n logicalFile: string;\n fields: IField[];\n}\n\nexport interface IRoxieService extends IService {\n type: \"roxie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IHipieService extends IService {\n type: \"hipie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IRestService extends IService {\n type: \"rest\";\n action: string;\n mode?: \"get\" | \"post\";\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IForm extends IDatasource {\n type: \"form\";\n fields: IField[];\n}\n\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\nexport interface IDatabomb extends IDatasource {\n type: \"databomb\";\n fields: IField[];\n format: IDatabombFormat;\n payload?: string;\n}\n\n// IDatasorceRef ---\nexport interface IDatasourceBaseRef {\n id: string;\n}\n\nexport interface IDatabombRef extends IDatasourceBaseRef {\n}\n\nexport interface IWUResultRef extends IDatasourceBaseRef {\n output: string;\n}\n\nexport interface IRestResultRef extends IDatasourceBaseRef {\n responseField: string;\n}\n\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\n}\n\nexport interface IRequestField {\n localFieldID: string;\n source: string;\n remoteFieldID: string;\n value: string;\n}\n\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\n request: IRequestField[];\n output: string;\n}\n\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\n\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\n}\n\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\n}\n\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\n return (ref as IRoxieServiceRef).request !== undefined;\n}\n\n// Activities ===============================================================\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\n\nexport interface IActivity {\n type: IActivityType;\n}\n\n// Filter ===================================================================\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\nexport interface IMapping {\n remoteFieldID: string;\n localFieldID: string;\n condition: IMappingConditionType;\n nullable: boolean;\n}\n\nexport interface IFilterCondition {\n viewID: string;\n mappings: IMapping[];\n}\n\nexport interface IFilterStaticCondition {\n localFieldID: string;\n condition: IMappingConditionType;\n value: string | number;\n}\n\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\n return !!(fc as IFilterCondition).viewID;\n}\n\nexport interface IFilter extends IActivity {\n type: \"filter\";\n conditions: FilterCondition[];\n}\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\n return activity.type === \"filter\";\n}\n\n// Project ==================================================================\nexport interface IEquals {\n fieldID: string;\n type: \"=\";\n sourceFieldID: string;\n transformations?: MultiTransformationType[];\n}\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\nexport interface ICalculated {\n fieldID: string;\n type: ICalculatedType;\n sourceFieldID1: string;\n sourceFieldID2: string;\n}\n\nexport interface IScale {\n fieldID: string;\n type: \"scale\";\n sourceFieldID: string;\n factor: number;\n}\n\nexport interface ITemplate {\n fieldID: string;\n type: \"template\";\n template: string;\n}\n\nexport interface IMapMapping {\n value: any;\n newValue: any;\n}\n\nexport interface IMap {\n fieldID: string;\n type: \"map\";\n sourceFieldID: string;\n default: any;\n mappings: IMapMapping[];\n}\n\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\nexport interface IMulti {\n fieldID: string;\n type: \"multi\";\n transformations: MultiTransformationType[];\n}\n\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\nexport interface IProject extends IActivity {\n type: \"project\";\n transformations: ProjectTransformationType[];\n}\nexport function isProjectActivity(activity: IActivity): activity is IProject {\n return activity.type === \"project\";\n}\nexport interface IMappings extends IActivity {\n type: \"mappings\";\n transformations: ProjectTransformationType[];\n}\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\n return activity.type === \"mappings\";\n}\n// GroupBy ==================================================================\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\nexport interface IAggregate {\n fieldID: string;\n type: IAggregateType;\n inFieldID: string;\n baseCountFieldID?: string;\n}\n\nexport interface ICount {\n fieldID: string;\n type: \"count\";\n}\n\nexport type AggregateType = IAggregate | ICount;\n\nexport interface IGroupBy extends IActivity {\n type: \"groupby\";\n groupByIDs: string[];\n aggregates: AggregateType[];\n}\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\n return activity.type === \"groupby\";\n}\n\n// Sort =====================================================================\nexport interface ISortCondition {\n fieldID: string;\n descending: boolean;\n}\n\nexport interface ISort extends IActivity {\n type: \"sort\";\n conditions: ISortCondition[];\n}\nexport function isSortActivity(activity: IActivity): activity is ISort {\n return activity.type === \"sort\";\n}\n\n// Limit ====================================================================\nexport interface ILimit extends IActivity {\n type: \"limit\";\n limit: number;\n}\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\n return activity.type === \"limit\";\n}\n\n// Visualization ============================================================\nexport interface IWidgetProperties {\n __class: string;\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\n}\n\nexport interface IWidget {\n id: string;\n chartType: string;\n __class: string;\n properties: IWidgetProperties;\n}\n\nexport type VisibilityType = \"normal\" | \"flyout\";\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\n\nexport interface IVisualization extends IWidget {\n title: string;\n description?: string;\n visibility: VisibilityType;\n mappings: IMappings;\n secondaryDataviewID?: string;\n}\n\n// View =====================================================================\nexport interface IView {\n id: string;\n datasource: IDatasourceRef;\n activities: ActivityType[];\n visualization: IVisualization;\n}\n\n// DDL ======================================================================\nexport interface IProperties {\n [propID: string]: any;\n}\n\nexport interface Schema {\n version: \"2.2.1\";\n createdBy: {\n name: string;\n version: string;\n };\n datasources: DatasourceType[];\n dataviews: IView[];\n properties?: IProperties;\n hipieProperties?: IProperties;\n\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\n defs?: {\n fieldTypes: {\n number64: Number64;\n range: Range;\n dataset: Dataset;\n fieldType: IFieldType;\n fieldBoolean: IFieldBoolean;\n fieldNumber: IFieldNumber;\n fieldNumber64: IFieldNumber64\n fieldString: IFieldString;\n fieldRange: IFieldRange;\n fieldDataset: IFieldDataset;\n fieldSet: IFieldSet;\n fieldObject: IFieldObject;\n field: IField;\n };\n datasourceTypes: {\n datasource: IDatasource;\n logicalFile: ILogicalFile;\n form: IForm;\n databomb: IDatabomb;\n wuresult: IWUResult;\n hipieService: IHipieService;\n roxieService: IRoxieService;\n };\n datasourceRefTypes: {\n wuResultRef: IWUResultRef;\n roxieServiceRef: IRoxieServiceRef;\n };\n activityTypes: {\n filter: IFilter;\n project: IProject;\n groupby: IGroupBy;\n sort: ISort;\n limit: ILimit;\n mappings: IMappings;\n };\n aggregateTypes: {\n aggregate: IAggregate;\n count: ICount;\n };\n transformationTypes: {\n equals: IEquals;\n calculated: ICalculated;\n scale: IScale;\n template: ITemplate;\n map: IMap;\n multi: IMulti;\n };\n };\n}\n","import * as DDL2 from \"./ddl/v2\";\n\nconst classMappings: any = {\n c3chart_Bar: \"chart_Bar\",\n c3chart_Column: \"chart_Column\",\n c3chart_Pie: \"chart_Pie\",\n c3chart_Area: \"chart_Area\",\n c3chart_Line: \"chart_Line\",\n amchart_Bar: \"chart_Bar\",\n amchart_Column: \"chart_Column\",\n amchart_Pie: \"chart_Pie\",\n amchart_Area: \"chart_Area\",\n amchart_Line: \"chart_Line\",\n google_Bar: \"chart_Bar\",\n google_Column: \"chart_Column\",\n google_Pie: \"chart_Pie\",\n google_Area: \"chart_Area\",\n google_Line: \"chart_Line\",\n other_Table: \"dgrid_Table\"\n};\nconst propertyMappings: any = {\n xAxisLabelRotation: [\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\n ],\n tooltipLabelColor: {\n name: \"tooltipLabelColor\"\n },\n tooltipSeriesColor: {\n name: \"tooltipSeriesColor\"\n },\n tooltipValueColor: {\n name: \"tooltipValueColor\"\n },\n tooltipValueFormat: {\n name: \"tooltipValueFormat\"\n },\n timePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n smoothLines: {\n name: \"interpolate\",\n transform: (n: any) => {\n if (n === false) return \"linear\";\n return \"catmullRom\";\n }\n },\n holePercent: {\n name: \"innerRadius\"\n },\n flip: {\n name: \"orientation\",\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\n },\n bottomText: {\n name: \"xAxisTitle\"\n },\n xAxisTypeTimePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n yAxisTypeTimePattern: {\n name: \"yAxisTypeTimePattern\"\n },\n valueFormat: {\n name: \"tooltipValueFormat\"\n },\n stacked: {\n name: \"yAxisStacked\"\n },\n showYGrid: {\n name: \"yAxisGuideLines\"\n },\n showXGrid: {\n name: \"xAxisGuideLines\"\n },\n showValueLabel: {\n name: \"showValue\"\n },\n low: {\n name: \"yAxisDomainLow\"\n },\n high: {\n name: \"yAxisDomainHigh\"\n },\n fillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n areaFillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n showToolbar: {\n name: \"titleVisible\"\n },\n showCSV: {\n name: \"downloadButtonVisible\"\n }\n};\n\nfunction findKeyVal(object: any, key: any, val: any): any {\n let value;\n\n for (const k in object) {\n if (k === key && object[k] === val) {\n value = object;\n break;\n }\n if (object[k] && typeof object[k] === \"object\") {\n value = findKeyVal(object[k], key, val);\n if (value !== undefined) {\n break;\n }\n }\n }\n return value;\n}\n\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\n\n ddl2.dataviews.forEach(apply_to_dataview);\n\n function apply_to_dataview(dv: any) {\n const widgetId = dv.id;\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\n if (dermPanelObj) {\n const dermPanelProps: any = dermPanelObj.__properties;\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\n const dermWidgetProps: any = dermWidgetObj.__properties;\n apply_class_mapping(dermWidgetObj);\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\n if (dv.visualization.properties.chartType) {\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\n }\n } else {\n console.warn(widgetId + \" not found in dermObj\");\n }\n\n function apply_class_mapping(dermWidgetObj: any) {\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\n dv.visualization.properties.widget.__class = dv.visualization.__class;\n\n function swap_with_supported_class(_class: string): string {\n return classMappings[_class] ? classMappings[_class] : _class;\n }\n }\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dermPanelProps.title || \"\";\n dv.visualization.description = \"\";\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermPanelProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n const newPropName = propertyMappings[propName].name;\n\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\n } else {\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\n }\n\n }\n }\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\n dv.visualization.properties.legendVisible = true;\n }\n }\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\n dv.visualization.description = \"\"; // TODO - should this map to anything?\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermWidgetProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n if (propertyMappings[propName] instanceof Array) {\n propertyMappings[propName].forEach((p: any) => {\n const newPropName = p.name;\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n } else {\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\n }\n });\n } else {\n const newPropName = propertyMappings[propName].name;\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n }\n }\n }\n }\n }\n}\n\ntype CellPosition = {\n id: string;\n position: [number, number, number, number];\n};\n\ntype DDLProperties = {\n layout: CellPosition[]\n};\n\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\n const retVal: DDLProperties = {\n layout: []\n };\n if (!dermObj || !dermObj.__properties) return;\n dermObj.__properties.content.forEach((cell: any) => {\n const cellPosition: CellPosition = {\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\n id: cell.__properties.widget.__id,\n position: [\n cell.__properties.gridCol,\n cell.__properties.gridRow,\n cell.__properties.gridColSpan,\n cell.__properties.gridRowSpan\n ]\n };\n retVal.layout.push(cellPosition);\n });\n return retVal;\n}\n\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\n apply_to_dataviews(ddl2, dermObj);\n return apply_to_properties_layout(ddl2, dermObj);\n}\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\n\ninterface IDatasourceOutput {\n datasource: DDL1.IAnyDatasource;\n output: DDL1.IOutput;\n}\n\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\n filter: DDL1.IFilter;\n}\n\nconst UPGRADE_HEX_CHAR: boolean = false;\nfunction faCharFix(faChar: any): string | undefined {\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\n return String.fromCharCode(parseInt(faChar));\n }\n return faChar;\n}\n\nclass DDLUpgrade {\n _ddl: DDL1.IDDL;\n _baseUrl: string;\n _wuid?: string;\n _toLowerCase: boolean;\n\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\n\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\n\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\n _ddl2DataviewActivities: {\n [viewID: string]: {\n project: DDL2.IProject,\n filters: DDL2.IFilter,\n sort: DDL2.ISort,\n groupBy: DDL2.IGroupBy,\n limit: DDL2.ILimit,\n mappings: DDL2.IMappings\n }\n } = {};\n\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\n this._ddl = ddl;\n this._baseUrl = baseUrl;\n this._wuid = wuid;\n this._toLowerCase = toLowerCase;\n\n this.indexDDL();\n this.readDDL();\n }\n\n toLowerCase(s: string): string {\n return this._toLowerCase ? s.toLowerCase() : s;\n }\n\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\n if ((viz as any).source) {\n const ds = this._datasources[(viz as any).source.id];\n if (DDL1.isHipieDatasource(ds)) {\n return true;\n }\n }\n return false;\n }\n\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\n const retVal: IDatasourceOutput[] = [];\n const datasource = this._datasources[dsID];\n for (const output of datasource.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n if (notify === vizID) {\n retVal.push({\n datasource,\n output\n });\n }\n }\n }\n }\n return retVal;\n }\n\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\n if (dsOut.output.filter) {\n for (const filter of dsOut.output.filter) {\n retVal[filter.fieldid] = {\n datasource: dsOut.datasource,\n output: dsOut.output,\n filter\n };\n }\n }\n }\n return retVal;\n }\n\n indexDDL() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n this._visualizations[viz.id] = viz;\n }\n }\n\n for (const ds of this._ddl.datasources) {\n this._datasources[ds.id] = ds;\n for (const output of ds.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n this._datasourceUpdates[notify] = {\n id: ds.id,\n output: output.from || output.id\n };\n }\n }\n }\n }\n }\n\n readDDL() {\n for (const ds of this._ddl.datasources) {\n if (DDL1.isWorkunitDatasource(ds)) {\n const ddl2DS: DDL2.IWUResult = {\n type: \"wuresult\",\n id: ds.id,\n url: this._baseUrl,\n wuid: this._wuid!,\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n } else if (DDL1.isDatabombDatasource(ds)) {\n } else {\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\n const hostParts = urlParts[0];\n const roxieParts = urlParts[1].split(\"/\");\n const ddl2DS: DDL2.IHipieService = {\n type: \"hipie\",\n id: ds.id,\n url: hostParts,\n querySet: roxieParts[0],\n queryID: roxieParts[1],\n inputs: [],\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n }\n }\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.type === \"FORM\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n } else if (viz.type === \"SLIDER\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields, true)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n }\n\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\n }\n }\n\n this.readGroupBy();\n this.readFilters();\n this.readSort();\n this.readMappings();\n }\n\n readGroupBy() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.fields) {\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\n const groupByColumns: string[] = [];\n const aggrFields: DDL2.IAggregate[] = [];\n for (const field of viz.fields) {\n if (field.properties && field.properties.function) {\n switch (field.properties.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"AVE\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"SCALE\":\n if (typeof field.properties.params!.param1 === \"object\") {\n const props: any = field.properties.params!.param1;\n switch (props.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(props.function),\n inFieldID: this.toLowerCase(props.params.param1),\n fieldID: this.toLowerCase(field.id)\n });\n break;\n }\n }\n projectTransformations.push({\n type: \"scale\",\n sourceFieldID: this.toLowerCase(field.id),\n fieldID: this.toLowerCase(field.id),\n factor: +field.properties.params!.param2\n });\n break;\n default:\n groupByColumns.push(this.toLowerCase(field.id));\n throw new Error(`Unhandled field function: ${field.properties.function}`);\n }\n } else {\n groupByColumns.push(this.toLowerCase(field.id));\n }\n }\n if (projectTransformations.length) {\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\n }\n if (aggrFields.length) {\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\n }\n }\n }\n }\n }\n\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\n switch (func) {\n case \"SUM\":\n return \"sum\";\n case \"AVE\":\n return \"mean\";\n case \"MIN\":\n return \"min\";\n case \"MAX\":\n return \"max\";\n }\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\n }\n\n readMappings() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (DDL1.isFormVisualization(viz)) {\n } else if (DDL1.isPieVisualization(viz)) {\n this.readPieMappings(viz);\n } else if (DDL1.isChoroVisualization(viz)) {\n this.readChoroMappings(viz);\n } else if (DDL1.isLineVisualization(viz)) {\n this.readLineMappings(viz);\n } else if (DDL1.isTableVisualization(viz)) {\n this.readTableMappings(viz);\n } else if (DDL1.isGraphVisualization(viz)) {\n this.readGraphMappings(viz);\n } else if (DDL1.isSliderVisualization(viz)) {\n this.readSliderMappings(viz);\n } else {\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\n }\n }\n }\n }\n\n readPieMappings(viz: DDL1.IPieVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n readChoroMappings(viz: DDL1.IChoroVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n anyChoroMapping2label(mapping: any) {\n return mapping.state || mapping.county || mapping.geohash;\n }\n\n readLineMappings(viz: DDL1.ILineVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: viz.source.mappings.x[0],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\n });\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.source.mappings.y[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\n });\n }\n }\n\n readTableMappings(viz: DDL1.ITableVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n for (let i = 0; i < viz.label.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.label[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\n });\n }\n }\n\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\n const retVal: DDL2.IMapMapping[] = [];\n if (valueMappings) {\n for (const value in valueMappings) {\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\n for (const key in valueMappings[value]) {\n if (key === \"faChar\") {\n newValue[key] = faCharFix(valueMappings[value][key]);\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\n console.warn(\"Deprecated flag property: \" + key);\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\n } else {\n newValue[key] = valueMappings[value][key];\n }\n }\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\n if (!annotation || value !== \"0\") {\n retVal.push({\n value,\n newValue\n });\n }\n }\n }\n return retVal;\n }\n\n readGraphMappings(viz: DDL1.IGraphVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\n });\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n if (viz.icon.fieldid) {\n mappings.transformations.push({\n fieldID: \"icon\",\n type: \"map\",\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\n default: { fachar: faCharFix(viz.icon.faChar) },\n mappings: this.readGraphEnums(viz.icon.valuemappings)\n });\n }\n let idx = 0;\n if (viz.flag) {\n for (const flag of viz.flag) {\n if (flag.fieldid) {\n mappings.transformations.push({\n fieldID: `annotation_${idx++}`,\n type: \"map\",\n sourceFieldID: this.toLowerCase(flag.fieldid),\n default: {},\n mappings: this.readGraphEnums(flag.valuemappings, true)\n });\n }\n }\n }\n mappings.transformations.push({\n fieldID: \"links\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\n transformations: [{\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\n }]\n });\n }\n\n readSliderMappings(viz: DDL1.ISliderVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n }\n\n readFilters() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.events) {\n for (const eventID in viz.events) {\n const event = viz.events[eventID];\n for (const update of event.updates) {\n const otherViz = this._ddl2Dataviews[update.visualization];\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\n if (update.mappings) {\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\n for (const key in update.mappings) {\n otherViz.datasource.request.push({\n source: viz.id,\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key])\n } as DDL2.IRequestField);\n }\n } else {\n const condition: DDL2.IFilterCondition = {\n viewID: viz.id,\n mappings: []\n };\n for (const key in update.mappings) {\n const mapping = update.mappings[key];\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\n if (!dsFilter) {\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\n } else {\n condition.mappings.push({\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key]),\n condition: this.rule2condition(dsFilter.rule),\n nullable: dsFilter.nullable\n });\n }\n }\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\n }\n }\n }\n }\n }\n }\n }\n }\n\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\n switch (_) {\n case \"set\":\n return \"in\";\n case \"notequals\":\n return \"!=\";\n }\n return _;\n }\n\n readSort() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if ((viz as any).source) {\n if ((viz as any).source.sort) {\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\n if (s.indexOf(\"-\") === 0) {\n return {\n fieldID: this.toLowerCase(s.substr(1)),\n descending: true\n } as DDL2.ISortCondition;\n }\n return {\n fieldID: this.toLowerCase(s),\n descending: false\n } as DDL2.ISortCondition;\n });\n }\n if ((viz as any).source.first) {\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\n vizLimit.limit = +(viz as any).source.first;\n }\n }\n }\n }\n }\n\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\n const project: DDL2.IProject = {\n type: \"project\",\n transformations: []\n };\n const filters: DDL2.IFilter = {\n type: \"filter\",\n conditions: []\n };\n const groupBy: DDL2.IGroupBy = {\n type: \"groupby\",\n groupByIDs: [],\n aggregates: []\n };\n const sort: DDL2.ISort = {\n type: \"sort\",\n conditions: []\n };\n const limit: DDL2.ILimit = {\n type: \"limit\",\n limit: 0\n };\n const mappings: DDL2.IMappings = {\n type: \"mappings\",\n transformations: []\n };\n this._ddl2DataviewActivities[viz.id] = {\n project,\n filters,\n sort,\n groupBy,\n limit,\n mappings\n };\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\n id: this._datasourceUpdates[viz.id].id,\n request: [],\n output: this._datasourceUpdates[viz.id].output\n } : {\n id: this._datasourceUpdates[viz.id].id,\n output: this._datasourceUpdates[viz.id].output\n };\n return {\n id: viz.id,\n datasource: datasourceRef,\n activities: [\n project,\n filters,\n sort,\n groupBy,\n limit\n ],\n visualization: {\n id: viz.id,\n title: viz.title || \"\",\n description: \"\",\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\n ...this.type2chartType(viz.type),\n mappings,\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\n }\n };\n }\n\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\n switch (chartType) {\n case \"LINE\":\n return { chartType: \"Line\", __class: \"chart_Line\" };\n case \"BUBBLE\":\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\n case \"PIE\":\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\n case \"BAR\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"FORM\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"WORD_CLOUD\":\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\n case \"CHORO\":\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\n case \"SUMMARY\":\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\n case \"SLIDER\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"HEAT_MAP\":\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\n case \"2DCHART\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"GRAPH\":\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\n case \"TABLE\":\n default:\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\n }\n }\n\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\n if (!fields) return [];\n return fields.map(field => {\n switch (field.properties.type) {\n case \"range\":\n return {\n type: \"range\",\n id: field.id,\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\n };\n case \"dataset\":\n return {\n type: \"dataset\",\n id: field.id,\n default: [],\n children: []\n };\n default:\n return {\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\n id: field.id,\n default: field.properties.default ? field.properties.default[0] : undefined\n };\n }\n });\n }\n\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\n switch (fieldType) {\n case \"bool\":\n case \"boolean\":\n return \"boolean\";\n case \"integer\":\n case \"unsigned\":\n case \"float\":\n case \"double\":\n case \"real\":\n return \"number\";\n case \"string\":\n return \"string\";\n default:\n return slider ? \"number\" : \"string\";\n }\n }\n\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\n target[output.from || output.id] = {\n fields: this.filters2fields(output.filter)\n };\n }\n\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\n if (!filters) return [];\n return filters.filter(filter => {\n const idParts = filter.fieldid.split(\"-\");\n return idParts.length === 1 || idParts[1] === \"range\";\n }).map(filter => {\n const idParts = filter.fieldid.split(\"-\");\n const retVal: DDL2.IFieldString = {\n type: \"string\",\n id: idParts[0]\n };\n return retVal;\n });\n }\n\n getVizField(vizID: string, fieldID: string): DDL2.IField {\n return {\n type: \"string\",\n id: \"\",\n default: \"\"\n };\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const id in this._ddl2Datasources) {\n retVal.push(this._ddl2Datasources[id]);\n }\n return retVal;\n }\n\n writeDataviews(): DDL2.IView[] {\n const retVal: DDL2.IView[] = [];\n for (const id in this._ddl2Dataviews) {\n retVal.push(this._ddl2Dataviews[id]);\n }\n return retVal;\n }\n\n writeProperties(): DDL2.IProperties | undefined {\n return {\n // TODO\n };\n }\n\n write(): DDL2.Schema {\n return {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDataviews(),\n properties: this.writeProperties()\n };\n }\n}\n\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\n const retVal = ddlUp.write();\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\n return retVal;\n}\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n function patternCode(i, patterns) {\n var regExpCode = opts.regExp ? 'regExp' : 'new RegExp';\n return 'var pattern' + i + ' = ' + regExpCode + '(' + util.toQuotedString(patterns[i]) + ');';\n }\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n 'regExp',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError,\n opts.regExp\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regExpCode = it.opts.regExp ? 'regExp' : 'new RegExp';\n if ($isData) {\n out += ' var ' + ($valid) + ' = true; try { ' + ($valid) + ' = ' + ($regExpCode) + '(' + ($schemaValue) + ').test(' + ($data) + '); } catch(e) { ' + ($valid) + ' = false; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($valid) + ') {';\n } else {\n var $regexp = it.usePattern($schema);\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","import * as _Ajv from \"ajv\";\nimport * as DDL from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\n\nconst Ajv = (_Ajv as any).default || _Ajv;\n\nexport const ddl2Schema: object = _ddl2Schema;\n\nconst options: _Ajv.Options = {\n allErrors: false,\n verbose: true,\n jsonPointers: false\n};\n\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\n const ajv: _Ajv.Ajv = new Ajv(options);\n const validate = ajv.compile(schema);\n const success = validate(ddl);\n return {\n success,\n errors: validate.errors\n };\n}\n\n/* Not needed ---\n// @ts-ignore\nimport * as ddlSchema from \"../schema/v1.json\";\n\nexport function validate(ddl: DDL.DDLSchema) {\n return doValidate(ddl, ddlSchema);\n}\n*/\n\n// @ts-ignore\nimport * as _ddl2Schema from \"../schema/v2.json\";\n\nexport function validate2(ddl: DDL2.Schema) {\n return doValidate(ddl, _ddl2Schema);\n}\n","export * from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nexport * from \"./upgrade\";\nexport * from \"./validate\";\n\nexport { DDL1, DDL2 };\n\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\n}\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nfunction createFilter(condition: DDL2.IMappingConditionType, lf: string, val: string | number): (localRow: any) => boolean {\n const isString = typeof val === \"string\";\n switch (condition) {\n case \"==\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() === val : localRow[lf] === val;\n case \"!=\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() !== val : localRow[lf] !== val;\n case \"<\":\n return (localRow) => localRow[lf] < val;\n case \"<=\":\n return (localRow) => localRow[lf] <= val;\n case \">\":\n return (localRow) => localRow[lf] > val;\n case \">=\":\n return (localRow) => localRow[lf] >= val;\n default:\n throw new Error(`Unknown filter condition: ${condition}`);\n }\n}\n\nexport class ColumnMapping extends PropertyExt {\n private _owner: RemoteFilter;\n\n @publish(null, \"set\", \"Filter Fields\", function (this: ColumnMapping) { return this.sourceOutFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w._owner.source(),\n validate: (w: ColumnMapping): boolean => w.sourceOutFields().indexOf(w.remoteField()) >= 0\n })\n remoteField: publish<this, string>;\n remoteField_exists: () => boolean;\n remoteField_valid: () => boolean;\n @publish(null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w._owner.source(),\n validate: (w: ColumnMapping): boolean => w.localFields().indexOf(w.localField()) >= 0\n })\n localField: publish<this, string>;\n localField_exists: () => boolean;\n localField_valid: () => boolean;\n @publish(\"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\", \"range\", \"in\"])\n condition: publish<this, DDL2.IMappingConditionType>;\n @publish(false, \"boolean\", \"Ignore null filters\")\n nullable: publish<this, boolean>;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): RemoteFilter;\n owner(_: RemoteFilter): this;\n owner(_?: RemoteFilter): RemoteFilter | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() || this.remoteField_exists();\n }\n\n toDDL(): DDL2.IMapping {\n return {\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n };\n }\n\n fromDDL(ddl: DDL2.IMapping): this {\n return this\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .nullable(ddl.nullable)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapping): ColumnMapping {\n return new ColumnMapping().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n remoteField: this.remoteField(),\n localField: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n sourceOutFields(): string[] {\n return this._owner.sourceOutFields().map(field => field.id);\n }\n\n remoteValues(filterSelection: any[]): Array<number | string> {\n const rf = this.remoteField();\n return filterSelection.map(sel => {\n const retVal = sel[rf];\n if (typeof retVal === \"string\") {\n return retVal.trim();\n }\n return retVal;\n });\n }\n\n createFilterDescription(filterSelection: any[]): string {\n switch (this.condition()) {\n case \"in\":\n case \"range\":\n return `${this.localField()} ${this.condition()} [${this.remoteValues(filterSelection).join(\", \")}]`;\n default:\n return `${this.localField()} ${this.condition()} ${this.remoteValues(filterSelection)[0]}`;\n }\n }\n\n createFilter(filterSelection: any[]): (localRow: any) => boolean {\n const lf = this.localField();\n const fsArr = this.remoteValues(filterSelection);\n switch (this.condition()) {\n case \"range\":\n if (this.nullable() && (fsArr.length < 2 || fsArr[0] === fsArr[1])) {\n return (localRow) => true;\n }\n return (localRow) => localRow[lf] >= fsArr[0] && localRow[lf] <= fsArr[1];\n case \"in\":\n if (this.nullable() && fsArr.length === 0) {\n return (localRow) => true;\n }\n return (localRow) => fsArr.some(fs => typeof localRow[lf] === \"string\" ? localRow[lf].trim() === fs : localRow[lf] === fs);\n default:\n const fs0 = fsArr[0];\n if (this.nullable() && (fs0 === undefined || fs0 === null || fs0 === \"\")) {\n return (localRow) => true;\n }\n return createFilter(this.condition(), lf, fs0);\n }\n }\n}\nColumnMapping.prototype._class += \" ColumnMapping\";\n\nexport class RemoteFilter extends PropertyExt {\n private _owner: Filters;\n\n @publish(null, \"set\", \"Activity\", function (this: RemoteFilter) { return this.visualizationIDs(); }, {\n optional: true,\n validate: (w: RemoteFilter): boolean => w.visualizationIDs().indexOf(w.source()) >= 0\n })\n source: publish<this, string>;\n source_exists: () => boolean;\n source_valid: () => boolean;\n @publish([], \"propertyArray\", \"Mappings\", null, { autoExpand: ColumnMapping })\n mappings: publish<this, ColumnMapping[]>;\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (this.source_exists() && this.validMappings().length === 0) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid mappings: \"${this.source()}\"`,\n hint: \"expected minimum of 1 mapping\"\n });\n }\n for (const mapping of this.validMappings()) {\n retVal = retVal.concat(mapping.validate(`${prefix}.${this.source()}.mappings`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.source() && this.validMappings().length > 0;\n }\n\n toDDL(): DDL2.IFilterCondition {\n return {\n viewID: this.source(),\n mappings: this.ddlMappings()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterCondition): this {\n return this\n .source(ddl.viewID)\n .ddlMappings(ddl.mappings)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterCondition): RemoteFilter {\n return new RemoteFilter().fromDDL(ddl);\n }\n\n ddlMappings(): DDL2.IMapping[];\n ddlMappings(_: DDL2.IMapping[]): this;\n ddlMappings(_?: DDL2.IMapping[]): DDL2.IMapping[] | this {\n if (!arguments.length) return this.validMappings().map(mapping => mapping.toDDL());\n this.mappings(_.map(mapping => ColumnMapping.fromDDL(mapping)));\n return this;\n }\n\n visualizationIDs() {\n return this._owner.visualizationIDs();\n }\n\n hash(): string {\n return hashSum({\n source: this.source(),\n mappings: this.validMappings().map(mapping => mapping.hash()),\n selection: this.sourceSelection()\n });\n }\n\n validMappings(): ColumnMapping[] {\n return this.mappings().filter(mapping => mapping.valid());\n }\n\n appendMappings(mappings: Array<{ remoteField: string, localField: string, condition: DDL2.IMappingConditionType }>): this {\n for (const mapping of mappings) {\n this.mappings().push(new ColumnMapping()\n .owner(this)\n .remoteField(mapping.remoteField)\n .localField(mapping.localField)\n .condition(mapping.condition)\n );\n }\n return this;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._owner.inFields();\n }\n\n sourceViz(): Element {\n return this._owner.visualization(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n createFilter(): (localRow: any) => boolean {\n const selection = this.sourceSelection();\n const mappingFilters = this.validMappings().map(mapping => mapping.createFilter(selection));\n return (row: object): boolean => mappingFilters.every(mappingFilter => mappingFilter(row));\n }\n\n createFilterDescription(): string {\n const selection = this.sourceSelection();\n const mappingFilterDescs = this.validMappings().map(mapping => mapping.createFilterDescription(selection));\n return mappingFilterDescs.join(\", \");\n }\n}\nRemoteFilter.prototype._class += \" Filter\";\n\nexport class StaticFilter extends PropertyExt {\n private _owner: Filters;\n\n @publish(null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n validate: (w: StaticFilter): boolean => w.localFields().indexOf(w.localField()) >= 0\n })\n localField: publish<this, string>;\n localField_exists: () => boolean;\n localField_valid: () => boolean;\n @publish(\"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\"])\n condition: publish<this, DDL2.IMappingConditionType>;\n @publish(\"\", \"any\", \"Static Value\")\n value: publish<this, string | number | boolean>;\n value_exists: () => boolean;\n value_valid: () => boolean;\n @publish(\"number\", \"set\", \"Static Value Type\", [\"number\", \"string\"])\n valueType: publish<this, \"number\" | \"string\">;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n coerceValue(): string | number;\n coerceValue(_: string | number): this;\n coerceValue(_?: string | number): string | number | this {\n if (arguments.length === 0) {\n switch (this.valueType()) {\n case \"number\":\n return +this.value();\n case \"string\":\n default:\n return \"\" + this.value();\n }\n }\n this.value(_);\n if (typeof _ === \"number\") {\n this.valueType(\"number\");\n } else {\n this.valueType(\"string\");\n }\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() && this.value_exists();\n }\n\n toDDL(): DDL2.IFilterStaticCondition {\n return {\n localFieldID: this.localField(),\n condition: this.condition(),\n value: this.coerceValue()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterStaticCondition): this {\n return this\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .coerceValue(ddl.value)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterStaticCondition): StaticFilter {\n return new StaticFilter().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n localField: this.localField(),\n condition: this.condition(),\n value: this.value(),\n valueType: this.valueType()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n createFilterDescription(): string {\n return `${this.localField()} ${this.condition()} ${this.coerceValue()}`;\n }\n\n createFilter(): (localRow: any) => boolean {\n return createFilter(this.condition(), this.localField(), this.coerceValue());\n }\n}\nStaticFilter.prototype._class += \" StaticFilter\";\n\ntype FilterT = RemoteFilter | StaticFilter;\n\nexport class Filters extends Activity {\n static Filter = RemoteFilter;\n static Mapping = ColumnMapping;\n\n @publish([], \"propertyArray\", \"Remote Filter\", null, { autoExpand: RemoteFilter })\n remoteFilter: publish<this, RemoteFilter[]>;\n\n @publish([], \"propertyArray\", \"Static Filter\", null, { autoExpand: StaticFilter })\n staticFilter: publish<this, StaticFilter[]>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validFilters()) {\n retVal = retVal.concat(filter.validate(\"filter\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IFilter {\n return {\n type: \"filter\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.IFilter): this {\n return this\n .conditions(ddl.conditions)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IFilter): Filters {\n return new Filters(ec).fromDDL(ddl);\n }\n\n conditions(): DDL2.FilterCondition[];\n conditions(_: DDL2.FilterCondition[]): this;\n conditions(_?: DDL2.FilterCondition[]): DDL2.FilterCondition[] | this {\n if (!arguments.length) return this.validFilters().map(filter => filter.toDDL());\n const remoteFilters: RemoteFilter[] = [];\n const staticFilters: StaticFilter[] = [];\n _.forEach(fc => {\n if (DDL2.isIFilterCondition(fc)) {\n remoteFilters.push(RemoteFilter.fromDDL(fc));\n } else {\n staticFilters.push(StaticFilter.fromDDL(fc));\n }\n });\n this.remoteFilter(remoteFilters);\n this.staticFilter(staticFilters);\n return this;\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs();\n }\n\n visualization(sourceID: string | PropertyExt): Element {\n return this._ec.element(sourceID);\n }\n\n // Activity overrides ---\n hash(): string {\n return hashSum(this.validFilters().map(f => {\n return {\n filter: f.hash()\n };\n }));\n }\n\n exists(): boolean {\n return this.validFilters().length > 0;\n }\n\n updatedBy(): string[] {\n return this.validRemoteFilters().map(filter => filter.source());\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const filter of this.validRemoteFilters()) {\n const filterSource = filter.sourceViz().hipiePipeline();\n const remoteFieldIDs: string[] = [];\n for (const mapping of filter.validMappings()) {\n localFieldIDs.push(mapping.localField());\n remoteFieldIDs.push(mapping.remoteField());\n }\n filterSource.resolveFields(refs, remoteFieldIDs);\n }\n super.resolveInFields(refs, localFieldIDs);\n }\n\n exec(): Promise<void> {\n return super.exec();\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const filters = this.validFilters().map(filter => filter.createFilter());\n return data.filter(row => {\n return filters.every(filter => filter(row));\n });\n }\n\n // --- --- ---\n validRemoteFilters(): RemoteFilter[] {\n return this.remoteFilter().filter(filter => filter.valid());\n }\n\n validStaticFilters(): StaticFilter[] {\n return this.staticFilter().filter(filter => filter.valid());\n }\n\n validFilters(): FilterT[] {\n return [...this.validRemoteFilters(), ...this.validStaticFilters()];\n }\n}\nFilters.prototype._class += \" Filters\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { deviation as d3Deviation, max as d3Max, mean as d3Mean, median as d3Median, min as d3Min, sum as d3Sum, variance as d3Variance } from \"d3-array\";\nimport { nest as d3Nest } from \"d3-collection\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class GroupByColumn extends PropertyExt {\n private _owner: GroupBy;\n\n @publish(undefined, \"set\", \"Field\", function (this: GroupByColumn) { return this.columns(); }, {\n optional: true,\n validate: (w: GroupByColumn): boolean => w.columns().indexOf(w.label()) >= 0\n })\n label: publish<this, string>;\n label_valid: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.label_valid()) {\n retVal.push({\n source: `${prefix}.label`,\n msg: `Invalid label: \"${this.label()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n toDDL(): string {\n return this.label();\n }\n\n fromDDL(label: string): this {\n return this\n .label(label)\n ;\n }\n\n static fromDDL(label: string): GroupByColumn {\n return new GroupByColumn().fromDDL(label);\n }\n\n hash(): string {\n return hashSum(this.label());\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n}\nGroupByColumn.prototype._class += \" GroupByColumn\";\n\n// ===========================================================================\nexport type AggrFuncCallback = (item: any) => number;\nexport type AggrFunc = (leaves: any[], callback: AggrFuncCallback) => number;\nfunction localCount(leaves: any[], callback: AggrFuncCallback): number {\n return leaves.length;\n}\n\nconst d3Aggr: { [key: string]: AggrFunc } = {\n count: localCount,\n min: d3Min,\n max: d3Max,\n mean: d3Mean,\n median: d3Median,\n variance: d3Variance,\n deviation: d3Deviation,\n sum: d3Sum\n};\n\nexport type AggregateType = \"count\" | \"min\" | \"max\" | \"sum\" | \"mean\" | \"median\" | \"variance\" | \"deviation\";\nexport class AggregateField extends PropertyExt {\n private _owner: GroupBy;\n\n @publish(null, \"string\", \"new Field ID\", null, { optional: true, disable: (w: AggregateField) => !w.hasColumn() })\n fieldID: publish<this, string>;\n @publish(\"count\", \"set\", \"Aggregation Type\", [\"count\", \"min\", \"max\", \"sum\", \"mean\", \"median\", \"variance\", \"deviation\"], { optional: true, disable: (w: AggregateField) => !w.fieldID() })\n aggrType: publish<this, AggregateType>;\n @publish(null, \"set\", \"Aggregation Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableAggrColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.aggrColumn()) >= 0\n })\n aggrColumn: publish<this, string>;\n aggrColumn_valid: () => boolean;\n @publish(null, \"set\", \"Base Count Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableBaseCountColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.baseCountColumn()) >= 0\n })\n baseCountColumn: publish<this, string>;\n baseCountColumn_valid: () => boolean;\n\n disableAggrColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() === \"count\";\n }\n\n disableBaseCountColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() !== \"mean\";\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.aggrColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid aggrColumn: \"${this.aggrColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.baseCountColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid baseCountColumn: \"${this.baseCountColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.IAggregate | DDL2.ICount {\n if (this.aggrType() === \"count\") {\n return {\n fieldID: this.fieldID(),\n type: \"count\"\n };\n }\n return {\n fieldID: this.fieldID(),\n type: this.aggrType() as DDL2.IAggregateType,\n inFieldID: this.aggrColumn(),\n baseCountFieldID: this.baseCountColumn()\n };\n }\n\n fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): this {\n const retVal = this\n .fieldID(ddl.fieldID)\n .aggrType(ddl.type)\n ;\n if (ddl.type !== \"count\") {\n retVal.aggrColumn(ddl.inFieldID);\n retVal.baseCountColumn(ddl.baseCountFieldID);\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): AggregateField {\n return new AggregateField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n label: this.fieldID(),\n aggrType: this.aggrType(),\n aggrColumn: this.aggrColumn()\n });\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n\n hasColumn() {\n return this.columns().length;\n }\n\n aggregate(values: Array<{ [key: string]: any }>) {\n return d3Aggr[this.aggrType() as string](values, leaf => +leaf[this.aggrColumn()]);\n }\n\n aggrFunc(): (leaves: any[]) => number {\n const aggrFunc = d3Aggr[this.aggrType() as string];\n const aggrColumn = this.aggrColumn();\n const baseCountColumn = this.baseCountColumn();\n if (baseCountColumn) {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn] / +leaf[baseCountColumn]);\n };\n } else {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn]);\n };\n }\n }\n}\nAggregateField.prototype._class += \" AggregateField\";\n\n// ===========================================================================\nexport class GroupBy extends Activity {\n\n @publish([], \"propertyArray\", \"Source Columns\", null, { autoExpand: GroupByColumn })\n column: publish<this, GroupByColumn[]>;\n @publish([], \"propertyArray\", \"Computed Fields\", null, { autoExpand: AggregateField })\n computedFields: publish<this, AggregateField[]>;\n @publish(false, \"boolean\", \"Show details\")\n details: publish<this, boolean>;\n @publish(false, \"boolean\", \"Show groupBy fileds in details\")\n fullDetails: publish<this, boolean>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const gbColumn of this.validGroupBy()) {\n retVal = retVal.concat(gbColumn.validate(\"GroupBy.column\"));\n }\n for (const cfs of this.validComputedFields()) {\n retVal = retVal.concat(cfs.validate(\"GroupBy.computedFields\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IGroupBy {\n return {\n type: \"groupby\",\n groupByIDs: this.fieldIDs(),\n aggregates: this.aggregates()\n };\n }\n\n fromDDL(ddl: DDL2.IGroupBy): this {\n return this\n .fieldIDs(ddl.groupByIDs)\n .aggregates(ddl.aggregates)\n ;\n }\n\n static fromDDL(ddl: DDL2.IGroupBy): GroupBy {\n return new GroupBy().fromDDL(ddl);\n }\n\n fieldIDs(): string[];\n fieldIDs(_: string[]): this;\n fieldIDs(_?: string[]): string[] | this {\n if (!arguments.length) return this.validGroupBy().map(gb => gb.toDDL());\n this.column(_.map(fieldID => GroupByColumn.fromDDL(fieldID)));\n return this;\n }\n\n aggregates(): DDL2.AggregateType[];\n aggregates(_: DDL2.AggregateType[]): this;\n aggregates(_?: DDL2.AggregateType[]): DDL2.AggregateType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(aggrType => AggregateField.fromDDL(aggrType)));\n return this;\n }\n\n // Activity\n hash(): string {\n return hashSum({\n groupBy: this.column().map(gb => gb.hash()),\n computedFields: this.computedFields().map(cf => cf.hash())\n });\n }\n\n appendGroupBys(columns: [{ field: string }]): this {\n for (const column of columns) {\n this.column().push(new GroupByColumn()\n .owner(this)\n .label(column.field)\n );\n }\n return this;\n }\n\n validGroupBy(): GroupByColumn[] {\n return this.column().filter(groupBy => groupBy.valid());\n }\n\n exists(): boolean {\n return this.validGroupBy().length > 0;\n }\n\n inFieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n\n appendComputedFields(aggregateFields: [{ label: string, type: AggregateType, column?: string }]): this {\n for (const aggregateField of aggregateFields) {\n const aggrField = new AggregateField()\n .owner(this)\n .fieldID(aggregateField.label)\n .aggrType(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.aggrColumn(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n const retVal: DDL2.IField[] = [];\n const groups: GroupByColumn[] = this.validGroupBy();\n for (const groupBy of groups) {\n const groupByField = this.field(groupBy.label());\n const field = {\n type: groupByField ? groupByField.type : \"string\",\n id: groupBy.label()\n } as DDL2.IField;\n retVal.push(field);\n }\n for (const cf of this.computedFields()) {\n if (cf.fieldID()) {\n const computedField: DDL2.IField = {\n id: cf.fieldID(),\n type: \"number\"\n };\n retVal.push(computedField);\n }\n }\n if (this.details()) {\n let detailsTarget: DDL2.IField[] = retVal;\n if (this.exists()) {\n const rows: DDL2.IField = {\n id: \"values\",\n type: \"dataset\",\n children: []\n };\n retVal.push(rows);\n detailsTarget = rows.children;\n }\n const columns = groups.map(groupBy => groupBy.label());\n detailsTarget.push(...this.inFields().filter(field => {\n return this.fullDetails() || columns.indexOf(field.id) < 0;\n }));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const gb of this.validGroupBy()) {\n fieldIDs.push(gb.label());\n }\n for (const cf of this.validComputedFields()) {\n if (cf.aggrColumn()) {\n fieldIDs.push(cf.aggrColumn());\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const columnLabels: string[] = this.validGroupBy().map(gb => gb.label());\n const computedFields = this.validComputedFields().map(cf => {\n return { label: cf.fieldID(), aggrFunc: cf.aggrFunc() };\n });\n const retVal = d3Nest()\n .key((row: { [key: string]: any }) => {\n let key = \"\";\n for (const groupByLabel of columnLabels) {\n key += \":\" + row[groupByLabel];\n }\n return key;\n })\n .entries(data as object[]).map(_row => {\n const row: {\n [key: string]: any\n } = _row;\n delete row.key;\n for (const groupByLabel of columnLabels) {\n row[groupByLabel] = row.values[0][groupByLabel];\n }\n for (const cf of computedFields) {\n row[cf.label] = cf.aggrFunc(row.values);\n }\n return row;\n })\n ;\n const outFields = this.outFields();\n return retVal.map(row => {\n const retVal = {};\n for (const field of outFields) {\n retVal[field.id] = row[field.id];\n }\n return retVal;\n });\n }\n}\nGroupBy.prototype._class += \" GroupBy\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Activity } from \"./activity\";\n\nexport class Limit extends Activity {\n\n @publish(undefined, \"number\", \"Limit output\")\n rows: publish<this, number | undefined>;\n rows_exists: () => boolean;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ILimit {\n return {\n type: \"limit\",\n limit: this.rows()\n };\n }\n\n fromDDL(ddl: DDL2.ILimit): this {\n return this\n .rows(ddl.limit)\n ;\n }\n\n static fromDDL(ddl: DDL2.ILimit): Limit {\n return new Limit().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n limit: this.rows()\n });\n }\n\n exists(): boolean {\n return this.rows_exists() && this.rows() > 0;\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.slice(0, Math.min(this.rows(), data.length));\n }\n}\nLimit.prototype._class += \" Limit\";\n","import { PropertyExt, publish, Utility } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class ComputedMapping extends PropertyExt {\n protected _owner: ComputedField;\n\n @publish(null, \"any\", \"Compare Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n })\n value: publish<this, any>;\n value_valid: () => boolean;\n @publish(null, \"any\", \"New Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n })\n newValue: publish<this, any>;\n newValue_valid: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n if (!this.newValue_valid()) {\n retVal.push({\n source: `${prefix}.newValue`,\n msg: `Invalid value: \"${this.newValue()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): ComputedField;\n owner(_: ComputedField): this;\n owner(_?: ComputedField): ComputedField | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.value() && !!this.newValue();\n }\n\n toDDL(): DDL2.IMapMapping {\n return {\n value: this.value(),\n newValue: this.newValue()\n };\n }\n\n fromDDL(ddl: DDL2.IMapMapping): this {\n return this\n .value(ddl.value)\n .newValue(ddl.newValue)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapMapping): ComputedMapping {\n return new ComputedMapping().fromDDL(ddl);\n }\n}\nComputedMapping.prototype._class += \" ComputedMapping\";\n\nexport type ComputedType = \"=\" | \"*\" | \"/\" | \"+\" | \"-\" | \"scale\" | \"template\" | \"map\";\n\nexport interface IComputedFieldOwner extends PropertyExt {\n fieldIDs(): string[];\n field(fieldID: string): DDL2.IField | null;\n}\n\nexport class ComputedField extends PropertyExt {\n private _owner: IComputedFieldOwner;\n\n @publish(null, \"string\", \"Label\", null, { optional: true })\n label: publish<this, string>;\n @publish(\"mapping\", \"set\", \"Project type\", [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"template\", \"map\"], { optional: true, disable: w => !w.label() })\n type: publish<this, ComputedType>;\n @publish(null, \"set\", \"Param 1\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn1(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column1()) >= 0\n })\n column1: publish<this, string>;\n column1_valid: () => boolean;\n @publish(null, \"set\", \"Param 2\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn2(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column2()) >= 0\n })\n column2: publish<this, string>;\n column2_valid: () => boolean;\n @publish(null, \"number\", \"Const value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"scale\"].indexOf(w.type()) < 0 })\n constValue: publish<this, number>;\n @publish(null, \"string\", \"template\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"template\"].indexOf(w.type()) < 0 })\n template: publish<this, string>;\n @publish(null, \"any\", \"Default Value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"map\"].indexOf(w.type()) < 0 })\n default: publish<this, any>;\n @publish([], \"propertyArray\", \"Mapped Values\", null, { autoExpand: ComputedMapping, disable: (w: ComputedField) => w.disableMapping() })\n mapping: publish<this, ComputedMapping[]>;\n @publish([], \"propertyArray\", \"Child Fields\", null, { autoExpand: ComputedField, disable: (w: ComputedField) => w.disableChildField() })\n childField: publish<this, ComputedField[]>;\n\n disableColumn1(): boolean {\n return !this.label() || [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"map\"].indexOf(this.type()) < 0;\n }\n\n disableColumn2(): boolean {\n return !this.label() || [\"*\", \"/\", \"+\", \"-\"].indexOf(this.type()) < 0;\n }\n\n disableMapping(): boolean {\n return !this.label() || [\"map\"].indexOf(this.type()) < 0;\n }\n\n disableChildField(): boolean {\n return !this.hasChildren();\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.column1_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column1: \"${this.column1()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.column2_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column2: \"${this.column2()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.disableMapping()) {\n this.validComputedMappings().forEach(cm => cm.validate(`${prefix}.mapping`));\n }\n if (!this.disableChildField()) {\n this.validChildFields().forEach(cf => cf.validate(`${prefix}.childField`));\n }\n return retVal;\n }\n\n hasChildren() {\n if (!this.label()) return false;\n if (this.type() !== \"=\") return false;\n if (!this.column1()) return false;\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\" && field.children) {\n return true;\n }\n return false;\n }\n\n children(): DDL2.IField[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\") {\n return field.children;\n }\n return [];\n }\n\n constructor() {\n super();\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n validComputedMappings(): ComputedMapping[] {\n return this.mapping().filter(cf => cf.valid());\n }\n\n validChildFields() {\n return this.childField().filter(cf => cf.valid());\n }\n\n hasChildFields() {\n return this.validChildFields().length;\n }\n\n toDDL(): DDL2.MultiTransformationType {\n switch (this.type()) {\n case \"scale\":\n return {\n fieldID: this.label(),\n type: \"scale\",\n sourceFieldID: this.column1(),\n factor: this.constValue()\n };\n case \"template\":\n return {\n fieldID: this.label(),\n type: \"template\",\n template: this.template()\n };\n case \"=\":\n const transformations = this.validChildFields().map(cf => cf.toDDL());\n return {\n fieldID: this.label(),\n type: \"=\",\n sourceFieldID: this.column1(),\n transformations: transformations.length ? transformations : undefined\n };\n case \"map\":\n return {\n fieldID: this.label(),\n type: \"map\",\n sourceFieldID: this.column1(),\n default: this.default(),\n mappings: this.validComputedMappings().map(cm => cm.toDDL())\n };\n default:\n return {\n fieldID: this.label(),\n type: this.type() as DDL2.ICalculatedType,\n sourceFieldID1: this.column1(),\n sourceFieldID2: this.column2()\n };\n }\n }\n\n fromDDL(ddl: DDL2.MultiTransformationType): this {\n const retVal = this\n .label(ddl.fieldID)\n .type(ddl.type)\n ;\n switch (ddl.type) {\n case \"scale\":\n retVal\n .column1(ddl.sourceFieldID)\n .constValue(ddl.factor)\n ;\n break;\n case \"template\":\n retVal\n .template(ddl.template)\n ;\n break;\n case \"=\":\n retVal\n .column1(ddl.sourceFieldID)\n .childField(ddl.transformations ? ddl.transformations.map(transformation => ComputedField.fromDDL(transformation)) : [])\n ;\n break;\n case \"map\":\n retVal\n .column1(ddl.sourceFieldID)\n .default(ddl.default)\n .mapping(ddl.mappings ? ddl.mappings.map(mapping => ComputedMapping.fromDDL(mapping)) : [])\n ;\n break;\n default:\n retVal\n .column1(ddl.sourceFieldID1)\n .column2(ddl.sourceFieldID2)\n ;\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.MultiTransformationType): ComputedField {\n return new ComputedField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum(this.toDDL());\n }\n\n columns(): string[] {\n return this._owner.fieldIDs();\n }\n\n computedField(): DDL2.IField {\n switch (this.type()) {\n case \"=\":\n let validChildFields = this.validChildFields();\n if (validChildFields.length === 0 && this.hasChildren()) {\n // Has children but no mappings - include all children by default...\n validChildFields = this.children().map((child: DDL2.IField) => {\n return new ComputedField()\n .owner(this)\n .label(child.id)\n .type(\"=\")\n .column1(child.id)\n ;\n });\n }\n return {\n ...this._owner.field(this.column1()),\n id: this.label(),\n children: validChildFields.length ? validChildFields.map(cf => cf.computedField()) : undefined\n } as DDL2.IField;\n case \"*\":\n case \"/\":\n case \"+\":\n case \"-\":\n case \"scale\":\n return { id: this.label(), type: \"number\" };\n case \"template\":\n return { id: this.label(), type: \"string\" };\n case \"map\":\n return { id: this.label(), type: \"object\" } as DDL2.IFieldObject;\n }\n return { id: this.label(), type: \"string\" };\n }\n\n projection(trim: boolean): (row: object) => object {\n const hasComputedFields = this.hasChildFields();\n const computedFields = this.validChildFields().map(cf => {\n return {\n label: cf.label(),\n func: cf.computeFunc(trim)\n };\n });\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n retVal[\"__lparam\"] = row;\n }\n return retVal;\n };\n }\n\n computeFunc(trim: boolean): (row: any) => any {\n const column1 = this.column1();\n const column2 = this.column2();\n switch (this.type()) {\n case \"=\":\n if (this.hasChildFields()) {\n return (row: object) => {\n // TODO Move to function factory ---\n const r = row[column1].Row && isArray(row[column1].Row) ? row[column1].Row : row[column1];\n return r.map(this.projection(trim));\n };\n }\n return (row: object) => {\n return row[column1];\n };\n case \"*\":\n return (row: any) => {\n return +row[column1] * +row[column2];\n };\n case \"/\":\n return (row: any) => {\n return +row[column1] / +row[column2];\n };\n case \"+\":\n return (row: any) => {\n return +row[column1] + +row[column2];\n };\n case \"-\":\n return (row: any) => {\n return +row[column1] - +row[column2];\n };\n case \"scale\":\n const constValue = this.constValue();\n return (row: any) => {\n return +row[column1] * constValue;\n };\n case \"template\":\n const template = this.template();\n return (row: any) => {\n return Utility.template(template, row);\n };\n case \"map\":\n const defValue = this.default();\n const mappings = {};\n for (const mapping of this.mapping()) {\n mappings[mapping.value()] = mapping.newValue();\n }\n return (row: any) => {\n return mappings[row[column1]] || defValue;\n };\n default:\n return (row: any) => {\n return row[column1];\n };\n }\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n return field.children.map(field => field.id);\n case \"object\":\n return Object.keys(field.fields);\n }\n }\n return [];\n }\n\n field(fieldID: string): DDL2.IField | undefined {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n for (const f of field.children) {\n if (f.id === fieldID) {\n return f;\n }\n }\n break;\n case \"object\":\n return field.fields[fieldID];\n }\n }\n return undefined;\n }\n}\nComputedField.prototype._class += \" ComputedField\";\n// ===========================================================================\nexport class MultiField extends PropertyExt implements IComputedFieldOwner {\n private _owner: IComputedFieldOwner;\n\n @publish(\"\", \"string\", \"Label\")\n label: publish<this, string>;\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: ComputedField })\n multiFields: publish<this, ComputedField[]>;\n\n constructor() {\n super();\n }\n\n hash() {\n return hashSum(this.toDDL());\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label() && this.validMultiFields().length > 0;\n }\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validMultiFields()) {\n retVal = retVal.concat(cf.validate(`${prefix}.computedFields`));\n }\n return retVal;\n }\n\n toDDL(): DDL2.IMulti {\n return {\n fieldID: this.label(),\n type: \"multi\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IMulti): this {\n return this\n .label(ddl.fieldID)\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMulti): MultiField {\n return new MultiField().fromDDL(ddl);\n }\n\n validMultiFields(): ComputedField[] {\n return this.multiFields().filter(computedField => computedField.valid());\n }\n\n transformations(): DDL2.MultiTransformationType[];\n transformations(_: DDL2.MultiTransformationType[]): this;\n transformations(_?: DDL2.MultiTransformationType[]): DDL2.MultiTransformationType[] | this {\n if (!arguments.length) return this.validMultiFields().map(cf => cf.toDDL());\n this.multiFields(_.map(transformation => ComputedField.fromDDL(transformation)));\n return this;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this._owner.fieldIDs();\n }\n\n field(fieldID: string): DDL2.IField | null {\n return this._owner.field(fieldID);\n }\n}\nMultiField.prototype._class += \" MultiField\";\n// ===========================================================================\nexport class ProjectBase extends Activity {\n static ComputedField = ComputedField;\n\n _includeLParam = false;\n _trim = false;\n\n @publish([], \"propertyArray\", \"Computed Fields\", null, { autoExpand: ComputedField, noDeserialize: true })\n computedFields: publish<this, Array<ComputedField | MultiField>>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validComputedFields()) {\n retVal = retVal.concat(cf.validate(`${this.classID()}.computedFields`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n transformations(): DDL2.ProjectTransformationType[];\n transformations(_: DDL2.ProjectTransformationType[]): this;\n transformations(_?: DDL2.ProjectTransformationType[]): DDL2.ProjectTransformationType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(transformation => {\n switch (transformation.type) {\n case \"multi\":\n return MultiField.fromDDL(transformation);\n default:\n return ComputedField.fromDDL(transformation);\n }\n }));\n return this;\n }\n\n exists(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n // ---\n\n clearComputedFields() {\n this.computedFields([]);\n }\n\n appendComputedFields(computedFields: [{ label: string, type: ComputedType, column?: string }]): this {\n for (const aggregateField of computedFields) {\n const aggrField = new ComputedField()\n .owner(this)\n .label(aggregateField.label)\n .type(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.column1(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields() {\n return this.validComputedFields().length;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n let retVal: DDL2.IField[] = [];\n const retValMap: { [key: string]: boolean } = {};\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n const computedField = cf2.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n const computedField = cf.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n }\n if (this._trim && this.hasComputedFields()) {\n if (this._includeLParam) {\n const computedField = {\n id: \"__lparam\",\n type: \"object\"\n } as DDL2.IField;\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n retVal = retVal.concat(inFields.filter(field => !retValMap[field.id]));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n fieldIDs.push(cf2.column1());\n if (cf2.column2()) {\n fieldIDs.push(cf2.column2());\n }\n }\n } else {\n if (cf.type() === \"template\") {\n for (const fieldID of Utility.templateFields(cf.template())) {\n fieldIDs.push(fieldID);\n }\n } else {\n fieldIDs.push(cf.column1());\n if (cf.column2()) {\n fieldIDs.push(cf.column2());\n }\n }\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n projection(): (row: object) => object {\n const trim = this._trim;\n const hasComputedFields = this.hasComputedFields();\n const computedFields = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n computedFields.push({\n label: cf2.label(),\n func: cf2.computeFunc(trim)\n });\n }\n } else {\n computedFields.push({\n label: cf.label(),\n func: cf.computeFunc(trim)\n });\n }\n }\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n if (this._includeLParam) {\n retVal[\"__lparam\"] = row;\n }\n }\n return retVal;\n };\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.map(this.projection());\n }\n}\n\nexport class Project extends ProjectBase {\n\n toDDL(): DDL2.IProject {\n return {\n type: \"project\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IProject): this {\n return this.transformations(ddl.transformations);\n }\n\n static fromDDL(ddl: DDL2.IProject): Project {\n return new Project().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n}\nProject.prototype._class += \" Project\";\n\nexport class Mappings extends ProjectBase {\n\n constructor() {\n super();\n this._trim = true;\n this._includeLParam = true;\n }\n\n toDDL(): DDL2.IMappings {\n return {\n type: \"mappings\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(_ddl: DDL2.IMappings): this {\n const ddl = _ddl || { transformations: [] };\n return this\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMappings): Mappings {\n return new Mappings().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n if (this.hasComputedFields()) {\n return super.referencedFields(refs);\n }\n this.resolveInFields(refs, this.inFields().filter(f => f.id !== \"__lparam\").map(f => f.id));\n }\n}\nMappings.prototype._class += \" Mappings\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ascending as d3Ascending, descending as d3Descending } from \"d3-array\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class SortColumn extends PropertyExt {\n private _owner: Sort;\n\n @publish(null, \"set\", \"Sort Field\", function (this: SortColumn) { return this.fieldIDs(); }, {\n optional: true,\n validate: (w: SortColumn): boolean => w.fieldIDs().indexOf(w.fieldID()) >= 0\n })\n fieldID: publish<this, string>;\n fieldID_valid: () => boolean;\n @publish(false, \"boolean\", \"Sort Field\")\n descending: publish<this, boolean>;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.fieldID_valid()) {\n retVal.push({\n source: `${prefix}.fieldID`,\n msg: `Invalid fieldID: ${this.fieldID()}`,\n hint: `expected ${JSON.stringify(this.fieldIDs())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Sort;\n owner(_: Sort): this;\n owner(_?: Sort): Sort | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.ISortCondition {\n return {\n fieldID: this.fieldID(),\n descending: this.descending()\n };\n }\n\n fromDDL(ddl: DDL2.ISortCondition): this {\n return this\n .fieldID(ddl.fieldID)\n .descending(ddl.descending)\n ;\n }\n\n static fromDDL(ddl: DDL2.ISortCondition): SortColumn {\n return new SortColumn().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n sortColumn: this.fieldID(),\n descending: this.descending()\n });\n }\n\n fieldIDs() {\n return this._owner.fieldIDs();\n }\n\n field(id: string): DDL2.IField | undefined {\n return this._owner.inFields().filter(field =>\n field.id === id\n )[0];\n }\n}\nSortColumn.prototype._class += \" SortColumn\";\n\n// ===========================================================================\nexport class Sort extends Activity {\n static Column = SortColumn;\n\n @publish([], \"propertyArray\", \"Source Columns\", null, { autoExpand: SortColumn })\n column: publish<this, SortColumn[]>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const sb of this.validSortBy()) {\n retVal = retVal.concat(sb.validate(\"Sort.column\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ISort {\n return {\n type: \"sort\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.ISort): this {\n this.conditions(ddl.conditions);\n return this;\n }\n\n static fromDDL(ddl: DDL2.ISort) {\n return new Sort().fromDDL(ddl);\n }\n\n conditions(): DDL2.ISortCondition[];\n conditions(_: DDL2.ISortCondition[]): this;\n conditions(_?: DDL2.ISortCondition[]): DDL2.ISortCondition[] | this {\n if (!arguments.length) return this.validSortBy().map(column => column.toDDL());\n this.column(_.map(condition => SortColumn.fromDDL(condition)));\n return this;\n }\n\n // Activitiy ---\n hash(): string {\n return hashSum({\n Sort: this.column().map(sb => sb.hash())\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n super.resolveInFields(refs, this.validSortBy().map(sortBy => sortBy.fieldID()));\n }\n\n validSortBy(): SortColumn[] {\n return this.column().filter(sortBy => sortBy.fieldID());\n }\n\n exists(): boolean {\n return this.validSortBy().length > 0;\n }\n\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n const sortByArr: Array<{ compare: (l, r) => number, id: string }> = [];\n for (const sortBy of this.validSortBy()) {\n sortByArr.push({\n compare: sortBy.descending() ? d3Descending : d3Ascending,\n id: sortBy.fieldID()\n });\n }\n\n if (sortByArr.length) {\n return [...data].sort((l: any, r: any) => {\n for (const item of sortByArr) {\n const retVal2 = item.compare(l[item.id], r[item.id]);\n if (retVal2 !== 0) {\n return retVal2;\n }\n }\n return 0;\n });\n\n }\n return data;\n }\n}\nSort.prototype._class += \" Sort\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { Activity, ActivityPipeline } from \"./activity\";\nimport { DatasourceRefType } from \"./datasource\";\nimport { DSPicker } from \"./dspicker\";\nimport { Filters } from \"./filter\";\nimport { GroupBy } from \"./groupby\";\nimport { Limit } from \"./limit\";\nimport { Project } from \"./project\";\nimport { Sort } from \"./sort\";\n\nexport class HipiePipeline extends ActivityPipeline {\n\n @publish(null, \"widget\", \"Data Source 2\")\n _datasource: DSPicker | DatasourceRefType;\n datasource(): DSPicker | DatasourceRefType;\n datasource(_: DSPicker | DatasourceRefType): this;\n datasource(_?: DSPicker | DatasourceRefType): DSPicker | DatasourceRefType | this {\n if (!arguments.length) return this._datasource;\n this._datasource = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Client Filters\")\n _filters: Filters;\n filters(): Filters;\n filters(_: Filters): this;\n filters(_?: Filters): Filters | this {\n if (!arguments.length) return this._filters;\n this._filters = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Project\")\n _project: Project;\n project(): Project;\n project(_: Project): this;\n project(_?: Project): Project | this {\n if (!arguments.length) return this._project;\n this._project = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Group By\")\n _groupBy: GroupBy;\n groupBy(): GroupBy;\n groupBy(_: GroupBy): this;\n groupBy(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._groupBy;\n this._groupBy = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Sort\")\n _sort: Sort;\n sort(): Sort;\n sort(_: Sort): this;\n sort(_?: Sort): Sort | this {\n if (!arguments.length) return this._sort;\n this._sort = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Limit output\")\n _limit: Limit;\n limit(): Limit;\n limit(_: Limit): this;\n limit(_?: Limit): Limit | this {\n if (!arguments.length) return this._limit;\n this._limit = _;\n this.updateSequence();\n return this;\n }\n\n constructor(private _ec: ElementContainer, viewID: string) {\n super();\n this._id = viewID;\n this._datasource = new DSPicker(this._ec);\n this._filters = new Filters(this._ec);\n this._project = new Project();\n this._groupBy = new GroupBy();\n this._sort = new Sort();\n this._limit = new Limit();\n this.updateSequence();\n }\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n const retVal = super.activities.apply(this, arguments);\n return retVal;\n }\n\n private updateSequence() {\n this.activities([\n this.datasource() as Activity,\n this.filters(),\n this.project(),\n this.groupBy(),\n this.sort(),\n this.limit()\n ]);\n }\n\n selectionFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n}\n","import { HipiePipeline } from \"./hipiepipeline\";\n\nexport class NullView extends HipiePipeline {\n hash(): string {\n return super.hash();\n }\n\n _fetch(from: number, count: number): Promise<any[]> {\n return Promise.resolve([]);\n }\n}\nNullView.prototype._class += \" NullView\";\n","import { Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { ChartPanel, Modal } from \"@hpcc-js/layout\";\n\nexport interface IVizPopupPanelOwner {\n vizActivation(viz);\n}\n\nexport class VizPopupPanel extends Modal {\n\n private _owner: IVizPopupPanelOwner;\n private _ownerLParam;\n\n constructor(owner: IVizPopupPanelOwner, ownerLParam) {\n super();\n this._owner = owner;\n this._ownerLParam = ownerLParam;\n this._drawStartPos = \"origin\";\n this.visible(false);\n this.minHeight_default(\"240px\");\n this.minWidth_default(\"320px\");\n this.overflowY_default(\"hidden\");\n }\n\n private _host: VizChartPanel;\n host(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._host;\n if (this._host && this._host !== _) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n this._host = _;\n this._owner.vizActivation(this._ownerLParam);\n return this;\n }\n\n enter(domNode, element) {\n domNode.parentElement.style.position = \"absolute\";\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n this.title(widgetTitle);\n (this.widget() as ChartPanel).titleVisible(false);\n }\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n this.fixedTop(this._pos.y + \"px\");\n this.fixedLeft(this._pos.x + \"px\");\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n (this.widget() as ChartPanel).titleVisible(true);\n }\n }\n\n closeModal() {\n super.closeModal();\n if (this._host) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n }\n}\nVizPopupPanel.prototype._class += \" marshaller_VizPopupPanel\";\n\nexport interface VizPopupPanel {\n widget(_: Widget): this;\n widget(): Widget;\n widget_exists(): boolean;\n minHeight_default(_: string);\n minWidth_default(_: string);\n overflowY_default(_: string);\n}\n\n// ===========================================================================\n\nexport interface VizChartPanel {\n}\n\nexport class VizChartPanel extends ChartPanel {\n\n private _popup: VizPopupPanel;\n _togglePopup = new ToggleButton().faChar(\"fa-filter\").tooltip(\"Filter\")\n .on(\"click\", () => {\n this._popup.host(this);\n const dp = this.locateClosestAncestor([\"marshaller_DashboardDockPanel\", \"marshaller_DashboardGrid\"]);\n const dpBBox = dp.getBBox(true);\n const cp = this._popup.widget() as VizChartPanel;\n const tbBBox = this._togglePopup.getBBox();\n this._popup\n .pos({\n x: -dpBBox.x + tbBBox.x + tbBBox.width - cp.minWidth(),\n y: -dpBBox.y + tbBBox.y + tbBBox.height\n })\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .visible(this._togglePopup.selected())\n .render((popup: any) => {\n const widgetSelector = \"#\" + popup.id() + \" .layout_Carousel .common_Widget\";\n const node = popup.element().node();\n if (node) {\n const { height, width } = node.querySelector(widgetSelector).getBoundingClientRect();\n popup.resizeBodySync(width, height);\n }\n })\n ;\n });\n\n private _origButtons: Widget[];\n private _filterButtons: Widget[];\n\n constructor() {\n super();\n\n this._origButtons = this.buttons();\n this._filterButtons = [this._togglePopup, new Spacer(), ...this._origButtons];\n }\n\n popup(_?: VizPopupPanel): VizPopupPanel | this {\n if (!arguments.length) return this._popup;\n this._popup = _;\n if (!this._popup) {\n this._togglePopup.selected(false);\n }\n this.buttons(this._popup ? this._filterButtons : this._origButtons);\n return this;\n }\n}\nVizChartPanel.prototype._class += \" marshaller_VizChartPanel\";\n\nexport interface VizChartPanel {\n minWidth(): number;\n minWidth(_: number): this;\n minWidth(_: number): this;\n minWidth_exists(): boolean;\n minHeight(): number;\n minHeight(_: number): this;\n minHeight_exists(): boolean;\n}\nVizChartPanel.prototype.publish(\"descriptionTemplate\", \"\", \"string\");\nVizChartPanel.prototype.publish(\"minWidth\", 320, \"number\", \"Min Width\");\nVizChartPanel.prototype.publish(\"minHeight\", 240, \"number\", \"Min Height\");\n","import { Area, Bar, Bubble, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud } from \"@hpcc-js/chart\";\nimport { Database, EntityRectList, InputField, PropertyExt, publish, publishProxy, Widget } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { FieldForm } from \"@hpcc-js/form\";\nimport { AdjacencyGraph, DataGraph } from \"@hpcc-js/graph\";\nimport { ChoroplethCounties, ChoroplethStates, Leaflet } from \"@hpcc-js/map\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { HipiePipeline } from \"../activities/hipiepipeline\";\nimport { ComputedField, Mappings, MultiField } from \"../activities/project\";\nimport { ElementContainer } from \"./element\";\nimport { VizChartPanel } from \"./vizChartPanel\";\n\nexport type VizType = \"Table\" | \"FieldForm\" |\n \"Area\" | \"Bubble\" | \"Bar\" | \"Column\" | \"Contour\" | \"HexBin\" | \"Line\" | \"Pie\" | \"WordCloud\" | \"Radar\" | \"RadialBar\" | \"Scatter\" | \"Step\" |\n \"USCountiesChoropleth\" | \"USStatesChoropleth\" | \"ClusterPins\" |\n \"EntityRectList\" | \"AdjacencyGraph\" | \"DataGraph\";\nconst VizTypeMap: { [key: string]: new (...args: any[]) => object } = {\n Table, FieldForm,\n Area, Bubble, Bar, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud,\n USCountiesChoropleth: ChoroplethCounties, USStatesChoropleth: ChoroplethStates, ClusterPins: Leaflet.ClusterPins,\n EntityRectList, AdjacencyGraph, DataGraph\n};\nexport const VizTypeSet = [];\nfor (const key in VizTypeMap) {\n VizTypeSet.push(key);\n}\n\nfunction typeClass(type: VizType): any {\n const retVal = VizTypeMap[type];\n return retVal || Table;\n}\n\nfunction typeNew(type: VizType): Widget {\n const ChartClass = VizTypeMap[type];\n const retVal = new (ChartClass || Table)() as Widget;\n\n // Override default properties as needed ---\n if (retVal instanceof FieldForm) {\n retVal\n .validate(false)\n .allowEmptyRequest(true)\n ;\n } else if (retVal instanceof AdjacencyGraph) {\n retVal\n .uidColumn(\"uid\")\n .labelColumn(\"label\")\n .iconColumn(\"icon\")\n .linksColumn(\"links\")\n .linkUidColumn(\"uid\")\n .linkLabelColumn(\"label\")\n ;\n }\n return retVal;\n}\n\nfunction typeInputs(type: VizType): InputField[] {\n return typeClass(type).__inputs || [];\n}\n\nexport class Visualization extends PropertyExt {\n @publishProxy(\"_chartPanel\")\n title: publish<this, string>;\n @publishProxy(\"_chartPanel\")\n description: publish<this, string>;\n @publish(DDL2.VisibilitySet[0], \"set\", \"Type\", DDL2.VisibilitySet)\n _visibility: DDL2.VisibilityType;\n visibility(): DDL2.VisibilityType;\n visibility(_: DDL2.VisibilityType): this;\n visibility(_?: DDL2.VisibilityType): DDL2.VisibilityType | this {\n if (!arguments.length) return this._visibility;\n if (this._visibility !== _) {\n this.chartPanel().target(null);\n }\n this._visibility = _;\n return this;\n }\n\n @publish(\"Table\", \"set\", \"Type\", VizTypeSet)\n _chartType: VizType;\n chartType(): VizType;\n chartType(_: VizType, props?: { [prop: string]: any }): this;\n chartType(_?: VizType, props?: { [prop: string]: any }): VizType | this {\n if (!arguments.length) return this._chartType;\n if (VizTypeSet.indexOf(_) === -1) {\n _ = \"Table\";\n }\n this._chartType = _;\n this.typeChanged();\n if (props) {\n const widget = this.chartPanel().widget();\n for (const prop in props) {\n if (typeof widget[prop] === \"function\") {\n widget[prop](props[prop]);\n }\n }\n }\n return this;\n }\n\n @publish(null, \"set\", \"Secondary Data View (e.g. graph edges)\", function (this: Visualization) { return this.visualizationIDs(); }, { optional: true })\n secondaryDataviewID: publish<this, string>;\n secondaryDataviewID_exists: () => boolean;\n secondaryDataviewID_valid: () => boolean;\n\n @publish(null, \"widget\", \"Mappings\", undefined, { render: false, internal: true })\n mappings: publish<this, Mappings>;\n @publish([], \"widget\", \"Widget\")\n _chartPanel: VizChartPanel;\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n chartPanel(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._chartPanel;\n this._chartPanel = _;\n this._chartPanel\n .on(\"click\", (row: any, col: string, sel: boolean, more) => this.click(row, col, sel, more))\n .on(\"vertex_click\", (row: any, col: string, sel: boolean) => this.vertex_click(row, col, sel))\n ;\n for (const key in VizTypeMap) {\n if (this._chartPanel.widget() instanceof VizTypeMap[key]) {\n this._chartType = key as VizType;\n break;\n }\n }\n return this;\n }\n\n protected _hipiePipeline: HipiePipeline;\n constructor(protected _ec: ElementContainer, hipiePipeline: HipiePipeline) {\n super();\n this._hipiePipeline = hipiePipeline;\n this.mappings(new Mappings());\n this.chartPanel(new VizChartPanel());\n this.typeChanged();\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs().filter(id => id !== this.id());\n }\n\n _prevChartType;\n typeChanged() {\n if (this._prevChartType !== this._chartType) {\n this._prevChartType = this._chartType;\n this.refreshMappings();\n const chart = typeNew(this._chartType);\n this.chartPanel().widget(chart);\n }\n }\n\n properties(): DDL2.IWidgetProperties;\n properties(_: DDL2.IWidgetProperties): this;\n properties(_?: DDL2.IWidgetProperties): DDL2.IWidgetProperties | this {\n if (!arguments.length) return this.chartPanel().serialize();\n this.chartPanel().deserialize(_);\n\n return this;\n }\n\n refreshMappings(): this {\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n const cfs = mappings.validComputedFields();\n const inFields = mappings.inFields();\n const taken = {};\n mappings.computedFields(typeInputs(this._chartType).map((input, idx) => {\n let retVal: MultiField | ComputedField = cfs[idx];\n if (retVal) {\n if (retVal instanceof MultiField) {\n } else {\n retVal.label(input.id);\n }\n } else {\n if (input.multi) {\n retVal = new MultiField()\n .owner(mappings)\n .label(input.id)\n ;\n const computedFields: ComputedField[] = [];\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n computedFields.push(new ComputedField()\n .label(inField.id)\n .type(\"=\")\n .column1(inField.id)\n );\n }\n }\n retVal.multiFields(computedFields);\n } else {\n retVal = new ComputedField()\n .owner(mappings)\n .label(input.id)\n .type(\"=\")\n ;\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n retVal.column1(inField.id);\n break;\n }\n }\n }\n }\n return retVal;\n }));\n return this;\n }\n\n _prevFields: ReadonlyArray<DDL2.IField> = [];\n _prevLinkFields: ReadonlyArray<DDL2.IField> = [];\n _prevData: ReadonlyArray<object> = [];\n refreshData(): Promise<void> {\n const mappings = this.mappings();\n\n const fields = mappings.outFields();\n const dbFields = this.toDBFields(fields);\n let linkFields: ReadonlyArray<DDL2.IField>;\n let dbLinkFields = [];\n const se = this._ec.element(this.secondaryDataviewID());\n if (se) {\n linkFields = se.mappings().outFields();\n dbLinkFields = this.toDBFields(linkFields);\n }\n\n const fieldsChanged = this._prevFields !== fields || this._prevLinkFields !== linkFields;\n if (fieldsChanged) {\n this._prevFields = fields;\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertexColumns(dbFields.map(f => f.label()));\n dataGraph.edgeColumns(dbLinkFields.map(f => f.label()));\n } else {\n this.chartPanel().fields(dbFields.filter(f => f.id() !== \"__lparam\"));\n }\n } else {\n console.warn(`***${this.id()} Immutable Fields***`);\n }\n\n const data = mappings.outData();\n const dataChanged = this._prevData !== data;\n if (dataChanged) {\n this._prevData = data;\n const mappedData = this.toDBData(dbFields, data);\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertices(mappedData);\n if (se) {\n const linkData = se.mappings().outData();\n const mappedLinkData = this.toDBData(dbLinkFields, linkData);\n dataGraph.edges(mappedLinkData);\n }\n } else {\n this.chartPanel().data(mappedData);\n }\n } else {\n console.warn(`${this.id()} Immutable Data!`);\n }\n\n if (fieldsChanged || dataChanged) {\n return this.chartPanel().renderPromise().then(() => { });\n }\n return Promise.resolve();\n }\n\n private fieldTypeTodbFieldType(type: DDL2.IFieldType): Database.FieldType {\n switch (type) {\n case \"dataset\":\n return \"nested\";\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n default:\n return \"string\";\n }\n }\n\n toDBFields(fields: ReadonlyArray<DDL2.IField>): Database.Field[] {\n const retVal: Database.Field[] = [];\n for (const field of fields || []) {\n const f = new Database.Field()\n .type(this.fieldTypeTodbFieldType(field.type))\n .id(field.id)\n .label(field.id)\n ;\n switch (field.type) {\n case \"dataset\":\n f.children(this.toDBFields(field.children));\n break;\n case \"object\":\n // TODO: For __lparam we should do nothing - not 100% if that is correct for \"real\" data (we don't really support \"object\" anyway)?\n break;\n }\n retVal.push(f);\n }\n return retVal;\n }\n\n toDBData(fields: Database.Field[], data: ReadonlyArray<object> | Readonly<object>) {\n const _data: ReadonlyArray<object> = isArray(data) ? data : [data];\n return _data.map((row: any) => {\n const retVal = [];\n for (const field of fields) {\n if (field.type() === \"nested\") {\n retVal.push(this.toDBData(field.children() as Database.Field[], row[field.id()].Row || row[field.id()]));\n } else {\n retVal.push(row[field.label()]);\n }\n }\n return retVal;\n });\n }\n\n exec(): Promise<void[]> {\n const promises = [];\n if (this.secondaryDataviewID_exists()) {\n const secondaryElementID = this.secondaryDataviewID();\n const secondaryElement = this._ec.element(secondaryElementID);\n if (secondaryElement) {\n promises.push(secondaryElement.visualization().exec());\n }\n }\n\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n promises.push(mappings.refreshMeta().then(() => {\n return mappings.exec();\n }));\n\n return Promise.all(promises);\n }\n\n refresh(): Promise<void> {\n this.chartPanel().startProgress && this.chartPanel().startProgress();\n return this.exec().then(() => {\n this.chartPanel().finishProgress && this.chartPanel().finishProgress();\n return this.refreshData();\n });\n }\n\n // Events ---\n click(row: any, col: string, sel: boolean, more?) {\n }\n\n vertex_click(row: any, col: string, sel: boolean) {\n }\n}\nVisualization.prototype._class += \" Visualization\";\n","import { PropertyExt, publish, Widget } from \"@hpcc-js/common\";\nimport { IOptionsSend } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { find, hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError } from \"../activities/activity\";\nimport { emptyDatabomb } from \"../activities/databomb\";\nimport { DatasourceRefType } from \"../activities/datasource\";\nimport { HipiePipeline } from \"../activities/hipiepipeline\";\nimport { Mappings } from \"../activities/project\";\nimport { Visualization } from \"./visualization\";\nimport { VizChartPanel } from \"./vizChartPanel\";\n\nexport class State extends PropertyExt {\n\n constructor() {\n super();\n this.selection([]);\n }\n\n set(_: Array<{ [key: string]: any }>): boolean {\n const currSelHash = hashSum(this.selection());\n const newSelHash = hashSum(_);\n if (currSelHash !== newSelHash) {\n this.selection(_);\n return true;\n }\n return false;\n }\n\n removeInvalid(data: ReadonlyArray<object>): boolean {\n const currSelection = this.selection();\n const newSelection: object[] = [];\n for (const selRow of currSelection) {\n if (find(data, (row: { [key: string]: any }, index): boolean => {\n for (const column in selRow) {\n if (selRow[column] !== row[column]) {\n return false;\n }\n }\n return true;\n })) {\n newSelection.push(selRow);\n }\n }\n if (newSelection.length !== currSelection.length) {\n this.selection(newSelection);\n return true;\n }\n return false;\n }\n}\nState.prototype._class += \" State\";\nexport interface State {\n selection(): Array<{ [key: string]: any }>;\n selection(_: Array<{ [key: string]: any }>): this;\n}\nState.prototype.publish(\"selection\", [], \"array\", \"State\");\n\nlet vizID = 0;\nexport class Element extends PropertyExt {\n private _vizChartPanel: Visualization;\n\n // @publishProxy(\"_MultiChartPanel\")\n // title: publish<this, string>;\n @publish(null, \"widget\", \"Data View\")\n hipiePipeline: publish<this, HipiePipeline>;\n @publish(null, \"widget\", \"Visualization\")\n _visualization: Visualization;\n visualization(): Visualization;\n visualization(_: Visualization): this;\n visualization(_?: Visualization): Visualization | this {\n if (!arguments.length) return this._visualization;\n this._visualization = _;\n this._visualization\n .on(\"click\", (_row: object | object[], col: string, sel: boolean, more?) => {\n if (more && more.selection) {\n this.selection(sel ? more.selection.map(r => r.__lparam || r) : []);\n } else {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n }\n })\n .on(\"vertex_click\", (_row: object | object[], col: string, sel: boolean) => {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n })\n ;\n return this;\n }\n @publish(null, \"widget\", \"State\")\n state: publish<this, State>;\n\n constructor(private _ec: ElementContainer) {\n super();\n while (true) {\n vizID++;\n this._id = `e_${vizID}`;\n if (!this._ec.elementExists(this._id)) {\n break;\n }\n }\n const view = new HipiePipeline(this._ec, this._id);\n this.hipiePipeline(view);\n this._vizChartPanel = new Visualization(this._ec, this.hipiePipeline())\n .id(`viz_${vizID}`)\n .title(`Element ${vizID}`)\n ;\n this._vizChartPanel.chartPanel().id(`cp_${vizID}`);\n this.visualization(this._vizChartPanel);\n this.state(new State());\n }\n\n id(): string;\n id(_: string): this;\n id(_?: string): string | this {\n const retVal = super.id.apply(this, arguments);\n if (arguments.length) {\n this._vizChartPanel.id(_);\n }\n return retVal;\n }\n\n chartType(): string {\n return this._vizChartPanel.chartType();\n }\n\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n chartPanel(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._vizChartPanel.chartPanel();\n this._vizChartPanel.chartPanel(_);\n return this;\n }\n\n chart(): Widget {\n return this._vizChartPanel.chartPanel().widget();\n }\n\n mappings(): Mappings;\n mappings(_: Mappings): this;\n mappings(_?: Mappings): Mappings | this {\n if (!arguments.length) return this._vizChartPanel.mappings();\n this._vizChartPanel.mappings(_);\n return this;\n }\n\n pipeline(activities: Activity[]): this {\n this.hipiePipeline()\n .activities(activities)\n ;\n return this;\n }\n\n updatedBy(): string[] {\n const retVal = this.hipiePipeline().updatedBy();\n if (this.visualization().secondaryDataviewID_exists()) {\n retVal.push(this.visualization().secondaryDataviewID());\n }\n return retVal;\n }\n\n dataProps(): PropertyExt {\n return this.hipiePipeline();\n }\n\n vizProps(): Widget {\n return this.visualization().chartPanel();\n }\n\n stateProps(): PropertyExt {\n return this.state();\n }\n\n private _errors: IElementError[] = [];\n errors(): IElementError[] {\n return this._errors;\n }\n\n validate(): IElementError[] {\n if (!this._initialized) {\n return [];\n }\n this._errors = [];\n const pipeline = this.hipiePipeline();\n for (const activity of [...pipeline.activities(), this.mappings()]) {\n for (const error of activity.validate()) {\n this._errors.push({\n elementID: this.id(),\n ...error\n });\n }\n }\n return this._errors;\n }\n\n private _initialized = false;\n refresh(): Promise<void> {\n const filters = this.hipiePipeline().filters().validFilters();\n const desc: string[] = filters.map(f => f.createFilterDescription());\n this.visualization().chartPanel().description(desc.join(\", \"));\n return this.visualization().refresh().then(() => {\n this._initialized = true;\n const data = this.hipiePipeline().outData();\n if (this.visualization().chartType() === \"FieldForm\") {\n if (this.state().set([...data])) {\n this.selectionChanged();\n }\n } else {\n if (this.state().removeInvalid(data)) {\n this.selectionChanged();\n }\n }\n });\n }\n\n // Selection ---\n selection(): object[];\n selection(_: object[]): this;\n selection(_?: object[]): object[] | this {\n if (!arguments.length) return this.state().selection();\n this.state().selection(_);\n this.selectionChanged();\n return this;\n }\n\n // Events ---\n selectionChanged() {\n const promises: Array<Promise<void>> = [];\n for (const filteredViz of this._ec.filteredBy(this.id())) {\n promises.push(filteredViz.refresh());\n }\n Promise.all(promises).then(() => {\n this._ec.vizStateChanged(this);\n });\n }\n\n monitor(func: (id: string, newVal: any, oldVal: any, source: PropertyExt) => void): { remove: () => void; } {\n return this.hipiePipeline().monitor(func);\n }\n}\nElement.prototype._class += \" Viz\";\n\nexport interface IPersist {\n ddl: DDL2.Schema;\n layout: any;\n}\n\nexport interface IElementError extends IActivityError {\n elementID: string;\n}\n\nexport class ElementContainer extends PropertyExt {\n\n private _nullElement;\n\n private _datasources: DatasourceRefType[] = [emptyDatabomb];\n private _elements: Element[] = [];\n\n @publish(10, \"number\", \"Number of samples\")\n samples: publish<this, number>;\n @publish(100, \"number\", \"Sample size\")\n sampleSize: publish<this, number>;\n\n constructor() {\n super();\n this.clear();\n this._nullElement = new Element(this);\n }\n\n clear(eid?: string) {\n this._datasources = eid === undefined ? [emptyDatabomb] : this._datasources;\n this._elements = eid === undefined ? [] : this._elements.filter(d => d.id() !== eid);\n }\n\n private _hookSend: IOptionsSend;\n hookSend(): IOptionsSend;\n hookSend(_: IOptionsSend): this;\n hookSend(_?: IOptionsSend): IOptionsSend | this {\n if (!arguments.length) return this._hookSend;\n this._hookSend = _;\n return this;\n }\n\n datasources(): DatasourceRefType[];\n datasources(_: DatasourceRefType[]): this;\n datasources(_?: DatasourceRefType[]): DatasourceRefType[] | this {\n if (!arguments.length) return this._datasources;\n this._datasources = _;\n return this;\n }\n\n datasource(id): DatasourceRefType {\n return this._datasources.filter(ds => ds.id() === id)[0];\n }\n\n appendDatasource(ds: DatasourceRefType): this {\n this._datasources.push(ds);\n return this;\n }\n\n removeDatasource(ds: DatasourceRefType): this {\n this._datasources = this._datasources.filter(row => row !== ds);\n return this;\n }\n\n elements(): Element[] {\n return [...this._elements];\n }\n\n element(w: string | PropertyExt | VizChartPanel): Element {\n let retVal: Element[];\n if (typeof w === \"string\") {\n retVal = this._elements.filter(viz => viz.id() === w);\n } else if (w instanceof VizChartPanel) {\n retVal = this._elements.filter(v => v.chartPanel() === w);\n } else {\n retVal = this._elements.filter(v => v.vizProps() === w);\n }\n if (retVal.length) {\n return retVal[0];\n }\n return this._nullElement;\n }\n\n elementExists(w: string | PropertyExt): boolean {\n return this.element(w) !== this._nullElement;\n }\n\n elementIDs() {\n return this._elements.map(viz => viz.id());\n }\n\n append(element: Element): this {\n this._elements.push(element);\n return this;\n }\n\n filteredBy(elemID: string): Element[] {\n return this._elements.filter(otherViz => {\n const filterIDs = otherViz.updatedBy();\n return filterIDs.indexOf(elemID) >= 0;\n });\n }\n\n views(): HipiePipeline[] {\n return this._elements.map(viz => viz.hipiePipeline());\n }\n\n view(id: string): HipiePipeline | undefined {\n return this.views().filter(view => view.id() === id)[0];\n }\n\n normalizePersist(seri: any): { [key: string]: { [key: string]: any } } {\n const ret = {};\n seri.__properties.content.map((n) => {\n const _is_MegaChart = !!n.__properties.widget.__properties.chart;\n const _cell = n;\n const _panel = n.__properties.widget;\n const _widget = _is_MegaChart ? n.__properties.widget.__properties.chart : n.__properties.widget.__properties.widget;\n const _id = n.__properties.widget.__id ? n.__properties.widget.__id : n.__properties.widget.__properties.widget.__id;\n ret[_id] = {\n id: _id,\n package: _widget.__class.split(\"_\")[0],\n object: _widget.__class.split(\"_\")[1],\n cell: _get_params(_cell, [\"chart\", \"widget\", \"fields\"]),\n panel: _get_params(_panel, [\"chart\", \"widget\", \"fields\"]),\n widget: _get_params(_widget, [\"fields\"])\n };\n });\n return ret;\n function _get_params(_o, exclude_list) {\n const ret = {};\n Object.keys(_o.__properties)\n .filter(n => exclude_list.indexOf(n) === -1)\n .forEach(n => ret[n] = _o.__properties[n]);\n return ret;\n }\n }\n\n validate(): IElementError[] {\n let retVal: IElementError[] = [];\n this._elements.forEach(elem => {\n retVal = retVal.concat(elem.validate());\n });\n return retVal;\n }\n\n refresh(): Promise<this> {\n return Promise.all(this.elements().map(element => element.refresh())).then(() => {\n return this;\n });\n }\n\n // Events ---\n vizStateChanged(viz: Element) {\n }\n}\nElementContainer.prototype._class += \" dashboard_ElementContainer\";\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import { IMonitorHandle, Widget } from \"@hpcc-js/common\";\nimport { compare } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner, VizChartPanel, VizPopupPanel } from \"./model/vizChartPanel\";\n\nexport class PopupManager extends Widget implements IVizPopupPanelOwner {\n protected _ec: ElementContainer;\n protected _popups: VizPopupPanel[] = [];\n protected _popupIdx: {\n [id: string]: {\n panel: VizPopupPanel,\n monitorHandle: IMonitorHandle\n }\n } = {};\n\n popupPanels(): VizPopupPanel[] {\n if (!this._popups) this._popups = [];\n if (!this._popupIdx) this._popupIdx = {};\n return this._popups;\n }\n\n popupChartPanels(): VizChartPanel[] {\n return this.popupPanels().map(p => p.widget() as VizChartPanel);\n }\n\n addPopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n const targetNode = this.element().node();\n const pp = new VizPopupPanel(this, elem)\n .target(targetNode)\n .widget(cp)\n .relativeTargetId(this.id())\n .size({\n width: cp.minWidth(),\n height: cp.minHeight()\n });\n this._popups.push(pp);\n this._popupIdx[cp.id()] = {\n panel: pp,\n monitorHandle: cp.monitor((id) => {\n switch (id) {\n case \"minWidth\":\n case \"minHeight\":\n pp\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .render()\n ;\n break;\n }\n })\n };\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(pp);\n });\n }\n\n removePopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(null);\n });\n this._popupIdx[cp.id()].panel.target(null);\n this._popupIdx[cp.id()].monitorHandle.remove();\n cp.target(null);\n delete this._popupIdx[cp.id()];\n this._popups = this._popups.filter(p => p.widget() !== cp);\n }\n\n syncPopups() {\n const prevPopups = this.popupChartPanels();\n const diffPopups = compare(prevPopups, this._ec.elements()\n .filter(e => e.visualization().visibility() === \"flyout\")\n .map((elem: any) => elem.visualization().chartPanel()))\n ;\n\n for (const w of diffPopups.exit) {\n this.removePopup(w);\n }\n\n for (const w of diffPopups.enter) {\n this.addPopup(w);\n }\n\n return this;\n }\n\n vizActivation() {\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { DockPanel, IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel\";\nimport { PopupManager } from \"./PopupManager\";\n\nexport class DashboardDockPanel extends DockPanel implements IClosable, IVizPopupPanelOwner {\n\n constructor(private _ec: ElementContainer) {\n super();\n\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n titleClassed(wa: WidgetAdapter, classID: string, include: boolean) {\n let classes = wa.title.className.split(\" \");\n if (include && classes.indexOf(classID) < 0) {\n classes.push(classID);\n } else if (!include && classes.indexOf(classID) > 0) {\n classes = classes.filter(c => c !== classID);\n }\n wa.title.className = classes.join(\" \");\n }\n\n updateTitle(w: Widget) {\n const wa: WidgetAdapter = this.getWidgetAdapter(w);\n const element: Element = this._ec.element(w);\n const errors = element.validate();\n wa.title.label = this.tabTitle(element);\n this.titleClassed(wa, \"error\", errors.length > 0);\n wa.title.caption = errors.map(err => `${err.source}: ${err.msg}`).join(\"\\n\");\n }\n\n activate(element: Element) {\n const wa = this.getWidgetAdapter(element.visualization().chartPanel());\n if (wa) {\n wa.activate();\n }\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const wa = this.getWidgetAdapter(w);\n d3Select(wa.node)\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n let refit = false;\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n\n for (const w of diffWidgets.enter) {\n const element: Element = this._ec.element(w);\n this.addWidget(w, this.tabTitle(element), \"split-bottom\", undefined, this.hideSingleTabs() ? undefined : this);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n if (refit) {\n this.refit();\n }\n\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa: WidgetAdapter) {\n super.childActivation(w, wa);\n this.vizActivation(this._ec.element(w));\n for (const wa2 of this.widgetAdapters()) {\n if (wa2 === wa) {\n wa2.addClass(\"active\");\n this.titleClassed(wa2, \"active\", true);\n wa2.title.iconClass = \"active\";\n } else {\n wa2.removeClass(\"active\");\n this.titleClassed(wa2, \"active\", false);\n wa2.title.iconClass = \"\";\n }\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardDockPanel.prototype._class += \" marshaller_DashboardDockPanel\";\nDashboardDockPanel.prototype.mixin(PopupManager);\n","import { Widget } from \"@hpcc-js/common\";\nimport { Cell, Grid } from \"@hpcc-js/layout\";\nimport { IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { IDockPanel } from \"./dashboard\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel\";\nimport { PopupManager } from \"./PopupManager\";\n\nexport class DashboardGrid extends Grid implements IClosable, IVizPopupPanelOwner, IDockPanel {\n private _layoutCache = [];\n constructor(private _ec: ElementContainer) {\n super();\n\n this.designMode(false);\n this.surfacePadding(\"0\");\n this.surfaceBorderWidth(0);\n }\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n super.updateGrid(resize, transitionDuration, _noRender);\n this._layoutCache = this.content().map(cellWidget => {\n return {\n id: cellWidget.widget().id(),\n position: [\n cellWidget.gridCol(),\n cellWidget.gridRow(),\n cellWidget.gridColSpan(),\n cellWidget.gridRowSpan()\n ]\n };\n });\n }\n layoutObj(_: object | null): this {\n if (_) {\n if ((_ as any).main) {\n const convertedLayout = ddl2_layout(_, 10, 10);\n this._layoutCache = convertedLayout;\n } else if (_ instanceof Array) {\n this._layoutCache = _;\n }\n }\n return this;\n\n function ddl2_layout(layoutObject, rows, cols) {\n const ret = [];\n dive(layoutObject.main, 0, 0, rows, cols);\n return ret;\n function dive(o, x, y, w, h) {\n if (o.children) {\n if (o.type === \"split-area\") {\n if (o.orientation === \"horizontal\") {\n o.children.forEach((child, i) => {\n const _w = o.sizes[i] * w;\n const _h = h;\n const _x = i === 0 ? x : x + o.sizes[0] * w;\n const _y = y;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else if (o.orientation === \"vertical\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else {\n console.error(\"wtf\");\n }\n } else if (o.type === \"tab-area\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n }\n } else {\n ret.push([x, y, w, h].map(Math.round));\n }\n }\n }\n }\n layout() {\n return this._layoutCache;\n }\n widgets() {\n return this.content().map(c => c.widget());\n }\n hideSingleTabs() {\n return true;\n }\n getWidgetAdapter() {\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n updateTitle(w: Widget) {\n const cell: Cell = this.getWidgetCell(w.id());\n const element: Element = this._ec.element(w);\n const tabTitle = this.tabTitle(element);\n (cell.widget() as any)\n .title(tabTitle)\n ;\n }\n\n activate(element: Element) {\n }\n\n removeWidget(w: Widget) {\n const cell = this.getWidgetCell(w.id());\n this.clearContent(cell);\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const cell: Cell = this.getWidgetCell(w.id());\n cell.element()\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n let maxX = 0;\n let maxY = 0;\n const no_layout_added = [];\n for (const widget of diffWidgets.enter) {\n const element: Element = this._ec.element(widget);\n const i = this.content().length;\n if (this._layoutCache && this._layoutCache[i]) {\n const layout = (this._layoutCache as any).find(n => n.id === widget.id());\n if (layout) {\n const [x, y, w, h] = layout.position;\n this.setContent(y, x, element.visualization().chartPanel(), \"\", h, w);\n if (x + w > maxX) maxX = x + w;\n if (y + h > maxY) maxY = y + h;\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n }\n let freeRow = this.content().reduce((prev, curr) => Math.max(prev, curr.gridRow() + curr.gridRowSpan()), 0);\n no_layout_added.forEach(cp => {\n this.setContent(freeRow, 0, cp, \"\", 3, 3);\n freeRow += 3;\n });\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n }\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa?: WidgetAdapter) {\n this.vizActivation(this._ec.element(w));\n }\n\n postSelectionChange() {\n super.postSelectionChange();\n const selected = this._selectionBag.get();\n if (selected.length > 0) {\n this.childActivation(selected[0].widget.widget());\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardGrid.prototype._class += \" marshaller_DashboardGrid\";\nDashboardGrid.prototype.mixin(PopupManager);\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { BUILD_VERSION, PKG_NAME, PKG_VERSION } from \"../__package__\";\nimport { ActivityPipeline, ReferencedFields } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DatasourceRef, DatasourceRefType, DatasourceType } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { Form } from \"./activities/form\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { Mappings, Project } from \"./activities/project\";\nimport { Param, RestResult, RestResultRef, RestService } from \"./activities/rest\";\nimport { HipieResultRef, RoxieResult, RoxieResultRef, RoxieService } from \"./activities/roxie\";\nimport { Sort } from \"./activities/sort\";\nimport { WU, WUResult, WUResultRef } from \"./activities/wuresult\";\nimport { Dashboard } from \"./dashboard\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\n\nconst logger = scopedLogger(\"marshaller/ddl2/ddl\");\n\ntype DatasourceRefTypeMap = { [key: string]: { refType: DatasourceRefType, ref: DatasourceRef } };\ntype ServerRefTypeMap = { [key: string]: { ds: DatasourceType, result: DatasourceRefTypeMap } };\n\nclass DDLDatasourceAdapter {\n private _dsDedup: ServerRefTypeMap;\n\n constructor() {\n }\n\n clear() {\n this._dsDedup = {};\n }\n\n id(dsT: DatasourceType): string {\n if (dsT instanceof WU) {\n return `${dsT.url()}/${dsT.wuid()}`;\n } else if (dsT instanceof RoxieService) {\n return `${dsT.url()}/${dsT.querySet()}/${dsT.queryID()}`;\n } else if (dsT instanceof RestService) {\n return `${dsT.url()}/${dsT.action()}`;\n }\n return dsT.id();\n }\n\n _resolveID(dsT: DatasourceType): string {\n return this._dsDedup[this.id(dsT)].ds.id();\n }\n\n resolveID(dsRef: DatasourceRef): string | undefined {\n if (dsRef instanceof WUResultRef) {\n return this._resolveID(dsRef.datasource().wu());\n } else if (dsRef instanceof RoxieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof HipieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof RestResultRef) {\n return this._resolveID(dsRef.datasource().service());\n }\n }\n\n append(pDS: DSPicker | DatasourceRefType) {\n const refType: DatasourceRefType = pDS instanceof DSPicker ? pDS.datasource() : pDS;\n const ref: DatasourceRef = pDS instanceof DSPicker ? pDS.datasourceRef() : undefined;\n const dsTID = refType.id();\n const ds: DatasourceType = refType instanceof WUResult ? refType.wu() : refType instanceof RoxieResult ? refType.service() : refType instanceof RestResult ? refType.service() : refType;\n const dsID = this.id(ds);\n if (!this._dsDedup[dsID]) {\n this._dsDedup[dsID] = {\n ds,\n result: {}\n };\n }\n if (!this._dsDedup[dsID].result[dsTID]) {\n this._dsDedup[dsID].result[dsTID] = {\n refType,\n ref\n };\n }\n }\n\n getAll(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const key in this._dsDedup) {\n const ddl = this._dsDedup[key].ds.toDDL();\n\n // Inputs ---\n if (ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const inputs: { [fieldID: string]: DDL2.IField } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n const refs: ReferencedFields = {\n inputs: {},\n outputs: {}\n };\n this._dsDedup[key].result[key2].ref.referencedFields(refs);\n for (const inElementID in refs.inputs) {\n refs.inputs[inElementID].forEach(fieldID => {\n inputs[fieldID] = (ddl2 as any).inputs.filter(row => row.id === fieldID)[0];\n });\n }\n }\n ddl.inputs = [];\n for (const key in inputs) {\n ddl.inputs.push(inputs[key]);\n }\n }\n\n // Outputs ---\n if (ddl.type === \"wuresult\" || ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const outputs: { [fieldID: string]: DDL2.IOutput } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n if (ddl2.type === \"wuresult\" || ddl2.type === \"roxie\" || ddl2.type === \"hipie\" || ddl2.type === \"rest\") {\n for (const outputID in ddl2.outputs) {\n outputs[outputID] = ddl2.outputs[outputID];\n }\n }\n }\n ddl.outputs = {};\n for (const key in outputs) {\n ddl.outputs[key] = outputs[key];\n }\n }\n retVal.push(ddl);\n }\n return retVal;\n }\n}\n\nexport class DDLAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _dsWriteDedup: DDLDatasourceAdapter = new DDLDatasourceAdapter();\n private _dsReadDedup: { [id: string]: WU | RoxieService | RestService } = {};\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n for (const viz of this._ec.elements()) {\n this._dsWriteDedup.append(viz.hipiePipeline().datasource());\n }\n return this._dsWriteDedup.getAll();\n }\n\n writeFilters(filters: Filters): DDL2.IFilter {\n if (!filters.exists()) return undefined;\n return filters.toDDL();\n }\n\n readFilters(ddlFilter: DDL2.IFilter, ec: ElementContainer): Filters {\n return Filters.fromDDL(ec, ddlFilter);\n }\n\n writeProject(project: Project): DDL2.IProject {\n if (!project.exists()) return undefined;\n return project.toDDL();\n }\n\n readProject(ddlProject: DDL2.IProject): Project {\n return Project.fromDDL(ddlProject);\n }\n\n writeMappings(mappings: Mappings): DDL2.IMappings {\n if (!mappings.exists()) return { type: \"mappings\", transformations: [] };\n return mappings.toDDL();\n }\n\n readMappings(ddlProject: DDL2.IMappings): Mappings {\n return Mappings.fromDDL(ddlProject);\n }\n\n writeGroupBy(gb: GroupBy): DDL2.IGroupBy {\n if (!gb.exists()) return undefined;\n return gb.toDDL();\n }\n\n readGroupBy(ddlGB: DDL2.IGroupBy): GroupBy {\n return GroupBy.fromDDL(ddlGB);\n }\n\n writeSort(sort: Sort): DDL2.ISort {\n if (!sort.exists()) return undefined;\n return sort.toDDL();\n }\n\n readSort(ddlSort: DDL2.ISort): Sort {\n return Sort.fromDDL(ddlSort);\n }\n\n writeLimit(limit: Limit): DDL2.ILimit {\n if (!limit.exists()) return undefined;\n return limit.toDDL();\n }\n\n readLimit(ddlLimit: DDL2.ILimit): Limit {\n return Limit.fromDDL(ddlLimit);\n }\n\n readDatasourceRef(ddlDSRef: DDL2.IDatasourceRef, dsPicker: DSPicker, elementContainer: ElementContainer): this {\n if (DDL2.isWUResultRef(ddlDSRef)) {\n const wu = this._dsReadDedup[ddlDSRef.id] as WU;\n dsPicker.datasourceID(wu.output(ddlDSRef.output).id());\n } else if (DDL2.isRoxieServiceRef(ddlDSRef)) {\n dsPicker.datasourceID(`${ddlDSRef.id}_${ddlDSRef.output}`);\n const dsRef = dsPicker.datasourceRef() as RoxieResultRef | RestResultRef;\n dsRef\n .request(ddlDSRef.request.map(rf => {\n return Param.fromDDL(this._ec, rf);\n }))\n ;\n } else {\n dsPicker.datasourceID(ddlDSRef.id);\n }\n return this;\n }\n\n writeActivities(view: ActivityPipeline): DDL2.ActivityType[] {\n return view.activities().map(activity => {\n if (activity instanceof Filters) {\n return this.writeFilters(activity);\n } else if (activity instanceof Project) {\n return this.writeProject(activity);\n } else if (activity instanceof GroupBy) {\n return this.writeGroupBy(activity);\n } else if (activity instanceof Sort) {\n return this.writeSort(activity);\n } else if (activity instanceof Limit) {\n return this.writeLimit(activity);\n } else if (activity instanceof Mappings) {\n return this.writeMappings(activity);\n } else if (activity instanceof DSPicker) {\n // Fall through ---\n } else {\n logger.warning(`Unknown activity type: ${activity.classID()}`);\n }\n }).filter(activity => !!activity);\n }\n\n writeVisualization(visualization: Visualization): DDL2.IVisualization {\n return {\n id: visualization.chartPanel().id(),\n title: visualization.title(),\n description: visualization.description(),\n visibility: visualization.visibility(),\n chartType: visualization.chartType(),\n __class: visualization.chartPanel().widget().classID(),\n mappings: this.writeMappings(visualization.mappings()),\n properties: visualization.properties(),\n secondaryDataviewID: visualization.secondaryDataviewID()\n };\n }\n\n readVisualization(ddlViz: DDL2.IVisualization, visualization: Visualization): this {\n const mappings = this.readMappings(ddlViz.mappings);\n visualization.chartPanel().id(ddlViz.id);\n visualization\n .title(ddlViz.title)\n .description(ddlViz.description)\n .visibility(ddlViz.visibility)\n .chartType(ddlViz.chartType as any)\n .properties(ddlViz.properties)\n .mappings(mappings)\n .secondaryDataviewID(ddlViz.secondaryDataviewID)\n ;\n return this;\n }\n\n writeViewDatasource(dsRef: DatasourceRef) {\n const retVal = dsRef.toDDL();\n retVal.id = this._dsWriteDedup.resolveID(dsRef) || retVal.id;\n return retVal;\n }\n\n writeDDLViews(): DDL2.IView[] {\n // Gather referenced fields ---\n const refFields: ReferencedFields = { inputs: {}, outputs: {} };\n for (const element of this._ec.elements()) {\n element.visualization().mappings().referencedFields(refFields);\n }\n\n return this._ec.elements().map(element => {\n const view = element.hipiePipeline();\n const dsPicker = view.datasource();\n if (dsPicker instanceof DSPicker) {\n const dsRef = dsPicker.datasourceRef();\n const retVal = {\n id: element.id(),\n datasource: this.writeViewDatasource(dsRef),\n activities: this.writeActivities(view),\n visualization: this.writeVisualization(element.visualization())\n };\n return retVal;\n }\n throw new Error(\"Missing DSPicker?\");\n });\n }\n\n writeProperties(): DDL2.IProperties {\n return {\n name: PKG_NAME,\n version: PKG_VERSION,\n buildVersion: BUILD_VERSION,\n layout: this._dashboard.layout() as any\n };\n }\n\n readDDLViews(ddlViews: DDL2.IView[]) {\n for (const ddlView of ddlViews) {\n const element = new Element(this._ec).id(ddlView.id);\n this._ec.append(element);\n const hipiePipeline = element.hipiePipeline();\n this.readDatasourceRef(ddlView.datasource, hipiePipeline.datasource() as DSPicker, this._ec);\n for (const activity of ddlView.activities) {\n if (DDL2.isProjectActivity(activity)) {\n const project = this.readProject(activity);\n hipiePipeline.project(project);\n }\n if (DDL2.isFilterActivity(activity)) {\n const filters = this.readFilters(activity, this._ec);\n hipiePipeline.filters(filters);\n }\n if (DDL2.isGroupByActivity(activity)) {\n const groupBy = this.readGroupBy(activity);\n hipiePipeline.groupBy(groupBy);\n }\n if (DDL2.isSortActivity(activity)) {\n const sort = this.readSort(activity);\n hipiePipeline.sort(sort);\n }\n if (DDL2.isLimitActivity(activity)) {\n const limit = this.readLimit(activity);\n hipiePipeline.limit(limit);\n }\n }\n this.readVisualization(ddlView.visualization, element.visualization());\n }\n }\n\n readProperties(properties: DDL2.IProperties) {\n if (properties && properties.layout) {\n this._dashboard.layoutObj(properties.layout as object);\n }\n }\n\n write(): DDL2.Schema {\n this._dsWriteDedup.clear();\n const retVal: DDL2.Schema = {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDDLViews(),\n properties: this.writeProperties(),\n hipieProperties: this._dashboard.hipieProps()\n };\n return retVal;\n }\n\n read(ddl: DDL2.Schema) {\n this._dsWriteDedup.clear();\n for (const ddlDS of ddl.datasources) {\n switch (ddlDS.type) {\n case \"databomb\":\n this._ec.appendDatasource(Databomb.fromDDL(ddlDS));\n break;\n case \"form\":\n this._ec.appendDatasource(Form.fromDDL(ddlDS));\n break;\n case \"logicalfile\":\n this._ec.appendDatasource(LogicalFile.fromDDL(this._ec, ddlDS));\n break;\n case \"wuresult\":\n const wu = WU.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[wu.id()] = wu;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(wu.output(resultName));\n }\n break;\n case \"roxie\":\n case \"hipie\":\n const rs = RoxieService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs.id()] = rs;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RoxieResult.fromDDL(this._ec, rs, resultName));\n }\n break;\n case \"rest\":\n const rs2 = RestService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs2.id()] = rs2;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RestResult.fromDDL(this._ec, rs2, resultName));\n }\n break;\n default:\n logger.warning(`Unknown ddl datasource type: ${(ddlDS as any).type} `);\n }\n }\n this.readDDLViews(ddl.dataviews);\n this.readProperties(ddl.properties);\n this._dashboard.hipieProps(ddl.hipieProperties);\n }\n}\n","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { classID2Meta, ClassMeta, isArray } from \"@hpcc-js/util\";\nimport { Activity, stringify } from \"./activities/activity\";\nimport { Dashboard } from \"./dashboard\";\nimport { DDLAdapter } from \"./ddl\";\nimport { ElementContainer } from \"./model/element\";\n\ntype WidgetImport = { [moduleID: string]: { [classID: string]: boolean } };\n\nclass Imports {\n _moduleMap: WidgetImport = {};\n\n append(widgetMeta: ClassMeta) {\n if (!this._moduleMap[widgetMeta.module]) {\n this._moduleMap[widgetMeta.module] = {};\n }\n this._moduleMap[widgetMeta.module][widgetMeta.class] = true;\n }\n\n write(): string {\n const importJS: string[] = [];\n for (const moduleID in this._moduleMap) {\n const classIDs: string[] = [];\n for (const classID in this._moduleMap[moduleID]) {\n classIDs.push(classID);\n }\n classIDs.sort();\n importJS.push(`import { ${classIDs.join(\", \")} } from \"${moduleID}\";`);\n }\n return importJS.join(\"\\n\");\n }\n}\n\nexport function createProps(pe: PropertyExt): { [key: string]: any } {\n const retVal: { [key: string]: any } = {};\n for (const meta of pe.publishedProperties()) {\n if (pe[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n const val = pe[meta.id]();\n switch (meta.type) {\n case \"propertyArray\":\n const serialization = val.map(createProps);\n if (serialization) {\n retVal[meta.id] = serialization;\n }\n break;\n default:\n retVal[meta.id] = val;\n }\n }\n }\n return retVal;\n}\n\nexport class JavaScriptAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _ddlAdapter: DDLAdapter;\n private _ddlSchema: DDL2.Schema;\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n this._ddlAdapter = new DDLAdapter(this._dashboard);\n this._ddlSchema = this._ddlAdapter.write();\n }\n\n createProps(prefix: string, pe: PropertyExt, postfix: string = \"\"): string[] {\n let retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_exists\"]()) {\n switch (meta.type) {\n case \"string\":\n case \"set\":\n retVal.push(`${prefix}.${meta.id}(\"${(pe as any)[meta.id]()}\")${postfix};`);\n break;\n case \"number\":\n case \"boolean\":\n retVal.push(`${prefix}.${meta.id}(${(pe as any)[meta.id]()})${postfix};`);\n break;\n case \"widget\":\n retVal = retVal.concat(this.createProps(`${prefix}.${meta.id}()`, (pe as any)[meta.id]()));\n break;\n case \"propertyArray\":\n if (meta.ext)\n retVal.push(`${prefix}.${meta.id}([${(pe as any)[meta.id]()}])${postfix};`);\n break;\n default:\n break;\n }\n }\n }\n return retVal;\n }\n\n writeMeta(dsDetails: Activity) {\n return \"\";\n }\n\n private safeID(id: string): string {\n if (!id) return id;\n return id.replace(/ /g, \"_\").replace(/\\./g, \"_\");\n }\n\n private datasourceRefID(view: DDL2.IView): string {\n const datasourceRef = view.datasource;\n if (DDL2.isRoxieServiceRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}_${this.safeID(view.id)}`;\n } else if (DDL2.isWUResultRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}`;\n }\n return `${this.safeID(datasourceRef.id)}`;\n }\n\n _dedup: { [key: string]: boolean } = {};\n private writeDatasource(view: DDL2.IView): string[] {\n const datasourceRef = view.datasource;\n const retVal: string[] = [];\n const datasource = this._ddlSchema.datasources.filter(ds => ds.id === datasourceRef.id)[0];\n const outputID = (datasourceRef as any).output;\n const id = this.datasourceRefID(view);\n if (!this._dedup[id]) {\n this._dedup[id] = true;\n switch (datasource.type) {\n case \"wuresult\":\n const wuID = this.safeID(view.datasource.id);\n if (!this._dedup[wuID]) {\n this._dedup[wuID] = true;\n retVal.push(` export const ${wuID} = new marshaller.WU()\n .url(\"${datasource.url}\")\n .wuid(\"${datasource.wuid}\")\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.WUResult()\n .wu(${wuID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n break;\n case \"logicalfile\":\n retVal.push(` export const ${id} = new marshaller.LogicalFile()\n .url(\"${datasource.url}\")\n .logicalFile(\"${datasource.logicalFile}\")\n .responseFields(${stringify(datasource.fields)})\n ;`);\n break;\n case \"hipie\":\n case \"roxie\":\n const serviceID = this.safeID(view.datasource.id);\n if (!this._dedup[serviceID]) {\n this._dedup[serviceID] = true;\n retVal.push(` export const ${serviceID} = new marshaller.RoxieService(ec)\n .url(\"${datasource.url}\")\n .querySet(\"${datasource.querySet}\")\n .queryID(\"${datasource.queryID}\")\n .requestFields(${stringify(datasource.inputs)})\n ;`);\n }\n const resultID = serviceID + \"_\" + this.safeID(outputID);\n if (!this._dedup[resultID]) {\n this._dedup[resultID] = true;\n retVal.push(` export const ${resultID} = new marshaller.RoxieResult(ec)\n .service(${serviceID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.HipieResultRef(ec)\n .datasource(${resultID})\n .requestFieldRefs(${stringify((datasourceRef as DDL2.IRoxieServiceRef).request)})\n ;`);\n break;\n case \"databomb\":\n {\n retVal.push(` export const ${id} = new marshaller.Databomb()\n .format(\"${datasource.format}\")\n .payload(${JSON.stringify(datasource.payload)})\n ;`);\n }\n break;\n case \"form\":\n {\n const fromFields: string[] = [];\n for (const field of datasource.fields) {\n fromFields.push(`new marshaller.FormField().fieldID(\"${field.id}\").default(\"${field.default || \"\"}\")`);\n }\n retVal.push(` export const ${id} = new marshaller.Form()\n .formFields([\n ${fromFields.join(\",\\n \")}\n ])\n ;`);\n }\n break;\n }\n }\n return retVal;\n }\n\n private writeActivity(activity: DDL2.ActivityType): string {\n switch (activity.type) {\n case \"filter\":\n return `new marshaller.Filters(ec).conditions(${stringify(activity.conditions)})`;\n case \"project\":\n return `new marshaller.Project().transformations(${stringify(activity.transformations)})`;\n case \"groupby\":\n return `new marshaller.GroupBy().fieldIDs(${JSON.stringify(activity.groupByIDs)}).aggregates(${stringify(activity.aggregates)})`;\n case \"sort\":\n return `new marshaller.Sort().conditions(${stringify(activity.conditions)})`;\n case \"limit\":\n return `new marshaller.Limit().rows(${activity.limit})`;\n case \"mappings\":\n return `new marshaller.Mappings().transformations(${stringify(activity.transformations)})`;\n }\n }\n\n writeWidgetProps(pe: PropertyExt): string[] {\n const retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n retVal.push(`.${meta.id}(${JSON.stringify((pe as any)[meta.id]())})`);\n }\n }\n return retVal;\n }\n\n private joinWithPrefix(props: DDL2.IWidgetProperties, imports: Imports, joinStr: string, postFix: string): string {\n let retVal: string = \"\";\n let meta: ClassMeta;\n if (props.__class) {\n meta = classID2Meta(props.__class);\n imports.append(meta);\n retVal += `new ${meta.class}()`;\n }\n for (const prop in props) {\n if (prop === \"__class\") {\n } else if (isArray(props[prop])) {\n const arr = `${(props[prop] as any[]).map(item => this.joinWithPrefix(item, imports, joinStr + \" \", \"\")).join(`,${joinStr} `)}`;\n if (arr) {\n retVal += `${joinStr} .${prop}([${joinStr} ${arr}${joinStr} ])${postFix}`;\n }\n } else {\n retVal += `${joinStr} .${prop}(${JSON.stringify(props[prop])})${postFix}`;\n }\n }\n return retVal;\n }\n\n private writeWidget(dataview: DDL2.IView, imports: Imports): string {\n return ` export const ${dataview.visualization.id} = new marshaller.VizChartPanel()\n .id(\"${dataview.visualization.id}\")\n .title(\"${dataview.visualization.title}\")\n .widget(${this.joinWithPrefix(dataview.visualization.properties[\"widget\"] as any, imports, \"\\n \", \"\")})\n ;`;\n }\n\n private writeElement(dataview: DDL2.IView) {\n const activities: string[] = [`data.${this.datasourceRefID(dataview)}`];\n for (const activity of dataview.activities) {\n activities.push(this.writeActivity(activity));\n }\n const updates: string[] = [];\n for (const filteredViz of this._ec.filteredBy(dataview.id)) {\n updates.push(`${filteredViz.id()}.refresh();`);\n }\n return `\nconst ${dataview.id} = new marshaller.Element(ec)\n .id(\"${dataview.id}\")\n .pipeline([\n ${activities.join(\",\\n \")}\n ])\n .mappings(new marshaller.Mappings().transformations(${stringify(dataview.visualization.mappings.transformations)}))\n .chartPanel(viz.${dataview.visualization.id})\n .on(\"selectionChanged\", () => {\n ${updates.join(\"\\n \")}\n }, true)\n ;\n${dataview.id}.visualization()\n .visibility(\"${dataview.visualization.visibility}\")\n .secondaryDataviewID(\"${dataview.visualization.secondaryDataviewID || \"\"}\")\n ;\nec.append(${dataview.id});\n`;\n }\n\n private writeDatasources(): string[] {\n let retVal: string[] = [];\n for (const dataview of this._ddlSchema.dataviews) {\n retVal = retVal.concat(this.writeDatasource(dataview));\n }\n return retVal;\n }\n\n private writeWidgets(): { widgetImports: string, widgetDefs: string } {\n const jsDef: string[] = [];\n const imports = new Imports();\n for (const dataview of this._ddlSchema.dataviews) {\n jsDef.push(this.writeWidget(dataview, imports));\n }\n return {\n widgetImports: imports.write(),\n widgetDefs: jsDef.join(\"\\n\\n\")\n };\n }\n\n private writeElements(): string {\n let retVal = \"\";\n for (const dataview of this._ddlSchema.dataviews) {\n retVal += this.writeElement(dataview);\n }\n return retVal;\n }\n\n createJavaScript(): string {\n const widgets = this.writeWidgets();\n\n return `\\\n${widgets.widgetImports}\nimport * as marshaller from \"@hpcc-js/marshaller\";\n\n// Dashboard Element Container (Model) ---\nconst ec = new marshaller.ElementContainer();\n\nnamespace data {\n${this.writeDatasources().join(\"\\n\")}\n}\n\nnamespace viz {\n${widgets.widgetDefs}\n}\n\n// Dashboard Elements (Controller) ---\n${this.writeElements().trim()}\n\nec.refresh();\n\n// Optional ---\nconst errors = ec.validate();\nfor (const error of errors) {\n console.error(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n}\n\nexport const dashboard = new marshaller.Dashboard(ec)\n .target(\"placeholder\")\n .titleVisible(false)\n .hideSingleTabs(true)\n .layoutObj(${stringify(this._dashboard.layout())})\n .render()\n ;\n\n// @ts-ignore\nconst ddl = ${JSON.stringify(this._ddlSchema)};\n`;\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { Button, Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Activity } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { Form, FormField } from \"./activities/form\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { Project } from \"./activities/project\";\nimport { Sort } from \"./activities/sort\";\nimport { DashboardDockPanel } from \"./dashboardDockPanel\";\nimport { DashboardGrid } from \"./dashboardGrid\";\nimport { DDLAdapter } from \"./ddl\";\nimport { JavaScriptAdapter } from \"./javascriptadapter\";\nimport { Element, ElementContainer } from \"./model/element\";\n\nimport \"../../src/ddl2/dashboard.css\";\n\nexport interface IDockPanel {\n layoutObj(_: object | null): this;\n layout();\n widgets();\n activate(element: Element);\n hideSingleTabs(bool?: boolean);\n syncWidgets();\n syncPopups();\n}\n\nexport class Dashboard extends ChartPanel {\n\n private _dockPanel: IDockPanel;\n\n private _designModeButton = new ToggleButton().faChar(\"fa-object-group\").tooltip(\"Design Mode...\")\n .selected(true)\n .on(\"click\", () => {\n if (this._dockPanel instanceof DashboardGrid) {\n this._dockPanel\n .designMode(this._designModeButton.selected())\n .lazyRender()\n ;\n }\n });\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const newElem = new Element(this._ec);\n this._ec.append(newElem);\n this.renderPromise().then(() => {\n newElem.refresh().then(() => {\n this.activate(newElem);\n });\n });\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n const elem = this._prevActive;\n if (elem && window.confirm(`Remove Widget \"${elem.id()}\"?`)) {\n this._ec.clear(elem.id());\n this.renderPromise().then(() => {\n this.vizActivation(undefined);\n });\n }\n });\n\n private _reloadButton = new Button().faChar(\"fa-refresh\").tooltip(\"Reload...\")\n .on(\"click\", () => {\n const json = this.save();\n this._ec.clear();\n this.vizActivation(undefined);\n this.renderPromise().then(() => {\n this.restore(json);\n this.renderPromise().then(() => {\n this._ec.refresh().then(() => {\n });\n });\n });\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n Promise.all([\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/airports.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/carriers.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/stats.csv\")\n ]).then(([airports, carriers, stats]) => {\n const popupElement = this.addForm(\"popup\", {\n type: \"form\",\n id: \"global_filter\",\n fields: [{\n type: \"string\",\n id: \"Airport\"\n }, {\n type: \"string\",\n id: \"Airline\"\n }]\n });\n popupElement.visualization()\n .title(\"Global Filter\")\n .visibility(\"flyout\")\n .chartType(\"FieldForm\")\n ;\n const airportsElement = this.addDatabomb(\"airports\", airports, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airport\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n airportsElement.chartPanel().title(\"Airports\");\n const carrierElement = this.addDatabomb(\"carriers\", carriers, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airline\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n carrierElement.chartPanel().title(\"Airlines\");\n const statsElement = this.addDatabomb(\"stats\", stats, \"csv\",\n [],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(airportsElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"airport\")]),\n new Filters.Filter().source(carrierElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"carrier\").nullable(true)])\n ]));\n statsElement.chartPanel().title(\"Stats\");\n return Promise.all([\n popupElement.refresh(),\n airportsElement.refresh(),\n carrierElement.refresh(),\n statsElement.refresh()\n ]);\n }).then(() => {\n this.render();\n });\n });\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\" = \"csv\", databombFields: FormField[], ...activities: Activity[]): Element {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n if (databombFields.length > 0) {\n databomb.databombFields(databombFields);\n }\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n for (const activity of activities) {\n if (activity instanceof Filters) {\n newElem.hipiePipeline().filters(activity);\n } else if (activity instanceof Project) {\n newElem.hipiePipeline().project(activity);\n } else if (activity instanceof GroupBy) {\n newElem.hipiePipeline().groupBy(activity);\n } else if (activity instanceof Sort) {\n newElem.hipiePipeline().sort(activity);\n } else if (activity instanceof Limit) {\n newElem.hipiePipeline().limit(activity);\n }\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n addForm(label: string, ddl: DDL2.IForm): Element {\n const databomb = new Form().id(label).fromDDL(ddl);\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n static create(target: string, ddl: DDL2.Schema): Promise<Dashboard> {\n return new Promise((resolve, reject) => {\n const ec = new ElementContainer();\n const dashboard = new Dashboard(ec)\n .target(target)\n .hideSingleTabs(true)\n .titleVisible(false)\n .restore(ddl)\n .render(w => {\n ec.refresh().then(() => {\n resolve(dashboard);\n });\n });\n });\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._ec.on(\"vizStateChanged\", (viz) => {\n this.vizStateChanged(viz);\n });\n this.buttons([this._designModeButton, new Spacer(), this._addButton, this._removeButton, new Spacer(), this._reloadButton, new Spacer(), this._addSamples]);\n this.ensureDockPanel(\"dock\");\n }\n\n ensureDockPanel(mode: \"dock\" | \"grid\" = \"dock\") {\n if ((mode === \"dock\" && !(this._dockPanel instanceof DashboardDockPanel)) || (mode === \"grid\" && !(this._dockPanel instanceof DashboardGrid))) {\n this._dockPanel = (mode === \"dock\" ? new DashboardDockPanel(this._ec) : new DashboardGrid(this._ec).designMode(this.titleVisible()))\n .on(\"vizActivation\", (elem: Element) => {\n this.vizActivation(elem);\n })\n ;\n this.widget(this._dockPanel as any);\n }\n }\n\n elementContainer(): ElementContainer {\n return this._ec;\n }\n\n private _hipieProps;\n hipieProps(): DDL2.IProperties;\n hipieProps(_: DDL2.IProperties): this;\n hipieProps(_?: DDL2.IProperties): DDL2.IProperties | this {\n if (!arguments.length) return this._hipieProps;\n this._hipieProps = _;\n return this;\n }\n\n ddl(): DDL2.Schema;\n ddl(_: DDL2.Schema): this;\n ddl(_?: DDL2.Schema): DDL2.Schema | this {\n const ddlAdapter = new DDLAdapter(this);\n if (!arguments.length) return ddlAdapter.write();\n this._ec.clear();\n ddlAdapter.read(_);\n return this;\n }\n\n // Used to delay load a layout after a render...\n layoutObj(_: object | null): this {\n this._dockPanel.layoutObj(_);\n return this;\n }\n\n save(): DDL2.Schema {\n const ddlAdapter = new DDLAdapter(this);\n return ddlAdapter.write();\n }\n\n restore(_: DDL2.Schema, render: boolean = false): this {\n this.ensureDockPanel(_ && _.properties && _.properties.layout instanceof Array ? \"grid\" : \"dock\");\n const ddlAdapter = new DDLAdapter(this);\n ddlAdapter.read(_);\n if (render) {\n this.renderPromise().then(() => {\n this._ec.refresh();\n });\n }\n return this;\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): this {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n return this.restore(ddl2, true);\n }\n\n javascript(): string {\n const jsAdapter = new JavaScriptAdapter(this);\n return jsAdapter.createJavaScript();\n }\n\n layout() {\n return this._dockPanel.layout();\n }\n\n widgets(): Widget[] {\n return this._dockPanel.widgets();\n }\n\n activate(element: Element) {\n this._dockPanel.activate(element);\n }\n\n hideSingleTabs(): boolean;\n hideSingleTabs(_: boolean): this;\n hideSingleTabs(_?: boolean): boolean | this {\n if (!arguments.length) return this._dockPanel.hideSingleTabs();\n this._dockPanel.hideSingleTabs(_);\n return this;\n }\n\n updateButtonState() {\n this._designModeButton.enabled(this._dockPanel instanceof DashboardGrid).render();\n this._removeButton.enabled(this._prevActive !== undefined).render();\n }\n\n update(domNode: HTMLElement, element) {\n this._dockPanel.syncWidgets();\n super.update(domNode, element);\n this.updateButtonState();\n }\n\n private _prevActive: Element;\n vizActivation(viz: Element) {\n this._prevActive = viz;\n this._removeButton.enabled(viz !== undefined).render();\n }\n\n vizStateChanged(viz: Element) {\n }\n\n render(callback?): this {\n this._dockPanel.syncPopups();\n return super.render(w => {\n if (callback) {\n callback(w);\n }\n });\n }\n}\nDashboard.prototype._class += \" dashboard_dashboard\";\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { DDL2, validate2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { SplitPanel } from \"@hpcc-js/phosphor\";\n\nimport \"../../src/ddl2/ddleditor.css\";\n\nexport class DDLEditor extends SplitPanel {\n summary: string = \"0 Errors\";\n _ddlEditor = new JSONEditor().on(\"changes\", (changes) => {\n this.checkSyntax();\n });\n _errorTable = new Table()\n .columns([\"dataPath\", \"keyword\", \"message\", \"params\"])\n ;\n\n ddl(): object;\n ddl(_: object): this;\n ddl(_?: object): object | this {\n if (!arguments.length) return this._ddlEditor.json();\n this._ddlEditor.json(_);\n this.checkSyntax();\n return this;\n }\n\n checkSyntax() {\n try {\n const json = this.ddl();\n try {\n const { success, errors } = validate2(json as DDL2.Schema);\n if (success) {\n this._errorTable.data([]);\n } else {\n this._errorTable.data(errors.map(error => [error.dataPath, error.keyword, error.message, JSON.stringify(error.params)]));\n }\n } catch (e) {\n this._errorTable.data([[\"\", \"Validation Failed\", \"\", \"\"]]);\n }\n } catch (e) {\n this._errorTable.data([[\"ALL\", \"Invalid JSON\", \"\", \"\"]]);\n }\n if (this._renderCount) {\n this._errorTable.lazyRender();\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._ddlEditor)\n .addWidget(this._errorTable)\n ;\n }\n\n update(domNode, _element) {\n super.update(domNode, _element);\n }\n\n}\nDDLEditor.prototype._class += \" codemirror_DDLEditor\";\n","import { Widget } from \"@hpcc-js/common\";\nimport { Edge, IGraphData, Lineage, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Activity } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Form } from \"./activities/form\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { RestResult, RestResultRef } from \"./activities/rest\";\nimport { RoxieResult, RoxieResultRef } from \"./activities/roxie\";\nimport { WUResult } from \"./activities/wuresult\";\nimport { Element, ElementContainer, State } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\nimport { VizChartPanel } from \"./model/vizChartPanel\";\n\nexport interface VertexData {\n view?: Element;\n activity?: Activity;\n visualization?: Visualization;\n chartPanel?: VizChartPanel;\n state?: State;\n}\n\nexport class GraphAdapter {\n private subgraphMap: { [key: string]: Subgraph } = {};\n private vertexMap: { [key: string]: Vertex } = {};\n private edgeMap: { [key: string]: Edge } = {};\n private hierarchy: Lineage[] = [];\n private vertices: Widget[] = [];\n private edges: Edge[] = [];\n\n constructor(private _ec: ElementContainer) {\n }\n\n clear() {\n this.subgraphMap = {};\n this.vertexMap = {};\n this.edgeMap = {};\n\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n }\n\n createSubgraph(id: string, label: string, data?: VertexData): Subgraph {\n let retVal: Subgraph = this.subgraphMap[id];\n if (!retVal) {\n retVal = new Subgraph()\n // .classed({ subgraph: true })\n // .showIcon(false)\n .columns([\"DS\"])\n .data([[data]])\n ;\n this.subgraphMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal.title(`${label}`);\n retVal.getBBox(true);\n return retVal;\n }\n\n createVertex(id: string, label: string, data?: VertexData, tooltip: string = \"\", fillColor: string = \"#dcf1ff\"): Vertex {\n let retVal: Vertex = this.vertexMap[id];\n if (!retVal) {\n retVal = new Vertex()\n .columns([\"DS\"])\n .data([[data]])\n .icon_diameter(0)\n ;\n this.vertexMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal\n .textbox_shape_colorFill(fillColor)\n .text(tooltip ? `${label}\\n${tooltip}` : `${label}`)\n .tooltip(tooltip)\n ;\n retVal.getBBox(true);\n return retVal;\n }\n\n createEdge(sourceID: string, targetID: string) {\n const edgeID = `${sourceID}->${targetID}`;\n let retVal = this.edgeMap[edgeID];\n if (!retVal) {\n retVal = new Edge()\n .sourceVertex(this.vertexMap[sourceID])\n .targetVertex(this.vertexMap[targetID])\n ;\n this.edgeMap[edgeID] = retVal;\n }\n this.edges.push(retVal);\n return retVal;\n }\n\n createDatasource(dsDetails: Activity): string {\n if (dsDetails instanceof DSPicker) {\n dsDetails = dsDetails.selection().datasource();\n }\n if (dsDetails instanceof WUResult) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const wuID = `${dsDetails.url()}/${dsDetails.wuid()}`;\n const wu: Subgraph = this.createSubgraph(wuID, `${dsDetails.wuid()}`);\n this.hierarchy.push({ parent: server, child: wu });\n const resultID = `${wuID}/${dsDetails.resultName()}`;\n const result: Vertex = this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails });\n this.hierarchy.push({ parent: wu, child: result });\n return resultID;\n } else if (dsDetails instanceof LogicalFile) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const lfID = `${serverID}/${dsDetails.logicalFile()}`;\n const lf: Vertex = this.createVertex(lfID, dsDetails.logicalFile(), { activity: dsDetails });\n this.hierarchy.push({ parent: server, child: lf });\n return lfID;\n } else if (dsDetails instanceof RoxieResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID(); // `${dsDetails.url()}/${dsDetails.querySet()}`;\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.querySet());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.queryID())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RoxieResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const querySetID = dsDetails.serviceID();\n const querySet: Subgraph = this.createSubgraph(querySetID, dsDetails.service().querySet());\n this.hierarchy.push({ parent: server, child: querySet });\n const queryID = `${querySetID}/${dsDetails.service().queryID()}`;\n const query: Subgraph = this.createSubgraph(queryID, dsDetails.service().queryID());\n this.hierarchy.push({ parent: querySet, child: query });\n const resultID = `${queryID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: query,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(queryID, resultID);\n return resultID;\n } else if (dsDetails instanceof RestResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID();\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.action());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.action())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RestResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const serviceID = dsDetails.serviceID();\n const actionID = `${serverID}/${dsDetails.service().action()}`;\n const action: Subgraph = this.createSubgraph(serviceID, dsDetails.service().action());\n this.hierarchy.push({ parent: server, child: action });\n const resultID = `${actionID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: action,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(actionID, resultID);\n return resultID;\n } else if (dsDetails instanceof Form) {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else if (dsDetails instanceof Databomb) {\n const id = dsDetails.id();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n }\n }\n\n createActivity(sourceID: string, view: Element, activity: Activity, label?: string): string {\n const surface: Subgraph = this.createSubgraph(view.id(), `${view.id()}`, { view });\n let fillColor = null;\n let tooltip = \"\";\n if (activity.exists()) {\n const errors = activity.validate();\n if (errors.length) {\n fillColor = \"pink\";\n tooltip = errors.map(error => `${error.source}: ${error.msg}`).join(\"\\n\");\n }\n } else {\n fillColor = \"lightgrey\";\n }\n const vertex: Vertex = this.createVertex(activity.id(), label || `${activity.classID()}`, { view, activity }, tooltip, fillColor);\n if (sourceID) {\n this.createEdge(sourceID, activity.id());\n }\n this.hierarchy.push({ parent: surface, child: vertex });\n return activity.id();\n }\n\n createGraph(): IGraphData {\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n\n this._ec.elements().forEach(e => {\n this.createDatasource(e.hipiePipeline().datasource());\n });\n\n const lastID: { [key: string]: string } = {};\n for (const view of this._ec.elements()) {\n const pipeline = view.hipiePipeline();\n let prevID = this.createDatasource(pipeline.datasource());\n for (const activity of pipeline.activities()) {\n prevID = this.createActivity(prevID, view, activity);\n }\n const visualization = view.visualization();\n const mappings = visualization.mappings();\n const mappingVertexID = this.createActivity(prevID, view, mappings, \"Mappings\");\n const vizSubgraphID = `${visualization.id()}-sg`;\n const surface: Subgraph = this.createSubgraph(vizSubgraphID, \"Visualization\", { visualization });\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: surface\n });\n this.hierarchy.push({\n parent: surface,\n child: this.vertexMap[mappings.id()]\n });\n const vizVertexID = `${visualization.id()}-viz`;\n const widgetVertex: Vertex = this.createVertex(vizVertexID, visualization.chartPanel().widget().classID(), { view, chartPanel: visualization.chartPanel() });\n this.createEdge(mappingVertexID, vizVertexID);\n this.hierarchy.push({\n parent: surface,\n child: widgetVertex\n });\n const stateVertexID = `${visualization.id()}-state`;\n const stateVertex: Vertex = this.createVertex(stateVertexID, \"Selection\", { view, state: view.state() });\n this.createEdge(vizVertexID, stateVertexID)\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n this.createEdge(prevID, stateVertexID);\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: stateVertex\n });\n prevID = stateVertexID;\n lastID[pipeline.id()] = prevID;\n }\n\n // Mapping Secondary Sources ---\n for (const view of this._ec.elements()) {\n const visualization = view.visualization();\n const secondaryElement = this._ec.element(visualization.secondaryDataviewID());\n if (secondaryElement) {\n const mappings = secondaryElement.visualization().mappings();\n this.createEdge(mappings.id(), `${visualization.id()}-viz`);\n }\n }\n\n for (const viz of this._ec.elements()) {\n const view = viz.hipiePipeline();\n for (const updateInfo of view.updatedByGraph()) {\n this.createEdge(lastID[this._ec.element(updateInfo.from).hipiePipeline().id()], updateInfo.to.id())\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n }\n }\n\n return {\n vertices: this.vertices,\n edges: this.edges,\n hierarchy: this.hierarchy\n };\n }\n}\n","import { Button, Spacer } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandRegistry, ContextMenu } from \"@hpcc-js/phosphor\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DatasourceRefType } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Form, FormField } from \"./activities/form\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { RestField, RestResult, RestService } from \"./activities/rest\";\nimport { RoxieResult, RoxieService } from \"./activities/roxie\";\nimport { WU, WUResult } from \"./activities/wuresult\";\nimport { ElementContainer } from \"./model/element\";\n\nexport class DSTable extends ChartPanel {\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const node = this._addButton.element().node();\n const rect = node.getBoundingClientRect();\n if (this._contextMenu.open({\n target: node,\n currentTarget: node,\n clientX: rect.left,\n clientY: rect.bottom\n })) {\n }\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n this.remove();\n });\n\n private _cloneButton = new Button().faChar(\"fa-clone\").tooltip(\"Clone...\")\n .enabled(false)\n .on(\"click\", () => {\n if (this._selectedDS2) {\n if (this._selectedDS2 instanceof Databomb) {\n this.add(Databomb.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof Form) {\n this.add(Form.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof LogicalFile) {\n this.add(LogicalFile.fromDDL(this._ec, this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof RestResult) {\n this.add(new RestResult(this._ec)\n .service(RestService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof WUResult) {\n this.add(new WUResult(this._ec)\n .wu(WU.fromDDL(this._ec, this._selectedDS2.wu().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof RoxieResult) {\n this.add(new RoxieResult(this._ec)\n .service(RoxieService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else {\n console.warn(\"Unknown datasoure type\");\n }\n }\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/airports.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/carriers.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/stats.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n this.add(new RestResult(this._ec)\n .service(new RestService(this._ec)\n .url(\"https://cmsapi.pulselive.com/\")\n .action(\"rugby/rankings/mru\")\n .requestFields([\n new RestField().fieldID(\"xxx\"),\n new RestField().fieldID(\"date\")\n ]))\n .resultName(\"entries\")\n );\n this.add(new WUResult(this._ec)\n .wu(new WU(this._ec).url(\"https://play.hpccsystems.com:18010\").wuid(\"W20200206-140840\"))\n .resultName(\"Result 1\")\n );\n this.add(new LogicalFile(this._ec)\n .url(\"https://play.hpccsystems.com:18010\")\n .logicalFile(\"yelp::lc::clean::review\")\n );\n const vmRoxie = new RoxieService(this._ec)\n .url(\"https://play.hpccsystems.com:18002\")\n .querySet(\"roxie\")\n .queryID(\"h3testcities\")\n ;\n this.add(new RoxieResult(this._ec)\n .service(vmRoxie)\n .resultName(\"Result\")\n );\n this.add(new Form()\n .formFields([\n new FormField().type(\"number\").fieldID(\"id\").value(8),\n new FormField().fieldID(\"first_name\").value(\"John\"),\n new FormField().fieldID(\"last_name\").value(\"Doe\"),\n new FormField().fieldID(\"gender\").default(\"M\"),\n new FormField().type(\"number\").fieldID(\"age\")\n ])\n );\n this.render();\n });\n\n private _dstable = new Table();\n private _selectedDS;\n private _selectedDS2;\n\n private _contextMenu;\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .buttons([this._addButton, this._removeButton, new Spacer(), this._cloneButton, new Spacer(), this._addSamples])\n .widget(this._dstable)\n .columns([\"ID\", \"Type\", \"References\"])\n .on(\"click\", (row, col, sel) => {\n this._selectedDS2 = row.__lparam;\n if (sel && row.References === 0 && row.ID !== \"Empty\") {\n this._selectedDS = row.__lparam;\n } else {\n delete this._selectedDS;\n }\n this._removeButton.enabled(this._selectedDS !== undefined).render();\n this._cloneButton.enabled(this._selectedDS2 !== undefined).render();\n })\n ;\n\n this.initMenu();\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"add_wu_result\", {\n label: \"Workunit Result\",\n execute: () => {\n this.add(new WUResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_logicalfile\", {\n label: \"Logical File\",\n execute: () => {\n this.add(new LogicalFile(this._ec));\n }\n });\n\n commands.addCommand(\"add_roxie\", {\n label: \"Roxie Service\",\n execute: () => {\n this.add(new RoxieResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_rest\", {\n label: \"Rest\",\n execute: () => {\n this.add(new RestResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_databomb\", {\n label: \"Databomb\",\n execute: () => {\n this.add(new Databomb());\n }\n });\n\n commands.addCommand(\"add_form\", {\n label: \"Form\",\n execute: () => {\n this.add(new Form());\n }\n });\n\n this._contextMenu = new ContextMenu({ commands });\n this._contextMenu.addItem({ command: \"add_wu_result\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_logicalfile\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_roxie\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_rest\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_databomb\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_form\", selector: \".common_Button\" });\n }\n\n add(ds: DatasourceRefType) {\n this._ec.appendDatasource(ds);\n this.render();\n }\n\n remove() {\n if (this._selectedDS) {\n this._ec.removeDatasource(this._selectedDS);\n this.render();\n }\n }\n\n private _prevDataID;\n render(callback?) {\n const refs = {};\n this._ec.elements().forEach(e => {\n let ds = e.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds = ds.datasource();\n }\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n refs[ds.id()]++;\n });\n const data = this._ec.datasources().filter(ds => ds.id() !== \"Empty\").map(ds => {\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n return [ds.id(), ds.classID(), refs[ds.id()] || 0, ds];\n });\n const dataID = JSON.stringify(refs);\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element\";\n\nexport class DVTable extends ChartPanel {\n\n private _dvtable = new Table();\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .titleVisible(false)\n .widget(this._dvtable)\n .columns([\"ID\", \"Title\"])\n ;\n }\n\n private _prevDataID;\n render(callback?) {\n const data = this._ec.elements().map(elem => {\n return [elem.id(), elem.visualization().title(), elem];\n });\n const dataID = hashSum(data.map(row => row[0]));\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, publish, publishProxy, SelectionBar, SelectionButton, Spacer } from \"@hpcc-js/common\";\nimport { DatasourceTable } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { PropertyEditor } from \"@hpcc-js/other\";\nimport { SplitPanel, TabPanel } from \"@hpcc-js/phosphor\";\nimport { Activity } from \"./activities/activity\";\nimport { DatasourceAdapt } from \"./activities/databomb\";\nimport { Datasource } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { Mappings, Project } from \"./activities/project\";\nimport { Sort } from \"./activities/sort\";\nimport { Element as ModelElement, IElementError, State } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\n\nimport \"../../src/ddl2/pipelinePanel.css\";\n\nclass PipelineSelectionButton extends SelectionButton {\n\n _label: string;\n label(): string;\n label(_: string): this;\n label(_?: string): string | this {\n if (!arguments.length) return this._label;\n this._label = _;\n this.tooltip(_);\n return this;\n }\n\n _elementErrors: IElementError[] = [];\n errors(): IElementError[];\n errors(_: IElementError[]): this;\n errors(_?: IElementError[]): IElementError[] | this {\n if (!arguments.length) return this._elementErrors;\n this._elementErrors = _;\n this.classed(\"error\", _.length > 0);\n // this.element().classed(\"error\", _.length > 0);\n if (_.length) {\n this.tooltip(_.map(err => {\n const errSourceParts = err.source.split(\".\");\n errSourceParts.splice(0, 1);\n return `${errSourceParts.join(\".\")}: ${err.msg}`;\n }).join(\"\\n\"));\n } else {\n this.tooltip(this._label);\n }\n this.render();\n return this;\n }\n}\n\nclass PipelinePanel extends ChartPanel {\n _owner: PipelineSplitPanel;\n\n datasource = new PipelineSelectionButton().faChar(\"fa-database\").label(\"Datasource\").selected(true);\n filter = new PipelineSelectionButton().faChar(\"fa-filter\").label(\"Filter\");\n project = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Project\");\n groupBy = new PipelineSelectionButton().faChar(\"fa-object-group\").label(\"Group By\");\n sort = new PipelineSelectionButton().faChar(\"fa-sort-alpha-asc\").label(\"Sort\");\n limit = new PipelineSelectionButton().faChar(\"fa-list-ol\").label(\"Limit\");\n mappings = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Mappings\");\n chartPanel = new PipelineSelectionButton().faChar(\"fa-area-chart\").label(\"Visualization\");\n state = new PipelineSelectionButton().faChar(\"fa-check-square-o\").label(\"State\");\n debug = new PipelineSelectionButton().faChar(\"fa-bug\").label(\"Debug\");\n all = new PipelineSelectionButton().faChar(\"fa-list\").label(\"All\");\n\n _propEditor: PropertyEditor = new PropertyEditor()\n .show_header(false)\n .show_settings(false)\n .showFields(false)\n ;\n\n private _buttons = [\n this.datasource,\n this.filter,\n this.project,\n this.groupBy,\n this.sort,\n this.limit,\n new Spacer(),\n this.mappings,\n this.chartPanel,\n new Spacer(),\n this.state,\n this.debug,\n new Spacer(),\n this.all\n ];\n _pipelineButton: PipelineSelectionButton = this.datasource;\n private _pipelineSelection = new SelectionBar()\n .buttons(this._buttons).on(\"selected\", sb => {\n this._pipelineButton = sb;\n this.title(sb.label()).render();\n });\n\n @publish([], \"array\", \"Disabled pipeline items\")\n disableActivities: publish<this, string[]>;\n\n constructor(owner: PipelineSplitPanel) {\n super();\n this._owner = owner;\n this.buttons([this._pipelineSelection]);\n this.title(this.datasource.label());\n super.widget(this._propEditor);\n this._propEditor.monitor((id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n if (source !== this._propEditor) {\n this.propChanged(id, newValue, oldValue, source);\n this.updateState();\n }\n });\n }\n\n selectionButtons(): PipelineSelectionButton[] {\n return this._pipelineSelection.buttons().filter(b => b instanceof PipelineSelectionButton) as PipelineSelectionButton[];\n }\n\n private _propExt: PropertyExt;\n propExt(): PropertyExt;\n propExt(_: PropertyExt): this;\n propExt(_?: PropertyExt): PropertyExt | this {\n if (!arguments.length) return this._propExt;\n this._propExt = _;\n return this;\n }\n\n private peAsDatasource(): Datasource {\n if (this._propExt instanceof Datasource) {\n return this._propExt;\n } else if (this._propExt instanceof DSPicker) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().datasource();\n }\n }\n\n private peAsFilter(): Filters {\n if (this._propExt instanceof Filters) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().filters();\n }\n }\n\n private peAsProject(): Project {\n if (this._propExt instanceof Project) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().project();\n }\n }\n\n private peAsGroupBy(): GroupBy {\n if (this._propExt instanceof GroupBy) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().groupBy();\n }\n }\n\n private peAsSort(): Sort {\n if (this._propExt instanceof Sort) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().sort();\n }\n }\n\n private peAsLimit(): Limit {\n if (this._propExt instanceof Limit) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().limit();\n }\n }\n\n private peAsMappings(): Mappings {\n if (this._propExt instanceof Mappings) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization().mappings();\n } else if (this._propExt instanceof Visualization) {\n return this._propExt.mappings();\n }\n }\n\n private peAsChartPanel(): ChartPanel | Visualization {\n if (this._propExt instanceof ChartPanel) {\n return this._propExt;\n } else if (this._propExt instanceof Visualization) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization();\n }\n }\n\n private peAsState(): State {\n if (this._propExt instanceof State) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.state();\n }\n }\n\n selectionButton(): PipelineSelectionButton {\n if (this._pipelineButton && this._pipelineButton.enabled()) {\n return this._pipelineButton;\n }\n for (const pb of this.selectionButtons()) {\n if (pb.enabled()) {\n pb.selected(true);\n return pb;\n }\n }\n return undefined;\n }\n\n _prevPropExt: PropertyExt;\n _prevPipelineButton: SelectionButton;\n update(domNode, element) {\n super.update(domNode, element);\n this.updateState();\n const pipelineButton = this.selectionButton();\n if (this._prevPropExt !== this._propExt || this._prevPipelineButton !== pipelineButton) {\n this._prevPropExt = this._propExt;\n this._prevPipelineButton = pipelineButton;\n if (this._propExt && pipelineButton) {\n switch (pipelineButton) {\n case this.datasource:\n this._propEditor.widget(this.peAsDatasource());\n break;\n case this.filter:\n this._propEditor.widget(this.peAsFilter());\n break;\n case this.project:\n this._propEditor.widget(this.peAsProject());\n break;\n case this.groupBy:\n this._propEditor.widget(this.peAsGroupBy());\n break;\n case this.sort:\n this._propEditor.widget(this.peAsSort());\n break;\n case this.limit:\n this._propEditor.widget(this.peAsLimit());\n break;\n case this.mappings:\n this._propEditor.widget(this.peAsMappings());\n break;\n case this.chartPanel:\n this._propEditor.widget(this.peAsChartPanel());\n break;\n case this.state:\n this._propEditor.widget(this.peAsState());\n break;\n case this.all:\n this._propEditor.widget(this._propExt);\n break;\n }\n } else {\n this._propEditor.widget(undefined);\n }\n this._owner.loadPreview(this._propEditor.widget());\n }\n }\n\n updateButtonState(pe, sb) {\n sb.enabled(!!pe);\n sb.errors(!!pe && pe.validate() || []);\n }\n\n updateState() {\n this.selectionButtons().forEach(sb => {\n if (sb instanceof PipelineSelectionButton) {\n if (this.disableActivities().indexOf(sb.label()) >= 0) {\n this.updateButtonState(undefined, sb);\n return;\n }\n }\n\n switch (sb) {\n case this.datasource:\n this.updateButtonState(this.peAsDatasource(), sb);\n break;\n case this.filter:\n this.updateButtonState(this.peAsFilter(), sb);\n break;\n case this.project:\n this.updateButtonState(this.peAsProject(), sb);\n break;\n case this.groupBy:\n this.updateButtonState(this.peAsGroupBy(), sb);\n break;\n case this.sort:\n this.updateButtonState(this.peAsSort(), sb);\n break;\n case this.limit:\n this.updateButtonState(this.peAsLimit(), sb);\n break;\n case this.mappings:\n this.updateButtonState(this.peAsMappings(), sb);\n break;\n case this.chartPanel:\n const cp = this.peAsChartPanel();\n sb.enabled(!!cp);\n break;\n case this.state:\n const st = this.peAsState();\n sb.enabled(!!st);\n break;\n case this.debug:\n sb.enabled(false);\n break;\n case this.all:\n sb.enabled(!!this._propExt);\n break;\n }\n if (sb.selected()) {\n this.title(sb.enabled() ? sb.label() : \"\");\n }\n });\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\nPipelinePanel.prototype._class += \" marshaller_PipelinePanel\";\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const activity = this.activity();\n if (activity && (activity as any).fromDDL) {\n (activity as any).fromDDL(this._jsonEditor.json());\n }\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this.jsonText())\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor() {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _activity: PropertyExt;\n activity(_: PropertyExt): this;\n activity(): PropertyExt;\n activity(_?: PropertyExt): PropertyExt | this {\n if (_ === void 0) return this._activity;\n if (this._activity !== _) {\n this._activity = _;\n delete this._prevJson;\n }\n return this;\n }\n\n jsonText(): string {\n const activity = this.activity();\n return activity && (activity as any).toDDL ? JSON.stringify((activity as any).toDDL(), undefined, 4) : \"\";\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n if ((this._prevJson === undefined || this._prevJson === editorJson) && this._prevJson !== json) {\n this._prevJson = json;\n this._jsonEditor.text(json);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const activity = this.activity() as any;\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n this._save.enabled(activity && activity.fromDDL && json !== editorJson).lazyRender();\n this._reset.enabled(json !== editorJson).lazyRender();\n }\n}\n\nexport class PipelineSplitPanel extends SplitPanel {\n private _rhsPropsPanel = new PipelinePanel(this).on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n this.propChanged(id, newValue, oldValue, source);\n });\n private _previewPanel = new TabPanel();\n private _rhsDDLPreview = new DDLPreview();\n private _rhsDataPreview = new DatasourceTable().pagination(true);\n\n @publishProxy(\"_rhsPropsPanel\")\n disableActivities: publish<this, string[]>;\n\n constructor() {\n super();\n this._previewPanel\n .addWidget(this._rhsDataPreview, \"Data\")\n .addWidget(this._rhsDDLPreview, \"DDL\")\n ;\n this\n .addWidget(this._rhsPropsPanel)\n .addWidget(this._previewPanel)\n ;\n }\n\n loadDataProps(pe: PropertyExt) {\n this._rhsPropsPanel\n .propExt(pe)\n .render()\n ;\n }\n\n loadPreview(activity: undefined | PropertyExt) {\n activity = activity instanceof Visualization ? activity.mappings() : activity;\n this._rhsDataPreview\n .datasource(new DatasourceAdapt(activity instanceof Activity ? activity : undefined))\n .lazyRender()\n ;\n this._rhsDDLPreview\n .activity(activity) // instanceof DSPicker ? activity.datasourceRef() : activity)\n .lazyRender()\n ;\n }\n\n refreshPreview() {\n const ds = this._rhsDataPreview.datasource() as DatasourceAdapt;\n if (ds) {\n ds.exec().then(() => {\n this._rhsDataPreview\n .invalidate()\n .lazyRender()\n ;\n this._rhsDDLPreview\n .lazyRender()\n ;\n });\n } else {\n this._rhsDDLPreview\n .lazyRender()\n ;\n }\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\n","import { JSEditor, JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, publish, publishProxy, Utility, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, ddl2Schema, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { Graph } from \"@hpcc-js/graph\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandPalette, CommandRegistry, ContextMenu, SplitPanel, TabPanel, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { Activity } from \"./ddl2/activities/activity\";\nimport { Databomb } from \"./ddl2/activities/databomb\";\nimport { DSPicker } from \"./ddl2/activities/dspicker\";\nimport { Dashboard } from \"./ddl2/dashboard\";\nimport { DSTable } from \"./ddl2/dsTable\";\nimport { DVTable } from \"./ddl2/dvTable\";\nimport { GraphAdapter, VertexData } from \"./ddl2/graphadapter\";\nimport { Element, ElementContainer, State } from \"./ddl2/model/element\";\nimport { Visualization } from \"./ddl2/model/visualization\";\nimport { VizChartPanel } from \"./ddl2/model/vizChartPanel\";\nimport { PipelineSplitPanel } from \"./ddl2/pipelinePanel\";\n\nconst logger = scopedLogger(\"marshaller/dashy\");\n\nimport \"../src/dashy.css\";\n\nexport type FocusType = Element | Activity | Visualization | VizChartPanel | State | undefined;\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const obj = JSON.parse(this._jsonEditor.text());\n this._dashy.importDDL(obj);\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this._ddl)\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor(private _dashy: Dashy) {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _ddl;\n ddl(_: DDL2.Schema): this {\n this._ddl = JSON.stringify(_, undefined, 4);\n return this;\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._prevJson !== this._ddl) {\n this._prevJson = this._ddl;\n this._jsonEditor.text(this._ddl);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const editorJson = this._jsonEditor.text();\n this._save.enabled(this._ddl !== editorJson).lazyRender();\n this._reset.enabled(this._ddl !== editorJson).lazyRender();\n }\n}\n\nexport class Dashy extends SplitPanel {\n\n private _elementContainer: ElementContainer = new ElementContainer();\n\n private _lhsSheet = new TabPanel();\n private _lhsDashboard: Dashboard = new Dashboard(this._elementContainer)\n .on(\"vizActivation\", (elem: Element, wa: WidgetAdapter) => {\n this.focus(this._lhsDashboard, elem);\n })\n .on(\"vizStateChanged\", (elem: Element) => {\n for (const filteredViz of this._elementContainer.filteredBy(elem.id())) {\n if (this.focus() === filteredViz) {\n this._rhsSplitView.refreshPreview();\n }\n }\n })\n ;\n private _lhsDataviews: DVTable = new DVTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDataviews, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _lhsDatasources: DSTable = new DSTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDatasources, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _graphAdapter = new GraphAdapter(this._elementContainer);\n private _lhsPipeline: Graph = new Graph()\n .layout(\"Hierarchy\")\n .allowDragging(false)\n .applyScaleOnLayout(true)\n .on(\"vertex_click\", (row: any, col: string, sel: boolean, ext: any) => {\n const obj: VertexData = row.__lparam[0] || {};\n this.focus(this._lhsPipeline, obj.state || obj.chartPanel || obj.visualization || obj.activity || obj.view);\n })\n .on(\"vertex_contextmenu\", (row: any, col: string, sel: boolean, ext: any) => {\n })\n ;\n private _lhsDebugSheet = new TabPanel();\n private _lhsDebugDDLEditor = new DDLPreview(this);\n private _lhsDebugDDLSchema = new JSONEditor().json(ddl2Schema);\n private _lhsDebugJSEditor = new JSEditor();\n private _lhsDebugCloneEC: ElementContainer = new ElementContainer();\n private _lhsDebugClone: Dashboard = new Dashboard(this._lhsDebugCloneEC).hideSingleTabs(true).titleVisible(false);\n private _lhsDebugDDLv1 = new JSONEditor();\n private _lhsDebugDDLv2 = new JSONEditor();\n\n private _rhsSplitView = new PipelineSplitPanel();\n\n @publishProxy(\"_rhsSplitView\")\n disableActivities: publish<this, string[]>;\n\n private _fileOpen;\n\n static create(target: string, ddl?: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string): Promise<Dashy> {\n return new Promise((resolve, reject) => {\n const dashy = new Dashy()\n .target(target)\n .render((w: Dashy) => {\n if (ddl) {\n w.importDDL(ddl, baseUrl, wuid).then(() => {\n resolve(dashy);\n });\n } else {\n resolve(dashy);\n }\n });\n });\n }\n\n constructor() {\n super(\"horizontal\");\n }\n\n elementContainer(): ElementContainer {\n return this._elementContainer;\n }\n\n clear(): Promise<void> {\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv1);\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv2);\n this._elementContainer.clear();\n this._graphAdapter.clear();\n this.focus(this._lhsDashboard, undefined);\n return this.loadDashboard().then(() => {\n return this._elementContainer.refresh();\n }).then(ec => {\n return;\n });\n }\n\n save(): DDL2.Schema {\n return this._lhsDashboard.save();\n }\n\n restore(json: DDL2.Schema): Promise<void> {\n this._lhsSheet.active(this._lhsDashboard);\n return this.clear().then(() => {\n this._lhsDashboard.restore(json);\n this._lhsDataviews.render();\n this._lhsDatasources.render();\n return this._lhsDashboard.renderPromise().then(() => {\n const elements = this._elementContainer.elements();\n if (elements.length) {\n this._lhsDashboard.activate(elements[0]);\n }\n return this._elementContainer.refresh();\n }).then(() => {\n let hasError = false;\n for (const error of this._elementContainer.validate()) {\n hasError = true;\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n if (hasError) {\n // Re-render to highlight errrors ---\n this._lhsDashboard.renderPromise();\n }\n });\n });\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): Promise<void> {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n const retVal = this.restore(ddl2);\n if (isDDL2Schema(ddl)) {\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv2, \"orig v2\")\n ;\n } else {\n this._lhsDebugDDLv1.json(ddl);\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv1, \"v1\")\n .addWidget(this._lhsDebugDDLv2, \"v1 -> v2\")\n ;\n }\n return retVal;\n }\n\n activeLHS(): Widget {\n let retVal = this._lhsSheet.active();\n if (retVal === this._lhsDebugSheet) {\n retVal = this._lhsDebugSheet.active();\n }\n return retVal;\n }\n\n activeRHS(): Widget {\n return this._rhsSplitView;\n }\n\n private _currSelection: { [sourceID: string]: FocusType } = {};\n\n private focusAsElement(): Element | undefined {\n const currSelection = this.focus();\n return currSelection instanceof Element ? currSelection : undefined;\n }\n\n private focus(): FocusType;\n private focus(source: Widget, item: FocusType): this;\n private focus(source?: Widget, item?: FocusType): FocusType | this {\n if (!arguments.length) return this._currSelection[this.activeLHS().id()];\n if (this._currSelection[source.id()] !== item) {\n this._currSelection[source.id()] = item;\n this.loadRHSSplit();\n }\n return this;\n }\n\n loadRHSSplit() {\n this._rhsSplitView.loadDataProps(this.focus());\n }\n\n loadDataviews(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDataviews) {\n return this._lhsDataviews.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDatasources(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDatasources) {\n return this._lhsDatasources.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDashboard(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDashboard) {\n this._elementContainer.validate();\n return this._lhsDashboard.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadGraph() {\n this._lhsPipeline\n .data({ ...this._graphAdapter.createGraph() }, true)\n ;\n if (this.activeLHS() === this._lhsPipeline) {\n this._lhsPipeline\n .lazyRender()\n ;\n }\n }\n\n loadDDL() {\n this._lhsDebugDDLEditor\n .ddl(this._lhsDashboard.ddl())\n ;\n if (this.activeLHS() === this._lhsDebugDDLEditor) {\n this._lhsDebugDDLEditor\n .lazyRender()\n ;\n }\n }\n\n loadJavaScript() {\n this._lhsDebugJSEditor\n .javascript(this._lhsDashboard.javascript())\n ;\n if (this.activeLHS() === this._lhsDebugJSEditor) {\n this._lhsDebugJSEditor\n .lazyRender()\n ;\n }\n }\n\n loadClone() {\n const json = this.save();\n this._lhsDebugCloneEC.clear();\n this._lhsDebugClone.renderPromise().then(() => {\n this._lhsDebugClone.restore(json);\n this._lhsDebugClone.renderPromise().then(() => {\n return this._lhsDebugCloneEC.refresh();\n }).then(() => {\n for (const error of this._lhsDebugCloneEC.validate()) {\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n });\n });\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"dash_add\", {\n label: \"Add View\",\n execute: () => {\n const newElem = new Element(this._elementContainer);\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n });\n\n commands.addCommand(\"dash_clear\", {\n label: \"Clear\",\n execute: () => {\n this.clear();\n }\n });\n\n commands.addCommand(\"dash_save\", {\n label: \"Save\",\n execute: () => {\n const text = JSON.stringify(this.save(), null, \" \");\n Utility.downloadString(\"JSON\", text, \"dashy\");\n }\n });\n\n commands.addCommand(\"dash_load\", {\n label: \"Open\",\n execute: () => {\n this._fileOpen.property(\"accept\", \".dashy,.json\");\n this._fileOpen.node().click();\n }\n });\n\n // Model Commands ---\n const palette = new CommandPalette({ commands });\n palette.addItem({ command: \"addWUResult\", category: \"Notebook\" });\n palette.addItem({ command: \"addView\", category: \"Notebook\" });\n palette.addItem({ command: \"remove\", category: \"Notebook\" });\n palette.id = \"palette\";\n\n const contextMenu = new ContextMenu({ commands });\n\n contextMenu.addItem({ command: \"dash_add\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ command: \"dash_clear\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ type: \"separator\", selector: `#${this._lhsDashboard.id()}` });\n\n contextMenu.addItem({ command: \"dash_load\", selector: `#${this.id()}` });\n contextMenu.addItem({ command: \"dash_save\", selector: `#${this.id()}` });\n\n document.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n if (contextMenu.open(event)) {\n event.preventDefault();\n }\n });\n }\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\") {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n this._elementContainer.appendDatasource(databomb);\n const newElem = new Element(this._elementContainer);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._lhsSheet)\n .addWidget(this._rhsSplitView)\n ;\n this._lhsSheet\n .addWidget(this._lhsDashboard, \"Dashboard\")\n .addWidget(this._lhsDataviews, \"Dataviews\")\n .addWidget(this._lhsDatasources, \"Datasources\")\n .addWidget(this._lhsPipeline, \"Pipeline\")\n .addWidget(this._lhsDebugSheet, \"Debug\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDataviews:\n this.loadRHSSplit();\n break;\n case this._lhsDatasources:\n this.loadRHSSplit();\n break;\n case this._lhsDashboard:\n this.loadRHSSplit();\n break;\n case this._lhsPipeline:\n this.loadRHSSplit();\n this.loadGraph();\n break;\n case this._lhsDebugSheet:\n this._lhsDebugSheet.childActivation(this._lhsDebugSheet.active());\n break;\n }\n })\n ;\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLEditor, \"v2\")\n .addWidget(this._lhsDebugDDLSchema, \"Schema\")\n .addWidget(this._lhsDebugJSEditor, \"TS\")\n .addWidget(this._lhsDebugClone, \"Clone\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDebugDDLEditor:\n this.loadRHSSplit();\n this.loadDDL();\n break;\n case this._lhsDebugJSEditor:\n this.loadRHSSplit();\n this.loadJavaScript();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n })\n ;\n\n this.initMenu();\n this._rhsSplitView.on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n const currElement = this.focusAsElement();\n if (currElement) {\n currElement.refresh().then(() => {\n this._rhsSplitView.refreshPreview();\n });\n } else {\n this._rhsSplitView.refreshPreview();\n }\n switch (this.activeLHS()) {\n case this._lhsDashboard:\n this.loadDashboard();\n break;\n case this._lhsDatasources:\n this._elementContainer.refresh();\n break;\n case this._lhsPipeline:\n this.loadGraph();\n break;\n case this._lhsDebugDDLEditor:\n this.loadDDL();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n });\n\n const context = this;\n this._fileOpen = element.append(\"input\")\n .attr(\"type\", \"file\")\n .property(\"accept\", \".dashy,.json\")\n .style(\"display\", \"none\")\n .on(\"change\", function () {\n let i = 0;\n let f = this.files[i];\n while (f) {\n const reader = new FileReader();\n reader.onload = (function (theFile) {\n return function (e) {\n try {\n const result = Array.isArray(e.target.result) ? e.target.result[0] : e.target.result;\n const json = JSON.parse(result);\n context.importDDL(json);\n } catch (ex) {\n alert(\"ex when trying to parse json = \" + ex);\n }\n };\n })(f);\n reader.readAsText(f);\n f = this.files[++i];\n break;\n }\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n}\nDashy.prototype._class += \" composite_Dashy\";\n"],"names":["PKG_NAME","PKG_VERSION","__assign","__spreadArray","hashSum","update","PropertyExt","publish","isArray","d3CsvParse","d3TsvParse","debounce","AsyncOrderedQueue","Result","Workunit","createConnection","compare","CommsQuery","upgrade","DDL1.isHipieDatasource","DDL1.isWorkunitDatasource","DDL1.isDatabombDatasource","DDL1.isFormVisualization","DDL1.isPieVisualization","DDL1.isChoroVisualization","DDL1.isLineVisualization","DDL1.isTableVisualization","DDL1.isGraphVisualization","DDL1.isSliderVisualization","DDL2.isRoxieServiceRef","dermatologyUpgrade","merge","sets","length","slice","xl","x","join","subexp","str","typeOf","o","undefined","Object","prototype","toString","call","split","pop","shift","toLowerCase","toUpperCase","toArray","obj","Array","setInterval","assign","target","source","key","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","GEN_DELIMS$$","UCSCHAR$$","UNRESERVED$$","DEC_OCTET$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","HOST$","PCHAR$","PATH_ABEMPTY$","IPRIVATE$$","RegExp","IPV6ADDRESS$","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","replace","labels","encoded","ucs2decode","output","counter","value","charCodeAt","extra","push","ucs2encode","fromCodePoint","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","i","n","bias","basic","lastIndexOf","j","index","oldi","w","t","baseMinusT","out","splice","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","toUnicode","test","toASCII","punycode","SCHEMES","pctEncChar","chr","c","e","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","fragment","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","matches","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","allZeroFields","reduce","acc","field","lastLongest","longestZeroFields","sort","a","b","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","parse","uriString","options","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","indexOf","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","Error","serialize","authority","charAt","absolutePath","resolveComponents","relative","skipNormalization","tolerant","resolve","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","ESCAPE","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","to","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","toAddr","atIdx","localPart","domain","name","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","require$$0","require$$1","jsonSchemaTraverseModule","require$$2","require$$3","require$$4","require$$5","cacheModule","properties","required","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","ajv","_Ajv.default","DDL2","d3Min","d3Max","d3Mean","d3Median","d3Variance","d3Deviation","d3Sum","d3Nest","Utility","d3Descending","d3Ascending","Modal","ToggleButton","Spacer","ChartPanel","Table","FieldForm","Area","Bubble","Bar","Column","Contour","HexBin","Line","Pie","Radar","RadialBar","Scatter","Step","WordCloud","ChoroplethCounties","ChoroplethStates","Leaflet","EntityRectList","AdjacencyGraph","DataGraph","Database","publishProxy","find","Widget","d3Select","DockPanel","Grid","logger","scopedLogger","classID2Meta","Button","JSONEditor","SplitPanel","Subgraph","Vertex","Edge","CommandRegistry","ContextMenu","SelectionButton","PropertyEditor","SelectionBar","ModelElement","DDLPreview","TabPanel","DatasourceTable","Graph","JSEditor","CommandPalette"],"mappings":";;;;;;AAAO,MAAMA,UAAQ,GAAG;AACjB,MAAMC,aAAW,GAAG;AACpB,MAAM,aAAa,GAAG;;ECF7B;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;EACnC,EAAE,aAAa,GAAG,MAAM,CAAC,cAAc;EACvC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EAClF,MAAM,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACvG,EAAE,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;EAC5B,CAAC;;EAEM,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;EAChC,EAAE,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;EAC3C,MAAM,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC;EAC/F,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;EACrB,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;EACxC,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;EACtF;;EAEO,IAAIC,UAAQ,GAAG,WAAW;EACjC,EAAEA,UAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;EACnD,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EAC3D,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;EAC1B,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACtF,MAAM;EACN,MAAM,OAAO,CAAC;EACd,EAAE;EACF,EAAE,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACxC;;EAcO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;EAC1D,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;EAC9H,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC;EAChI,OAAO,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC;EACnJ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;EAC/D;;EAmDO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;EACvD,EAAE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;EAChI;;EAEO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;EAC7D,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC7G,EAAE,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;EAC7D,MAAM,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAChG,MAAM,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACnG,MAAM,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;EACnH,MAAM,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;EAC3E,EAAE,CAAC,CAAC;EACJ;;EAEO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;EAC3C,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,GAAG,MAAM,EAAE,SAAS,CAAC;EAClM,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;EAC7J,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACnE,EAAE,SAAS,IAAI,CAAC,EAAE,EAAE;EACpB,MAAM,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC;EACnE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI;EACpD,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;EACtK,UAAU,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;EACjD,UAAU,QAAQ,EAAE,CAAC,CAAC,CAAC;EACvB,cAAc,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;EACtC,cAAc,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;EACrE,cAAc,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,cAAc,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;EACtD,cAAc;EACd,kBAAkB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;EAC7H,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;EACvG,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;EACtF,kBAAkB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;EACpF,kBAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;EACvC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;EAChC;EACA,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;EACpC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAC/D,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;EACtF,EAAE;EACF;;EA+DO,SAASC,eAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;EAC9C,EAAE,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EACvF,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;EAC9B,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;EAC9D,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;EACzB,MAAM;EACN,EAAE;EACF,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC1D;;EA0GuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;EACvH,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;EAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;EAClF;;ECrUM,SAAU,SAAS,CAAC,aAAa,EAAA;EACnC,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;;EAE9B,QAAA,OAAO,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;MAC9D;EACA,IAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;;EAE5F,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;MACxC;;;MAGA,IAAM,KAAK,GAAG;WACT,IAAI,CAAC,aAAa;EAClB,SAAA,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAE,CAAA,CAA1C,CAA0C;WACrD,IAAI,CAAC,IAAI,CAAC;MACf,OAAO,IAAA,CAAA,MAAA,CAAK,KAAK,EAAA,IAAA,CAAI;EACzB;EAEM,SAAU,qBAAqB,CAAC,IAAI,EAAA;MACtC,QAAQ,IAAI;EACR,QAAA,KAAK,SAAS;EACV,YAAA,OAAO,SAAS;EACpB,QAAA,KAAK,SAAS;EACd,QAAA,KAAK,WAAW;EAChB,QAAA,KAAK,YAAY;EACjB,QAAA,KAAK,UAAU;EACf,QAAA,KAAK,QAAQ;EACb,QAAA,KAAK,UAAU;EACf,QAAA,KAAK,gBAAgB;EACrB,QAAA,KAAK,kBAAkB;EACvB,QAAA,KAAK,iBAAiB;EACtB,QAAA,KAAK,QAAQ;EACT,YAAA,OAAO,QAAQ;EACnB,QAAA,KAAK,YAAY;EACjB,QAAA,KAAK,SAAS;EACd,QAAA,KAAK,oBAAoB;EACzB,QAAA,KAAK,uBAAuB;EAC5B,QAAA,KAAK,uBAAuB;EAC5B,QAAA,KAAK,oBAAoB;EACzB,QAAA,KAAK,iBAAiB;EAClB,YAAA,OAAO,UAAU;EACrB,QAAA,KAAK,QAAQ;EACT,YAAA,OAAO,QAAQ;EACnB,QAAA,KAAK,OAAO;EACR,YAAA,OAAO,OAAO;;EAEtB,IAAA,OAAO,QAAQ;EACnB;EAEM,SAAU,gBAAgB,CAAC,GAAQ,EAAA;MACrC,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;UACvC,OAAO;EACH,YAAA,IAAI,EAAE,SAAS;cACf,EAAE,EAAE,GAAG,CAAC,IAAI;cACZ,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB;WAC/C;MACL;WAAO;UACH,OAAO;cACH,EAAE,EAAE,GAAG,CAAC,IAAI;EACZ,YAAA,IAAI,EAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI;WACvC;MACL;EACJ;EAEM,SAAU,qBAAqB,CAAC,GAAe,EAAA;EACjD,IAAA,OAAO,GAAG;EACd;EAaA;;;;;EAKE;AAEF,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAAuC,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EAAvC,IAAA,SAAA,QAAA,GAAA;;UA4DY,KAAA,CAAA,YAAY,GAA+B,EAAE;UAqDrD,KAAA,CAAA,UAAU,GAA0B,EAAE;UAS9B,KAAA,CAAA,aAAa,GAAW,EAAE;UAC1B,KAAA,CAAA,WAAW,GAA0B,EAAE;UACvC,KAAA,CAAA,SAAS,GAA0B,EAAE;;MAcjD;MAvII,QAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAI,EAAA;EACT,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;EAAE,YAAA,OAAO,EAAE;UACzC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA;EAC7C,YAAA,QAAQ,KAAK,CAAC,IAAI;EACd,gBAAA,KAAK,QAAQ;;EAET,oBAAA,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,QAAQ;EAChD,gBAAA,KAAK,UAAU;EACX,oBAAA,OAAO,IAAI;;EAEnB,YAAA,OAAO,KAAK;EAChB,QAAA,CAAC,CAAC;EACF,QAAA,IAAI,WAAW,CAAC,MAAM,EAAE;EACpB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;kBACf,KAAyB,IAAA,EAAA,GAAA,CAAW,EAAX,aAAA,GAAA,WAAW,EAAX,yBAAW,EAAX,EAAA,EAAW,EAAE;EAAjC,oBAAA,IAAM,UAAU,GAAA,aAAA,CAAA,EAAA,CAAA;EACjB,oBAAA,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;kBAC5C;EACA,gBAAA,OAAO,GAAG;EACd,YAAA,CAAC,CAAC;UACN;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAID,QAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAY,EAAA;UACvB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,eAAe;EAClD,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC;EACxB,QAAA,OAAO,IAAI;MACf,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAOC,cAAO,CAAAF,UAAA,CAAA,EAAA,EACP,IAAI,CAAA,CACT;MACN,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;MACxF,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;EACI,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,EAAE;MACb,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,EAAE,EAAE;MACpB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,EAAE;MACb,CAAC;EAGD,IAAA,QAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,YAAY;MACtF,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;EAC9C,QAAA,OAAO,YAAA,EAAM,OAAA,QAAQ,CAAA,CAAR,CAAQ;MACzB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE;MAChD,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;UACzD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA,CAAhC,CAAgC,CAAC;MAC7E,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,OAAe,EAAA;UACvB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,KAAK,OAAO,CAAA,CAApB,CAAoB,CAAC,CAAC,MAAM,EAAE;EACjE,YAAA,OAAO,IAAI;UACf;EAAO,aAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;cAC9B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;UACrD;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,IAAsB,EAAE,QAAkB,EAAA;UACpD,KAAsB,IAAA,EAAA,GAAA,CAAQ,EAAR,UAAA,GAAA,QAAQ,EAAR,sBAAQ,EAAR,EAAA,EAAQ,EAAE;EAA3B,YAAA,IAAM,OAAO,GAAA,UAAA,CAAA,EAAA,CAAA;cACd,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;cAC7C,IAAI,WAAW,EAAE;kBACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE;sBACjC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;kBACvC;EACA,gBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACrD,oBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;kBAChD;cACJ;UACJ;MACJ,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAsB,EAAE,QAAkB,EAAA;EACtD,QAAA,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;MACrF,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;UACnC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC;MACvE,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;MACjF,CAAC;EAGD,IAAA,QAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;MACrG,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;MACxB,CAAC;MAKO,QAAA,CAAA,SAAA,CAAA,iBAAiB,GAAzB,UAA0B,MAA6B,EAAA;EACnD,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;EACxB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;EAC5D,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;EACzB,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;EACzB,YAAA,IAAI,CAAC,SAAS,GAAGG,aAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;UAC/D;UACA,OAAO,IAAI,CAAC,SAAS;MACzB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UACI,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;MAChD,CAAC;MACL,OAAA,QAAC;EAAD,CA1IA,CAAuCC,kBAAW,CAAA;AA4IlD,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EAAnC,IAAA,SAAA,aAAA,GAAA;;UACY,KAAA,CAAA,WAAW,GAAe,EAAE;;MASxC;MALI,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAc,EAAA;UACrB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,QAAA,OAAO,IAAI;MACf,CAAC;MACL,OAAA,aAAC;EAAD,CAVA,CAAmC,QAAQ,CAAA;EAW3C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;AAElD,MAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;MAAsC,SAAA,CAAA,gBAAA,EAAA,MAAA,CAAA;EAAtC,IAAA,SAAA,gBAAA,GAAA;;MA6GA;MAzGI,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAc,EAAA;UACrB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,MAAA,CAAA,SAAK,CAAC,UAAU,CAAA,IAAA,CAAA,IAAA,CAAE;EAChD,QAAA,MAAA,CAAA,SAAK,CAAC,UAAU,CAAA,IAAA,CAAA,IAAA,EAAC,CAAC,CAAC;EACnB,QAAA,IAAI,YAAsB;UAC1B,KAAuB,IAAA,EAAA,GAAA,CAAC,EAAD,EAAA,GAAA,CAAC,EAAD,cAAC,EAAD,EAAA,EAAC,EAAE;EAArB,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;cACf,IAAI,YAAY,EAAE;EACd,gBAAA,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;cACzC;cACA,YAAY,GAAG,QAAQ;UAC3B;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;EAChC,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC;MACpB,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;UAChC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;MACpC,CAAC;MAES,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAA1B,UAA2B,QAAkB,EAAA;UACzC,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA;cAClC,OAAO;EACH,gBAAA,IAAI,EAAE,MAAM;EACZ,gBAAA,EAAE,EAAE;eACP;EACL,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;UACI,IAAI,MAAM,GAA0C,EAAE;EACtD,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAiB,EAAjB,EAAA,GAAA,IAAI,CAAC,UAAU,EAAE,EAAjB,EAAA,GAAA,EAAA,CAAA,MAAiB,EAAjB,EAAA,EAAiB,EAAE;EAArC,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;UAC3D;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,IAAgB,EAAE,KAAgC,EAAA;UAAxD,IAAA,KAAA,GAAA,IAAA;EAAM,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,CAAgB,CAAA,CAAA;EAAE,QAAA,IAAA,KAAA,KAAA,MAAA,EAAA,EAAA,KAAA,GAAgB,MAAM,CAAC,SAAS,CAAA,CAAA;EACpD,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAA;EACpB,YAAA,IAAM,IAAI,GAAG,KAAI,CAAC,OAAO,EAAE;cAC3B,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;EACpC,gBAAA,OAAO,IAAI;cACf;cACA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC;EACzC,QAAA,CAAC,CAAC;MACN,CAAC;;MAGD,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiC,EAAA;EAAjC,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiC,CAAA,CAAA;UAClC,OAAOF,cAAO,CAAAF,UAAA,CAAA,EACV,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,UAAA,QAAQ,EAAA,EAAI,OAAA,QAAQ,CAAC,IAAI,EAAE,CAAA,CAAf,CAAe,CAAC,CAAC,EAAA,EAC7D,IAAI,CAAA,CACT;MACN,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;MACpC,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,IAAI,MAAM,GAAa,EAAE;EACzB,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAiB,EAAjB,EAAA,GAAA,IAAI,CAAC,UAAU,EAAE,EAAjB,EAAA,GAAA,EAAA,CAAA,MAAiB,EAAjB,EAAA,EAAiB,EAAE;EAArC,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;cACf,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;UAChD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;MAClC,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE;MAClC,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;MACpC,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,OAAe,EAAA;UACvB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;MAC3C,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;UACnC,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;MACtC,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAsB,EAAE,QAAkB,EAAA;UACtD,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;MAC/C,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,IAAsB,EAAE,QAAkB,EAAA;UACpD,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;MAC7C,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;MAC7B,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;MAChC,CAAC;MACL,OAAA,gBAAC;EAAD,CA7GA,CAAsC,aAAa,CAAA;EA8GnD,gBAAgB,CAAC,SAAS,CAAC,MAAM,IAAI,mBAAmB;AAExD,MAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;MAAuC,SAAA,CAAA,iBAAA,EAAA,MAAA,CAAA;EAAvC,IAAA,SAAA,iBAAA,GAAA;;MAyEA;MAnEI,iBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAY,EAAA;UAAtB,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,KAAK,SAAS;cAAE,OAAO,IAAI,CAAC,UAAU;EAC3C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;EACrB,YAAA,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;UAChC;EACA,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;EACnB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,UAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAA;cAC/C,KAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;EACzC,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,IAAI;MACf,CAAC;;MAGD,iBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiC,EAAA;EAAjC,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiC,CAAA,CAAA;EAClC,QAAA,OAAOE,cAAO,CAAAF,UAAA,CAAA,EACV,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAA,EAC/B,IAAI,EACT;MACN,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE;MACnC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE;MACzC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;MACvC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;MACtC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;MACvC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE;MACzC,CAAC;MAED,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,OAAe,EAAA;UACvB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;MAChD,CAAC;MAED,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;UACnC,IAAI,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;MAC3C,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAsB,EAAE,QAAkB,EAAA;UACtD,IAAI,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;MACpD,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,IAAsB,EAAE,QAAkB,EAAA;UACpD,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC;MAClD,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE;MAClC,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE;MACrC,CAAC;MACL,OAAA,iBAAC;EAAD,CAzEA,CAAuC,aAAa,CAAA;EA0EpD,iBAAiB,CAAC,SAAS,CAAC,MAAM,IAAI,oBAAoB;;ECpa1D,IAAI,YAAY,GAAG,CAAC;AACpB,MAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;MAAgC,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAE5B,IAAA,SAAA,UAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EACP,QAAA,KAAI,CAAC,GAAG,GAAG,aAAM,EAAE,YAAY,CAAE;;MACrC;MACJ,OAAA,UAAC;EAAD,CANA,CAAgC,QAAQ,CAAA;AAWxC,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EAY/B,IAAA,SAAA,aAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MATA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAqB,EAAA;UAC5B,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,QAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;EACtB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiC,EAAA;EAAjC,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiC,CAAA,CAAA;UAClC,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAA,UAAA,CAAA,EACb,UAAU,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,EAAA,EACnE,IAAI,CAAA,CACT;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;WAC3B;MACL,CAAC;EAzBD,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EAC3C,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MA0BnC,OAAA,aAAC;GAAA,CA5BkC,QAAQ,CAAA;EA6B3C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;;AC7ClD,MAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;MAA+B,SAAA,CAAA,SAAA,EAAA,MAAA,CAAA;EAuB3B,IAAA,SAAA,SAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EANA,IAAA,SAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS;MACpC,CAAC;EAMD,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;EACjB,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE;EAClB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,YAAA,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC,GAAG;WAC1E;MACf,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAW,EAAA;EACf,QAAA,OAAO;EACF,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI;EACb,aAAA,OAAO,CAAC,GAAG,CAAC,EAAE;EACd,aAAA,OAAO,CAAC,GAAG,CAAC,OAAO;EACnB,aAAA,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;MAEvG,CAAC;MAEM,SAAA,CAAA,OAAO,GAAd,UAAe,GAAW,EAAA;UACtB,OAAO,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACvC,CAAC;MAID,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAQ,EAAA;UACV,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;MAC5C,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,QAAQ,IAAI,CAAC,IAAI,EAAE;EACf,YAAA,KAAK,SAAS;kBACV,OAAO,UAAA,IAAI,EAAA,EAAI,OAAA,CAAC,CAAC,IAAI,CAAA,CAAN,CAAM;EACzB,YAAA,KAAK,QAAQ;kBACT,OAAO,UAAA,IAAI,EAAA,EAAI,OAAA,CAAC,IAAI,CAAA,CAAL,CAAK;EACxB,YAAA,KAAK,QAAQ;kBACT,OAAO,UAAA,IAAI,EAAA,EAAI,OAAA,EAAE,GAAG,IAAI,CAAA,CAAT,CAAS;;EAEhC,QAAA,OAAO,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAA,CAAJ,CAAI;MACvB,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;MAC9D,CAAC;EAvED,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC;;EACV,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAG/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;;EACtB,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EAGjE,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EACN,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAG1D,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EAChB,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAIhD,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,UAAC,CAAY,EAAA,EAAK,OAAA,CAAC,CAAC,iBAAiB,EAAE,CAAA,CAArB,CAAqB,EAAE,CAAC;;EACxF,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MA2D5C,OAAA,SAAC;GAAA,CA5E8BD,kBAAW,CAAA;AA8E1C,MAAA,IAAA,kBAAA,UAAA,MAAA,EAAA;MAA0B,SAAA,CAAA,IAAA,EAAA,MAAA,CAAA;EAItB,IAAA,SAAA,IAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAEA,IAAA,IAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,MAAM;EACZ,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS;WAChD;MACL,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAe,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EACnC,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;EAElD,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,IAAA,CAAA,OAAO,GAAd,UAAe,GAAe,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;UAC1C,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MAC1C,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS,CAAC;MACnD,CAAC;MAED,IAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAJ,UAAA,CAAA,EACb,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAA,EACd,IAAI,EACT;MACN,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;MAC5B,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,IAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAC9C,IAAM,MAAM,GAAkB,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS,CAAC;EACpE,QAAA,OAAO,YAAA,EAAM,OAAA,MAAM,CAAA,CAAN,CAAM;MACvB,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;MAC5B,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAM,MAAM,GAAG,EAAE;EACjB,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;cACxB,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE;EACvC,QAAA,CAAC,CAAC;UACF,OAAO,CAAC,MAAM,CAAC;MACnB,CAAC;;EAGD,IAAA,IAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC;MACZ,CAAC;EAhED,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;;EACvC,KAAA,EAAA,IAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAiE3C,OAAA,IAAC;GAAA,CAnEyB,UAAU,CAAA;EAoEpC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO;;EChJhC,SAAS,SAAS,CAAC,KAAU,EAAA;EACzB,IAAA,IAAIC,cAAO,CAAC,KAAK,CAAC,EAAE;EAChB,QAAA,OAAO,SAAS;MACpB;EACA,IAAA,IAAM,IAAI,GAAG,OAAO,KAAK;MACzB,QAAQ,IAAI;EACR,QAAA,KAAK,SAAS;EACd,QAAA,KAAK,QAAQ;EACb,QAAA,KAAK,QAAQ;EACb,QAAA,KAAK,QAAQ;EACT,YAAA,OAAO,IAAI;;EAEnB,IAAA,OAAO,QAAQ;EACnB;EAEM,SAAU,WAAW,CAAC,GAAW,EAAE,SAAS,EAAA;;MAE9C,IAAM,MAAM,GAAkB,EAAE;8BACrB,GAAG,EAAA;EACV,QAAA,IAAM,KAAK,GAAG;EACV,YAAA,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EACzB,YAAA,EAAE,EAAE;WACQ;EAChB,QAAA,QAAQ,KAAK,CAAC,IAAI;EACd,YAAA,KAAK,QAAQ;kBACT,KAAkB,IAAA,EAAA,GAAA,CAAS,EAAT,WAAA,GAAA,SAAS,EAAT,uBAAS,EAAT,EAAA,EAAS,EAAE;EAAxB,oBAAA,IAAM,KAAG,GAAA,WAAA,CAAA,EAAA,CAAA;sBACV,IAAI,KAAK,GAAG,KAAK;sBACjB,KAAK,IAAM,SAAS,IAAI,KAAG,CAAC,GAAG,CAAC,EAAE;EAC9B,wBAAA,IAAM,SAAS,GAAG,WAAW,CAAC,KAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EACnD,wBAAA,KAAK,CAAC,MAAM,GAAG,EAAE;EACjB,wBAAA,IAAI,SAAS,CAAC,MAAM,EAAE;8BAClB,SAAS,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA,CAAxB,CAAwB,CAAC;8BACjD,KAAK,GAAG,IAAI;0BAChB;0BACA;sBACJ;EACA,oBAAA,IAAI,KAAK;0BAAE;kBACf;kBACA;EACJ,YAAA,KAAK,SAAS;kBACV,KAAkB,IAAA,EAAA,GAAA,CAAS,EAAT,WAAA,GAAA,SAAS,EAAT,uBAAS,EAAT,EAAA,EAAS,EAAE;EAAxB,oBAAA,IAAM,KAAG,GAAA,WAAA,CAAA,EAAA,CAAA;EACV,oBAAA,IAAI,KAAG,CAAC,GAAG,CAAC,IAAI,KAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;EAC7B,wBAAA,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAG,CAAC,GAAG,CAAC,CAAC;0BACnD;sBACJ;kBACJ;kBACA;;EAER,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;MA9BtB,KAAK,IAAM,GAAG,IAAI,GAAG,EAAA;kBAAV,GAAG,CAAA;EA+Bb,IAAA;EACD,IAAA,OAAO,MAAM;EACjB;AAEA,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAA8B,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EAI1B,IAAA,SAAA,QAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UAHH,KAAA,CAAA,SAAS,GAA0B,EAAE;;MAI7C;MAEA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,WAA4B,EAAA;EAA5B,QAAA,IAAA,WAAA,KAAA,MAAA,EAAA,EAAA,WAAA,GAAA,KAA4B,CAAA,CAAA;UAC9B,OAAO;EACH,YAAA,IAAI,EAAE,UAAU;EAChB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE;EACjD,YAAA,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS;WAChD;MACL,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAmB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EACvC,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,MAAM,CAAC,GAAG,CAAC,MAAM;EACjB,aAAA,OAAO,CAAC,GAAG,CAAC,OAAO;EACnB,aAAA,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;EAEtD,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,QAAA,CAAA,OAAO,GAAd,UAAe,GAAmB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;UAC9C,OAAO,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MAC9C,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS,CAAC;MACvD,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,IAAI;EACA,YAAA,QAAQ,IAAI,CAAC,MAAM,EAAE;EACjB,gBAAA,KAAK,KAAK;sBACN,IAAI,CAAC,SAAS,GAAGC,eAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;sBAC3C;EACJ,gBAAA,KAAK,KAAK;sBACN,IAAI,CAAC,SAAS,GAAGC,eAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;sBAC3C;EACJ,gBAAA,KAAK,MAAM;EACX,gBAAA;EACI,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;sBAC3C;;EAER,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;UACpE;UAAE,OAAO,CAAC,EAAE;EACR,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;EACvB,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;UACvB;MACJ,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAY,EAAA;UACb,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAR,UAAA,CAAA,EACb,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAA,EAClB,IAAI,CAAA,CACT,GAAG,IAAI,CAAC,OAAO,EAAE;MACvB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;MAC5B,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,UAAU;MACrB,CAAC;EAEO,IAAA,QAAA,CAAA,SAAA,CAAA,aAAa,GAArB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;EAAE,YAAA,OAAO,EAAE;EAC1C,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;MACzD,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,YAAA,EAAM,OAAA,KAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAE,EAAT,CAAS,CAAC,CAAA,CAAtC,CAAsC;MACvD,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;MAC5B,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAM,aAAa,GAAG,EAAE;EACxB,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAA,KAAK,EAAA;cAC5B,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE;EACvD,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;cACzB,IAAM,MAAM,GAAG,EAAE;EACjB,YAAA,KAAK,IAAM,GAAG,IAAI,aAAa,EAAE;EAC7B,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;cAC9C;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC,CAAC;MACN,CAAC;;EAGD,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM;MAChC,CAAC;MACL,OAAA,QAAC;EAAD,CAtGA,CAA8B,UAAU,CAAA;EAuGxC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW;EAWxC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;EAC9F,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;EAChG,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;EAElH,IAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM;EAC/C,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAA0B,CAAE,EAAA;MACpD,IAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACnD,IAAA,IAAI,SAAS,CAAC,MAAM,EAAE;UAClB,IAAI,CAAC,cAAc,EAAE;MACzB;EACA,IAAA,OAAO,MAAM;EACjB,CAAC;EAED,IAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO;EACtD,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAA0B,CAAE,EAAA;MACrD,IAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACzD,IAAA,IAAI,SAAS,CAAC,MAAM,EAAE;UAClB,IAAI,CAAC,cAAc,EAAE;MACzB;EACA,IAAA,OAAO,MAAM;EACjB,CAAC;AAEM,MAAM,aAAa,GAAG,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI;AAEpE,MAAA,eAAA,kBAAA,YAAA;EAGI,IAAA,SAAA,eAAA,CAAY,QAAkB,EAAA;EAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,aAAa;MAC9C;EAEA,IAAA,eAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,YAAA;EACrC,YAAA,OAAO,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE;EAChC,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,eAAA,CAAA,SAAA,CAAA,EAAE,GAAF,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;MAC9B,CAAC;MACD,eAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiC,EAAA;EAAjC,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiC,CAAA,CAAA;UAClC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;MACpC,CAAC;EACD,IAAA,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;MACjC,CAAC;EACD,IAAA,eAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAmB,GAAG,EAAE;MACxG,CAAC;EACD,IAAA,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC;MAC/D,CAAC;EACD,IAAA,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,IAAY,EAAE,KAAa,EAAA;UAAjC,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAA;cACpB,IAAM,IAAI,GAAG,KAAI,CAAC,SAAS,CAAC,OAAO,EAAE;cACrC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;EACpC,gBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;cAChC;EACA,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC;EAC1D,QAAA,CAAC,CAAC;MACN,CAAC;MACL,OAAA,eAAC;EAAD,CAAC,EArCD;;AC/LA,MAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;MAAwC,SAAA,CAAA,SAAA,EAAA,MAAA,CAAA;EAYpC,IAAA,SAAA,SAAA,CAAsB,GAAqB,EAAA;UACvC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADW,KAAA,CAAA,GAAG,GAAH,GAAG;UAVf,KAAA,CAAA,OAAO,GAAiB,EAAE;UAC1B,KAAA,CAAA,KAAK,GAAkB,EAAE;UAE3B,KAAA,CAAA,KAAK,GAA0B,EAAE;UAsEjC,KAAA,CAAA,KAAK,GAAGS,eAAQ,CAAC,YAAA;cACrB,IAAI,KAAI,CAAC,aAAa,KAAK,KAAI,CAAC,IAAI,EAAE,EAAE;EACpC,gBAAA,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,IAAI,EAAE;EAChC,gBAAA,OAAO,gBAAK,CAAC,IAAI,CAAA,IAAA,CAAA,KAAA,CAAE,CAAC,IAAI,CAAC,YAAA;EACrB,oBAAA,OAAO,KAAI,CAAC,MAAM,EAAE;EACxB,gBAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,EAAA;sBACZ,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;EACxC,gBAAA,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;EACN,oBAAA,KAAI,CAAC,KAAK,GAAG,EAAE;EACnB,gBAAA,CAAC,CAAC;cACN;mBAAO;EACH,gBAAA,OAAO,OAAO,CAAC,OAAO,EAAE;cAC5B;EACJ,QAAA,CAAC,CAAC;EAsBM,QAAA,KAAA,CAAA,OAAO,GAAG,IAAIC,wBAAiB,EAAE;EAYjC,QAAA,KAAA,CAAA,MAAM,GAAGD,eAAQ,CAAC,UAAC,OAAgC,EAAE,UAAsC,EAAA;EAAxE,YAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAA,GAAkB,KAAI,CAAC,OAAO,EAAE,CAAA,CAAA;EAAE,YAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAA,GAAqB,KAAI,CAAC,UAAU,EAAE,CAAA,CAAA;cAC/F,IAAM,KAAK,GAA0B,EAAE;cACvC,IAAI,OAAO,GAAG,UAAU,IAAI,KAAI,CAAC,KAAK,EAAE,EAAE;EACtC,gBAAA,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAI,CAAC,KAAK,EAAE,CAAC,CAAC;cAC5C;mBAAO;kBACH,IAAM,QAAQ,GAAG,KAAI,CAAC,KAAK,EAAE,GAAG,UAAU;EAC1C,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE;sBAC9B,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;kBAC3E;cACJ;cACA,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA;kBACpC,IAAI,OAAO,GAAU,EAAE;kBACvB,KAAuB,IAAA,EAAA,GAAA,CAAS,EAAT,WAAA,GAAA,SAAS,EAAT,uBAAS,EAAT,EAAA,EAAS,EAAE;EAA7B,oBAAA,IAAM,QAAQ,GAAA,WAAA,CAAA,EAAA,CAAA;EACf,oBAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;kBACtC;EACA,gBAAA,OAAO,OAAO;EAClB,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;UA7HE;EACK,aAAA,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,OAAO,EAAE;eAC1B,UAAU,CAAC,KAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;;MAE1C;MAEA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAOP,cAAO,CAAAF,UAAA,CAAA,EACV,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EACvB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAA,EAC1B,IAAI,EACT;MACN,CAAC;EAMD,IAAA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE;EACpC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE;cAChC,OAAO,IAAI,CAAC,kBAAkB;UAClC;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;cAC1B,IAAI,CAAC,kBAAkB,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,CAAA,IAAA,CAAA,IAAA,CAAE,CAAC,IAAI,CAAC,YAAA;EAC/C,gBAAA,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,aAAa,EAAE;EACnC,gBAAA,IAAI,KAAI,CAAC,OAAO,EAAE;EACd,oBAAA,OAAO,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE;kBACjC;EACA,gBAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC;EACtC,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,MAAM,EAAA;EACV,gBAAA,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;EAC1B,gBAAA,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE;EAC9B,gBAAA,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,IAAI,KAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;EAClG,YAAA,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;EACN,gBAAA,KAAI,CAAC,MAAM,GAAG,CAAC;EACf,gBAAA,KAAI,CAAC,OAAO,GAAG,EAAE;EACjB,gBAAA,KAAI,CAAC,KAAK,GAAG,EAAE;EACnB,YAAA,CAAC,CAAC;UACN;UACA,OAAO,IAAI,CAAC,kBAAkB;MAClC,CAAC;MAID,SAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAiB,EAAA;UAC5B,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,KAAK;EACxC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;UACd,IAAI,CAAC,WAAW,EAAE;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,YAAA,EAAM,OAAA,KAAI,CAAC,cAAc,EAAE,CAAA,CAArB,CAAqB;MACtC,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;MACvB,CAAC;EAkBD,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO,IAAI,CAAC,MAAM;MACtB,CAAC;;EAGK,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAX,UAAY,IAAY,EAAE,KAAa,EAAA;;;EACnC,gBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE;EAC5C,oBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,MAAM,EAAE,CAAA;kBACxB;kBACA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;;;EAClC,IAAA,CAAA;EAGO,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAd,UAAe,IAAY,EAAE,KAAa,EAAA;EACtC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;EACf,aAAA,SAAS,CAAC,IAAI,EAAE,KAAK;eACrB,KAAK,CAAC,UAAA,CAAC,EAAA;EACJ,YAAA,OAAO,EAAE;UACb,CAAC,CAAC;EACF,YAAA,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAC1B;MACL,CAAC;EAhHD,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC;;EACZ,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC;;EACJ,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAkItC,OAAA,SAAC;GAAA,CA5IuC,UAAU,CAAA;EA6IlD,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,YAAY;AAE1C,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAA8B,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EA4B1B,IAAA,SAAA,QAAA,CAAY,GAAqB,EAAA;EAC7B,QAAA,IAAA,KAAA,GAAA,MAAK,CAAA,IAAA,CAAA,IAAA,EAAC,GAAG,CAAC,IAAA,IAAA;UACV,KAAI,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,KAAI,CAAC,GAAG,CAAC;;MAC/B;MAzBA,QAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,CAAM,EAAA;UACL,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,GAAG;EACtC,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC;EACZ,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;EACtB,QAAA,OAAO,IAAI;MACf,CAAC;MAQD,QAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAU,EAAA;UACjB,IAAI,CAAC,KAAK,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EACzC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;EACxB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;UAC3B;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAOD,IAAA,QAAA,CAAA,SAAA,CAAA,GAAG,GAAH,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;MACzB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;MAC1B,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;;UACI,OAAO;EACH,YAAA,IAAI,EAAE,UAAU;EAChB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;EACnB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;cACjB,OAAO,GAAA,EAAA,GAAA,EAAA;EACH,gBAAA,EAAA,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA,GAAG;EACjB,oBAAA,MAAM,EAAE,IAAI,CAAC,cAAc;EAC9B,iBAAA;EACJ,gBAAA,EAAA;WACJ;MACL,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAmB,EAAE,MAAc,EAAA;UACvC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;EAChC,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;UACrE;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAEM,QAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAAmB,EAAE,EAAM,EAAE,UAAkB,EAAE,MAAc,EAAA;EAChG,QAAA,OAAO,IAAI,QAAQ,CAAC,EAAE;eACjB,EAAE,CAAC,EAAE;eACL,UAAU,CAAC,UAAU;eACrB,OAAO,CAAC,GAAG,CAAC;MAErB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;EACpD,YAAA,OAAOM,YAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;UACpH;EACA,QAAA,OAAO,SAAS;MACpB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;UACI,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC;EACd,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI;EAClB,SAAA,CAAC;MACN,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAY,EAAA;UACb,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC;EACd,YAAA,GAAG,EAAE,IAAI,CAAC,KAAK;EAClB,SAAA,CAAC;MACN,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,IAAI,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,UAAU,EAAE,CAAE;MACjD,CAAC;EAxFD,IAAA,UAAA,CAAA;EADC,QAAAN,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;oCAC/B,EAAE;EAAC,KAAA,EAAA,QAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;EAaR,IAAA,UAAA,CAAA;EAHC,QAAAA,cAAO,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,YAAA;EAC/B,YAAA,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE;EAC/D,QAAA,CAAC,CAAC;;EACkB,KAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MA4ExB,OAAA,QAAC;GAAA,CA5F6B,SAAS,CAAA;EA6FvC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW;AAExC,MAAA,EAAA,kBAAA,UAAA,MAAA,EAAA;MAAwB,SAAA,CAAA,EAAA,EAAA,MAAA,CAAA;EA0BpB,IAAA,SAAA,EAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAFb,KAAA,CAAA,QAAQ,GAA+B,EAAE;UA0E3C,KAAA,CAAA,YAAY,GAAa,EAAE;;MAtEnC;MAvBA,EAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAU,EAAA;UACV,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,IAAI;EACvC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;UACb,IAAI,CAAC,WAAW,EAAE;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,EAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,CAAU,EAAA;UACX,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,KAAK;EACxC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;UACd,IAAI,CAAC,WAAW,EAAE;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;EASD,IAAA,EAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,IAAM,UAAU,GAAoB,EAAE;EACtC,QAAA,KAAK,IAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;cACpC,UAAU,CAAC,UAAU,CAAC,GAAG;kBACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,cAAc;eACnD;UACL;UACA,OAAO;EACH,YAAA,IAAI,EAAE,UAAU;EAChB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;EACf,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;EACjB,YAAA,OAAO,EAAE;WACZ;MACL,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAmB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EACvC,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,GAAG,CAAC,GAAG,CAAC,GAAG;EACX,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;UAEnB,IAAM,SAAS,GAA+B,EAAE;EAChD,QAAA,KAAK,IAAM,UAAU,IAAI,GAAG,CAAC,OAAO,EAAE;EAClC,YAAA,SAAS,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC;UAC7E;EACA,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;EACzB,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,EAAA,CAAA,OAAO,GAAd,UAAe,gBAAkC,EAAE,GAAmB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EAClF,QAAA,OAAO,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MACxD,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOH,cAAO,CAAC;EACX,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;EACf,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI;EAClB,SAAA,CAAC;MACN,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE;MACtB,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UACI,IAAM,MAAM,GAAG,EAAE;EACjB,QAAA,KAAK,IAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;cACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;UAC1C;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,IAAM,MAAM,GAAoB,EAAE;EAClC,QAAA,KAAK,IAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;cACpC,MAAM,CAAC,UAAU,CAAC,GAAG;kBACjB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS;eAC9C;UACL;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,EAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,EAAU,EAAA;EACb,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;MAC5B,CAAC;EAKD,IAAA,EAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;EAC7B,YAAA,OAAO,OAAO,CAAC,OAAO,EAAE;UAC5B;UACA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE;EACtC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE;cAClC,OAAO,IAAI,CAAC,kBAAkB;UAClC;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;cAC1B,IAAI,CAAC,kBAAkB,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,CAAA,IAAA,CAAA,IAAA,CAAE,CAAC,IAAI,CAAC,YAAA;EAC/C,gBAAA,KAAI,CAAC,SAAS,GAAGU,cAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAI,CAAC,IAAI,EAAE,CAAC;EACrG,gBAAA,OAAO,KAAI,CAAC,SAAS,CAAC,YAAY,EAAE;EACxC,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,OAAO,EAAA;EACX,gBAAA,KAAI,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,IAAI,CAAA,CAAN,CAAM,CAAC;EAChD,YAAA,CAAC,CAAC,CAAC,KAAK,CAAC,UAAA,CAAC,EAAA;EACV,YAAA,CAAC,CAAC;UACN;UACA,OAAO,IAAI,CAAC,kBAAkB;MAClC,CAAC;EAED,IAAA,EAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,OAAO,IAAI,CAAC,YAAY;MAC5B,CAAC;EAvHD,IAAA,UAAA,CAAA;EADC,QAAAP,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,+BAA+B,CAAC;;EAC1C,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EAWb,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC;;EACvB,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;MA6GlB,OAAA,EAAC;GAAA,CA1HuB,UAAU,CAAA;EA2HlC,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,KAAK;AAE5B,MAAA,WAAA,kBAAA,UAAA,MAAA,EAAA;MAAiC,SAAA,CAAA,WAAA,EAAA,MAAA,CAAA;EAAjC,IAAA,SAAA,WAAA,GAAA;;MAsBA;MAlBI,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAY,EAAA;UACnB,OAAO,MAAA,CAAA,SAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;MAClD,CAAC;MAID,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAU,EAAA;UACjB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE;UAC5D,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;EAC/B,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;cACH,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;EAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU;WAC1B;MACL,CAAC;MACL,OAAA,WAAC;EAAD,CAtBA,CAAiC,aAAa,CAAA;EAuB9C,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc;;ACpY9C,MAAA,WAAA,kBAAA,UAAA,MAAA,EAAA;MAAiC,SAAA,CAAA,WAAA,EAAA,MAAA,CAAA;EAS7B,IAAA,SAAA,WAAA,CAAY,GAAqB,EAAA;EAC7B,QAAA,OAAA,MAAK,CAAA,IAAA,CAAA,IAAA,EAAC,GAAG,CAAC,IAAA,IAAA;MACd;EAEA,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,aAAa;EACnB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;EACf,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;EAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc;WAC9B;MACL,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAsB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EAC1C,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,GAAG,CAAC,GAAG,CAAC,GAAG;EACX,aAAA,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;EAEjC,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,WAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAAsB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EACvE,QAAA,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MACnD,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,OAAOM,YAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;MACjI,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;UACI,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC;EACd,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW;EAChC,SAAA,CAAC;MACN,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAY,EAAA;UACb,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC;EACd,YAAA,GAAG,EAAE,IAAI,CAAC,KAAK;EAClB,SAAA,CAAC;MACN,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,UAAG,IAAI,CAAC,WAAW,EAAE,CAAE;MAClC,CAAC;EAlDD,IAAA,UAAA,CAAA;EADC,QAAAN,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,+BAA+B,CAAC;;EAC5B,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;EAE3B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC;;EACH,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;EAEjC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC;;EACR,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MA+CvC,OAAA,WAAC;GAAA,CAtDgC,SAAS,CAAA;EAuD1C,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc;;ECpD9C,IAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;MAA+B,SAAA,CAAA,SAAA,EAAA,MAAA,CAAA;EAM3B,IAAA,SAAA,SAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAEA,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,QAAQ;EACd,YAAA,EAAE,EAAE,IAAI,CAAC,OAAO;WACnB;MACL,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAsB,EAAA;EAC1B,QAAA,OAAO;EACF,aAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;MAExB,CAAC;MAEM,SAAA,CAAA,OAAO,GAAd,UAAe,GAAsB,EAAA;UACjC,OAAO,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACvC,CAAC;MAID,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAe,EAAA;UACjB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;MAC3B,CAAC;EAjCD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,iBAAiB,CAAC;;EACV,KAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;MAkCnC,OAAA,SAAC;GAAA,CAtC8BD,kBAAW,CAAA,CAAA;EAwC1C,IAAA,WAAA,kBAAA,UAAA,MAAA,EAAA;MAAiC,SAAA,CAAA,WAAA,EAAA,MAAA,CAAA;EAa7B,IAAA,SAAA,WAAA,CAAqB,GAAqB,EAAA;UACtC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADU,KAAA,CAAA,GAAG,GAAH,GAAG;UAXhB,KAAA,CAAA,eAAe,GAA0C,EAAE;EAuE3D,QAAA,KAAA,CAAA,QAAQ,GAAG,IAAIM,wBAAiB,EAAE;;MA1D1C;EAEA,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,MAAM;EACZ,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;EACf,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;EACjB,YAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;EACvD,YAAA,OAAO,EAAE,IAAI,CAAC,SAAS;WAC1B;MACL,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAsB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EAC1C,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,GAAG,CAAC,GAAG,CAAC,GAAG;EACX,aAAA,MAAM,CAAC,GAAG,CAAC,MAAM;EACjB,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK;EACtB,aAAA,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;EAErD,QAAA,KAAK,IAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;EAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;UACrD;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,WAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAAsB,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EACvE,QAAA,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MACnD,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;UAClB,OAAOR,cAAO,CAAAF,UAAA,CAAA,EACV,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EACf,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAA,EACd,IAAI,CAAA,CACT;MACN,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE;MACxB,CAAC;EAID,IAAA,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,UAAkB,EAAE,CAAiB,EAAA;EAChD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;cAAE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE;EACzE,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;EACpC,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,KAAK,EAAE,CAAA,CAAT,CAAS,CAAC;MACtD,CAAC;MAKD,WAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAA+B,EAAA;EAClC,QAAA,IAAM,WAAW,GAAGE,cAAO,CAAC,OAAO,CAAC;UACpC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;EAC7D,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW;cACnC,IAAM,IAAI,GAAGW,sBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;cACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;UAC7E;UACA,OAAO,IAAI,CAAC,YAAY;MAC5B,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAM,MAAM,GAAa,EAAE;EAC3B,QAAA,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;EACpC,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;UACpB;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAM,MAAM,GAAoB,EAAE;EAClC,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAA,UAAU,EAAA;cACjC,MAAM,CAAC,UAAU,CAAC,GAAG;EACjB,gBAAA,MAAM,EAAE,KAAI,CAAC,eAAe,CAAC,UAAU;eAC1C;EACL,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,MAAM;MACjB,CAAC;EA/FD,IAAA,UAAA,CAAA;EADC,QAAAR,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC;;EACP,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;EAE3B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;;EACL,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;EAE9B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;;EACnB,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EAEpC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;;EACpC,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;MA0F9C,OAAA,WAAC;GAAA,CArGgC,UAAU,CAAA,CAAA;EAsG3C,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc;EAE9C,IAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;MAAgC,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAgB5B,IAAA,SAAA,UAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAbvB,KAAA,CAAA,QAAQ,GAAgB,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG,CAAC;UAsEzC,KAAA,CAAA,SAAS,GAAa,EAAE;;MAvDhC;MAZA,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAe,EAAA;UACnB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;EACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;EAC3B,QAAA,OAAO,IAAI;MACf,CAAC;EASD,IAAA,UAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE;MAC9C,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;MACjC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAsB,EAAA;UAC1B,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;EAC3B,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,UAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,EAAe,EAAE,UAAkB,EAAA;EACpE,QAAA,OAAO,IAAI,UAAU,CAAC,EAAE;eACnB,EAAE,CAAC,UAAG,EAAE,CAAC,EAAE,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,UAAU,CAAE;eAC7B,OAAO,CAAC,EAAE;eACV,UAAU,CAAC,UAAU,CAAC;MAE/B,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,UAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAG;MAChE,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;MAChC,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;MAC/D,CAAC;MAID,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAiB,EAAA;UAC5B,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;EAC9E,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;EACnD,QAAA,OAAO,IAAI;MACf,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAOH,cAAO,CAAAF,UAAA,CAAA,EACV,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EACzB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAA,EAC1B,IAAI,EACT;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,UAAU,EAAE,CAAE;MAC5D,CAAC;EAGO,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;UACI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,EAAE;EACxD,QAAA,IAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;EAC7D,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;EAC3B,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,YAAA,EAAM,OAAA,KAAI,CAAC,cAAc,EAAE,CAAA,CAArB,CAAqB;MACtC,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,OAAO,IAAI,CAAC,SAAS;MACzB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAA+B,EAAA;UAAtC,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,EAAA;EAC/C,YAAA,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,EAAE;EACpC,YAAA,IAAM,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;cAC5D,KAAoB,IAAA,EAAA,GAAA,CAAY,EAAZ,cAAA,GAAA,YAAY,EAAZ,0BAAY,EAAZ,EAAA,EAAY,EAAE;EAA7B,gBAAA,IAAM,KAAK,GAAA,cAAA,CAAA,EAAA,CAAA;kBACZ,QAAQ,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,KAAK,CAAC;cACtC;EACA,YAAA,KAAI,CAAC,SAAS,GAAG,QAAoB;EACrC,YAAA,OAAO,QAAQ;EACnB,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAM,OAAO,GAAG,EAAE;UAClB,IAAI,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;cACzC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE;EAC7B,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,OAAO;MAClB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,QAAQ,EAAA,EAAM,CAAC,CAAC;MAClE,CAAC;EA5GD,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC;oCAC9B,WAAW;EAA6B,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAWlD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC;;EACH,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAkGtC,OAAA,UAAC;GAAA,CAhH+B,UAAU,CAAA,CAAA;EAiH1C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa;EAE5C,IAAA,KAAA,kBAAA,UAAA,MAAA,EAAA;MAA2B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA;EA2DvB,IAAA,SAAA,KAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;;MAEvB;MA5BA,KAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;cACtB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,UAAA,CAAA,CAAA,MAAA,CAAW,IAAI,CAAC,MAAM,EAAE,CAAE;EAC3C,gBAAA,GAAG,EAAE,qBAAA,CAAA,MAAA,CAAqB,IAAI,CAAC,MAAM,EAAE,EAAA,IAAA,CAAG;kBAC1C,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC9D,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;cAC3B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,cAAA,CAAc;EAC/B,gBAAA,GAAG,EAAE,0BAAA,CAAA,MAAA,CAA0B,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,CAAG;kBACpD,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;EAC7D,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;cACrB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,QAAA,CAAQ;EACzB,gBAAA,GAAG,EAAE,oBAAA,CAAA,MAAA,CAAoB,IAAI,CAAC,KAAK,EAAE,EAAA,IAAA,CAAG;EACxC,gBAAA,IAAI,EAAE;EACT,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,KAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE;EACjC,YAAA,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;EAC/B,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK;WACpB;MACL,CAAC;MAED,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAuB,EAAA;EAC3B,QAAA,OAAO;EACF,aAAA,MAAM,CAAC,GAAG,CAAC,MAAM;EACjB,aAAA,WAAW,CAAC,GAAG,CAAC,aAAa;EAC7B,aAAA,UAAU,CAAC,GAAG,CAAC,YAAY;EAC3B,aAAA,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;MAEzB,CAAC;EAEM,IAAA,KAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAAuB,EAAA;UACxD,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;MACrC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOH,cAAO,CAAC;EACX,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;EACxB,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW;EAChC,SAAA,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;MAChC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACxD,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;MAC1C,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE;MAC7D,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;MACvC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;EACnD,YAAA,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;EAC9C,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,KAAI,CAAC,WAAW,EAAE,CAAC,CAAA,CAAvB,CAAuB,CAAC;UAC9D;EAAO,aAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;EAC5B,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;UACzB;UACA,OAAO,CAAC,EAAE,CAAC;MACf,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;MACnH,CAAC;EA1HD,IAAA,UAAA,CAAA;UADCG,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;;;EACC,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAOlC,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAA,EAAyB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE;EAC1F,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,YAAY,EAAE,CAAA,CAAhB,CAAgB;cAChD,QAAQ,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAA,CAApE;WACpC,CAAC;;EAC4B,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;EAS9B,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,YAAA,EAAyB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;EAC1F,YAAA,QAAQ,EAAE,IAAI;EACd,YAAA,OAAO,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,EAAtC,CAAsC;cACtE,QAAQ,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAA,CAA1E;WACpC,CAAC;;EACiC,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;EASnC,IAAA,UAAA,CAAA;UALCA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE;EAC3C,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,aAAa,EAAE,CAAA,CAAjB,CAAiB;EACjD,YAAA,QAAQ,EAAE,UAAC,CAAQ,EAAA,EAAc,OAAA,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,EAAtC;WACpC,CAAC;;EAC2B,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;MAkGjC,OAAA,KAAC;GAAA,CA9H0BD,kBAAW,CAAA,CAAA;EA+HtC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ;EAElC,IAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EA4C/B,IAAA,SAAA,aAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAtCf,KAAA,CAAA,KAAK,GAA0B,EAAE;;MAwCzC;EA5CA,IAAA,aAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE;MACxC,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAc,EAAA;UACrB,OAAO,MAAA,CAAA,SAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;MAClD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,GAAG,GAAH,YAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE;MAC5C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;MAC/C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE;MACzC,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAW,EAAA;UACf,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;EACjB,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAApC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;UACtD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;cACH,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;EACpC,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;cACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAC,EAAE,EAAA;kBAC/B,OAAO;EACH,oBAAA,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;EACnB,oBAAA,aAAa,EAAE,EAAE,CAAC,WAAW,EAAE;EAC/B,oBAAA,YAAY,EAAE,EAAE,CAAC,UAAU,EAAE;EAC7B,oBAAA,KAAK,EAAE,EAAE,CAAC,KAAK;mBAClB;EACL,YAAA,CAAC;WACJ;MACL,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;MACnC,CAAC;MAID,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,CAAwB,EAAA;UAAzC,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,KAAK,EAAE,CAAA,CAAb,CAAa,CAAC;UAC5E,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAA3B,CAA2B,CAAC,CAAC;EACtD,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;MAC5C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE;MAC7C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;EAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;EAC7B,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa;EAC9B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,UAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAE;MAC5E,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;MAChC,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,MAAM,EAAA;UACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;MACnC,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,IAAM,aAAa,GAAa,EAAE;EAClC,QAAA,KAAoB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAAnC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;cACZ,IAAM,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE;cACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;kBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;cAC/B;EACA,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;EAC/C,YAAA,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;UAC3D;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,aAAa,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,aAAa,CAAC;MAC5C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,EAAE,CAAA,CAAd,CAAc,CAAC;MACzD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,YAAA;EACxC,YAAA,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,EAAE;EAChC,YAAA,IAAM,KAAK,GAAGU,cAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,UAAU,EAAE,CAAA,CAAd,CAAc,CAAC,EAAE,KAAI,CAAC,UAAU,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,OAAO,EAAE,EAAZ,CAAY,CAAC,CAAC;cACzH,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA,CAA1C,CAA0C,CAAC;EACpF,YAAA,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,IAAI,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAArC,CAAqC,CAAC,CAAC,CAAC;EACnG,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,EAAE,CAAA,CAAd,CAAc,CAAC;MAC1D,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAC9C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;MACpD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;EACjD,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;cACpB,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,SAAS,EAAE;EACvC,gBAAA,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;cACtE;EACJ,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,OAAO;MAClB,CAAC;EAID,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE;EACpC,QAAA,IAAM,WAAW,GAAGZ,cAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC;EAC3D,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;EACvC,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW;EACnC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,QAAgC,EAAA;kBAC/F,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;kBACpC,OAAO,KAAI,CAAC,KAAK;EACrB,YAAA,CAAC,CAAC;UACN;UACA,OAAO,IAAI,CAAC,mBAAmB;MACnC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EA7ID,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,gBAAgB,CAAC;;EAC7B,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;MA8ItB,OAAA,aAAC;GAAA,CAzKkC,aAAa,CAAA,CAAA;EA0KhD,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;;EC9iBlD,SAAS,QAAQ,CAAC,CAAS,EAAA;;MAEvB,IAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;EAC7C,IAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;EAAE,QAAA,MAAM,IAAI,KAAK,CAAC,8BAAuB,CAAC,CAAE,CAAC;MACjE,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;EACpC,IAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;EAAE,QAAA,MAAM,IAAI,KAAK,CAAC,8BAAuB,CAAC,CAAE,CAAC;MACpE,IAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;EACtC,IAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;EAAE,QAAA,MAAM,IAAI,KAAK,CAAC,8BAAuB,CAAC,CAAE,CAAC;MACtE,OAAO;UACH,GAAG,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAC,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAC,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM,CAAE;EAClF,QAAA,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACvB,QAAA,OAAO,EAAE,UAAU,CAAC,CAAC;OACxB;EACL;EAEA,SAAS,cAAc,CAAC,YAAoB,EAAA;EACxC,IAAA,OAAO,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC;EACnG;EAEA,SAAS,eAAe,CAAC,UAAkB,EAAA;EACvC,IAAA,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;EACtF,SAAC,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;EAEpF;AAEA,MAAA,YAAA,kBAAA,UAAA,MAAA,EAAA;MAAkC,SAAA,CAAA,YAAA,EAAA,MAAA,CAAA;EAiB9B,IAAA,SAAA,YAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAdf,KAAA,CAAA,eAAe,GAA0C,EAAE;UAC3D,KAAA,CAAA,KAAK,GAAsB,OAAO;EAgHlC,QAAA,KAAA,CAAA,QAAQ,GAAG,IAAIK,wBAAiB,EAAE;;MAjG1C;EAEA,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;cACH,IAAI,EAAE,IAAI,CAAC,KAAK;EAChB,YAAA,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;EACb,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;EACf,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;EACzB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE;EAC5B,YAAA,OAAO,EAAE,IAAI,CAAC,SAAS;WAC1B;MACL,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAA4C,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EAChE,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI;EACrB,QAAA,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;EAC3B,aAAA,GAAG,CAAC,GAAG,CAAC,GAAG;EACX,aAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ;EACrB,aAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;UAEzB,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;EACjC,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;UAClC;EACA,QAAA,KAAK,IAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;EAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;UACrD;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,YAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAA4C,EAAE,MAAc,EAAA;EAAd,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAc,CAAA,CAAA;EAC7F,QAAA,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;MACpD,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAOR,cAAO,CAAAF,UAAA,CAAA,EACV,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EACzB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAA,EAC5C,IAAI,EACT;MACN,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;MACzB,CAAC;EAID,IAAA,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE;EACtC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE;cAClC,OAAO,IAAI,CAAC,kBAAkB;UAClC;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;EAC1B,YAAA,IAAM,SAAO,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc;cACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,OAAO,CAAa,UAAC,OAAO,EAAE,MAAM,EAAA;EAC9D,gBAAA,IAAM,KAAK,GAAGe,WAAU,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,KAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAI,CAAC,QAAQ,EAAE,EAAE,KAAI,CAAC,OAAO,EAAE,CAAC;EACxH,gBAAA,IAAI,CAAC,SAAO,IAAI,KAAI,CAAC,kBAAkB,EAAE,IAAI,KAAI,CAAC,mBAAmB,EAAE,EAAE;EACrE,oBAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;kBAC5B;kBACA,OAAO,CAAC,KAAK,CAAC;EAClB,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA;EACV,gBAAA,KAAI,CAAC,MAAM,GAAG,KAAK;kBACnB,IAAI,CAAC,SAAO,IAAI,KAAI,CAAC,kBAAkB,EAAE,EAAE;EACvC,oBAAA,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAjD,CAAiD,CAAC;kBAChH;kBACA,IAAI,CAAC,SAAO,IAAI,KAAI,CAAC,mBAAmB,EAAE,EAAE;EACxC,oBAAA,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAA,UAAU,EAAA,EAAI,OAAA,KAAI,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA,CAAtD,CAAsD,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU,EAAA;EAC/G,wBAAA,KAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC;EACrE,oBAAA,CAAC,CAAC;kBACN;EACJ,YAAA,CAAC,CAAC;UACN;UACA,OAAO,IAAI,CAAC,kBAAkB;MAClC,CAAC;MAID,YAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,CAAiB,EAAA;UAC3B,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE;EACvD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;EACvB,QAAA,OAAO,IAAI;MACf,CAAC;EAID,IAAA,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,UAAkB,EAAE,CAAiB,EAAA;EAChD,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;cAAE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE;EACzE,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;EACpC,QAAA,OAAO,IAAI;MACf,CAAC;MAKD,YAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAA+B,EAAA;EAClC,QAAA,IAAM,WAAW,GAAGb,cAAO,CAAC,OAAO,CAAC;UACpC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;EAC7D,YAAA,IAAI,CAAC,gBAAgB,GAAG,WAAW;EACnC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;UACvE;UACA,OAAO,IAAI,CAAC,YAAY;MAC5B,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAM,MAAM,GAAa,EAAE;EAC3B,QAAA,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,eAAe,EAAE;EACpC,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;UACpB;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAM,MAAM,GAAoB,EAAE;EAClC,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAA,UAAU,EAAA;cACjC,MAAM,CAAC,UAAU,CAAC,GAAG;EACjB,gBAAA,MAAM,EAAE,KAAI,CAAC,eAAe,CAAC,UAAU;eAC1C;EACL,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,MAAM;MACjB,CAAC;EAvID,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,+BAA+B,CAAC;;EAC5B,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;EAE3B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;;EACH,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAEhC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC;;EACH,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,6BAA6B,CAAC;;EACd,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,MAAA,CAAA;EAE3C,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,8BAA8B,CAAC;;EACd,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,MAAA,CAAA;MAgIhD,OAAA,YAAC;GAAA,CA/IiC,UAAU,CAAA;EAgJ5C,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,eAAe;AAEhD,MAAA,WAAA,kBAAA,UAAA,MAAA,EAAA;MAAiC,SAAA,CAAA,WAAA,EAAA,MAAA,CAAA;EAkB7B,IAAA,SAAA,WAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAfvB,KAAA,CAAA,QAAQ,GAAiB,IAAI,YAAY,CAAC,KAAI,CAAC,GAAG,CAAC;;MAiBnD;MAdA,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAgB,EAAA;UACpB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;EACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;EAC3B,QAAA,OAAO,IAAI;MACf,CAAC;EAWD,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;MACjC,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAuB,EAAA;UAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;EAC3B,QAAA,OAAO,IAAI;MACf,CAAC;EAEM,IAAA,WAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,EAAgB,EAAE,UAAkB,EAAA;EACrE,QAAA,OAAO,IAAI,WAAW,CAAC,EAAE;eACpB,EAAE,CAAC,UAAG,EAAE,CAAC,EAAE,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,UAAU,CAAE;eAC7B,OAAO,CAAC,EAAE;eACV,UAAU,CAAC,UAAU,CAAC;MAE/B,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAE;MAC7F,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;MAChC,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE;MACzC,CAAC;MAID,WAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAiB,EAAA;UAC5B,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;EAC9E,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;EACnD,QAAA,OAAO,IAAI;MACf,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAOH,cAAO,CAAAF,UAAA,CAAA,EACV,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,EACzB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAA,EAC1B,IAAI,EACT;MACN,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,UAAU,EAAE,CAAE;MAC5D,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,OAAO,cAAM,OAAA,KAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAhD,CAAgD;MACjE,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE;MACvC,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAA+B,EAAA;UAClC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;MACzC,CAAC;EA9ED,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC;oCAC/B,YAAY;EAA8B,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAapD,IAAA,UAAA,CAAA;EAHC,QAAAA,cAAO,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,YAAA;EAC/B,YAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;EACzE,QAAA,CAAC,CAAC;;EACgC,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAkEtC,OAAA,WAAC;GAAA,CAlFgC,UAAU,CAAA;EAmF3C,WAAW,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc;AAE9C,MAAA,cAAA,kBAAA,UAAA,MAAA,EAAA;MAAoC,SAAA,CAAA,cAAA,EAAA,MAAA,CAAA;EAgDhC,IAAA,SAAA,cAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UA1Cf,KAAA,CAAA,KAAK,GAA0B,EAAE;;MA4CzC;EAhDA,IAAA,cAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE;MACxC,CAAC;MAMD,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAe,EAAA;UACtB,OAAO,MAAA,CAAA,SAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;MAClD,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,GAAG,GAAH,YAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE;MAC5C,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;MACjD,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE;MAChD,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE;MACzC,CAAC;MAMD,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAW,EAAA;UACf,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;EACjB,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAApC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;UACtD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;cACH,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;EACpC,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;cACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAC,EAAE,EAAA;kBAC/B,OAAO;EACH,oBAAA,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE;EACnB,oBAAA,aAAa,EAAE,EAAE,CAAC,WAAW,EAAE;EAC/B,oBAAA,YAAY,EAAE,EAAE,CAAC,UAAU,EAAE;EAC7B,oBAAA,KAAK,EAAE,EAAE,CAAC,KAAK;mBAClB;EACL,YAAA,CAAC;WACJ;MACL,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE;MACnC,CAAC;MAID,cAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,CAAwB,EAAA;UAAzC,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,KAAK,EAAE,CAAA,CAAb,CAAa,CAAC;UAC5E,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA,CAA3B,CAA2B,CAAC,CAAC;EACtD,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;MAC5C,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE;MAC7C,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;EAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;EAC7B,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,IAAI,EAAE,CAAA,CAAZ,CAAY,CAAC;EACjD,YAAA,OAAO,EAAE,IAAI,CAAC,aAAa;EAC9B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,UAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAE;MAC5E,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;MAChC,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,MAAM,EAAA;UACV,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;MACnC,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,IAAM,aAAa,GAAa,EAAE;EAClC,QAAA,KAAoB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAAnC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;cACZ,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;cACtC,IAAM,YAAY,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE;cACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;kBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;cAC/B;EACA,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;EAC/C,YAAA,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;UAC3D;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,aAAa,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,aAAa,CAAC;MAC5C,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,EAAE,CAAA,CAAd,CAAc,CAAC;MACzD,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,YAAA;EACxC,YAAA,IAAM,SAAS,GAAG,KAAI,CAAC,OAAO,EAAE;EAChC,YAAA,IAAM,KAAK,GAAGS,cAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,UAAU,EAAE,CAAA,CAAd,CAAc,CAAC,EAAE,KAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,EAAE,EAAL,CAAK,CAAC,CAAC;cAC7G,IAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA,CAA1C,CAA0C,CAAC;EACpF,YAAA,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,IAAI,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAArC,CAAqC,CAAC,CAAC,CAAC;EACnG,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,MAAM,EAAE,CAAA,CAAd,CAAc,CAAC;MAC1D,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,YAAA,EAAM,OAAA,KAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE,CAAA,CAAlC,CAAkC;MACnD,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAM,OAAO,GAA2B,EAAE;UAC1C,IAAI,UAAU,GAAG,KAAK;UACtB,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;kCACrC,KAAK,EAAA;EACZ,YAAA,IAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;cAChC,IAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAA,CAA7B,CAA6B,CAAC,CAAC,CAAC,CAAC;cACpE,IAAI,KAAK,SAAA;EACT,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;EACtB,gBAAA,KAAK,GAAG;EACJ,oBAAA,IAAI,EAAE;mBACT;cACL;mBAAO;EACH,gBAAA,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;cACrB;EACA,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;kBACrB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;cACvC;cACA,UAAU,GAAG,IAAI;;UAdrB,KAAoB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAA;EAAjC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;sBAAL,KAAK,CAAA;EAef,QAAA;UACD,IAAI,CAAC,UAAU,EAAE;EACb,YAAA,OAAO,CAAC,OAAO,GAAG,IAAI;UAC1B;EACA,QAAA,OAAO,OAAO;MAClB,CAAC;EAID,IAAA,cAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,OAAO,gBAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,CAAE,CAAC,IAAI,CAAC,YAAA;EACrB,YAAA,IAAM,OAAO,GAAG,KAAI,CAAC,aAAa,EAAE;EACpC,YAAA,IAAM,WAAW,GAAGZ,cAAO,CAAC,EAAE,IAAI,EAAE,KAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAA,OAAA,EAAE,CAAC;EAC3D,YAAA,IAAI,KAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;EACvC,gBAAA,KAAI,CAAC,gBAAgB,GAAG,WAAW;EACnC,gBAAA,KAAI,CAAC,mBAAmB,GAAG,KAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,QAAgC,EAAA;sBAC/F,IAAM,UAAU,GAAG,KAAI,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE;EACjD,oBAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;sBACjC,IAAI,CAAC,MAAM,EAAE;;;EAGT,wBAAA,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;sBAClE;EACA,oBAAA,OAAO,KAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;EAChC,gBAAA,CAAC,CAAC;cACN;cACA,OAAO,KAAI,CAAC,mBAAmB;EACnC,QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA;EACR,YAAA,KAAI,CAAC,KAAK,GAAG,IAAI;EACrB,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,OAAO,IAAI,CAAC,KAAK;MACrB,CAAC;EAzKD,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,gBAAgB,CAAC;;EAC7B,KAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;MA0KtB,OAAA,cAAC;GAAA,CAzMmC,aAAa,CAAA;EA0MjD,cAAc,CAAC,SAAS,CAAC,MAAM,IAAI,iBAAiB;AAEpD,MAAA,cAAA,kBAAA,UAAA,MAAA,EAAA;MAAoC,SAAA,CAAA,cAAA,EAAA,MAAA,CAAA;EAApC,IAAA,SAAA,cAAA,GAAA;;MAmBA;MAjBI,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAS,EAAA;EACb,QAAA,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;EACxB,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EACzC,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;EACnD,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;EACjD,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,IAAM,QAAQ,GAAG,MAAA,CAAA,SAAK,CAAC,aAAa,WAAE;UACtC,IAAM,OAAO,GAA2B,EAAE;EAC1C,QAAA,KAAK,IAAM,GAAG,IAAI,QAAQ,EAAE;cACxB,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;EAC5B,YAAA,OAAO,CAAC,EAAA,CAAA,MAAA,CAAG,GAAG,aAAU,CAAC,GAAG,IAAI;UACpC;EACA,QAAA,OAAO,OAAO;MAClB,CAAC;MACL,OAAA,cAAC;EAAD,CAnBA,CAAoC,cAAc,CAAA;EAoBlD,cAAc,CAAC,SAAS,CAAC,MAAM,IAAI,iBAAiB;;EC7dpD,IAAI,UAAU,GAAG,CAAC;AAClB,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAA8B,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EA8D1B,IAAA,SAAA,QAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UA7Df,KAAA,CAAA,eAAe,GAAG,aAAa;EA+DnC,QAAA,KAAI,CAAC,GAAG,GAAG,aAAM,EAAE,UAAU,CAAE;UAC/B,IAAM,EAAE,GAAG,KAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;UACpC,KAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;MAC9B;MA5DA,QAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,CAAU,EAAA;UACnB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,aAAa;EAChD,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;EAC1B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC;EACtB,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;UACtB;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,CAAiB,EAAA;UAC3B,OAAO,MAAA,CAAA,SAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;MACjD,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;MAC5C,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,EAAU,EAAA;UACjB,IAAM,EAAE,GAAsB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;EACrD,QAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;EACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UACtD;EAAO,aAAA,IAAI,EAAE,YAAY,IAAI,EAAE;EAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UACtD;EAAO,aAAA,IAAI,EAAE,YAAY,WAAW,EAAE;EAClC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UACtD;EAAO,aAAA,IAAI,EAAE,YAAY,YAAY,EAAE;EACnC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UACtD;EAAO,aAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;EAC/B,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UACpD;EAAO,aAAA,IAAI,EAAE,YAAY,WAAW,EAAE;EAClC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UAC/D;EAAO,aAAA,IAAI,EAAE,YAAY,UAAU,EAAE;EACjC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UAC9D;MACJ,CAAC;MAID,QAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAiB,EAAA;EACvB,QAAA,IAAM,MAAM,GAAG,MAAA,CAAA,SAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;UACrD,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,MAAM,IAAI,IAAI,CAAC,eAAe;EAC5D,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;cAC5C,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;UAC5C;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;MACtC,CAAC;EASD,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAAL,UAAA,CAAAA,UAAA,CAAA,EAAA,EACO,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,CAAA,EAAA,EAC/B,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,EAAA,CAAA;MAE/B,CAAC;;MAGD,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiC,EAAA;EAAjC,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiC,CAAA,CAAA;EAClC,QAAA,OAAO,gBAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAA,UAAA,CAAA,EAAA,EACV,IAAI,EACT;MACN,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;cAChC,OAAO;EACH,gBAAA,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;EACd,gBAAA,IAAI,EAAE,EAAA,CAAA,MAAA,CAAG,EAAE,CAAC,KAAK,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,IAAA,CAAA,MAAA,CAAK,EAAE,CAAC,EAAE,EAAE,EAAA,GAAA,CAAG,GAAG,EAAE;eACvE;EACL,QAAA,CAAC,CAAC;MACN,CAAC;EAtFD,IAAA,UAAA,CAAA;UADCK,cAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YAAA,EAA4B,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;EAC1F,KAAA,EAAA,QAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;EAatB,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC;oCAClB,aAAa;EAAC,KAAA,EAAA,QAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;MA0ElC,OAAA,QAAC;GAAA,CA3F6B,iBAAiB,CAAA;EA4F/C,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW;;;;;;;;;;;;;;;;;ECzGjC,IAAM,QAAQ,GAAG,mBAAA;EACjB,IAAM,WAAW,GAAG,QAAA;;EC2BrB,SAAU,oBAAoB,CAAC,GAAmB,EAAA;EACpD,IAAA,OAAQ,GAA2B,CAAC,IAAI,KAAK,SAAS;EAC1D;EAKM,SAAU,oBAAoB,CAAC,GAAmB,EAAA;EACpD,IAAA,OAAQ,GAA2B,CAAC,QAAQ,KAAK,IAAI;EACzD;EAKM,SAAU,iBAAiB,CAAC,GAAmB,EAAA;EACjD,IAAA,OAAQ,GAAwB,CAAC,GAAG,KAAK,SAAS;EACtD;EA0JM,SAAU,kBAAkB,CAAC,GAAsB,EAAA;MACrD,OAAQ,GAAyB,CAAC,IAAI,KAAK,KAAK,IAAK,GAAyB,CAAC,IAAI,KAAK,KAAK;EACjG;EAMM,SAAU,mBAAmB,CAAC,GAAsB,EAAA;EACtD,IAAA,OAAQ,GAA0B,CAAC,IAAI,KAAK,MAAM;EACtD;EAUM,SAAU,oBAAoB,CAAC,GAAsB,EAAA;EACvD,IAAA,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO;EACxD;EAOM,SAAU,oBAAoB,CAAC,GAAsB,EAAA;EACvD,IAAA,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO;EACxD;EAOM,SAAU,qBAAqB,CAAC,GAAsB,EAAA;EACxD,IAAA,OAAQ,GAA4B,CAAC,IAAI,KAAK,QAAQ;EAC1D;EAsBM,SAAU,oBAAoB,CAAC,GAAsB,EAAA;EACvD,IAAA,OAAQ,GAA2B,CAAC,IAAI,KAAK,OAAO;EACxD;EAaM,SAAU,mBAAmB,CAAC,GAAsB,EAAA;EACtD,IAAA,OAAQ,GAA0B,CAAC,IAAI,KAAK,MAAM;EACtD;;ECnHM,SAAU,aAAa,CAAC,GAAmB,EAAA;MAC7C,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;EACzD;EAEM,SAAU,aAAa,CAAC,GAAmB,EAAA;MAC7C,OAAQ,GAAoB,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;EAChF;EAEM,SAAU,iBAAiB,CAAC,GAAmB,EAAA;EACjD,IAAA,OAAQ,GAAwB,CAAC,OAAO,KAAK,SAAS;EAC1D;EA+BM,SAAU,kBAAkB,CAAC,EAAmB,EAAA;EAClD,IAAA,OAAO,CAAC,CAAE,EAAuB,CAAC,MAAM;EAC5C;EAMM,SAAU,gBAAgB,CAAC,QAAmB,EAAA;EAChD,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;EACrC;EAuDM,SAAU,iBAAiB,CAAC,QAAmB,EAAA;EACjD,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS;EACtC;EAKM,SAAU,kBAAkB,CAAC,QAAmB,EAAA;EAClD,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU;EACvC;EAsBM,SAAU,iBAAiB,CAAC,QAAmB,EAAA;EACjD,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS;EACtC;EAYM,SAAU,cAAc,CAAC,QAAmB,EAAA;EAC9C,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM;EACnC;EAOM,SAAU,eAAe,CAAC,QAAmB,EAAA;EAC/C,IAAA,OAAO,QAAQ,CAAC,IAAI,KAAK,OAAO;EACpC;EAgBO,IAAM,aAAa,GAAqB,CAAC,QAAQ,EAAE,QAAQ,CAAC;;;;;;;;;;;;;;;;;EZpVnE;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;EAiBO,IAAI,QAAQ,GAAG,WAAW;EACjC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;EACnD,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EAC3D,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;EAC1B,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACtF,MAAM;EACN,MAAM,OAAO,CAAC;EACd,EAAE,CAAA;EACF,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACxC,CAAA;;EA6KO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;EAC9C,EAAsC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EACvF,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;EAC9B,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;EAC9D,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;EACzB,MAAM;EACN,EAAE;EACF,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC1D;;EA0GuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;EACvH,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;EAC5B,EAAE,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;EAClF,CAAA;;EaxUA,IAAM,aAAa,GAAQ;EACvB,IAAA,WAAW,EAAE,WAAW;EACxB,IAAA,cAAc,EAAE,cAAc;EAC9B,IAAA,WAAW,EAAE,WAAW;EACxB,IAAA,YAAY,EAAE,YAAY;EAC1B,IAAA,YAAY,EAAE,YAAY;EAC1B,IAAA,WAAW,EAAE,WAAW;EACxB,IAAA,cAAc,EAAE,cAAc;EAC9B,IAAA,WAAW,EAAE,WAAW;EACxB,IAAA,YAAY,EAAE,YAAY;EAC1B,IAAA,YAAY,EAAE,YAAY;EAC1B,IAAA,UAAU,EAAE,WAAW;EACvB,IAAA,aAAa,EAAE,cAAc;EAC7B,IAAA,UAAU,EAAE,WAAW;EACvB,IAAA,WAAW,EAAE,YAAY;EACzB,IAAA,WAAW,EAAE,YAAY;EACzB,IAAA,WAAW,EAAE;EAChB,CAAA;EACD,IAAM,gBAAgB,GAAQ;EAC1B,IAAA,kBAAkB,EAAE;EAChB,QAAA,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAC,CAAM,EAAA,EAAK,OAAA,QAAQ,CAAA,CAAR,CAAQ,EAAE;EAC7D,QAAA,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAC,CAAM,EAAA,EAAK,OAAA,CAAC,CAAA,CAAD,CAAC;EACzD,KAAA;EACD,IAAA,iBAAiB,EAAE;EACf,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,kBAAkB,EAAE;EAChB,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,iBAAiB,EAAE;EACf,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,kBAAkB,EAAE;EAChB,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE,aAAa;UACnB,SAAS,EAAE,UAAC,CAAM,EAAA;cACd,IAAI,CAAC,KAAK,KAAK;EAAE,gBAAA,OAAO,QAAQ;EAChC,YAAA,OAAO,YAAY;EACvB,QAAA;EACH,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,IAAI,EAAE;EACF,QAAA,IAAI,EAAE,aAAa;EACnB,QAAA,SAAS,EAAE,UAAC,CAAM,EAAA,EAAK,OAAA,CAAC,GAAG,UAAU,GAAG,YAAY,CAAA,CAA7B;EAC1B,KAAA;EACD,IAAA,UAAU,EAAE;EACR,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,oBAAoB,EAAE;EAClB,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,oBAAoB,EAAE;EAClB,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,OAAO,EAAE;EACL,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,SAAS,EAAE;EACP,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,SAAS,EAAE;EACP,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,cAAc,EAAE;EACZ,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,GAAG,EAAE;EACD,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,IAAI,EAAE;EACF,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,eAAe,EAAE;EACb,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,WAAW,EAAE;EACT,QAAA,IAAI,EAAE;EACT,KAAA;EACD,IAAA,OAAO,EAAE;EACL,QAAA,IAAI,EAAE;EACT;EACJ,CAAA;EAED,SAAS,UAAU,CAAC,MAAW,EAAE,GAAQ,EAAE,GAAQ,EAAA;EAC/C,IAAA,IAAI,KAAK;EAET,IAAA,KAAK,IAAM,CAAC,IAAI,MAAM,EAAE;UACpB,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EAChC,YAAA,KAAK,GAAG,MAAM;EACd,YAAA;EACJ,QAAA;EACA,QAAA,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;EAC5C,YAAA,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;EACvC,YAAA,IAAI,KAAK,KAAK,SAAS,EAAE;EACrB,gBAAA;EACJ,YAAA;EACJ,QAAA;EACJ,IAAA;EACA,IAAA,OAAO,KAAK;EAChB;EAEA,SAAS,kBAAkB,CAAC,IAAiB,EAAE,OAAY,EAAA;EAEvD,IAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC;MAEzC,SAAS,iBAAiB,CAAC,EAAO,EAAA;EAC9B,QAAA,IAAM,QAAQ,GAAG,EAAE,CAAC,EAAE;UACtB,IAAM,YAAY,GAAQ,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;EAC/D,QAAA,IAAI,YAAY,EAAE;EACd,YAAA,IAAM,cAAc,GAAQ,YAAY,CAAC,YAAY;EACrD,YAAA,IAAM,aAAa,GAAQ,YAAY,CAAC,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM;EAC/H,YAAA,IAAM,eAAe,GAAQ,aAAa,CAAC,YAAY;cACvD,mBAAmB,CAAC,aAAa,CAAC;EAClC,YAAA,4BAA4B,CAAC,cAAc,EAAE,eAAe,CAAC;EAC7D,YAAA,6BAA6B,CAAC,cAAc,EAAE,eAAe,CAAC;EAC9D,YAAA,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,EAAE;EACvC,gBAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS;EACjF,YAAA;EACJ,QAAA;EAAO,aAAA;EACH,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,uBAAuB,CAAC;EACpD,QAAA;UAEA,SAAS,mBAAmB,CAAC,aAAkB,EAAA;cAC3C,EAAE,CAAC,aAAa,CAAC,OAAO,GAAG,yBAAyB,CAAC,aAAa,CAAC,OAAO,CAAC;EAC3E,YAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,GAAG,0BAA0B;EAChE,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM;EAAE,gBAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE;EAChF,YAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO;cAErE,SAAS,yBAAyB,CAAC,MAAc,EAAA;EAC7C,gBAAA,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM;EACjE,YAAA;EACJ,QAAA;EACA,QAAA,SAAS,4BAA4B,CAAC,cAAmB,EAAE,eAAoB,EAAA;cAC3E,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,EAAE;EACnD,YAAA,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE;EACjC,YAAA,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ;EAC5F,YAAA,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACnE,YAAA,KAAK,IAAM,QAAQ,IAAI,cAAc,EAAE;EACnC,gBAAA,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;EACnD,oBAAA,IAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI;sBAEnD,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,UAAU,EAAE;EAC5D,wBAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;EAC7G,oBAAA;EAAO,yBAAA;EACH,wBAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC;EACvE,oBAAA;EAEJ,gBAAA;EACJ,YAAA;EACA,YAAA,IAAI,eAAe,IAAI,eAAe,CAAC,UAAU,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE;EAC9E,gBAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;EACpD,YAAA;EACJ,QAAA;EACA,QAAA,SAAS,6BAA6B,CAAC,cAAmB,EAAE,eAAoB,EAAA;EAC5E,YAAA,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,IAAI,EAAE;EAC9E,YAAA,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,CAAC;EAClC,YAAA,EAAE,CAAC,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ;EAC5F,YAAA,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACxD,YAAA,IAAA,OAAA,GAAA,UAAA,QAAQ,EAAA;EACf,gBAAA,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,KAAK,WAAW,EAAE;EACnD,oBAAA,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,KAAK,EAAE;EAC7C,wBAAA,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,CAAM,EAAA;EACtC,4BAAA,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI;EAC1B,4BAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;8BACxF,IAAI,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,KAAK,UAAU,EAAE;kCAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EACrH,4BAAA;EAAO,iCAAA;EACH,gCAAA,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;EAC/E,4BAAA;EACJ,wBAAA,CAAC,CAAC;EACN,oBAAA;EAAO,yBAAA;EACH,wBAAA,IAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI;0BACnD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EACrH,oBAAA;EACJ,gBAAA;;EAhBJ,YAAA,KAAK,IAAM,QAAQ,IAAI,eAAe,EAAA;EAA3B,gBAAA,OAAA,CAAA,QAAQ,CAAA;EAiBlB,YAAA;EACL,QAAA;EACJ,IAAA;EACJ;EAWA,SAAS,0BAA0B,CAAC,IAAiB,EAAE,OAAY,EAAA;EAC/D,IAAA,IAAM,MAAM,GAAkB;EAC1B,QAAA,MAAM,EAAE;EACX,KAAA;EACD,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY;EAAE,QAAA;MACvC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAS,EAAA;EAC3C,QAAA,IAAM,YAAY,GAAiB;;EAE/B,YAAA,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;EACjC,YAAA,QAAQ,EAAE;kBACN,IAAI,CAAC,YAAY,CAAC,OAAO;kBACzB,IAAI,CAAC,YAAY,CAAC,OAAO;kBACzB,IAAI,CAAC,YAAY,CAAC,WAAW;kBAC7B,IAAI,CAAC,YAAY,CAAC;EACrB;EACJ,SAAA;EACD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;EACpC,IAAA,CAAC,CAAC;EACF,IAAA,OAAO,MAAM;EACjB;EAEM,SAAUW,SAAO,CAAC,IAAiB,EAAE,OAAY,EAAA;EACnD,IAAA,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;EACjC,IAAA,OAAO,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC;EACpD;;ECrNA,SAAS,SAAS,CAAC,MAAW,EAAA;EAI1B,IAAA,OAAO,MAAM;EACjB;EAEA,IAAA,UAAA,kBAAA,YAAA;EAyBI,IAAA,SAAA,UAAA,CAAY,GAAc,EAAE,OAAyC,EAAE,IAAqB,EAAE,WAAkB,EAAA;EAApF,QAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAA,GAAA,uBAAyC,CAAA,CAAA;EAAE,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,MAAqB,CAAA,CAAA;EAAE,QAAA,IAAA,WAAA,KAAA,MAAA,EAAA,EAAA,WAAA,GAAA,IAAkB,CAAA,CAAA;UAnBhH,IAAA,CAAA,YAAY,GAA0C,EAAE;UACxD,IAAA,CAAA,kBAAkB,GAAsD,EAAE;UAC1E,IAAA,CAAA,eAAe,GAA6C,EAAE;UAE9D,IAAA,CAAA,gBAAgB,GAA0C,EAAE;UAC5D,IAAA,CAAA,qBAAqB,GAAmF,EAAE;UAE1G,IAAA,CAAA,cAAc,GAAiC,EAAE;UACjD,IAAA,CAAA,uBAAuB,GASnB,EAAE;EAGF,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG;EACf,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;EACvB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;EACjB,QAAA,IAAI,CAAC,YAAY,GAAG,WAAW;UAE/B,IAAI,CAAC,QAAQ,EAAE;UACf,IAAI,CAAC,OAAO,EAAE;EAClB,IAAA;EAEA,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAS,EAAA;EACjB,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;MAClD,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,GAA2B,EAAA;EAC5C,QAAA,IAAK,GAAW,CAAC,MAAM,EAAE;EACrB,YAAA,IAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAE,GAAW,CAAC,MAAM,CAAC,EAAE,CAAC;EACpD,YAAA,IAAIC,iBAAsB,CAAC,EAAE,CAAC,EAAE;EAC5B,gBAAA,OAAO,IAAI;EACf,YAAA;EACJ,QAAA;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,IAAY,EAAE,KAAa,EAAA;UAC5C,IAAM,MAAM,GAAwB,EAAE;EACtC,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;EAC1C,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,UAAU,CAAC,OAAO,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAApC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;EACf,gBAAA,KAAqB,IAAA,EAAA,GAAA,CAAa,EAAb,EAAA,GAAA,MAAM,CAAC,MAAM,EAAb,EAAA,GAAA,EAAA,CAAA,MAAa,EAAb,EAAA,EAAa,EAAE;EAA/B,oBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,oBAAA,IAAI,MAAM,KAAK,KAAK,EAAE;0BAClB,MAAM,CAAC,IAAI,CAAC;EACR,4BAAA,UAAU,EAAA,UAAA;EACV,4BAAA,MAAM,EAAA;EACT,yBAAA,CAAC;EACN,oBAAA;EACJ,gBAAA;EACJ,YAAA;EACJ,QAAA;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,IAAY,EAAE,KAAa,EAAA;UAC5C,IAAM,MAAM,GAA8C,EAAE;EAC5D,QAAA,KAAoB,UAAsC,EAAtC,EAAA,GAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAtC,EAAA,GAAA,EAAA,CAAA,MAAsC,EAAtC,EAAA,EAAsC,EAAE;EAAvD,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,YAAA,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;EACrB,gBAAA,KAAqB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,KAAK,CAAC,MAAM,CAAC,MAAM,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAArC,oBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,oBAAA,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;0BACrB,UAAU,EAAE,KAAK,CAAC,UAAU;0BAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;EACpB,wBAAA,MAAM,EAAA;EACT,qBAAA;EACL,gBAAA;EACJ,YAAA;EACJ,QAAA;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;kBACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG;EACtC,YAAA;EACJ,QAAA;EAEA,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAAnC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;cACT,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;EAC7B,YAAA,KAAqB,IAAA,EAAA,GAAA,CAAU,EAAV,EAAA,GAAA,EAAE,CAAC,OAAO,EAAV,EAAA,GAAA,EAAA,CAAA,MAAU,EAAV,EAAA,EAAU,EAAE;EAA5B,gBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,gBAAA,IAAI,MAAM,CAAC,MAAM,EAAE;EACf,oBAAA,KAAqB,IAAA,EAAA,GAAA,CAAa,EAAb,EAAA,GAAA,MAAM,CAAC,MAAM,EAAb,EAAA,GAAA,EAAA,CAAA,MAAa,EAAb,EAAA,EAAa,EAAE;EAA/B,wBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,wBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG;8BAC9B,EAAE,EAAE,EAAE,CAAC,EAAE;EACT,4BAAA,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC;EACjC,yBAAA;EACL,oBAAA;EACJ,gBAAA;EACJ,YAAA;EACJ,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAAnC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAIC,oBAAyB,CAAC,EAAE,CAAC,EAAE;EAC/B,gBAAA,IAAM,MAAM,GAAmB;EAC3B,oBAAA,IAAI,EAAE,UAAU;sBAChB,EAAE,EAAE,EAAE,CAAC,EAAE;sBACT,GAAG,EAAE,IAAI,CAAC,QAAQ;sBAClB,IAAI,EAAE,IAAI,CAAC,KAAM;EACjB,oBAAA,OAAO,EAAE;EACZ,iBAAA;EACD,gBAAA,KAAqB,IAAA,EAAA,GAAA,CAAU,EAAV,EAAA,GAAA,EAAE,CAAC,OAAO,EAAV,EAAA,GAAA,EAAA,CAAA,MAAU,EAAV,EAAA,EAAU,EAAE;EAA5B,oBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;sBACb,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;EAC9C,gBAAA;kBACA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM;EACzC,YAAA;EAAO,iBAAA,IAAIC,oBAAyB,CAAC,EAAE,CAAC,EAAE;EACnC,iBAAA;kBACH,IAAM,QAAQ,GAAG,EAAE,CAAC,GAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC;EACtD,gBAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;kBAC7B,IAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;EACzC,gBAAA,IAAM,MAAM,GAAuB;EAC/B,oBAAA,IAAI,EAAE,OAAO;sBACb,EAAE,EAAE,EAAE,CAAC,EAAE;EACT,oBAAA,GAAG,EAAE,SAAS;EACd,oBAAA,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;EACvB,oBAAA,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;EACtB,oBAAA,MAAM,EAAE,EAAE;EACV,oBAAA,OAAO,EAAE;EACZ,iBAAA;EACD,gBAAA,KAAqB,IAAA,EAAA,GAAA,CAAU,EAAV,EAAA,GAAA,EAAE,CAAC,OAAO,EAAV,EAAA,GAAA,EAAA,CAAA,MAAU,EAAV,EAAA,EAAU,EAAE;EAA5B,oBAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;sBACb,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;EAC9C,gBAAA;kBACA,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM;EACzC,YAAA;EACJ,QAAA;EACA,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,gBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;EACrB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;EAC5B,wBAAA,IAAI,EAAE,MAAM;0BACZ,EAAE,EAAE,GAAG,CAAC,EAAE;EACV,wBAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM;EAC3C,qBAAA;EACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;EACpD,gBAAA;EAAO,qBAAA,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;EAC9B,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;EAC5B,wBAAA,IAAI,EAAE,MAAM;0BACZ,EAAE,EAAE,GAAG,CAAC,EAAE;0BACV,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI;EACjD,qBAAA;EACD,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;EACpD,gBAAA;EAEA,gBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;EACvD,YAAA;EACJ,QAAA;UAEA,IAAI,CAAC,WAAW,EAAE;UAClB,IAAI,CAAC,WAAW,EAAE;UAClB,IAAI,CAAC,QAAQ,EAAE;UACf,IAAI,CAAC,YAAY,EAAE;MACvB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,gBAAA,IAAI,GAAG,CAAC,MAAM,EAAE;sBACZ,IAAM,sBAAsB,GAAqC,EAAE;sBACnE,IAAM,cAAc,GAAa,EAAE;sBACnC,IAAM,UAAU,GAAsB,EAAE;EACxC,oBAAA,KAAoB,IAAA,EAAA,GAAA,CAAU,EAAV,EAAA,GAAA,GAAG,CAAC,MAAM,EAAV,EAAA,GAAA,EAAA,CAAA,MAAU,EAAV,EAAA,EAAU,EAAE;EAA3B,wBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;0BACZ,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;EAC/C,4BAAA,QAAQ,KAAK,CAAC,UAAU,CAAC,QAAQ;EAC7B,gCAAA,KAAK,KAAK;EACV,gCAAA,KAAK,KAAK;EACV,gCAAA,KAAK,KAAK;sCACN,UAAU,CAAC,IAAI,CAAC;0CACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;EAC/C,wCAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC;EAC5D,wCAAA,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAClB,qCAAA,CAAC;EACrB,oCAAA;EACJ,gCAAA,KAAK,KAAK;sCACN,UAAU,CAAC,IAAI,CAAC;0CACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;EAC/C,wCAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC;0CAC5D,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,CAAC,GAAG,SAAS;EACjH,wCAAA,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAClB,qCAAA,CAAC;EACrB,oCAAA;EACJ,gCAAA,KAAK,OAAO;sCACR,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;0CACrD,IAAM,KAAK,GAAQ,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,MAAM;EAClD,wCAAA,QAAQ,KAAK,CAAC,QAAQ;EAClB,4CAAA,KAAK,KAAK;EACV,4CAAA,KAAK,KAAK;EACV,4CAAA,KAAK,KAAK;kDACN,UAAU,CAAC,IAAI,CAAC;sDACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;sDACpC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;EAChD,oDAAA,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EACrC,iDAAA,CAAC;EACF,gDAAA;;EAEZ,oCAAA;sCACA,sBAAsB,CAAC,IAAI,CAAC;EACxB,wCAAA,IAAI,EAAE,OAAO;0CACb,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;0CACzC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;EACnC,wCAAA,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC;EACrC,qCAAA,CAAC;EACF,oCAAA;EACJ,gCAAA;EACI,oCAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;EAC/C,oCAAA,MAAM,IAAI,KAAK,CAAC,4BAAA,CAAA,MAAA,CAA6B,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAE,CAAC;;EAErF,wBAAA;EAAO,6BAAA;EACH,4BAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;EACnD,wBAAA;EACJ,oBAAA;EACA,oBAAA,IAAI,sBAAsB,CAAC,MAAM,EAAE;EAC/B,wBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,GAAG,sBAAsB;EACzF,oBAAA;EACA,oBAAA,IAAI,UAAU,CAAC,MAAM,EAAE;EACnB,wBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,GAAA,aAAA,CAAA,EAAA,EAAO,cAAc,CAAC;EAC7E,wBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU;EACxE,oBAAA;EACJ,gBAAA;EACJ,YAAA;EACJ,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAyC,EAAA;EAC/C,QAAA,QAAQ,IAAI;EACR,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,KAAK;EAChB,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,MAAM;EACjB,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,KAAK;EAChB,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,KAAK;;EAEpB,QAAA,MAAM,IAAI,KAAK,CAAC,+BAAA,CAAA,MAAA,CAAgC,IAAI,CAAE,CAAC;MAC3D,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;EACI,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,gBAAA,IAAIC,mBAAwB,CAAC,GAAG,CAAC,EAAE;EAC5B,qBAAA,IAAIC,kBAAuB,CAAC,GAAG,CAAC,EAAE;EACrC,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;EAC7B,gBAAA;EAAO,qBAAA,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;EACvC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;EAC/B,gBAAA;EAAO,qBAAA,IAAIC,mBAAwB,CAAC,GAAG,CAAC,EAAE;EACtC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;EAC9B,gBAAA;EAAO,qBAAA,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;EACvC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;EAC/B,gBAAA;EAAO,qBAAA,IAAIC,oBAAyB,CAAC,GAAG,CAAC,EAAE;EACvC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;EAC/B,gBAAA;EAAO,qBAAA,IAAIC,qBAA0B,CAAC,GAAG,CAAC,EAAE;EACxC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;EAChC,gBAAA;EAAO,qBAAA;sBACH,MAAM,IAAI,KAAK,CAAC,6BAAA,CAAA,MAAA,CAA8B,GAAG,CAAC,IAAI,CAAE,CAAC;EAC7D,gBAAA;EACJ,YAAA;EACJ,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,GAA2B,EAAA;EACvC,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;EAC5D,SAAA,CAAC;EACF,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,QAAQ;EACjB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;EAChE,SAAA,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,GAA6B,EAAA;EAC3C,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;EAClF,SAAA,CAAC;EACF,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,QAAQ;EACjB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;EAChE,SAAA,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,OAAY,EAAA;UAC9B,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO;MAC7D,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,GAA4B,EAAA;EACzC,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;cAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EACjC,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3D,SAAA,CAAC;EACF,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;EACnD,YAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;kBAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EACjC,gBAAA,IAAI,EAAE,GAAG;EACT,gBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3D,aAAA,CAAC;EACN,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,GAA6B,EAAA;EAC3C,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;EACvC,YAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,gBAAA,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;EACrB,gBAAA,IAAI,EAAE,GAAG;EACT,gBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;EAC/D,aAAA,CAAC;EACN,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,aAAmC,EAAE,UAA2B,EAAA;EAA3B,QAAA,IAAA,UAAA,KAAA,MAAA,EAAA,EAAA,UAAA,GAAA,KAA2B,CAAA,CAAA;UAC3E,IAAM,MAAM,GAAuB,EAAE;EACrC,QAAA,IAAI,aAAa,EAAE;EACf,YAAA,KAAK,IAAM,KAAK,IAAI,aAAa,EAAE;kBAC/B,IAAM,QAAQ,GAA6D,EAAE;EAC7E,gBAAA,KAAK,IAAM,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE;EACpC,oBAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;EAClB,wBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;EACxD,oBAAA;2BAAO,IAAI,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;EACjD,wBAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,GAAG,GAAG,CAAC;EACjD,wBAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;EAC/D,oBAAA;EAAO,yBAAA;0BACH,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;EAC7C,oBAAA;EACJ,gBAAA;;EAEA,gBAAA,IAAI,CAAC,UAAU,IAAI,KAAK,KAAK,GAAG,EAAE;sBAC9B,MAAM,CAAC,IAAI,CAAC;EACR,wBAAA,KAAK,EAAA,KAAA;EACL,wBAAA,QAAQ,EAAA;EACX,qBAAA,CAAC;EACN,gBAAA;EACJ,YAAA;EACJ,QAAA;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,GAA6B,EAAA;EAC3C,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,KAAK;EACd,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG;EAC1D,SAAA,CAAC;EACF,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;EAC5D,SAAA,CAAC;EACF,QAAA,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE;EAClB,YAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,gBAAA,OAAO,EAAE,MAAM;EACf,gBAAA,IAAI,EAAE,KAAK;kBACX,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;EACjD,gBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;kBAC/C,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa;EACvD,aAAA,CAAC;EACN,QAAA;UACA,IAAI,GAAG,GAAG,CAAC;EACX,QAAA,IAAI,GAAG,CAAC,IAAI,EAAE;EACV,YAAA,KAAmB,IAAA,EAAA,GAAA,CAAQ,EAAR,EAAA,GAAA,GAAG,CAAC,IAAI,EAAR,EAAA,GAAA,EAAA,CAAA,MAAQ,EAAR,EAAA,EAAQ,EAAE;EAAxB,gBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;EACd,oBAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,wBAAA,OAAO,EAAE,aAAA,CAAA,MAAA,CAAc,GAAG,EAAE,CAAE;EAC9B,wBAAA,IAAI,EAAE,KAAK;0BACX,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;EAC7C,wBAAA,OAAO,EAAE,EAAE;0BACX,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI;EACzD,qBAAA,CAAC;EACN,gBAAA;EACJ,YAAA;EACJ,QAAA;EACA,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;EAC1D,YAAA,eAAe,EAAE,CAAC;EACd,oBAAA,OAAO,EAAE,KAAK;EACd,oBAAA,IAAI,EAAE,GAAG;EACT,oBAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG;EAC/D,iBAAA;EACJ,SAAA,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,GAA8B,EAAA;EAC7C,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ;EAC9D,QAAA,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;EAC1B,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,IAAI,EAAE,GAAG;EACT,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;EAC5D,SAAA,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,gBAAA,IAAI,GAAG,CAAC,MAAM,EAAE;EACZ,oBAAA,KAAK,IAAM,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE;EAC9B,wBAAA,IAAM,OAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;EACjC,wBAAA,KAAqB,IAAA,EAAA,GAAA,CAAa,EAAb,EAAA,GAAA,OAAK,CAAC,OAAO,EAAb,EAAA,GAAA,EAAA,CAAA,MAAa,EAAb,EAAA,EAAa,EAAE;EAA/B,4BAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;8BACb,IAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;EAC1D,4BAAA,IAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;EAC3E,4BAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;EACjB,gCAAA,IAAIC,iBAAsB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;EAC7C,oCAAA,KAAK,IAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;EAC/B,wCAAA,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;8CAC7B,MAAM,EAAE,GAAG,CAAC,EAAE;EACd,4CAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;8CACpC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;EAChC,yCAAA,CAAC;EAC5B,oCAAA;EACJ,gCAAA;EAAO,qCAAA;EACH,oCAAA,IAAM,SAAS,GAA0B;0CACrC,MAAM,EAAE,GAAG,CAAC,EAAE;EACd,wCAAA,QAAQ,EAAE;EACb,qCAAA;EACD,oCAAA,KAAK,IAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE;EAC/B,wCAAA,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;EACpC,wCAAA,IAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS;0CACxF,IAAI,CAAC,QAAQ,EAAE;EACX,4CAAA,OAAO,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAmB,OAAO,EAAA,cAAA,CAAA,CAAA,MAAA,CAAa,GAAG,CAAC,EAAE,EAAA,gCAAA,CAAA,CAAA,MAAA,CAA+B,QAAQ,CAAC,EAAE,EAAA,IAAA,CAAG,CAAC;EAC5G,wCAAA;EAAO,6CAAA;EACH,4CAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;EACpB,gDAAA,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;kDACpC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;kDACpD,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC;kDAC7C,QAAQ,EAAE,QAAQ,CAAC;EACtB,6CAAA,CAAC;EACN,wCAAA;EACJ,oCAAA;EACA,oCAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;EAChF,gCAAA;EACJ,4BAAA;EACJ,wBAAA;EACJ,oBAAA;EACJ,gBAAA;EACJ,YAAA;EACJ,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAmB,EAAA;EAC9B,QAAA,QAAQ,CAAC;EACL,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,IAAI;EACf,YAAA,KAAK,WAAW;EACZ,gBAAA,OAAO,IAAI;;EAEnB,QAAA,OAAO,CAAC;MACZ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAApC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,gBAAA,IAAK,GAAW,CAAC,MAAM,EAAE;EACrB,oBAAA,IAAK,GAAW,CAAC,MAAM,CAAC,IAAI,EAAE;EAC1B,wBAAA,IAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI;EACzD,wBAAA,OAAO,CAAC,UAAU,GAAK,GAAW,CAAC,MAAM,CAAC,IAAiB,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;8BAC7D,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;kCACtB,OAAO;sCACH,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACtC,oCAAA,UAAU,EAAE;EACQ,iCAAA;EAC5B,4BAAA;8BACA,OAAO;EACH,gCAAA,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC,CAAC;EAC5B,gCAAA,UAAU,EAAE;EACQ,6BAAA;EAC5B,wBAAA,CAAC,CAAC;EACN,oBAAA;EACA,oBAAA,IAAK,GAAW,CAAC,MAAM,CAAC,KAAK,EAAE;EAC3B,wBAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK;0BAC3D,QAAQ,CAAC,KAAK,GAAG,CAAE,GAAW,CAAC,MAAM,CAAC,KAAK;EAC/C,oBAAA;EACJ,gBAAA;EACJ,YAAA;EACJ,QAAA;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,GAA2B,EAAA;EACnC,QAAA,IAAM,OAAO,GAAkB;EAC3B,YAAA,IAAI,EAAE,SAAS;EACf,YAAA,eAAe,EAAE;EACpB,SAAA;EACD,QAAA,IAAM,OAAO,GAAiB;EAC1B,YAAA,IAAI,EAAE,QAAQ;EACd,YAAA,UAAU,EAAE;EACf,SAAA;EACD,QAAA,IAAM,OAAO,GAAkB;EAC3B,YAAA,IAAI,EAAE,SAAS;EACf,YAAA,UAAU,EAAE,EAAE;EACd,YAAA,UAAU,EAAE;EACf,SAAA;EACD,QAAA,IAAM,IAAI,GAAe;EACrB,YAAA,IAAI,EAAE,MAAM;EACZ,YAAA,UAAU,EAAE;EACf,SAAA;EACD,QAAA,IAAM,KAAK,GAAgB;EACvB,YAAA,IAAI,EAAE,OAAO;EACb,YAAA,KAAK,EAAE;EACV,SAAA;EACD,QAAA,IAAM,QAAQ,GAAmB;EAC7B,YAAA,IAAI,EAAE,UAAU;EAChB,YAAA,eAAe,EAAE;EACpB,SAAA;EACD,QAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;EACnC,YAAA,OAAO,EAAA,OAAA;EACP,YAAA,OAAO,EAAA,OAAA;EACP,YAAA,IAAI,EAAA,IAAA;EACJ,YAAA,OAAO,EAAA,OAAA;EACP,YAAA,KAAK,EAAA,KAAA;EACL,YAAA,QAAQ,EAAA;EACX,SAAA;UACD,IAAM,aAAa,GAAoD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG;cACpG,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;EACtC,YAAA,OAAO,EAAE,EAAE;cACX,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;EAC3C,SAAA,GAAG;cACA,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE;cACtC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;EAC3C,SAAA;UACD,OAAO;cACH,EAAE,EAAE,GAAG,CAAC,EAAE;EACV,YAAA,UAAU,EAAE,aAAa;EACzB,YAAA,UAAU,EAAE;kBACR,OAAO;kBACP,OAAO;kBACP,IAAI;kBACJ,OAAO;EACP,gBAAA;EACH,aAAA;EACD,YAAA,aAAa,EAAA,QAAA,CAAA,QAAA,CAAA,EACT,EAAE,EAAE,GAAG,CAAC,EAAE,EACV,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,EACtB,WAAW,EAAE,EAAE,EACf,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAA,EAC/E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,EAAA,EAChC,QAAQ,EAAA,QAAA,EACR,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAA2B,EAAA;EAEnE,SAAA;MACL,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,SAAiC,EAAA;EAC5C,QAAA,QAAQ,SAAS;EACb,YAAA,KAAK,MAAM;kBACP,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;EACvD,YAAA,KAAK,QAAQ;kBACT,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;EAC3D,YAAA,KAAK,KAAK;kBACN,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE;EACrD,YAAA,KAAK,KAAK;kBACN,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;EAC3D,YAAA,KAAK,MAAM;kBACP,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE;EAChE,YAAA,KAAK,YAAY;kBACb,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE;EACjE,YAAA,KAAK,OAAO;kBACR,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB,EAAE;EAC7E,YAAA,KAAK,SAAS;kBACV,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE;EAC7D,YAAA,KAAK,QAAQ;kBACT,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE;EAChE,YAAA,KAAK,UAAU;kBACX,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE;EAC7D,YAAA,KAAK,SAAS;kBACV,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;EAC3D,YAAA,KAAK,OAAO;kBACR,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,sBAAsB,EAAE;EAC3E,YAAA,KAAK,OAAO;EACZ,YAAA;kBACI,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE;;MAEjE,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,MAAmC,EAAE,MAAuB,EAAA;UAA7E,IAAA,KAAA,GAAA,IAAA;EAAsD,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAuB,CAAA,CAAA;EACzE,QAAA,IAAI,CAAC,MAAM;EAAE,YAAA,OAAO,EAAE;EACtB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA;EACnB,YAAA,QAAQ,KAAK,CAAC,UAAU,CAAC,IAAI;EACzB,gBAAA,KAAK,OAAO;sBACR,OAAO;EACH,wBAAA,IAAI,EAAE,OAAO;0BACb,EAAE,EAAE,KAAK,CAAC,EAAE;EACZ,wBAAA,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAqB,GAAG,SAAS;EAC1F,qBAAA;EACL,gBAAA,KAAK,SAAS;sBACV,OAAO;EACH,wBAAA,IAAI,EAAE,SAAS;0BACf,EAAE,EAAE,KAAK,CAAC,EAAE;EACZ,wBAAA,OAAO,EAAE,EAAE;EACX,wBAAA,QAAQ,EAAE;EACb,qBAAA;EACL,gBAAA;sBACI,OAAO;EACH,wBAAA,IAAI,EAAE,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;0BACrE,EAAE,EAAE,KAAK,CAAC,EAAE;EACZ,wBAAA,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;EACrE,qBAAA;;EAEb,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,UAAwB,SAAsC,EAAE,MAAe,EAAA;EAC3E,QAAA,QAAQ,SAAS;EACb,YAAA,KAAK,MAAM;EACX,YAAA,KAAK,SAAS;EACV,gBAAA,OAAO,SAAS;EACpB,YAAA,KAAK,SAAS;EACd,YAAA,KAAK,UAAU;EACf,YAAA,KAAK,OAAO;EACZ,YAAA,KAAK,QAAQ;EACb,YAAA,KAAK,MAAM;EACP,gBAAA,OAAO,QAAQ;EACnB,YAAA,KAAK,QAAQ;EACT,gBAAA,OAAO,QAAQ;EACnB,YAAA;EACI,gBAAA,OAAO,MAAM,GAAG,QAAQ,GAAG,QAAQ;;MAE/C,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,MAAoB,EAAE,MAAuB,EAAA;UACvD,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG;EAC/B,YAAA,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM;EAC5C,SAAA;MACL,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,OAAwB,EAAA;EACnC,QAAA,IAAI,CAAC,OAAO;EAAE,YAAA,OAAO,EAAE;EACvB,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA;cACxB,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;EACzC,YAAA,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO;EACzD,QAAA,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA;cACT,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;EACzC,YAAA,IAAM,MAAM,GAAsB;EAC9B,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,EAAE,EAAE,OAAO,CAAC,CAAC;EAChB,aAAA;EACD,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,KAAa,EAAE,OAAe,EAAA;UACtC,OAAO;EACH,YAAA,IAAI,EAAE,QAAQ;EACd,YAAA,EAAE,EAAE,EAAE;EACN,YAAA,OAAO,EAAE;EACZ,SAAA;MACL,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;UACI,IAAM,MAAM,GAA0B,EAAE;EACxC,QAAA,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;cACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;EAC1C,QAAA;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;UACI,IAAM,MAAM,GAAiB,EAAE;EAC/B,QAAA,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;cAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;EACxC,QAAA;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,OAAO;;EAEN,SAAA;MACL,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,SAAS,EAAE;EACP,gBAAA,IAAI,EAAE,QAAQ;EACd,gBAAA,OAAO,EAAE;EACZ,aAAA;EACD,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;EACpC,YAAA,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;EAChC,YAAA,UAAU,EAAE,IAAI,CAAC,eAAe;EACnC,SAAA;MACL,CAAC;EACL,IAAA,OAAA,UAAC;EAAD,CAAC,EAhsBD,CAAA;EAksBM,SAAU,OAAO,CAAC,GAAc,EAAE,OAAgB,EAAE,IAAa,EAAE,WAA2B,EAAE,eAAoB,EAAA;EAApB,IAAA,IAAA,eAAA,KAAA,MAAA,EAAA,EAAA,eAAA,GAAA,EAAoB,CAAA,CAAA;EACtH,IAAA,IAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC;EAC7D,IAAA,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;MAC5B,MAAM,CAAC,UAAU,GAAGC,SAAkB,CAAC,MAAM,EAAE,eAAe,CAAC;EAC/D,IAAA,OAAO,MAAM;EACjB;;;;;;;;;;;;;;;;;;;;EC7tBA,EAAA,SAAAC,KAAA,GAAA;EAAyBC,MAAAA,KAAAA,IAAAA,IAAAA,GAAAA,SAAAA,CAAAA,MAAAA,EAAAA,IAAzB,GAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;EAAA,UAAA,IAAA,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA;;;EACKA,MAAAA,IAAAA,IAAAA,CAAKC,MAAL,GAAc,CAAlB,EAAqB;EACf,UAAA,IAAA,CAAA,CAAL,CAAA,GAAUD,IAAAA,CAAK,CAAL,CAAA,CAAQE,KAAR,CAAc,CAAd,EAAiB,EAAjB,CAAV;EACMC,UAAAA,IAAAA,EAAAA,GAAKH,IAAAA,CAAKC,MAAL,GAAc,CAAzB;iBACK,IAAIG,CAAAA,GAAI,CAAb,EAAgBA,CAAAA,GAAID,EAApB,EAAwB,EAAEC,CAA1B,EAA6B;EACvBA,cAAAA,IAAAA,CAAAA,CAAL,CAAA,GAAUJ,IAAAA,CAAKI,CAAL,CAAA,CAAQF,KAAR,CAAc,CAAd,EAAiB,EAAjB,CAAV;;EAEIC,UAAAA,IAAAA,CAAAA,EAAL,CAAA,GAAWH,IAAAA,CAAKG,EAAL,CAAA,CAASD,KAAT,CAAe,CAAf,CAAX;EACOF,UAAAA,OAAAA,IAAAA,CAAKK,IAAL,CAAU,EAAV,CAAP;SAPD,MAQO;EACCL,UAAAA,OAAAA,IAAAA,CAAK,CAAL,CAAP;;;IAIF,SAAAM,MAAA,CAAuBC,GAAvB,EAAA;eACQ,KAAA,GAAQA,GAAR,GAAc,GAArB;;IAGD,SAAAC,MAAA,CAAuBC,CAAvB,EAAA;EACQA,MAAAA,OAAAA,CAAAA,KAAMC,SAAN,GAAkB,WAAlB,GAAiCD,CAAAA,KAAM,IAAN,GAAa,MAAb,GAAsBE,MAAAA,CAAOC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BL,CAA/B,CAAA,CAAkCM,KAAlC,CAAwC,GAAxC,CAAA,CAA6CC,GAA7C,EAAA,CAAmDD,KAAnD,CAAyD,GAAzD,CAAA,CAA8DE,KAA9D,EAAA,CAAsEC,WAAtE,EAA9D;;IAGD,SAAAC,WAAA,CAA4BZ,GAA5B,EAAA;EACQA,MAAAA,OAAAA,GAAAA,CAAIY,WAAJ,EAAP;;IAGD,SAAAC,OAAA,CAAwBC,GAAxB,EAAA;QACQA,OAAAA,GAAAA,KAAQX,SAAR,IAAqBW,GAAAA,KAAQ,IAA7B,GAAqCA,GAAAA,YAAeC,KAAf,GAAuBD,GAAvB,GAA8B,OAAOA,GAAAA,CAAIpB,MAAX,KAAsB,QAAtB,IAAkCoB,GAAAA,CAAIN,KAAtC,IAA+CM,GAAAA,CAAIE,WAAnD,IAAkEF,GAAAA,CAAIP,IAAtE,GAA6E,CAACO,GAAD,CAA7E,GAAqFC,KAAAA,CAAMV,SAAN,CAAgBV,KAAhB,CAAsBY,IAAtB,CAA2BO,GAA3B,CAAxJ,GAA4L,EAAnM;;EAID,EAAA,SAAAG,MAAA,CAAuBC,MAAvB,EAAuCC,MAAvC,EAAA;QACOL,IAAAA,GAAAA,GAAMI,MAAZ;EACIC,MAAAA,IAAAA,MAAJ,EAAY;iBACN,IAAMC,GAAX,IAAkBD,MAAlB,EAA0B;EACrBC,cAAAA,GAAAA,CAAAA,GAAJ,CAAA,GAAWD,MAAAA,CAAOC,GAAP,CAAX;;;eAGKN,GAAP;;;ICnCD,SAAAO,SAAA,CAA0BC,KAA1B,EAAA;QAEEC,IAAAA,OAAAA,GAAU,UADX;EAGCC,UAAAA,OAAAA,GAAU,OAHX;EAKCC,UAAAA,QAAAA,GAAWjC,KAAAA,CAAMgC,OAAN,EAAe,UAAf,CALZ;YAQCE,YAAAA,GAAe3B,OAAOA,MAAAA,CAAO,SAAA,GAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,IAAuF,GAAvF,GAA6F1B,MAAAA,CAAO,aAAA,GAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,MAAAA,CAAO,GAAA,GAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CARhB;;uBASgB,yBAThB;EAUCE,UAAAA,YAAAA,GAAe,qCAVhB;EAWCC,UAAAA,UAAAA,GAAapC,KAAAA,CAAMqC,YAAN,EAAoBF,YAApB,CAXd;EAYCG,UAAAA,SAAAA,GAAYR,KAAAA,GAAQ,6EAAR,GAAwF,IAZrG;;qBAacA,KAAAA,GAAQ,mBAAR,GAA8B,IAb5C;;QAcgB9B,YAAAA,GAAAA,KAAAA,CAAM+B,OAAN,EAAeC,OAAf,EAAwB,gBAAxB,EAA0CM,SAA1C,CAdhB;EAeW/B,UAAAA,MAAAA,CAAOwB,OAAAA,GAAU/B,KAAAA,CAAM+B,OAAN,EAAeC,OAAf,EAAwB,aAAxB,CAAV,GAAmD,GAA1D,CAfX;EAgBazB,UAAAA,MAAAA,CAAOA,MAAAA,CAAO2B,YAAAA,GAAe,GAAf,GAAqBlC,KAAAA,CAAMuC,YAAN,EAAoBJ,YAApB,EAAkC,OAAlC,CAA5B,CAAA,GAA0E,GAAjF,CAhBb;EAiBCK,UAAAA,IACAC,kBAAAA,GAAqBlC,MAAAA,CAAOA,MAAAA,CAAO,SAAP,CAAA,GAAoB,GAApB,GAA0BA,MAAAA,CAAO,QAAA,GAAWyB,OAAlB,CAA1B,GAAuD,GAAvD,GAA6DzB,MAAAA,CAAO,GAAA,GAAMyB,OAAN,GAAgBA,OAAvB,CAA7D,GAA+F,GAA/F,GAAqGzB,MAAAA,CAAO,SAAA,GAAYyB,OAAnB,CAArG,GAAmI,OAAnI,GAA6IA,OAApJ,CAlBtB;;EAmBgBzB,MAAAA,YAAAA,GAAAA,MAAAA,CAAOkC,kBAAAA,GAAqB,KAArB,GAA6BA,kBAA7B,GAAkD,KAAlD,GAA0DA,kBAA1D,GAA+E,KAA/E,GAAuFA,kBAA9F,CAnBhB;EAoBCC,UAAAA,IAAAA,GAAOnC,MAAAA,CAAO0B,QAAAA,GAAW,OAAlB,CApBR;EAqBCU,UAAAA,KAAAA,GAAQpC,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAP,GAAeA,IAAtB,CAAA,GAA8B,GAA9B,GAAoCE,YAA3C,CArBT;YAsBCC,aAAAA,GAAgBtC,MAAAA,CAAmEA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,KAAvB,GAA+BC,KAAlG,CAtBjB;;EAuBiBpC,MAAAA,aAAAA,GAAAA,MAAAA,CAAwD,QAAA,GAAWA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAX,GAAkC,KAAlC,GAA0CC,KAAlG,CAvBjB;;QAwBiBpC,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAwCmC,IAAxC,CAAA,GAAgD,SAAhD,GAA4DnC,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAxBjB;;EAyBiBpC,MAAAA,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAhD,GAA4DnC,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CAzBjB;;EA0BiBpC,MAAAA,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAhD,GAA4DnC,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAA5D,GAAmF,KAAnF,GAA2FC,KAAlG,CA1BjB;;QA2BiBpC,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAhD,GAAmEA,IAAnE,GAA0E,KAA1E,GAA2FC,KAAlG,CA3BjB;;QA4BiBpC,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAhD,GAA2FC,KAAlG,CA5BjB;;QA6BiBpC,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAhD,GAA2FA,IAAlG,CA7BjB;;EA8BiBnC,MAAAA,aAAAA,GAAAA,MAAAA,CAAOA,MAAAA,CAAOA,MAAAA,CAAOmC,IAAAA,GAAO,KAAd,CAAA,GAAuB,OAAvB,GAAiCA,IAAxC,CAAA,GAAgD,SAAvD,CA9BjB;;uBA+BgBnC,MAAAA,CAAO,CAACsC,aAAD,EAAgBC,aAAhB,EAA+BC,aAA/B,EAA8CC,aAA9C,EAA6DC,aAA7D,EAA4EC,aAA5E,EAA2FC,aAA3F,EAA0GC,aAA1G,EAAyHC,aAAzH,EAAwI/C,IAAxI,CAA6I,GAA7I,CAAP,CA/BhB;EAgCCgD,UAAAA,OAAAA,GAAU/C,MAAAA,CAAOA,MAAAA,CAAOgC,YAAAA,GAAe,GAAf,GAAqBL,YAA5B,CAAA,GAA4C,GAAnD,CAhCX;;EAmCc3B,MAAAA,MAAAA,CAAO,MAAA,GAAS0B,QAAT,GAAoB,MAApB,GAA6BjC,KAAAA,CAAMuC,YAAN,EAAoBJ,YAApB,EAAkC,OAAlC,CAA7B,GAA0E,GAAjF,CAnCd;;EAqCa5B,MAAAA,MAAAA,CAAOA,MAAAA,CAAO2B,YAAAA,GAAe,GAAf,GAAqBlC,KAAAA,CAAMuC,YAAN,EAAoBJ,YAApB,CAA5B,CAAA,GAAiE,GAAxE,CArCb;EAsCCoB,UAAAA,IAGAC,MAAAA,GAASjD,MAAAA,CAAO2B,YAAAA,GAAe,GAAf,GAAqBlC,KAAAA,CAAMuC,YAAN,EAAoBJ,YAApB,EAAkC,UAAlC,CAA5B,CAzCV;EA4CkB5B,UAAAA,MAAAA,CAAOA,MAAAA,CAAO2B,YAAAA,GAAe,GAAf,GAAqBlC,KAAAA,CAAMuC,YAAN,EAAoBJ,YAApB,EAAkC,OAAlC,CAA5B,CAAA,GAA0E,GAAjF,CA5ClB;EA6CCsB,UAMSlD,MAAAA,CAAOA,MAAAA,CAAOiD,MAAAA,GAAS,GAAT,GAAexD,KAAAA,CAAM,UAAN,EAAkB0D,UAAlB,CAAtB,CAAA,GAAuD,GAA9D,CAnDV;EAmEO,MAAA,OAAA;EACO,UAAA,UAAA,EAAA,IAAIC,MAAJ,CAAW3D,KAAAA,CAAM,KAAN,EAAa+B,OAAb,EAAsBC,OAAtB,EAA+B,aAA/B,CAAX,EAA0D,GAA1D,CADP;EAES,UAAA,YAAA,EAAA,IAAI2B,MAAJ,CAAW3D,KAAAA,CAAM,WAAN,EAAmBuC,YAAnB,EAAiCJ,YAAjC,CAAX,EAA2D,GAA3D,CAFT;EAGK,UAAA,QAAA,EAAA,IAAIwB,MAAJ,CAAW3D,KAAAA,CAAM,iBAAN,EAAyBuC,YAAzB,EAAuCJ,YAAvC,CAAX,EAAiE,GAAjE,CAHL;EAIK,UAAA,QAAA,EAAA,IAAIwB,MAAJ,CAAW3D,KAAAA,CAAM,iBAAN,EAAyBuC,YAAzB,EAAuCJ,YAAvC,CAAX,EAAiE,GAAjE,CAJL;EAKc,UAAA,iBAAA,EAAA,IAAIwB,MAAJ,CAAW3D,KAAAA,CAAM,cAAN,EAAsBuC,YAAtB,EAAoCJ,YAApC,CAAX,EAA8D,GAA9D,CALd;EAMM,UAAA,SAAA,EAAA,IAAIwB,MAAJ,CAAW3D,KAAAA,CAAM,QAAN,EAAgBuC,YAAhB,EAA8BJ,YAA9B,EAA4C,gBAA5C,EAA8DuB,UAA9D,CAAX,EAAsF,GAAtF,CANN;EAOS,UAAA,YAAA,EAAA,IAAIC,MAAJ,CAAW3D,KAAAA,CAAM,QAAN,EAAgBuC,YAAhB,EAA8BJ,YAA9B,EAA4C,gBAA5C,CAAX,EAA0E,GAA1E,CAPT;EAQG,UAAA,MAAA,EAAA,IAAIwB,MAAJ,CAAW3D,KAAAA,CAAM,KAAN,EAAauC,YAAb,EAA2BJ,YAA3B,CAAX,EAAqD,GAArD,CARH;EASO,UAAA,UAAA,EAAA,IAAIwB,MAAJ,CAAWpB,YAAX,EAAyB,GAAzB,CATP;EAUQ,UAAA,WAAA,EAAA,IAAIoB,MAAJ,CAAW3D,KAAAA,CAAM,QAAN,EAAgBuC,YAAhB,EAA8BH,UAA9B,CAAX,EAAsD,GAAtD,CAVR;EAWQ,UAAA,WAAA,EAAA,IAAIuB,MAAJ,CAAWzB,YAAX,EAAyB,GAAzB,CAXR;YAYQ,WAAA,EAAA,IAAIyB,MAAJ,CAAW,IAAA,GAAOf,YAAP,GAAsB,IAAjC,CAZR;yBAaQ,IAAIe,MAAJ,CAAW,QAAA,GAAWC,YAAX,GAA0B,GAA1B,GAAgCrD,MAAAA,CAAOA,MAAAA,CAAO,cAAA,GAAiB0B,QAAjB,GAA4B,MAAnC,CAAA,GAA6C,GAA7C,GAAmDqB,OAAnD,GAA6D,GAApE,CAAhC,GAA2G,QAAtH,CAbR;EAAP,OAAA;;EAiBD,EAAA,IAAA,YAAA,GAAezB,SAAAA,CAAU,KAAV,CAAf;;ECrFA,EAAA,IAAA,YAAA,GAAeA,SAAAA,CAAU,IAAV,CAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECDA;;IACA,IAAMgC,MAAAA,GAAS,UAAf,CAAA;;;EAGA,EAAA,IAAMC,OAAO,EAAb;EACA,EAAA,IAAMC,OAAO,CAAb;EACA,EAAA,IAAMC,OAAO,EAAb;EACA,EAAA,IAAMC,OAAO,EAAb;EACA,EAAA,IAAMC,OAAO,GAAb;EACA,EAAA,IAAMC,cAAc,EAApB;IACA,IAAMC,QAAAA,GAAW,GAAjB,CAAA;IACA,IAAMC,SAAAA,GAAY,GAAlB,CAAA;;;EAGA,EAAA,IAAMC,gBAAgB,OAAtB;IACA,IAAMC,aAAAA,GAAgB,YAAtB,CAAA;IACA,IAAMC,eAAAA,GAAkB,2BAAxB,CAAA;;;EAGA,EAAA,IAAMC,MAAAA,GAAS;iBACF,iDADE;kBAED,gDAFC;EAGG,GAAA,eAAA,EAAA;EAHlB,GAAA;;;EAOA,EAAA,IAAMC,aAAAA,GAAgBZ,IAAAA,GAAOC,IAA7B;EACA,EAAA,IAAMY,KAAAA,GAAQC,IAAAA,CAAKD,KAAnB;EACA,EAAA,IAAME,kBAAAA,GAAqBC,MAAAA,CAAOC,YAAlC;;;;;;;;;;IAUA,SAASC,OAAT,CAAeC,IAAf,EAAqB;EACd,GAAA,MAAA,IAAIC,UAAJ,CAAeT,MAAAA,CAAOQ,IAAP,CAAf,CAAN;;;;;;;;;;;EAWD,EAAA,SAASE,GAAT,CAAaC,KAAb,EAAoBC,EAApB,EAAwB;KACjBC,IAAAA,MAAAA,GAAS,EAAf;EACIpF,GAAAA,IAAAA,MAAAA,GAASkF,KAAAA,CAAMlF,MAAnB;KACOA,OAAAA,MAAAA,EAAP,EAAiB;MACTA,MAAAA,CAAAA,MAAP,CAAA,GAAiBmF,EAAAA,CAAGD,KAAAA,CAAMlF,MAAN,CAAH,CAAjB;;YAEMoF,MAAP;;;;;;;;;;;;;EAaD,EAAA,SAASC,SAAT,CAAmBC,MAAnB,EAA2BH,EAA3B,EAA+B;EACxBI,GAAAA,IAAAA,KAAAA,GAAQD,MAAAA,CAAOxE,KAAP,CAAa,GAAb,CAAd;KACIsE,IAAAA,MAAAA,GAAS,EAAb;EACIG,GAAAA,IAAAA,KAAAA,CAAMvF,MAAN,GAAe,CAAnB,EAAsB;;;eAGZuF,KAAAA,CAAM,CAAN,CAAA,GAAW,GAApB;EACSA,IAAAA,MAAAA,GAAAA,KAAAA,CAAM,CAAN,CAAT;;;KAGQD,MAAAA,GAAAA,MAAAA,CAAOE,OAAP,CAAelB,eAAf,EAAgC,MAAhC,CAAT;EACMmB,GAAAA,IAAAA,MAAAA,GAASH,MAAAA,CAAOxE,KAAP,CAAa,GAAb,CAAf;SACM4E,OAAAA,GAAUT,GAAAA,CAAIQ,MAAJ,EAAYN,EAAZ,CAAA,CAAgB/E,IAAhB,CAAqB,GAArB,CAAhB;KACOgF,OAAAA,MAAAA,GAASM,OAAhB;;;;;;;;;;;;;;;;IAgBD,SAASC,UAAT,CAAoBL,MAApB,EAA4B;KACrBM,IAAAA,MAAAA,GAAS,EAAf;KACIC,IAAAA,OAAAA,GAAU,CAAd;EACM7F,GAAAA,IAAAA,MAAAA,GAASsF,MAAAA,CAAOtF,MAAtB;EACO6F,GAAAA,OAAAA,OAAAA,GAAU7F,MAAjB,EAAyB;MAClB8F,IAAAA,KAAAA,GAAQR,MAAAA,CAAOS,UAAP,CAAkBF,OAAAA,EAAlB,CAAd;EACIC,IAAAA,IAAAA,KAAAA,IAAS,MAAT,IAAmBA,KAAAA,IAAS,MAA5B,IAAsCD,OAAAA,GAAU7F,MAApD,EAA4D;;OAErDgG,IAAAA,KAAAA,GAAQV,MAAAA,CAAOS,UAAP,CAAkBF,OAAAA,EAAlB,CAAd;EACI,KAAA,IAAA,CAACG,KAAAA,GAAQ,MAAT,KAAoB,MAAxB,EAAgC;;EACxBC,MAAAA,MAAAA,CAAAA,IAAP,CAAY,CAAC,CAACH,KAAAA,GAAQ,KAAT,KAAmB,EAApB,KAA2BE,KAAAA,GAAQ,KAAnC,CAAA,GAA4C,OAAxD,CAAA;QADD,MAEO;;;EAGCC,MAAAA,MAAAA,CAAAA,IAAP,CAAYH,KAAZ,CAAA;;;OARF,MAWO;EACCG,KAAAA,MAAAA,CAAAA,IAAP,CAAYH,KAAZ,CAAA;;;YAGKF,MAAP;;;;;;;;;;;EAWD,EAAA,IAAMM,UAAAA,GAAa,SAAbA,UAAa,CAAA,KAAA,EAAA;YAAStB,MAAAA,CAAOuB,aAAP,CAAA,KAAA,CAAA,MAAA,EAAA,iBAAA,CAAwBjB,KAAxB,CAAA,CAAT;IAAnB,CAAA;;;;;;;;;;;EAWA,EAAA,IAAMkB,YAAAA,GAAe,SAAfA,YAAe,CAASC,SAAT,EAAoB;EACpCA,GAAAA,IAAAA,SAAAA,GAAY,IAAZ,GAAmB,IAAvB,EAA6B;MACrBA,OAAAA,SAAAA,GAAY,IAAnB;;EAEGA,GAAAA,IAAAA,SAAAA,GAAY,IAAZ,GAAmB,IAAvB,EAA6B;MACrBA,OAAAA,SAAAA,GAAY,IAAnB;;EAEGA,GAAAA,IAAAA,SAAAA,GAAY,IAAZ,GAAmB,IAAvB,EAA6B;MACrBA,OAAAA,SAAAA,GAAY,IAAnB;;YAEMzC,IAAP;IAVD,CAAA;;;;;;;;;;;;;EAwBA,EAAA,IAAM0C,eAAe,SAAfA,YAAe,CAASC,KAAT,EAAgBC,IAAhB,EAAsB;;;EAGnCD,GAAAA,OAAAA,KAAAA,GAAQ,EAAR,GAAa,EAAA,IAAMA,KAAAA,GAAQ,EAAd,CAAb,IAAkC,CAACC,IAAAA,IAAQ,CAAT,KAAe,CAAjD,CAAP;IAHD,CAAA;;;;;;;IAWA,IAAMC,KAAAA,GAAQ,SAARA,KAAQ,CAASC,KAAT,EAAgBC,SAAhB,EAA2BC,SAA3B,EAAsC;KAC/CC,IAAAA,CAAAA,GAAI,CAAR;EACQD,GAAAA,KAAAA,GAAAA,SAAAA,GAAYnC,KAAAA,CAAMiC,KAAAA,GAAQ1C,IAAd,CAAZ,GAAkC0C,KAAAA,IAAS,CAAnD;EACSjC,GAAAA,KAAAA,IAAAA,KAAAA,CAAMiC,KAAAA,GAAQC,SAAd,CAAT;EAC8BD,GAAAA,8BAAAA,KAAAA,GAAQlC,aAAAA,GAAgBV,IAAhB,IAAwB,CAA9D,EAAiE+C,CAAAA,IAAKjD,IAAtE,EAA4E;EACnEa,IAAAA,KAAAA,GAAAA,KAAAA,CAAMiC,KAAAA,GAAQlC,aAAd,CAAR;;EAEMC,GAAAA,OAAAA,KAAAA,CAAMoC,CAAAA,GAAI,CAACrC,aAAAA,GAAgB,CAAjB,IAAsBkC,KAAtB,IAA+BA,KAAAA,GAAQ3C,IAAvC,CAAV,CAAP;IAPD,CAAA;;;;;;;;;EAiBA,EAAA,IAAM+C,MAAAA,GAAS,SAATA,MAAS,CAASC,KAAT,EAAgB;;KAExBnB,IAAAA,MAAAA,GAAS,EAAf;EACMoB,GAAAA,IAAAA,WAAAA,GAAcD,KAAAA,CAAM/G,MAA1B;KACIiH,IAAAA,CAAAA,GAAI,CAAR;KACIC,IAAAA,CAAAA,GAAIhD,QAAR;KACIiD,IAAAA,IAAAA,GAAOlD,WAAX;;;;;;EAMImD,GAAAA,IAAAA,KAAAA,GAAQL,KAAAA,CAAMM,WAAN,CAAkBlD,SAAlB,CAAZ;EACIiD,GAAAA,IAAAA,KAAAA,GAAQ,CAAZ,EAAe;cACN,CAAR;;;UAGI,IAAIE,CAAAA,GAAI,CAAb,EAAgBA,CAAAA,GAAIF,KAApB,EAA2B,EAAEE,CAA7B,EAAgC;;MAE3BP,IAAAA,KAAAA,CAAMhB,UAAN,CAAiBuB,CAAjB,CAAA,IAAuB,IAA3B,EAAiC;EAC1B,KAAA,OAAA,CAAA,WAAN,CAAA;;MAEMrB,MAAAA,CAAAA,IAAP,CAAYc,KAAAA,CAAMhB,UAAN,CAAiBuB,CAAjB,CAAZ,CAAA;;;;;;EAMI,GAAA,KAAA,IAAIC,KAAAA,GAAQH,KAAAA,GAAQ,CAAR,GAAYA,KAAAA,GAAQ,CAApB,GAAwB,CAAzC,EAA4CG,KAAAA,GAAQP,WAApD,4BAA4F;;;;;;;MAOvFQ,IAAAA,IAAAA,GAAOP,CAAX;WACK,IAAIQ,CAAAA,GAAI,CAAR,EAAWZ,CAAAA,GAAIjD,IAApB,qBAA8CiD,CAAAA,IAAKjD,IAAnD,EAAyD;;EAEpD2D,KAAAA,IAAAA,KAAAA,IAASP,WAAb,EAA0B;EACnB,MAAA,OAAA,CAAA,eAAN,CAAA;;;EAGKT,KAAAA,IAAAA,KAAAA,GAAQH,YAAAA,CAAaW,KAAAA,CAAMhB,UAAN,CAAiBwB,KAAAA,EAAjB,CAAb,CAAd;;EAEIhB,KAAAA,IAAAA,KAAAA,IAAS3C,IAAT,IAAiB2C,KAAAA,GAAQ9B,KAAAA,CAAM,CAACd,MAAAA,GAASsD,CAAV,IAAeQ,CAArB,CAA7B,EAAsD;EAC/C,MAAA,OAAA,CAAA,UAAN,CAAA;;;EAGIlB,KAAAA,CAAAA,IAAAA,KAAAA,GAAQkB,CAAb;EACMC,KAAAA,IAAAA,CAAAA,GAAIb,CAAAA,IAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,CAAAA,IAAKM,IAAAA,GAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,CAAAA,GAAIM,IAA5D;;EAEIZ,KAAAA,IAAAA,KAAAA,GAAQmB,CAAZ,EAAe;;;;EAITC,KAAAA,IAAAA,UAAAA,GAAa/D,IAAAA,GAAO8D,CAA1B;OACID,IAAAA,CAAAA,GAAIhD,KAAAA,CAAMd,MAAAA,GAASgE,UAAf,CAAR,EAAoC;EAC7B,MAAA,OAAA,CAAA,UAAN,CAAA;;;YAGIA,UAAL;;;EAIKC,IAAAA,IAAAA,GAAAA,GAAMhC,MAAAA,CAAO5F,MAAP,GAAgB,CAA5B;EACOyG,IAAAA,IAAAA,GAAAA,KAAAA,CAAMQ,CAAAA,GAAIO,IAAV,EAAgBI,GAAhB,EAAqBJ,IAAAA,IAAQ,CAA7B,CAAP;;;;MAII/C,IAAAA,KAAAA,CAAMwC,CAAAA,GAAIW,GAAV,CAAA,GAAiBjE,MAAAA,GAASuD,CAA9B,EAAiC;EAC1B,KAAA,OAAA,CAAA,UAAN,CAAA;;;EAGIzC,IAAAA,CAAAA,IAAAA,KAAAA,CAAMwC,CAAAA,GAAIW,GAAV,CAAL;WACKA,GAAL;;;MAGOC,MAAAA,CAAAA,MAAP,CAAcZ,CAAAA,EAAd,EAAmB,CAAnB,EAAsBC,CAAtB,CAAA;;;YAIMtC,MAAAA,CAAOuB,aAAP,CAAA,KAAA,CAAA,MAAA,EAAwBP,MAAxB,CAAP;IAjFD,CAAA;;;;;;;;;EA2FA,EAAA,IAAMkC,MAAAA,GAAS,SAATA,MAAS,CAASf,KAAT,EAAgB;KACxBnB,IAAAA,MAAAA,GAAS,EAAf;;;EAGQD,GAAAA,KAAAA,GAAAA,UAAAA,CAAWoB,KAAX,CAAR;;;EAGIC,GAAAA,IAAAA,WAAAA,GAAcD,KAAAA,CAAM/G,MAAxB;;;KAGIkH,IAAAA,CAAAA,GAAIhD,QAAR;KACIwC,IAAAA,KAAAA,GAAQ,CAAZ;KACIS,IAAAA,IAAAA,GAAOlD,WAAX;;;;;;;;EAG2B8C,IAAAA,KAAAA,IAAAA,SAAAA,GAAAA,KAA3B,CAAA,MAAA,CAAA,QAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,yBAAA,GAAA,CAAA,KAAA,GAAA,SAAA,CAAA,IAAA,EAAA,EAAA,IAAA,CAAA,EAAA,yBAAA,GAAA,IAAA,EAAkC;WAAvBgB,cAAuB,GAAA,KAAA,CAAA,KAAA;;EAC7BA,KAAAA,IAAAA,cAAAA,GAAe,IAAnB,EAAyB;EACjB9B,MAAAA,MAAAA,CAAAA,IAAP,CAAYtB,kBAAAA,CAAmBoD,cAAnB,CAAZ,CAAA;;;;;;;;;;;;;;;;;;EAIEC,GAAAA,IAAAA,WAAAA,GAAcpC,MAAAA,CAAO5F,MAAzB;KACIiI,IAAAA,cAAAA,GAAiBD,WAArB;;;;;;EAMIA,GAAAA,IAAAA,WAAJ,EAAiB;EACT/B,IAAAA,MAAAA,CAAAA,IAAP,CAAY9B,SAAZ,CAAA;;;;EAIM8D,GAAAA,OAAAA,cAAAA,GAAiBjB,WAAxB,EAAqC;;;;MAIhCkB,IAAAA,CAAAA,GAAIvE,MAAR;;;;;;EAC2BoD,KAAAA,KAAAA,IAAAA,UAAAA,GAAAA,KAA3B,CAAA,MAAA,CAAA,QAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,0BAAA,GAAA,CAAA,MAAA,GAAA,UAAA,CAAA,IAAA,EAAA,EAAA,IAAA,CAAA,EAAA,0BAAA,GAAA,IAAA,EAAkC;YAAvBgB,YAAuB,GAAA,MAAA,CAAA,KAAA;;EAC7BA,MAAAA,IAAAA,YAAAA,IAAgBb,CAAhB,IAAqBa,YAAAA,GAAeG,CAAxC,EAA2C;aACtCH,YAAJ;;;;;;;;;;;;;;;;;;;;;EAMII,IAAAA,IAAAA,qBAAAA,GAAwBF,cAAAA,GAAiB,CAA/C;UACIC,CAAAA,GAAIhB,CAAJ,GAAQzC,KAAAA,CAAM,CAACd,MAAAA,GAAS+C,KAAV,IAAmByB,qBAAzB,CAAZ,EAA6D;EACtD,KAAA,OAAA,CAAA,UAAN,CAAA;;;EAGQ,IAAA,KAAA,IAAA,CAACD,CAAAA,GAAIhB,CAAL,IAAUiB,qBAAnB;UACID,CAAJ;;;;;;;EAE2BnB,KAAAA,KAAAA,IAAAA,UAAAA,GAAAA,KAA3B,CAAA,MAAA,CAAA,QAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,0BAAA,GAAA,CAAA,MAAA,GAAA,UAAA,CAAA,IAAA,EAAA,EAAA,IAAA,CAAA,EAAA,0BAAA,GAAA,IAAA,EAAkC;YAAvBgB,aAAuB,GAAA,MAAA,CAAA,KAAA;;QAC7BA,IAAAA,aAAAA,GAAeb,CAAf,IAAoB,EAAER,KAAF,GAAU/C,MAAlC,EAA0C;EACnC,OAAA,OAAA,CAAA,UAAN,CAAA;;EAEGoE,MAAAA,IAAAA,aAAAA,IAAgBb,CAApB,EAAuB;;SAElBkB,IAAAA,CAAAA,GAAI1B,KAAR;SACK,KAAA,IAAIG,CAAAA,GAAIjD,IAAb,qBAAuCiD,CAAAA,IAAKjD,IAA5C,EAAkD;EAC3C8D,QAAAA,IAAAA,CAAAA,GAAIb,CAAAA,IAAKM,IAAL,GAAYtD,IAAZ,GAAoBgD,CAAAA,IAAKM,IAAAA,GAAOrD,IAAZ,GAAmBA,IAAnB,GAA0B+C,CAAAA,GAAIM,IAA5D;EACIiB,QAAAA,IAAAA,CAAAA,GAAIV,CAAR,EAAW;;;EAGLW,QAAAA,IAAAA,OAAAA,GAAUD,CAAAA,GAAIV,CAApB;EACMC,QAAAA,IAAAA,UAAAA,GAAa/D,IAAAA,GAAO8D,CAA1B;EACOzB,QAAAA,MAAAA,CAAAA,IAAP,CACCtB,kBAAAA,CAAmB2B,YAAAA,CAAaoB,CAAAA,GAAIW,OAAAA,GAAUV,UAA3B,EAAuC,CAAvC,CAAnB,CADD,CAAA;EAGIlD,QAAAA,CAAAA,GAAAA,KAAAA,CAAM4D,OAAAA,GAAUV,UAAhB,CAAJ;;;EAGM1B,OAAAA,MAAAA,CAAAA,IAAP,CAAYtB,kBAAAA,CAAmB2B,YAAAA,CAAa8B,CAAb,EAAgB,CAAhB,CAAnB,CAAZ,CAAA;SACO3B,IAAAA,GAAAA,KAAAA,CAAMC,KAAN,EAAayB,qBAAb,EAAoCF,cAAAA,IAAkBD,WAAtD,CAAP;iBACQ,CAAR;WACEC,cAAF;;;;;;;;;;;;;;;;;;QAIAvB,KAAF;QACEQ,CAAF;;EAGMtB,GAAAA,OAAAA,MAAAA,CAAOxF,IAAP,CAAY,EAAZ,CAAP;IArFD,CAAA;;;;;;;;;;;;;EAmGA,EAAA,IAAMkI,SAAAA,GAAY,SAAZA,SAAY,CAASvB,KAAT,EAAgB;EAC1B1B,GAAAA,OAAAA,SAAAA,CAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;EACjClB,IAAAA,OAAAA,aAAAA,CAAcmE,IAAd,CAAmBjD,MAAnB,CAAA,GACJwB,MAAAA,CAAOxB,MAAAA,CAAOrF,KAAP,CAAa,CAAb,CAAA,CAAgBgB,WAAhB,EAAP,CADI,GAEJqE,MAFH;MADM,CAAP;IADD,CAAA;;;;;;;;;;;;;EAmBA,EAAA,IAAMkD,OAAAA,GAAU,SAAVA,OAAU,CAASzB,KAAT,EAAgB;EACxB1B,GAAAA,OAAAA,SAAAA,CAAU0B,KAAV,EAAiB,UAASzB,MAAT,EAAiB;EACjCjB,IAAAA,OAAAA,aAAAA,CAAckE,IAAd,CAAmBjD,MAAnB,CAAA,GACJ,MAAA,GAASwC,MAAAA,CAAOxC,MAAP,CADL,GAEJA,MAFH;MADM,CAAP;IADD,CAAA;;;;;EAWA,EAAA,IAAMmD,QAAAA,GAAW;;;;;;gBAML,OANK;;;;;;;;EAcR,GAAA,MAAA,EAAA;gBACG9C,UADH;EAEGO,IAAAA,QAAAA,EAAAA;EAhBK,IAAA;eAkBNY,MAlBM;eAmBNgB,MAnBM;gBAoBLU,OApBK;EAqBHF,GAAAA,WAAAA,EAAAA;EArBd,GAAA;;EC/ZA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFA,EAAA,IAAaI,UAA6C,EAAnD;IAEP,SAAAC,UAAA,CAA2BC,GAA3B,EAAA;EACOC,MAAAA,IAAAA,CAAAA,GAAID,GAAAA,CAAI7C,UAAJ,CAAe,CAAf,CAAV;EACI+C,MAAAA,IAAAA,CAAAA,GAAAA,MAAJ;EAEID,MAAAA,IAAAA,CAAAA,GAAI,EAAR,EAAYC,CAAAA,GAAI,IAAA,GAAOD,CAAAA,CAAEjI,QAAF,CAAW,EAAX,CAAA,CAAeM,WAAf,EAAX,CAAZ,KACK,IAAI2H,CAAAA,GAAI,GAAR,EAAaC,CAAAA,GAAI,GAAA,GAAMD,CAAAA,CAAEjI,QAAF,CAAW,EAAX,CAAA,CAAeM,WAAf,EAAV,CAAb,KACA,IAAI2H,CAAAA,GAAI,IAAR,EAAcC,CAAAA,GAAI,GAAA,GAAM,CAAED,CAAAA,IAAK,CAAN,GAAW,GAAZ,EAAiBjI,QAAjB,CAA0B,EAA1B,CAAA,CAA8BM,WAA9B,EAAN,GAAoD,GAApD,GAA0D,CAAE2H,CAAAA,GAAI,EAAL,GAAW,GAAZ,EAAiBjI,QAAjB,CAA0B,EAA1B,CAAA,CAA8BM,WAA9B,EAA9D,CAAd,KACA4H,CAAAA,GAAI,GAAA,GAAM,CAAED,CAAAA,IAAK,EAAN,GAAY,GAAb,EAAkBjI,QAAlB,CAA2B,EAA3B,CAAA,CAA+BM,WAA/B,EAAN,GAAqD,GAArD,GAA2D,CAAG2H,CAAAA,IAAK,CAAN,GAAW,EAAZ,GAAkB,GAAnB,EAAwBjI,QAAxB,CAAiC,EAAjC,CAAA,CAAqCM,WAArC,EAA3D,GAAgH,GAAhH,GAAsH,CAAE2H,CAAAA,GAAI,EAAL,GAAW,GAAZ,EAAiBjI,QAAjB,CAA0B,EAA1B,CAAA,CAA8BM,WAA9B,EAA1H;eAEE4H,CAAP;;IAGD,SAAAC,WAAA,CAA4BzI,GAA5B,EAAA;QACK0I,IAAAA,MAAAA,GAAS,EAAb;QACI/B,IAAAA,CAAAA,GAAI,CAAR;EACMgC,MAAAA,IAAAA,EAAAA,GAAK3I,GAAAA,CAAIN,MAAf;EAEOiH,MAAAA,OAAAA,CAAAA,GAAIgC,EAAX,EAAe;EACRJ,UAAAA,IAAAA,CAAAA,GAAIK,QAAAA,CAAS5I,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAAA,GAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAV;EAEI4B,UAAAA,IAAAA,CAAAA,GAAI,GAAR,EAAa;EACFjE,cAAAA,MAAAA,IAAAA,MAAAA,CAAOC,YAAP,CAAoBgE,CAApB,CAAV;qBACK,CAAL;YAFD,CAAA,MAIK,IAAIA,CAAAA,IAAK,GAAL,IAAYA,CAAAA,GAAI,GAApB,EAAyB;EACxBI,cAAAA,IAAAA,EAAAA,GAAKhC,CAAN,IAAY,CAAhB,EAAmB;EACZmC,kBAAAA,IAAAA,EAAAA,GAAKF,QAAAA,CAAS5I,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAAA,GAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;EACUrC,kBAAAA,MAAAA,IAAAA,MAAAA,CAAOC,YAAP,CAAqB,CAACgE,CAAAA,GAAI,EAAL,KAAY,CAAb,GAAmBO,EAAAA,GAAK,EAA5C,CAAV;iBAFD,MAGO;oBACI9I,MAAAA,IAAAA,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;qBAEI,CAAL;EAPI,UAAA,CAAA,MASA,IAAI4B,CAAAA,IAAK,GAAT,EAAc;EACbI,cAAAA,IAAAA,EAAAA,GAAKhC,CAAN,IAAY,CAAhB,EAAmB;EACZmC,kBAAAA,IAAAA,EAAAA,GAAKF,QAAAA,CAAS5I,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAAA,GAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;EACMoC,kBAAAA,IAAAA,EAAAA,GAAKH,QAAAA,CAAS5I,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAAA,GAAI,CAAf,EAAkB,CAAlB,CAAT,EAA+B,EAA/B,CAAX;oBACUrC,MAAAA,IAAAA,MAAAA,CAAOC,YAAP,CAAqB,CAACgE,CAAAA,GAAI,EAAL,KAAY,EAAb,GAAoB,CAACO,EAAAA,GAAK,EAAN,KAAa,CAAjC,GAAuCC,EAAAA,GAAK,EAAhE,CAAV;iBAHD,MAIO;oBACI/I,MAAAA,IAAAA,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;;qBAEI,CAAL;aARI,MAUA;gBACM3G,MAAAA,IAAAA,GAAAA,CAAI6I,MAAJ,CAAWlC,CAAX,EAAc,CAAd,CAAV;qBACK,CAAL;;;eAIK+B,MAAP;;EAGD,EAAA,SAAAM,2BAAA,CAAqCC,UAArC,EAA+DC,QAA/D,EAAA;iBACAC,gBAAC,CAA0BnJ,GAA1B,EAAD;EACQoJ,UAAAA,IAAAA,MAAAA,GAASX,WAAAA,CAAYzI,GAAZ,CAAf;mBACQ,CAACoJ,MAAAA,CAAOC,KAAP,CAAaH,QAAAA,CAASI,UAAtB,CAAD,GAAqCtJ,GAArC,GAA2CoJ,MAAnD;;EAGGH,MAAAA,IAAAA,UAAAA,CAAWM,MAAf,EAAuBN,UAAAA,CAAWM,MAAX,GAAoBjF,MAAAA,CAAO2E,UAAAA,CAAWM,MAAlB,CAAA,CAA0BrE,OAA1B,CAAkCgE,QAAAA,CAASM,WAA3C,EAAwDL,gBAAxD,CAAA,CAA0ExI,WAA1E,EAAA,CAAwFuE,OAAxF,CAAgGgE,QAAAA,CAASO,UAAzG,EAAqH,EAArH,CAApB;EACnBR,MAAAA,IAAAA,UAAAA,CAAWS,QAAX,KAAwBvJ,SAA5B,EAAuC8I,UAAAA,CAAWS,QAAX,GAAsBpF,MAAAA,CAAO2E,UAAAA,CAAWS,QAAlB,CAAA,CAA4BxE,OAA5B,CAAoCgE,QAAAA,CAASM,WAA7C,EAA0DL,gBAA1D,CAAA,CAA4EjE,OAA5E,CAAoFgE,QAAAA,CAASS,YAA7F,EAA2GtB,UAA3G,CAAA,CAAuHnD,OAAvH,CAA+HgE,QAAAA,CAASM,WAAxI,EAAqJ5I,WAArJ,CAAtB;EACnCqI,MAAAA,IAAAA,UAAAA,CAAWW,IAAX,KAAoBzJ,SAAxB,EAAmC8I,WAAWW,IAAX,GAAkBtF,MAAAA,CAAO2E,UAAAA,CAAWW,IAAlB,CAAA,CAAwB1E,OAAxB,CAAgCgE,SAASM,WAAzC,EAAsDL,gBAAtD,CAAA,CAAwExI,WAAxE,EAAA,CAAsFuE,OAAtF,CAA8FgE,SAASW,QAAvG,EAAiHxB,UAAjH,CAAA,CAA6HnD,OAA7H,CAAqIgE,QAAAA,CAASM,WAA9I,EAA2J5I,WAA3J,CAAlB;QAC/BqI,IAAAA,UAAAA,CAAWa,IAAX,KAAoB3J,SAAxB,EAAmC8I,UAAAA,CAAWa,IAAX,GAAkBxF,MAAAA,CAAO2E,UAAAA,CAAWa,IAAlB,CAAA,CAAwB5E,OAAxB,CAAgCgE,QAAAA,CAASM,WAAzC,EAAsDL,gBAAtD,CAAA,CAAwEjE,OAAxE,CAAiF+D,UAAAA,CAAWM,MAAX,GAAoBL,QAAAA,CAASa,QAA7B,GAAwCb,QAAAA,CAASc,iBAAlI,EAAsJ3B,UAAtJ,CAAA,CAAkKnD,OAAlK,CAA0KgE,QAAAA,CAASM,WAAnL,EAAgM5I,WAAhM,CAAlB;EAC/BqI,MAAAA,IAAAA,UAAAA,CAAWgB,KAAX,KAAqB9J,SAAzB,EAAoC8I,UAAAA,CAAWgB,KAAX,GAAmB3F,MAAAA,CAAO2E,UAAAA,CAAWgB,KAAlB,CAAA,CAAyB/E,OAAzB,CAAiCgE,QAAAA,CAASM,WAA1C,EAAuDL,gBAAvD,CAAA,CAAyEjE,OAAzE,CAAiFgE,QAAAA,CAASgB,SAA1F,EAAqG7B,UAArG,CAAA,CAAiHnD,OAAjH,CAAyHgE,QAAAA,CAASM,WAAlI,EAA+I5I,WAA/I,CAAnB;EAChCqI,MAAAA,IAAAA,UAAAA,CAAWkB,QAAX,KAAwBhK,SAA5B,EAAuC8I,UAAAA,CAAWkB,QAAX,GAAsB7F,MAAAA,CAAO2E,UAAAA,CAAWkB,QAAlB,CAAA,CAA4BjF,OAA5B,CAAoCgE,QAAAA,CAASM,WAA7C,EAA0DL,gBAA1D,CAAA,CAA4EjE,OAA5E,CAAoFgE,QAAAA,CAASkB,YAA7F,EAA2G/B,UAA3G,CAAA,CAAuHnD,OAAvH,CAA+HgE,QAAAA,CAASM,WAAxI,EAAqJ5I,WAArJ,CAAtB;eAEhCqI,UAAP;;;IAGD,SAAAoB,kBAAA,CAA4BrK,GAA5B,EAAA;QACQA,OAAAA,GAAAA,CAAIkF,OAAJ,CAAY,SAAZ,EAAuB,IAAvB,KAAgC,GAAvC;;EAGD,EAAA,SAAAoF,cAAA,CAAwBV,IAAxB,EAAqCV,QAArC,EAAA;EACOqB,MAAAA,IAAAA,OAAAA,GAAUX,IAAAA,CAAKP,KAAL,CAAWH,QAAAA,CAASsB,WAApB,CAAA,IAAoC,EAApD;;qCACoBD,OAFrB,EAAA,CAAA,CAAA;EAEUE,UAAAA,OAFV,GAAA,QAAA,CAAA,CAAA,CAAA;;EAIKA,MAAAA,IAAAA,OAAJ,EAAa;EACLA,UAAAA,OAAAA,OAAAA,CAAQjK,KAAR,CAAc,GAAd,CAAA,CAAmBmE,GAAnB,CAAuB0F,kBAAvB,CAAA,CAA2CvK,IAA3C,CAAgD,GAAhD,CAAP;SADD,MAEO;mBACC8J,IAAP;;;EAIF,EAAA,SAAAc,cAAA,CAAwBd,IAAxB,EAAqCV,QAArC,EAAA;EACOqB,MAAAA,IAAAA,OAAAA,GAAUX,IAAAA,CAAKP,KAAL,CAAWH,QAAAA,CAASyB,WAApB,CAAA,IAAoC,EAApD;;sCAC0BJ,OAF3B,EAAA,CAAA,CAAA;EAEUE,UAAAA,OAFV,GAAA,SAAA,CAAA,CAAA,CAAA;EAEmBG,UAAAA,IAFnB,GAAA,SAAA,CAAA,CAAA,CAAA;;EAIKH,MAAAA,IAAAA,OAAJ,EAAa;EACUA,UAAAA,IAAAA,qBAAAA,GAAAA,OAAAA,CAAQ9J,WAAR,EAAA,CAAsBH,KAAtB,CAA4B,IAA5B,CAAA,CAAkCqK,OAAlC,EADV;;EACLC,cAAAA,IADK,GAAA,sBAAA,CAAA,CAAA,CAAA;EACCC,cAAAA,KADD,GAAA,sBAAA,CAAA,CAAA,CAAA;;EAENC,UAAAA,IAAAA,WAAAA,GAAcD,KAAAA,GAAQA,KAAAA,CAAMvK,KAAN,CAAY,GAAZ,CAAA,CAAiBmE,GAAjB,CAAqB0F,kBAArB,CAAR,GAAmD,EAAvE;gBACMY,UAAAA,GAAaH,IAAAA,CAAKtK,KAAL,CAAW,GAAX,CAAA,CAAgBmE,GAAhB,CAAoB0F,kBAApB,CAAnB;EACMa,UAAAA,IAAAA,sBAAAA,GAAyBhC,QAAAA,CAASsB,WAAT,CAAqBvC,IAArB,CAA0BgD,UAAAA,CAAWA,UAAAA,CAAWvL,MAAX,GAAoB,CAA/B,CAA1B,CAA/B;EACMyL,UAAAA,IAAAA,UAAAA,GAAaD,sBAAAA,GAAyB,CAAzB,GAA6B,CAAhD;EACME,UAAAA,IAAAA,eAAAA,GAAkBH,UAAAA,CAAWvL,MAAX,GAAoByL,UAA5C;EACME,UAAAA,IAAAA,MAAAA,GAAStK,KAAAA,CAAcoK,UAAd,CAAf;iBAEK,IAAItL,CAAAA,GAAI,CAAb,EAAgBA,CAAAA,GAAIsL,UAApB,EAAgC,EAAEtL,CAAlC,EAAqC;EAC7BA,cAAAA,MAAAA,CAAAA,CAAP,CAAA,GAAYmL,WAAAA,CAAYnL,CAAZ,CAAA,IAAkBoL,UAAAA,CAAWG,eAAAA,GAAkBvL,CAA7B,CAAlB,IAAqD,EAAjE;;EAGGqL,UAAAA,IAAAA,sBAAJ,EAA4B;EACpBC,cAAAA,MAAAA,CAAAA,UAAAA,GAAa,CAApB,CAAA,GAAyBb,cAAAA,CAAee,MAAAA,CAAOF,UAAAA,GAAa,CAApB,CAAf,EAAuCjC,QAAvC,CAAzB;;gBAGKoC,aAAAA,GAAgBD,MAAAA,CAAOE,MAAP,CAAmD,UAACC,GAAD,EAAMC,KAAN,EAAaxE,KAAb,EAA3E;EACO,cAAA,IAAA,CAACwE,KAAD,IAAUA,KAAAA,KAAU,GAAxB,EAA6B;oBACtBC,IAAAA,WAAAA,GAAcF,GAAAA,CAAIA,GAAAA,CAAI9L,MAAJ,GAAa,CAAjB,CAApB;EACIgM,kBAAAA,IAAAA,WAAAA,IAAeA,WAAAA,CAAYzE,KAAZ,GAAoByE,WAAAA,CAAYhM,MAAhC,KAA2CuH,KAA9D,EAAqE;EACxDvH,sBAAAA,WAAAA,CAAAA,MAAZ,EAAA;qBADD,MAEO;EACFiG,sBAAAA,GAAAA,CAAAA,IAAJ,CAAS,EAAEsB,KAAAA,EAAAA,KAAF,EAASvH,MAAAA,EAAS,CAAlB,EAAT,CAAA;;;uBAGK8L,GAAP;YATqB,CAAA,EAUnB,EAVmB,CAAtB;YAYMG,IAAAA,iBAAAA,GAAoBL,aAAAA,CAAcM,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ,EAAA;EAAUA,cAAAA,OAAAA,CAAAA,CAAEpM,MAAF,GAAWmM,CAAAA,CAAEnM,MAAvB;YAAnB,CAAA,CAAA,CAAkD,CAAlD,CAA1B;EAEIqM,UAAAA,IAAAA,OAAAA,GAAAA,MAAJ;EACIJ,UAAAA,IAAAA,iBAAAA,IAAqBA,iBAAAA,CAAkBjM,MAAlB,GAA2B,CAApD,EAAuD;EAChDsM,cAAAA,IAAAA,QAAAA,GAAWX,MAAAA,CAAO1L,KAAP,CAAa,CAAb,EAAgBgM,iBAAAA,CAAkB1E,KAAlC,CAAjB;EACMgF,cAAAA,IAAAA,OAAAA,GAAUZ,MAAAA,CAAO1L,KAAP,CAAagM,iBAAAA,CAAkB1E,KAAlB,GAA0B0E,iBAAAA,CAAkBjM,MAAzD,CAAhB;EACUsM,cAAAA,OAAAA,GAAAA,QAAAA,CAASlM,IAAT,CAAc,GAAd,CAAA,GAAqB,IAArB,GAA4BmM,OAAAA,CAAQnM,IAAR,CAAa,GAAb,CAAtC;aAHD,MAIO;EACIuL,cAAAA,OAAAA,GAAAA,MAAAA,CAAOvL,IAAP,CAAY,GAAZ,CAAV;;EAGG8K,UAAAA,IAAAA,IAAJ,EAAU;EACE,cAAA,OAAA,IAAA,GAAA,GAAMA,IAAjB;;mBAGMmB,OAAP;SA5CD,MA6CO;mBACCnC,IAAP;;;EAIF,EAAA,IAAMsC,YAAY,iIAAlB;EACA,EAAA,IAAMC,qBAAAA,GAA4C,EAAD,CAAK9C,KAAL,CAAW,OAAX,CAAA,CAAqB,CAArB,CAAA,KAA4BlJ,SAA7E;IAEA,SAAAiM,KAAA,CAAsBC,SAAtB,EAAA;QAAwCC,IAAAA,OAAxC,uEAA6D,EAA7D;;QACOrD,IAAAA,UAAAA,GAA2B,EAAjC;QACMC,IAAAA,QAAAA,GAAYoD,OAAAA,CAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QAEIH,IAAAA,OAAAA,CAAQI,SAAR,KAAsB,QAA1B,EAAoCL,SAAAA,GAAY,CAACC,OAAAA,CAAQ/C,MAAR,GAAiB+C,OAAAA,CAAQ/C,MAAR,GAAiB,GAAlC,GAAwC,EAAzC,IAA+C,IAA/C,GAAsD8C,SAAlE;EAE9B9B,MAAAA,IAAAA,OAAAA,GAAU8B,SAAAA,CAAUhD,KAAV,CAAgB6C,SAAhB,CAAhB;EAEI3B,MAAAA,IAAAA,OAAJ,EAAa;EACR4B,UAAAA,IAAAA,qBAAJ,EAA2B;;EAEf5C,cAAAA,UAAAA,CAAAA,MAAX,GAAoBgB,OAAAA,CAAQ,CAAR,CAApB;EACWb,cAAAA,UAAAA,CAAAA,QAAX,GAAsBa,OAAAA,CAAQ,CAAR,CAAtB;EACWX,cAAAA,UAAAA,CAAAA,IAAX,GAAkBW,OAAAA,CAAQ,CAAR,CAAlB;EACWoC,cAAAA,UAAAA,CAAAA,IAAX,GAAkB/D,QAAAA,CAAS2B,OAAAA,CAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;gBACWT,UAAAA,CAAAA,IAAX,GAAkBS,OAAAA,CAAQ,CAAR,CAAA,IAAc,EAAhC;EACWN,cAAAA,UAAAA,CAAAA,KAAX,GAAmBM,OAAAA,CAAQ,CAAR,CAAnB;EACWJ,cAAAA,UAAAA,CAAAA,QAAX,GAAsBI,OAAAA,CAAQ,CAAR,CAAtB;;EAGIqC,cAAAA,IAAAA,KAAAA,CAAM3D,UAAAA,CAAW0D,IAAjB,CAAJ,EAA4B;EAChBA,kBAAAA,UAAAA,CAAAA,IAAX,GAAkBpC,OAAAA,CAAQ,CAAR,CAAlB;;aAZF,MAcO;;;gBAEKhB,UAAAA,CAAAA,MAAX,GAAoBgB,OAAAA,CAAQ,CAAR,CAAA,IAAcpK,SAAlC;EACWuJ,cAAAA,UAAAA,CAAAA,QAAX,GAAuB2C,SAAAA,CAAUQ,OAAV,CAAkB,GAAlB,CAAA,KAA2B,EAA3B,GAAgCtC,OAAAA,CAAQ,CAAR,CAAhC,GAA6CpK,SAApE;EACWyJ,cAAAA,UAAAA,CAAAA,IAAX,GAAmByC,SAAAA,CAAUQ,OAAV,CAAkB,IAAlB,CAAA,KAA4B,EAA5B,GAAiCtC,OAAAA,CAAQ,CAAR,CAAjC,GAA8CpK,SAAjE;EACWwM,cAAAA,UAAAA,CAAAA,IAAX,GAAkB/D,QAAAA,CAAS2B,OAAAA,CAAQ,CAAR,CAAT,EAAqB,EAArB,CAAlB;gBACWT,UAAAA,CAAAA,IAAX,GAAkBS,OAAAA,CAAQ,CAAR,CAAA,IAAc,EAAhC;EACWN,cAAAA,UAAAA,CAAAA,KAAX,GAAoBoC,SAAAA,CAAUQ,OAAV,CAAkB,GAAlB,CAAA,KAA2B,EAA3B,GAAgCtC,OAAAA,CAAQ,CAAR,CAAhC,GAA6CpK,SAAjE;EACWgK,cAAAA,UAAAA,CAAAA,QAAX,GAAuBkC,SAAAA,CAAUQ,OAAV,CAAkB,GAAlB,CAAA,KAA2B,EAA3B,GAAgCtC,OAAAA,CAAQ,CAAR,CAAhC,GAA6CpK,SAApE;;EAGIyM,cAAAA,IAAAA,KAAAA,CAAM3D,UAAAA,CAAW0D,IAAjB,CAAJ,EAA4B;EAChBA,kBAAAA,UAAAA,CAAAA,IAAX,GAAmBN,SAAAA,CAAUhD,KAAV,CAAgB,+BAAhB,CAAA,GAAmDkB,OAAAA,CAAQ,CAAR,CAAnD,GAAgEpK,SAAnF;;;EAIE8I,UAAAA,IAAAA,UAAAA,CAAWW,IAAf,EAAqB;;EAETA,cAAAA,UAAAA,CAAAA,IAAX,GAAkBc,cAAAA,CAAeJ,cAAAA,CAAerB,UAAAA,CAAWW,IAA1B,EAAgCV,QAAhC,CAAf,EAA0DA,QAA1D,CAAlB;;;EAIGD,UAAAA,IAAAA,UAAAA,CAAWM,MAAX,KAAsBpJ,SAAtB,IAAmC8I,UAAAA,CAAWS,QAAX,KAAwBvJ,SAA3D,IAAwE8I,UAAAA,CAAWW,IAAX,KAAoBzJ,SAA5F,IAAyG8I,UAAAA,CAAW0D,IAAX,KAAoBxM,SAA7H,IAA0I,CAAC8I,UAAAA,CAAWa,IAAtJ,IAA8Jb,UAAAA,CAAWgB,KAAX,KAAqB9J,SAAvL,EAAkM;EACtLuM,cAAAA,UAAAA,CAAAA,SAAX,GAAuB,eAAvB;EADD,UAAA,CAAA,MAEO,IAAIzD,UAAAA,CAAWM,MAAX,KAAsBpJ,SAA1B,EAAqC;EAChCuM,cAAAA,UAAAA,CAAAA,SAAX,GAAuB,UAAvB;EADM,UAAA,CAAA,MAEA,IAAIzD,UAAAA,CAAWkB,QAAX,KAAwBhK,SAA5B,EAAuC;EAClCuM,cAAAA,UAAAA,CAAAA,SAAX,GAAuB,UAAvB;aADM,MAEA;EACKA,cAAAA,UAAAA,CAAAA,SAAX,GAAuB,KAAvB;;;EAIGJ,UAAAA,IAAAA,OAAAA,CAAQI,SAAR,IAAqBJ,OAAAA,CAAQI,SAAR,KAAsB,QAA3C,IAAuDJ,OAAAA,CAAQI,SAAR,KAAsBzD,UAAAA,CAAWyD,SAA5F,EAAuG;2BAC3FlI,KAAX,GAAmByE,WAAWzE,KAAX,IAAoB,kBAAkB8H,OAAAA,CAAQI,SAA1B,GAAsC,aAA7E;;;EAIKI,UAAAA,IAAAA,aAAAA,GAAgB1E,OAAAA,CAAQ,CAACkE,OAAAA,CAAQ/C,MAAR,IAAkBN,UAAAA,CAAWM,MAA7B,IAAuC,EAAxC,EAA4C5I,WAA5C,EAAR,CAAtB;;EAGI,UAAA,IAAA,CAAC2L,OAAAA,CAAQS,cAAT,KAA4B,CAACD,aAAD,IAAkB,CAACA,aAAAA,CAAcC,cAA7D,CAAJ,EAAkF;;EAE7E9D,cAAAA,IAAAA,UAAAA,CAAWW,IAAX,KAAoB0C,OAAAA,CAAQU,UAAR,IAAuBF,aAAAA,IAAiBA,aAAAA,CAAcE,UAA1E,CAAJ,EAA4F;;EAEvF,kBAAA,IAAA;wBACQpD,UAAAA,CAAAA,IAAX,GAAkBzB,QAAAA,CAASD,OAAT,CAAiBe,UAAAA,CAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,QAAAA,CAASM,WAAjC,EAA8Cf,WAA9C,CAAA,CAA2D9H,WAA3D,EAAjB,CAAlB;qBADD,CAEE,OAAO6H,CAAP,EAAU;wBACAhE,UAAAA,CAAAA,KAAX,GAAmByE,UAAAA,CAAWzE,KAAX,IAAoB,oEAAoEgE,CAA3G;;;;EAI0BS,cAAAA,2BAAAA,CAAAA,UAA5B,EAAwCwD,YAAxC,CAAA;aAXD,MAYO;;EAEsBxD,cAAAA,2BAAAA,CAAAA,UAA5B,EAAwCC,QAAxC,CAAA;;;EAIG4D,UAAAA,IAAAA,aAAAA,IAAiBA,aAAAA,CAAcV,KAAnC,EAA0C;EAC3BA,cAAAA,aAAAA,CAAAA,KAAd,CAAoBnD,UAApB,EAAgCqD,OAAhC,CAAA;;SA3EF,MA6EO;EACK9H,UAAAA,UAAAA,CAAAA,KAAX,GAAmByE,UAAAA,CAAWzE,KAAX,IAAoB,wBAAvC;;eAGMyE,UAAP;;;EAGD,EAAA,SAAAgE,mBAAA,CAA6BhE,UAA7B,EAAuDqD,OAAvD,EAAA;QACOpD,IAAAA,QAAAA,GAAYoD,OAAAA,CAAQC,GAAR,KAAgB,KAAhB,GAAwBC,YAAxB,GAAuCC,YAAzD;QACMS,IAAAA,SAAAA,GAA0B,EAAhC;EAEIjE,MAAAA,IAAAA,UAAAA,CAAWS,QAAX,KAAwBvJ,SAA5B,EAAuC;sBAC5BwF,IAAV,CAAesD,UAAAA,CAAWS,QAA1B,CAAA;EACU/D,UAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;;EAGGsD,MAAAA,IAAAA,UAAAA,CAAWW,IAAX,KAAoBzJ,SAAxB,EAAmC;;EAExBwF,UAAAA,SAAAA,CAAAA,IAAV,CAAe+E,cAAAA,CAAeJ,cAAAA,CAAehG,MAAAA,CAAO2E,UAAAA,CAAWW,IAAlB,CAAf,EAAwCV,QAAxC,CAAf,EAAkEA,QAAlE,CAAA,CAA4EhE,OAA5E,CAAoFgE,QAAAA,CAASyB,WAA7F,EAA0G,UAACwC,CAAD,EAAIC,EAAJ,EAAQC,EAAR,EAAA;uBAAe,GAAA,GAAMD,EAAN,IAAYC,EAAAA,GAAK,KAAA,GAAQA,EAAb,GAAkB,EAA9B,CAAA,GAAoC,GAAnD;EAA1G,UAAA,CAAA,CAAf,CAAA;;EAGG,MAAA,IAAA,OAAOpE,UAAAA,CAAW0D,IAAlB,KAA2B,QAA3B,IAAuC,OAAO1D,UAAAA,CAAW0D,IAAlB,KAA2B,QAAtE,EAAgF;EACrEhH,UAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;YACUA,SAAAA,CAAAA,IAAV,CAAerB,MAAAA,CAAO2E,UAAAA,CAAW0D,IAAlB,CAAf,CAAA;;eAGMO,SAAAA,CAAUxN,MAAV,GAAmBwN,SAAAA,CAAUpN,IAAV,CAAe,EAAf,CAAnB,GAAwCK,SAA/C;;;EAGD,EAAA,IAAMmN,OAAO,UAAb;EACA,EAAA,IAAMC,OAAO,aAAb;EACA,EAAA,IAAMC,OAAO,eAAb;EACA,EAAA,IACMC,OAAO,wBAAb;IAEA,SAAAC,iBAAA,CAAkCjH,KAAlC,EAAA;QACOnB,IAAAA,MAAAA,GAAuB,EAA7B;EAEOmB,MAAAA,OAAAA,KAAAA,CAAM/G,MAAb,EAAqB;EAChB+G,UAAAA,IAAAA,KAAAA,CAAM4C,KAAN,CAAYiE,IAAZ,CAAJ,EAAuB;gBACd7G,KAAAA,GAAAA,KAAAA,CAAMvB,OAAN,CAAcoI,IAAd,EAAoB,EAApB,CAAR;YADD,CAAA,MAEO,IAAI7G,KAAAA,CAAM4C,KAAN,CAAYkE,IAAZ,CAAJ,EAAuB;gBACrB9G,KAAAA,GAAAA,KAAAA,CAAMvB,OAAN,CAAcqI,IAAd,EAAoB,GAApB,CAAR;YADM,CAAA,MAEA,IAAI9G,KAAAA,CAAM4C,KAAN,CAAYmE,IAAZ,CAAJ,EAAuB;gBACrB/G,KAAAA,GAAAA,KAAAA,CAAMvB,OAAN,CAAcsI,IAAd,EAAoB,GAApB,CAAR;EACO/M,cAAAA,MAAAA,CAAAA,GAAP,EAAA;YAFM,CAAA,MAGA,IAAIgG,KAAAA,KAAU,GAAV,IAAiBA,KAAAA,KAAU,IAA/B,EAAqC;wBACnC,EAAR;aADM,MAEA;EACAkH,cAAAA,IAAAA,EAAAA,GAAKlH,KAAAA,CAAM4C,KAAN,CAAYoE,IAAZ,CAAX;EACIE,cAAAA,IAAAA,EAAJ,EAAQ;EACDC,kBAAAA,IAAAA,CAAAA,GAAID,EAAAA,CAAG,CAAH,CAAV;oBACQlH,KAAAA,GAAAA,KAAAA,CAAM9G,KAAN,CAAYiO,CAAAA,CAAElO,MAAd,CAAR;EACOiG,kBAAAA,MAAAA,CAAAA,IAAP,CAAYiI,CAAZ,CAAA;iBAHD,MAIO;0BACA,IAAIC,KAAJ,CAAU,kCAAV,CAAN;;;;EAKIvI,MAAAA,OAAAA,MAAAA,CAAOxF,IAAP,CAAY,EAAZ,CAAP;;;IAGD,SAAAgO,SAAA,CAA0B7E,UAA1B,EAAA;QAAoDqD,IAAAA,OAApD,uEAAyE,EAAzE;;QACOpD,IAAAA,QAAAA,GAAYoD,OAAAA,CAAQC,GAAR,GAAcC,YAAd,GAA6BC,YAA/C;QACMS,IAAAA,SAAAA,GAA0B,EAAhC;;EAGMJ,MAAAA,IAAAA,aAAAA,GAAgB1E,OAAAA,CAAQ,CAACkE,OAAAA,CAAQ/C,MAAR,IAAkBN,UAAAA,CAAWM,MAA7B,IAAuC,EAAxC,EAA4C5I,WAA5C,EAAR,CAAtB;;EAGImM,MAAAA,IAAAA,aAAAA,IAAiBA,aAAAA,CAAcgB,SAAnC,EAA8ChB,aAAAA,CAAcgB,SAAd,CAAwB7E,UAAxB,EAAoCqD,OAApC,CAAA;EAE1CrD,MAAAA,IAAAA,UAAAA,CAAWW,IAAf,EAAqB;;YAEhBV,IAAAA,QAAAA,CAASyB,WAAT,CAAqB1C,IAArB,CAA0BgB,UAAAA,CAAWW,IAArC,CAAJ,EAAgD;;;;iBAK3C,IAAI0C,OAAAA,CAAQU,UAAR,IAAuBF,aAAAA,IAAiBA,aAAAA,CAAcE,UAA1D,EAAuE;;EAEvE,kBAAA,IAAA;EACQpD,sBAAAA,UAAAA,CAAAA,IAAX,GAAmB,CAAC0C,OAAAA,CAAQC,GAAT,GAAepE,QAAAA,CAASD,OAAT,CAAiBe,UAAAA,CAAWW,IAAX,CAAgB1E,OAAhB,CAAwBgE,QAAAA,CAASM,WAAjC,EAA8Cf,WAA9C,CAAA,CAA2D9H,WAA3D,EAAjB,CAAf,GAA4GwH,QAAAA,CAASH,SAAT,CAAmBiB,UAAAA,CAAWW,IAA9B,CAA/H;qBADD,CAEE,OAAOpB,CAAP,EAAU;wBACAhE,UAAAA,CAAAA,KAAX,GAAmByE,UAAAA,CAAWzE,KAAX,IAAoB,iDAAiD,CAAC8H,OAAAA,CAAQC,GAAT,GAAe,OAAf,GAAyB,SAA1E,CAAA,GAAuF,iBAAvF,GAA2G/D,CAAlJ;;;;;EAMyBS,MAAAA,2BAAAA,CAAAA,UAA5B,EAAwCC,QAAxC,CAAA;QAEIoD,IAAAA,OAAAA,CAAQI,SAAR,KAAsB,QAAtB,IAAkCzD,UAAAA,CAAWM,MAAjD,EAAyD;sBAC9C5D,IAAV,CAAesD,UAAAA,CAAWM,MAA1B,CAAA;EACU5D,UAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;;EAGKoI,MAAAA,IAAAA,SAAAA,GAAYd,mBAAAA,CAAoBhE,UAApB,EAAgCqD,OAAhC,CAAlB;EACIyB,MAAAA,IAAAA,SAAAA,KAAc5N,SAAlB,EAA6B;EACxBmM,UAAAA,IAAAA,OAAAA,CAAQI,SAAR,KAAsB,QAA1B,EAAoC;EACzB/G,cAAAA,SAAAA,CAAAA,IAAV,CAAe,IAAf,CAAA;;EAGSA,UAAAA,SAAAA,CAAAA,IAAV,CAAeoI,SAAf,CAAA;EAEI9E,UAAAA,IAAAA,UAAAA,CAAWa,IAAX,IAAmBb,UAAAA,CAAWa,IAAX,CAAgBkE,MAAhB,CAAuB,CAAvB,CAAA,KAA8B,GAArD,EAA0D;EAC/CrI,cAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;;;EAIEsD,MAAAA,IAAAA,UAAAA,CAAWa,IAAX,KAAoB3J,SAAxB,EAAmC;EAC9ByN,UAAAA,IAAAA,CAAAA,GAAI3E,UAAAA,CAAWa,IAAnB;EAEI,UAAA,IAAA,CAACwC,OAAAA,CAAQ2B,YAAT,KAA0B,CAACnB,aAAD,IAAkB,CAACA,aAAAA,CAAcmB,YAA3D,CAAJ,EAA8E;EACzEP,cAAAA,CAAAA,GAAAA,iBAAAA,CAAkBE,CAAlB,CAAJ;;EAGGG,UAAAA,IAAAA,SAAAA,KAAc5N,SAAlB,EAA6B;gBACxByN,CAAAA,GAAAA,CAAAA,CAAE1I,OAAF,CAAU,OAAV,EAAmB,MAAnB,CAAJ,CAD4B;;EAInBS,UAAAA,SAAAA,CAAAA,IAAV,CAAeiI,CAAf,CAAA;;EAGG3E,MAAAA,IAAAA,UAAAA,CAAWgB,KAAX,KAAqB9J,SAAzB,EAAoC;EACzBwF,UAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;sBACUA,IAAV,CAAesD,UAAAA,CAAWgB,KAA1B,CAAA;;EAGGhB,MAAAA,IAAAA,UAAAA,CAAWkB,QAAX,KAAwBhK,SAA5B,EAAuC;EAC5BwF,UAAAA,SAAAA,CAAAA,IAAV,CAAe,GAAf,CAAA;sBACUA,IAAV,CAAesD,UAAAA,CAAWkB,QAA1B,CAAA;;EAGM+C,MAAAA,OAAAA,SAAAA,CAAUpN,IAAV,CAAe,EAAf,CAAP,CAxED;;;EA2EA,EAAA,SAAAoO,iBAAA,CAAkC5K,IAAlC,EAAsD6K,QAAtD,EAAA;QAA8E7B,IAAAA,OAA9E,uEAAmG,EAAnG;EAAuG8B,MAAAA,IAAAA,iBAAvG,GAAA,SAAA,CAAA,CAAA,CAAA;;QACOlN,IAAAA,MAAAA,GAAuB,EAA7B;QAEI,IAAA,CAACkN,iBAAL,EAAwB;mBAChBhC,KAAAA,CAAM0B,SAAAA,CAAUxK,IAAV,EAAgBgJ,OAAhB,CAAN,EAAgCA,OAAhC,CAAP,CADuB;uBAEZF,KAAAA,CAAM0B,SAAAA,CAAUK,QAAV,EAAoB7B,OAApB,CAAN,EAAoCA,OAApC,CAAX,CAFuB;;EAIdA,MAAAA,OAAAA,GAAAA,OAAAA,IAAW,EAArB;QAEI,IAAA,CAACA,OAAAA,CAAQ+B,QAAT,IAAqBF,QAAAA,CAAS5E,MAAlC,EAA0C;mBAClCA,MAAP,GAAgB4E,SAAS5E,MAAzB;;mBAEOG,QAAP,GAAkByE,SAASzE,QAA3B;mBACOE,IAAP,GAAcuE,SAASvE,IAAvB;mBACO+C,IAAP,GAAcwB,SAASxB,IAAvB;YACO7C,MAAAA,CAAAA,IAAP,GAAc4D,iBAAAA,CAAkBS,QAAAA,CAASrE,IAAT,IAAiB,EAAnC,CAAd;mBACOG,KAAP,GAAekE,SAASlE,KAAxB;SAPD,MAQO;EACFkE,UAAAA,IAAAA,QAAAA,CAASzE,QAAT,KAAsBvJ,SAAtB,IAAmCgO,QAAAA,CAASvE,IAAT,KAAkBzJ,SAArD,IAAkEgO,QAAAA,CAASxB,IAAT,KAAkBxM,SAAxF,EAAmG;;uBAE3FuJ,QAAP,GAAkByE,SAASzE,QAA3B;uBACOE,IAAP,GAAcuE,SAASvE,IAAvB;uBACO+C,IAAP,GAAcwB,SAASxB,IAAvB;gBACO7C,MAAAA,CAAAA,IAAP,GAAc4D,iBAAAA,CAAkBS,QAAAA,CAASrE,IAAT,IAAiB,EAAnC,CAAd;uBACOG,KAAP,GAAekE,SAASlE,KAAxB;aAND,MAOO;oBACF,CAACkE,QAAAA,CAASrE,IAAd,EAAoB;2BACZA,IAAP,GAAcxG,KAAKwG,IAAnB;EACIqE,kBAAAA,IAAAA,QAAAA,CAASlE,KAAT,KAAmB9J,SAAvB,EAAkC;+BAC1B8J,KAAP,GAAekE,SAASlE,KAAxB;qBADD,MAEO;+BACCA,KAAP,GAAe3G,KAAK2G,KAApB;;iBALF,MAOO;oBACFkE,IAAAA,QAAAA,CAASrE,IAAT,CAAckE,MAAd,CAAqB,CAArB,CAAA,KAA4B,GAAhC,EAAqC;wBAC7BlE,MAAAA,CAAAA,IAAP,GAAc4D,iBAAAA,CAAkBS,QAAAA,CAASrE,IAA3B,CAAd;qBADD,MAEO;wBACF,IAAA,CAACxG,KAAKoG,QAAL,KAAkBvJ,SAAlB,IAA+BmD,IAAAA,CAAKsG,IAAL,KAAczJ,SAA7C,IAA0DmD,IAAAA,CAAKqJ,IAAL,KAAcxM,SAAzE,KAAuF,CAACmD,IAAAA,CAAKwG,IAAjG,EAAuG;EAC/FA,0BAAAA,MAAAA,CAAAA,IAAP,GAAc,GAAA,GAAMqE,QAAAA,CAASrE,IAA7B;EADD,sBAAA,CAAA,MAEO,IAAI,CAACxG,IAAAA,CAAKwG,IAAV,EAAgB;mCACfA,IAAP,GAAcqE,SAASrE,IAAvB;yBADM,MAEA;4BACCA,MAAAA,CAAAA,IAAP,GAAcxG,IAAAA,CAAKwG,IAAL,CAAUnK,KAAV,CAAgB,CAAhB,EAAmB2D,IAAAA,CAAKwG,IAAL,CAAU/C,WAAV,CAAsB,GAAtB,IAA6B,CAAhD,CAAA,GAAqDoH,QAAAA,CAASrE,IAA5E;;wBAEMA,MAAAA,CAAAA,IAAP,GAAc4D,iBAAAA,CAAkBxM,MAAAA,CAAO4I,IAAzB,CAAd;;2BAEMG,KAAP,GAAekE,SAASlE,KAAxB;;;uBAGMP,QAAP,GAAkBpG,KAAKoG,QAAvB;uBACOE,IAAP,GAActG,KAAKsG,IAAnB;uBACO+C,IAAP,GAAcrJ,KAAKqJ,IAAnB;;mBAEMpD,MAAP,GAAgBjG,KAAKiG,MAArB;;eAGMY,QAAP,GAAkBgE,SAAShE,QAA3B;eAEOjJ,MAAP;;;EAGD,EAAA,SAAAoN,OAAA,CAAwBC,OAAxB,EAAwCC,WAAxC,EAA4DlC,OAA5D,EAAA;EACOmC,MAAAA,IAAAA,iBAAAA,GAAoBxN,MAAAA,CAAO,EAAEsI,MAAAA,EAAS,MAAX,EAAP,EAA4B+C,OAA5B,CAA1B;QACOwB,OAAAA,SAAAA,CAAUI,iBAAAA,CAAkB9B,KAAAA,CAAMmC,OAAN,EAAeE,iBAAf,CAAlB,EAAqDrC,KAAAA,CAAMoC,WAAN,EAAmBC,iBAAnB,CAArD,EAA4FA,iBAA5F,EAA+G,IAA/G,CAAV,EAAgIA,iBAAhI,CAAP;;;EAKD,EAAA,SAAAC,SAAA,CAA0BC,GAA1B,EAAmCrC,OAAnC,EAAA;YACK,OAAOqC,GAAP,KAAe,QAAnB,EAA6B;EACtBb,UAAAA,GAAAA,GAAAA,SAAAA,CAAU1B,KAAAA,CAAMuC,GAAN,EAAWrC,OAAX,CAAV,EAA+BA,OAA/B,CAAN;QADD,CAAA,MAEO,IAAIrM,MAAAA,CAAO0O,GAAP,CAAA,KAAgB,QAApB,EAA8B;EAC9BvC,UAAAA,GAAAA,GAAAA,KAAAA,CAAM0B,SAAAA,CAAyBa,GAAzB,EAA8BrC,OAA9B,CAAN,EAA8CA,OAA9C,CAAN;;eAGMqC,GAAP;;;EAKD,EAAA,SAAAC,KAAA,CAAsBC,IAAtB,EAAgCC,IAAhC,EAA0CxC,OAA1C,EAAA;YACK,OAAOuC,IAAP,KAAgB,QAApB,EAA8B;EACtBf,UAAAA,IAAAA,GAAAA,SAAAA,CAAU1B,KAAAA,CAAMyC,IAAN,EAAYvC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;QADD,CAAA,MAEO,IAAIrM,MAAAA,CAAO4O,IAAP,CAAA,KAAiB,QAArB,EAA+B;EAC9Bf,UAAAA,IAAAA,GAAAA,SAAAA,CAAyBe,IAAzB,EAA+BvC,OAA/B,CAAP;;YAGG,OAAOwC,IAAP,KAAgB,QAApB,EAA8B;EACtBhB,UAAAA,IAAAA,GAAAA,SAAAA,CAAU1B,KAAAA,CAAM0C,IAAN,EAAYxC,OAAZ,CAAV,EAAgCA,OAAhC,CAAP;QADD,CAAA,MAEO,IAAIrM,MAAAA,CAAO6O,IAAP,CAAA,KAAiB,QAArB,EAA+B;EAC9BhB,UAAAA,IAAAA,GAAAA,SAAAA,CAAyBgB,IAAzB,EAA+BxC,OAA/B,CAAP;;QAGMuC,OAAAA,IAAAA,KAASC,IAAhB;;;EAGD,EAAA,SAAAC,eAAA,CAAgC/O,GAAhC,EAA4CsM,OAA5C,EAAA;QACQtM,OAAAA,GAAAA,IAAOA,GAAAA,CAAIM,QAAJ,EAAA,CAAe4E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,OAAAA,CAAQC,GAArB,GAA2BE,YAAAA,CAAauC,MAAxC,GAAiDxC,YAAAA,CAAawC,MAAtF,EAA+F3G,UAA/F,CAAd;;;EAGD,EAAA,SAAA4G,iBAAA,CAAkCjP,GAAlC,EAA8CsM,OAA9C,EAAA;QACQtM,OAAAA,GAAAA,IAAOA,GAAAA,CAAIM,QAAJ,EAAA,CAAe4E,OAAf,CAAwB,CAACoH,OAAD,IAAY,CAACA,OAAAA,CAAQC,GAArB,GAA2BE,YAAAA,CAAajD,WAAxC,GAAsDgD,YAAAA,CAAahD,WAA3F,EAAyGf,WAAzG,CAAd;EACA,EAAA;;ECziBD,EAAA,IAAMyG,OAAAA,GAA2B;gBACvB,MADuB;oBAGnB,IAHmB;EAKxB,MAAA,KAAA,EAAA,SAAA,KAAA,CAAUjG,UAAV,EAAoCqD,OAApC,EAAT;;gBAEM,CAACrD,UAAAA,CAAWW,IAAhB,EAAsB;EACVpF,cAAAA,UAAAA,CAAAA,KAAX,GAAmByE,UAAAA,CAAWzE,KAAX,IAAoB,6BAAvC;;mBAGMyE,UAAP;QAX+B,CAAA;EAcpB,MAAA,SAAA,EAAA,SAAA,SAAA,CAAUA,UAAV,EAAoCqD,OAApC,EAAb;EACQ6C,UAAAA,IAAAA,MAAAA,GAAS7K,MAAAA,CAAO2E,UAAAA,CAAWM,MAAlB,CAAA,CAA0B5I,WAA1B,EAAA,KAA4C,OAA3D;;EAGIsI,UAAAA,IAAAA,UAAAA,CAAW0D,IAAX,MAAqBwC,MAAAA,GAAS,GAAT,GAAe,EAApC,CAAA,IAA2ClG,UAAAA,CAAW0D,IAAX,KAAoB,EAAnE,EAAuE;EAC3DA,cAAAA,UAAAA,CAAAA,IAAX,GAAkBxM,SAAlB;;;gBAIG,CAAC8I,UAAAA,CAAWa,IAAhB,EAAsB;EACVA,cAAAA,UAAAA,CAAAA,IAAX,GAAkB,GAAlB;;;;;mBAOMb,UAAP;;EA/BF,GAAA;;ECCA,EAAA,IAAMiG,SAAAA,GAA2B;gBACvB,OADuB;EAEnBE,MAAAA,UAAAA,EAAAA,OAAAA,CAAKpC,UAFc;EAGxBoC,MAAAA,KAAAA,EAAAA,OAAAA,CAAKhD,KAHmB;EAIpBgD,MAAAA,SAAAA,EAAAA,OAAAA,CAAKtB;EAJlB,GAAA;;ICIA,SAAAuB,QAAA,CAAkBC,YAAlB,EAAA;QACQ,OAAA,OAAOA,YAAAA,CAAaH,MAApB,KAA+B,SAA/B,GAA2CG,YAAAA,CAAaH,MAAxD,GAAiE7K,MAAAA,CAAOgL,YAAAA,CAAa/F,MAApB,CAAA,CAA4B5I,WAA5B,OAA8C,KAAtH;;;EAID,EAAA,IAAMuO,SAAAA,GAA2B;gBACvB,IADuB;oBAGnB,IAHmB;EAKxB,MAAA,KAAA,EAAA,SAAA,KAAA,CAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQgD,IAAAA,YAAAA,GAAerG,UAArB;;EAGakG,UAAAA,YAAAA,CAAAA,MAAb,GAAsBE,QAAAA,CAASC,YAAT,CAAtB;;YAGaC,YAAAA,CAAAA,YAAb,GAA4B,CAACD,YAAAA,CAAaxF,IAAb,IAAqB,GAAtB,KAA8BwF,YAAAA,CAAarF,KAAb,GAAqB,GAAA,GAAMqF,YAAAA,CAAarF,KAAxC,GAAgD,EAA9E,CAA5B;EACaH,UAAAA,YAAAA,CAAAA,IAAb,GAAoB3J,SAApB;EACa8J,UAAAA,YAAAA,CAAAA,KAAb,GAAqB9J,SAArB;mBAEOmP,YAAP;QAhB+B,CAAA;EAmBpB,MAAA,SAAA,EAAA,SAAA,SAAA,CAAUA,YAAV,EAAqChD,OAArC,EAAb;;EAEMgD,UAAAA,IAAAA,YAAAA,CAAa3C,IAAb,MAAuB0C,QAAAA,CAASC,YAAT,CAAA,GAAyB,GAAzB,GAA+B,EAAtD,CAAA,IAA6DA,YAAAA,CAAa3C,IAAb,KAAsB,EAAvF,EAA2F;EAC7EA,cAAAA,YAAAA,CAAAA,IAAb,GAAoBxM,SAApB;;;EAIG,UAAA,IAAA,OAAOmP,YAAAA,CAAaH,MAApB,KAA+B,SAAnC,EAA8C;gBAChC5F,YAAAA,CAAAA,MAAb,GAAuB+F,YAAAA,CAAaH,MAAb,GAAsB,KAAtB,GAA8B,IAArD;EACaA,cAAAA,YAAAA,CAAAA,MAAb,GAAsBhP,SAAtB;;;EAIGmP,UAAAA,IAAAA,YAAAA,CAAaC,YAAjB,EAA+B;gBACRD,IAAAA,qBAAAA,GAAAA,YAAAA,CAAaC,YAAb,CAA0B/O,KAA1B,CAAgC,GAAhC,CADQ;;EACvBsJ,kBAAAA,IADuB,GAAA,sBAAA,CAAA,CAAA,CAAA;EACjBG,kBAAAA,KADiB,GAAA,sBAAA,CAAA,CAAA,CAAA;;EAEjBH,cAAAA,YAAAA,CAAAA,IAAb,GAAqBA,IAAAA,IAAQA,IAAAA,KAAS,GAAjB,GAAuBA,IAAvB,GAA8B3J,SAAnD;EACa8J,cAAAA,YAAAA,CAAAA,KAAb,GAAqBA,KAArB;EACasF,cAAAA,YAAAA,CAAAA,YAAb,GAA4BpP,SAA5B;;;EAIYgK,UAAAA,YAAAA,CAAAA,QAAb,GAAwBhK,SAAxB;mBAEOmP,YAAP;;EA1CF,GAAA;;ECTA,EAAA,IAAMJ,SAAAA,GAA2B;gBACvB,KADuB;EAEnBM,MAAAA,UAAAA,EAAAA,SAAAA,CAAGxC,UAFgB;EAGxBwC,MAAAA,KAAAA,EAAAA,SAAAA,CAAGpD,KAHqB;EAIpBoD,MAAAA,SAAAA,EAAAA,SAAAA,CAAG1B;EAJhB,GAAA;;ECaA,EAAA,IAAM2B,IAAkB,EAAxB;;EAIA,EAAA,IAAM1N,eAAe,wBAAA,IAAoC,2EAAR,KAA4F,GAA7I;IACA,IAAMN,QAAAA,GAAW,aAAjB,CAAA;IACA,IAAMC,YAAAA,GAAe3B,MAAAA,CAAOA,MAAAA,CAAO,SAAA,GAAY0B,QAAZ,GAAuB,GAAvB,GAA6BA,QAA7B,GAAwCA,QAAxC,GAAmD,GAAnD,GAAyDA,QAAzD,GAAoEA,QAA3E,CAAA,GAAuF,GAAvF,GAA6F1B,MAAAA,CAAO,gBAAgB0B,QAAhB,GAA2B,GAA3B,GAAiCA,QAAjC,GAA4CA,QAAnD,CAA7F,GAA4J,GAA5J,GAAkK1B,MAAAA,CAAO,GAAA,GAAM0B,QAAN,GAAiBA,QAAxB,CAAzK,CAArB,CAAA;;;;;;;;;;;;EAaA,EAAA,IAAMiO,UAAU,uDAAhB;EACA,EAAA,IAAMC,UAAU,4DAAhB;EACA,EAAA,IAAMC,OAAAA,GAAUpQ,KAAAA,CAAMmQ,OAAN,EAAe,YAAf,CAAhB;EAMA,EAAA,IAEME,gBAAgB,qCAAtB;EAWA,EAAA,IAEMvG,aAAa,IAAInG,MAAJ,CAAWpB,YAAX,EAAyB,GAAzB,CAAnB;EACA,EAAA,IAAMyH,cAAc,IAAIrG,MAAJ,CAAWzB,YAAX,EAAyB,GAAzB,CAApB;EACA,EAAA,IAAMoO,cAAAA,GAAiB,IAAI3M,MAAJ,CAAW3D,KAAAA,CAAM,KAAN,EAAakQ,OAAb,EAAsB,OAAtB,EAA+B,OAA/B,EAAwCE,OAAxC,CAAX,EAA6D,GAA7D,CAAvB;EAEA,EAAA,IAAMG,UAAAA,GAAa,IAAI5M,MAAJ,CAAW3D,KAAAA,CAAM,KAAN,EAAauC,YAAb,EAA2B8N,aAA3B,CAAX,EAAsD,GAAtD,CAAnB;EACA,EAAA,IAAMG,cAAcD,UAApB;IAEA,SAEA5G,gBAAA,CAA0BnJ,GAA1B,EAAA;EACOoJ,MAAAA,IAAAA,MAAAA,GAASX,WAAAA,CAAYzI,GAAZ,CAAf;eACQ,CAACoJ,MAAAA,CAAOC,KAAP,CAAaC,UAAb,CAAD,GAA4BtJ,GAA5B,GAAkCoJ,MAA1C;;EAGD,EAAA,IAAM8F,SAAAA,GAA8C;gBAC1C,QAD0C;EAG3C,MAAA,KAAA,EAAA,SAAA,QAAA,CAAUjG,UAAV,EAAoCqD,OAApC,EAAT;YACQ2D,IAAAA,gBAAAA,GAAmBhH,UAAzB;EACMiH,UAAAA,IAAAA,EAAAA,GAAKD,gBAAAA,CAAiBC,EAAjB,GAAuBD,gBAAAA,CAAiBnG,IAAjB,GAAwBmG,gBAAAA,CAAiBnG,IAAjB,CAAsBtJ,KAAtB,CAA4B,GAA5B,CAAxB,GAA2D,EAA7F;EACiBsJ,UAAAA,gBAAAA,CAAAA,IAAjB,GAAwB3J,SAAxB;EAEI8P,UAAAA,IAAAA,gBAAAA,CAAiBhG,KAArB,EAA4B;gBACvBkG,IAAAA,cAAAA,GAAiB,KAArB;gBACMC,IAAAA,OAAAA,GAAwB,EAA9B;gBACMC,IAAAA,OAAAA,GAAUJ,gBAAAA,CAAiBhG,KAAjB,CAAuBzJ,KAAvB,CAA6B,GAA7B,CAAhB;EAEK,cAAA,KAAA,IAAIX,CAAAA,GAAI,CAAR,EAAWD,EAAAA,GAAKyQ,OAAAA,CAAQ3Q,MAA7B,EAAqCG,CAAAA,GAAID,EAAzC,EAA6C,EAAEC,CAA/C,EAAkD;oBAC3CyQ,IAAAA,MAAAA,GAASD,OAAAA,CAAQxQ,CAAR,CAAA,CAAWW,KAAX,CAAiB,GAAjB,CAAf;EAEQ8P,kBAAAA,QAAAA,MAAAA,CAAO,CAAP,CAAR;6BACM,IAAL;4BACOC,IAAAA,OAAAA,GAAUD,MAAAA,CAAO,CAAP,CAAA,CAAU9P,KAAV,CAAgB,GAAhB,CAAhB;EACK,0BAAA,KAAA,IAAIX,EAAAA,GAAI,CAAR,EAAWD,GAAAA,GAAK2Q,OAAAA,CAAQ7Q,MAA7B,EAAqCG,EAAAA,GAAID,GAAzC,EAA6C,EAAEC,EAA/C,EAAkD;EAC9C8F,8BAAAA,EAAAA,CAAAA,IAAH,CAAQ4K,OAAAA,CAAQ1Q,EAAR,CAAR,CAAA;;;6BAGG,SAAL;EACkB2Q,0BAAAA,gBAAAA,CAAAA,OAAjB,GAA2BvB,iBAAAA,CAAkBqB,MAAAA,CAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAA3B;;6BAEI,MAAL;EACkBmE,0BAAAA,gBAAAA,CAAAA,IAAjB,GAAwBxB,iBAAAA,CAAkBqB,MAAAA,CAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAxB;;;6CAGiB,IAAjB;4BACQ2C,OAAAA,CAAAA,iBAAAA,CAAkBqB,MAAAA,CAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAR,CAAA,GAAiD2C,iBAAAA,CAAkBqB,MAAAA,CAAO,CAAP,CAAlB,EAA6BhE,OAA7B,CAAjD;;;;EAKC6D,cAAAA,IAAAA,cAAJ,EAAoBF,gBAAAA,CAAiBG,OAAjB,GAA2BA,OAA3B;;EAGJnG,UAAAA,gBAAAA,CAAAA,KAAjB,GAAyB9J,SAAzB;EAEK,UAAA,KAAA,IAAIN,GAAAA,GAAI,CAAR,EAAWD,IAAAA,GAAKsQ,EAAAA,CAAGxQ,MAAxB,EAAgCG,GAAAA,GAAID,IAApC,EAAwC,EAAEC,GAA1C,EAA6C;gBACtC6Q,IAAAA,IAAAA,GAAOR,EAAAA,CAAGrQ,GAAH,CAAA,CAAMW,KAAN,CAAY,GAAZ,CAAb;gBAEK,IAAA,CAAA,CAAL,CAAA,GAAUyO,iBAAAA,CAAkByB,IAAAA,CAAK,CAAL,CAAlB,CAAV;oBAEI,CAACpE,OAAAA,CAAQS,cAAb,EAA6B;;EAExB,kBAAA,IAAA;wBACE,IAAA,CAAA,CAAL,CAAA,GAAU5E,QAAAA,CAASD,OAAT,CAAiB+G,iBAAAA,CAAkByB,IAAAA,CAAK,CAAL,CAAlB,EAA2BpE,OAA3B,CAAA,CAAoC3L,WAApC,EAAjB,CAAV;qBADD,CAEE,OAAO6H,CAAP,EAAU;wBACMhE,gBAAAA,CAAAA,KAAjB,GAAyByL,gBAAAA,CAAiBzL,KAAjB,IAA0B,6EAA6EgE,CAAhI;;iBALF,MAOO;EACD,kBAAA,IAAA,CAAA,CAAL,CAAA,GAAUyG,iBAAAA,CAAkByB,IAAAA,CAAK,CAAL,CAAlB,EAA2BpE,OAA3B,CAAA,CAAoC3L,WAApC,EAAV;;gBAGEd,EAAAA,CAAAA,GAAH,CAAA,GAAQ6Q,IAAAA,CAAK5Q,IAAL,CAAU,GAAV,CAAR;;mBAGMmQ,gBAAP;QA5DkD,CAAA;EA+DvC,MAAA,SAAA,EAAA,SAAA,YAAA,CAAUA,gBAAV,EAA6C3D,OAA7C,EAAb;YACQrD,IAAAA,UAAAA,GAAagH,gBAAnB;EACMC,UAAAA,IAAAA,EAAAA,GAAKrP,OAAAA,CAAQoP,gBAAAA,CAAiBC,EAAzB,CAAX;EACIA,UAAAA,IAAAA,EAAJ,EAAQ;EACF,cAAA,KAAA,IAAIrQ,CAAAA,GAAI,CAAR,EAAWD,EAAAA,GAAKsQ,EAAAA,CAAGxQ,MAAxB,EAAgCG,CAAAA,GAAID,EAApC,EAAwC,EAAEC,CAA1C,EAA6C;oBACtC8Q,IAAAA,MAAAA,GAASrM,MAAAA,CAAO4L,EAAAA,CAAGrQ,CAAH,CAAP,CAAf;EACM+Q,kBAAAA,IAAAA,KAAAA,GAAQD,MAAAA,CAAO5J,WAAP,CAAmB,GAAnB,CAAd;EACM8J,kBAAAA,IAAAA,SAAAA,GAAaF,MAAAA,CAAOhR,KAAP,CAAa,CAAb,EAAgBiR,KAAhB,CAAD,CAAyB1L,OAAzB,CAAiCsE,WAAjC,EAA8CL,gBAA9C,CAAA,CAAgEjE,OAAhE,CAAwEsE,WAAxE,EAAqF5I,WAArF,CAAA,CAAkGsE,OAAlG,CAA0G4K,cAA1G,EAA0HzH,UAA1H,CAAlB;oBACIyI,IAAAA,MAAAA,GAASH,MAAAA,CAAOhR,KAAP,CAAaiR,KAAAA,GAAQ,CAArB,CAAb;;EAGI,kBAAA,IAAA;wBACO,MAAA,GAAA,CAACtE,OAAAA,CAAQC,GAAT,GAAepE,QAAAA,CAASD,OAAT,CAAiB+G,iBAAAA,CAAkB6B,MAAlB,EAA0BxE,OAA1B,CAAA,CAAmC3L,WAAnC,EAAjB,CAAf,GAAoFwH,QAAAA,CAASH,SAAT,CAAmB8I,MAAnB,CAA9F;qBADD,CAEE,OAAOtI,CAAP,EAAU;wBACAhE,UAAAA,CAAAA,KAAX,GAAmByE,UAAAA,CAAWzE,KAAX,IAAoB,0DAA0D,CAAC8H,OAAAA,CAAQC,GAAT,GAAe,OAAf,GAAyB,SAAnF,CAAA,GAAgG,iBAAhG,GAAoH/D,CAA3J;;oBAGE3I,EAAAA,CAAAA,CAAH,CAAA,GAAQgR,SAAAA,GAAY,GAAZ,GAAkBC,MAA1B;;gBAGUhH,UAAAA,CAAAA,IAAX,GAAkBoG,EAAAA,CAAGpQ,IAAH,CAAQ,GAAR,CAAlB;;YAGKsQ,IAAAA,OAAAA,GAAUH,gBAAAA,CAAiBG,OAAjB,GAA2BH,gBAAAA,CAAiBG,OAAjB,IAA4B,EAAvE;EAEIH,UAAAA,IAAAA,gBAAAA,CAAiBO,OAArB,EAA8BJ,OAAAA,CAAQ,SAAR,CAAA,GAAqBH,gBAAAA,CAAiBO,OAAtC;EAC1BP,UAAAA,IAAAA,gBAAAA,CAAiBQ,IAArB,EAA2BL,OAAAA,CAAQ,MAAR,CAAA,GAAkBH,gBAAAA,CAAiBQ,IAAnC;YAErBpF,IAAAA,MAAAA,GAAS,EAAf;iBACK,IAAM0F,IAAX,IAAmBX,OAAnB,EAA4B;gBACvBA,IAAAA,OAAAA,CAAQW,IAAR,CAAA,KAAkBtB,CAAAA,CAAEsB,IAAF,CAAtB,EAA+B;oBACvBpL,MAAAA,CAAAA,IAAP,CACCoL,IAAAA,CAAK7L,OAAL,CAAasE,WAAb,EAA0BL,gBAA1B,CAAA,CAA4CjE,OAA5C,CAAoDsE,WAApD,EAAiE5I,WAAjE,CAAA,CAA8EsE,OAA9E,CAAsF6K,UAAtF,EAAkG1H,UAAlG,CAAA,GACA,GADA,GAEA+H,OAAAA,CAAQW,IAAR,CAAA,CAAc7L,OAAd,CAAsBsE,WAAtB,EAAmCL,gBAAnC,CAAA,CAAqDjE,OAArD,CAA6DsE,WAA7D,EAA0E5I,WAA1E,CAAA,CAAuFsE,OAAvF,CAA+F8K,WAA/F,EAA4G3H,UAA5G,CAHD,CAAA;;;EAOEgD,UAAAA,IAAAA,MAAAA,CAAO3L,MAAX,EAAmB;gBACPuK,UAAAA,CAAAA,KAAX,GAAmBoB,MAAAA,CAAOvL,IAAP,CAAY,GAAZ,CAAnB;;mBAGMmJ,UAAP;;EAzGF,GAAA;;ECtDA,EAAA,IAAM+H,YAAY,iBAAlB;EACA;EAGA,EAAA,IAAM9B,SAAAA,GAAqD;gBACjD,KADiD;EAGlD,MAAA,KAAA,EAAA,SAAA,QAAA,CAAUjG,UAAV,EAAoCqD,OAApC,EAAT;EACQ/B,UAAAA,IAAAA,OAAAA,GAAUtB,UAAAA,CAAWa,IAAX,IAAmBb,UAAAA,CAAWa,IAAX,CAAgBT,KAAhB,CAAsB2H,SAAtB,CAAnC;YACIC,IAAAA,aAAAA,GAAgBhI,UAApB;EAEIsB,UAAAA,IAAAA,OAAJ,EAAa;gBACNhB,IAAAA,MAAAA,GAAS+C,OAAAA,CAAQ/C,MAAR,IAAkB0H,aAAAA,CAAc1H,MAAhC,IAA0C,KAAzD;gBACM2H,IAAAA,GAAAA,GAAM3G,OAAAA,CAAQ,CAAR,CAAA,CAAW5J,WAAX,EAAZ;EACMwQ,cAAAA,IAAAA,GAAAA,GAAM5G,OAAAA,CAAQ,CAAR,CAAZ;EACM6G,cAAAA,IAAAA,SAAAA,GAAe7H,MAAf,GAAA,GAAA,IAAyB+C,OAAAA,CAAQ4E,GAAR,IAAeA,GAAxC,CAAN;EACMpE,cAAAA,IAAAA,aAAAA,GAAgB1E,OAAAA,CAAQgJ,SAAR,CAAtB;EAEcF,cAAAA,aAAAA,CAAAA,GAAd,GAAoBA,GAApB;EACcC,cAAAA,aAAAA,CAAAA,GAAd,GAAoBA,GAApB;EACcrH,cAAAA,aAAAA,CAAAA,IAAd,GAAqB3J,SAArB;EAEI2M,cAAAA,IAAAA,aAAJ,EAAmB;oBACFA,aAAAA,GAAAA,aAAAA,CAAcV,KAAd,CAAoB6E,aAApB,EAAmC3E,OAAnC,CAAhB;;aAZF,MAcO;EACQ9H,cAAAA,aAAAA,CAAAA,KAAd,GAAsByM,aAAAA,CAAczM,KAAd,IAAuB,wBAA7C;;mBAGMyM,aAAP;QAzByD,CAAA;EA4B9C,MAAA,SAAA,EAAA,SAAA,YAAA,CAAUA,aAAV,EAAuC3E,OAAvC,EAAb;YACQ/C,IAAAA,MAAAA,GAAS+C,OAAAA,CAAQ/C,MAAR,IAAkB0H,aAAAA,CAAc1H,MAAhC,IAA0C,KAAzD;EACM2H,UAAAA,IAAAA,GAAAA,GAAMD,aAAAA,CAAcC,GAA1B;EACME,UAAAA,IAAAA,SAAAA,GAAe7H,MAAf,GAAA,GAAA,IAAyB+C,OAAAA,CAAQ4E,GAAR,IAAeA,GAAxC,CAAN;EACMpE,UAAAA,IAAAA,aAAAA,GAAgB1E,OAAAA,CAAQgJ,SAAR,CAAtB;EAEItE,UAAAA,IAAAA,aAAJ,EAAmB;gBACFA,aAAAA,GAAAA,aAAAA,CAAcgB,SAAd,CAAwBmD,aAAxB,EAAuC3E,OAAvC,CAAhB;;YAGK+E,IAAAA,aAAAA,GAAgBJ,aAAtB;EACME,UAAAA,IAAAA,GAAAA,GAAMF,aAAAA,CAAcE,GAA1B;EACcrH,UAAAA,aAAAA,CAAAA,IAAd,GAAA,CAAwBoH,GAAAA,IAAO5E,OAAAA,CAAQ4E,GAAvC,IAAA,GAAA,GAA8CC,GAA9C;mBAEOE,aAAP;;EA1CF,GAAA;;ECdA,EAAA,IAAMC,OAAO,0DAAb;EACA;EAGA,EAAA,IAAMpC,SAAAA,GAAsE;gBAClE,UADkE;EAGnE,MAAA,KAAA,EAAA,SAAA,KAAA,CAAU+B,aAAV,EAAuC3E,OAAvC,EAAT;YACQiF,IAAAA,cAAAA,GAAiBN,aAAvB;2BACeO,IAAf,GAAsBD,eAAeJ,GAArC;EACeA,UAAAA,cAAAA,CAAAA,GAAf,GAAqBhR,SAArB;EAEI,UAAA,IAAA,CAACmM,OAAAA,CAAQ+B,QAAT,KAAsB,CAACkD,cAAAA,CAAeC,IAAhB,IAAwB,CAACD,cAAAA,CAAeC,IAAf,CAAoBnI,KAApB,CAA0BiI,IAA1B,CAA/C,CAAJ,EAAqF;EACrE9M,cAAAA,cAAAA,CAAAA,KAAf,GAAuB+M,cAAAA,CAAe/M,KAAf,IAAwB,oBAA/C;;mBAGM+M,cAAP;QAZ0E,CAAA;EAe/D,MAAA,SAAA,EAAA,SAAA,SAAA,CAAUA,cAAV,EAAyCjF,OAAzC,EAAb;YACQ2E,IAAAA,aAAAA,GAAgBM,cAAtB;;0BAEcJ,GAAd,GAAoB,CAACI,cAAAA,CAAeC,IAAf,IAAuB,EAAxB,EAA4B7Q,WAA5B,EAApB;mBACOsQ,aAAP;;EAnBF,GAAA;;ECTA7I,EAAAA,OAAAA,CAAQgH,OAAAA,CAAK7F,MAAb,CAAA,GAAuB6F,OAAvB;EAGAhH,EAAAA,OAAAA,CAAQqJ,SAAAA,CAAMlI,MAAd,CAAA,GAAwBkI,SAAxB;EAGArJ,EAAAA,OAAAA,CAAQoH,SAAAA,CAAGjG,MAAX,CAAA,GAAqBiG,SAArB;EAGApH,EAAAA,OAAAA,CAAQsJ,SAAAA,CAAInI,MAAZ,CAAA,GAAsBmI,SAAtB;EAGAtJ,EAAAA,OAAAA,CAAQuJ,SAAAA,CAAOpI,MAAf,CAAA,GAAyBoI,SAAzB;EAGAvJ,EAAAA,OAAAA,CAAQwJ,SAAAA,CAAIrI,MAAZ,CAAA,GAAsBqI,SAAtB;EAGAxJ,EAAAA,OAAAA,CAAQoJ,SAAAA,CAAKjI,MAAb,CAAA,GAAuBiI,SAAvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECnBA;;;;EAIA,CAAA,aAAc,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE;EACtC,GAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI;;EAE1B,GAAE,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;OAC1D,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,KAAK;;EAErD,KAAI,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI;EACvB,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;EAC1B,OAAM,MAAM,GAAG,CAAC,CAAC,MAAM;EACjB,OAAA,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;EACpC,OAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;EAChC,SAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;EAC5C,OAAM,OAAO,IAAI;EACjB,KAAA;;;;OAII,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;EACjF,KAAA,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;EAC9E,KAAA,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;;EAEtF,KAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;EACzB,KAAI,MAAM,GAAG,IAAI,CAAC,MAAM;EACxB,KAAI,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK;;EAElD,KAAA,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;EAC9B,OAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK;;OAErE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;EACjC,OAAM,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;;EAEvB,OAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK;EAC9C,KAAA;;EAEA,KAAI,OAAO,IAAI;EACf,GAAA;;EAEA;EACA,GAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;GACvB,CAAC;;;;;;;;;;;EC3CD;EACA;EACA,CAAA,UAAc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE;EACxC,GAAA,IAAI,MAAM,GAAG;SACT,GAAG,GAAG,GAAG,CAAC;EAChB,OAAM,GAAG,GAAG;EACZ,OAAM,KAAK;EACX,GAAE,OAAO,GAAG,GAAG,GAAG,EAAE;EACpB,KAAI,MAAM,EAAE;EACR,KAAA,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;EACjC,KAAI,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,GAAG,GAAG,GAAG,EAAE;EACzD;EACA,OAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;SAC3B,IAAI,CAAC,KAAK,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,EAAE,CAAC;EAC5C,KAAA;EACA,GAAA;EACA,GAAE,OAAO,MAAM;GACf,CAAC;;;;;;;;;;;;EChBD,CAAA,IAAc,GAAG;EACf,GAAA,IAAI,EAAE,IAAI;EACV,GAAA,aAAa,EAAE,aAAa;EAC5B,GAAA,cAAc,EAAE,cAAc;EAC9B,GAAA,aAAa,EAAE,aAAa;EAC5B,GAAA,MAAM,EAAE,MAAM;EACd,GAAA,WAAW,EAAE,WAAW;EACxB,GAAA,YAAY,EAAE,YAAY;KAC1B,KAAK,EAAEK,oBAAA,EAA0B;KACjC,UAAU,EAAEC,iBAAA,EAAuB;EACnC,GAAA,aAAa,EAAE,aAAa;EAC5B,GAAA,UAAU,EAAE,UAAU;EACtB,GAAA,cAAc,EAAE,cAAc;EAC9B,GAAA,oBAAoB,EAAE,oBAAoB;EAC1C,GAAA,kBAAkB,EAAE,kBAAkB;EACtC,GAAA,cAAc,EAAE,cAAc;EAC9B,GAAA,WAAW,EAAE,WAAW;EACxB,GAAA,OAAO,EAAE,OAAO;EAChB,GAAA,OAAO,EAAE,OAAO;EAChB,GAAA,gBAAgB,EAAE,gBAAgB;EAClC,GAAA,mBAAmB,EAAE,mBAAmB;EACxC,GAAA,cAAc,EAAE,cAAc;EAChC,GAAE,iBAAiB,EAAE;EACpB,EAAA;;;EAGD,CAAA,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;EACrB,GAAE,EAAE,GAAG,EAAE,IAAI,EAAE;EACf,GAAE,KAAK,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,GAAE,OAAO,EAAE;EACX,CAAA;;;GAGA,SAAS,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;EAC9D,GAAE,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG;EACjC,OAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG;EAC9B,OAAM,EAAE,GAAG,MAAM,GAAG,GAAG,GAAG;EAC1B,OAAM,GAAG,GAAG,MAAM,GAAG,EAAE,GAAG,GAAG;EAC7B,GAAE,QAAQ,QAAQ;EACd,KAAA,KAAK,MAAM,EAAE,OAAO,IAAI,GAAG,KAAK,GAAG,MAAM;OACzC,KAAK,OAAO,EAAE,OAAO,EAAE,GAAG,gBAAgB,GAAG,IAAI,GAAG,GAAG;OACvD,KAAK,QAAQ,EAAE,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG;EACrB,2BAAA,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;EACrE,2BAA0B,GAAG,GAAG,gBAAgB,GAAG,IAAI,GAAG,IAAI;EAC9D,KAAI,KAAK,SAAS,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG;EACvE,4BAA2B,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,OAAO;EACrD,4BAA2B,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI;EACpD,6BAA4B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG;EAC7F,KAAI,KAAK,QAAQ,EAAE,OAAO,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;EAC1E,4BAA2B,aAAa,IAAI,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG;EAC5F,KAAI,SAAS,OAAO,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG;EACnE;EACA,CAAA;;;EAGA,CAAA,SAAS,cAAc,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE;KACtD,QAAQ,SAAS,CAAC,MAAM;EAC1B,KAAI,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC;EACrE,KAAA;SACE,IAAI,IAAI,GAAG,EAAE;EACnB,OAAM,IAAI,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;EAC7B,OAAA,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;EACvC,SAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;EACrD,SAAQ,IAAI,IAAI,SAAS,GAAG,IAAI,GAAG,gBAAgB;WAC3C,OAAO,KAAK,CAAC,IAAI;WACjB,OAAO,KAAK,CAAC,KAAK;WAClB,OAAO,KAAK,CAAC,MAAM;EAC3B,OAAA;EACM,OAAA,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,OAAO;EAC5C,OAAM,KAAK,IAAI,CAAC,IAAI,KAAK;EACzB,SAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,EAAE,KAAK,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC;;EAEnF,OAAM,OAAO,IAAI;EACjB;EACA,CAAA;;;EAGA,CAAA,IAAI,eAAe,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;EAClF,CAAA,SAAS,aAAa,CAAC,iBAAiB,EAAE,SAAS,EAAE;EACrD,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;OAC5B,IAAI,KAAK,GAAG,EAAE;EAClB,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC3C,OAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;EAC1B,OAAM,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;EACrD,YAAW,IAAI,iBAAiB,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;EACtF,KAAA;EACA,KAAI,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK;EAClC,GAAA,CAAG,MAAM,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE;OACrC,OAAO,CAAC,SAAS,CAAC;KACtB,CAAG,MAAM,IAAI,iBAAiB,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE;OACjE,OAAO,CAAC,OAAO,CAAC;EACpB,GAAA;EACA,CAAA;;;GAGA,SAAS,MAAM,CAAC,GAAG,EAAE;KACnB,IAAI,IAAI,GAAG,EAAE;KACb,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;EACtD,GAAE,OAAO,IAAI;EACb,CAAA;;;GAGA,IAAI,UAAU,GAAG,uBAAuB;GACxC,IAAI,YAAY,GAAG,OAAO;GAC1B,SAAS,WAAW,CAAC,GAAG,EAAE;KACxB,OAAO,OAAO,GAAG,IAAI;eACX,GAAG,GAAG,GAAG,GAAG;EACxB,aAAY,UAAU,CAAC,IAAI,CAAC,GAAG;EAC/B,eAAc,GAAG,GAAG;EACpB,eAAc,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;EAC7C,CAAA;;;GAGA,SAAS,YAAY,CAAC,GAAG,EAAE;EAC3B,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM;EACzC,cAAa,OAAO,CAAC,KAAK,EAAE,KAAK;EACjC,cAAa,OAAO,CAAC,KAAK,EAAE,KAAK;EACjC,cAAa,OAAO,CAAC,KAAK,EAAE,KAAK;EACjC,cAAa,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;EAClC,CAAA;;;EAGA,CAAA,SAAS,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;EACnC,GAAA,OAAO,IAAI,QAAQ;EACrB,GAAE,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;EACnD,GAAE,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;EACrC,CAAA;;;EAGA,CAAA,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;EACtC,GAAA,OAAO,IAAI,UAAU;KACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;EACpC,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;EAC3D,CAAA;;;EAGA,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE;EACrC,GAAA,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM;EAChD,GAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;EACrD,CAAA;;;EAGA,CAAA,SAAS,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;EAC5D,GAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,IAAI,KAAK;EAC1E,GAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI;EAC7E,CAAA;;;EAGA,CAAA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;EAC3C,GAAE,IAAI,OAAO,MAAM,IAAI,SAAS,EAAE;EAClC,GAAE,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG;EACrD,CAAA;;;GAGA,SAAS,cAAc,CAAC,GAAG,EAAE;EAC3B,GAAA,OAAO,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI;EACxC,CAAA;;;GAGA,SAAS,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;KAC9D,IAAI,IAAI,GAAG,YAAY;EACT,iBAAA,UAAU,GAAG,IAAI,IAAI,QAAQ,GAAG,EAAE,GAAG,gDAAgD;EACrG,kBAAiB,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,cAAc,GAAG,IAAI,GAAG,cAAc,CAAC;EACpG,GAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;EACrC,CAAA;;;EAGA,CAAA,SAAS,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE;KAChD,IAAI,IAAI,GAAG,YAAY;EACzB,iBAAgB,cAAc,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC;EAC5D,iBAAgB,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;EACjD,GAAE,OAAO,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC;EACrC,CAAA;;;GAGA,IAAI,YAAY,GAAG,qBAAqB;GACxC,IAAI,qBAAqB,GAAG,kCAAkC;EAC9D,CAAA,SAAS,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;EACpC,GAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO;EACpC,GAAE,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,UAAU;EACrC,GAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;EACvB,KAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC;EAChF,KAAA,WAAW,GAAG,KAAK;EACnB,KAAA,IAAI,GAAG,UAAU;EACrB,GAAA,CAAG,MAAM;EACT,KAAI,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC;OAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC;EACnE,KAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;EACpB,KAAI,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;EAC5B,KAAI,IAAI,WAAW,IAAI,GAAG,EAAE;EAC5B,OAAM,IAAI,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC;EAClH,OAAM,OAAO,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;EAC5B,KAAA;;EAEA,KAAI,IAAI,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,GAAG,+BAA+B,GAAG,GAAG,CAAC;OACjG,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;EACtC,KAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI;EACjC,GAAA;;KAEE,IAAI,IAAI,GAAG,IAAI;EACf,GAAA,IAAI,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;EACvC,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACxC,KAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;EACzB,KAAA,IAAI,OAAO,EAAE;EACX,OAAA,IAAI,IAAI,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;EACvD,OAAM,IAAI,IAAI,MAAM,GAAG,IAAI;EAC3B,KAAA;EACA,GAAA;EACA,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA,CAAA,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE;EAC1B,GAAE,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC;EACzB,GAAE,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;EACxD,CAAA;;;GAGA,SAAS,gBAAgB,CAAC,GAAG,EAAE;EAC/B,GAAE,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;EACrD,CAAA;;;GAGA,SAAS,cAAc,CAAC,GAAG,EAAE;EAC7B,GAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;EACnD,CAAA;;;GAGA,SAAS,iBAAiB,CAAC,GAAG,EAAE;EAChC,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACrD,CAAA;;;GAGA,SAAS,mBAAmB,CAAC,GAAG,EAAE;EAClC,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;EACpD,CAAA;;;;;;;;;;;GC5OA,IAAI,IAAI,GAAGD,WAAA,EAAiB;;EAE5B,CAAA,UAAc,GAAG,YAAY;;GAE7B,SAAS,YAAY,CAAC,GAAG,EAAE;EAC3B,GAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;EACtB,CAAA;;;;;;;;;;;;ECNA,CAAA,IAAI,QAAQ,GAAGE,kBAAA,CAAA,OAAc,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;EAC5D;EACA,GAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;EAC7B,KAAA,EAAE,GAAG,IAAI;EACT,KAAA,IAAI,GAAG,EAAE;EACb,GAAA;;EAEA,GAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE;EACpB,GAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,UAAU,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,WAAW,CAAA,CAAE;KAClE,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,WAAW,CAAA,CAAE;;EAErC,GAAE,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;GAChD,CAAC;;;GAGD,QAAQ,CAAC,QAAQ,GAAG;EAClB,GAAA,eAAe,EAAE,IAAI;EACrB,GAAA,KAAK,EAAE,IAAI;EACX,GAAA,QAAQ,EAAE,IAAI;EACd,GAAA,oBAAoB,EAAE,IAAI;EAC1B,GAAA,aAAa,EAAE,IAAI;EACrB,GAAE,GAAG,EAAE;EACN,EAAA;;GAED,QAAQ,CAAC,aAAa,GAAG;EACvB,GAAA,KAAK,EAAE,IAAI;EACX,GAAA,KAAK,EAAE,IAAI;EACX,GAAA,KAAK,EAAE,IAAI;EACb,GAAE,KAAK,EAAE;EACR,EAAA;;GAED,QAAQ,CAAC,aAAa,GAAG;EACvB,GAAA,WAAW,EAAE,IAAI;EACjB,GAAA,UAAU,EAAE,IAAI;EAChB,GAAA,iBAAiB,EAAE,IAAI;EACzB,GAAE,YAAY,EAAE;EACf,EAAA;;GAED,QAAQ,CAAC,YAAY,GAAG;EACtB,GAAA,OAAO,EAAE,IAAI;EACb,GAAA,IAAI,EAAE,IAAI;EACV,GAAA,KAAK,EAAE,IAAI;EACX,GAAA,QAAQ,EAAE,IAAI;EACd,GAAA,OAAO,EAAE,IAAI;EACb,GAAA,OAAO,EAAE,IAAI;EACb,GAAA,gBAAgB,EAAE,IAAI;EACtB,GAAA,gBAAgB,EAAE,IAAI;EACtB,GAAA,UAAU,EAAE,IAAI;EAChB,GAAA,SAAS,EAAE,IAAI;EACf,GAAA,SAAS,EAAE,IAAI;EACf,GAAA,OAAO,EAAE,IAAI;EACb,GAAA,MAAM,EAAE,IAAI;EACZ,GAAA,QAAQ,EAAE,IAAI;EACd,GAAA,QAAQ,EAAE,IAAI;EACd,GAAA,WAAW,EAAE,IAAI;EACjB,GAAA,aAAa,EAAE,IAAI;EACrB,GAAE,aAAa,EAAE;EAChB,EAAA;;;GAGD,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;EACvH,GAAE,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EACrE,KAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;EAC1F,KAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC5B,OAAM,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;EAC3B,OAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EAC9B,SAAQ,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;EAC3C,WAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;EACzC,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;EAClH,SAAA;EACA,OAAA,CAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE;EAChD,SAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,IAAI,QAAQ,EAAE;EAC3C,WAAU,KAAK,IAAI,IAAI,IAAI,GAAG;EAC9B,aAAY,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;EAC1I,SAAA;SACA,CAAO,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE;WACxF,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC;EAC9F,OAAA;EACA,KAAA;EACA,KAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC;EAC3F,GAAA;EACA,CAAA;;;GAGA,SAAS,aAAa,CAAC,GAAG,EAAE;EAC5B,GAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;EACrD,CAAA;;;;;;;;;;;ECtFA,CAAA,IAAI,GAAG,GAAGF,cAAA;EACV,KAAI,KAAK,GAAGC,oBAAA;EACZ,KAAI,IAAI,GAAGE,WAAA;EACX,KAAI,YAAY,GAAGC,iBAAA;OACf,QAAQ,GAAGC,yBAAA,EAA+B;;EAE9C,CAAA,SAAc,GAAG,OAAO;;GAExB,OAAO,CAAC,WAAW,GAAG,WAAW;GACjC,OAAO,CAAC,QAAQ,GAAG,WAAW;GAC9B,OAAO,CAAC,GAAG,GAAG,UAAU;GACxB,OAAO,CAAC,GAAG,GAAG,UAAU;GACxB,OAAO,CAAC,SAAS,GAAG,SAAS;GAC7B,OAAO,CAAC,MAAM,GAAG,aAAa;;EAE9B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE;EACrC;EACE,GAAA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;EAC9B,GAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;EACjC,KAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;EACvD,UAAS,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;EACzD,GAAA;;KAEE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;EACvC,GAAE,IAAI,MAAM,YAAY,YAAY,EAAE;OAClC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;EACzD,eAAc,MAAM,CAAC;iBACP,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;EACtD,GAAA;;EAEA,GAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;EAC/C,GAAE,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM;EACrB,GAAA,IAAI,GAAG,EAAE;EACX,KAAI,MAAM,GAAG,GAAG,CAAC,MAAM;EACvB,KAAI,IAAI,GAAG,GAAG,CAAC,IAAI;EACnB,KAAI,MAAM,GAAG,GAAG,CAAC,MAAM;EACvB,GAAA;;EAEA,GAAE,IAAI,MAAM,YAAY,YAAY,EAAE;OAClC,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;EACrF,GAAA,CAAG,MAAM,IAAI,MAAM,KAAK,SAAS,EAAE;OAC/B,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;EACrC,WAAA;EACV,WAAU,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;EAC7D,GAAA;;EAEA,GAAE,OAAO,CAAC;EACV,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE;EAClC;EACA,GAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG;EACvB,OAAM,OAAO,GAAG,YAAY,CAAC,CAAC;EAC9B,OAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACpD,GAAE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE;EACnE,KAAI,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC;EAC7B,KAAA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;EAC/B,KAAI,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE;EACnC,OAAM,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;EACzD,KAAA,CAAK,MAAM,IAAI,MAAM,YAAY,YAAY,EAAE;SACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;EAC3C,OAAA,IAAI,GAAG,MAAM;EACnB,KAAA,CAAK,MAAM;EACX,OAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;EAChC,OAAM,IAAI,MAAM,YAAY,YAAY,EAAE;WAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;EACnD,SAAQ,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC;EAClC,WAAU,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;EACvD,SAAA,IAAI,GAAG,MAAM;EACrB,OAAA,CAAO,MAAM;EACL,SAAA;EACR,OAAA;EACA,KAAA;EACA,KAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EACtB,KAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAClD,GAAA;EACA,GAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;EAChE,CAAA;;;EAGA;EACA,CAAA,SAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;EAChD;EACA,GAAE,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;EAC7C,GAAA,IAAI,GAAG,EAAE;EACX,KAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;EAC3B,KAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;EAC3B,KAAI,IAAI,GAAG,GAAG,CAAC,IAAI;EACf,KAAA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;OAC5B,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;EAC3C,KAAI,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;EACrE,GAAA;EACA,CAAA;;;EAGA,CAAA,IAAI,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;EAClH;GACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;EACzD;EACE,GAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,IAAI,EAAE;EAC/C,GAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;KAC1C,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;;EAE3C,GAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,KAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;EACnB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;EACxC,OAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;EAC3B,OAAM,IAAI,MAAM,KAAK,SAAS,EAAE;EAChC,OAAM,IAAI,EAAE;EACZ,OAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;EACvC,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;WACxB,IAAI,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;EAC/C,SAAQ,IAAI,MAAM,CAAC,IAAI,EAAE;aACf,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;EACpD,WAAU,IAAI,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EAC9C,WAAA,IAAI,GAAG,EAAE;EACnB,aAAY,MAAM,GAAG,GAAG,CAAC,MAAM;EAC/B,aAAY,IAAI,GAAG,GAAG,CAAC,IAAI;EAC3B,aAAY,MAAM,GAAG,GAAG,CAAC,MAAM;EAC/B,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;EACA,GAAA;KACE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;EACpD,KAAI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;EACzD,CAAA;;;EAGA,CAAA,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;EACjC,GAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;EAC3B,GAAA,WAAW,EAAE,WAAW;EACxB,GAAA,eAAe,EAAE,eAAe;EAChC,GAAA,UAAU,EAAE,UAAU;EACtB,GAAA,SAAS,EAAE,SAAS;EACpB,GAAA,aAAa,EAAE,YAAY;EAC7B,GAAE,UAAU,EAAE;EACd,EAAC,CAAC;EACF,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;EAClC,GAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK;EACnC,GAAE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC;UAC/D,IAAI,KAAK,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,KAAK;EACnD,CAAA;;;GAGA,SAAS,UAAU,CAAC,MAAM,EAAE;EAC5B,GAAE,IAAI,IAAI;EACV,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EAC7B,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACxC,OAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;EACtB,OAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;EACpE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC5B,OAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,KAAK;EACrC,OAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;EACxB,OAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;EACpE,KAAA;EACA,GAAA;EACA,GAAE,OAAO,IAAI;EACb,CAAA;;;GAGA,SAAS,SAAS,CAAC,MAAM,EAAE;EAC3B,GAAE,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI;EACrB,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EAC7B,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACxC,OAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;SAChB,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC;EAC3D,OAAM,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ;EAC5C,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC5B,OAAM,IAAI,GAAG,IAAI,MAAM,EAAE,OAAO,QAAQ;EACxC,OAAM,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;EAC/B,SAAQ,KAAK,EAAE;EACf,OAAA,CAAO,MAAM;EACb,SAAQ,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC;EAC1B,SAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;EACjE,SAAQ,IAAI,KAAK,IAAI,QAAQ,EAAE,OAAO,QAAQ;EAC9C,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,OAAO,KAAK;EACd,CAAA;;;EAGA,CAAA,SAAS,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE;KAClC,IAAI,SAAS,KAAK,KAAK,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;EAC7C,GAAA,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;EACvB,GAAE,OAAO,YAAY,CAAC,CAAC,CAAC;EACxB,CAAA;;;GAGA,SAAS,YAAY,CAAC,CAAC,EAAE;EACzB,GAAE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;EAC7C,CAAA;;;GAGA,IAAI,mBAAmB,GAAG,OAAO;GACjC,SAAS,WAAW,CAAC,EAAE,EAAE;EACzB,GAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,EAAE;EACtD,CAAA;;;EAGA,CAAA,SAAS,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE;EAChC,GAAE,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;EACpB,GAAA,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAChC,CAAA;;;EAGA;GACA,SAAS,UAAU,CAAC,MAAM,EAAE;KAC1B,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EACjD,GAAE,IAAI,OAAO,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;EAC9B,GAAE,IAAI,SAAS,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KAClD,IAAI,SAAS,GAAG,EAAE;KAClB,IAAI,IAAI,GAAG,IAAI;;KAEf,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE;EAC7H,KAAI,IAAI,OAAO,KAAK,EAAE,EAAE;EACpB,KAAA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;EAC7B,KAAI,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;OACnC,IAAI,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,aAAa;OAC7D,IAAI,QAAQ,KAAK,SAAS;EAC9B,OAAM,QAAQ,IAAI,GAAG,IAAI,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;;EAEhG,KAAI,IAAI,OAAO,EAAE,IAAI,QAAQ,EAAE;EAC/B,OAAM,EAAE,GAAG,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;;EAEhE,OAAA,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;EACjC,OAAM,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;EAChE,OAAM,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;WAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;aAC5B,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC;SAC7E,CAAO,MAAM,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;EAC9C,SAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;EAC1B,WAAU,IAAI,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;eAC7C,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,oCAAoC,CAAC;EAC/E,WAAU,SAAS,CAAC,EAAE,CAAC,GAAG,GAAG;EAC7B,SAAA,CAAS,MAAM;EACf,WAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ;EACnC,SAAA;EACA,OAAA;EACA,KAAA;EACA,KAAI,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM;EAC7B,KAAI,SAAS,CAAC,OAAO,CAAC,GAAG,QAAQ;EACjC,GAAA,CAAG,CAAC;;EAEJ,GAAE,OAAO,SAAS;EAClB,CAAA;;;;;;;;;;;GC3QA,IAAI,OAAO,GAAGL,cAAA,EAAoB;;EAElC,CAAA,aAAc,GAAG;EACjB,GAAE,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC;EAC5C,GAAE,UAAU,EAAE,aAAa,CAAC,eAAe;EAC1C,EAAA;;;GAGD,SAAS,eAAe,CAAC,MAAM,EAAE;EACjC,GAAE,IAAI,CAAC,OAAO,GAAG,mBAAmB;EACpC,GAAE,IAAI,CAAC,MAAM,GAAG,MAAM;EACpB,GAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;EACnC,CAAA;;;EAGA,CAAA,eAAe,CAAC,OAAO,GAAG,UAAU,MAAM,EAAE,GAAG,EAAE;EACjD,GAAE,OAAO,2BAA2B,GAAG,GAAG,GAAG,WAAW,GAAG,MAAM;GACjE,CAAC;;;EAGD,CAAA,SAAS,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE;EAC/C,GAAE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;KAC9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;EAC5C,GAAE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;EAC7E,CAAA;;;GAGA,SAAS,aAAa,CAAC,QAAQ,EAAE;KAC/B,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;EACrD,GAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ;EAC3C,GAAE,OAAO,QAAQ;EACjB,CAAA;;;;;;;;;;;EC/BA,CAAA,uBAAc,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE;EACvC,KAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE;EACxB,KAAI,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;EACxD,KAAI,IAAI,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK;;OAErE,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;WAChC,OAAO,UAAU,IAAI,EAAE;EAC/B,aAAY,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;EACnC,iBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;EACrD,iBAAgB,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;EACrD,iBAAgB,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;eACpC,CAAa;WACb,CAAS;EACT,KAAA,CAAK,EAAE,IAAI,CAAC,GAAG,CAAC;;OAEZ,IAAI,IAAI,GAAG,EAAE;EACjB,KAAI,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI,EAAE;EACtC,SAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;EACtE,aAAY,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;EAChC,SAAA;;EAEA,SAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;EAChC,SAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,MAAM;EAC/E,SAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;WAEzD,IAAI,CAAC,EAAE,GAAG;EAClB,SAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;EACrB,aAAA,GAAG,GAAG,GAAG;EACrB,aAAY,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC9C,iBAAgB,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG;mBACjB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;EACnD,aAAA;eACY,OAAO,GAAG,GAAG,GAAG;EAC5B,SAAA;;EAEA,SAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,OAAO,MAAM;;WAEhC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;eAC3B,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EAC1D,aAAY,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC;EACxE,SAAA;;WAEQ,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EAC3C,SAAQ,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;EACnD,SAAA,GAAG,GAAG,EAAE;EAChB,SAAQ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,aAAY,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;eACjB,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;eAEhC,IAAI,CAAC,KAAK,EAAE;EACxB,aAAY,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG;eACnB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK;EACpD,SAAA;EACA,SAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;EACjC,SAAQ,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG;OAC9B,CAAK,EAAE,IAAI,CAAC;GACZ,CAAC;;;;;;;;;;ECzDD,CAAA,QAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACnE,IAAI,GAAG,GAAG,EAAE;KACZ,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;EACxC,KAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;OAC5E,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC;EACnC,GAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;EAC9B,KAAI,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;EAC1E,KAAA,IAAI,WAAW,EAAE;EACrB,OAAM,IAAI,YAAY,GAAG,mBAAmB,GAAG,WAAW;EAC1D,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;EACxE,YAAW,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC;EACxC,KAAA;EACA,GAAA;EACA,GAAE,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,KAAA,GAAG,IAAI,kBAAkB;EACzB,KAAA,IAAI,MAAM,EAAE;EAChB,OAAM,EAAE,CAAC,KAAK,GAAG,IAAI;EACf,OAAA,GAAG,IAAI,QAAQ;EACrB,KAAA;EACI,KAAA,GAAG,IAAI,uFAAuF;EAClG,KAAI,IAAI,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;SACtD,GAAG,IAAI,GAAG,IAAI,iBAAiB,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG;EAC1D,KAAA;EACA,GAAA;EACA,GAAE,IAAI,OAAO,EAAE,CAAC,MAAM,IAAI,SAAS,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;OACtE,IAAI,QAAQ,GAAG,cAAc;EACjC,KAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACvB,KAAI,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,KAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACrC,KAAI,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;OAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,KAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EAC1C,KAAI,IAAI,aAAa;EACjB,KAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACzC,KAAI,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC/B,KAAI,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,EAAE;EAC7B,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,SAAA,aAAa,GAAG,IAAI;EAC5B,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY;EAChD,OAAA;EACA,OAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACvC,OAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,GAAG,GAAG,EAAE,CAAC;EACf,OAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACrC,SAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EACvM,SAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,WAAA,GAAG,IAAI,0CAA0C;EAC3D,SAAA;EACA,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC7B,WAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACnH,SAAA;EACQ,SAAA,GAAG,IAAI,KAAK;EACpB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,MAAM;EACrB,OAAA;SACM,IAAI,KAAK,GAAG,GAAG;EACrB,OAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC5B,OAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC9C;EACA,SAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;EACtB,WAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAClE,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACvE,SAAA;EACA,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACvH,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,SAAA,IAAI,MAAM,EAAE;EACV,WAAA,GAAG,IAAI,gBAAgB;EACjC,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,wCAAwC;EACzD,SAAA;EACA,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW;EAC/C,OAAA;EACA,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,OAAA,GAAG,IAAI,uBAAuB;EACpC,KAAA;EACA,KAAI,OAAO,GAAG;EACd,GAAA;EACA,GAAE,IAAI,EAAE,CAAC,KAAK,EAAE;EAChB,KAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACvB,OAAM,IAAI,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC;EACzB,OAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;EAC3B,OAAA,KAAK,GAAG,MAAM;OAChB,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;OAC/D,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM;OAClC,OAAO,EAAE,CAAC,KAAK;EACnB,KAAI,EAAE,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;EACrB,KAAA,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;SACpF,IAAI,WAAW,GAAG,uCAAuC;EAC/D,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;EACvE,YAAW,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC;EACvC,KAAA;EACI,KAAA,GAAG,IAAI,uBAAuB;EAC9B,KAAA,GAAG,IAAI,uBAAuB;EAC9B,KAAA,GAAG,IAAI,gDAAgD;EAC3D,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACvB,OAAM,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC7B,OAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,KAAI,IAAI,GAAG,EAAE,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC;EACvD,KAAI,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;EAC3E,KAAI,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,YAAY;EAC/C,GAAA;EACA,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,KAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EAClC,KAAA,eAAe,GAAG,EAAE;EACpB,KAAA,eAAe,GAAG,EAAE;EACxB,GAAE,IAAI,aAAa;EACnB,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI;EAClC,KAAI,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;EAC7C,GAAE,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;EAClE,KAAA,IAAI,YAAY,EAAE;EACtB,OAAM,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;EACrF,KAAA,CAAK,MAAM,IAAI,WAAW,IAAI,MAAM,EAAE;EACtC,OAAM,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;EACnC,OAAA,YAAY,GAAG,IAAI;EACzB,KAAA;EACA,GAAA;EACE,GAAA,IAAI,YAAY,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE;EAC/C,KAAI,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;EAC5B,KAAA,YAAY,GAAG,KAAK;EACxB,GAAA;EACE,GAAA,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,EAAE;EAClC,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,EAAE;SAChC,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,EAAE,CAAC,aAAa,GAAG,2BAA2B,CAAC;OAC5H,CAAK,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;EACtC,OAAA,YAAY,GAAG,KAAK;EAC1B,OAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC;EAC3F,KAAA;EACA,GAAA;EACA,GAAE,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC9C,KAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;EAC7D,GAAA;EACE,GAAA,IAAI,WAAW,EAAE;EACnB,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;EAC7B,OAAM,IAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;EAClF,KAAA;OACI,IAAI,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;EACjD,KAAI,IAAI,cAAc,IAAI,YAAY,IAAI,WAAW,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE;EAClH,OAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;EAC/C,SAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;EACnD,OAAM,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;EAC/C,SAAQ,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;EACnD,SAAQ,OAAO,GAAG,YAAY,GAAG,gBAAgB,GAAG,eAAe;SAC7D,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,MAAM;EAC7F,OAAA,IAAI,cAAc,EAAE;EAC1B,SAAQ,IAAI,SAAS,GAAG,UAAU,GAAG,IAAI;EACzC,WAAU,QAAQ,GAAG,SAAS,GAAG,IAAI;EACrC,SAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,gBAAgB;EAChG,SAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;EAC5C,WAAU,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,MAAM;EAC7U,SAAA;EACA,SAAQ,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB;WAClD,IAAI,IAAI,GAAG,cAAc;EACzB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE;EAC5B,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACjC,aAAY,IAAI,KAAK,IAAI,QAAQ,EAAE;EACnC,eAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,mBAAmB,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,WAAW;eACrN,CAAa,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;EAChE,eAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,GAAG;EAChM,eAAc,IAAI,KAAK,IAAI,SAAS,EAAE;EACtC,iBAAgB,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO;EACnD,eAAA;EACA,eAAc,GAAG,IAAI,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI;EACjE,aAAA,CAAa,MAAM,IAAI,KAAK,IAAI,SAAS,EAAE;EAC3C,eAAc,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,mBAAmB,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,QAAQ,CAAC,GAAG,WAAW;EAC5O,aAAA,CAAa,MAAM,IAAI,KAAK,IAAI,MAAM,EAAE;iBAC1B,GAAG,IAAI,YAAY,IAAI,KAAK,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,QAAQ,CAAC,GAAG,WAAW;EAC5I,aAAA,CAAa,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,EAAE;EAC3E,eAAc,GAAG,IAAI,YAAY,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,oBAAoB,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK;EAClN,aAAA;EACA,WAAA;EACA,SAAA;EACQ,SAAA,GAAG,IAAI,YAAY;EAC3B,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB;EACtM,WAAA,IAAI,YAAY,EAAE;eAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC/C,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EACrC,WAAA;EACU,WAAA,GAAG,IAAI,OAAO;EACd,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,0BAA0B;EACjC,aAAA,IAAI,YAAY,EAAE;iBAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACjD,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EACvC,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACA,SAAQ,GAAG,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,qBAAqB;EAC7D,SAAQ,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;aACzE,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB;EAC1F,SAAQ,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,IAAI;WAChD,IAAI,CAAC,QAAQ,EAAE;EACvB,WAAU,GAAG,IAAI,MAAM,IAAI,WAAW,CAAC,GAAG,iBAAiB;EAC3D,SAAA;EACA,SAAQ,GAAG,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,MAAM,IAAI,QAAQ,CAAC,GAAG,MAAM;EAC/F,OAAA,CAAO,MAAM;EACb,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB;EACtM,WAAA,IAAI,YAAY,EAAE;eAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC/C,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EACrC,WAAA;EACU,WAAA,GAAG,IAAI,OAAO;EACd,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,0BAA0B;EACjC,aAAA,IAAI,YAAY,EAAE;iBAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACjD,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EACvC,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACA,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA;EACA,GAAA;KACE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;EACnC,KAAA,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG;EACvD,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,oBAAoB;EAC3B,OAAA,IAAI,IAAI,EAAE;EACR,SAAA,GAAG,IAAI,GAAG;EAClB,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC;EAC/B,OAAA;EACM,OAAA,GAAG,IAAI,MAAM;EACb,OAAA,eAAe,IAAI,GAAG;EAC5B,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACnB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,WAAW,EAAE,EAAE,GAAG,EAAE;EAC9B,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC5B,OAAM,OAAO,EAAE,GAAG,EAAE,EAAE;EACtB,SAAQ,WAAW,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACnC,SAAQ,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;EAC1C,WAAU,IAAI,WAAW,CAAC,IAAI,EAAE;eACpB,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,MAAM;EAC7G,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;EACnC,aAAY,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;EACtE,eAAc,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU;EAChD,iBAAgB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;iBACpC,IAAI,IAAI,GAAG,WAAW;EACtB,eAAA,IAAI,IAAI,EAAE;EACxB,iBAAgB,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACzC,mBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EACtC,iBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;EAChC,mBAAkB,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC9C,mBAAkB,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;EAClD,mBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;EAClD,qBAAoB,IAAI,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;EAC7E,qBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;EAC1C,uBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;EAClD,yBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS;EAChF,yBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;EACzF,8BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC;EACzD,uBAAA;EACA,qBAAA,CAAqB,MAAM;EAC3B,uBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB;EAChD,uBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;EAC1D,yBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY;EAClG,uBAAA;EACA,uBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK;EAClC,uBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;EAC3D,yBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG;EACxE,uBAAA,CAAuB,MAAM;EAC7B,yBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG;EACzE,uBAAA;EACsB,uBAAA,GAAG,IAAI,IAAI;EACjC,qBAAA;EACA,mBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA,CAAa,MAAM,IAAI,WAAW,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;EACtF,eAAc,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK;EAC1B,eAAA,IAAI,IAAI,EAAE;EACxB,iBAAgB,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;EACjC,mBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EACtC,iBAAgB,OAAO,EAAE,GAAG,EAAE,EAAE;EAChC,mBAAkB,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACtC,mBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;uBAC9B,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC1D,qBAAoB,IAAI,EAAE,CAAC,aAAa,EAAE;EAC1C,uBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;EAClD,yBAAwB,IAAI,WAAW,GAAG,0BAA0B,GAAG,SAAS;EAChF,yBAAwB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;EACzF,8BAA6B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC;EACzD,uBAAA;EACA,qBAAA,CAAqB,MAAM;EAC3B,uBAAsB,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB;EAChD,uBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;EAC1D,yBAAwB,GAAG,IAAI,MAAM,IAAI,SAAS,CAAC,GAAG,eAAe,IAAI,SAAS,CAAC,GAAG,YAAY;EAClG,uBAAA;EACA,uBAAsB,GAAG,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,KAAK;EAClC,uBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;EAC3D,yBAAwB,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG;EACxE,uBAAA,CAAuB,MAAM;EAC7B,yBAAwB,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG;EACzE,uBAAA;EACsB,uBAAA,GAAG,IAAI,IAAI;EACjC,qBAAA;EACA,mBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA;EACA,WAAA;EACA,WAAU,IAAI,IAAI,GAAG,WAAW,CAAC,KAAK;EAC5B,WAAA,IAAI,IAAI,EAAE;EACpB,aAAY,IAAI,KAAK,EAAE,EAAE,GAAG,EAAE;EAC9B,eAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAClC,aAAY,OAAO,EAAE,GAAG,EAAE,EAAE;EAC5B,eAAc,KAAK,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACnC,eAAc,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;EACzC,iBAAgB,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC;EAC3D,iBAAA,IAAI,KAAK,EAAE;EAC3B,mBAAkB,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG;EAC1B,mBAAA,IAAI,aAAa,EAAE;EACjB,qBAAA,eAAe,IAAI,GAAG;EAC1C,mBAAA;EACA,iBAAA;EACA,eAAA;EACA,aAAA;EACA,WAAA;EACU,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG;EACpC,aAAA,eAAe,GAAG,EAAE;EAChC,WAAA;EACA,WAAU,IAAI,WAAW,CAAC,IAAI,EAAE;EACpB,aAAA,GAAG,IAAI,KAAK;eACZ,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;EACtE,eAAA,GAAG,IAAI,UAAU;EAC/B,eAAc,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;EACvD,iBAAgB,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;EAC3D,eAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EAC/C,eAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpB,GAAG,GAAG,EAAE,CAAC;EACvB,eAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EAC7C,iBAAgB,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,uBAAuB;EACtM,iBAAA,IAAI,YAAY,EAAE;qBAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACrD,iBAAA,CAAiB,MAAM;EACvB,mBAAkB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EAC3C,iBAAA;EACgB,iBAAA,GAAG,IAAI,OAAO;EACd,iBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,mBAAA,GAAG,IAAI,0BAA0B;EACjC,mBAAA,IAAI,YAAY,EAAE;uBAChB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACvD,mBAAA,CAAmB,MAAM;EACzB,qBAAoB,GAAG,IAAI,EAAE,IAAI,WAAW,CAAC;EAC7C,mBAAA;EACkB,mBAAA,GAAG,IAAI,KAAK;EAC9B,iBAAA;EACA,iBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACrC,mBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC1J,iBAAA;EACgB,iBAAA,GAAG,IAAI,KAAK;EAC5B,eAAA,CAAe,MAAM;EACL,iBAAA,GAAG,IAAI,MAAM;EAC7B,eAAA;iBACc,IAAI,KAAK,GAAG,GAAG;EAC7B,eAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACpC,eAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EACtD;EACA,iBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;EAC9B,mBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC1E,iBAAA,CAAiB,MAAM;EACvB,mBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EAC/E,iBAAA;EACA,eAAA,CAAe,MAAM;EACrB,iBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EAC/H,eAAA;EACc,eAAA,GAAG,IAAI,KAAK;EAC1B,aAAA;EACA,WAAA;EACU,WAAA,IAAI,aAAa,EAAE;EACjB,aAAA,GAAG,IAAI,kBAAkB;EACzB,aAAA,IAAI,IAAI,EAAE;EACR,eAAA,GAAG,IAAI,GAAG;EACxB,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,OAAO,IAAI,IAAI,CAAC;EACrC,aAAA;EACY,aAAA,GAAG,IAAI,MAAM;EACb,aAAA,eAAe,IAAI,GAAG;EAClC,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;EACA,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACrB,KAAI,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG;EACxC,GAAA;EACE,GAAA,IAAI,IAAI,EAAE;EACR,KAAA,IAAI,MAAM,EAAE;EACV,OAAA,GAAG,IAAI,4CAA4C;EACnD,OAAA,GAAG,IAAI,4CAA4C;EACzD,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,8BAA8B;EACrC,OAAA,GAAG,IAAI,8BAA8B;EAC3C,KAAA;EACI,KAAA,GAAG,IAAI,sBAAsB;EACjC,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,GAAG;EACpE,GAAA;;EAEA,GAAE,SAAS,eAAe,CAAC,WAAW,EAAE;EACxC,KAAI,IAAI,KAAK,GAAG,WAAW,CAAC,KAAK;EACjC,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;SACnC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI;EAC/C,GAAA;;EAEA,GAAE,SAAS,cAAc,CAAC,KAAK,EAAE;EAC7B,KAAA,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,UAAU,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC;EAC5G,GAAA;;EAEA,GAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE;EAC7C,KAAI,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU;EAC/B,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;EACxC,OAAM,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,IAAI;EACvD,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;;EC/dA,CAAA,IAAI,OAAO,GAAGA,cAAA;EACd,KAAI,IAAI,GAAGC,WAAA;EACX,KAAI,YAAY,GAAGE,oBAAA;OACf,eAAe,GAAGC,8BAAA,EAAqC;;GAE3D,IAAI,iBAAiB,GAAGC,eAAA,EAA4B;;EAEpD;EACA;EACA;;EAEA,CAAA,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU;GAChC,IAAI,KAAK,GAAGC,oBAAA,EAA0B;;EAEtC;EACA,CAAA,IAAI,eAAe,GAAG,YAAY,CAAC,UAAU;;EAE7C,CAAA,SAAc,GAAG,OAAO;;;EAGxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE;EAClD;EACA;EACE,GAAA,IAAI,IAAI,GAAG;SACP,IAAI,GAAG,IAAI,CAAC;SACZ,MAAM,GAAG,EAAE,SAAS;EAC1B,OAAM,IAAI,GAAG;EACb,OAAM,QAAQ,GAAG;EACjB,OAAM,YAAY,GAAG;EACrB,OAAM,QAAQ,GAAG;EACjB,OAAM,YAAY,GAAG;EACf,OAAA,WAAW,GAAG,EAAE;;EAEtB,GAAE,SAAS,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE;OAChC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY;OACtD,OAAO,aAAa,GAAG,CAAC,GAAG,KAAK,GAAG,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;EACjG,GAAA;;EAEA,GAAE,IAAI,GAAG,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;;EAE/D,GAAE,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;KACvD,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;KAC7C,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,WAAW,CAAC,YAAY,GAAG,YAAY;;EAElE,GAAE,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;EAC7B,GAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;;EAExB,GAAE,IAAI;EACN,KAAI,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;EACzD,KAAI,WAAW,CAAC,QAAQ,GAAG,CAAC;EAC5B,KAAI,IAAI,EAAE,GAAG,WAAW,CAAC,YAAY;EACjC,KAAA,IAAI,EAAE,EAAE;EACZ,OAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC1B,OAAM,EAAE,CAAC,MAAM,GAAG,IAAI;EACtB,OAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;EACtB,OAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC1B,OAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;EACtB,OAAM,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;SACpB,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC/C,KAAA;EACA,KAAI,OAAO,CAAC;EACZ,GAAA,CAAG,SAAS;OACR,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;EACjD,GAAA;;EAEA;EACE,GAAA,SAAS,YAAY,GAAG;EAC1B;EACA,KAAI,IAAI,QAAQ,GAAG,WAAW,CAAC,QAAQ;OACnC,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EAChD,KAAI,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;EACzC,KAAI,OAAO,MAAM;EACjB,GAAA;;KAEE,SAAS,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE;EAC3D,KAAI,IAAI,MAAM,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC;EAC7D,KAAI,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;EACnC,OAAM,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;;EAElE,KAAI,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI;;EAExC,KAAI,IAAI,UAAU,GAAG,iBAAiB,CAAC;EACjC,OAAA,KAAK,EAAE,IAAI;EACX,OAAA,MAAM,EAAE,OAAO;EACf,OAAA,MAAM,EAAE,MAAM;EACd,OAAA,MAAM,EAAE,MAAM;EACd,OAAA,IAAI,EAAE,KAAK;EACX,OAAA,UAAU,EAAE,EAAE;EACd,OAAA,aAAa,EAAE,GAAG;EAClB,OAAA,SAAS,EAAE,IAAI;EACrB,OAAM,eAAe,EAAE,YAAY,CAAC,UAAU;EACxC,OAAA,KAAK,EAAE,KAAK;EACZ,OAAA,QAAQ,EAAE,iBAAiB;EAC3B,OAAA,IAAI,EAAE,IAAI;EACV,OAAA,OAAO,EAAE,OAAO;EAChB,OAAA,UAAU,EAAE,UAAU;EACtB,OAAA,UAAU,EAAE,UAAU;EACtB,OAAA,UAAU,EAAE,UAAU;EACtB,OAAA,aAAa,EAAE,aAAa;EAC5B,OAAA,IAAI,EAAE,IAAI;EACV,OAAA,OAAO,EAAE,OAAO;EACtB,OAAM,MAAM,EAAE,IAAI,CAAC,MAAM;EACzB,OAAM,IAAI,EAAE;EACZ,MAAK,CAAC;;EAEN,KAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW;wBACjD,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc;EACnF,sBAAqB,UAAU;;EAE/B,KAAI,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC;EAC5E;EACA,KAAI,IAAI,QAAQ;EAChB,KAAI,IAAI;EACR,OAAM,IAAI,YAAY,GAAG,IAAI,QAAQ;EACrC,SAAQ,MAAM;EACd,SAAQ,OAAO;EACf,SAAQ,SAAS;EACjB,SAAQ,MAAM;EACd,SAAQ,QAAQ;EAChB,SAAQ,UAAU;EAClB,SAAQ,aAAa;EACrB,SAAQ,OAAO;EACf,SAAQ,YAAY;EACpB,SAAQ,iBAAiB;EACzB,SAAQ,QAAQ;EACR,SAAA;EACD,QAAA;;EAED,OAAA,QAAQ,GAAG,YAAY;EAC7B,SAAQ,IAAI;EACZ,SAAQ,KAAK;EACb,SAAQ,OAAO;EACf,SAAQ,IAAI;EACZ,SAAQ,MAAM;EACd,SAAQ,QAAQ;EAChB,SAAQ,WAAW;EACnB,SAAQ,KAAK;EACb,SAAQ,UAAU;EAClB,SAAQ,eAAe;EACvB,SAAQ,IAAI,CAAC;EACN,QAAA;;EAEP,OAAM,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ;OAC1B,CAAK,CAAC,MAAM,CAAC,EAAE;SACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAU,CAAC;EAC7E,OAAM,MAAM,CAAC;EACb,KAAA;;EAEA,KAAI,QAAQ,CAAC,MAAM,GAAG,OAAO;EAC7B,KAAI,QAAQ,CAAC,MAAM,GAAG,IAAI;EAC1B,KAAI,QAAQ,CAAC,IAAI,GAAG,IAAI;EACxB,KAAI,QAAQ,CAAC,MAAM,GAAG,MAAM;EACxB,KAAA,QAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK;EAC7C,KAAI,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI;EACtC,KAAI,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;SAC5B,QAAQ,CAAC,MAAM,GAAG;EAChB,SAAA,IAAI,EAAE,UAAU;EAChB,SAAA,QAAQ,EAAE,QAAQ;EAC1B,SAAQ,QAAQ,EAAE;EACX,QAAA;EACP,KAAA;;EAEA,KAAI,OAAO,QAAQ;EACnB,GAAA;;EAEE,GAAA,SAAS,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;OACvC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;EAClC,KAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;OACxB,IAAI,OAAO,EAAE,OAAO;EACxB,KAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;EAChC,OAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;EAChC,OAAM,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,GAAG;EAC1C,OAAM,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;EAC1C,KAAA;EACA,KAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;EACxB,OAAA,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;EACpC,OAAM,IAAI,SAAS,KAAK,SAAS,EAAE;EACnC,SAAQ,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;EACxC,SAAQ,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;EAC3C,SAAQ,OAAO,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC;EAC5C,OAAA;EACA,KAAA;;EAEA,KAAI,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC;EAC9B,KAAI,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC;EACvD,KAAI,IAAI,CAAC,KAAK,SAAS,EAAE;EACnB,OAAA,IAAI,WAAW,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC;EAC7C,OAAA,IAAI,WAAW,EAAE;WACf,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU;EAC5C,eAAA;EACd,eAAc,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;EACtE,OAAA;EACA,KAAA;;EAEA,KAAI,IAAI,CAAC,KAAK,SAAS,EAAE;SACnB,cAAc,CAAC,GAAG,CAAC;EACzB,KAAA,CAAK,MAAM;EACX,OAAM,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;EAC7B,OAAM,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC;EACpC,KAAA;EACA,GAAA;;EAEA,GAAE,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE;EAC/B,KAAI,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM;EAC7B,KAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;EACrB,KAAI,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;OACjB,OAAO,QAAQ,GAAG,KAAK;EAC3B,GAAA;;EAEA,GAAE,SAAS,cAAc,CAAC,GAAG,EAAE;EAC/B,KAAI,OAAO,IAAI,CAAC,GAAG,CAAC;EACpB,GAAA;;EAEA,GAAE,SAAS,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE;EACnC,KAAI,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;EACzB,KAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;EACrB,GAAA;;EAEA,GAAE,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;EACjC,KAAA,OAAO,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI;iBAC3C,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;EACxD,eAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;EAC/D,GAAA;;EAEA,GAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;EAChC,KAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;EACtC,KAAI,IAAI,KAAK,KAAK,SAAS,EAAE;SACvB,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM;EACtD,OAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ;EAChC,KAAA;OACI,OAAO,SAAS,GAAG,KAAK;EAC5B,GAAA;;EAEA,GAAE,SAAS,UAAU,CAAC,KAAK,EAAE;EACzB,KAAA,QAAQ,OAAO,KAAK;EACxB,OAAM,KAAK,SAAS;EACpB,OAAM,KAAK,QAAQ;WACX,OAAO,EAAE,GAAG,KAAK;EACzB,OAAM,KAAK,QAAQ;EACnB,SAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;EACzC,OAAM,KAAK,QAAQ;EACnB,SAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,OAAO,MAAM;EACzC,SAAQ,IAAI,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC;EAC7C,SAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;EAC1C,SAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;aACvB,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM;EAC1D,WAAU,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK;EACjC,SAAA;WACQ,OAAO,SAAS,GAAG,KAAK;EAChC;EACA,GAAA;;KAEE,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE;EACrD,KAAA,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,EAAE;EAC7C,OAAM,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;SACvC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,OAAO,EAAE;EAChD,SAAQ,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;EAC1E,OAAA,CAAO,CAAC;EACR,SAAQ,MAAM,IAAI,KAAK,CAAC,iDAAiD,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;EAE3F,OAAM,IAAI,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc;EACnD,OAAA,IAAI,cAAc,EAAE;EAC1B,SAAQ,IAAI,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;WAClC,IAAI,CAAC,KAAK,EAAE;EACpB,WAAU,IAAI,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC;EAC9F,WAAU,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;EAC5E,gBAAe,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;EACvC,SAAA;EACA,OAAA;EACA,KAAA;;EAEA,KAAI,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;EAClC,SAAQ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;EACjC,SAAQ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK;;EAErC,KAAI,IAAI,QAAQ;EACZ,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;OAC7D,CAAK,MAAM,IAAI,KAAK,EAAE;EACtB,OAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;EAC3D,OAAM,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;OAC5E,CAAK,MAAM,IAAI,MAAM,EAAE;EACvB,OAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;EAC1E,KAAA,CAAK,MAAM;EACX,OAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ;SACnC,IAAI,CAAC,QAAQ,EAAE;EACrB,KAAA;;OAEI,IAAI,QAAQ,KAAK,SAAS;SACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC;;EAE/E,KAAI,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM;EAClC,KAAI,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ;;EAEjC,KAAI,OAAO;EACX,OAAM,IAAI,EAAE,YAAY,GAAG,KAAK;EAChC,OAAM,QAAQ,EAAE;EACX,MAAA;EACL,GAAA;EACA,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;EAC9C;EACA,GAAE,IAAI,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;EACxD,GAAE,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE;EAC1D,GAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;EACnC,GAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG;EAC1B,KAAA,MAAM,EAAE,MAAM;EACd,KAAA,IAAI,EAAE,IAAI;EACd,KAAI,MAAM,EAAE;EACT,IAAA;KACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;EAC3C,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;EAC5C;EACA,GAAE,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;EACpD,GAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC7C,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;EACzC;EACA,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC9C,KAAA,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;EAC7B,KAAA,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC;EAC5E,GAAA;EACE,GAAA,OAAO,EAAE;EACX,CAAA;;;GAGA,SAAS,WAAW,CAAC,CAAC,EAAE;KACtB,OAAO,aAAa,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI;EACtD,CAAA;;;EAGA,CAAA,SAAS,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;EAC/B,GAAE,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,IAAI;EAClF,CAAA;;;GAGA,SAAS,cAAc,CAAC,CAAC,EAAE;KACzB,OAAO,gBAAgB,GAAG,CAAC,GAAG,iBAAiB,GAAG,CAAC,GAAG,IAAI;EAC5D,CAAA;;;EAGA,CAAA,SAAS,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;EAC9B,GAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE;KAC1B,IAAI,IAAI,GAAG,EAAE;EACf,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;EACjC,KAAI,IAAI,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;EAC7B,GAAE,OAAO,IAAI;EACb,CAAA;;;;;;;;;;;;;ECjYA,CAAA,IAAI,KAAK,GAAGC,KAAA,CAAA,OAAc,GAAG,SAAS,KAAK,GAAG;EAC9C,GAAE,IAAI,CAAC,MAAM,GAAG,EAAE;GAClB,CAAC;;;GAGD,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE;EACrD,GAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;GAC1B,CAAC;;;GAGD,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;EAC9C,GAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;GACzB,CAAC;;;GAGD,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE;EAC9C,GAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;GACzB,CAAC;;;EAGD,CAAA,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,WAAW,GAAG;EAC/C,GAAE,IAAI,CAAC,MAAM,GAAG,EAAE;GAClB,CAAC;;;;;;;;;;;GCvBD,IAAI,IAAI,GAAGP,WAAA,EAAiB;;GAE5B,IAAI,IAAI,GAAG,4BAA4B;EACvC,CAAA,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;GAClD,IAAI,IAAI,GAAG,yDAAyD;GACpE,IAAI,QAAQ,GAAG,uGAAuG;GACtH,IAAI,GAAG,GAAG,8nCAA8nC;GACxoC,IAAI,MAAM,GAAG,woCAAwoC;EACrpC;GACA,IAAI,WAAW,GAAG,mLAAmL;EACrM;EACA;EACA;EACA;GACA,IAAI,GAAG,GAAG,+qDAA+qD;GACzrD,IAAI,IAAI,GAAG,8DAA8D;GACzE,IAAI,YAAY,GAAG,2BAA2B;GAC9C,IAAI,yBAAyB,GAAG,8DAA8D;GAC9F,IAAI,qBAAqB,GAAG,kDAAkD;;;EAG9E,CAAA,SAAc,GAAG,OAAO;;GAExB,SAAS,OAAO,CAAC,IAAI,EAAE;EACrB,GAAA,IAAI,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM;KACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EACjC,CAAA;;;GAGA,OAAO,CAAC,IAAI,GAAG;EACf;EACE,GAAA,IAAI,EAAE,4BAA4B;EACpC;EACE,GAAA,IAAI,EAAE,6EAA6E;EACnF,GAAA,WAAW,EAAE,yGAAyG;EACxH;EACE,GAAA,GAAG,EAAE,4CAA4C;EACjD,GAAA,eAAe,EAAE,yEAAyE;EAC1F,GAAA,cAAc,EAAE,WAAW;EAC3B,GAAA,GAAG,EAAE,GAAG;EACV;EACA;EACA;EACE,GAAA,KAAK,EAAE,kHAAkH;EACzH,GAAA,QAAQ,EAAE,QAAQ;EACpB;EACE,GAAA,IAAI,EAAE,2EAA2E;EACnF;EACE,GAAA,IAAI,EAAE,opCAAopC;EAC1pC,GAAA,KAAK,EAAE,KAAK;EACd;EACE,GAAA,IAAI,EAAE,IAAI;EACZ;EACA;EACE,GAAA,cAAc,EAAE,YAAY;EAC5B,GAAA,2BAA2B,EAAE,yBAAyB;EACxD;EACA,GAAE,uBAAuB,EAAE;EAC1B,EAAA;;;GAGD,OAAO,CAAC,IAAI,GAAG;EACb,GAAA,IAAI,EAAE,IAAI;EACV,GAAA,IAAI,EAAE,IAAI;EACV,GAAA,WAAW,EAAE,SAAS;EACtB,GAAA,GAAG,EAAE,GAAG;EACR,GAAA,eAAe,EAAE,MAAM;EACvB,GAAA,cAAc,EAAE,WAAW;EAC3B,GAAA,GAAG,EAAE,GAAG;EACR,GAAA,KAAK,EAAE,0IAA0I;EACjJ,GAAA,QAAQ,EAAE,QAAQ;EAClB,GAAA,IAAI,EAAE,2EAA2E;EACjF,GAAA,IAAI,EAAE,opCAAopC;EAC1pC,GAAA,KAAK,EAAE,KAAK;EACZ,GAAA,IAAI,EAAE,IAAI;EACV,GAAA,cAAc,EAAE,YAAY;EAC5B,GAAA,2BAA2B,EAAE,yBAAyB;EACxD,GAAE,uBAAuB,EAAE;EAC1B,EAAA;;;GAGD,SAAS,UAAU,CAAC,IAAI,EAAE;EAC1B;EACA,GAAE,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC;EACjE,CAAA;;;GAGA,SAAS,IAAI,CAAC,GAAG,EAAE;EACnB;EACE,GAAA,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;EAC/B,GAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK;;EAE5B,GAAE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;EACxB,GAAE,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;EACzB,GAAE,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;;KAErB,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;EAC9C,WAAU,GAAG,KAAK,KAAK,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;EACpE,CAAA;;;EAGA,CAAA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;EACvB,GAAA,IAAI,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;EAC/B,GAAE,IAAI,CAAC,OAAO,EAAE,OAAO,KAAK;;EAE5B,GAAE,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;EACvB,GAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;EACzB,GAAE,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;EACzB,GAAE,IAAI,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;EAC3B,GAAE,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE;cAC1C,IAAI,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC;EACtD,WAAU,CAAC,IAAI,IAAI,QAAQ,CAAC;EAC5B,CAAA;;;GAGA,IAAI,mBAAmB,GAAG,OAAO;GACjC,SAAS,SAAS,CAAC,GAAG,EAAE;EACxB;EACE,GAAA,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC;KAC7C,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;EAC7E,CAAA;;;GAGA,IAAI,gBAAgB,GAAG,MAAM;GAC7B,SAAS,GAAG,CAAC,GAAG,EAAE;EAClB;EACA,GAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;EACpD,CAAA;;;GAGA,IAAI,QAAQ,GAAG,UAAU;GACzB,SAAS,KAAK,CAAC,GAAG,EAAE;KAClB,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;EACtC,GAAE,IAAI;EACN,KAAI,IAAI,MAAM,CAAC,GAAG,CAAC;EACnB,KAAI,OAAO,IAAI;KACf,CAAG,CAAC,MAAM,CAAC,EAAE;EACb,KAAI,OAAO,KAAK;EAChB,GAAA;EACA,CAAA;;;;;;;;;;EC5IA,CAAA,GAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAC9D,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;KACjC,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;KAC3B,IAAI,MAAM,EAAE,QAAQ;EACpB,GAAA,IAAI,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,IAAI,EAAE;EACzC,KAAI,IAAI,EAAE,CAAC,MAAM,EAAE;EACnB,OAAM,MAAM,GAAG,EAAE,CAAC,KAAK;EACjB,OAAA,QAAQ,GAAG,UAAU;EAC3B,KAAA,CAAK,MAAM;SACL,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;EACvC,OAAA,QAAQ,GAAG,gBAAgB;EACjC,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC;EAC9D,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;EAC/B,OAAM,IAAI,QAAQ,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;EAC7D,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;EACzC,SAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;EACjC,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO;EAChO,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC1C,aAAY,GAAG,IAAI,2CAA2C,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;EACxG,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;eACnB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACzJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACQ,SAAA,IAAI,aAAa,EAAE;EACjB,WAAA,GAAG,IAAI,gBAAgB;EACjC,SAAA;SACA,CAAO,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;EAClD,SAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;EACxB,SAAA,IAAI,aAAa,EAAE;EACjB,WAAA,GAAG,IAAI,eAAe;EAChC,SAAA;EACA,OAAA,CAAO,MAAM;EACb,SAAQ,MAAM,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;EAClE,OAAA;EACA,KAAA,CAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;SACzB,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC1B,GAAG,CAAC,KAAK,EAAE;EACjB,OAAM,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EAC1C,OAAM,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;EACjC,OAAM,GAAG,CAAC,UAAU,GAAG,EAAE;EACzB,OAAM,GAAG,CAAC,aAAa,GAAG,OAAO;EACjC,OAAM,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC;EAC7E,OAAM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG;EAC1B,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EAC9C,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;EAChF,OAAM,QAAQ,GAAG,OAAO,CAAC,IAAI;EAC7B,KAAA;EACA,GAAA;EACE,GAAA,IAAI,QAAQ,EAAE;EAChB,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;EACpB,KAAA,GAAG,GAAG,EAAE;EACZ,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;EAC7B,OAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,cAAc;EAC9C,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI;EACpC,KAAA;EACA,KAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,sBAAsB;EACjD,KAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;EAC9B,OAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;EACnC,KAAA;EACA,KAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;SACzE,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB;EACtF,KAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,eAAe;OAC9E,IAAI,cAAc,GAAG,GAAG;EAC5B,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACtB,KAAA,IAAI,MAAM,EAAE;SACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;EACxE,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI;EACxC,OAAA;EACA,OAAM,GAAG,IAAI,eAAe,IAAI,cAAc,CAAC,GAAG,IAAI;EAChD,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,WAAW;EAC3C,OAAA;EACM,OAAA,GAAG,IAAI,2KAA2K;EAClL,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY;EAC5C,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EACZ,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM;EAC1C,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,QAAQ,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,QAAQ,CAAC,GAAG,yCAAyC,IAAI,QAAQ,CAAC,GAAG,uCAAuC;EAC3L,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,GAAG,IAAI,UAAU;EACzB,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC1HA,CAAA,KAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAChE,IAAI,GAAG,GAAG,GAAG;EACb,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;KACtC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;EAC7B,KAAA,gBAAgB,GAAG,IAAI;KACzB,IAAI,IAAI,GAAG,OAAO;EAClB,GAAA,IAAI,IAAI,EAAE;EACZ,KAAI,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;EACrB,OAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC1B,KAAI,OAAO,EAAE,GAAG,EAAE,EAAE;EACpB,OAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC1B,OAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACvJ,SAAA,gBAAgB,GAAG,KAAK;EAChC,SAAQ,GAAG,CAAC,MAAM,GAAG,IAAI;WACjB,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC7C,SAAA,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE;EACrD,SAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC9C,SAAQ,GAAG,CAAC,MAAM,GAAG,cAAc;EAC3B,SAAA,IAAI,aAAa,EAAE;EAC3B,WAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,WAAA,cAAc,IAAI,GAAG;EAC/B,SAAA;EACA,OAAA;EACA,KAAA;EACA,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,IAAI,gBAAgB,EAAE;EACpB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;EACtD,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECxCA,CAAA,KAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAChE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;KACpC,IAAI,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE;EACpD,KAAI,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;EAC7J,GAAA,CAAG,CAAC;EACF,GAAA,IAAI,cAAc,EAAE;EACtB,KAAI,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;EACnC,KAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,aAAa;EAC3E,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;OAC3C,IAAI,IAAI,GAAG,OAAO;EAClB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;EACvB,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC5B,OAAM,OAAO,EAAE,GAAG,EAAE,EAAE;EACtB,SAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,SAAQ,GAAG,CAAC,MAAM,GAAG,IAAI;WACjB,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC7C,SAAA,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE;EACrD,SAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC9C,SAAQ,GAAG,CAAC,MAAM,GAAG,cAAc;WAC3B,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM;EAChG,SAAA,cAAc,IAAI,GAAG;EAC7B,OAAA;EACA,KAAA;EACI,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACxD,KAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;EAC/E,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;SAC7B,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EAC/K,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,SAAA,GAAG,IAAI,oDAAoD;EACnE,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACI,KAAA,GAAG,IAAI,8EAA8E;EACzF,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,SAAA,GAAG,IAAI,uCAAuC;EACtD,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,4CAA4C;EAC3D,OAAA;EACA,KAAA;EACA,KAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B;EACxJ,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;EACrB,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA;EACA,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECvEA,CAAA,OAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAClE,IAAI,GAAG,GAAG,GAAG;EACb,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;KACjC,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;KAClC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAA;KAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;EAC9C,GAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;EACjC,KAAI,GAAG,IAAI,eAAe,IAAI,QAAQ,CAAC,GAAG,IAAI;KAC9C,CAAG,MAAM,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,EAAE;EACpD,KAAI,GAAG,IAAI,uBAAuB,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B;EAC9H,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECZA,CAAA,MAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAChE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EAEvD,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAE7G,GAAA;KAGE,IAAI,CAAC,OAAO,EAAE;EAChB,KAAI,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG;EAC9E,GAAA;KACE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,QAAQ;EAC3G,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,mCAAmC,IAAI,IAAI,CAAC,GAAG,KAAK;EACnN,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,8CAA8C;EAC3D,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACzB,OAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC9I,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECtDA,CAAA,QAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACnE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;OACnB,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;EAC/C,KAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;EACjC,KAAI,cAAc,GAAG,EAAE,CAAC,MAAM;EAC9B,KAAI,eAAe,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EACrL,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG;EAC3D,GAAA,IAAI,eAAe,EAAE;EACvB,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EAC/C,KAAI,GAAG,CAAC,MAAM,GAAG,OAAO;EACxB,KAAI,GAAG,CAAC,UAAU,GAAG,WAAW;EAChC,KAAI,GAAG,CAAC,aAAa,GAAG,cAAc;OAClC,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,qBAAqB,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ;OACtI,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;OACnF,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAC5C,KAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,KAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EAChC,KAAI,GAAG,CAAC,MAAM,GAAG,cAAc;EAC/B,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EACrD,OAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAC1E,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EAC/E,KAAA;EACA,KAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,cAAc;EAC9C,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACxD,KAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,UAAU,CAAC,GAAG,KAAK;EACnE,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB;EAChD,GAAA;EACA,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;OAC7B,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EAClL,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,8CAA8C;EAC3D,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACzB,OAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC9I,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,YAAY;EACnB,GAAA,IAAI,eAAe,EAAE;EACvB,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B;EAC/I,GAAA;EACA,GAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;EACrB,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC/EA,CAAA,YAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACvE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;KACpC,IAAI,WAAW,GAAG,EAAE;EAClB,KAAA,aAAa,GAAG,EAAE;EACtB,KAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;EAC1C,GAAE,KAAK,SAAS,IAAI,OAAO,EAAE;EAC7B,KAAI,IAAI,SAAS,IAAI,WAAW,EAAE;EAClC,KAAI,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;EACjC,KAAI,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,WAAW;EACjE,KAAI,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI;EAC3B,GAAA;EACA,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY;EACxC,GAAE,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;EACtC,GAAE,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,GAAG;EACrC,GAAE,KAAK,IAAI,SAAS,IAAI,aAAa,EAAE;EACvC,KAAI,KAAK,GAAG,aAAa,CAAC,SAAS,CAAC;EACpC,KAAI,IAAI,KAAK,CAAC,MAAM,EAAE;EACtB,OAAM,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB;EAChF,OAAA,IAAI,cAAc,EAAE;EAC1B,SAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM;EAC1H,OAAA;EACM,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,GAAG,IAAI,QAAQ;WACf,IAAI,IAAI,GAAG,KAAK;EAChB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACnC,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,aAAA,IAAI,EAAE,EAAE;EACN,eAAA,GAAG,IAAI,MAAM;EAC3B,aAAA;eACY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;EACzD,eAAc,QAAQ,GAAG,KAAK,GAAG,KAAK;EACtC,aAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAC/C,aAAA,IAAI,cAAc,EAAE;EAChC,eAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACrI,aAAA;eACY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM;EACpI,WAAA;EACA,SAAA;EACQ,SAAA,GAAG,IAAI,QAAQ;EACvB,SAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;EAC5C,WAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO;EAC9D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;aAClC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa;EACvJ,SAAA;EACA,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;EAC9Z,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,4BAA4B;EAC/C,aAAY,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;EACnC,eAAc,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EACnE,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EAC7E,aAAA;EACA,aAAY,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB;EAC3F,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACA,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,OAAO;WACd,IAAI,IAAI,GAAG,KAAK;EAChB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACnC,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;eAC5B,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;iBAC3C,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;EACnE,eAAc,QAAQ,GAAG,KAAK,GAAG,KAAK;EACtC,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAChD,eAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACnG,aAAA;EACA,aAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAChD,aAAA,IAAI,cAAc,EAAE;EAChC,eAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACrI,aAAA;eACY,GAAG,IAAI,mBAAmB,CAAC;EACvC,aAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EAC3C,eAAc,GAAG,IAAI,gBAAgB,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,yBAAyB,IAAI,gBAAgB,CAAC,GAAG,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO;EAC9Z,eAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,iBAAA,GAAG,IAAI,4BAA4B;EACnD,iBAAgB,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;EACvC,mBAAkB,GAAG,IAAI,WAAW,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EACvE,iBAAA,CAAiB,MAAM;EACvB,mBAAkB,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjF,iBAAA;EACA,iBAAgB,GAAG,IAAI,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,gBAAgB;EAC/F,eAAA;EACA,eAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnC,iBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACxJ,eAAA;EACc,eAAA,GAAG,IAAI,KAAK;EAC1B,aAAA,CAAa,MAAM;EACL,eAAA,GAAG,IAAI,MAAM;EAC3B,aAAA;EACY,aAAA,GAAG,IAAI,gFAAgF;EACnG,WAAA;EACA,SAAA;EACA,OAAA;EACM,OAAA,GAAG,IAAI,OAAO;EACd,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,cAAc,IAAI,GAAG;EACrB,SAAA,GAAG,IAAI,UAAU;EACzB,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,EAAE,CAAC,SAAS,GAAG,iBAAiB;EAClC,GAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;EACjC,GAAE,KAAK,IAAI,SAAS,IAAI,WAAW,EAAE;EACrC,KAAI,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;EACrC,KAAI,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;SACvJ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,iBAAiB;EAC7G,OAAA,IAAI,cAAc,EAAE;EAC1B,SAAQ,GAAG,IAAI,2CAA2C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM;EAC1H,OAAA;EACM,OAAA,GAAG,IAAI,MAAM;EACnB,OAAM,GAAG,CAAC,MAAM,GAAG,IAAI;EACvB,OAAM,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;EACnE,OAAM,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;EAClF,OAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC5C,OAAM,GAAG,CAAC,MAAM,GAAG,cAAc;EAC3B,OAAA,GAAG,IAAI,MAAM;EACb,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,SAAA,cAAc,IAAI,GAAG;EAC7B,OAAA;EACA,KAAA;EACA,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACrB,KAAI,GAAG,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe;EACzE,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECtKA,CAAA,KAAc,GAAG,SAAS,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAC/D,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EAEvD,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAE7G,GAAA;EAGA,GAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;EACrB,KAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI;KAC5B,IAAI,CAAC,OAAO,EAAE;EAChB,KAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG;EAC5E,GAAA;EACA,GAAE,GAAG,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,GAAG;EAC9B,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB;EAC9J,GAAA;KACE,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,mBAAmB;EACpN,GAAA,IAAI,OAAO,EAAE;EACX,KAAA,GAAG,IAAI,OAAO;EAClB,GAAA;EACA,GAAE,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ;EACvC,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,MAAM,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,oCAAoC,IAAI,IAAI,CAAC,GAAG,KAAK;EACnN,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,+DAA+D;EAC5E,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACzB,OAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC9I,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EChEA,CAAA,MAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACjE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACrC,GAAA,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;EAC5B,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA;EACA,KAAI,OAAO,GAAG;EACd,GAAA;EACA,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;EACA,GAAE,IAAI,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;EAC9C,KAAI,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;EAChD,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,IAAI,OAAO,GAAG,QAAQ,GAAG,IAAI;EACjC,OAAM,SAAS,GAAG,UAAU,GAAG,IAAI;EACnC,OAAM,WAAW,GAAG,YAAY,GAAG,IAAI;OACnC,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,aAAa,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,GAAG,yBAAyB,IAAI,OAAO,CAAC,GAAG,iBAAiB,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,2BAA2B,IAAI,SAAS,CAAC,GAAG,MAAM;EACrU,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,UAAU;EACnE,KAAA;EACA,KAAI,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,qBAAqB;EAClE,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACzG,KAAA;EACI,KAAA,GAAG,IAAI,IAAI;EACf,KAAI,IAAI,eAAe,IAAI,QAAQ,EAAE;EACrC,OAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,GAAG;EACxD,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,wCAAwC,IAAI,YAAY,CAAC,GAAG,UAAU;EACrF,OAAA;EACM,OAAA,GAAG,IAAI,OAAO;EACpB,KAAA;OACI,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,OAAO,CAAC,GAAG,qBAAqB;EACrI,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;SACZ,GAAG,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK;EACtH,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI;EACnD,KAAA;EACA,KAAI,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,SAAS;EAC7D,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;OACjC,IAAI,CAAC,OAAO,EAAE;EAClB,OAAM,IAAI,eAAe,IAAI,QAAQ,EAAE;EACvC,SAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC;EACvG,SAAA,IAAI,aAAa,EAAE;EACjB,WAAA,GAAG,IAAI,eAAe;EAChC,SAAA;EACA,SAAQ,OAAO,GAAG;EAClB,OAAA,CAAO,MAAM,IAAI,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;EACjE,SAAA,IAAI,aAAa,EAAE;EACjB,WAAA,GAAG,IAAI,eAAe;EAChC,SAAA;EACA,SAAQ,OAAO,GAAG;EAClB,OAAA,CAAO,MAAM;EACb,SAAQ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,OAAO,GAAG,+BAA+B,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC;EAChH,OAAA;EACA,KAAA;EACA,KAAI,IAAI,SAAS,GAAG,OAAO,OAAO,IAAI,QAAQ,IAAI,EAAE,OAAO,YAAY,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ;OAC9F,IAAI,WAAW,GAAG,SAAS,IAAI,OAAO,CAAC,IAAI,IAAI,QAAQ;EACvD,KAAA,IAAI,SAAS,EAAE;EACnB,OAAM,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI;EACzC,OAAM,OAAO,GAAG,OAAO,CAAC,QAAQ;EAChC,KAAA;EACA,KAAI,IAAI,WAAW,IAAI,SAAS,EAAE;EAC5B,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,GAAG,IAAI,eAAe;EAC9B,OAAA;EACA,OAAM,OAAO,GAAG;EAChB,KAAA;EACI,KAAA,IAAI,MAAM,EAAE;SACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;EACnE,OAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW;EAC7E,OAAM,GAAG,IAAI,eAAe,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,QAAQ;EACtE,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,SAAS;EACtB,OAAM,IAAI,UAAU,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;EAC/D,OAAM,IAAI,SAAS,EAAE,UAAU,IAAI,WAAW;EAC9C,OAAM,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;EACxC,SAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI;EACxD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,IAAI;EAC7D,OAAA;EACM,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACA,GAAA;EACA,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;OAC7B,GAAG,IAAI,gBAAgB,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,wBAAwB;EACxL,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC;EAChC,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;EACnD,KAAA;EACI,KAAA,GAAG,IAAI,MAAM;EACb,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,qCAAqC;EAC5C,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO;EACjD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;EACnD,OAAA;EACM,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;EACrD,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,KAAK;EACZ,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECpJA,CAAA,GAAc,GAAG,SAAS,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAC7D,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACpC,GAAA,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;EAClC,KAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;OAC5B,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,QAAQ,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;OAC5M,YAAY,GAAG,QAAQ,KAAK,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,QAAQ,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EAChN,KAAI,cAAc,GAAG,GAAG,CAAC,MAAM;EAC/B,GAAE,IAAI,YAAY,IAAI,YAAY,EAAE;EACpC,KAAI,IAAI,SAAS;EACjB,KAAI,GAAG,CAAC,YAAY,GAAG,KAAK;EAC5B,KAAI,GAAG,CAAC,MAAM,GAAG,OAAO;EACxB,KAAI,GAAG,CAAC,UAAU,GAAG,WAAW;EAChC,KAAI,GAAG,CAAC,aAAa,GAAG,cAAc;EACtC,KAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY;EAC1E,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EAC/C,KAAI,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC1C,KAAI,GAAG,CAAC,MAAM,GAAG,cAAc;EAC/B,KAAI,GAAG,CAAC,YAAY,GAAG,IAAI;EAC3B,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,4BAA4B;EAC5I,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACpD,KAAA,IAAI,YAAY,EAAE;EACtB,OAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,OAAO;SACvC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;EAC9B,OAAA,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;EACxC,OAAA,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;EACpD,OAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC5C,OAAM,GAAG,CAAC,MAAM,GAAG,cAAc;EACjC,OAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI;EACzD,OAAM,IAAI,YAAY,IAAI,YAAY,EAAE;EACxC,SAAQ,SAAS,GAAG,UAAU,GAAG,IAAI;EACrC,SAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe;EACtD,OAAA,CAAO,MAAM;EACL,SAAA,SAAS,GAAG,UAAU;EAC9B,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EACZ,OAAA,IAAI,YAAY,EAAE;EAChB,SAAA,GAAG,IAAI,UAAU;EACzB,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,MAAM;EAC7C,KAAA;EACI,KAAA,IAAI,YAAY,EAAE;SAChB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;EAC9B,OAAA,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,OAAO;EACxC,OAAA,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,OAAO;EACpD,OAAM,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC5C,OAAM,GAAG,CAAC,MAAM,GAAG,cAAc;EACjC,OAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,IAAI;EACzD,OAAM,IAAI,YAAY,IAAI,YAAY,EAAE;EACxC,SAAQ,SAAS,GAAG,UAAU,GAAG,IAAI;EACrC,SAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,eAAe;EACtD,OAAA,CAAO,MAAM;EACL,SAAA,SAAS,GAAG,UAAU;EAC9B,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA;EACI,KAAA,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;EACtD,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACnC,OAAM,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,SAAS,CAAC,GAAG,KAAK;EACjN,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EACtC,SAAQ,GAAG,IAAI,mCAAmC,IAAI,SAAS,CAAC,GAAG,kBAAkB;EACrF,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACI,KAAA,GAAG,IAAI,8EAA8E;EACzF,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,SAAA,GAAG,IAAI,uCAAuC;EACtD,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,4CAA4C;EAC3D,OAAA;EACA,KAAA;EACI,KAAA,GAAG,IAAI,OAAO;EACd,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,UAAU;EACvB,KAAA;EACA,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECrGA,CAAA,KAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAChE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI;OACnB,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;EAC/C,KAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;EACjC,KAAI,cAAc,GAAG,EAAE,CAAC,MAAM;EAC9B,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG;EAC7D,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;EAC9B,KAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,eAAe;EACpD,KAAI,IAAI,gBAAgB,KAAK,KAAK,EAAE;EACpC,OAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;SACjF,IAAI,kBAAkB,GAAG,cAAc;EAC7C,OAAM,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB;EAC5D,OAAM,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ;EAC5C,OAAM,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACvC,OAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;SACpB,GAAG,GAAG,EAAE,CAAC;EACf,OAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACrC,SAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,KAAK;EAC1N,SAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;aAC9B,GAAG,IAAI,0CAA0C,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW;EAC5F,SAAA;EACA,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC7B,WAAU,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACnH,SAAA;EACQ,SAAA,GAAG,IAAI,KAAK;EACpB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,MAAM;EACrB,OAAA;SACM,IAAI,KAAK,GAAG,GAAG;EACrB,OAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC5B,OAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC9C;EACA,SAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;EACtB,WAAU,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAClE,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACvE,SAAA;EACA,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACvH,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EACZ,OAAA,cAAc,GAAG,kBAAkB;EACnC,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,cAAc,IAAI,GAAG;EACrB,SAAA,GAAG,IAAI,UAAU;EACzB,OAAA;EACA,KAAA;OACI,IAAI,IAAI,GAAG,OAAO;EAClB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;EACvB,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC5B,OAAM,OAAO,EAAE,GAAG,EAAE,EAAE;EACtB,SAAQ,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,SAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACjK,WAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,EAAE,CAAC,GAAG,MAAM;aACpF,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAChD,WAAU,GAAG,CAAC,MAAM,GAAG,IAAI;aACjB,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC7C,WAAA,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE;aAC7C,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;EAC3F,WAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE;EAC9B,WAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,WAAU,GAAG,CAAC,MAAM,GAAG,cAAc;EACrC,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EAC3D,aAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAChF,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EACrF,WAAA;EACU,WAAA,GAAG,IAAI,MAAM;EACb,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,aAAA,cAAc,IAAI,GAAG;EACjC,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;OACI,IAAI,OAAO,gBAAgB,IAAI,QAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,gBAAgB,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,gBAAgB,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;EACpP,OAAM,GAAG,CAAC,MAAM,GAAG,gBAAgB;EAC7B,OAAA,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,kBAAkB;EACnD,OAAA,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,kBAAkB;SACzD,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ;SAClN,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;SACnF,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAC9C,OAAM,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,OAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EAClC,OAAM,GAAG,CAAC,MAAM,GAAG,cAAc;EACjC,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EACvD,SAAQ,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAC5E,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EACjF,OAAA;EACM,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW;EACpD,OAAA;EACM,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,SAAA,cAAc,IAAI,GAAG;EAC7B,OAAA;EACA,KAAA;EACA,GAAA,CAAG,MAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EAC9K,KAAI,GAAG,CAAC,MAAM,GAAG,OAAO;EACxB,KAAI,GAAG,CAAC,UAAU,GAAG,WAAW;EAChC,KAAI,GAAG,CAAC,aAAa,GAAG,cAAc;OAClC,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,QAAQ;OAC/G,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;OACnF,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAC5C,KAAI,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,KAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EAChC,KAAI,GAAG,CAAC,MAAM,GAAG,cAAc;EAC/B,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EACrD,OAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAC1E,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EAC/E,KAAA;EACI,KAAA,IAAI,aAAa,EAAE;EACvB,OAAM,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW;EAClD,KAAA;EACI,KAAA,GAAG,IAAI,IAAI;EACf,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACrB,KAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe;EACvE,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC1IA,CAAA,MAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACjE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACxC,GAAE,IAAI,aAAa;EACjB,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;EACA,GAAE,IAAI,MAAM,GAAG,QAAQ,IAAI,SAAS;EACpC,KAAI,iBAAiB,GAAG,MAAM,GAAG,kBAAkB,GAAG,kBAAkB;EACxE,KAAI,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC;EAC9C,KAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK;EACnE,KAAI,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;EAC5B,KAAI,MAAM,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG;EAC3B,KAAA,aAAa,GAAG,SAAS;EAC7B,GAAE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC,EAAE;EACzE,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;EACjD,GAAA;EACA,GAAE,IAAI,EAAE,WAAW,IAAI,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,IAAI,QAAQ,IAAI,OAAO,WAAW,IAAI,SAAS,CAAC,EAAE;EACxH,KAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,4BAA4B,CAAC;EACrE,GAAA;EACE,GAAA,IAAI,WAAW,EAAE;EACnB,KAAI,IAAI,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC;EACvF,OAAM,UAAU,GAAG,WAAW,GAAG,IAAI;EACrC,OAAM,SAAS,GAAG,UAAU,GAAG,IAAI;EACnC,OAAM,aAAa,GAAG,cAAc,GAAG,IAAI;EAC3C,OAAM,OAAO,GAAG,IAAI,GAAG,IAAI;EAC3B,OAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO;EAC1C,KAAI,GAAG,IAAI,iBAAiB,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,IAAI;EACzE,KAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI;EAC1C,KAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,YAAY,IAAI,gBAAgB,CAAC,GAAG,QAAQ,IAAI,SAAS,CAAC,GAAG,qBAAqB,IAAI,SAAS,CAAC,GAAG,uBAAuB,IAAI,SAAS,CAAC,GAAG,oBAAoB;OACxN,IAAI,aAAa,GAAG,iBAAiB;EACzC,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;OACpB,GAAG,GAAG,EAAE,CAAC;EACb,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACnC,OAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,iBAAiB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EAC1M,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EACtC,SAAQ,GAAG,IAAI,gBAAgB,IAAI,iBAAiB,CAAC,GAAG,uBAAuB;EAC/E,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;OACI,IAAI,KAAK,GAAG,GAAG;EACnB,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC1B,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACpB,SAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAChE,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACrE,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACrH,KAAA;EACI,KAAA,GAAG,IAAI,eAAe;EACtB,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACzG,KAAA;EACA,KAAI,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,sBAAsB,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,gBAAgB,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,gBAAgB,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,gBAAgB,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,OAAO,IAAI,GAAG,CAAC,GAAG,SAAS,IAAI,GAAG,CAAC,GAAG,OAAO;EACzmB,KAAI,IAAI,OAAO,KAAK,SAAS,EAAE;EACzB,OAAA,aAAa,GAAG,iBAAiB;EACjC,OAAA,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB;EAC3D,OAAA,YAAY,GAAG,gBAAgB;EAC/B,OAAA,OAAO,GAAG,WAAW;EAC3B,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,aAAa,GAAG,OAAO,WAAW,IAAI,QAAQ;EAChD,OAAA,MAAM,GAAG,GAAG;EAClB,KAAI,IAAI,aAAa,IAAI,OAAO,EAAE;EAClC,OAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;EAClC,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EAC3G,OAAA;EACA,OAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM;EACtR,KAAA,CAAK,MAAM;EACX,OAAM,IAAI,aAAa,IAAI,OAAO,KAAK,SAAS,EAAE;EAC1C,SAAA,UAAU,GAAG,IAAI;EACjB,SAAA,aAAa,GAAG,iBAAiB;EACjC,SAAA,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB;EAC3D,SAAA,YAAY,GAAG,WAAW;EAC1B,SAAA,MAAM,IAAI,GAAG;EACrB,OAAA,CAAO,MAAM;EACb,SAAQ,IAAI,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC;WACpF,IAAI,WAAW,MAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE;EACzD,WAAA,UAAU,GAAG,IAAI;EACjB,WAAA,aAAa,GAAG,iBAAiB;EACjC,WAAA,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,iBAAiB;EAC3D,WAAA,MAAM,IAAI,GAAG;EACvB,SAAA,CAAS,MAAM;EACL,WAAA,UAAU,GAAG,KAAK;EAClB,WAAA,MAAM,IAAI,GAAG;EACvB,SAAA;EACA,OAAA;EACA,OAAM,IAAI,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;EAClC,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EAC3G,OAAA;SACM,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM;EAClH,KAAA;EACA,GAAA;EACA,GAAE,aAAa,GAAG,aAAa,IAAI,QAAQ;EAC3C,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,OAAO,CAAC,GAAG,WAAW,IAAI,YAAY,CAAC,GAAG,eAAe,IAAI,UAAU,CAAC,GAAG,KAAK;EAChS,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EACpC,OAAM,GAAG,IAAI,0BAA0B,IAAI,MAAM,CAAC,GAAG,GAAG;EAClD,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC;EACvC,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI;EACzC,OAAA;EACA,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,KAAK;EACZ,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECjKA,CAAA,WAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACtE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACxC,GAAE,IAAI,aAAa;EACjB,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;EAChD,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;EACjD,GAAA;KACE,IAAI,GAAG,GAAG,QAAQ,IAAI,UAAU,GAAG,GAAG,GAAG,GAAG;EAC5C,GAAA,GAAG,IAAI,OAAO;EACd,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACvG,GAAA;EACA,GAAE,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM;KACzE,IAAI,aAAa,GAAG,QAAQ;EAC9B,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK;EACrO,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,gCAAgC;EAC7C,OAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;EAC1B,SAAA,GAAG,IAAI,MAAM;EACrB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,OAAO;EACtB,OAAA;EACM,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO;EACjD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACM,OAAA,GAAG,IAAI,WAAW;EACxB,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC9EA,CAAA,YAAc,GAAG,SAAS,qBAAqB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACvE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACxC,GAAE,IAAI,aAAa;EACjB,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;EAChD,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;EACjD,GAAA;KACE,IAAI,GAAG,GAAG,QAAQ,IAAI,WAAW,GAAG,GAAG,GAAG,GAAG;EAC7C,GAAA,GAAG,IAAI,OAAO;EACd,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACvG,GAAA;EACE,GAAA,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,UAAU;EACrC,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,cAAc,IAAI,KAAK,CAAC,GAAG,IAAI;EAC1C,GAAA;EACA,GAAE,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM;KAClD,IAAI,aAAa,GAAG,QAAQ;EAC9B,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,cAAc,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK;EACtO,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,8BAA8B;EAC3C,OAAM,IAAI,QAAQ,IAAI,WAAW,EAAE;EAC3B,SAAA,GAAG,IAAI,QAAQ;EACvB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,SAAS;EACxB,OAAA;EACM,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO;EACjD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACM,OAAA,GAAG,IAAI,gBAAgB;EAC7B,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECnFA,CAAA,gBAAc,GAAG,SAAS,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAC3E,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACxC,GAAE,IAAI,aAAa;EACjB,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;EAChD,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;EACjD,GAAA;KACE,IAAI,GAAG,GAAG,QAAQ,IAAI,eAAe,GAAG,GAAG,GAAG,GAAG;EACjD,GAAA,GAAG,IAAI,OAAO;EACd,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACvG,GAAA;EACA,GAAE,GAAG,IAAI,eAAe,IAAI,KAAK,CAAC,GAAG,WAAW,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,MAAM;KACtF,IAAI,aAAa,GAAG,QAAQ;EAC9B,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,kBAAkB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,sBAAsB,IAAI,YAAY,CAAC,GAAG,KAAK;EAC1O,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,gCAAgC;EAC7C,OAAM,IAAI,QAAQ,IAAI,eAAe,EAAE;EAC/B,SAAA,GAAG,IAAI,MAAM;EACrB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,OAAO;EACtB,OAAA;EACM,OAAA,GAAG,IAAI,QAAQ;EACf,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO;EACjD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACM,OAAA,GAAG,IAAI,gBAAgB;EAC7B,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC9EA,CAAA,UAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACrE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,EAAE,OAAO,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAC,EAAE;EAChD,KAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;EACjD,GAAA;EACA,GAAE,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,OAAO;EACxC,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,6BAA6B,IAAI,YAAY,CAAC,GAAG,oBAAoB;EACvG,GAAA;EACA,GAAE,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,IAAI;EAChF,GAAE,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE;OAC/B,GAAG,IAAI,+BAA+B,IAAI,IAAI,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,GAAG;EAC/H,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,WAAW,IAAI,IAAI,CAAC,GAAG,wBAAwB,IAAI,IAAI,CAAC,GAAG,IAAI;EAC1E,GAAA;EACE,GAAA,GAAG,IAAI,KAAK;EACZ,GAAA,IAAI,OAAO,EAAE;EACX,KAAA,GAAG,IAAI,OAAO;EAClB,GAAA;EACE,GAAA,GAAG,IAAI,SAAS;EAClB,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,YAAY,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,KAAK;EACxN,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,sCAAsC;EAC7C,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC;EACvC,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC,GAAG,IAAI;EACzC,OAAA;EACA,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC7B,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC9EA,CAAA,GAAc,GAAG,SAAS,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAC9D,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACvK,KAAI,GAAG,CAAC,MAAM,GAAG,OAAO;EACxB,KAAI,GAAG,CAAC,UAAU,GAAG,WAAW;EAChC,KAAI,GAAG,CAAC,aAAa,GAAG,cAAc;EACtC,KAAI,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc;EAC7C,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EAC/C,KAAI,GAAG,CAAC,YAAY,GAAG,KAAK;EAC5B,KAAI,IAAI,gBAAgB;EACxB,KAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE;EAC5B,OAAM,gBAAgB,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS;EAC3C,OAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK;EAChC,KAAA;EACA,KAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EACzC,KAAI,GAAG,CAAC,YAAY,GAAG,IAAI;OACvB,IAAI,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB;EAC3D,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACxD,KAAI,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,QAAQ;EAC5C,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;OACpB,GAAG,GAAG,EAAE,CAAC;EACb,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;SAC7B,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EAC7K,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,SAAA,GAAG,IAAI,sCAAsC;EACrD,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;OACI,IAAI,KAAK,GAAG,GAAG;EACnB,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC1B,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACpB,SAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAChE,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACrE,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACrH,KAAA;EACA,KAAI,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,2BAA2B;EACxJ,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;EACrB,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA;EACA,GAAA,CAAG,MAAM;OACL,GAAG,IAAI,gBAAgB,CAAC;EAC5B,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;SAC7B,GAAG,IAAI,gBAAgB,IAAI,KAAK,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,gBAAgB;EAC7K,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,SAAA,GAAG,IAAI,sCAAsC;EACrD,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACI,KAAA,GAAG,IAAI,8EAA8E;EACrF,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,gBAAgB;EAC7B,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EClFA,CAAA,KAAc,GAAG,SAAS,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAChE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,IAAI,cAAc,GAAG,GAAG,CAAC,MAAM;EACjC,KAAI,UAAU,GAAG,WAAW,GAAG,IAAI;EACnC,KAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI;KAC3C,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,UAAU,CAAC,GAAG,aAAa,IAAI,MAAM,CAAC,GAAG,aAAa,IAAI,eAAe,CAAC,GAAG,WAAW;EACtI,GAAE,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,GAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;KAC3C,IAAI,IAAI,GAAG,OAAO;EAClB,GAAA,IAAI,IAAI,EAAE;EACZ,KAAI,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE;EACrB,OAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC1B,KAAI,OAAO,EAAE,GAAG,EAAE,EAAE;EACpB,OAAM,IAAI,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC1B,OAAM,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EAC/J,SAAQ,GAAG,CAAC,MAAM,GAAG,IAAI;WACjB,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC7C,SAAA,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE;EACrD,SAAQ,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;EAC9C,SAAQ,GAAG,CAAC,MAAM,GAAG,cAAc;EACnC,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,WAAW;EACnD,OAAA;EACM,OAAA,IAAI,EAAE,EAAE;EACd,SAAQ,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,YAAY,IAAI,eAAe,CAAC,GAAG,MAAM,IAAI,eAAe,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,cAAc;EACxK,SAAA,cAAc,IAAI,GAAG;EAC7B,OAAA;SACM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,UAAU,CAAC,GAAG,WAAW,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,KAAK;EACvI,KAAA;EACA,GAAA;EACE,GAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACtD,GAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC;EAC3E,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACjC,KAAI,GAAG,IAAI,gBAAgB,IAAI,OAAO,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,eAAe,CAAC,GAAG,KAAK;EAC1N,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,2DAA2D;EACxE,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACzB,OAAM,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC9I,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;EACE,GAAA,GAAG,IAAI,8EAA8E;EACvF,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,OAAA,GAAG,IAAI,uCAAuC;EACpD,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,4CAA4C;EACzD,KAAA;EACA,GAAA;EACA,GAAE,GAAG,IAAI,qBAAqB,IAAI,KAAK,CAAC,GAAG,gCAAgC,IAAI,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,CAAC,GAAG,0BAA0B;EACpJ,GAAE,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;EACrB,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECvEA,CAAA,OAAc,GAAG,SAAS,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KAClE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY;EAC1D,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,KAAK,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,mBAAmB;EACnL,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACzG,KAAA;EACA,KAAI,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;EACpC,KAAA,GAAG,IAAI,QAAQ;EACf,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,IAAI,IAAI,YAAY,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,qBAAqB;EACzG,KAAA;EACA,KAAI,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,GAAG,QAAQ,IAAI,KAAK,CAAC,GAAG,OAAO;EAC1D,GAAA;EACA,GAAE,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACnC,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;KACpB,GAAG,GAAG,EAAE,CAAC;EACX,GAAE,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;OAC7B,GAAG,IAAI,gBAAgB,IAAI,SAAS,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,yBAAyB;EAC1L,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,EAAE,IAAI,YAAY,CAAC;EAChC,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;EACnD,KAAA;EACI,KAAA,GAAG,IAAI,MAAM;EACb,KAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,OAAA,GAAG,IAAI,sCAAsC;EAC7C,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,OAAO;EACjD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;EACnD,OAAA;EACM,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACA,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,OAAA,GAAG,IAAI,cAAc;EACrB,OAAA,IAAI,OAAO,EAAE;EACnB,SAAQ,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAChD,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;EACrD,OAAA;EACA,OAAM,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvG,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EAChB,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;KACE,IAAI,KAAK,GAAG,GAAG;EACjB,GAAE,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACxB,GAAE,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC1C;EACA,KAAI,IAAI,EAAE,CAAC,KAAK,EAAE;EAClB,OAAM,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACnE,KAAA;EACA,GAAA,CAAG,MAAM;EACT,KAAI,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACnH,GAAA;EACE,GAAA,GAAG,IAAI,IAAI;EACX,GAAA,IAAI,aAAa,EAAE;EACjB,KAAA,GAAG,IAAI,UAAU;EACrB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;ECnFA,CAAAQ,YAAc,GAAG,SAAS,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACrE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;EACzB,KAAI,IAAI,GAAG,KAAK,GAAG,IAAI;OACnB,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;EAC/C,KAAI,SAAS,GAAG,MAAM,GAAG,QAAQ;EACjC,KAAI,eAAe,GAAG,gBAAgB,GAAG,IAAI;EAC7C,GAAE,IAAI,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;EAC3D,KAAA,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;EACpD,KAAI,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;EAC/D,KAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB;EAC7C,KAAA,eAAe,GAAG,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;EACjE,KAAI,aAAa,GAAG,YAAY,KAAK,KAAK;EAC1C,KAAI,mBAAmB,GAAG,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;EAC7F,KAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB;EAChD,KAAI,gBAAgB,GAAG,aAAa,IAAI,mBAAmB,IAAI,iBAAiB;EAChF,KAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;EAC1C,KAAI,cAAc,GAAG,EAAE,CAAC,MAAM;EAC9B,GAAE,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ;KAClC,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;OAC/F,IAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;EACjD,GAAA;;EAEA,GAAE,SAAS,QAAQ,CAAC,CAAC,EAAE;OACnB,OAAO,CAAC,KAAK,WAAW;EAC5B,GAAA;EACA,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,UAAU,CAAC,GAAG,UAAU;EACtE,GAAA,IAAI,cAAc,EAAE;EACtB,KAAI,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,eAAe;EACxD,GAAA;EACE,GAAA,IAAI,gBAAgB,EAAE;EACpB,KAAA,IAAI,cAAc,EAAE;SAClB,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK;EACvQ,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA;EACI,KAAA,IAAI,eAAe,EAAE;EACzB,OAAM,GAAG,IAAI,mBAAmB,IAAI,IAAI,CAAC,GAAG,aAAa;EACzD,OAAM,IAAI,WAAW,CAAC,MAAM,EAAE;EAC9B,SAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;EACpC,WAAU,GAAG,IAAI,qBAAqB,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,IAAI,CAAC,GAAG,IAAI;EAC3F,SAAA,CAAS,MAAM;aACL,IAAI,IAAI,GAAG,WAAW;EACtB,WAAA,IAAI,IAAI,EAAE;EACpB,aAAY,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACrC,eAAc,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAClC,aAAY,OAAO,EAAE,GAAG,EAAE,EAAE;EAC5B,eAAc,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC1C,eAAc,GAAG,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,GAAG,GAAG;EAC5F,aAAA;EACA,WAAA;EACA,SAAA;EACA,OAAA;EACA,OAAM,IAAI,cAAc,CAAC,MAAM,EAAE;WACzB,IAAI,IAAI,GAAG,cAAc;EACzB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,UAAU,EAAE,EAAE,GAAG,EAAE;EACjC,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACtC,aAAY,GAAG,IAAI,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI;EAClF,WAAA;EACA,SAAA;EACA,OAAA;EACA,OAAM,GAAG,IAAI,sBAAsB,IAAI,IAAI,CAAC,GAAG,MAAM;EACrD,KAAA;EACA,KAAI,IAAI,iBAAiB,IAAI,KAAK,EAAE;EACpC,OAAM,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK;EACxD,KAAA,CAAK,MAAM;EACX,OAAM,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;EAC1C,OAAM,IAAI,mBAAmB,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;EACxD,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;WAClC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACpF,OAAA;EACM,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,IAAI,iBAAiB,EAAE;EAC/B,WAAU,GAAG,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK;EAC5D,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,YAAY;aACxC,IAAI,kBAAkB,GAAG,cAAc;EACjD,WAAU,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB;EACrE,WAAU,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EAC3C,WAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,GAAG,GAAG,EAAE,CAAC;EACnB,WAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACzC,aAAY,GAAG,IAAI,gBAAgB,IAAI,sBAAsB,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,qCAAqC,IAAI,mBAAmB,CAAC,GAAG,OAAO;EACrP,aAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,eAAA,GAAG,IAAI,gBAAgB;EACrC,eAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,iBAAA,GAAG,IAAI,mCAAmC;EAC1D,eAAA,CAAe,MAAM;EACL,iBAAA,GAAG,IAAI,uCAAuC;EAC9D,eAAA;EACc,eAAA,GAAG,IAAI,KAAK;EAC1B,aAAA;EACA,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACjC,eAAc,GAAG,IAAI,kDAAkD,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACvH,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA,CAAW,MAAM;EACL,aAAA,GAAG,IAAI,MAAM;EACzB,WAAA;aACU,IAAI,KAAK,GAAG,GAAG;EACzB,WAAU,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAChC,WAAU,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAClD;EACA,aAAY,IAAI,EAAE,CAAC,KAAK,EAAE;EAC1B,eAAc,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACtE,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EAC3E,aAAA;EACA,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EAC3H,WAAA;EACU,WAAA,cAAc,GAAG,kBAAkB;EACnC,WAAA,IAAI,aAAa,EAAE;EACjB,aAAA,GAAG,IAAI,UAAU;EAC7B,WAAA;EACA,SAAA;SACA,CAAO,MAAM,IAAI,mBAAmB,EAAE;EACtC,SAAQ,IAAI,iBAAiB,IAAI,SAAS,EAAE;EAC5C,WAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,cAAc;EACnD,WAAU,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,WAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EACrD,WAAU,GAAG,CAAC,MAAM,GAAG,YAAY;EACzB,WAAA,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB;EACxD,WAAA,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB;EACxE,WAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;aAC7H,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAClD,WAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,WAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,WAAU,GAAG,CAAC,MAAM,GAAG,cAAc;EACrC,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EAC3D,aAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAChF,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EACrF,WAAA;aACU,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,KAAK,CAAC,GAAG,uHAAuH,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,QAAQ;EACxN,WAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EAC9D,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,CAAC,MAAM,GAAG,YAAY;EACzB,WAAA,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,uBAAuB;EACxD,WAAA,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,uBAAuB;EACxE,WAAU,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;aAC7H,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAClD,WAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,WAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,WAAU,GAAG,CAAC,MAAM,GAAG,cAAc;EACrC,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EAC3D,aAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAChF,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EACrF,WAAA;EACU,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW;EACxD,WAAA;EACA,SAAA;EACA,OAAA;EACA,OAAM,EAAE,CAAC,SAAS,GAAG,iBAAiB;EACtC,KAAA;EACI,KAAA,IAAI,eAAe,EAAE;EACnB,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA;EACI,KAAA,GAAG,IAAI,MAAM;EACb,KAAA,IAAI,aAAa,EAAE;EACvB,OAAM,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,OAAA,cAAc,IAAI,GAAG;EAC3B,KAAA;EACA,GAAA;EACA,GAAE,IAAI,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,aAAa;EAC7D,GAAE,IAAI,WAAW,CAAC,MAAM,EAAE;OACtB,IAAI,IAAI,GAAG,WAAW;EACtB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EAC/B,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC5B,OAAM,OAAO,EAAE,GAAG,EAAE,EAAE;EACtB,SAAQ,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EACpC,SAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;EACxC,SAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;aACvJ,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;EACvD,aAAY,SAAS,GAAG,KAAK,GAAG,KAAK;EACzB,aAAA,WAAW,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;EACpE,WAAU,GAAG,CAAC,MAAM,GAAG,IAAI;EAC3B,WAAU,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,KAAK;EAC9C,WAAU,GAAG,CAAC,aAAa,GAAG,cAAc,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;aAC/E,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EAC3F,WAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;EAChE,WAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,WAAU,GAAG,CAAC,MAAM,GAAG,cAAc;EACrC,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EAC3D,aAAY,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;eACvD,IAAI,QAAQ,GAAG,SAAS;EACpC,WAAA,CAAW,MAAM;eACL,IAAI,QAAQ,GAAG,SAAS;EACpC,aAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI;EACrE,WAAA;EACU,WAAA,IAAI,WAAW,EAAE;EAC3B,aAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG;EACtC,WAAA,CAAW,MAAM;EACjB,aAAY,IAAI,aAAa,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE;EAC9D,eAAc,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAChD,eAAA,IAAI,cAAc,EAAE;EAClC,iBAAgB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACvI,eAAA;EACA,eAAc,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,YAAY;EACzD,eAAc,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;EAClC,iBAAA,kBAAkB,GAAG,cAAc;mBACnC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;EACrE,eAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClD,iBAAgB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACrG,eAAA;EACA,eAAc,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,WAAW;EAC7D,eAAc,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EAC/C,eAAc,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;iBACpB,GAAG,GAAG,EAAE,CAAC;EACvB,eAAc,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EAC7C,iBAAgB,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,iBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,mBAAA,GAAG,IAAI,gBAAgB;EACzC,mBAAkB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,qBAAA,GAAG,IAAI,wBAAwB;EACnD,mBAAA,CAAmB,MAAM;EACzB,qBAAoB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EAC7F,mBAAA;EACkB,mBAAA,GAAG,IAAI,KAAK;EAC9B,iBAAA;EACA,iBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACrC,mBAAkB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAC1J,iBAAA;EACgB,iBAAA,GAAG,IAAI,KAAK;EAC5B,eAAA,CAAe,MAAM;EACL,iBAAA,GAAG,IAAI,MAAM;EAC7B,eAAA;iBACc,IAAI,KAAK,GAAG,GAAG;EAC7B,eAAc,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACpC,eAAc,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EACtD;EACA,iBAAgB,IAAI,EAAE,CAAC,KAAK,EAAE;EAC9B,mBAAkB,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAC1E,iBAAA,CAAiB,MAAM;EACvB,mBAAkB,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EAC/E,iBAAA;EACA,eAAA,CAAe,MAAM;EACrB,iBAAgB,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EAC/H,eAAA;EACc,eAAA,cAAc,GAAG,kBAAkB;EACjD,eAAc,EAAE,CAAC,SAAS,GAAG,iBAAiB;EAChC,eAAA,GAAG,IAAI,YAAY;EACjC,aAAA,CAAa,MAAM;EACL,eAAA,IAAI,aAAa,EAAE;EACjC,iBAAgB,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAChD,iBAAA,IAAI,cAAc,EAAE;EACpC,mBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACzI,iBAAA;EACA,iBAAgB,GAAG,IAAI,MAAM,IAAI,UAAU,CAAC,GAAG,oBAAoB;EACnE,eAAA,CAAe,MAAM;EACrB,iBAAgB,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAC/C,iBAAA,IAAI,cAAc,EAAE;EACpC,mBAAkB,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACzI,iBAAA;EACgB,iBAAA,GAAG,IAAI,OAAO;EAC9B,eAAA;EACA,aAAA;EACA,aAAY,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK;EACxC,WAAA;EACA,SAAA;EACQ,SAAA,IAAI,aAAa,EAAE;EAC3B,WAAU,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,WAAA,cAAc,IAAI,GAAG;EAC/B,SAAA;EACA,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,IAAI,cAAc,CAAC,MAAM,EAAE;OACzB,IAAI,IAAI,GAAG,cAAc;EACzB,KAAA,IAAI,IAAI,EAAE;EACd,OAAM,IAAI,UAAU,EAAE,EAAE,GAAG,EAAE;EAC7B,SAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC5B,OAAM,OAAO,EAAE,GAAG,EAAE,EAAE;EACtB,SAAQ,UAAU,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAClC,SAAQ,IAAI,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC;EAC3C,SAAQ,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,IAAI,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACjK,WAAU,GAAG,CAAC,MAAM,GAAG,IAAI;EAC3B,WAAU,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,GAAG,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;EACjG,WAAU,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,aAAa,GAAG,qBAAqB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;EACjG,WAAA,IAAI,cAAc,EAAE;eAClB,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK;EAC7Q,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA;EACA,WAAU,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,OAAO;aAC1E,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;aAC7E,IAAI,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;EAClD,WAAU,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;EAChC,WAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EACtC,WAAU,GAAG,CAAC,MAAM,GAAG,cAAc;EACrC,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EAC3D,aAAY,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAChF,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EACrF,WAAA;EACU,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW;EACxD,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACZ,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,WAAW;EACxD,WAAA;EACU,WAAA,GAAG,IAAI,MAAM;EACb,WAAA,IAAI,aAAa,EAAE;EAC7B,aAAY,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC,GAAG,MAAM;EACtC,aAAA,cAAc,IAAI,GAAG;EACjC,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;EACA,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACrB,KAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe;EACvE,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC7UA,CAAA,aAAc,GAAG,SAAS,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACxE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;KAC3B,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KAC1B,IAAI,cAAc,GAAG,EAAE;KACvB,GAAG,CAAC,KAAK,EAAE;EACb,GAAE,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACtC,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY;EACxC,GAAE,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,OAAO,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,OAAO,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;EACvK,KAAI,GAAG,CAAC,MAAM,GAAG,OAAO;EACxB,KAAI,GAAG,CAAC,UAAU,GAAG,WAAW;EAChC,KAAI,GAAG,CAAC,aAAa,GAAG,cAAc;EACtC,KAAI,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI;EAC3B,OAAM,IAAI,GAAG,KAAK,GAAG,IAAI;EACzB,OAAM,EAAE,GAAG,GAAG,GAAG,IAAI;EACrB,OAAM,YAAY,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO;SACvC,QAAQ,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC;EACjD,OAAM,SAAS,GAAG,MAAM,GAAG,QAAQ;EACnC,OAAM,eAAe,GAAG,gBAAgB,GAAG,IAAI;EAC/C,OAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;EAC5C,OAAM,cAAc,GAAG,EAAE,CAAC,MAAM;EAC5B,KAAA,IAAI,cAAc,EAAE;EACxB,OAAM,GAAG,IAAI,OAAO,IAAI,eAAe,CAAC,GAAG,gBAAgB;EAC3D,KAAA;EACI,KAAA,IAAI,cAAc,EAAE;SAClB,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,kBAAkB,IAAI,KAAK,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,eAAe,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,eAAe,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK;EACvQ,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM;EAC9D,KAAA;EACA,KAAI,GAAG,IAAI,gBAAgB,IAAI,IAAI,CAAC,GAAG,aAAa;OAChD,IAAI,SAAS,GAAG,IAAI;EACxB,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EAC3C,KAAA,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;EAChC,KAAI,GAAG,CAAC,MAAM,GAAG,cAAc;EAC/B,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;EACrD,OAAM,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG;EAC1E,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG;EAC/E,KAAA;EACI,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACxD,KAAI,GAAG,IAAI,QAAQ,IAAI,UAAU,CAAC,GAAG,eAAe,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,gBAAgB,IAAI,EAAE,CAAC,GAAG,mBAAmB,IAAI,IAAI,CAAC,GAAG,oBAAoB,CAAC;EACvM,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACnC,OAAM,GAAG,IAAI,gBAAgB,IAAI,eAAe,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,+BAA+B,IAAI,YAAY,CAAC,GAAG,OAAO;EACjO,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EACtC,SAAQ,GAAG,IAAI,kCAAkC,IAAI,YAAY,CAAC,GAAG,oBAAoB;EACzF,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACI,KAAA,GAAG,IAAI,8EAA8E;EACzF,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,SAAA,GAAG,IAAI,uCAAuC;EACtD,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,4CAA4C;EAC3D,OAAA;EACA,KAAA;EACI,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,UAAU;EACvB,KAAA;EACI,KAAA,GAAG,IAAI,MAAM;EACjB,GAAA;EACE,GAAA,IAAI,aAAa,EAAE;EACrB,KAAI,GAAG,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,eAAe;EACvE,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC/EA,CAAAC,UAAc,GAAG,SAAS,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACnE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EAEvD,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAE7G,GAAA;EAGA,GAAE,IAAI,QAAQ,GAAG,QAAQ,GAAG,IAAI;KAC9B,IAAI,CAAC,OAAO,EAAE;EAChB,KAAI,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE;SAC7G,IAAI,SAAS,GAAG,EAAE;SAClB,IAAI,IAAI,GAAG,OAAO;EAClB,OAAA,IAAI,IAAI,EAAE;EAChB,SAAQ,IAAI,SAAS,EAAE,EAAE,GAAG,EAAE;EAC9B,WAAU,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAC9B,SAAQ,OAAO,EAAE,GAAG,EAAE,EAAE;EACxB,WAAU,SAAS,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;aACzB,IAAI,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC;aAClD,IAAI,EAAE,YAAY,KAAK,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,YAAY,KAAK,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;EACtN,aAAY,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS;EACnD,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA,CAAK,MAAM;SACL,IAAI,SAAS,GAAG,OAAO;EAC7B,KAAA;EACA,GAAA;EACA,GAAE,IAAI,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE;EACnC,KAAI,IAAI,iBAAiB,GAAG,EAAE,CAAC,SAAS;EACxC,OAAM,aAAa,GAAG,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY;EACzE,OAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;EACxC,KAAA,IAAI,aAAa,EAAE;EACvB,OAAM,GAAG,IAAI,cAAc,IAAI,IAAI,CAAC,GAAG,IAAI;EACrC,OAAA,IAAI,aAAa,EAAE;WACjB,IAAI,CAAC,OAAO,EAAE;EACtB,WAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI;EACnF,SAAA;EACA,SAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;aACjB,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC1D,WAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO;EAC9D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAC5C,WAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACpG,SAAA;EACA,SAAQ,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,WAAW;EACvC,SAAA,IAAI,OAAO,EAAE;aACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,yCAAyC,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB;EACpK,SAAA;EACA,SAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB;EACpL,SAAA,IAAI,cAAc,EAAE;EAC5B,WAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK;EACjH,SAAA;EACA,SAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,aAAa;EAC3C,SAAA,IAAI,OAAO,EAAE;EACX,WAAA,GAAG,IAAI,OAAO;EACxB,SAAA;EACA,SAAQ,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,GAAG,QAAQ;EAC9C,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,gBAAgB;EACnC,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,eAAA,GAAG,IAAI,wBAAwB;EAC7C,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EACvF,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACQ,SAAA,GAAG,IAAI,YAAY;EAC3B,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,QAAQ;WACf,IAAI,IAAI,GAAG,SAAS;EACpB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACnC,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,aAAA,IAAI,EAAE,EAAE;EACN,eAAA,GAAG,IAAI,MAAM;EAC3B,aAAA;eACY,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;EACzD,eAAc,QAAQ,GAAG,KAAK,GAAG,KAAK;EACtC,aAAY,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAC/C,aAAA,IAAI,cAAc,EAAE;EAChC,eAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACrI,aAAA;eACY,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM;EACpI,WAAA;EACA,SAAA;EACQ,SAAA,GAAG,IAAI,OAAO;EACtB,SAAQ,IAAI,aAAa,GAAG,SAAS,GAAG,IAAI;EAC5C,WAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO;EAC9D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;aAClC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,IAAI,CAAC,GAAG,iBAAiB,GAAG,KAAK,GAAG,aAAa;EACvJ,SAAA;EACA,SAAQ,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACzC,SAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;WACpB,GAAG,GAAG,EAAE,CAAC;EACjB,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,gBAAgB;EACnC,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,eAAA,GAAG,IAAI,wBAAwB;EAC7C,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EACvF,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;WACQ,IAAI,KAAK,GAAG,GAAG;EACvB,SAAQ,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC9B,SAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAChD;EACA,WAAU,IAAI,EAAE,CAAC,KAAK,EAAE;EACxB,aAAY,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EACpE,WAAA,CAAW,MAAM;EACjB,aAAY,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACzE,WAAA;EACA,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACzH,SAAA;EACQ,SAAA,GAAG,IAAI,YAAY;EAC3B,OAAA;EACA,KAAA,CAAK,MAAM;EACL,OAAA,IAAI,aAAa,EAAE;WACjB,IAAI,CAAC,OAAO,EAAE;EACtB,WAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,oBAAoB,IAAI,WAAW,CAAC,GAAG,IAAI;EACnF,SAAA;EACA,SAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI;aACjB,aAAa,GAAG,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG;EAC1D,WAAU,gBAAgB,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO;EAC9D,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAC5C,WAAU,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACpG,SAAA;EACQ,SAAA,IAAI,OAAO,EAAE;EACrB,WAAU,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,qBAAqB,IAAI,QAAQ,CAAC,GAAG,oBAAoB,CAAC;EAClG,WAAU,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACzC,aAAY,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,aAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,eAAA,GAAG,IAAI,gBAAgB;EACrC,eAAc,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,iBAAA,GAAG,IAAI,wBAAwB;EAC/C,eAAA,CAAe,MAAM;EACrB,iBAAgB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EACzF,eAAA;EACc,eAAA,GAAG,IAAI,KAAK;EAC1B,aAAA;EACA,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACjC,eAAc,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACtJ,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA,CAAW,MAAM;EACL,aAAA,GAAG,IAAI,MAAM;EACzB,WAAA;EACA,WAAU,GAAG,IAAI,yFAAyF,IAAI,QAAQ,CAAC,GAAG,oBAAoB;EAC9I,SAAA;EACA,SAAQ,GAAG,IAAI,YAAY,IAAI,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,mBAAmB;EACrK,SAAA,IAAI,cAAc,EAAE;EAC5B,WAAU,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK;EACjH,SAAA;WACQ,GAAG,IAAI,mBAAmB,CAAC;EACnC,SAAQ,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACvC,WAAU,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,WAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,aAAA,GAAG,IAAI,gBAAgB;EACnC,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,eAAA,GAAG,IAAI,wBAAwB;EAC7C,aAAA,CAAa,MAAM;EACnB,eAAc,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EACvF,aAAA;EACY,aAAA,GAAG,IAAI,KAAK;EACxB,WAAA;EACA,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC/B,aAAY,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACpJ,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,MAAM;EACvB,SAAA;EACQ,SAAA,GAAG,IAAI,kFAAkF;EACzF,SAAA,IAAI,OAAO,EAAE;EACX,WAAA,GAAG,IAAI,OAAO;EACxB,SAAA;EACA,OAAA,CAAO,MAAM;WACL,IAAI,IAAI,GAAG,SAAS;EACpB,SAAA,IAAI,IAAI,EAAE;EAClB,WAAU,IAAI,YAAY,EAAE,EAAE,GAAG,EAAE;EACnC,aAAY,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;EAChC,WAAU,OAAO,EAAE,GAAG,EAAE,EAAE;EAC1B,aAAY,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;eAC5B,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;iBAC3C,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;EACnE,eAAc,QAAQ,GAAG,KAAK,GAAG,KAAK;EACtC,aAAY,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAChD,eAAc,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;EACnG,aAAA;EACA,aAAY,GAAG,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,iBAAiB;EAChD,aAAA,IAAI,cAAc,EAAE;EAChC,eAAc,GAAG,IAAI,6CAA6C,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM;EACrI,aAAA;eACY,GAAG,IAAI,mBAAmB,CAAC;EACvC,aAAY,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EAC3C,eAAc,GAAG,IAAI,gBAAgB,IAAI,UAAU,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,kCAAkC,IAAI,gBAAgB,CAAC,GAAG,OAAO;EACnO,eAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,iBAAA,GAAG,IAAI,gBAAgB;EACvC,iBAAgB,IAAI,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE;EAClC,mBAAA,GAAG,IAAI,wBAAwB;EACjD,iBAAA,CAAiB,MAAM;EACvB,mBAAkB,GAAG,IAAI,oCAAoC,IAAI,gBAAgB,CAAC,GAAG,MAAM;EAC3F,iBAAA;EACgB,iBAAA,GAAG,IAAI,KAAK;EAC5B,eAAA;EACA,eAAc,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnC,iBAAgB,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACxJ,eAAA;EACc,eAAA,GAAG,IAAI,KAAK;EAC1B,aAAA,CAAa,MAAM;EACL,eAAA,GAAG,IAAI,MAAM;EAC3B,aAAA;EACY,aAAA,GAAG,IAAI,gFAAgF;EACnG,WAAA;EACA,SAAA;EACA,OAAA;EACA,KAAA;EACA,KAAI,EAAE,CAAC,SAAS,GAAG,iBAAiB;KACpC,CAAG,MAAM,IAAI,aAAa,EAAE;EACxB,KAAA,GAAG,IAAI,cAAc;EACzB,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;EC5QA,CAAA,WAAc,GAAG,SAAS,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACtE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACtC,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;EACA,GAAE,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE;EACzD,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,GAAG,QAAQ,IAAI,YAAY,CAAC,GAAG,gBAAgB,IAAI,YAAY,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,2BAA2B,IAAI,YAAY,CAAC,GAAG,mBAAmB,IAAI,MAAM,CAAC,GAAG,mBAAmB;EACrO,KAAA;EACA,KAAI,GAAG,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,YAAY,IAAI,MAAM,CAAC,GAAG,4BAA4B;EACzF,KAAI,IAAI,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;EAC3D,OAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;EAC7C,KAAI,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,IAAI,OAAO,KAAK,YAAY,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;EAChK,OAAM,GAAG,IAAI,sDAAsD,IAAI,KAAK,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,UAAU,IAAI,MAAM,CAAC,GAAG,+BAA+B;EAC3J,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,wDAAwD,IAAI,KAAK,CAAC,GAAG,OAAO;SACnF,IAAI,OAAO,GAAG,eAAe,IAAI,YAAY,GAAG,GAAG,GAAG,EAAE,CAAC;SACzD,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,GAAG,cAAc;EACpG,OAAA,IAAI,YAAY,EAAE;EAChB,SAAA,GAAG,IAAI,uDAAuD;EACtE,OAAA;EACA,OAAM,GAAG,IAAI,iDAAiD,IAAI,MAAM,CAAC,GAAG,qEAAqE;EACjJ,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EACZ,KAAA,IAAI,OAAO,EAAE;EACX,OAAA,GAAG,IAAI,OAAO;EACpB,KAAA;EACA,KAAI,GAAG,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,QAAQ;EACzC,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;OACpB,GAAG,GAAG,EAAE,CAAC;EACb,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;SAC7B,GAAG,IAAI,gBAAgB,IAAI,aAAa,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,4BAA4B;EACjM,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;EAC9B,SAAA,GAAG,IAAI,uGAAuG;EACtH,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EACnB,SAAA,GAAG,IAAI,cAAc;EACrB,SAAA,IAAI,OAAO,EAAE;EACrB,WAAU,GAAG,IAAI,iBAAiB,IAAI,WAAW,CAAC;EAClD,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC;EAC/B,SAAA;EACA,SAAQ,GAAG,IAAI,0CAA0C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EACzG,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;OACI,IAAI,KAAK,GAAG,GAAG;EACnB,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC1B,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACpB,SAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAChE,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACrE,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACrH,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EACZ,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,UAAU;EACvB,KAAA;EACA,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;;ECnFA;EACA,CAAA,KAAc,GAAG;KACf,MAAM,EAAET,UAAA,EAAgB;KACxB,KAAK,EAAEC,YAAA,EAAkB;KACzB,KAAK,EAAEE,YAAA,EAAkB;KACzB,UAAU,EAAEC,cAAA,EAAoB;KAChC,KAAK,EAAEC,aAAA,EAAkB;KACzB,QAAQ,EAAEC,eAAA,EAAqB;KAC/B,YAAY,EAAEI,mBAAA,EAAyB;KACvC,MAAM,EAAEC,YAAA,EAAiB;KACzB,MAAM,EAAEC,aAAA,EAAmB;KAC3B,IAAI,EAAEC,UAAA,EAAe;KACrB,KAAK,EAAEC,YAAA,EAAkB;KACzB,OAAO,EAAEC,aAAA,EAAmB;KAC5B,OAAO,EAAEA,aAAA,EAAmB;KAC5B,QAAQ,EAAEC,kBAAA,EAAwB;KAClC,QAAQ,EAAEA,kBAAA,EAAwB;KAClC,SAAS,EAAEC,mBAAA,EAAyB;KACpC,SAAS,EAAEA,mBAAA,EAAyB;KACpC,aAAa,EAAEC,uBAAA,EAA6B;KAC5C,aAAa,EAAEA,uBAAA,EAA6B;KAC5C,UAAU,EAAEC,iBAAA,EAAuB;KACnC,GAAG,EAAEC,UAAA,EAAgB;KACrB,KAAK,EAAEC,YAAA,EAAkB;KACzB,OAAO,EAAEC,cAAA,EAAoB;KAC7B,UAAU,EAAEC,iBAAA,EAAuB;KACnC,aAAa,EAAEC,oBAAA,EAA0B;KACzC,QAAQ,EAAEC,eAAA,EAAqB;KAC/B,WAAW,EAAEC,kBAAA,EAAwB;EACvC,GAAE,QAAQ,EAAEC,eAAA;EACX,EAAA;;;;;;;;;;;EC9BD,CAAA,IAAI,WAAW,GAAG3B,YAAA;EAClB,KAAI,MAAM,GAAGC,WAAA,EAAiB,CAAC,MAAM;;EAErC,CAAA,KAAc,GAAG,SAAS,KAAK,GAAG;EAChC,GAAA,IAAI,KAAK,GAAG;OACV,EAAE,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE;EAClD,gBAAe,EAAE,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE;OACzE,EAAE,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;OAC5D,EAAE,IAAI,EAAE,OAAO;EACnB,OAAM,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE;OACzE,EAAE,IAAI,EAAE,QAAQ;SACd,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe;kBAC7E,EAAE,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE;EAClF,KAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;EAC7E,IAAA;;EAEH,GAAE,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE;EAChC,GAAA,IAAI,QAAQ,GAAG;OACb,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;EACtD,KAAI,aAAa,EAAE,SAAS,EAAE,aAAa;EAC3C,KAAI,UAAU,EAAE,UAAU,EAAE,WAAW;EACnC,KAAA,kBAAkB,EAAE,iBAAiB;OACrC,iBAAiB,EAAE,MAAM,EAAE;EAC5B,IAAA;EACH,GAAE,IAAI,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;EACrF,GAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;EACzB,GAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;;EAE7B,GAAE,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;EACjC,KAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE;EACrD,OAAM,IAAI,YAAY;EACtB,OAAM,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;WAC9B,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EACzC,SAAQ,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;EAC3B,SAAA,OAAO,GAAG,GAAG;EACrB,SAAQ,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;EAC1C,WAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;EACrB,WAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;EAC7B,SAAA,CAAS,CAAC;EACV,OAAA;EACA,OAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;SACjB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;EAC9B,SAAA,OAAO,EAAE,OAAO;EACxB,SAAQ,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;EAClC,SAAQ,UAAU,EAAE;EACb,QAAA;EACP,OAAM,OAAO,IAAI;EACjB,KAAA,CAAK,CAAC;;EAEN,KAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG;EACnB,OAAA,OAAO,EAAE,UAAU;SACnB,IAAI,EAAE,WAAW,CAAC;EACnB,MAAA;;EAEL,KAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK;EACnD,GAAA,CAAG,CAAC;;EAEJ,GAAE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;EAC/C,GAAE,KAAK,CAAC,MAAM,GAAG,EAAE;;EAEnB,GAAE,OAAO,KAAK;GACd,CAAC;;;;;;;;;;;EC/DD,CAAA,IAAI,QAAQ,GAAG;EACf,GAAE,YAAY;EACd,GAAE,SAAS;EACX,GAAE,kBAAkB;EACpB,GAAE,SAAS;EACX,GAAE,kBAAkB;EACpB,GAAE,WAAW;EACb,GAAE,WAAW;EACb,GAAE,SAAS;EACX,GAAE,iBAAiB;EACnB,GAAE,UAAU;EACZ,GAAE,UAAU;EACZ,GAAE,aAAa;EACf,GAAE,eAAe;EACjB,GAAE,eAAe;EACjB,GAAE,UAAU;EACZ,GAAE,sBAAsB;EACxB,GAAE,MAAM;EACR,GAAE,QAAQ;EACR,GAAA;EACD,EAAA;;EAED,CAAA,IAAc,GAAG,UAAU,UAAU,EAAE,oBAAoB,EAAE;EAC7D,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACpD,KAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;OACnD,IAAI,QAAQ,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;OACjD,IAAI,QAAQ,GAAG,UAAU;EAC7B,KAAI,IAAI,CAAC;EACT,KAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;EAC9B,OAAA,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAEtC,KAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACtC,OAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;EAC3B,OAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC;EAC1B,OAAA,IAAI,MAAM,EAAE;EAClB,SAAQ,QAAQ,CAAC,GAAG,CAAC,GAAG;EACxB,WAAU,KAAK,EAAE;EACjB,aAAY,MAAM;eACN,EAAE,IAAI,EAAE,gFAAgF;EACpG;EACS,UAAA;EACT,OAAA;EACA,KAAA;EACA,GAAA;;EAEA,GAAE,OAAO,UAAU;GACnB,CAAC;;;;;;;;;;;EC9CD,CAAA,IAAI,eAAe,GAAGD,oBAAA,EAA0B,CAAC,UAAU;;EAE3D,CAAA,KAAc,GAAG,YAAY;;;EAG7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;EAC9C;EACA;EACA;KACE,IAAI,IAAI,GAAG,IAAI;EACf,GAAA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU;EAChD,KAAI,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;;EAE9D,GAAE,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE;EAC7B,KAAA,QAAQ,GAAG,IAAI;EACf,KAAA,IAAI,GAAG,SAAS;EACpB,GAAA;;KAEE,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY;EACpD,KAAI,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;EACxD,KAAA,OAAO,SAAS,CAAC,QAAQ,IAAI,aAAa,CAAC,SAAS,CAAC;EACzD,GAAA,CAAG,CAAC;;EAEF,GAAA,IAAI,QAAQ,EAAE;EACZ,KAAA,CAAC,CAAC,IAAI;SACJ,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA,CAAE;EAClC,OAAA;EACD,MAAA;EACL,GAAA;;EAEA,GAAE,OAAO,CAAC;;;EAGV,GAAE,SAAS,gBAAgB,CAAC,GAAG,EAAE;EACjC,KAAI,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO;EACzB,KAAA,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;EAC7C,eAAc,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI;iBAC/C,OAAO,CAAC,OAAO,EAAE;EAC/B,GAAA;;;EAGA,GAAE,SAAS,aAAa,CAAC,SAAS,EAAE;OAChC,IAAI,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;EACtC,KAAA,MAAM,CAAC,EAAE;SACP,IAAI,CAAC,YAAY,eAAe,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;EACnE,OAAM,MAAM,CAAC;EACb,KAAA;;;EAGA,KAAI,SAAS,iBAAiB,CAAC,CAAC,EAAE;EAClC,OAAM,IAAI,GAAG,GAAG,CAAC,CAAC,aAAa;SACzB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,CAAC,CAAC,UAAU,GAAG,qBAAqB,CAAC;;EAE3G,OAAA,IAAI,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;SAC7C,IAAI,CAAC,aAAa,EAAE;EAC1B,SAAQ,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;EAC9E,SAAQ,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;EACxD,OAAA;;EAEA,OAAM,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;EAC/C,SAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;EACf,WAAA,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY;EACxD,aAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC;EACtE,WAAA,CAAW,CAAC;EACZ,SAAA;EACA,OAAA,CAAO,CAAC,CAAC,IAAI,CAAC,WAAW;EACzB,SAAQ,OAAO,aAAa,CAAC,SAAS,CAAC;EACvC,OAAA,CAAO,CAAC;;EAEF,OAAA,SAAS,aAAa,GAAG;EAC/B,SAAQ,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;EACxC,OAAA;;EAEA,OAAM,SAAS,KAAK,CAAC,GAAG,EAAE;EAC1B,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;EACpD,OAAA;EACA,KAAA;EACA,GAAA;EACA,CAAA;;;;;;;;;;ECxFA,CAAA,MAAc,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;KACjE,IAAI,GAAG,GAAG,GAAG;EACf,GAAE,IAAI,IAAI,GAAG,EAAE,CAAC,KAAK;EACrB,GAAE,IAAI,QAAQ,GAAG,EAAE,CAAC,SAAS;EAC3B,GAAA,IAAI,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;EACnC,GAAE,IAAI,WAAW,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;KAC/D,IAAI,cAAc,GAAG,EAAE,CAAC,aAAa,GAAG,GAAG,GAAG,QAAQ;EACtD,GAAA,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS;EACxC,GAAE,IAAI,aAAa;EACjB,GAAA,IAAI,KAAK,GAAG,MAAM,IAAI,QAAQ,IAAI,EAAE,CAAC;EACvC,GAAE,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI;EAC7B,GAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI;EAC7B,GAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK;EACzD,KAAI,YAAY;EACd,GAAA,IAAI,OAAO,EAAE;OACX,GAAG,IAAI,aAAa,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;EAC7G,KAAI,YAAY,GAAG,QAAQ,GAAG,IAAI;EAClC,GAAA,CAAG,MAAM;EACL,KAAA,YAAY,GAAG,OAAO;EAC1B,GAAA;KACE,IAAI,KAAK,GAAG,IAAI;EAClB,KAAI,WAAW,GAAG,YAAY,GAAG,IAAI;EACrC,KAAI,KAAK,GAAG,KAAK,CAAC,UAAU;EACxB,KAAA,cAAc,GAAG,EAAE;KACrB,IAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;EAC7D,GAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;EAC9B,KAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI;EAC5C,KAAI,IAAI,eAAe,GAAG,KAAK,CAAC,cAAc;OAC1C,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,oBAAoB,IAAI,QAAQ,CAAC,GAAG,sBAAsB,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,YAAY;EACxJ,GAAA,CAAG,MAAM;EACT,KAAI,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;OAC/D,IAAI,CAAC,aAAa,EAAE;EACxB,KAAI,YAAY,GAAG,iBAAiB,GAAG,WAAW;EAClD,KAAI,aAAa,GAAG,aAAa,CAAC,IAAI;EACtC,KAAI,QAAQ,GAAG,KAAK,CAAC,OAAO;EAC5B,KAAI,OAAO,GAAG,KAAK,CAAC,MAAM;EAC1B,KAAI,MAAM,GAAG,KAAK,CAAC,KAAK;EACxB,GAAA;EACA,GAAE,IAAI,SAAS,GAAG,aAAa,GAAG,SAAS;EAC3C,KAAI,EAAE,GAAG,GAAG,GAAG,IAAI;EACnB,KAAI,QAAQ,GAAG,SAAS,GAAG,IAAI;EAC/B,KAAI,aAAa,GAAG,KAAK,CAAC,KAAK;EAC/B,GAAE,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;EACjF,GAAE,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC,EAAE;EAC5B,KAAI,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,UAAU;EACxC,GAAA;EACA,GAAE,GAAG,IAAI,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,MAAM,CAAC,GAAG,GAAG;EAC7D,GAAE,IAAI,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;EAC1B,KAAA,cAAc,IAAI,GAAG;EACzB,KAAI,GAAG,IAAI,OAAO,IAAI,YAAY,CAAC,GAAG,oBAAoB,IAAI,MAAM,CAAC,GAAG,oBAAoB;EACxF,KAAA,IAAI,eAAe,EAAE;EACnB,OAAA,cAAc,IAAI,GAAG;SACrB,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,kBAAkB,IAAI,YAAY,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,GAAG,MAAM;EACzH,KAAA;EACA,GAAA;EACE,GAAA,IAAI,OAAO,EAAE;EACf,KAAI,IAAI,KAAK,CAAC,UAAU,EAAE;SACpB,GAAG,IAAI,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,GAAG;EACjD,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI;EACrE,KAAA;KACA,CAAG,MAAM,IAAI,MAAM,EAAE;OACjB,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;OAC1B,IAAI,cAAc,GAAG,EAAE;OACvB,GAAG,CAAC,KAAK,EAAE;EACf,KAAI,IAAI,UAAU,GAAG,OAAO,GAAG,GAAG,CAAC,KAAK;EACxC,KAAI,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ;EACvC,KAAI,GAAG,CAAC,UAAU,GAAG,EAAE;EACvB,KAAI,IAAI,aAAa,GAAG,EAAE,CAAC,aAAa;EACpC,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,IAAI;EAC/C,KAAI,IAAI,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,CAAC;EACxE,KAAA,EAAE,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,GAAG,aAAa;EACxD,KAAI,GAAG,IAAI,GAAG,IAAI,KAAK,CAAC;EACxB,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;EACpB,KAAA,GAAG,GAAG,EAAE;EACZ,KAAI,GAAG,IAAI,IAAI,IAAI,aAAa,CAAC,GAAG,SAAS;EAC7C,KAAI,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;EACvB,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;EACI,KAAA,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;EAC5C,OAAM,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG;EAClC,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,KAAK,IAAI,YAAY,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG;EACpG,KAAA;EACI,KAAA,GAAG,IAAI,uBAAuB;EAClC,KAAI,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,EAAE;EAC9B,OAAM,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC;EACnC,KAAA;EACA,KAAI,IAAI,WAAW,GAAG,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY;SACzE,mBAAmB,GAAG,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,oBAAoB;EACtF,KAAI,GAAG,IAAI,KAAK,IAAI,WAAW,CAAC,GAAG,KAAK,IAAI,mBAAmB,CAAC,GAAG,iBAAiB;OAChF,IAAI,oBAAoB,GAAG,GAAG;EAClC,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC1B,KAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;EAChC,OAAM,GAAG,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK;EAC7B,OAAA,IAAI,aAAa,EAAE;EACjB,SAAA,GAAG,IAAI,QAAQ;EACvB,OAAA;EACA,OAAM,GAAG,IAAI,EAAE,IAAI,oBAAoB,CAAC,GAAG,IAAI;EAC/C,KAAA,CAAK,MAAM;EACL,OAAA,IAAI,aAAa,EAAE;EACzB,SAAQ,SAAS,GAAG,cAAc,GAAG,IAAI;WACjC,GAAG,IAAI,OAAO,IAAI,SAAS,CAAC,GAAG,iBAAiB,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,oBAAoB,CAAC,GAAG,kBAAkB,IAAI,MAAM,CAAC,GAAG,8CAA8C,IAAI,SAAS,CAAC,GAAG,+BAA+B;EAC3O,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC,GAAG,WAAW,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,oBAAoB,CAAC,GAAG,IAAI;EACjG,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,IAAI,KAAK,CAAC,SAAS,EAAE;OACnB,GAAG,IAAI,OAAO,IAAI,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI;EAChH,GAAA;EACA,GAAE,GAAG,IAAI,EAAE,IAAI,cAAc,CAAC;EAC9B,GAAE,IAAI,KAAK,CAAC,KAAK,EAAE;EACf,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,eAAe;EAC5B,KAAA;EACA,GAAA,CAAG,MAAM;EACL,KAAA,GAAG,IAAI,QAAQ;EACnB,KAAI,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE;EAC7B,OAAA,GAAG,IAAI,IAAI;EACX,OAAA,IAAI,MAAM,EAAE;EAClB,SAAQ,GAAG,IAAI,EAAE,IAAI,UAAU,CAAC;EAChC,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,EAAE,IAAI,MAAM,CAAC;EAC5B,OAAA;EACA,KAAA,CAAK,MAAM;SACL,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG;EACvC,KAAA;EACI,KAAA,GAAG,IAAI,MAAM;EACjB,KAAI,aAAa,GAAG,KAAK,CAAC,OAAO;EACjC,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;EACpB,KAAA,GAAG,GAAG,EAAE;EACZ,KAAI,IAAI,UAAU,GAAG,UAAU,IAAI,EAAE;EACrC,KAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;OACpB,GAAG,GAAG,EAAE,CAAC;EACb,KAAI,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACnC,OAAM,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;EACvO,OAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;WAC9B,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB;EAC1F,OAAA;EACA,OAAM,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC3B,SAAQ,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAChJ,OAAA;EACM,OAAA,GAAG,IAAI,KAAK;EAClB,KAAA,CAAK,MAAM;EACL,OAAA,GAAG,IAAI,MAAM;EACnB,KAAA;OACI,IAAI,KAAK,GAAG,GAAG;EACnB,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EAC1B,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC5C;EACA,OAAM,IAAI,EAAE,CAAC,KAAK,EAAE;EACpB,SAAQ,GAAG,IAAI,8BAA8B,IAAI,KAAK,CAAC,GAAG,MAAM;EAChE,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,sBAAsB,IAAI,KAAK,CAAC,GAAG,mBAAmB;EACrE,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,GAAG,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,8EAA8E;EACrH,KAAA;OACI,IAAI,eAAe,GAAG,GAAG;EAC7B,KAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;EACtB,KAAA,IAAI,OAAO,EAAE;EACjB,OAAM,IAAI,KAAK,CAAC,MAAM,EAAE;EACxB,SAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;EACpC,WAAU,GAAG,IAAI,aAAa,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO;EAC9X,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;eACnB,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI;EACrH,WAAA;EACU,WAAA,GAAG,IAAI,KAAK;EACtB,SAAA;EACA,OAAA,CAAO,MAAM;EACb,SAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;EACpC,WAAU,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG;EAC9C,SAAA,CAAS,MAAM;EACf,WAAU,GAAG,IAAI,OAAO,IAAI,KAAK,CAAC,GAAG,gBAAgB,IAAI,eAAe,CAAC,GAAG,sBAAsB,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,OAAO;EAClc,WAAU,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;eACnB,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI;EACrH,WAAA;EACU,WAAA,GAAG,IAAI,OAAO;EACxB,SAAA;EACA,OAAA;OACA,CAAK,MAAM,IAAI,MAAM,EAAE;SACjB,GAAG,IAAI,iBAAiB,CAAC;EAC/B,OAAM,IAAI,EAAE,CAAC,YAAY,KAAK,KAAK,EAAE;EACrC,SAAQ,GAAG,IAAI,gBAAgB,IAAI,aAAa,IAAI,QAAQ,CAAC,GAAG,sCAAsC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAAG,0BAA0B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;EACvO,SAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;aAC9B,GAAG,IAAI,6BAA6B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,yBAAyB;EAC5F,SAAA;EACA,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;EAC7B,WAAU,GAAG,IAAI,4BAA4B,IAAI,WAAW,CAAC,GAAG,kCAAkC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG;EAClJ,SAAA;EACQ,SAAA,GAAG,IAAI,KAAK;EACpB,OAAA,CAAO,MAAM;EACL,SAAA,GAAG,IAAI,MAAM;EACrB,OAAA;EACM,OAAA,GAAG,IAAI,8EAA8E;EAC3F,OAAM,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,aAAa,EAAE;EAC9C;EACA,SAAQ,IAAI,EAAE,CAAC,KAAK,EAAE;EACZ,WAAA,GAAG,IAAI,uCAAuC;EACxD,SAAA,CAAS,MAAM;EACL,WAAA,GAAG,IAAI,4CAA4C;EAC7D,SAAA;EACA,OAAA;EACA,KAAA,CAAK,MAAM;EACX,OAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE;EAClC,SAAQ,GAAG,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,GAAG;EAC5C,OAAA,CAAO,MAAM;EACb,SAAQ,GAAG,IAAI,qBAAqB,IAAI,SAAS,CAAC,GAAG,uCAAuC,IAAI,SAAS,CAAC,GAAG,kCAAkC,IAAI,SAAS,CAAC,GAAG,wCAAwC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,GAAG,WAAW,IAAI,EAAE,CAAC,GAAG,YAAY,IAAI,QAAQ,CAAC,GAAG,aAAa,IAAI,EAAE,CAAC,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,2BAA2B,IAAI,QAAQ,CAAC,GAAG,mCAAmC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,QAAQ,CAAC,GAAG,iBAAiB,IAAI,cAAc,CAAC,GAAG,MAAM;EACrf,SAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;aACnB,GAAG,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,IAAI,QAAQ,CAAC,GAAG,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI;EACnH,SAAA;EACA,SAAQ,GAAG,IAAI,cAAc,IAAI,eAAe,CAAC,GAAG,KAAK;EACzD,OAAA;EACA,KAAA;EACI,KAAA,GAAG,IAAI,KAAK;EACZ,KAAA,IAAI,aAAa,EAAE;EACjB,OAAA,GAAG,IAAI,UAAU;EACvB,KAAA;EACA,GAAA;EACA,GAAE,OAAO,GAAG;EACZ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCjOA,IAAI,UAAU,GAAGA,WAA2C;;EAE5D,CAAA,iBAAc,GAAG;EACf,GAAA,GAAG,EAAE,2EAA2E;EAClF,GAAE,WAAW,EAAE;EACf,KAAI,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC;EACrC,IAAA;EACD,GAAA,IAAI,EAAE,QAAQ;EAChB,GAAE,YAAY,EAAE;EAChB,KAAI,MAAM,EAAE,CAAC,UAAU,CAAC;EACxB,KAAI,KAAK,EAAE,CAAC,UAAU,CAAC;EACvB,KAAI,UAAU,EAAE,CAAC,QAAQ,CAAC;OACtB,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;EACnC,IAAA;EACH,GAAE,UAAU,EAAE;EACd,KAAI,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI;EACpC,KAAI,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAC7B,KAAI,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EACjC,KAAI,YAAY,EAAE;EACZ,OAAA,IAAI,EAAE,OAAO;EACnB,OAAM,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ;EACvB,MAAA;EACL,KAAI,UAAU,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;EAChC,KAAI,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAChC,KAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAC5B,KAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAC5B,KAAI,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAC5B,KAAI,MAAM,EAAE;EACZ,OAAM,KAAK,EAAE;EACb,SAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;WACjB,CAAC,KAAK,EAAE,MAAM;EACtB;EACA;EACA;EACC,EAAA;;;;;;;;;;;GClCD,IAAI,UAAU,GAAG,wBAAwB;GACzC,IAAI,cAAc,GAAGA,aAAA,EAAyB;GAC9C,IAAI,gBAAgB,GAAGC,wBAAA,EAA8B;;EAErD,CAAA,OAAc,GAAG;EACf,GAAA,GAAG,EAAE,UAAU;EACf,GAAA,GAAG,EAAE,UAAU;EACf,GAAA,MAAM,EAAE,aAAa;EACvB,GAAE,QAAQ,EAAE;EACX,EAAA;;;EAGD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;EACzC;EACA;EACA,GAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;EACxB,GAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;OACzB,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,qBAAqB,CAAC;;EAEjE,GAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;OAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,4BAA4B,CAAC;;EAEtE,GAAA,IAAI,UAAU,EAAE;EAClB,KAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC;;EAE1C,KAAI,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI;EAClC,KAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;EACjC,OAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;WAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;EAClD,KAAA,CAAK,MAAM;EACX,OAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;EAC7C,KAAA;;EAEA,KAAI,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU;EACtC,KAAA,IAAI,UAAU,EAAE;SACd,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;EAChD,SAAQ,UAAU,GAAG;EACrB,WAAU,KAAK,EAAE;EACjB,aAAY,UAAU;eACV,EAAE,MAAM,EAAE,gFAAgF;EACtG;EACS,UAAA;EACT,OAAA;SACM,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;EAChE,KAAA;EACA,GAAA;;EAEA,GAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI;;;EAGnD,GAAA,SAAS,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;EACnD,KAAI,IAAI,SAAS;EACjB,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACvC,OAAM,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;EACvB,OAAM,IAAI,EAAE,CAAC,IAAI,IAAI,QAAQ,EAAE;EACvB,SAAA,SAAS,GAAG,EAAE;EACd,SAAA;EACR,OAAA;EACA,KAAA;;OAEI,IAAI,CAAC,SAAS,EAAE;SACd,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;EAC/C,OAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;EAC3B,KAAA;;EAEI,KAAA,IAAI,IAAI,GAAG;EACT,OAAA,OAAO,EAAE,OAAO;EAChB,OAAA,UAAU,EAAE,UAAU;EACtB,OAAA,MAAM,EAAE,IAAI;EACZ,OAAA,IAAI,EAAE,cAAc;SACpB,UAAU,EAAE,UAAU,CAAC;EACxB,MAAA;EACL,KAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B,KAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI;EAChC,GAAA;;EAEA,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,UAAU,CAAC,OAAO,EAAE;EAC7B;KACE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;EACvC,GAAE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK;EACvE,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,aAAa,CAAC,OAAO,EAAE;EAChC;EACA,GAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;EACxB,GAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;EAChC,GAAE,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;EAC3B,GAAE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;EAC9B,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACjC,KAAA,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;EAC9B,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SACjC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,EAAE;EACvC,SAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAClB,SAAA;EACR,OAAA;EACA,KAAA;EACA,GAAA;EACA,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;EACjD,GAAE,eAAe,CAAC,MAAM,GAAG,IAAI;EAC7B,GAAA,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;EACvC,sCAAqC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;;EAEzE,GAAE,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,IAAI;EAChC,GAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EACnC,GAAE,IAAI,UAAU;EAChB,KAAI,MAAM,IAAI,KAAK,CAAC,wCAAwC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;EAC1F;EACA,KAAI,OAAO,KAAK;EAChB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EC/IA,CAAA,IAAI,aAAa,GAAGD,cAAA;EACpB,KAAI,OAAO,GAAGC,cAAA;EACd,KAAI,KAAK,GAAGE,YAAA;EACZ,KAAI,YAAY,GAAGC,iBAAA;EACnB,KAAI,eAAe,GAAGC,8BAAA;EACtB,KAAI,OAAO,GAAGC,cAAA;EACd,KAAI,KAAK,GAAGI,YAAA;EACZ,KAAI,eAAe,GAAGC,WAAA;OAClB,IAAI,GAAGC,WAAA,EAAyB;;EAEpC,CAAAgB,KAAc,GAAG,GAAG;;EAEpB,CAAA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ;EACjC,CAAA,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO;EAC/B,CAAA,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;EACnC,CAAA,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa;EAC3C,CAAA,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,cAAc;EAC7C,CAAA,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;EACnC,CAAA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;EACzC,CAAA,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS;EACnC,CAAA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU;;EAErC,CAAA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU;EACrC,CAAA,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ;;EAEjC,CAAA,GAAG,CAAC,SAAS,CAAC,YAAY,GAAGf,YAAA,EAA0B;GACvD,IAAI,aAAa,GAAGC,cAAA,EAAoB;EACxC,CAAA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG;EAC5C,CAAA,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC,GAAG;EAC5C,CAAA,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM;EAClD,CAAA,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG,aAAa,CAAC,QAAQ;;GAEtD,IAAI,YAAY,GAAGC,oBAAA,EAAkC;EACrD,CAAA,GAAG,CAAC,eAAe,GAAG,YAAY,CAAC,UAAU;EAC7C,CAAA,GAAG,CAAC,eAAe,GAAG,YAAY,CAAC,UAAU;GAC7C,GAAG,CAAC,eAAe,GAAG,eAAe;;GAErC,IAAI,cAAc,GAAG,wCAAwC;;GAE7D,IAAI,mBAAmB,GAAG,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE;EAChG,CAAA,IAAI,iBAAiB,GAAG,CAAC,aAAa,CAAC;;EAEvC;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,GAAG,CAAC,IAAI,EAAE;EACnB,GAAE,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC;EAClD,GAAE,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;KACzC,SAAS,CAAC,IAAI,CAAC;EACjB,GAAE,IAAI,CAAC,QAAQ,GAAG,EAAE;EACpB,GAAE,IAAI,CAAC,KAAK,GAAG,EAAE;EACjB,GAAE,IAAI,CAAC,UAAU,GAAG,EAAE;KACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;KAEpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK;EACvC,GAAE,IAAI,CAAC,eAAe,GAAG,EAAE;EAC3B,GAAE,IAAI,CAAC,aAAa,GAAG,EAAE;EACzB,GAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE;EACtB,GAAE,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;;EAE/B,GAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,QAAQ;KACjD,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,IAAI,CAAC,sBAAsB,GAAG,IAAI;KACxE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,eAAe;EACpE,GAAE,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC;;EAE3C,GAAA,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;EACzC,GAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC;KAC3C,oBAAoB,CAAC,IAAI,CAAC;EAC5B,GAAE,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;EAC/D,GAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;KAC/E,iBAAiB,CAAC,IAAI,CAAC;EACzB,CAAA;;;;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE;EACtC,GAAE,IAAI,CAAC;EACP,GAAE,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;EACvC,KAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;EACpC,KAAI,IAAI,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,YAAY,GAAG,GAAG,CAAC;EAC/E,GAAA,CAAG,MAAM;EACL,KAAA,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;OAC7C,CAAC,GAAG,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;EACtD,GAAA;;EAEA,GAAE,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;EACrB,GAAE,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC/C,GAAE,OAAO,KAAK;EACd,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE;EAChC,GAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;KACzD,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;EACvD,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE;EACxD,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;EAC5B,KAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC;EACpG,KAAI,OAAO,IAAI;EACf,GAAA;EACE,GAAA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;EAC5B,GAAA,IAAI,EAAE,KAAK,SAAS,IAAI,OAAO,EAAE,IAAI,QAAQ;EAC/C,KAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;KAC7C,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC;EACtC,GAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;EACxB,GAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC;EAC5E,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;KAClD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC;EACnD,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;EACjD,GAAE,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO;EAC5B,GAAA,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,QAAQ;EACzD,KAAI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;EAC/C,GAAE,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,CAAC;KAChE,IAAI,CAAC,OAAO,EAAE;EAChB,KAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC;EACjD,KAAI,IAAI,CAAC,MAAM,GAAG,IAAI;EACtB,KAAI,OAAO,IAAI;EACf,GAAA;KACE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;EAC5C,GAAE,IAAI,CAAC,KAAK,IAAI,eAAe,EAAE;EAC7B,KAAA,IAAI,OAAO,GAAG,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE;EAC3D,KAAI,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;EACtE,UAAS,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;EACjC,GAAA;EACA,GAAE,OAAO,KAAK;EACd,CAAA;;;GAGA,SAAS,WAAW,CAAC,IAAI,EAAE;EAC3B,GAAE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;EAC1B,GAAA,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,IAAI;EAC1C,+BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;EACnD,+BAA8B,IAAI,CAAC,SAAS,CAAC,cAAc;EAC3B,iCAAA;EAChC,iCAAgC,SAAS;EACzC,GAAE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;EAC/B,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,SAAS,CAAC,MAAM,EAAE;EACzB,GAAA,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;EAC3C,GAAA,QAAQ,OAAO,SAAS;EAC1B,KAAI,KAAK,QAAQ,EAAE,OAAO,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;OACpE,KAAK,QAAQ,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;OAC/C,KAAK,WAAW,EAAE,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;EAC7D;EACA,CAAA;;;EAGA,CAAA,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE;EACvC,GAAE,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;EACxD,GAAA,IAAI,GAAG,EAAE;EACX,KAAI,IAAI,MAAM,GAAG,GAAG,CAAC;WACb,IAAI,GAAG,GAAG,CAAC;EACnB,SAAQ,MAAM,GAAG,GAAG,CAAC,MAAM;EAC3B,KAAI,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;OACjE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,YAAY,CAAC;EACtC,OAAA,GAAG,EAAE,GAAG;EACR,OAAA,QAAQ,EAAE,IAAI;EACd,OAAA,MAAM,EAAE,MAAM;EACd,OAAA,IAAI,EAAE,IAAI;EACV,OAAA,MAAM,EAAE,MAAM;EACpB,OAAM,QAAQ,EAAE;EAChB,MAAK,CAAC;EACN,KAAI,OAAO,CAAC;EACZ,GAAA;EACA,CAAA;;;EAGA,CAAA,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;EACrC,GAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;EACpC,GAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;EAC/E,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACA,SAAS,YAAY,CAAC,YAAY,EAAE;EACpC,GAAE,IAAI,YAAY,YAAY,MAAM,EAAE;OAClC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;OACpD,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC;EACrD,KAAI,OAAO,IAAI;EACf,GAAA;EACE,GAAA,QAAQ,OAAO,YAAY;EAC7B,KAAI,KAAK,WAAW;EACpB,OAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;EAC5C,OAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC;EACzC,OAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;EACzB,OAAM,OAAO,IAAI;EACjB,KAAI,KAAK,QAAQ;EACX,OAAA,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC;EACvD,OAAM,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;EACxD,OAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;EACxC,OAAM,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;EACrC,OAAM,OAAO,IAAI;EACjB,KAAI,KAAK,QAAQ;EACjB,OAAM,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;SACpC,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY;EACvE,OAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;EACzB,OAAA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;EAClC,OAAA,IAAI,EAAE,EAAE;EACd,SAAQ,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;EACpC,SAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;EAChC,SAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;EAC7B,OAAA;EACA;EACA,GAAE,OAAO,IAAI;EACb,CAAA;;;EAGA,CAAA,SAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;EACjD,GAAE,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;EAC9B,KAAI,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;EACnC,KAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;SACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;EACzC,OAAM,OAAO,OAAO,CAAC,MAAM,CAAC;EAC5B,KAAA;EACA,GAAA;EACA,CAAA;;;EAGA;GACA,SAAS,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE;KACjE,IAAI,OAAO,MAAM,IAAI,QAAQ,IAAI,OAAO,MAAM,IAAI,SAAS;EAC7D,KAAI,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;EACzD,GAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS;KACpC,IAAI,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM;KACrD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;EACxC,GAAE,IAAI,MAAM,EAAE,OAAO,MAAM;;KAEzB,eAAe,GAAG,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,KAAK;;EAEzE,GAAE,IAAI,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACjD,IAAI,EAAE,IAAI,eAAe,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;;EAElD,GAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,KAAK,IAAI,CAAC,cAAc;EAC3E,GAAE,IAAI,aAAa;EACnB,GAAE,IAAI,YAAY,IAAI,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EACxF,KAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;;EAErC,GAAE,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;;EAEhD,GAAE,IAAI,SAAS,GAAG,IAAI,YAAY,CAAC;EAC/B,KAAA,EAAE,EAAE,EAAE;EACN,KAAA,MAAM,EAAE,MAAM;EACd,KAAA,SAAS,EAAE,SAAS;EACpB,KAAA,QAAQ,EAAE,QAAQ;EACtB,KAAI,IAAI,EAAE;EACV,IAAG,CAAC;;EAEJ,GAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS;KAC/D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;;EAEtC,GAAE,IAAI,YAAY,IAAI,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;;EAEtE,GAAE,OAAO,SAAS;EAClB,CAAA;;;EAGA;EACA,CAAA,SAAS,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;EACnC,GAAE,IAAI,SAAS,CAAC,SAAS,EAAE;EAC3B,KAAI,SAAS,CAAC,QAAQ,GAAG,YAAY;EACrC,KAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;EAC1C,KAAI,YAAY,CAAC,MAAM,GAAG,IAAI;EAC1B,KAAA,YAAY,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY;EAClD,KAAI,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;EACxC,OAAM,YAAY,CAAC,MAAM,GAAG,IAAI;EAChC,KAAI,OAAO,YAAY;EACvB,GAAA;EACA,GAAE,SAAS,CAAC,SAAS,GAAG,IAAI;;EAE5B,GAAE,IAAI,WAAW;EACjB,GAAE,IAAI,SAAS,CAAC,IAAI,EAAE;EACtB,KAAI,WAAW,GAAG,IAAI,CAAC,KAAK;EAC5B,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS;EAC/B,GAAA;;EAEA,GAAE,IAAI,CAAC;KACL,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;EAChF,GAAA,MAAM,CAAC,EAAE;OACP,OAAO,SAAS,CAAC,QAAQ;EAC7B,KAAI,MAAM,CAAC;EACX,GAAA;EACU,WAAA;EACV,KAAI,SAAS,CAAC,SAAS,GAAG,KAAK;OAC3B,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW;EAChD,GAAA;;EAEA,GAAE,SAAS,CAAC,QAAQ,GAAG,CAAC;EACxB,GAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;EACzB,GAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;EAC7B,GAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;EACzB,GAAE,OAAO,CAAC;;;EAGV;EACE,GAAA,SAAS,YAAY,GAAG;EAC1B;EACA,KAAI,IAAI,SAAS,GAAG,SAAS,CAAC,QAAQ;OAClC,IAAI,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACjD,KAAI,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;EAC1C,KAAI,OAAO,MAAM;EACjB,GAAA;EACA,CAAA;;;GAGA,SAAS,WAAW,CAAC,IAAI,EAAE;KACzB,QAAQ,IAAI,CAAC,QAAQ;EACvB,KAAI,KAAK,MAAM,EAAE,OAAO,WAAW;EACnC,KAAI,KAAK,IAAI,EAAE,OAAO,MAAM;EACxB,KAAA,SAAS,OAAO,OAAO;EAC3B;EACA,CAAA;;EAEA;GACA,SAAS,MAAM,CAAC,MAAM,EAAE;EACxB,GAAE,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC;KAClE,OAAO,MAAM,CAAC,EAAE;EAClB,CAAA;;EAEA;GACA,SAAS,OAAO,CAAC,MAAM,EAAE;EACzB,GAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,CAAC;KAC/D,OAAO,MAAM,CAAC,GAAG;EACnB,CAAA;;;GAGA,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,GAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;EACxD,KAAI,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;EACtD,GAAE,OAAO,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;EAChC,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE;EACrC,GAAE,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM;EAChC,GAAE,IAAI,CAAC,MAAM,EAAE,OAAO,WAAW;EACjC,GAAE,OAAO,GAAG,OAAO,IAAI,EAAE;EACzB,GAAE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS;EAC5E,GAAE,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO;;KAEtE,IAAI,IAAI,GAAG,EAAE;EACf,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACtC,KAAI,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;EACrB,KAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,SAAS;EACrE,GAAA;KACE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;EACzC,CAAA;;;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAA,SAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;EACjC,GAAE,IAAI,OAAO,MAAM,IAAI,QAAQ,EAAE,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC;EAC5D,GAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM;EAC9B,GAAE,OAAO,IAAI;EACb,CAAA;;;GAGA,SAAS,oBAAoB,CAAC,IAAI,EAAE;EACpC,GAAE,IAAI,WAAW;EACjB,GAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;EACpB,KAAA,WAAW,GAAG,WAA2B;OACzC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;EAC1D,GAAA;EACE,GAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;KAC/B,IAAI,UAAU,GAAG,WAA2C;EAC9D,GAAE,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC;KACjF,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC;EACtD,GAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,GAAG,cAAc;EAC9D,CAAA;;;GAGA,SAAS,iBAAiB,CAAC,IAAI,EAAE;EACjC,GAAE,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO;KACpC,IAAI,CAAC,WAAW,EAAE;EACpB,GAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EAC7D,QAAO,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;EACzE,CAAA;;;GAGA,SAAS,iBAAiB,CAAC,IAAI,EAAE;KAC/B,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;OACnC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;EACzC,KAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;EAChC,GAAA;EACA,CAAA;;;GAGA,SAAS,kBAAkB,CAAC,IAAI,EAAE;KAChC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;OACpC,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;EAC3C,KAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;EAClC,GAAA;EACA,CAAA;;;EAGA,CAAA,SAAS,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;EAC/B,GAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;OACrC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,GAAG,kBAAkB,CAAC;EACxE,CAAA;;;GAGA,SAAS,oBAAoB,CAAC,IAAI,EAAE;KAClC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;EACtC,GAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE;EACjD,KAAI,OAAO,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;EAC3C,GAAE,OAAO,QAAQ;EACjB,CAAA;;;GAGA,SAAS,SAAS,CAAC,IAAI,EAAE;EACzB,GAAE,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;EAChC,GAAE,IAAI,MAAM,KAAK,KAAK,EAAE;EACxB,KAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC;EACtD,GAAA,CAAG,MAAM;EACT,KAAI,IAAI,MAAM,KAAK,SAAS,EAAE,MAAM,GAAG,OAAO;EAC9C,KAAI,IAAI,EAAE,OAAO,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;EACjF,OAAM,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;EAC1E,KAAI,IAAI,CAAC,MAAM,GAAG,MAAM;EACxB,GAAA;EACA,CAAA;;;EAGA,CAAA,SAAS,IAAI,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECrfhB,IAAM,GAAG,GAAIc,GAAoB,IAAI,IAAI;EAElC,IAAM,UAAU,GAAW,WAAA;EAElC,IAAM,OAAO,GAAiB;EAC1B,IAAA,SAAS,EAAE,KAAK;EAChB,IAAA,OAAO,EAAE,IAAI;EACb,IAAA,YAAY,EAAE;EACjB,CAAA;EAED,SAAS,UAAU,CAAC,GAAgC,EAAE,MAAmC,EAAA;EACrF,IAAA,IAAM,GAAG,GAAa,IAAI,GAAG,CAAC,OAAO,CAAC;EACtC,IAAA,IAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;EACpC,IAAA,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;MAC7B,OAAO;EACH,QAAA,OAAO,EAAA,OAAA;UACP,MAAM,EAAE,QAAQ,CAAC;EACpB,KAAA;EACL;EAcM,SAAU,SAAS,CAAC,GAAgB,EAAA;EACtC,IAAA,OAAO,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC;EACvC;;EC9BM,SAAU,YAAY,CAAC,GAAiC,EAAA;EAC1D,IAAA,OAAQ,GAAmB,CAAC,OAAO,KAAK,SAAS,IAAK,GAAmB,CAAC,WAAW,KAAK,SAAS,IAAK,GAAmB,CAAC,SAAS,KAAK,SAAS;EACvJ;;ECJA,SAAS,YAAY,CAAC,SAAqC,EAAE,EAAU,EAAE,GAAoB,EAAA;EACzF,IAAA,IAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,QAAQ;MACxC,QAAQ,SAAS;EACb,QAAA,KAAK,IAAI;EACL,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,CAAA,CAAjG,CAAiG;EAC1H,QAAA,KAAK,IAAI;EACL,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,CAAA,CAAjG,CAAiG;EAC1H,QAAA,KAAK,GAAG;EACJ,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA,CAAlB,CAAkB;EAC3C,QAAA,KAAK,IAAI;EACL,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAA,CAAnB,CAAmB;EAC5C,QAAA,KAAK,GAAG;EACJ,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,EAAE,CAAC,GAAG,GAAG,CAAA,CAAlB,CAAkB;EAC3C,QAAA,KAAK,IAAI;EACL,YAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAA,CAAnB,CAAmB;EAC5C,QAAA;EACI,YAAA,MAAM,IAAI,KAAK,CAAC,qCAA8B,SAAS,CAAE,CAAC;;EAEtE;AAEA,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EA2C/B,IAAA,SAAA,aAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MArBA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;cAC3B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,cAAA,CAAc;EAC/B,gBAAA,GAAG,EAAE,0BAAA,CAAA,MAAA,CAA0B,IAAI,CAAC,WAAW,EAAE,EAAA,IAAA,CAAG;kBACpD,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;EAC7D,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;cAC1B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,aAAA,CAAa;EAC9B,gBAAA,GAAG,EAAE,yBAAA,CAAA,MAAA,CAAyB,IAAI,CAAC,UAAU,EAAE,EAAA,IAAA,CAAG;kBAClD,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;EACzD,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAgB,EAAA;UAClB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE;MAChE,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE;EACjC,YAAA,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;EAC/B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;EAC3B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ;WAC1B;MACL,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAkB,EAAA;EACtB,QAAA,OAAO;EACF,aAAA,WAAW,CAAC,GAAG,CAAC,aAAa;EAC7B,aAAA,UAAU,CAAC,GAAG,CAAC,YAAY;EAC3B,aAAA,SAAS,CAAC,GAAG,CAAC,SAAS;EACvB,aAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;MAE/B,CAAC;MAEM,aAAA,CAAA,OAAO,GAAd,UAAe,GAAkB,EAAA;UAC7B,OAAO,IAAI,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC3C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO7V,cAAO,CAAC;EACX,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;EAC/B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;EAC7B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;EAC3B,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ;EAC1B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACxD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MAC/D,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,eAAsB,EAAA;EAC/B,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;EAC7B,QAAA,OAAO,eAAe,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;EAC1B,YAAA,IAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;EACtB,YAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;EAC5B,gBAAA,OAAO,MAAM,CAAC,IAAI,EAAE;cACxB;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC,CAAC;MACN,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,UAAwB,eAAsB,EAAA;EAC1C,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;EACpB,YAAA,KAAK,IAAI;EACT,YAAA,KAAK,OAAO;kBACR,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,UAAU,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,SAAS,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,GAAA,CAAG;EACxG,YAAA;kBACI,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,UAAU,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,SAAS,EAAE,cAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAE;;MAEtG,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,eAAsB,EAAA;EAC/B,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;UAC5B,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;EAChD,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;EACpB,YAAA,KAAK,OAAO;kBACR,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;EAChE,oBAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,IAAI,CAAA,CAAJ,CAAI;kBAC7B;kBACA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA,CAApD,CAAoD;EAC7E,YAAA,KAAK,IAAI;kBACL,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;EACvC,oBAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,IAAI,CAAA,CAAJ,CAAI;kBAC7B;kBACA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,KAAK,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAnF,CAAmF,CAAC,CAAA,CAArG,CAAqG;EAC9H,YAAA;EACI,gBAAA,IAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;EACpB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE;EACtE,oBAAA,OAAO,UAAC,QAAQ,EAAA,EAAK,OAAA,IAAI,CAAA,CAAJ,CAAI;kBAC7B;kBACA,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;;MAE1D,CAAC;EApID,IAAA,UAAA,CAAA;EALC,QAAAG,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE;EACtG,YAAA,QAAQ,EAAE,IAAI;EACd,YAAA,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAlB,CAAkB;cAC1D,QAAQ,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,EAAjD;WAC5C,CAAC;;EACiC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;EAQnC,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EACjG,YAAA,QAAQ,EAAE,IAAI;EACd,YAAA,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAlB,CAAkB;cAC1D,QAAQ,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAA5C;WAC5C,CAAC;;EACgC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAIlC,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;;EACpC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;EAErD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,qBAAqB,CAAC;;EAChB,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;MAuHrC,OAAA,aAAC;GAAA,CA7IkCD,kBAAW,CAAA;EA8I9C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;AAElD,MAAA,YAAA,kBAAA,UAAA,MAAA,EAAA;MAAkC,SAAA,CAAA,YAAA,EAAA,MAAA,CAAA;EAmC9B,IAAA,SAAA,YAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MAxBA,YAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;cACtB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,UAAA,CAAA,CAAA,MAAA,CAAW,IAAI,CAAC,MAAM,EAAE,CAAE;EAC3C,gBAAA,GAAG,EAAE,qBAAA,CAAA,MAAA,CAAqB,IAAI,CAAC,MAAM,EAAE,EAAA,IAAA,CAAG;kBAC1C,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC9D,aAAA,CAAC;UACN;EACA,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;cAC3D,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,UAAA,CAAA,CAAA,MAAA,CAAW,IAAI,CAAC,MAAM,EAAE,CAAE;EAC3C,gBAAA,GAAG,EAAE,uBAAA,CAAA,MAAA,CAAuB,IAAI,CAAC,MAAM,EAAE,EAAA,IAAA,CAAG;EAC5C,gBAAA,IAAI,EAAE;EACT,aAAA,CAAC;UACN;EACA,QAAA,KAAsB,IAAA,EAAA,GAAA,CAAoB,EAApB,EAAA,GAAA,IAAI,CAAC,aAAa,EAAE,EAApB,EAAA,GAAA,EAAA,CAAA,MAAoB,EAApB,EAAA,EAAoB,EAAE;EAAvC,YAAA,IAAM,OAAO,GAAA,EAAA,CAAA,EAAA,CAAA;EACd,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,MAAM,EAAE,EAAA,WAAA,CAAW,CAAC,CAAC;UACnF;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAW,EAAA;UACb,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;MAC7D,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW;WAC7B;MACL,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAA0B,EAAA;EAC9B,QAAA,OAAO;EACF,aAAA,MAAM,CAAC,GAAG,CAAC,MAAM;EACjB,aAAA,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;MAElC,CAAC;MAEM,YAAA,CAAA,OAAO,GAAd,UAAe,GAA0B,EAAA;UACrC,OAAO,IAAI,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC1C,CAAC;MAID,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAmB,EAAA;UAC3B,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,KAAK,EAAE,CAAA,CAAf,CAAe,CAAC;UAClF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAA9B,CAA8B,CAAC,CAAC;EAC/D,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;MACzC,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC;EACX,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;EACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,IAAI,EAAE,CAAA,CAAd,CAAc,CAAC;EAC7D,YAAA,SAAS,EAAE,IAAI,CAAC,eAAe;EAClC,SAAA,CAAC;MACN,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,KAAK,EAAE,CAAA,CAAf,CAAe,CAAC;MAC7D,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,QAAmG,EAAA;UAC9G,KAAsB,IAAA,EAAA,GAAA,CAAQ,EAAR,UAAA,GAAA,QAAQ,EAAR,sBAAQ,EAAR,EAAA,EAAQ,EAAE;EAA3B,YAAA,IAAM,OAAO,GAAA,UAAA,CAAA,EAAA,CAAA;cACd,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa;mBACjC,KAAK,CAAC,IAAI;EACV,iBAAA,WAAW,CAAC,OAAO,CAAC,WAAW;EAC/B,iBAAA,UAAU,CAAC,OAAO,CAAC,UAAU;EAC7B,iBAAA,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAChC;UACL;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;MACjC,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;MACnD,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE,CAAC,eAAe,EAAE;MAC7D,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE;MACvC,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;EACI,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;UACxC,IAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA,CAA/B,CAA+B,CAAC;UAC3F,OAAO,UAAC,GAAW,EAAA,EAAc,OAAA,cAAc,CAAC,KAAK,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,CAAA,CAAzD,CAAyD;MAC9F,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;EACI,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;UACxC,IAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAA,CAA1C,CAA0C,CAAC;EAC1G,QAAA,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;MACxC,CAAC;EA5HD,IAAA,UAAA,CAAA;EAJC,QAAAG,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,YAAA,EAAgC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE;EACjG,YAAA,QAAQ,EAAE,IAAI;cACd,QAAQ,EAAE,UAAC,CAAe,EAAA,EAAc,OAAA,CAAC,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAA7C;WAC3C,CAAC;;EAC4B,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;EAI9B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;;EACrC,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;MAyH7C,OAAA,YAAC;GAAA,CApIiCD,kBAAW,CAAA;EAqI7C,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS;AAE1C,MAAA,YAAA,kBAAA,UAAA,MAAA,EAAA;MAAkC,SAAA,CAAA,YAAA,EAAA,MAAA,CAAA;EA+B9B,IAAA,SAAA,YAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MAdA,YAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;cAC1B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,aAAA,CAAa;EAC9B,gBAAA,GAAG,EAAE,yBAAA,CAAA,MAAA,CAAyB,IAAI,CAAC,UAAU,EAAE,EAAA,IAAA,CAAG;kBAClD,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;EACzD,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAW,EAAA;UACb,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;MAID,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAmB,EAAA;EAC3B,QAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;EACxB,YAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;EACpB,gBAAA,KAAK,QAAQ;EACT,oBAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;EACxB,gBAAA,KAAK,QAAQ;EACb,gBAAA;EACI,oBAAA,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;;UAEpC;EACA,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;EACb,QAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;EACvB,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;UAC5B;eAAO;EACH,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;UAC5B;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO,IAAI,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;MAC1D,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE;EAC/B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;EAC3B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW;WAC1B;MACL,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAgC,EAAA;EACpC,QAAA,OAAO;EACF,aAAA,UAAU,CAAC,GAAG,CAAC,YAAY;EAC3B,aAAA,SAAS,CAAC,GAAG,CAAC,SAAS;EACvB,aAAA,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;MAE/B,CAAC;MAEM,YAAA,CAAA,OAAO,GAAd,UAAe,GAAgC,EAAA;UAC3C,OAAO,IAAI,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC1C,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC;EACX,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;EAC7B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;EAC3B,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;EACnB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS;EAC5B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACxD,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;EACI,QAAA,OAAO,UAAG,IAAI,CAAC,UAAU,EAAE,cAAI,IAAI,CAAC,SAAS,EAAE,cAAI,IAAI,CAAC,WAAW,EAAE,CAAE;MAC3E,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;EACI,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;MAChF,CAAC;EApGD,IAAA,UAAA,CAAA;EAJC,QAAAG,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EACjG,YAAA,QAAQ,EAAE,IAAI;cACd,QAAQ,EAAE,UAAC,CAAe,EAAA,EAAc,OAAA,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAA5C;WAC3C,CAAC;;EACgC,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAIlC,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;EACrB,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;EAErD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC;;EACa,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAIhD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;;EACtB,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;MA2FlD,OAAA,YAAC;GAAA,CA5GiCD,kBAAW,CAAA;EA6G7C,YAAY,CAAC,SAAS,CAAC,MAAM,IAAI,eAAe;AAIhD,MAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EAkBzB,IAAA,SAAA,OAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;;MAEvB;EAVA,IAAA,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,YAAY,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAArC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;EACb,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;UACrD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,QAAQ;EACd,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;WAC9B;MACL,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAiB,EAAA;EACrB,QAAA,OAAO;EACF,aAAA,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;MAEnC,CAAC;EAEM,IAAA,OAAA,CAAA,OAAO,GAAd,UAAe,EAAoB,EAAE,GAAiB,EAAA;UAClD,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;MACvC,CAAC;MAID,OAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAA0B,EAAA;UACjC,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,CAAd,CAAc,CAAC;UAC/E,IAAM,aAAa,GAAmB,EAAE;UACxC,IAAM,aAAa,GAAmB,EAAE;EACxC,QAAA,CAAC,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA;EACR,YAAA,IAAI4V,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE;kBAC7B,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;cAChD;mBAAO;kBACH,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;cAChD;EACJ,QAAA,CAAC,CAAC;EACF,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;EAChC,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;EAChC,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;MAChC,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAA8B,EAAA;UACxC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;MACrC,CAAC;;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;UACI,OAAO9V,cAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;cACpC,OAAO;EACH,gBAAA,MAAM,EAAE,CAAC,CAAC,IAAI;eACjB;UACL,CAAC,CAAC,CAAC;MACP,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,CAAC;MACzC,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,MAAM,EAAE,CAAA,CAAf,CAAe,CAAC;MACnE,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,IAAM,aAAa,GAAa,EAAE;EAClC,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAyB,EAAzB,EAAA,GAAA,IAAI,CAAC,kBAAkB,EAAE,EAAzB,EAAA,GAAA,EAAA,CAAA,MAAyB,EAAzB,EAAA,EAAyB,EAAE;EAA3C,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;cACb,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,aAAa,EAAE;cACvD,IAAM,cAAc,GAAa,EAAE;EACnC,YAAA,KAAsB,IAAA,EAAA,GAAA,CAAsB,EAAtB,EAAA,GAAA,MAAM,CAAC,aAAa,EAAE,EAAtB,EAAA,GAAA,EAAA,CAAA,MAAsB,EAAtB,EAAA,EAAsB,EAAE;EAAzC,gBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,EAAA,CAAA;kBACd,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;kBACxC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;cAC9C;EACA,YAAA,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,CAAC;UACpD;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,eAAe,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,aAAa,CAAC;MAC9C,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,CAAE;MACvB,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,IAAI,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,WAAE;UAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,IAAI;UACpD,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,YAAY,EAAE,CAAA,CAArB,CAAqB,CAAC;EACxE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA;EAClB,YAAA,OAAO,OAAO,CAAC,KAAK,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,GAAG,CAAC,CAAA,CAAX,CAAW,CAAC;EAC/C,QAAA,CAAC,CAAC;MACN,CAAC;;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,CAAd,CAAc,CAAC;MAC/D,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,CAAd,CAAc,CAAC;MAC/D,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;UACI,OAAAD,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAW,IAAI,CAAC,kBAAkB,EAAE,SAAK,IAAI,CAAC,kBAAkB,EAAE,EAAA,IAAA,CAAA;MACtE,CAAC;MAxHM,OAAA,CAAA,MAAM,GAAG,YAAY;MACrB,OAAA,CAAA,OAAO,GAAG,aAAa;EAG9B,IAAA,UAAA,CAAA;EADC,QAAAI,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;EACtC,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;EAG5C,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;;EACtC,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,cAAA,EAAA,MAAA,CAAA;MAkHhD,OAAA,OAAC;GAAA,CA1H4B,QAAQ,CAAA;EA2HrC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU;;ACthBtC,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EAsB/B,IAAA,SAAA,aAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MAdA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;cACrB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,QAAA,CAAQ;EACzB,gBAAA,GAAG,EAAE,oBAAA,CAAA,MAAA,CAAoB,IAAI,CAAC,KAAK,EAAE,EAAA,IAAA,CAAG;kBACxC,IAAI,EAAE,WAAA,CAAA,MAAA,CAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EACnD,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAW,EAAA;UACb,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;MACzB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;MACvB,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,KAAa,EAAA;EACjB,QAAA,OAAO;eACF,KAAK,CAAC,KAAK,CAAC;MAErB,CAAC;MAEM,aAAA,CAAA,OAAO,GAAd,UAAe,KAAa,EAAA;UACxB,OAAO,IAAI,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;MAC7C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOH,cAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MAChC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;MACnC,CAAC;EAnDD,IAAA,UAAA,CAAA;EAJC,QAAAG,cAAO,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;EAC3F,YAAA,QAAQ,EAAE,IAAI;cACd,QAAQ,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAnC;WAC5C,CAAC;;EAC2B,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;MAoDjC,OAAA,aAAC;GAAA,CA3DkCD,kBAAW,CAAA;EA4D9C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;EAKlD,SAAS,UAAU,CAAC,MAAa,EAAE,QAA0B,EAAA;MACzD,OAAO,MAAM,CAAC,MAAM;EACxB;EAEA,IAAM,MAAM,GAAgC;EACxC,IAAA,KAAK,EAAE,UAAU;EACjB,IAAA,GAAG,EAAE6V,UAAK;EACV,IAAA,GAAG,EAAEC,UAAK;EACV,IAAA,IAAI,EAAEC,WAAM;EACZ,IAAA,MAAM,EAAEC,aAAQ;EAChB,IAAA,QAAQ,EAAEC,eAAU;EACpB,IAAA,SAAS,EAAEC,gBAAW;EACtB,IAAA,GAAG,EAAEC;GACR;AAGD,MAAA,cAAA,kBAAA,UAAA,MAAA,EAAA;MAAoC,SAAA,CAAA,cAAA,EAAA,MAAA,CAAA;EAiDhC,IAAA,SAAA,cAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EA7BA,IAAA,cAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;EACI,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO;MAC7E,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;EACI,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,MAAM;MAC5E,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;cAC1B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,OAAO,EAAE,EAAA,aAAA,CAAa;EAChD,gBAAA,GAAG,EAAE,yBAAA,CAAA,MAAA,CAAyB,IAAI,CAAC,UAAU,EAAE,EAAA,IAAA,CAAG;kBAClD,IAAI,EAAE,WAAA,CAAA,MAAA,CAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EACnD,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;cAC/B,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,OAAO,EAAE,EAAA,aAAA,CAAa;EAChD,gBAAA,GAAG,EAAE,8BAAA,CAAA,MAAA,CAA8B,IAAI,CAAC,eAAe,EAAE,EAAA,IAAA,CAAG;kBAC5D,IAAI,EAAE,WAAA,CAAA,MAAA,CAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EACnD,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAW,EAAA;UACb,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;MAC3B,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;cAC7B,OAAO;EACH,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,gBAAA,IAAI,EAAE;eACT;UACL;UACA,OAAO;EACH,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,YAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAyB;EAC5C,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE;EAC5B,YAAA,gBAAgB,EAAE,IAAI,CAAC,eAAe;WACzC;MACL,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAkC,EAAA;UACtC,IAAM,MAAM,GAAG;EACV,aAAA,OAAO,CAAC,GAAG,CAAC,OAAO;EACnB,aAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;EAEvB,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;EACtB,YAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;EAChC,YAAA,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC;UAChD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAEM,cAAA,CAAA,OAAO,GAAd,UAAe,GAAkC,EAAA;UAC7C,OAAO,IAAI,cAAc,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC5C,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOrW,cAAO,CAAC;EACX,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE;EACrB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;EACzB,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;EAC9B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;MACnC,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;MAChC,CAAC;MAED,cAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAqC,EAAA;UAA/C,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAY,CAAC,CAAC,MAAM,EAAE,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAxB,CAAwB,CAAC;MACtF,CAAC;EAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAY,CAAC;EAClD,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;EACpC,QAAA,IAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;UAC9C,IAAI,eAAe,EAAE;EACjB,YAAA,OAAO,UAAC,MAAa,EAAA;kBACjB,OAAO,QAAQ,CAAC,MAAM,EAAE,UAAA,IAAI,EAAA,EAAI,OAAA,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA,CAA1C,CAA0C,CAAC;EAC/E,YAAA,CAAC;UACL;eAAO;EACH,YAAA,OAAO,UAAC,MAAa,EAAA;EACjB,gBAAA,OAAO,QAAQ,CAAC,MAAM,EAAE,UAAA,IAAI,EAAA,EAAI,OAAA,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAjB,CAAiB,CAAC;EACtD,YAAA,CAAC;UACL;MACJ,CAAC;EA7HD,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAC,CAAiB,EAAA,EAAK,OAAA,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA,CAAd,CAAc,EAAE,CAAC;;EACnF,KAAA,EAAA,cAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE/B,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAC,CAAiB,IAAK,OAAA,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAAZ,CAAY,EAAE,CAAC;;EAClJ,KAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAMvC,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAA,EAAkC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;EACnG,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAiB,EAAA,EAAK,OAAA,CAAC,CAAC,iBAAiB,EAAE,CAAA,CAArB,CAAqB;cACrD,QAAQ,EAAE,UAAC,CAAiB,EAAA,EAAc,OAAA,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAxC;WAC7C,CAAC;;EACgC,KAAA,EAAA,cAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAOlC,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAA,EAAkC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;EAClG,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAiB,EAAA,EAAK,OAAA,CAAC,CAAC,sBAAsB,EAAE,CAAA,CAA1B,CAA0B;cAC1D,QAAQ,EAAE,UAAC,CAAiB,EAAA,EAAc,OAAA,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAA7C;WAC7C,CAAC;;EACqC,KAAA,EAAA,cAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,MAAA,CAAA;MA+G3C,OAAA,cAAC;GAAA,CAlImCD,kBAAW,CAAA;EAmI/C,cAAc,CAAC,SAAS,CAAC,MAAM,IAAI,iBAAiB;EAEpD;AACA,MAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EAsBzB,IAAA,SAAA,OAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAbA,IAAA,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,YAAY,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAvC,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;UAC/D;EACA,QAAA,KAAkB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAzC,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;UAClE;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,SAAS;EACf,YAAA,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;EAC3B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;WAC9B;MACL,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAkB,EAAA;EACtB,QAAA,OAAO;EACF,aAAA,QAAQ,CAAC,GAAG,CAAC,UAAU;EACvB,aAAA,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;MAEnC,CAAC;MAEM,OAAA,CAAA,OAAO,GAAd,UAAe,GAAkB,EAAA;UAC7B,OAAO,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACrC,CAAC;MAID,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAY,EAAA;UACjB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;UACvE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAA9B,CAA8B,CAAC,CAAC;EAC7D,QAAA,OAAO,IAAI;MACf,CAAC;MAID,OAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAwB,EAAA;UAC/B,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;UAC9E,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,QAAQ,EAAA,EAAI,OAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA,CAAhC,CAAgC,CAAC,CAAC;EACxE,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC;EACX,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,IAAI,EAAE,CAAA,CAAT,CAAS,CAAC;EAC3C,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,IAAI,EAAE,CAAA,CAAT,CAAS;EAC5D,SAAA,CAAC;MACN,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,OAA4B,EAAA;UACvC,KAAqB,IAAA,EAAA,GAAA,CAAO,EAAP,SAAA,GAAA,OAAO,EAAP,qBAAO,EAAP,EAAA,EAAO,EAAE;EAAzB,YAAA,IAAM,MAAM,GAAA,SAAA,CAAA,EAAA,CAAA;cACb,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,aAAa;mBAC/B,KAAK,CAAC,IAAI;EACV,iBAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CACvB;UACL;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,KAAK,EAAE,CAAA,CAAf,CAAe,CAAC;MAC3D,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,CAAC;MACzC,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACjD,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAe,EAAA;EACjB,QAAA,KAAoB,IAAA,EAAA,GAAA,CAAe,EAAf,EAAA,GAAA,IAAI,CAAC,QAAQ,EAAE,EAAf,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,EAAA,EAAe,EAAE;EAAhC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,EAAE;EACtB,gBAAA,OAAO,KAAK;cAChB;UACJ;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,eAA0E,EAAA;UAC3F,KAA6B,IAAA,EAAA,GAAA,CAAe,EAAf,iBAAA,GAAA,eAAe,EAAf,6BAAe,EAAf,EAAA,EAAe,EAAE;EAAzC,YAAA,IAAM,cAAc,GAAA,iBAAA,CAAA,EAAA,CAAA;EACrB,YAAA,IAAM,SAAS,GAAG,IAAI,cAAc;mBAC/B,KAAK,CAAC,IAAI;EACV,iBAAA,OAAO,CAAC,cAAc,CAAC,KAAK;EAC5B,iBAAA,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;EAElC,YAAA,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;EAClC,gBAAA,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC;cAC/C;cACA,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;UACzC;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,UAAA,aAAa,EAAA,EAAI,OAAA,aAAa,CAAC,KAAK,EAAE,CAAA,CAArB,CAAqB,CAAC;MAC/E,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;UACI,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,GAAG,CAAC;MAChD,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;UAAlD,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,gBAAK,CAAC,aAAa,CAAA,IAAA,CAAA,IAAA,EAAC,QAAQ,CAAC;UACxD,IAAM,MAAM,GAAkB,EAAE;EAChC,QAAA,IAAM,MAAM,GAAoB,IAAI,CAAC,YAAY,EAAE;UACnD,KAAsB,IAAA,EAAA,GAAA,CAAM,EAAN,QAAA,GAAA,MAAM,EAAN,oBAAM,EAAN,EAAA,EAAM,EAAE;EAAzB,YAAA,IAAM,OAAO,GAAA,QAAA,CAAA,EAAA,CAAA;cACd,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;EAChD,YAAA,IAAM,KAAK,GAAG;kBACV,IAAI,EAAE,YAAY,GAAG,YAAY,CAAC,IAAI,GAAG,QAAQ;EACjD,gBAAA,EAAE,EAAE,OAAO,CAAC,KAAK;eACL;EAChB,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;UACtB;EACA,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAAnC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;EACd,gBAAA,IAAM,aAAa,GAAgB;EAC/B,oBAAA,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE;EAChB,oBAAA,IAAI,EAAE;mBACT;EACD,gBAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;cAC9B;UACJ;EACA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;cAChB,IAAI,aAAa,GAAkB,MAAM;EACzC,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;EACf,gBAAA,IAAM,IAAI,GAAgB;EACtB,oBAAA,EAAE,EAAE,QAAQ;EACZ,oBAAA,IAAI,EAAE,SAAS;EACf,oBAAA,QAAQ,EAAE;mBACb;EACD,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;EACjB,gBAAA,aAAa,GAAG,IAAI,CAAC,QAAQ;cACjC;EACA,YAAA,IAAM,SAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,KAAK,EAAE,CAAA,CAAf,CAAe,CAAC;EACtD,YAAA,aAAa,CAAC,IAAI,CAAA,KAAA,CAAlB,aAAa,EAAS,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA;EAC9C,gBAAA,OAAO,KAAI,CAAC,WAAW,EAAE,IAAI,SAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;EAC9D,YAAA,CAAC,CAAC,CAAA;UACN;EACA,QAAA,OAAO,YAAA,EAAM,OAAA,MAAM,CAAA,CAAN,CAAM;MACvB,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,IAAM,QAAQ,GAAa,EAAE;EAC7B,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,YAAY,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAjC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;cACT,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;UAC7B;EACA,QAAA,KAAiB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAxC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE;kBACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;cAClC;UACJ;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,eAAe,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,QAAQ,CAAC;MACzC,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,IAAI,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,WAAE;UAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,IAAI;UACpD,IAAM,YAAY,GAAa,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;UACxE,IAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;EACpD,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;EAC3D,QAAA,CAAC,CAAC;UACF,IAAM,MAAM,GAAGsW,WAAM;eAChB,GAAG,CAAC,UAAC,GAA2B,EAAA;cAC7B,IAAI,GAAG,GAAG,EAAE;cACZ,KAA2B,IAAA,EAAA,GAAA,CAAY,EAAZ,cAAA,GAAA,YAAY,EAAZ,0BAAY,EAAZ,EAAA,EAAY,EAAE;EAApC,gBAAA,IAAM,YAAY,GAAA,cAAA,CAAA,EAAA,CAAA;EACnB,gBAAA,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC;cAClC;EACA,YAAA,OAAO,GAAG;EACd,QAAA,CAAC;EACA,aAAA,OAAO,CAAC,IAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA;cAC/B,IAAM,GAAG,GAEL,IAAI;cACR,OAAO,GAAG,CAAC,GAAG;cACd,KAA2B,IAAA,EAAA,GAAA,CAAY,EAAZ,cAAA,GAAA,YAAY,EAAZ,0BAAY,EAAZ,EAAA,EAAY,EAAE;EAApC,gBAAA,IAAM,YAAY,GAAA,cAAA,CAAA,EAAA,CAAA;EACnB,gBAAA,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;cACnD;cACA,KAAiB,IAAA,EAAA,GAAA,CAAc,EAAd,gBAAA,GAAA,cAAc,EAAd,4BAAc,EAAd,EAAA,EAAc,EAAE;EAA5B,gBAAA,IAAM,EAAE,GAAA,gBAAA,CAAA,EAAA,CAAA;EACT,gBAAA,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;cAC3C;EACA,YAAA,OAAO,GAAG;EACd,QAAA,CAAC,CAAC;EAEN,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;EAClC,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;cACjB,IAAM,MAAM,GAAG,EAAE;cACjB,KAAoB,IAAA,EAAA,GAAA,CAAS,EAAT,WAAA,GAAA,SAAS,EAAT,uBAAS,EAAT,EAAA,EAAS,EAAE;EAA1B,gBAAA,IAAM,KAAK,GAAA,WAAA,CAAA,EAAA,CAAA;EACZ,gBAAA,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;cACpC;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC,CAAC;MACN,CAAC;EAnND,IAAA,UAAA,CAAA;EADC,QAAAnW,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;;EAC7C,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;EAEvC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;;EACtC,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;EAEhD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC;;EACV,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAEhC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,gCAAgC,CAAC;;EACxB,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MA8MxC,OAAA,OAAC;GAAA,CAvN4B,QAAQ,CAAA;EAwNrC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU;;ACjbtC,MAAA,KAAA,kBAAA,UAAA,MAAA,EAAA;MAA2B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA;EAMvB,IAAA,SAAA,KAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAEA,IAAA,KAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,OAAO;EACb,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI;WACnB;MACL,CAAC;MAED,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAgB,EAAA;EACpB,QAAA,OAAO;EACF,aAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;MAExB,CAAC;MAEM,KAAA,CAAA,OAAO,GAAd,UAAe,GAAgB,EAAA;UAC3B,OAAO,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACnC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOH,cAAO,CAAC;EACX,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI;EACnB,SAAA,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;MAChD,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,IAAI,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,WAAE;UAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,IAAI;UACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;MAC5D,CAAC;EAtCD,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC;;EACL,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;MAuC5C,OAAA,KAAC;GAAA,CA1C0B,QAAQ,CAAA;EA2CnC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ;;AC3ClC,MAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;MAAqC,SAAA,CAAA,eAAA,EAAA,MAAA,CAAA;EAiCjC,IAAA,SAAA,eAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MArBA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;cACrB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,QAAA,CAAQ;EACzB,gBAAA,GAAG,EAAE,oBAAA,CAAA,MAAA,CAAoB,IAAI,CAAC,KAAK,EAAE,EAAA,IAAA,CAAG;EACxC,gBAAA,IAAI,EAAE;EACT,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;cACxB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,WAAA,CAAW;EAC5B,gBAAA,GAAG,EAAE,oBAAA,CAAA,MAAA,CAAoB,IAAI,CAAC,QAAQ,EAAE,EAAA,IAAA,CAAG;EAC3C,gBAAA,IAAI,EAAE;EACT,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAiB,EAAA;UACnB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;MAC9C,CAAC;EAED,IAAA,eAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;EACnB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ;WAC1B;MACL,CAAC;MAED,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAqB,EAAA;EACzB,QAAA,OAAO;EACF,aAAA,KAAK,CAAC,GAAG,CAAC,KAAK;EACf,aAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;MAE/B,CAAC;MAEM,eAAA,CAAA,OAAO,GAAd,UAAe,GAAqB,EAAA;UAChC,OAAO,IAAI,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC7C,CAAC;EA3DD,IAAA,UAAA,CAAA;UAHCA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE;EAC9C,YAAA,QAAQ,EAAE,UAAC,CAAkB,EAAA,EAAc,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAhE;WAC9C,CAAC;;EACwB,KAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAK1B,IAAA,UAAA,CAAA;UAHCA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE;EAC1C,YAAA,QAAQ,EAAE,UAAC,CAAkB,EAAA,EAAc,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAhE;WAC9C,CAAC;;EAC2B,KAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;MAuDjC,OAAA,eAAC;GAAA,CAlEoCD,kBAAW,CAAA;EAmEhD,eAAe,CAAC,SAAS,CAAC,MAAM,IAAI,kBAAkB;AAStD,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EA4F/B,IAAA,SAAA,aAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EA9DA,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;MAC9F,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;UACI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;MACzE,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;MAC5D,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;EACI,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;MAC9B,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;cACvB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,KAAK,EAAE,CAAE;EACnC,gBAAA,GAAG,EAAE,sBAAA,CAAA,MAAA,CAAsB,IAAI,CAAC,OAAO,EAAE,EAAA,IAAA,CAAG;kBAC5C,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EACrD,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;cACvB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,UAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,KAAK,EAAE,CAAE;EACnC,gBAAA,GAAG,EAAE,qBAAA,CAAA,MAAA,CAAqB,IAAI,CAAC,OAAO,EAAE,EAAA,IAAA,CAAG;kBAC3C,IAAI,EAAE,aAAA,CAAA,MAAA,CAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EACrD,aAAA,CAAC;UACN;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE;cACxB,IAAI,CAAC,qBAAqB,EAAE,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,QAAQ,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,aAAU,CAAC,CAAA,CAAhC,CAAgC,CAAC;UAChF;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE;cAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,QAAQ,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,gBAAa,CAAC,CAAA,CAAnC,CAAmC,CAAC;UAC9E;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;EAAE,YAAA,OAAO,KAAK;EAC/B,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG;EAAE,YAAA,OAAO,KAAK;EACrC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;EAAE,YAAA,OAAO,KAAK;EACjC,QAAA,IAAM,KAAK,GAAI,IAAI,CAAC,MAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;EAChE,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE;EACrD,YAAA,OAAO,IAAI;UACf;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,IAAM,KAAK,GAAI,IAAI,CAAC,MAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;UAChE,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;cACnC,OAAO,KAAK,CAAC,QAAQ;UACzB;EACA,QAAA,OAAO,EAAE;MACb,CAAC;MAQD,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAuB,EAAA;UACzB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;MACzB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;MAClD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;MACrD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM;MACzC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,QAAQ,IAAI,CAAC,IAAI,EAAE;EACf,YAAA,KAAK,OAAO;kBACR,OAAO;EACH,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,oBAAA,IAAI,EAAE,OAAO;EACb,oBAAA,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE;EAC7B,oBAAA,MAAM,EAAE,IAAI,CAAC,UAAU;mBAC1B;EACL,YAAA,KAAK,UAAU;kBACX,OAAO;EACH,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,oBAAA,IAAI,EAAE,UAAU;EAChB,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ;mBAC1B;EACL,YAAA,KAAK,GAAG;kBACJ,IAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;kBACrE,OAAO;EACH,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,oBAAA,IAAI,EAAE,GAAG;EACT,oBAAA,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE;sBAC7B,eAAe,EAAE,eAAe,CAAC,MAAM,GAAG,eAAe,GAAG;mBAC/D;EACL,YAAA,KAAK,KAAK;kBACN,OAAO;EACH,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,oBAAA,IAAI,EAAE,KAAK;EACX,oBAAA,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE;EAC7B,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,oBAAA,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU;mBAC9D;EACL,YAAA;kBACI,OAAO;EACH,oBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,oBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAA0B;EACzC,oBAAA,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE;EAC9B,oBAAA,cAAc,EAAE,IAAI,CAAC,OAAO;mBAC/B;;MAEb,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAiC,EAAA;UACrC,IAAM,MAAM,GAAG;EACV,aAAA,KAAK,CAAC,GAAG,CAAC,OAAO;EACjB,aAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;EAEnB,QAAA,QAAQ,GAAG,CAAC,IAAI;EACZ,YAAA,KAAK,OAAO;kBACR;EACK,qBAAA,OAAO,CAAC,GAAG,CAAC,aAAa;EACzB,qBAAA,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;kBAE3B;EACJ,YAAA,KAAK,UAAU;kBACX;EACK,qBAAA,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;kBAE3B;EACJ,YAAA,KAAK,GAAG;kBACJ;EACK,qBAAA,OAAO,CAAC,GAAG,CAAC,aAAa;EACzB,qBAAA,UAAU,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,cAAc,EAAA,EAAI,OAAA,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA,CAArC,CAAqC,CAAC,GAAG,EAAE,CAAC;kBAE5H;EACJ,YAAA,KAAK,KAAK;kBACN;EACK,qBAAA,OAAO,CAAC,GAAG,CAAC,aAAa;EACzB,qBAAA,OAAO,CAAC,GAAG,CAAC,OAAO;EACnB,qBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,CAAhC,CAAgC,CAAC,GAAG,EAAE,CAAC;kBAE/F;EACJ,YAAA;kBACI;EACK,qBAAA,OAAO,CAAC,GAAG,CAAC,cAAc;EAC1B,qBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;;EAGxC,QAAA,OAAO,MAAM;MACjB,CAAC;MAEM,aAAA,CAAA,OAAO,GAAd,UAAe,GAAiC,EAAA;UAC5C,OAAO,IAAI,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAC3C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MAChC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;MACjC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,QAAQ,IAAI,CAAC,IAAI,EAAE;EACf,YAAA,KAAK,GAAG;EACJ,gBAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;kBAC9C,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;;sBAErD,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAC,KAAkB,EAAA;0BACtD,OAAO,IAAI,aAAa;+BACnB,KAAK,CAAC,KAAI;EACV,6BAAA,KAAK,CAAC,KAAK,CAAC,EAAE;+BACd,IAAI,CAAC,GAAG;EACR,6BAAA,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;EAE1B,oBAAA,CAAC,CAAC;kBACN;kBACA,OAAOF,UAAA,CAAAA,UAAA,CAAA,EAAA,EACA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,EAAA,EACpC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAChB,QAAQ,EAAE,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,aAAa,EAAE,EAAlB,CAAkB,CAAC,GAAG,SAAS,EAAA,CAClF;EACpB,YAAA,KAAK,GAAG;EACR,YAAA,KAAK,GAAG;EACR,YAAA,KAAK,GAAG;EACR,YAAA,KAAK,GAAG;EACR,YAAA,KAAK,OAAO;EACR,gBAAA,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;EAC/C,YAAA,KAAK,UAAU;EACX,gBAAA,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;EAC/C,YAAA,KAAK,KAAK;EACN,gBAAA,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAuB;;EAExE,QAAA,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;MAC/C,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,IAAa,EAAA;EACpB,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE;UAC/C,IAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;cACjD,OAAO;EACH,gBAAA,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;EACjB,gBAAA,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI;eAC5B;EACL,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,UAAC,GAAW,EAAA;EACf,YAAA,IAAM,MAAM,GAAG,IAAI,IAAI,iBAAiB,GAAG,EAAE,GAAEA,UAAA,CAAA,EAAA,EAAM,GAAG,CAAE;cAC1D,KAAiB,IAAA,EAAA,GAAA,CAAc,EAAd,gBAAA,GAAA,cAAc,EAAd,4BAAc,EAAd,EAAA,EAAc,EAAE;EAA5B,gBAAA,IAAM,EAAE,GAAA,gBAAA,CAAA,EAAA,CAAA;EACT,gBAAA,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;cACnC;EACA,YAAA,IAAI,IAAI,IAAI,iBAAiB,EAAE;EAC3B,gBAAA,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG;cAC5B;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC;MACL,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,IAAa,EAAA;UAAzB,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;EAC9B,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;EAC9B,QAAA,QAAQ,IAAI,CAAC,IAAI,EAAE;EACf,YAAA,KAAK,GAAG;EACJ,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;EACvB,oBAAA,OAAO,UAAC,GAAW,EAAA;;EAEf,wBAAA,IAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,IAAIM,cAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC;0BACzF,OAAO,CAAC,CAAC,GAAG,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;EACvC,oBAAA,CAAC;kBACL;EACA,gBAAA,OAAO,UAAC,GAAW,EAAA;EACf,oBAAA,OAAO,GAAG,CAAC,OAAO,CAAC;EACvB,gBAAA,CAAC;EACL,YAAA,KAAK,GAAG;EACJ,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;EACxC,gBAAA,CAAC;EACL,YAAA,KAAK,GAAG;EACJ,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;EACxC,gBAAA,CAAC;EACL,YAAA,KAAK,GAAG;EACJ,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;EACxC,gBAAA,CAAC;EACL,YAAA,KAAK,GAAG;EACJ,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;EACxC,gBAAA,CAAC;EACL,YAAA,KAAK,OAAO;EACR,gBAAA,IAAM,YAAU,GAAG,IAAI,CAAC,UAAU,EAAE;EACpC,gBAAA,OAAO,UAAC,GAAQ,EAAA;EACZ,oBAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,YAAU;EACrC,gBAAA,CAAC;EACL,YAAA,KAAK,UAAU;EACX,gBAAA,IAAM,UAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;EAChC,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAOmW,cAAO,CAAC,QAAQ,CAAC,UAAQ,EAAE,GAAG,CAAC;EAC1C,gBAAA,CAAC;EACL,YAAA,KAAK,KAAK;EACN,gBAAA,IAAM,UAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;kBAC/B,IAAM,UAAQ,GAAG,EAAE;EACnB,gBAAA,KAAsB,IAAA,EAAA,GAAA,CAAc,EAAd,EAAA,GAAA,IAAI,CAAC,OAAO,EAAE,EAAd,EAAA,GAAA,EAAA,CAAA,MAAc,EAAd,EAAA,EAAc,EAAE;EAAjC,oBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,EAAA,CAAA;sBACd,UAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,EAAE;kBAClD;EACA,gBAAA,OAAO,UAAC,GAAQ,EAAA;sBACZ,OAAO,UAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,UAAQ;EAC7C,gBAAA,CAAC;EACL,YAAA;EACI,gBAAA,OAAO,UAAC,GAAQ,EAAA;EACZ,oBAAA,OAAO,GAAG,CAAC,OAAO,CAAC;EACvB,gBAAA,CAAC;;MAEb,CAAC;;EAGD,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,IAAM,KAAK,GAAI,IAAI,CAAC,MAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;UAChE,IAAI,KAAK,EAAE;EACP,YAAA,QAAQ,KAAK,CAAC,IAAI;EACd,gBAAA,KAAK,SAAS;EACV,oBAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;EAChD,gBAAA,KAAK,QAAQ;sBACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;;UAE5C;EACA,QAAA,OAAO,EAAE;MACb,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAe,EAAA;EACjB,QAAA,IAAM,KAAK,GAAI,IAAI,CAAC,MAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;UAChE,IAAI,KAAK,EAAE;EACP,YAAA,QAAQ,KAAK,CAAC,IAAI;EACd,gBAAA,KAAK,SAAS;sBACV,KAAgB,IAAA,EAAA,GAAA,CAAc,EAAd,EAAA,GAAA,KAAK,CAAC,QAAQ,EAAd,EAAA,GAAA,EAAA,CAAA,MAAc,EAAd,EAAA,EAAc,EAAE;EAA3B,wBAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,wBAAA,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE;EAClB,4BAAA,OAAO,CAAC;0BACZ;sBACJ;sBACA;EACJ,gBAAA,KAAK,QAAQ;EACT,oBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;;UAExC;EACA,QAAA,OAAO,SAAS;MACpB,CAAC;EA7VD,IAAA,UAAA,CAAA;EADC,QAAApW,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EAC9B,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAE7B,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,EAAE,CAAC;;EAC7G,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;EAMlC,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;EACxF,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAK,OAAA,CAAC,CAAC,cAAc,EAAE,CAAA,CAAlB,CAAkB;cACjD,QAAQ,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAArC;WAC5C,CAAC;;EAC6B,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAO/B,IAAA,UAAA,CAAA;EALC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;EACxF,YAAA,QAAQ,EAAE,IAAI;cACd,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAK,OAAA,CAAC,CAAC,cAAc,EAAE,CAAA,CAAlB,CAAkB;cACjD,QAAQ,EAAE,UAAC,CAAgB,EAAA,EAAc,OAAA,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAArC;WAC5C,CAAC;;EAC6B,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAG/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAC,CAAgB,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA,CAA7C,CAA6C,EAAE,CAAC;;EAC7G,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAElC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAC,CAAgB,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA,CAAhD,CAAgD,EAAE,CAAC;;EAC/G,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAEhC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,UAAC,CAAgB,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA,CAA3C,CAA2C,EAAE,CAAC;;EAChH,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE5B,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAK,OAAA,CAAC,CAAC,cAAc,EAAE,CAAA,CAAlB,CAAkB,EAAE,CAAC;;EAC9F,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE1C,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,UAAC,CAAgB,EAAA,EAAK,OAAA,CAAC,CAAC,iBAAiB,EAAE,CAAA,CAArB,CAAqB,EAAE,CAAC;;EAC7F,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAoU/C,OAAA,aAAC;GAAA,CAlWkCD,kBAAW,CAAA;EAmW9C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;EAClD;AACA,MAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;MAAgC,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAQ5B,IAAA,SAAA,UAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAEA,IAAA,UAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MAChC,CAAC;MAID,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAuB,EAAA;UACzB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC;MAC/D,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAuB,EAAvB,EAAA,GAAA,IAAI,CAAC,gBAAgB,EAAE,EAAvB,EAAA,GAAA,EAAA,CAAA,MAAuB,EAAvB,EAAA,EAAuB,EAAE;EAArC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,iBAAA,CAAiB,CAAC,CAAC;UACnE;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;EACrB,YAAA,IAAI,EAAE,OAAO;EACb,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe;WACxC;MACL,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAgB,EAAA;EACpB,QAAA,OAAO;EACF,aAAA,KAAK,CAAC,GAAG,CAAC,OAAO;EACjB,aAAA,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;MAE7C,CAAC;MAEM,UAAA,CAAA,OAAO,GAAd,UAAe,GAAgB,EAAA;UAC3B,OAAO,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACxC,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAA,aAAa,EAAA,EAAI,OAAA,aAAa,CAAC,KAAK,EAAE,CAAA,CAArB,CAAqB,CAAC;MAC5E,CAAC;MAID,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,CAAkC,EAAA;UAC9C,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;UAC3E,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,cAAc,EAAA,EAAI,OAAA,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA,CAArC,CAAqC,CAAC,CAAC;EAChF,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;MACjC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAe,EAAA;UACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;MACrC,CAAC;EAtED,IAAA,UAAA,CAAA;EADC,QAAAG,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC;;EACF,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAE7B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;;EACtC,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MAqEhD,OAAA,UAAC;GAAA,CA3E+BD,kBAAW,CAAA;EA4E3C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa;EAC5C;AACA,MAAA,WAAA,kBAAA,UAAA,MAAA,EAAA;MAAiC,SAAA,CAAA,WAAA,EAAA,MAAA,CAAA;EAiB7B,IAAA,SAAA,WAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UAfX,KAAA,CAAA,cAAc,GAAG,KAAK;UACtB,KAAA,CAAA,KAAK,GAAG,KAAK;;MAeb;EAVA,IAAA,WAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAiB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAxC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,OAAO,EAAE,EAAA,iBAAA,CAAiB,CAAC,CAAC;UAC3E;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,WAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,CAAoC,EAAA;UAChD,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;UAC9E,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,cAAc,EAAA;EACpC,YAAA,QAAQ,cAAc,CAAC,IAAI;EACvB,gBAAA,KAAK,OAAO;EACR,oBAAA,OAAO,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC;EAC7C,gBAAA;EACI,oBAAA,OAAO,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;;UAExD,CAAC,CAAC,CAAC;EACH,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,GAAG,CAAC;MAChD,CAAC;;EAGD,IAAA,WAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACjD,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAe,EAAA;EACjB,QAAA,KAAoB,IAAA,EAAA,GAAA,CAAe,EAAf,EAAA,GAAA,IAAI,CAAC,QAAQ,EAAE,EAAf,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,EAAA,EAAe,EAAE;EAAhC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,EAAE;EACtB,gBAAA,OAAO,KAAK;cAChB;UACJ;EACA,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,WAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;EACI,QAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;MAC3B,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,cAAwE,EAAA;UACzF,KAA6B,IAAA,EAAA,GAAA,CAAc,EAAd,gBAAA,GAAA,cAAc,EAAd,4BAAc,EAAd,EAAA,EAAc,EAAE;EAAxC,YAAA,IAAM,cAAc,GAAA,gBAAA,CAAA,EAAA,CAAA;EACrB,YAAA,IAAM,SAAS,GAAG,IAAI,aAAa;mBAC9B,KAAK,CAAC,IAAI;EACV,iBAAA,KAAK,CAAC,cAAc,CAAC,KAAK;EAC1B,iBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;EAE9B,YAAA,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE;EAClC,gBAAA,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC;cAC5C;cACA,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;UACzC;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,UAAA,aAAa,EAAA,EAAI,OAAA,aAAa,CAAC,KAAK,EAAE,CAAA,CAArB,CAAqB,CAAC;MAC/E,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM;MAC5C,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAoC,EAAA;EAC9C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,gBAAK,CAAC,aAAa,CAAA,IAAA,CAAA,IAAA,EAAC,QAAQ,CAAC;UACxD,IAAI,MAAM,GAAkB,EAAE;UAC9B,IAAM,SAAS,GAA+B,EAAE;EAChD,QAAA,KAAiB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAxC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,YAAY,UAAU,EAAE;EAC1B,gBAAA,KAAkB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,EAAE,CAAC,gBAAgB,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAApC,oBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,oBAAA,IAAM,aAAa,GAAG,GAAG,CAAC,aAAa,EAAE;EACzC,oBAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;EAC1B,oBAAA,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI;kBACtC;cACJ;mBAAO;EACH,gBAAA,IAAM,aAAa,GAAG,EAAE,CAAC,aAAa,EAAE;EACxC,gBAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;EAC1B,gBAAA,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI;cACtC;UACJ;UACA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;EACxC,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;EACrB,gBAAA,IAAM,aAAa,GAAG;EAClB,oBAAA,EAAE,EAAE,UAAU;EACd,oBAAA,IAAI,EAAE;mBACM;EAChB,gBAAA,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;EAC1B,gBAAA,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI;cACtC;UACJ;eAAO;cACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAApB,CAAoB,CAAC,CAAC;UAC1E;EACA,QAAA,OAAO,YAAA,EAAM,OAAA,MAAM,CAAA,CAAN,CAAM;MACvB,CAAC;MAED,WAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,IAAM,QAAQ,GAAa,EAAE;EAC7B,QAAA,KAAiB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAxC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,YAAY,UAAU,EAAE;EAC1B,gBAAA,KAAkB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,EAAE,CAAC,gBAAgB,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAApC,oBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;sBACV,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;EAC5B,oBAAA,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;0BACf,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;sBAChC;kBACJ;cACJ;mBAAO;EACH,gBAAA,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,UAAU,EAAE;EAC1B,oBAAA,KAAsB,UAAqC,EAArC,EAAA,GAAAqW,cAAO,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAArC,cAAqC,EAArC,EAAA,EAAqC,EAAE;EAAxD,wBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,EAAA,CAAA;EACd,wBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;sBAC1B;kBACJ;uBAAO;sBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;EAC3B,oBAAA,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;0BACd,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;sBAC/B;kBACJ;cACJ;UACJ;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,eAAe,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,QAAQ,CAAC;MACzC,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK;EACvB,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE;UAClD,IAAM,cAAc,GAAG,EAAE;EACzB,QAAA,KAAiB,IAAA,EAAA,GAAA,CAA0B,EAA1B,EAAA,GAAA,IAAI,CAAC,mBAAmB,EAAE,EAA1B,EAAA,GAAA,EAAA,CAAA,MAA0B,EAA1B,EAAA,EAA0B,EAAE;EAAxC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,YAAY,UAAU,EAAE;EAC1B,gBAAA,KAAkB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,EAAE,CAAC,gBAAgB,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAApC,oBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;sBACV,cAAc,CAAC,IAAI,CAAC;EAChB,wBAAA,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;EAClB,wBAAA,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI;EAC7B,qBAAA,CAAC;kBACN;cACJ;mBAAO;kBACH,cAAc,CAAC,IAAI,CAAC;EAChB,oBAAA,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;EACjB,oBAAA,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI;EAC5B,iBAAA,CAAC;cACN;UACJ;EACA,QAAA,OAAO,UAAC,GAAW,EAAA;EACf,YAAA,IAAM,MAAM,GAAG,IAAI,IAAI,iBAAiB,GAAG,EAAE,GAAEzW,UAAA,CAAA,EAAA,EAAM,GAAG,CAAE;cAC1D,KAAiB,IAAA,EAAA,GAAA,CAAc,EAAd,gBAAA,GAAA,cAAc,EAAd,4BAAc,EAAd,EAAA,EAAc,EAAE;EAA5B,gBAAA,IAAM,EAAE,GAAA,gBAAA,CAAA,EAAA,CAAA;EACT,gBAAA,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;cACnC;EACA,YAAA,IAAI,IAAI,IAAI,iBAAiB,EAAE;EAC3B,gBAAA,IAAI,KAAI,CAAC,cAAc,EAAE;EACrB,oBAAA,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG;kBAC5B;cACJ;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC;MACL,CAAC;EAED,IAAA,WAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,IAAI,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,WAAE;UAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,IAAI;UACpD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;MACtC,CAAC;MAjLM,WAAA,CAAA,aAAa,GAAG,aAAH;EAMpB,IAAA,UAAA,CAAA;EADC,QAAAK,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;;EACzC,KAAA,EAAA,WAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;MA4KrE,OAAA,WAAC;GAAA,CAnLgC,QAAQ,CAAA;AAqLzC,MAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EAA7B,IAAA,SAAA,OAAA,GAAA;;MAuBA;EArBI,IAAA,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,SAAS;EACf,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe;WACxC;MACL,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAkB,EAAA;UACtB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;MACpD,CAAC;MAEM,OAAA,CAAA,OAAO,GAAd,UAAe,GAAkB,EAAA;UAC7B,OAAO,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACrC,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAL,UAAA,CAAA,EACb,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAA,EACd,IAAI,EACT;MACN,CAAC;MACL,OAAA,OAAC;EAAD,CAvBA,CAA6B,WAAW,CAAA;EAwBxC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,UAAU;AAEtC,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAA8B,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EAE1B,IAAA,SAAA,QAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EACP,QAAA,KAAI,CAAC,KAAK,GAAG,IAAI;EACjB,QAAA,KAAI,CAAC,cAAc,GAAG,IAAI;;MAC9B;EAEA,IAAA,QAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,UAAU;EAChB,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe;WACxC;MACL,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,IAAoB,EAAA;UACxB,IAAM,GAAG,GAAG,IAAI,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE;EAC3C,QAAA,OAAO;EACF,aAAA,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;MAE7C,CAAC;MAEM,QAAA,CAAA,OAAO,GAAd,UAAe,GAAmB,EAAA;UAC9B,OAAO,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACtC,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,IAAiB,EAAA;EAAjB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,EAAiB,CAAA,CAAA;EAClB,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAAA,UAAA,CAAA,EACb,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAA,EACd,IAAI,EACT;MACN,CAAC;MAED,QAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;EAC1B,YAAA,OAAO,gBAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UACvC;EACA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,KAAK,UAAU,EAAnB,CAAmB,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,EAAJ,CAAI,CAAC,CAAC;MAC/F,CAAC;MACL,OAAA,QAAC;EAAD,CAvCA,CAA8B,WAAW,CAAA;EAwCzC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW;;ACrvBxC,MAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;MAAgC,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAwB5B,IAAA,SAAA,UAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;MAdA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAc,EAAA;UACnB,IAAM,MAAM,GAAqB,EAAE;EACnC,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;cACvB,MAAM,CAAC,IAAI,CAAC;kBACR,MAAM,EAAE,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,UAAA,CAAU;EAC3B,gBAAA,GAAG,EAAE,oBAAA,CAAA,MAAA,CAAqB,IAAI,CAAC,OAAO,EAAE,CAAE;kBAC1C,IAAI,EAAE,WAAA,CAAA,MAAA,CAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;EACpD,aAAA,CAAC;UACN;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAQD,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAQ,EAAA;UACV,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;MAC3B,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;EACvB,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;WAC9B;MACL,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAwB,EAAA;EAC5B,QAAA,OAAO;EACF,aAAA,OAAO,CAAC,GAAG,CAAC,OAAO;EACnB,aAAA,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;MAEnC,CAAC;MAEM,UAAA,CAAA,OAAO,GAAd,UAAe,GAAwB,EAAA;UACnC,OAAO,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MACxC,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOE,cAAO,CAAC;EACX,YAAA,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE;EAC1B,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;EAC9B,SAAA,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;MACjC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,EAAU,EAAA;UACZ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,KAAK,EAAA;EACtC,YAAA,OAAA,KAAK,CAAC,EAAE,KAAK,EAAE;EAAf,QAAA,CAAe,CAClB,CAAC,CAAC,CAAC;MACR,CAAC;EAlED,IAAA,UAAA,CAAA;EAJC,QAAAG,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,YAAA,EAA8B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;EACzF,YAAA,QAAQ,EAAE,IAAI;cACd,QAAQ,EAAE,UAAC,CAAa,EAAA,EAAc,OAAA,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAtC;WACzC,CAAC;;EAC6B,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAG/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC;;EACL,KAAA,EAAA,UAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAgEvC,OAAA,UAAC;GAAA,CA1E+BD,kBAAW,CAAA;EA2E3C,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa;EAE5C;AACA,MAAA,IAAA,kBAAA,UAAA,MAAA,EAAA;MAA0B,SAAA,CAAA,IAAA,EAAA,MAAA,CAAA;EActB,IAAA,SAAA,IAAA,GAAA;UACI,OAAA,MAAK,WAAE,IAAA,IAAA;MACX;EAVA,IAAA,IAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAqB,EAAE;EACjC,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAAhC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;UACtD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAMD,IAAA,IAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE,MAAM;EACZ,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU;WAC9B;MACL,CAAC;MAED,IAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAe,EAAA;EACnB,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;EAC/B,QAAA,OAAO,IAAI;MACf,CAAC;MAEM,IAAA,CAAA,OAAO,GAAd,UAAe,GAAe,EAAA;UAC1B,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;MAClC,CAAC;MAID,IAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAyB,EAAA;UAChC,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,CAAd,CAAc,CAAC;UAC9E,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,SAAS,EAAA,EAAI,OAAA,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAA7B,CAA6B,CAAC,CAAC;EAC9D,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,IAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAOF,cAAO,CAAC;EACX,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,IAAI,EAAE,CAAA,CAAT,CAAS;EAC1C,SAAA,CAAC;MACN,CAAC;MAED,IAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAsB,EAAA;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,gBAAgB,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,CAAC;UAC5B,MAAA,CAAA,SAAK,CAAC,eAAe,CAAA,IAAA,CAAA,IAAA,EAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,OAAO,EAAE,CAAA,CAAhB,CAAgB,CAAC,CAAC;MACnF,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,OAAO,EAAE,CAAA,CAAhB,CAAgB,CAAC;MAC3D,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;MACxC,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,KAAK,CAAC,EAAE,CAAA,CAAR,CAAQ,CAAC;MACjD,CAAC;EAED,IAAA,IAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,IAAI,GAAG,MAAA,CAAA,SAAK,CAAC,WAAW,WAAE;UAChC,IAAM,SAAS,GAAqD,EAAE;EACtE,QAAA,KAAqB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,IAAI,CAAC,WAAW,EAAE,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAApC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;cACb,SAAS,CAAC,IAAI,CAAC;EACX,gBAAA,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAGwW,iBAAY,GAAGC,gBAAW;EACzD,gBAAA,EAAE,EAAE,MAAM,CAAC,OAAO;EACrB,aAAA,CAAC;UACN;EAEA,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;cAClB,OAAO1W,eAAA,CAAA,EAAA,EAAI,IAAI,EAAA,IAAA,CAAA,CAAE,IAAI,CAAC,UAAC,CAAM,EAAE,CAAM,EAAA;kBACjC,KAAmB,IAAA,EAAA,GAAA,CAAS,EAAT,WAAA,GAAA,SAAS,EAAT,uBAAS,EAAT,EAAA,EAAS,EAAE;EAAzB,oBAAA,IAAM,IAAI,GAAA,WAAA,CAAA,EAAA,CAAA;sBACX,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EACpD,oBAAA,IAAI,OAAO,KAAK,CAAC,EAAE;EACf,wBAAA,OAAO,OAAO;sBAClB;kBACJ;EACA,gBAAA,OAAO,CAAC;EACZ,YAAA,CAAC,CAAC;UAEN;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAxFM,IAAA,CAAA,MAAM,GAAG,UAAU;EAG1B,IAAA,UAAA,CAAA;EADC,QAAAI,cAAO,CAAC,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;;EAC7C,KAAA,EAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;MAsFxC,OAAA,IAAC;GAAA,CA1FyB,QAAQ,CAAA;EA2FlC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO;;ACnKhC,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;MAoE/B,SAAA,aAAA,CAAoB,GAAqB,EAAE,MAAc,EAAA;UACrD,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;EAEnB,QAAA,KAAI,CAAC,GAAG,GAAG,MAAM;UACjB,KAAI,CAAC,WAAW,GAAG,IAAI,QAAQ,CAAC,KAAI,CAAC,GAAG,CAAC;UACzC,KAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC;EACrC,QAAA,KAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE;EAC7B,QAAA,KAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE;EAC7B,QAAA,KAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE;EACvB,QAAA,KAAI,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE;UACzB,KAAI,CAAC,cAAc,EAAE;;MACzB;MAxEA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAgC,EAAA;UACvC,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;UACpB,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAW,EAAA;UACf,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;UACjB,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAW,EAAA;UACf,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;UACjB,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAW,EAAA;UACf,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;UACjB,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,CAAQ,EAAA;UACT,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,KAAK;EACxC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;UACd,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAMD,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAS,EAAA;UACX,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;UACf,IAAI,CAAC,cAAc,EAAE;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAgBD,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAc,EAAA;EACrB,QAAA,IAAM,MAAM,GAAG,MAAA,CAAA,SAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EACtD,QAAA,OAAO,MAAM;MACjB,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;UACI,IAAI,CAAC,UAAU,CAAC;cACZ,IAAI,CAAC,UAAU,EAAc;cAC7B,IAAI,CAAC,OAAO,EAAE;cACd,IAAI,CAAC,OAAO,EAAE;cACd,IAAI,CAAC,OAAO,EAAE;cACd,IAAI,CAAC,IAAI,EAAE;cACX,IAAI,CAAC,KAAK;EACb,SAAA,CAAC;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE;MAClC,CAAC;EAjGD,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC;;EACC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;EAW1C,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC;oCAChC,OAAO;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAWlB,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;oCACzB,OAAO;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAWlB,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;oCAC1B,OAAO;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAWlB,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC;oCACzB,IAAI;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAWZ,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC;oCAChC,KAAK;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;MA2ClB,OAAA,aAAC;GAAA,CArGkC,gBAAgB,CAAA;;ACVnD,MAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;MAA8B,SAAA,CAAA,QAAA,EAAA,MAAA,CAAA;EAA9B,IAAA,SAAA,QAAA,GAAA;;MAQA;EAPI,IAAA,QAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,CAAE;MACvB,CAAC;EAED,IAAA,QAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,IAAY,EAAE,KAAa,EAAA;EAC9B,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;MAC9B,CAAC;MACL,OAAA,QAAC;EAAD,CARA,CAA8B,aAAa,CAAA;EAS3C,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,WAAW;;ACJxC,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;MAK/B,SAAA,aAAA,CAAY,KAA0B,EAAE,WAAW,EAAA;UAC/C,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EACP,QAAA,KAAI,CAAC,MAAM,GAAG,KAAK;EACnB,QAAA,KAAI,CAAC,YAAY,GAAG,WAAW;EAC/B,QAAA,KAAI,CAAC,aAAa,GAAG,QAAQ;EAC7B,QAAA,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC;EACnB,QAAA,KAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;EAC/B,QAAA,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;EAC9B,QAAA,KAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;;MACpC;MAGA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,CAAiB,EAAA;UAClB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,KAAK;UACxC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;cAChC,IAAI,CAAC,KAAK,CAAC;mBACN,QAAQ,CAAC,KAAK;EACd,iBAAA,MAAM,EAAE;UAEjB;EACA,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC;UACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;EAC5C,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;UAClB,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;UACjD,IAAM,WAAW,GAAI,IAAI,CAAC,MAAM,EAAiB,CAAC,KAAK,EAAE;UACzD,IAAI,WAAW,EAAE;EACb,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;cACtB,IAAI,CAAC,MAAM,EAAiB,CAAC,YAAY,CAAC,KAAK,CAAC;UACrD;EACA,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;MACjC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;UACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;UACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;EAClC,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;MAClC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,OAAO,EAAE,OAAO,EAAA;EACjB,QAAA,MAAA,CAAA,SAAK,CAAC,IAAI,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC5B,IAAM,WAAW,GAAI,IAAI,CAAC,MAAM,EAAiB,CAAC,KAAK,EAAE;UACzD,IAAI,WAAW,EAAE;cACZ,IAAI,CAAC,MAAM,EAAiB,CAAC,YAAY,CAAC,IAAI,CAAC;UACpD;MACJ,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;UACI,MAAA,CAAA,SAAK,CAAC,UAAU,CAAA,IAAA,CAAA,IAAA,CAAE;EAClB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;cACZ,IAAI,CAAC,KAAK,CAAC;mBACN,QAAQ,CAAC,KAAK;EACd,iBAAA,MAAM,EAAE;UAEjB;MACJ,CAAC;MACL,OAAA,aAAC;EAAD,CA/DA,CAAmCuW,YAAK,CAAA;EAgExC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,2BAA2B;AAgB7D,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EA+B/B,IAAA,SAAA,aAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EA7BX,QAAA,KAAA,CAAA,YAAY,GAAG,IAAIC,mBAAY,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ;eACjE,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC;EACtB,YAAA,IAAM,EAAE,GAAG,KAAI,CAAC,qBAAqB,CAAC,CAAC,+BAA+B,EAAE,0BAA0B,CAAC,CAAC;cACpG,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;cAC/B,IAAM,EAAE,GAAG,KAAI,CAAC,MAAM,CAAC,MAAM,EAAmB;cAChD,IAAM,MAAM,GAAG,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE;EAC1C,YAAA,KAAI,CAAC;EACA,iBAAA,GAAG,CAAC;EACD,gBAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE;EACtD,gBAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;eACpC;EACA,iBAAA,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE;EACvD,iBAAA,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;mBACpC,MAAM,CAAC,UAAC,KAAU,EAAA;kBACf,IAAM,cAAc,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,GAAG,kCAAkC;kBAC5E,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;kBACnC,IAAI,IAAI,EAAE;EACA,oBAAA,IAAA,KAAoB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,qBAAqB,EAAE,EAA5E,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,KAAK,WAA+D;EACpF,oBAAA,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;kBACvC;EACJ,YAAA,CAAC,CAAC;EAEV,QAAA,CAAC,CAAC;EAQF,QAAA,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,OAAO,EAAE;EAClC,QAAA,KAAI,CAAC,cAAc,GAAA5W,eAAA,CAAA,CAAI,KAAI,CAAC,YAAY,EAAE,IAAI6W,aAAM,EAAE,CAAA,EAAK,KAAI,CAAC,YAAY,OAAC;;MACjF;MAEA,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAiB,EAAA;UACnB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EACd,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;UACrC;EACA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC;EACnE,QAAA,OAAO,IAAI;MACf,CAAC;MACL,OAAA,aAAC;EAAD,CA/CA,CAAmCC,iBAAU,CAAA;EAgD7C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,2BAA2B;EAW7D,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,EAAE,QAAQ,CAAC;EACpE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;EACvE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC;;ECnIzE,IAAM,UAAU,GAAsD;EAClE,IAAA,KAAK,EAAAC,WAAA;EAAE,IAAA,SAAS,EAAAC,cAAA;EAChB,IAAA,IAAI,EAAAC,UAAA;EAAE,IAAA,MAAM,EAAAC,YAAA;EAAE,IAAA,GAAG,EAAAC,SAAA;EAAE,IAAA,MAAM,EAAAC,YAAA;EAAE,IAAA,OAAO,EAAAC,aAAA;EAAE,IAAA,MAAM,EAAAC,YAAA;EAAE,IAAA,IAAI,EAAAC,UAAA;EAAE,IAAA,GAAG,EAAAC,SAAA;EAAE,IAAA,KAAK,EAAAC,WAAA;EAAE,IAAA,SAAS,EAAAC,eAAA;EAAE,IAAA,OAAO,EAAAC,aAAA;EAAE,IAAA,IAAI,EAAAC,UAAA;EAAE,IAAA,SAAS,EAAAC,eAAA;MACjG,oBAAoB,EAAEC,sBAAkB,EAAE,kBAAkB,EAAEC,oBAAgB,EAAE,WAAW,EAAEC,WAAO,CAAC,WAAW;EAChH,IAAA,cAAc,EAAAC,qBAAA;EAAE,IAAA,cAAc,EAAAC,oBAAA;EAAE,IAAA,SAAS,EAAAC;GAC5C;AACM,MAAM,UAAU,GAAG;EAC1B,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE;EAC1B,IAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;EACxB;EAEA,SAAS,SAAS,CAAC,IAAa,EAAA;EAC5B,IAAA,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;MAC/B,OAAO,MAAM,IAAIpB,WAAK;EAC1B;EAEA,SAAS,OAAO,CAAC,IAAa,EAAA;EAC1B,IAAA,IAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;MACnC,IAAM,MAAM,GAAG,KAAK,UAAU,IAAIA,WAAK,GAAa;;EAGpD,IAAA,IAAI,MAAM,YAAYC,cAAS,EAAE;UAC7B;eACK,QAAQ,CAAC,KAAK;eACd,iBAAiB,CAAC,IAAI,CAAC;MAEhC;EAAO,SAAA,IAAI,MAAM,YAAYkB,oBAAc,EAAE;UACzC;eACK,SAAS,CAAC,KAAK;eACf,WAAW,CAAC,OAAO;eACnB,UAAU,CAAC,MAAM;eACjB,WAAW,CAAC,OAAO;eACnB,aAAa,CAAC,KAAK;eACnB,eAAe,CAAC,OAAO,CAAC;MAEjC;EACA,IAAA,OAAO,MAAM;EACjB;EAEA,SAAS,UAAU,CAAC,IAAa,EAAA;MAC7B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;EACzC;AAEA,MAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;MAoE/B,SAAA,aAAA,CAAsB,GAAqB,EAAE,aAA4B,EAAA;UACrE,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADW,KAAA,CAAA,GAAG,GAAH,GAAG;UAkFzB,KAAA,CAAA,WAAW,GAA+B,EAAE;UAC5C,KAAA,CAAA,eAAe,GAA+B,EAAE;UAChD,KAAA,CAAA,SAAS,GAA0B,EAAE;EAlFjC,QAAA,KAAI,CAAC,cAAc,GAAG,aAAa;EACnC,QAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;EAC7B,QAAA,KAAI,CAAC,UAAU,CAAC,IAAI,aAAa,EAAE,CAAC;UACpC,KAAI,CAAC,WAAW,EAAE;;MACtB;MAjEA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAuB,EAAA;UAC9B,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;cACxB,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;UAClC;EACA,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,QAAA,OAAO,IAAI;MACf,CAAC;EAMD,IAAA,aAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAW,EAAE,KAA+B,EAAA;UAClD,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,UAAU;UAC7C,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;cAC9B,CAAC,GAAG,OAAO;UACf;EACA,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;UACnB,IAAI,CAAC,WAAW,EAAE;UAClB,IAAI,KAAK,EAAE;cACP,IAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;EACzC,YAAA,KAAK,IAAM,IAAI,IAAI,KAAK,EAAE;kBACtB,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;sBACpC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;kBAC7B;cACJ;UACJ;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAaD,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAiB,EAAA;UAA5B,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,QAAA,IAAI,CAAC;eACA,EAAE,CAAC,OAAO,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,IAAI,EAAA,EAAK,OAAA,KAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA,CAA/B,CAA+B;eAC1F,EAAE,CAAC,cAAc,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAA,EAAK,OAAA,KAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA,CAAhC,CAAgC,CAAC;EAElG,QAAA,KAAK,IAAM,GAAG,IAAI,UAAU,EAAE;EAC1B,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,UAAU,CAAC,GAAG,CAAC,EAAE;EACtD,gBAAA,IAAI,CAAC,UAAU,GAAG,GAAc;kBAChC;cACJ;UACJ;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAWD,IAAA,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,KAAK,KAAI,CAAC,EAAE,EAAE,CAAA,CAAhB,CAAgB,CAAC;MAC/D,CAAC;EAGD,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,EAAE;EACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU;cACrC,IAAI,CAAC,eAAe,EAAE;cACtB,IAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;cACtC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;UACnC;MACJ,CAAC;MAID,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAA0B,EAAA;UACjC,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE;UAC3D,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;EAEhC,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;EAChC,QAAA,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;EAC5C,QAAA,IAAM,GAAG,GAAG,QAAQ,CAAC,mBAAmB,EAAE;EAC1C,QAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE;UACpC,IAAM,KAAK,GAAG,EAAE;EAChB,QAAA,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG,EAAA;EAC/D,YAAA,IAAI,MAAM,GAA+B,GAAG,CAAC,GAAG,CAAC;cACjD,IAAI,MAAM,EAAE;EACR,gBAAA,IAAI,MAAM,YAAY,UAAU,EAAE;uBAC3B;EACH,oBAAA,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;kBAC1B;cACJ;mBAAO;EACH,gBAAA,IAAI,KAAK,CAAC,KAAK,EAAE;sBACb,MAAM,GAAG,IAAI,UAAU;2BAClB,KAAK,CAAC,QAAQ;EACd,yBAAA,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;sBAEpB,IAAM,cAAc,GAAoB,EAAE;sBAC1C,KAAsB,IAAA,EAAA,GAAA,CAAQ,EAAR,UAAA,GAAA,QAAQ,EAAR,sBAAQ,EAAR,EAAA,EAAQ,EAAE;EAA3B,wBAAA,IAAM,OAAO,GAAA,UAAA,CAAA,EAAA,CAAA;0BACd,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;EAC7E,4BAAA,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI;EACxB,4BAAA,cAAc,CAAC,IAAI,CAAC,IAAI,aAAa;EAChC,iCAAA,KAAK,CAAC,OAAO,CAAC,EAAE;mCAChB,IAAI,CAAC,GAAG;EACR,iCAAA,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CACvB;0BACL;sBACJ;EACA,oBAAA,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC;kBACtC;uBAAO;sBACH,MAAM,GAAG,IAAI,aAAa;2BACrB,KAAK,CAAC,QAAQ;EACd,yBAAA,KAAK,CAAC,KAAK,CAAC,EAAE;2BACd,IAAI,CAAC,GAAG,CAAC;sBAEd,KAAsB,IAAA,EAAA,GAAA,CAAQ,EAAR,UAAA,GAAA,QAAQ,EAAR,sBAAQ,EAAR,EAAA,EAAQ,EAAE;EAA3B,wBAAA,IAAM,OAAO,GAAA,UAAA,CAAA,EAAA,CAAA;0BACd,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;EAC7E,4BAAA,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI;EACxB,4BAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;8BAC1B;0BACJ;sBACJ;kBACJ;cACJ;EACA,YAAA,OAAO,MAAM;UACjB,CAAC,CAAC,CAAC;EACH,QAAA,OAAO,IAAI;MACf,CAAC;EAKD,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;EAEhC,QAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE;UACnC,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;EACxC,QAAA,IAAI,UAAsC;UAC1C,IAAI,YAAY,GAAG,EAAE;EACrB,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;UACvD,IAAI,EAAE,EAAE;cACJ,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;EACtC,YAAA,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;UAC9C;EAEA,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,IAAI,IAAI,CAAC,eAAe,KAAK,UAAU;UACxF,IAAI,aAAa,EAAE;EACf,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;EACzB,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,WAAW,EAAE;kBAClC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAe;EACzD,gBAAA,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAE,EAAT,CAAS,CAAC,CAAC;EACrD,gBAAA,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAE,EAAT,CAAS,CAAC,CAAC;cAC3D;mBAAO;kBACH,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,EAAE,KAAK,UAAU,CAAA,CAArB,CAAqB,CAAC,CAAC;cACzE;UACJ;eAAO;cACH,OAAO,CAAC,IAAI,CAAC,KAAA,CAAA,MAAA,CAAM,IAAI,CAAC,EAAE,EAAE,EAAA,sBAAA,CAAsB,CAAC;UACvD;EAEA,QAAA,IAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE;EAC/B,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI;UAC3C,IAAI,WAAW,EAAE;EACb,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;cACrB,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;EAChD,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,WAAW,EAAE;kBAClC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAe;EACzD,gBAAA,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;kBAC9B,IAAI,EAAE,EAAE;sBACJ,IAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;sBACxC,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;EAC5D,oBAAA,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC;kBACnC;cACJ;mBAAO;kBACH,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;cACtC;UACJ;eAAO;cACH,OAAO,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,EAAE,EAAE,EAAA,kBAAA,CAAkB,CAAC;UAChD;EAEA,QAAA,IAAI,aAAa,IAAI,WAAW,EAAE;EAC9B,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA,EAAQ,CAAC,CAAC;UAC5D;EACA,QAAA,OAAO,OAAO,CAAC,OAAO,EAAE;MAC5B,CAAC;MAEO,aAAA,CAAA,SAAA,CAAA,sBAAsB,GAA9B,UAA+B,IAAqB,EAAA;UAChD,QAAQ,IAAI;EACR,YAAA,KAAK,SAAS;EACV,gBAAA,OAAO,QAAQ;EACnB,YAAA,KAAK,SAAS;EACV,gBAAA,OAAO,SAAS;EACpB,YAAA,KAAK,QAAQ;EACT,gBAAA,OAAO,QAAQ;EACnB,YAAA,KAAK,QAAQ;EACb,YAAA;EACI,gBAAA,OAAO,QAAQ;;MAE3B,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,MAAkC,EAAA;UACzC,IAAM,MAAM,GAAqB,EAAE;UACnC,KAAoB,IAAA,EAAA,GAAA,CAAY,EAAZ,EAAA,GAAA,MAAM,IAAI,EAAE,EAAZ,EAAA,GAAA,EAAA,CAAA,MAAY,EAAZ,EAAA,EAAY,EAAE;EAA7B,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,YAAA,IAAM,CAAC,GAAG,IAAIE,eAAQ,CAAC,KAAK;mBACvB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;EAC5C,iBAAA,EAAE,CAAC,KAAK,CAAC,EAAE;EACX,iBAAA,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;EAEpB,YAAA,QAAQ,KAAK,CAAC,IAAI;EACd,gBAAA,KAAK,SAAS;EACV,oBAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;sBAC3C;;EAKR,YAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;UAClB;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,MAAwB,EAAE,IAA8C,EAAA;UAAjF,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,KAAK,GAA0B/X,cAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;EAClE,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,GAAQ,EAAA;cACtB,IAAM,MAAM,GAAG,EAAE;cACjB,KAAoB,IAAA,EAAA,GAAA,CAAM,EAAN,QAAA,GAAA,MAAM,EAAN,oBAAM,EAAN,EAAA,EAAM,EAAE;EAAvB,gBAAA,IAAM,KAAK,GAAA,QAAA,CAAA,EAAA,CAAA;EACZ,gBAAA,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE;EAC3B,oBAAA,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAsB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;kBAC5G;uBAAO;sBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;kBACnC;cACJ;EACA,YAAA,OAAO,MAAM;EACjB,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;UACI,IAAM,QAAQ,GAAG,EAAE;EACnB,QAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE;EACnC,YAAA,IAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE;cACrD,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC;cAC7D,IAAI,gBAAgB,EAAE;kBAClB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;cAC1D;UACJ;EAEA,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;EAChC,QAAA,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;UAC5C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,YAAA;EACtC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;UAC1B,CAAC,CAAC,CAAC;EAEH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;MAChC,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;EACpE,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAA;EACpB,YAAA,KAAI,CAAC,UAAU,EAAE,CAAC,cAAc,IAAI,KAAI,CAAC,UAAU,EAAE,CAAC,cAAc,EAAE;EACtE,YAAA,OAAO,KAAI,CAAC,WAAW,EAAE;EAC7B,QAAA,CAAC,CAAC;MACN,CAAC;;MAGD,aAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,IAAK,EAAA;MAChD,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAA;MAChD,CAAC;EA9RD,IAAA,UAAA,CAAA;UADCgY,mBAAY,CAAC,aAAa,CAAC;;EACC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;EAE7B,IAAA,UAAA,CAAA;UADCA,mBAAY,CAAC,aAAa,CAAC;;EACO,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;EAEnC,IAAA,UAAA,CAAA;EADC,QAAAjY,cAAO,CAAC2V,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAEA,IAAI,CAAC,aAAa,CAAC;;EACjC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;EAajC,IAAA,UAAA,CAAA;UADC3V,cAAO,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;;EACxB,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;EAsBpB,IAAA,UAAA,CAAA;UADCA,cAAO,CAAC,IAAI,EAAE,KAAK,EAAE,wCAAwC,EAAE,YAAA,EAAiC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EAC5G,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,qBAAA,EAAA,MAAA,CAAA;EAK3C,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;EAChD,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;EAElC,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC;oCACnB,aAAa;EAAC,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;MAiP/B,OAAA,aAAC;GAAA,CAjSkCD,kBAAW,CAAA;EAkS9C,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB;;AClVlD,MAAA,KAAA,kBAAA,UAAA,MAAA,EAAA;MAA2B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA;EAEvB,IAAA,SAAA,KAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EACP,QAAA,KAAI,CAAC,SAAS,CAAC,EAAE,CAAC;;MACtB;MAEA,KAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAgC,EAAA;UAChC,IAAM,WAAW,GAAGF,cAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;EAC7C,QAAA,IAAM,UAAU,GAAGA,cAAO,CAAC,CAAC,CAAC;EAC7B,QAAA,IAAI,WAAW,KAAK,UAAU,EAAE;EAC5B,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;EACjB,YAAA,OAAO,IAAI;UACf;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;MAED,KAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,IAA2B,EAAA;EACrC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE;UACtC,IAAM,YAAY,GAAa,EAAE;kCACtB,MAAM,EAAA;EACb,YAAA,IAAIqY,WAAI,CAAC,IAAI,EAAE,UAAC,GAA2B,EAAE,KAAK,EAAA;EAC9C,gBAAA,KAAK,IAAM,MAAM,IAAI,MAAM,EAAE;sBACzB,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE;EAChC,wBAAA,OAAO,KAAK;sBAChB;kBACJ;EACA,gBAAA,OAAO,IAAI;cACf,CAAC,CAAC,EAAE;EACA,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;cAC7B;;EAVJ,QAAA,KAAqB,UAAa,EAAb,eAAA,GAAA,aAAa,EAAb,EAAA,GAAA,eAAA,CAAA,MAAa,EAAb,EAAA,EAAa,EAAA;EAA7B,YAAA,IAAM,MAAM,GAAA,eAAA,CAAA,EAAA,CAAA;sBAAN,MAAM,CAAA;EAWhB,QAAA;UACD,IAAI,YAAY,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE;EAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;EAC5B,YAAA,OAAO,IAAI;UACf;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;MACL,OAAA,KAAC;EAAD,CAtCA,CAA2BnY,kBAAW,CAAA;EAuCtC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,QAAQ;EAKlC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;EAE1D,IAAI,KAAK,GAAG,CAAC;AACb,MAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EAiCzB,IAAA,SAAA,OAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UAiFf,KAAA,CAAA,OAAO,GAAoB,EAAE;UAsB7B,KAAA,CAAA,YAAY,GAAG,KAAK;UArGxB,OAAO,IAAI,EAAE;EACT,YAAA,KAAK,EAAE;EACP,YAAA,KAAI,CAAC,GAAG,GAAG,IAAA,CAAA,MAAA,CAAK,KAAK,CAAE;EACvB,YAAA,IAAI,CAAC,KAAI,CAAC,GAAG,CAAC,aAAa,CAAC,KAAI,CAAC,GAAG,CAAC,EAAE;kBACnC;cACJ;UACJ;EACA,QAAA,IAAM,IAAI,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,GAAG,CAAC;EAClD,QAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC;EACxB,QAAA,KAAI,CAAC,cAAc,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,aAAa,EAAE;EACjE,aAAA,EAAE,CAAC,MAAA,CAAA,MAAA,CAAO,KAAK,CAAE;EACjB,aAAA,KAAK,CAAC,UAAA,CAAA,MAAA,CAAW,KAAK,CAAE,CAAC;EAE9B,QAAA,KAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,KAAA,CAAA,MAAA,CAAM,KAAK,CAAE,CAAC;EAClD,QAAA,KAAI,CAAC,aAAa,CAAC,KAAI,CAAC,cAAc,CAAC;EACvC,QAAA,KAAI,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;;MAC3B;MAxCA,OAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,CAAiB,EAAA;UAA/B,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,cAAc;EACjD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;EACvB,QAAA,IAAI,CAAC;eACA,EAAE,CAAC,OAAO,EAAE,UAAC,IAAuB,EAAE,GAAW,EAAE,GAAY,EAAE,IAAK,EAAA;EACnE,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;EACxB,gBAAA,KAAI,CAAC,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAA,CAAf,CAAe,CAAC,GAAG,EAAE,CAAC;cACvE;mBAAO;EACH,gBAAA,IAAM,GAAG,GAAUE,cAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;EAChD,gBAAA,KAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAA,CAAf,CAAe,CAAC,GAAG,EAAE,CAAC;cAC5D;EACJ,QAAA,CAAC;eACA,EAAE,CAAC,cAAc,EAAE,UAAC,IAAuB,EAAE,GAAW,EAAE,GAAY,EAAA;EACnE,YAAA,IAAM,GAAG,GAAUA,cAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC;EAChD,YAAA,KAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAA,CAAf,CAAe,CAAC,GAAG,EAAE,CAAC;EAC5D,QAAA,CAAC,CAAC;EAEN,QAAA,OAAO,IAAI;MACf,CAAC;MA0BD,OAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,CAAU,EAAA;EACT,QAAA,IAAM,MAAM,GAAG,MAAA,CAAA,SAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;EAC9C,QAAA,IAAI,SAAS,CAAC,MAAM,EAAE;EAClB,YAAA,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;UAC7B;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;MAC1C,CAAC;MAID,OAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAiB,EAAA;UACxB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;EAC9D,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;EACjC,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;MACpD,CAAC;MAID,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAY,EAAA;UACjB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;EAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC/B,QAAA,OAAO,IAAI;MACf,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,UAAsB,EAAA;UAC3B,IAAI,CAAC,aAAa;eACb,UAAU,CAAC,UAAU,CAAC;EAE3B,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE;UAC/C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,0BAA0B,EAAE,EAAE;cACnD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,mBAAmB,EAAE,CAAC;UAC3D;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE;MAC/B,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;MAC5C,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;MACvB,CAAC;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,OAAO;MACvB,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;EACpB,YAAA,OAAO,EAAE;UACb;EACA,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;EACjB,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;EACrC,QAAA,KAAuB,UAA2C,EAA3C,EAAA,GAAAL,eAAA,CAAAA,eAAA,CAAA,EAAA,EAAI,QAAQ,CAAC,UAAU,EAAE,EAAA,IAAA,CAAA,EAAA,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAA,EAAA,KAAA,CAAC,EAA3C,cAA2C,EAA3C,EAAA,EAA2C,EAAE;EAA/D,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,KAAoB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,QAAQ,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAApC,gBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,cACb,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,EAAA,EACjB,KAAK,EACV;cACN;UACJ;UACA,OAAO,IAAI,CAAC,OAAO;MACvB,CAAC;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE;EAC7D,QAAA,IAAM,IAAI,GAAa,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,uBAAuB,EAAE,CAAA,CAA3B,CAA2B,CAAC;EACpE,QAAA,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;UAC9D,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACvC,YAAA,KAAI,CAAC,YAAY,GAAG,IAAI;cACxB,IAAM,IAAI,GAAG,KAAI,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;cAC3C,IAAI,KAAI,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,WAAW,EAAE;kBAClD,IAAI,KAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAAA,eAAA,CAAA,EAAA,EAAK,IAAI,EAAA,IAAA,CAAA,CAAE,EAAE;sBAC7B,KAAI,CAAC,gBAAgB,EAAE;kBAC3B;cACJ;mBAAO;kBACH,IAAI,KAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;sBAClC,KAAI,CAAC,gBAAgB,EAAE;kBAC3B;cACJ;EACJ,QAAA,CAAC,CAAC;MACN,CAAC;MAKD,OAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAY,EAAA;UAClB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE;UACtD,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;UACzB,IAAI,CAAC,gBAAgB,EAAE;EACvB,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,OAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAM,QAAQ,GAAyB,EAAE;EACzC,QAAA,KAA0B,UAA8B,EAA9B,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAA9B,cAA8B,EAA9B,EAAA,EAA8B,EAAE;EAArD,YAAA,IAAM,WAAW,GAAA,EAAA,CAAA,EAAA,CAAA;cAClB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;UACxC;EACA,QAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAA;EACvB,YAAA,KAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAI,CAAC;EAClC,QAAA,CAAC,CAAC;MACN,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,IAAyE,EAAA;UAC7E,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;MAC7C,CAAC;EA7KD,IAAA,UAAA,CAAA;EADC,QAAAI,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;;EACO,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;EAE5C,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC;oCACzB,aAAa;EAAC,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;EAuB9B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;;EACL,KAAA,EAAA,OAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;MAqJhC,OAAA,OAAC;GAAA,CApL4BD,kBAAW,CAAA;EAqLxC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM;AAWlC,MAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;MAAsC,SAAA,CAAA,gBAAA,EAAA,MAAA,CAAA;EAYlC,IAAA,SAAA,gBAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EATH,QAAA,KAAA,CAAA,YAAY,GAAwB,CAAC,aAAa,CAAC;UACnD,KAAA,CAAA,SAAS,GAAc,EAAE;UAS7B,KAAI,CAAC,KAAK,EAAE;UACZ,KAAI,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,KAAI,CAAC;;MACzC;MAEA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,GAAY,EAAA;EACd,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,KAAK,SAAS,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY;EAC3E,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,KAAK,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG,CAAA,CAAd,CAAc,CAAC;MACxF,CAAC;MAKD,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAgB,EAAA;UACrB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,SAAS;EAC5C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;MAID,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAuB,EAAA;UAC/B,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,YAAY;EAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC;EACrB,QAAA,OAAO,IAAI;MACf,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,EAAE,EAAA;UACT,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA,CAAd,CAAc,CAAC,CAAC,CAAC,CAAC;MAC5D,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,EAAqB,EAAA;EAClC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;EAC1B,QAAA,OAAO,IAAI;MACf,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,EAAqB,EAAA;EAClC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,KAAK,EAAE,CAAA,CAAV,CAAU,CAAC;EAC/D,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,OAAAH,eAAA,CAAA,EAAA,EAAW,IAAI,CAAC,SAAS,EAAA,IAAA,CAAA;MAC7B,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAuC,EAAA;EAC3C,QAAA,IAAI,MAAiB;EACrB,QAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;cACvB,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA,CAAd,CAAc,CAAC;UACzD;EAAO,aAAA,IAAI,CAAC,YAAY,aAAa,EAAE;cACnC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA,CAApB,CAAoB,CAAC;UAC7D;eAAO;cACH,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA,CAAlB,CAAkB,CAAC;UAC3D;EACA,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;EACf,YAAA,OAAO,MAAM,CAAC,CAAC,CAAC;UACpB;UACA,OAAO,IAAI,CAAC,YAAY;MAC5B,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,CAAuB,EAAA;UACjC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY;MAChD,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,EAAE,EAAE,CAAA,CAAR,CAAQ,CAAC;MAC9C,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAgB,EAAA;EACnB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;EAC5B,QAAA,OAAO,IAAI;MACf,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,MAAc,EAAA;EACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,QAAQ,EAAA;EACjC,YAAA,IAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE;cACtC,OAAO,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;EACzC,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,aAAa,EAAE,CAAA,CAAnB,CAAmB,CAAC;MACzD,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,EAAU,EAAA;UACX,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAA,CAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC;MAC3D,CAAC;MAED,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,IAAS,EAAA;UACtB,IAAM,GAAG,GAAG,EAAE;UACd,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA;EAC5B,YAAA,IAAM,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK;cAChE,IAAM,KAAK,GAAG,CAAC;EACf,YAAA,IAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM;cACpC,IAAM,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM;EACpH,YAAA,IAAM,GAAG,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI;cACpH,GAAG,CAAC,GAAG,CAAC,GAAG;EACP,gBAAA,EAAE,EAAE,GAAG;kBACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;kBACtC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACrC,gBAAA,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EACvD,gBAAA,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;kBACzD,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;eAC1C;EACL,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,GAAG;EACV,QAAA,SAAS,WAAW,CAAC,EAAE,EAAE,YAAY,EAAA;cACjC,IAAM,GAAG,GAAG,EAAE;EACd,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY;EACtB,iBAAA,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA,CAA9B,CAA8B;EAC1C,iBAAA,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAA3B,CAA2B,CAAC;EAC9C,YAAA,OAAO,GAAG;UACd;MACJ,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UACI,IAAI,MAAM,GAAoB,EAAE;EAChC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;cACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;EAC3C,QAAA,CAAC,CAAC;EACF,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,gBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,OAAO,CAAC,OAAO,EAAE,CAAA,CAAjB,CAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAA;EACvE,YAAA,OAAO,KAAI;EACf,QAAA,CAAC,CAAC;MACN,CAAC;;MAGD,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,GAAY,EAAA;MAC5B,CAAC;EAxID,IAAA,UAAA,CAAA;EADC,QAAAI,cAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC;;EACZ,KAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;EAE/B,IAAA,UAAA,CAAA;EADC,QAAAA,cAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC;;EACJ,KAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;MAuItC,OAAA,gBAAC;GAAA,CAjJqCD,kBAAW,CAAA;EAkJjD,gBAAgB,CAAC,SAAS,CAAC,MAAM,IAAI,6BAA6B;;EC7YlE,SAAS,YAAY,CAAC,QAAQ,EAAE;EAChC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC;EAChF,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE;EACxB;;EAEe,eAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;EACrC,EAAE,OAAO,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;EAC9C;;ECFA,IAAA,YAAA,kBAAA,UAAA,MAAA,EAAA;MAAkC,SAAA,CAAA,YAAA,EAAA,MAAA,CAAA;EAAlC,IAAA,SAAA,YAAA,GAAA;;UAEc,KAAA,CAAA,OAAO,GAAoB,EAAE;UAC7B,KAAA,CAAA,SAAS,GAKf,EAAE;;MA2EV;EAzEI,IAAA,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UACI,IAAI,CAAC,IAAI,CAAC,OAAO;EAAE,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE;UACpC,IAAI,CAAC,IAAI,CAAC,SAAS;EAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE;UACxC,OAAO,IAAI,CAAC,OAAO;MACvB,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,MAAM,EAAmB,CAAA,CAA3B,CAA2B,CAAC;MACnE,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,EAAiB,EAAA;UACtB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;UACjC,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;UACxC,IAAM,EAAE,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI;eAClC,MAAM,CAAC,UAAU;eACjB,MAAM,CAAC,EAAE;EACT,aAAA,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE;EAC1B,aAAA,IAAI,CAAC;EACF,YAAA,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE;EACpB,YAAA,MAAM,EAAE,EAAE,CAAC,SAAS;EACvB,SAAA,CAAC;EACN,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;UACrB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG;EACtB,YAAA,KAAK,EAAE,EAAE;EACT,YAAA,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,UAAC,EAAE,EAAA;kBACzB,QAAQ,EAAE;EACN,oBAAA,KAAK,UAAU;EACf,oBAAA,KAAK,WAAW;0BACZ;EACK,6BAAA,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE;EACvD,6BAAA,MAAM,EAAE;0BAEb;;EAEZ,YAAA,CAAC;WACJ;EACD,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;cAC5C,SAAS,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;EACpD,QAAA,CAAC,CAAC;MACN,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,EAAiB,EAAA;UACzB,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;EACjC,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;cAC5C,SAAS,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;EACtD,QAAA,CAAC,CAAC;EACF,QAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;EAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE;EAC9C,QAAA,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;UACf,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;UAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAA,CAAjB,CAAiB,CAAC;MAC9D,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE;UAC1C,IAAM,UAAU,GAAGU,cAAO,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ;EACnD,aAAA,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,KAAK,QAAQ,CAAA,CAA3C,CAA2C;EACvD,aAAA,GAAG,CAAC,UAAC,IAAS,EAAA,EAAK,OAAA,IAAI,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAA,CAAjC,CAAiC,CAAC,CAAC;UAG3D,KAAgB,IAAA,EAAA,GAAA,CAAe,EAAf,EAAA,GAAA,UAAU,CAAC,IAAI,EAAf,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,EAAA,EAAe,EAAE;EAA5B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;UACvB;UAEA,KAAgB,IAAA,EAAA,GAAA,CAAgB,EAAhB,EAAA,GAAA,UAAU,CAAC,KAAK,EAAhB,EAAA,GAAA,EAAA,CAAA,MAAgB,EAAhB,EAAA,EAAgB,EAAE;EAA7B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;UACpB;EAEA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;MACA,CAAC;MACL,OAAA,YAAC;EAAD,CAnFA,CAAkC0X,aAAM,CAAA,CAAA;;ECGxC,IAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;MAAwC,SAAA,CAAA,kBAAA,EAAA,MAAA,CAAA;EAEpC,IAAA,SAAA,kBAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;;MAGvB;MAEA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAgB,EAAA;EACrB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;cACvB,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;UACzG;EACA,QAAA,OAAO,OAAO,CAAC,EAAE,EAAE;MACvB,CAAC;EAED,IAAA,kBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,EAAiB,EAAE,OAAe,EAAE,OAAgB,EAAA;EAC7D,QAAA,IAAI,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;UAC3C,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACzC,YAAA,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;UACzB;EAAO,aAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACjD,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,KAAK,OAAO,CAAA,CAAb,CAAa,CAAC;UAChD;UACA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;MAC1C,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAS,EAAA;UACjB,IAAM,EAAE,GAAkB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;UAClD,IAAM,OAAO,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;EAC5C,QAAA,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE;UACjC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;EACvC,QAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;EACjD,QAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,EAAA,CAAA,MAAA,CAAG,GAAG,CAAC,MAAM,EAAA,KAAA,CAAA,CAAA,MAAA,CAAM,GAAG,CAAC,GAAG,CAAE,CAAA,CAA5B,CAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;MACjF,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAgB,EAAA;EACrB,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;UACtE,IAAI,EAAE,EAAE;cACJ,EAAE,CAAC,QAAQ,EAAE;UACjB;MACJ,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAM,EAAA;UACd,IAAI,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;cAC7C,IAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;EACnC,YAAAC,aAAQ,CAAC,EAAE,CAAC,IAAI;mBACX,KAAK,CAAC,WAAW,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,QAAQ,EAAE,EAAA,IAAA,CAAI;mBACtC,KAAK,CAAC,YAAY,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,SAAS,EAAE,EAAA,IAAA,CAAI,CAAC;EAE9C,YAAA,OAAO,IAAI;UACf;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;EAED,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;UAClC,IAAM,WAAW,GAAG3X,cAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,KAAK,QAAQ,CAAA,CAA3C,CAA2C,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAA,CAAhC,CAAgC,CAAC,CAAC;UAEnK,IAAI,KAAK,GAAG,KAAK;UACjB,KAAgB,IAAA,EAAA,GAAA,CAAgB,EAAhB,EAAA,GAAA,WAAW,CAAC,IAAI,EAAhB,EAAA,GAAA,EAAA,CAAA,MAAgB,EAAhB,EAAA,EAAgB,EAAE;EAA7B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;UACxB;UAEA,KAAgB,IAAA,EAAA,GAAA,CAAiB,EAAjB,EAAA,GAAA,WAAW,CAAC,KAAK,EAAjB,EAAA,GAAA,EAAA,CAAA,MAAiB,EAAjB,EAAA,EAAiB,EAAE;EAA9B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;cACR,IAAM,OAAO,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;EAC5C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;cAC9G,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;UACzC;UAEA,KAAgB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,WAAW,CAAC,MAAM,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAA/B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;cACnB,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;UACzC;UAEA,IAAI,KAAK,EAAE;cACP,IAAI,CAAC,KAAK,EAAE;UAChB;EAEA,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,CAAS,EAAE,EAAiB,EAAA;EACxC,QAAA,MAAA,CAAA,SAAK,CAAC,eAAe,CAAA,IAAA,CAAA,IAAA,EAAC,CAAC,EAAE,EAAE,CAAC;EAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;EACvC,QAAA,KAAkB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAApC,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,YAAA,IAAI,GAAG,KAAK,EAAE,EAAE;EACZ,gBAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;kBACtB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;EACtC,gBAAA,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;cAClC;mBAAO;EACH,gBAAA,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;kBACzB,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC;EACvC,gBAAA,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE;cAC5B;UACJ;MACJ,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAY,EAAA;MAC1B,CAAC;;EAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAS,EAAE,EAAiB,EAAA;EACjC,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;UACnC,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAA,CAAA,MAAA,CAAkB,EAAE,EAAA,KAAA,CAAI,CAAC;UACvD,IAAI,MAAM,EAAE;EACR,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;cAClB,IAAI,CAAC,WAAW,EAAE;EAClB,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;UACjC;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,cAAe,CAAC;MACpB,OAAA,kBAAC;EAAD,CAhHA,CAAwC4X,kBAAS,CAAA,CAAA;EAiHjD,kBAAkB,CAAC,SAAS,CAAC,MAAM,IAAI,gCAAgC;EACvE,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;;ECjHhD,IAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAAmC,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EAE/B,IAAA,SAAA,aAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;UADf,KAAA,CAAA,YAAY,GAAG,EAAE;EAIrB,QAAA,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC;EACtB,QAAA,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC;EACxB,QAAA,KAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;;MAC9B;EACA,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,MAAM,EAAE,kBAA8B,EAAE,SAA0B,EAAA;EAA1D,QAAA,IAAA,kBAAA,KAAA,MAAA,EAAA,EAAA,kBAAA,GAAA,CAA8B,CAAA,CAAA;EAAE,QAAA,IAAA,SAAA,KAAA,MAAA,EAAA,EAAA,SAAA,GAAA,KAA0B,CAAA,CAAA;UACzE,MAAA,CAAA,SAAK,CAAC,UAAU,CAAA,IAAA,CAAA,IAAA,EAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,CAAC;UACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAA,UAAU,EAAA;cAC7C,OAAO;EACH,gBAAA,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC5B,gBAAA,QAAQ,EAAE;sBACN,UAAU,CAAC,OAAO,EAAE;sBACpB,UAAU,CAAC,OAAO,EAAE;sBACpB,UAAU,CAAC,WAAW,EAAE;sBACxB,UAAU,CAAC,WAAW;EACzB;eACJ;EACL,QAAA,CAAC,CAAC;MACN,CAAC;MACD,aAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAgB,EAAA;UACtB,IAAI,CAAC,EAAE;EACH,YAAA,IAAK,CAAS,CAAC,IAAI,EAAE;kBACjB,IAAM,eAAe,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;EAC9C,gBAAA,IAAI,CAAC,YAAY,GAAG,eAAe;cACvC;EAAO,iBAAA,IAAI,CAAC,YAAY,KAAK,EAAE;EAC3B,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;cACzB;UACJ;EACA,QAAA,OAAO,IAAI;EAEX,QAAA,SAAS,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAA;cACzC,IAAM,GAAG,GAAG,EAAE;EACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;EACzC,YAAA,OAAO,GAAG;cACV,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA;EACvB,gBAAA,IAAI,CAAC,CAAC,QAAQ,EAAE;EACZ,oBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;EACzB,wBAAA,IAAI,CAAC,CAAC,WAAW,KAAK,YAAY,EAAE;8BAChC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,EAAA;kCACxB,IAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;kCACzB,IAAM,EAAE,GAAG,CAAC;kCACZ,IAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;kCAC3C,IAAM,EAAE,GAAG,CAAC;EACZ,gCAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACvC,4BAAA,CAAC,CAAC;0BACN;EAAO,6BAAA,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,EAAE;8BACrC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,EAAA;kCACxB,IAAM,EAAE,GAAG,CAAC;kCACZ,IAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;kCACzB,IAAM,EAAE,GAAG,CAAC;kCACZ,IAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;EAC3C,gCAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACvC,4BAAA,CAAC,CAAC;0BACN;+BAAO;EACH,4BAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;0BACxB;sBACJ;EAAO,yBAAA,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;0BAC9B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC,EAAA;8BACxB,IAAM,EAAE,GAAG,CAAC;8BACZ,IAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;8BACzB,IAAM,EAAE,GAAG,CAAC;8BACZ,IAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;EAC3C,4BAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACvC,wBAAA,CAAC,CAAC;sBACN;kBACJ;uBAAO;sBACH,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;kBAC1C;cACJ;UACJ;MACJ,CAAC;EACD,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,OAAO,IAAI,CAAC,YAAY;MAC5B,CAAC;EACD,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,MAAM,EAAE,CAAA,CAAV,CAAU,CAAC;MAC9C,CAAC;EACD,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,OAAO,IAAI;MACf,CAAC;EACD,IAAA,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;MACA,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAgB,EAAA;EACrB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;cACvB,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;UACzG;EACA,QAAA,OAAO,OAAO,CAAC,EAAE,EAAE;MACvB,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAS,EAAA;UACjB,IAAM,IAAI,GAAS,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;UAC7C,IAAM,OAAO,GAAY,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;UAC5C,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;UACtC,IAAI,CAAC,MAAM;eACP,KAAK,CAAC,QAAQ,CAAC;MAExB,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAgB,EAAA;MACzB,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,CAAS,EAAA;UAClB,IAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACvC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;MAC3B,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,CAAM,EAAA;UACd,IAAI,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,gBAAgB,EAAE,EAAE;cAC7C,IAAM,IAAI,GAAS,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;cAC7C,IAAI,CAAC,OAAO;mBACP,KAAK,CAAC,WAAW,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,QAAQ,EAAE,EAAA,IAAA,CAAI;mBACtC,KAAK,CAAC,YAAY,EAAE,EAAA,CAAA,MAAA,CAAG,CAAC,CAAC,SAAS,EAAE,EAAA,IAAA,CAAI,CAAC;EAE9C,YAAA,OAAO,IAAI;UACf;EACA,QAAA,OAAO,KAAK;MAChB,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE;UAClC,IAAM,WAAW,GAAG5X,cAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,KAAK,QAAQ,CAAA,CAA3C,CAA2C,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAA,CAAhC,CAAgC,CAAC,CAAC;UAEnK,KAAgB,IAAA,EAAA,GAAA,CAAgB,EAAhB,EAAA,GAAA,WAAW,CAAC,IAAI,EAAhB,EAAA,GAAA,EAAA,CAAA,MAAgB,EAAhB,EAAA,EAAgB,EAAE;EAA7B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;UACxB;UAGA,IAAM,eAAe,GAAG,EAAE;kCACf,MAAM,EAAA;cACb,IAAM,OAAO,GAAY,MAAA,CAAK,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;EACjD,YAAA,IAAM,CAAC,GAAG,MAAA,CAAK,OAAO,EAAE,CAAC,MAAM;cAC/B,IAAI,MAAA,CAAK,YAAY,IAAI,MAAA,CAAK,YAAY,CAAC,CAAC,CAAC,EAAE;kBAC3C,IAAM,MAAM,GAAI,MAAA,CAAK,YAAoB,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAA,CAApB,CAAoB,CAAC;kBACzE,IAAI,MAAM,EAAE;EACF,oBAAA,IAAA,KAAe,MAAM,CAAC,QAAQ,EAA7B,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,CAAC,QAAmB;sBACpC,MAAA,CAAK,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;kBAGzE;uBAAO;sBACH,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;kBAC9D;cACJ;mBAAO;kBACH,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;cAC9D;;;UAfJ,KAAqB,IAAA,EAAA,GAAA,CAAiB,EAAjB,EAAA,GAAA,WAAW,CAAC,KAAK,EAAjB,EAAA,GAAA,EAAA,CAAA,MAAiB,EAAjB,EAAA,EAAiB,EAAA;EAAjC,YAAA,IAAM,MAAM,GAAA,EAAA,CAAA,EAAA,CAAA;sBAAN,MAAM,CAAA;EAgBhB,QAAA;EACD,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,EAAA,EAAK,OAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA,CAAnD,CAAmD,EAAE,CAAC,CAAC;EAC3G,QAAA,eAAe,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA;EACtB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;cACzC,OAAO,IAAI,CAAC;EAChB,QAAA,CAAC,CAAC;UACF,KAAgB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,WAAW,CAAC,MAAM,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAA/B,YAAA,IAAM,CAAC,GAAA,EAAA,CAAA,EAAA,CAAA;EACR,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;UACvB;EACA,QAAA,OAAO,IAAI;MACf,CAAC;;EAGD,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,CAAS,EAAE,EAAkB,EAAA;EACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;MAC3C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;UACI,MAAA,CAAA,SAAK,CAAC,mBAAmB,CAAA,IAAA,CAAA,IAAA,CAAE;UAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;EACzC,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;EACrB,YAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;UACrD;MACJ,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAY,EAAA;MAC1B,CAAC;;EAGD,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAS,EAAE,EAAiB,EAAA;EACjC,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;UACnC,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAA,CAAA,MAAA,CAAkB,EAAE,EAAA,KAAA,CAAI,CAAC;UACvD,IAAI,MAAM,EAAE;EACR,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;cAClB,IAAI,CAAC,WAAW,EAAE;EAClB,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;UACjC;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,cAAe,CAAC;MACpB,OAAA,aAAC;EAAD,CA9LA,CAAmC6X,WAAI,CAAA,CAAA;EA+LvC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,2BAA2B;EAC7D,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;;ECpL3C,IAAMC,QAAM,GAAGC,mBAAY,CAAC,qBAAqB,CAAC;EAKlD,IAAA,oBAAA,kBAAA,YAAA;EAGI,IAAA,SAAA,oBAAA,GAAA;MACA;EAEA,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;MACtB,CAAC;MAED,oBAAA,CAAA,SAAA,CAAA,EAAE,GAAF,UAAG,GAAmB,EAAA;EAClB,QAAA,IAAI,GAAG,YAAY,EAAE,EAAE;cACnB,OAAO,EAAA,CAAA,MAAA,CAAG,GAAG,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,GAAG,CAAC,IAAI,EAAE,CAAE;UACvC;EAAO,aAAA,IAAI,GAAG,YAAY,YAAY,EAAE;EACpC,YAAA,OAAO,UAAG,GAAG,CAAC,GAAG,EAAE,cAAI,GAAG,CAAC,QAAQ,EAAE,cAAI,GAAG,CAAC,OAAO,EAAE,CAAE;UAC5D;EAAO,aAAA,IAAI,GAAG,YAAY,WAAW,EAAE;cACnC,OAAO,EAAA,CAAA,MAAA,CAAG,GAAG,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,GAAG,CAAC,MAAM,EAAE,CAAE;UACzC;EACA,QAAA,OAAO,GAAG,CAAC,EAAE,EAAE;MACnB,CAAC;MAED,oBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,GAAmB,EAAA;EAC1B,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;MAC9C,CAAC;MAED,oBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAoB,EAAA;EAC1B,QAAA,IAAI,KAAK,YAAY,WAAW,EAAE;EAC9B,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;UACnD;EAAO,aAAA,IAAI,KAAK,YAAY,cAAc,EAAE;EACxC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;UACxD;EAAO,aAAA,IAAI,KAAK,YAAY,cAAc,EAAE;EACxC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;UACxD;EAAO,aAAA,IAAI,KAAK,YAAY,aAAa,EAAE;EACvC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC;UACxD;MACJ,CAAC;MAED,oBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,GAAiC,EAAA;EACpC,QAAA,IAAM,OAAO,GAAsB,GAAG,YAAY,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,GAAG,GAAG;EACnF,QAAA,IAAM,GAAG,GAAkB,GAAG,YAAY,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,SAAS;EACpF,QAAA,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,EAAE;EAC1B,QAAA,IAAM,EAAE,GAAmB,OAAO,YAAY,QAAQ,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,YAAY,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,YAAY,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO;UACxL,IAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;UACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;EACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;EAClB,gBAAA,EAAE,EAAA,EAAA;EACF,gBAAA,MAAM,EAAE;eACX;UACL;EACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;cACpC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;EAChC,gBAAA,OAAO,EAAA,OAAA;EACP,gBAAA,GAAG,EAAA;eACN;UACL;MACJ,CAAC;EAED,IAAA,oBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;UACI,IAAM,MAAM,GAA0B,EAAE;kCAC7B,GAAG,EAAA;EACV,YAAA,IAAM,GAAG,GAAG,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE;;EAGzC,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;kBACrE,IAAM,QAAM,GAAuC,EAAE;0CAC1C,IAAI,EAAA;EACX,oBAAA,IAAM,IAAI,GAAG,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;EAC5D,oBAAA,IAAM,IAAI,GAAqB;EAC3B,wBAAA,MAAM,EAAE,EAAE;EACV,wBAAA,OAAO,EAAE;uBACZ;EACD,oBAAA,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;EAC1D,oBAAA,KAAK,IAAM,WAAW,IAAI,IAAI,CAAC,MAAM,EAAE;0BACnC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAA,OAAO,EAAA;8BACpC,QAAM,CAAC,OAAO,CAAC,GAAI,IAAY,CAAC,MAAM,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,EAAE,KAAK,OAAO,CAAA,CAAlB,CAAkB,CAAC,CAAC,CAAC,CAAC;EAC/E,wBAAA,CAAC,CAAC;sBACN;;kBAXJ,KAAK,IAAM,IAAI,IAAI,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAA;8BAAjC,IAAI,CAAA;EAYd,gBAAA;EACD,gBAAA,GAAG,CAAC,MAAM,GAAG,EAAE;EACf,gBAAA,KAAK,IAAM,KAAG,IAAI,QAAM,EAAE;sBACtB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAM,CAAC,KAAG,CAAC,CAAC;kBAChC;cACJ;;cAGA,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;kBAChG,IAAM,OAAO,GAAwC,EAAE;kBACvD,KAAK,IAAM,IAAI,IAAI,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;EAC1C,oBAAA,IAAM,IAAI,GAAG,MAAA,CAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE;sBAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;EACpG,wBAAA,KAAK,IAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;8BACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;0BAC9C;sBACJ;kBACJ;EACA,gBAAA,GAAG,CAAC,OAAO,GAAG,EAAE;EAChB,gBAAA,KAAK,IAAM,KAAG,IAAI,OAAO,EAAE;sBACvB,GAAG,CAAC,OAAO,CAAC,KAAG,CAAC,GAAG,OAAO,CAAC,KAAG,CAAC;kBACnC;cACJ;EACA,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;;;EAzCpB,QAAA,KAAK,IAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAA;sBAApB,GAAG,CAAA;EA0Cb,QAAA;EACD,QAAA,OAAO,MAAM;MACjB,CAAC;MACL,OAAA,oBAAC;EAAD,CAAC,EAxGD,CAAA;AA0GA,MAAA,UAAA,kBAAA,YAAA;EAMI,IAAA,SAAA,UAAA,CAAY,SAAoB,EAAA;EAHxB,QAAA,IAAA,CAAA,aAAa,GAAyB,IAAI,oBAAoB,EAAE;UAChE,IAAA,CAAA,YAAY,GAAsD,EAAE;EAGxE,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;UAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;MACjD;EAEA,IAAA,UAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;UAC/D;EACA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;MACtC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,OAAgB,EAAA;EACzB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,SAAS;EACvC,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE;MAC1B,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,SAAuB,EAAE,EAAoB,EAAA;UACrD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC;MACzC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,OAAgB,EAAA;EACzB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,SAAS;EACvC,QAAA,OAAO,OAAO,CAAC,KAAK,EAAE;MAC1B,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,UAAyB,EAAA;EACjC,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;MACtC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,QAAkB,EAAA;EAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;cAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE;EACxE,QAAA,OAAO,QAAQ,CAAC,KAAK,EAAE;MAC3B,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,UAA0B,EAAA;EACnC,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;MACvC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,EAAW,EAAA;EACpB,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,SAAS;EAClC,QAAA,OAAO,EAAE,CAAC,KAAK,EAAE;MACrB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,KAAoB,EAAA;EAC5B,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;MACjC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAU,EAAA;EAChB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,SAAS;EACpC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE;MACvB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAmB,EAAA;EACxB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;MAChC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,KAAY,EAAA;EACnB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;EAAE,YAAA,OAAO,SAAS;EACrC,QAAA,OAAO,KAAK,CAAC,KAAK,EAAE;MACxB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,QAAqB,EAAA;EAC3B,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;MAClC,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,QAA6B,EAAE,QAAkB,EAAE,gBAAkC,EAAA;UAAvG,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE;cAC9B,IAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAO;EAC/C,YAAA,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;UAC1D;EAAO,aAAA,IAAIA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;EACzC,YAAA,QAAQ,CAAC,YAAY,CAAC,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAC,MAAM,CAAE,CAAC;EAC1D,YAAA,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAoC;cACxE;mBACK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;kBAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,EAAE,CAAC;cACtC,CAAC,CAAC,CAAC;UAEX;eAAO;EACH,YAAA,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;UACtC;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAsB,EAAA;UAAtC,IAAA,KAAA,GAAA,IAAA;UACI,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,UAAA,QAAQ,EAAA;EACjC,YAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;EAC7B,gBAAA,OAAO,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;cACtC;EAAO,iBAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;EACpC,gBAAA,OAAO,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;cACtC;EAAO,iBAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;EACpC,gBAAA,OAAO,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;cACtC;EAAO,iBAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;EACjC,gBAAA,OAAO,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;cACnC;EAAO,iBAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;EAClC,gBAAA,OAAO,KAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;cACpC;EAAO,iBAAA,IAAI,QAAQ,YAAY,QAAQ,EAAE;EACrC,gBAAA,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;cACvC;EAAO,iBAAA,IAAI,QAAQ,YAAY,QAAQ,EAAE;mBAElC;kBACH4C,QAAM,CAAC,OAAO,CAAC,yBAAA,CAAA,MAAA,CAA0B,QAAQ,CAAC,OAAO,EAAE,CAAE,CAAC;cAClE;EACJ,QAAA,CAAC,CAAC,CAAC,MAAM,CAAC,UAAA,QAAQ,EAAA,EAAI,OAAA,CAAC,CAAC,QAAQ,CAAA,CAAV,CAAU,CAAC;MACrC,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,aAA4B,EAAA;UAC3C,OAAO;EACH,YAAA,EAAE,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;EACnC,YAAA,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE;EAC5B,YAAA,WAAW,EAAE,aAAa,CAAC,WAAW,EAAE;EACxC,YAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE;EACtC,YAAA,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE;cACpC,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;cACtD,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;EACtD,YAAA,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE;EACtC,YAAA,mBAAmB,EAAE,aAAa,CAAC,mBAAmB;WACzD;MACL,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAA2B,EAAE,aAA4B,EAAA;UACvE,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;UACnD,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;UACxC;EACK,aAAA,KAAK,CAAC,MAAM,CAAC,KAAK;EAClB,aAAA,WAAW,CAAC,MAAM,CAAC,WAAW;EAC9B,aAAA,UAAU,CAAC,MAAM,CAAC,UAAU;EAC5B,aAAA,SAAS,CAAC,MAAM,CAAC,SAAgB;EACjC,aAAA,UAAU,CAAC,MAAM,CAAC,UAAU;eAC5B,QAAQ,CAAC,QAAQ;EACjB,aAAA,mBAAmB,CAAC,MAAM,CAAC,mBAAmB,CAAC;EAEpD,QAAA,OAAO,IAAI;MACf,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,KAAoB,EAAA;EACpC,QAAA,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;EAC5B,QAAA,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,EAAE;EAC5D,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;;UAEI,IAAM,SAAS,GAAqB,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;EAC/D,QAAA,KAAsB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAtC,YAAA,IAAM,OAAO,GAAA,EAAA,CAAA,EAAA,CAAA;cACd,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC;UAClE;UAEA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA;EAClC,YAAA,IAAM,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE;EACpC,YAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;EAClC,YAAA,IAAI,QAAQ,YAAY,QAAQ,EAAE;EAC9B,gBAAA,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,EAAE;EACtC,gBAAA,IAAM,MAAM,GAAG;EACX,oBAAA,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;EAChB,oBAAA,UAAU,EAAE,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;EAC3C,oBAAA,UAAU,EAAE,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC;sBACtC,aAAa,EAAE,KAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,aAAa,EAAE;mBACjE;EACD,gBAAA,OAAO,MAAM;cACjB;EACA,YAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;EACxC,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,OAAO;EACH,YAAA,IAAI,EAAE9Y,UAAQ;EACd,YAAA,OAAO,EAAEC,aAAW;EACpB,YAAA,YAAY,EAAE,aAAa;EAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;WACjC;MACL,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,QAAsB,EAAA;UAC/B,KAAsB,IAAA,EAAA,GAAA,CAAQ,EAAR,UAAA,GAAA,QAAQ,EAAR,sBAAQ,EAAR,EAAA,EAAQ,EAAE;EAA3B,YAAA,IAAM,OAAO,GAAA,UAAA,CAAA,EAAA,CAAA;EACd,YAAA,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;EACpD,YAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;EACxB,YAAA,IAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE;EAC7C,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,EAAc,EAAE,IAAI,CAAC,GAAG,CAAC;cAC5F,KAAuB,IAAA,EAAA,GAAA,CAAkB,EAAlB,EAAA,GAAA,OAAO,CAAC,UAAU,EAAlB,EAAA,GAAA,EAAA,CAAA,MAAkB,EAAlB,EAAA,EAAkB,EAAE;EAAtC,gBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,gBAAA,IAAIiW,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;sBAClC,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;EAC1C,oBAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;kBAClC;EACA,gBAAA,IAAIA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;EACjC,oBAAA,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC;EACpD,oBAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;kBAClC;EACA,gBAAA,IAAIA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE;sBAClC,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;EAC1C,oBAAA,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;kBAClC;EACA,gBAAA,IAAIA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;sBAC/B,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;EACpC,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;kBAC5B;EACA,gBAAA,IAAIA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;sBAChC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;EACtC,oBAAA,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;kBAC9B;cACJ;EACA,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;UAC1E;MACJ,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,UAA4B,EAAA;EACvC,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;cACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,MAAgB,CAAC;UAC1D;MACJ,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;EAC1B,QAAA,IAAM,MAAM,GAAgB;EACxB,YAAA,OAAO,EAAE,OAAO;EAChB,YAAA,SAAS,EAAE;EACP,gBAAA,IAAI,EAAElW,UAAQ;EACd,gBAAA,OAAO,EAAEC;EACZ,aAAA;EACD,YAAA,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE;EACpC,YAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE;EAC/B,YAAA,UAAU,EAAE,IAAI,CAAC,eAAe,EAAE;EAClC,YAAA,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU;WAC9C;EACD,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,UAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAK,GAAgB,EAAA;EACjB,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;UAC1B,KAAoB,IAAA,EAAA,GAAA,CAAe,EAAf,EAAA,GAAA,GAAG,CAAC,WAAW,EAAf,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,EAAA,EAAe,EAAE;EAAhC,YAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,YAAA,QAAQ,KAAK,CAAC,IAAI;EACd,gBAAA,KAAK,UAAU;EACX,oBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;sBAClD;EACJ,gBAAA,KAAK,MAAM;EACP,oBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;sBAC9C;EACJ,gBAAA,KAAK,aAAa;EACd,oBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;sBAC/D;EACJ,gBAAA,KAAK,UAAU;EACX,oBAAA,IAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;sBACtC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;EAC/B,oBAAA,KAAK,IAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE;EACpC,wBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;sBACpD;sBACA;EACJ,gBAAA,KAAK,OAAO;EACZ,gBAAA,KAAK,OAAO;EACR,oBAAA,IAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;sBAChD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;EAC/B,oBAAA,KAAK,IAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE;EACpC,wBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;sBAC5E;sBACA;EACJ,gBAAA,KAAK,MAAM;EACP,oBAAA,IAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;sBAChD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;EACjC,oBAAA,KAAK,IAAM,UAAU,IAAI,KAAK,CAAC,OAAO,EAAE;EACpC,wBAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;sBAC5E;sBACA;EACJ,gBAAA;sBACI6Y,QAAM,CAAC,OAAO,CAAC,+BAAA,CAAA,MAAA,CAAiC,KAAa,CAAC,IAAI,EAAA,GAAA,CAAG,CAAC;;UAElF;EACA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;EAChC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;UACnC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC;MACnD,CAAC;MACL,OAAA,UAAC;EAAD,CAAC,EArRD;;EC1HA,IAAA,OAAA,kBAAA,YAAA;EAAA,IAAA,SAAA,OAAA,GAAA;UACI,IAAA,CAAA,UAAU,GAAiB,EAAE;MAqBjC;MAnBI,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,UAAqB,EAAA;UACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;cACrC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE;UAC3C;EACA,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI;MAC/D,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UACI,IAAM,QAAQ,GAAa,EAAE;EAC7B,QAAA,KAAK,IAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;cACpC,IAAM,QAAQ,GAAa,EAAE;cAC7B,KAAK,IAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;EAC7C,gBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;cAC1B;cACA,QAAQ,CAAC,IAAI,EAAE;EACf,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAA,CAAA,MAAA,CAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,YAAA,CAAA,CAAA,MAAA,CAAY,QAAQ,EAAA,KAAA,CAAI,CAAC;UAC1E;EACA,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;MAC9B,CAAC;MACL,OAAA,OAAC;EAAD,CAAC,EAtBD,CAAA;EAwBM,SAAU,WAAW,CAAC,EAAe,EAAA;MACvC,IAAM,MAAM,GAA2B,EAAE;EACzC,IAAA,KAAmB,IAAA,EAAA,GAAA,CAAwB,EAAxB,EAAA,GAAA,EAAE,CAAC,mBAAmB,EAAE,EAAxB,EAAA,GAAA,EAAA,CAAA,MAAwB,EAAxB,EAAA,EAAwB,EAAE;EAAxC,QAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,QAAA,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;cACrD,IAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;EACzB,YAAA,QAAQ,IAAI,CAAC,IAAI;EACb,gBAAA,KAAK,eAAe;sBAChB,IAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;sBAC1C,IAAI,aAAa,EAAE;EACf,wBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa;sBACnC;sBACA;EACJ,gBAAA;EACI,oBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG;;UAEjC;MACJ;EACA,IAAA,OAAO,MAAM;EACjB;AAEA,MAAA,iBAAA,kBAAA,YAAA;EAMI,IAAA,SAAA,iBAAA,CAAY,SAAoB,EAAA;UAsDhC,IAAA,CAAA,MAAM,GAA+B,EAAE;EArDnC,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;UAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;UAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;UAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;MAC9C;EAEA,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,MAAc,EAAE,EAAe,EAAE,OAAoB,EAAA;EAApB,QAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAA,GAAA,EAAoB,CAAA,CAAA;UAC7D,IAAI,MAAM,GAAa,EAAE;EACzB,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAwB,EAAxB,EAAA,GAAA,EAAE,CAAC,mBAAmB,EAAE,EAAxB,EAAA,GAAA,EAAA,CAAA,MAAwB,EAAxB,EAAA,EAAwB,EAAE;EAAxC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;cACX,IAAK,EAAU,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;EACpC,gBAAA,QAAQ,IAAI,CAAC,IAAI;EACb,oBAAA,KAAK,QAAQ;EACb,oBAAA,KAAK,KAAK;0BACN,MAAM,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAA,KAAA,CAAA,CAAA,MAAA,CAAM,EAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAA,KAAA,CAAA,CAAA,MAAA,CAAK,OAAO,EAAA,GAAA,CAAG,CAAC;0BAC3E;EACJ,oBAAA,KAAK,QAAQ;EACb,oBAAA,KAAK,SAAS;0BACV,MAAM,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAK,EAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,OAAO,EAAA,GAAA,CAAG,CAAC;0BACzE;EACJ,oBAAA,KAAK,QAAQ;0BACT,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAA,IAAA,CAAI,EAAG,EAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;0BAC1F;EACJ,oBAAA,KAAK,eAAe;0BAChB,IAAI,IAAI,CAAC,GAAG;8BACR,MAAM,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,MAAM,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAM,EAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,OAAO,EAAA,GAAA,CAAG,CAAC;0BAC/E;;cAIZ;UACJ;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,iBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,SAAmB,EAAA;EACzB,QAAA,OAAO,EAAE;MACb,CAAC;MAEO,iBAAA,CAAA,SAAA,CAAA,MAAM,GAAd,UAAe,EAAU,EAAA;EACrB,QAAA,IAAI,CAAC,EAAE;EAAE,YAAA,OAAO,EAAE;EAClB,QAAA,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;MACpD,CAAC;MAEO,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAvB,UAAwB,IAAgB,EAAA;EACpC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU;EACrC,QAAA,IAAI5C,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE;EACvC,YAAA,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAE;UAC1G;EAAO,aAAA,IAAIA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE;EAC1C,YAAA,OAAO,UAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,cAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAE;UAClF;UACA,OAAO,EAAA,CAAA,MAAA,CAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAE;MAC7C,CAAC;MAGO,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAvB,UAAwB,IAAgB,EAAA;EACpC,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU;UACrC,IAAM,MAAM,GAAa,EAAE;UAC3B,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,CAAA,CAA1B,CAA0B,CAAC,CAAC,CAAC,CAAC;EAC1F,QAAA,IAAM,QAAQ,GAAI,aAAqB,CAAC,MAAM;UAC9C,IAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;UACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;EAClB,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;EACtB,YAAA,QAAQ,UAAU,CAAC,IAAI;EACnB,gBAAA,KAAK,UAAU;EACX,oBAAA,IAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;sBAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;EACpB,wBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI;EACxB,wBAAA,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,IAAI,EAAA,yCAAA,CAAA,CAAA,MAAA,CAC5C,UAAU,CAAC,GAAG,kCACb,UAAU,CAAC,IAAI,EAAA,gBAAA,CACtB,CAAC;sBACS;sBACA,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,EAAE,EAAA,4CAAA,CAAA,CAAA,MAAA,CACxC,IAAI,EAAA,2BAAA,CAAA,CAAA,MAAA,CACK,QAAQ,EAAA,+BAAA,CAAA,CAAA,MAAA,CACL,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAA,cAAA,CAC9D,CAAC;sBACS;EACJ,gBAAA,KAAK,aAAa;sBACd,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,EAAE,EAAA,kDAAA,CAAA,CAAA,MAAA,CACtC,UAAU,CAAC,GAAG,EAAA,8BAAA,CAAA,CAAA,MAAA,CACN,UAAU,CAAC,WAAW,EAAA,+BAAA,CAAA,CAAA,MAAA,CACpB,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAA,cAAA,CAC5C,CAAC;sBACS;EACJ,gBAAA,KAAK,OAAO;EACZ,gBAAA,KAAK,OAAO;EACR,oBAAA,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;sBACjD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;EACzB,wBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI;0BAC7B,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,SAAS,EAAA,qDAAA,CAAA,CAAA,MAAA,CACjD,UAAU,CAAC,GAAG,EAAA,2BAAA,CAAA,CAAA,MAAA,CACT,UAAU,CAAC,QAAQ,qCACpB,UAAU,CAAC,OAAO,EAAA,8BAAA,CAAA,CAAA,MAAA,CACb,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAA,cAAA,CAC3C,CAAC;sBACS;EACA,oBAAA,IAAM,QAAQ,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;sBACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;EACxB,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI;0BAC5B,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,QAAQ,EAAA,sDAAA,CAAA,CAAA,MAAA,CAC7C,SAAS,EAAA,2BAAA,CAAA,CAAA,MAAA,CACL,QAAQ,EAAA,+BAAA,CAAA,CAAA,MAAA,CACL,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAA,cAAA,CAC9D,CAAC;sBACS;EACA,oBAAA,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,EAAE,uEAChC,QAAQ,EAAA,+BAAA,CAAA,CAAA,MAAA,CACF,SAAS,CAAE,aAAuC,CAAC,OAAO,CAAC,EAAA,cAAA,CAC7E,CAAC;sBACS;EACJ,gBAAA,KAAK,UAAU;sBACX;0BACI,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,EAAE,EAAA,kDAAA,CAAA,CAAA,MAAA,CACvC,UAAU,CAAC,MAAM,EAAA,wBAAA,CAAA,CAAA,MAAA,CACjB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAA,cAAA,CAC3C,CAAC;sBACS;sBACA;EACJ,gBAAA,KAAK,MAAM;sBACP;0BACI,IAAM,UAAU,GAAa,EAAE;0BAC/B,KAAoB,IAAA,EAAA,GAAA,CAAiB,EAAjB,EAAA,GAAA,UAAU,CAAC,MAAM,EAAjB,EAAA,GAAA,EAAA,CAAA,MAAiB,EAAjB,EAAA,EAAiB,EAAE;EAAlC,4BAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,4BAAA,UAAU,CAAC,IAAI,CAAC,uCAAA,CAAA,MAAA,CAAuC,KAAK,CAAC,EAAE,EAAA,gBAAA,CAAA,CAAA,MAAA,CAAe,KAAK,CAAC,OAAO,IAAI,EAAE,EAAA,KAAA,CAAI,CAAC;0BAC1G;EACA,wBAAA,MAAM,CAAC,IAAI,CAAC,mBAAA,CAAA,MAAA,CAAoB,EAAE,EAAA,+DAAA,CAAA,CAAA,MAAA,CAE5C,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAA,yBAAA,CAEtC,CAAC;sBACS;sBACA;;UAEZ;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAEO,iBAAA,CAAA,SAAA,CAAA,aAAa,GAArB,UAAsB,QAA2B,EAAA;EAC7C,QAAA,QAAQ,QAAQ,CAAC,IAAI;EACjB,YAAA,KAAK,QAAQ;kBACT,OAAO,wCAAA,CAAA,MAAA,CAAyC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAG;EACrF,YAAA,KAAK,SAAS;kBACV,OAAO,2CAAA,CAAA,MAAA,CAA4C,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAG;EAC7F,YAAA,KAAK,SAAS;EACV,gBAAA,OAAO,4CAAqC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAA,eAAA,CAAA,CAAA,MAAA,CAAgB,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAG;EACpI,YAAA,KAAK,MAAM;kBACP,OAAO,mCAAA,CAAA,MAAA,CAAoC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAG;EAChF,YAAA,KAAK,OAAO;EACR,gBAAA,OAAO,8BAAA,CAAA,MAAA,CAA+B,QAAQ,CAAC,KAAK,MAAG;EAC3D,YAAA,KAAK,UAAU;kBACX,OAAO,4CAAA,CAAA,MAAA,CAA6C,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAG;;MAEtG,CAAC;MAED,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,EAAe,EAAA;UAC5B,IAAM,MAAM,GAAa,EAAE;EAC3B,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAwB,EAAxB,EAAA,GAAA,EAAE,CAAC,mBAAmB,EAAE,EAAxB,EAAA,GAAA,EAAA,CAAA,MAAwB,EAAxB,EAAA,EAAwB,EAAE;EAAxC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,IAAK,EAAU,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;kBAC9D,MAAM,CAAC,IAAI,CAAC,GAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,SAAS,CAAE,EAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA,GAAA,CAAG,CAAC;cACzE;UACJ;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;MAEO,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,UAAuB,KAA6B,EAAE,OAAgB,EAAE,OAAe,EAAE,OAAe,EAAA;UAAxG,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,MAAM,GAAW,EAAE;EACvB,QAAA,IAAI,IAAe;EACnB,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;EACf,YAAA,IAAI,GAAG8C,mBAAY,CAAC,KAAK,CAAC,OAAO,CAAC;EAClC,YAAA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;EACpB,YAAA,MAAM,IAAI,MAAA,CAAA,MAAA,CAAO,IAAI,CAAC,KAAK,OAAI;UACnC;EACA,QAAA,KAAK,IAAM,IAAI,IAAI,KAAK,EAAE;EACtB,YAAA,IAAI,IAAI,KAAK,SAAS,EAAE;mBACjB,IAAIxY,cAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;EAC7B,gBAAA,IAAM,GAAG,GAAG,EAAA,CAAA,MAAA,CAAI,KAAK,CAAC,IAAI,CAAW,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,EAAE,CAAC,CAAA,CAA5D,CAA4D,CAAC,CAAC,IAAI,CAAC,GAAA,CAAA,MAAA,CAAI,OAAO,EAAA,UAAA,CAAU,CAAC,CAAE;kBAC7I,IAAI,GAAG,EAAE;EACL,oBAAA,MAAM,IAAI,EAAA,CAAA,MAAA,CAAG,OAAO,EAAA,OAAA,CAAA,CAAA,MAAA,CAAQ,IAAI,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,OAAO,EAAA,UAAA,CAAA,CAAA,MAAA,CAAW,GAAG,CAAA,CAAA,MAAA,CAAG,OAAO,EAAA,QAAA,CAAA,CAAA,MAAA,CAAS,OAAO,CAAE;kBAC1F;cACJ;mBAAO;EACH,gBAAA,MAAM,IAAI,EAAA,CAAA,MAAA,CAAG,OAAO,kBAAQ,IAAI,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,OAAO,CAAE;cAChF;UACJ;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAnB,UAAoB,QAAoB,EAAE,OAAgB,EAAA;EACtD,QAAA,OAAO,2BAAoB,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAA,mDAAA,CAAA,CAAA,MAAA,CAC7C,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAA,wBAAA,CAAA,CAAA,MAAA,CACtB,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAA,uBAAA,CAAA,CAAA,MAAA,CAC5B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,iBAC1G;MACN,CAAC;MAEO,iBAAA,CAAA,SAAA,CAAA,YAAY,GAApB,UAAqB,QAAoB,EAAA;EACrC,QAAA,IAAM,UAAU,GAAa,CAAC,OAAA,CAAA,MAAA,CAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAE,CAAC;UACvE,KAAuB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,QAAQ,CAAC,UAAU,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAvC,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;cACf,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;UACjD;UACA,IAAM,OAAO,GAAa,EAAE;EAC5B,QAAA,KAA0B,UAAgC,EAAhC,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAhC,cAAgC,EAAhC,EAAA,EAAgC,EAAE;EAAvD,YAAA,IAAM,WAAW,GAAA,EAAA,CAAA,EAAA,CAAA;cAClB,OAAO,CAAC,IAAI,CAAC,EAAA,CAAA,MAAA,CAAG,WAAW,CAAC,EAAE,EAAE,EAAA,aAAA,CAAa,CAAC;UAClD;EACA,QAAA,OAAO,UAAA,CAAA,MAAA,CACP,QAAQ,CAAC,EAAE,EAAA,2CAAA,CAAA,CAAA,MAAA,CACR,QAAQ,CAAC,EAAE,EAAA,gCAAA,CAAA,CAAA,MAAA,CAEZ,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAA,oEAAA,CAAA,CAAA,MAAA,CAEkB,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAA,0BAAA,CAAA,CAAA,MAAA,CAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAA,oDAAA,CAAA,CAAA,MAAA,CAErC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAA,yBAAA,CAAA,CAAA,MAAA,CAGlC,QAAQ,CAAC,EAAE,EAAA,sCAAA,CAAA,CAAA,MAAA,CACM,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAA,kCAAA,CAAA,CAAA,MAAA,CACxB,QAAQ,CAAC,aAAa,CAAC,mBAAmB,IAAI,EAAE,EAAA,wBAAA,CAAA,CAAA,MAAA,CAEhE,QAAQ,CAAC,EAAE,SACtB;MACG,CAAC;EAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAxB,YAAA;UACI,IAAI,MAAM,GAAa,EAAE;EACzB,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAyB,EAAzB,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAzB,EAAA,GAAA,EAAA,CAAA,MAAyB,EAAzB,EAAA,EAAyB,EAAE;EAA7C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;UAC1D;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAApB,YAAA;UACI,IAAM,KAAK,GAAa,EAAE;EAC1B,QAAA,IAAM,OAAO,GAAG,IAAI,OAAO,EAAE;EAC7B,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAyB,EAAzB,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAzB,EAAA,GAAA,EAAA,CAAA,MAAyB,EAAzB,EAAA,EAAyB,EAAE;EAA7C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;UACnD;UACA,OAAO;EACH,YAAA,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE;EAC9B,YAAA,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;WAChC;MACL,CAAC;EAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAArB,YAAA;UACI,IAAI,MAAM,GAAG,EAAE;EACf,QAAA,KAAuB,IAAA,EAAA,GAAA,CAAyB,EAAzB,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAzB,EAAA,GAAA,EAAA,CAAA,MAAyB,EAAzB,EAAA,EAAyB,EAAE;EAA7C,YAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;EACf,YAAA,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;UACzC;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,IAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE;UAEnC,OAAO,EAAA,CAAA,MAAA,CACb,OAAO,CAAC,aAAa,wLAOrB,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,0BAAA,CAAA,CAAA,MAAA,CAIlC,OAAO,CAAC,UAAU,EAAA,mDAAA,CAAA,CAAA,MAAA,CAIlB,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,qWAcZ,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAA,wDAAA,CAAA,CAAA,MAAA,CAKtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA,KAAA,CAC5C;MACG,CAAC;MACL,OAAA,iBAAC;EAAD,CAAC,EA3SD;;ECtDA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;EAC/B,EAAE,KAAK,GAAG,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE;EAChC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;;EAE7B,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,CAAC;;EAEzD,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EACtE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;EAC7C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU;;EAEzB,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;EAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;EACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;EAC/C,IAAI,CAAC,MAAM;EACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;EAC7B,IAAI;EACJ,EAAE,CAAC,MAAM;EACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;EAC3B,EAAE;;EAEF,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;EACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;EAClC,EAAE,CAAC,MAAM;EACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;EACnD,EAAE;EACF;;;;;ACMA,MAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;MAA+B,SAAA,CAAA,SAAA,EAAA,MAAA,CAAA;EA6K3B,IAAA,SAAA,SAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;EAzKf,QAAA,KAAA,CAAA,iBAAiB,GAAG,IAAIuW,mBAAY,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,gBAAgB;eAC5F,QAAQ,CAAC,IAAI;eACb,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAI,KAAI,CAAC,UAAU,YAAY,aAAa,EAAE;EAC1C,gBAAA,KAAI,CAAC;EACA,qBAAA,UAAU,CAAC,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;EAC5C,qBAAA,UAAU,EAAE;cAErB;EACJ,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,UAAU,GAAG,IAAIkC,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ;eAC/D,EAAE,CAAC,OAAO,EAAE,YAAA;cACT,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC;EACrC,YAAA,KAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;EACxB,YAAA,KAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,gBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACnB,oBAAA,KAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;EAC1B,gBAAA,CAAC,CAAC;EACN,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,aAAa,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW;eACtE,OAAO,CAAC,KAAK;eACb,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW;EAC7B,YAAA,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAA,CAAA,MAAA,CAAkB,IAAI,CAAC,EAAE,EAAE,EAAA,KAAA,CAAI,CAAC,EAAE;kBACzD,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACzB,gBAAA,KAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,oBAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC;EACjC,gBAAA,CAAC,CAAC;cACN;EACJ,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,aAAa,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,WAAW;eACxE,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAM,IAAI,GAAG,KAAI,CAAC,IAAI,EAAE;EACxB,YAAA,KAAI,CAAC,GAAG,CAAC,KAAK,EAAE;EAChB,YAAA,KAAI,CAAC,aAAa,CAAC,SAAS,CAAC;EAC7B,YAAA,KAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,gBAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC;EAClB,gBAAA,KAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,oBAAA,KAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACxB,oBAAA,CAAC,CAAC;EACN,gBAAA,CAAC,CAAC;EACN,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,WAAW,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa;eACzE,EAAE,CAAC,OAAO,EAAE,YAAA;cACT,OAAO,CAAC,GAAG,CAAC;kBACR,MAAM,CAAC,iGAAiG,CAAC;kBACzG,MAAM,CAAC,iGAAiG,CAAC;kBACzG,MAAM,CAAC,8FAA8F;EACxG,aAAA,CAAC,CAAC,IAAI,CAAC,UAAC,EAA2B,EAAA;EAA1B,gBAAA,IAAA,QAAQ,QAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA;EAC/B,gBAAA,IAAM,YAAY,GAAG,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE;EACvC,oBAAA,IAAI,EAAE,MAAM;EACZ,oBAAA,EAAE,EAAE,eAAe;EACnB,oBAAA,MAAM,EAAE,CAAC;EACL,4BAAA,IAAI,EAAE,QAAQ;EACd,4BAAA,EAAE,EAAE;2BACP,EAAE;EACC,4BAAA,IAAI,EAAE,QAAQ;EACd,4BAAA,EAAE,EAAE;2BACP;EACJ,iBAAA,CAAC;kBACF,YAAY,CAAC,aAAa;uBACrB,KAAK,CAAC,eAAe;uBACrB,UAAU,CAAC,QAAQ;uBACnB,SAAS,CAAC,WAAW,CAAC;kBAE3B,IAAM,eAAe,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAChE;sBACI,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;sBAC9C,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;sBAC9C,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ;mBACjD,EACD,IAAI,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;EAC/B,oBAAA,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;mBAC3I,CAAC,EACF,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E;kBACD,eAAe,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;kBAC9C,IAAM,cAAc,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAC/D;sBACI,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;sBAC9C,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;sBAC9C,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ;mBACjD,EACD,IAAI,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;EAC/B,oBAAA,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;mBAC3I,CAAC,EACF,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3E;kBACD,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;kBAC7C,IAAM,YAAY,GAAG,KAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EACvD,EAAE,EACF,IAAI,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC;EAC/B,oBAAA,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;EAC7H,oBAAA,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;EAC7I,iBAAA,CAAC,CAAC;kBACP,YAAY,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;kBACxC,OAAO,OAAO,CAAC,GAAG,CAAC;sBACf,YAAY,CAAC,OAAO,EAAE;sBACtB,eAAe,CAAC,OAAO,EAAE;sBACzB,cAAc,CAAC,OAAO,EAAE;sBACxB,YAAY,CAAC,OAAO;EACvB,iBAAA,CAAC;cACN,CAAC,CAAC,CAAC,IAAI,CAAC,YAAA;kBACJ,KAAI,CAAC,MAAM,EAAE;EACjB,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;UA4DF,KAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,GAAG,EAAA;EAC/B,YAAA,KAAI,CAAC,eAAe,CAAC,GAAG,CAAC;EAC7B,QAAA,CAAC,CAAC;EACF,QAAA,KAAI,CAAC,OAAO,CAAC,CAAC,KAAI,CAAC,iBAAiB,EAAE,IAAIjC,aAAM,EAAE,EAAE,KAAI,CAAC,UAAU,EAAE,KAAI,CAAC,aAAa,EAAE,IAAIA,aAAM,EAAE,EAAE,KAAI,CAAC,aAAa,EAAE,IAAIA,aAAM,EAAE,EAAE,KAAI,CAAC,WAAW,CAAC,CAAC;EAC3J,QAAA,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC;;MAChC;MA/DA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,KAAa,EAAE,OAAe,EAAE,MAAsC,EAAE,cAA2B,EAAA;EAAnE,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAsC,CAAA,CAAA;UAA+B,IAAA,UAAA,GAAA,EAAA;eAAA,IAAA,EAAA,GAAA,CAAyB,EAAzB,EAAA,GAAA,SAAA,CAAA,MAAyB,EAAzB,EAAA,EAAyB,EAAA;cAAzB,UAAA,CAAA,EAAA,GAAA,CAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA;;UAC7G,IAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;EACzE,QAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;EAC3B,YAAA,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC;UAC3C;EACA,QAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC;UACnC,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;UACrC,IAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;EAC/C,QAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;cACxB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;UAClC;UACA,KAAuB,IAAA,EAAA,GAAA,CAAU,EAAV,YAAA,GAAA,UAAU,EAAV,wBAAU,EAAV,EAAA,EAAU,EAAE;EAA9B,YAAA,IAAM,QAAQ,GAAA,YAAA,CAAA,EAAA,CAAA;EACf,YAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;kBAC7B,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;cAC7C;EAAO,iBAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;kBACpC,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;cAC7C;EAAO,iBAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;kBACpC,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;cAC7C;EAAO,iBAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;kBACjC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;cAC1C;EAAO,iBAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;kBAClC,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;cAC3C;UACJ;EACA,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;EACxB,QAAA,OAAO,OAAO;MAClB,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,KAAa,EAAE,GAAe,EAAA;EAClC,QAAA,IAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;EAClD,QAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC;UACnC,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;UACrC,IAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;EAC/C,QAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;cACxB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;UAClC;EACA,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;EACxB,QAAA,OAAO,OAAO;MAClB,CAAC;EAEM,IAAA,SAAA,CAAA,MAAM,GAAb,UAAc,MAAc,EAAE,GAAgB,EAAA;EAC1C,QAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,EAAA;EAC/B,YAAA,IAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE;EACjC,YAAA,IAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE;mBAC7B,MAAM,CAAC,MAAM;mBACb,cAAc,CAAC,IAAI;mBACnB,YAAY,CAAC,KAAK;mBAClB,OAAO,CAAC,GAAG;mBACX,MAAM,CAAC,UAAA,CAAC,EAAA;EACL,gBAAA,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;sBACd,OAAO,CAAC,SAAS,CAAC;EACtB,gBAAA,CAAC,CAAC;EACN,YAAA,CAAC,CAAC;EACV,QAAA,CAAC,CAAC;MACN,CAAC;MAWD,SAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAA8B,EAAA;UAA9C,IAAA,KAAA,GAAA,IAAA;EAAgB,QAAA,IAAA,IAAA,KAAA,MAAA,EAAA,EAAA,IAAA,GAAA,MAA8B,CAAA,CAAA;EAC1C,QAAA,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,YAAY,kBAAkB,CAAC,MAAM,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,YAAY,aAAa,CAAC,CAAC,EAAE;EAC3I,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;EAC9H,iBAAA,EAAE,CAAC,eAAe,EAAE,UAAC,IAAa,EAAA;EAC/B,gBAAA,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC;EAC5B,YAAA,CAAC,CAAC;EAEN,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAiB,CAAC;UACvC;MACJ,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;UACI,OAAO,IAAI,CAAC,GAAG;MACnB,CAAC;MAKD,SAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,CAAoB,EAAA;UAC3B,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,WAAW;EAC9C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;EACpB,QAAA,OAAO,IAAI;MACf,CAAC;MAID,SAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAe,EAAA;EACf,QAAA,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;UACvC,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,UAAU,CAAC,KAAK,EAAE;EAChD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE;EAChB,QAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;;MAGD,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,CAAgB,EAAA;EACtB,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;EAC5B,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;EACvC,QAAA,OAAO,UAAU,CAAC,KAAK,EAAE;MAC7B,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAc,EAAE,MAAuB,EAAA;UAA/C,IAAA,KAAA,GAAA,IAAA;EAAwB,QAAA,IAAA,MAAA,KAAA,MAAA,EAAA,EAAA,MAAA,GAAA,KAAuB,CAAA,CAAA;UAC3C,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,YAAY,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;EACjG,QAAA,IAAM,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;EACvC,QAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;UAClB,IAAI,MAAM,EAAE;EACR,YAAA,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,gBAAA,KAAI,CAAC,GAAG,CAAC,OAAO,EAAE;EACtB,YAAA,CAAC,CAAC;UACN;EACA,QAAA,OAAO,IAAI;MACf,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAiC,EAAE,OAAgB,EAAE,IAAa,EAAE,eAA4B,EAAA;EAA5B,QAAA,IAAA,eAAA,KAAA,MAAA,EAAA,EAAA,eAAA,GAAA,EAA4B,CAAA,CAAA;UACtG,IAAM,IAAI,GAAgB,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;UACtG,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;MACnC,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;EACI,QAAA,IAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC;EAC7C,QAAA,OAAO,SAAS,CAAC,gBAAgB,EAAE;MACvC,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;MACnC,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;MACpC,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,OAAgB,EAAA;EACrB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;MACrC,CAAC;MAID,SAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,CAAW,EAAA;UACtB,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;EAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;EACjC,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;EACI,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,YAAY,aAAa,CAAC,CAAC,MAAM,EAAE;EACjF,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,MAAM,EAAE;MACvE,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAoB,EAAE,OAAO,EAAA;EAChC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;EAC7B,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC9B,IAAI,CAAC,iBAAiB,EAAE;MAC5B,CAAC;MAGD,SAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAAY,EAAA;EACtB,QAAA,IAAI,CAAC,WAAW,GAAG,GAAG;EACtB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,MAAM,EAAE;MAC1D,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,GAAY,EAAA;MAC5B,CAAC;MAED,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,QAAS,EAAA;EACZ,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;EAC5B,QAAA,OAAO,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,UAAA,CAAC,EAAA;cACjB,IAAI,QAAQ,EAAE;kBACV,QAAQ,CAAC,CAAC,CAAC;cACf;EACJ,QAAA,CAAC,CAAC;MACN,CAAC;MACL,OAAA,SAAC;EAAD,CAzSA,CAA+BC,iBAAU,CAAA;EA0SzC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,sBAAsB;;;;;AClUpD,MAAA,SAAA,kBAAA,UAAA,MAAA,EAAA;MAA+B,SAAA,CAAA,SAAA,EAAA,MAAA,CAAA;EAA/B,IAAA,SAAA,SAAA,GAAA;;UACI,KAAA,CAAA,OAAO,GAAW,UAAU;UAC5B,KAAA,CAAA,UAAU,GAAG,IAAIiC,qBAAU,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,UAAC,OAAO,EAAA;cAChD,KAAI,CAAC,WAAW,EAAE;EACtB,QAAA,CAAC,CAAC;UACF,KAAA,CAAA,WAAW,GAAG,IAAIhC,WAAK;eAClB,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;;MA6C9D;MAxCI,SAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAU,EAAA;UACV,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;EACpD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;UACvB,IAAI,CAAC,WAAW,EAAE;EAClB,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;EACI,QAAA,IAAI;EACA,YAAA,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;EACvB,YAAA,IAAI;kBACM,IAAA,EAAA,GAAsB,SAAS,CAAC,IAAmB,CAAC,EAAlD,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAmC;kBAC1D,IAAI,OAAO,EAAE;EACT,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;kBAC7B;uBAAO;EACH,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAA5E,CAA4E,CAAC,CAAC;kBAC5H;cACJ;cAAE,OAAO,CAAC,EAAE;EACR,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;cAC9D;UACJ;UAAE,OAAO,CAAC,EAAE;EACR,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;UAC5D;EACA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;EACnB,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;UACjC;MACJ,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;EAClB,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC7B;EACK,aAAA,SAAS,CAAC,IAAI,CAAC,UAAU;EACzB,aAAA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;MAEpC,CAAC;EAED,IAAA,SAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,QAAQ,EAAA;EACpB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,QAAQ,CAAC;MACnC,CAAC;MAEL,OAAA,SAAC;EAAD,CAnDA,CAA+BiC,mBAAU,CAAA;EAoDzC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,uBAAuB;;ACrCrD,MAAA,YAAA,kBAAA,YAAA;EAQI,IAAA,SAAA,YAAA,CAAoB,GAAqB,EAAA;UAArB,IAAA,CAAA,GAAG,GAAH,GAAG;UAPf,IAAA,CAAA,WAAW,GAAgC,EAAE;UAC7C,IAAA,CAAA,SAAS,GAA8B,EAAE;UACzC,IAAA,CAAA,OAAO,GAA4B,EAAE;UACrC,IAAA,CAAA,SAAS,GAAc,EAAE;UACzB,IAAA,CAAA,QAAQ,GAAa,EAAE;UACvB,IAAA,CAAA,KAAK,GAAW,EAAE;MAG1B;EAEA,IAAA,YAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;EACI,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;EACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;EACnB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;EAEjB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;EACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;EAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;MACnB,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,EAAU,EAAE,KAAa,EAAE,IAAiB,EAAA;UACvD,IAAI,MAAM,GAAa,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;UAC3C,IAAI,CAAC,MAAM,EAAE;cACT,MAAM,GAAG,IAAIC,cAAQ;;;EAGhB,iBAAA,OAAO,CAAC,CAAC,IAAI,CAAC;EACd,iBAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EAEnB,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM;UACjC;EACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;EAC1B,QAAA,MAAM,CAAC,KAAK,CAAC,UAAG,KAAK,CAAE,CAAC;EACxB,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;EACpB,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,EAAU,EAAE,KAAa,EAAE,IAAiB,EAAE,OAAoB,EAAE,SAA6B,EAAA;EAAnD,QAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAA,GAAA,EAAoB,CAAA,CAAA;EAAE,QAAA,IAAA,SAAA,KAAA,MAAA,EAAA,EAAA,SAAA,GAAA,SAA6B,CAAA,CAAA;UAC1G,IAAI,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;UACvC,IAAI,CAAC,MAAM,EAAE;cACT,MAAM,GAAG,IAAIC,YAAM;EACd,iBAAA,OAAO,CAAC,CAAC,IAAI,CAAC;EACd,iBAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;mBACb,aAAa,CAAC,CAAC,CAAC;EAErB,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,MAAM;UAC/B;EACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;UAC1B;eACK,uBAAuB,CAAC,SAAS;EACjC,aAAA,IAAI,CAAC,OAAO,GAAG,UAAG,KAAK,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,OAAO,CAAE,GAAG,EAAA,CAAA,MAAA,CAAG,KAAK,CAAE;eAClD,OAAO,CAAC,OAAO,CAAC;EAErB,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;EACpB,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,QAAgB,EAAE,QAAgB,EAAA;EACzC,QAAA,IAAM,MAAM,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,IAAA,CAAA,CAAA,MAAA,CAAK,QAAQ,CAAE;UACzC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;UACjC,IAAI,CAAC,MAAM,EAAE;cACT,MAAM,GAAG,IAAIC,UAAI;EACZ,iBAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;mBACrC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;EAE3C,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM;UACjC;EACA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;EACvB,QAAA,OAAO,MAAM;MACjB,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,SAAmB,EAAA;EAChC,QAAA,IAAI,SAAS,YAAY,QAAQ,EAAE;cAC/B,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE;UAClD;EACA,QAAA,IAAI,SAAS,YAAY,QAAQ,EAAE;cAC/B,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,GAAG,EAAE,CAAE;EACrC,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;EACrE,YAAA,IAAM,IAAI,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,GAAG,EAAE,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,IAAI,EAAE,CAAE;EACrD,YAAA,IAAM,EAAE,GAAa,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,IAAI,EAAE,CAAE,CAAC;EACrE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;cAClD,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,UAAU,EAAE,CAAE;EACpD,YAAA,IAAM,MAAM,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;EACnG,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;EAClD,YAAA,OAAO,QAAQ;UACnB;EAAO,aAAA,IAAI,SAAS,YAAY,WAAW,EAAE;cACzC,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,GAAG,EAAE,CAAE;EACrC,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;cACrE,IAAM,IAAI,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,WAAW,EAAE,CAAE;EACrD,YAAA,IAAM,EAAE,GAAW,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;EAC5F,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;EAClD,YAAA,OAAO,IAAI;UACf;EAAO,aAAA,IAAI,SAAS,YAAY,cAAc,EAAE;cAC5C,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,GAAG,EAAE,CAAE;EACrC,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;cACrE,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;EACxC,YAAA,IAAM,OAAO,GAAa,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC;EAC9E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;cACvD,IAAM,OAAO,GAAG,SAAS;EACzB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;kBACf,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;EACxD,aAAA,CAAC;cACF,IAAM,aAAa,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,UAAU,EAAE,CAAE;EAC9D,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;EACf,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;EAC1F,aAAA,CAAC;EACF,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;EACvC,YAAA,OAAO,aAAa;UACxB;EAAO,aAAA,IAAI,SAAS,YAAY,WAAW,EAAE;cACzC,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAE;EAC/C,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;EACrE,YAAA,IAAM,UAAU,GAAG,SAAS,CAAC,SAAS,EAAE;EACxC,YAAA,IAAM,QAAQ,GAAa,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;EAC1F,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;EACxD,YAAA,IAAM,OAAO,GAAG,EAAA,CAAA,MAAA,CAAG,UAAU,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAE;EAChE,YAAA,IAAM,KAAK,GAAa,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;EACnF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;cACvD,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,OAAO,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,UAAU,EAAE,CAAE;EACvD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,KAAK;EACb,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;EACrF,aAAA,CAAC;EACF,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC;EAClC,YAAA,OAAO,QAAQ;UACnB;EAAO,aAAA,IAAI,SAAS,YAAY,aAAa,EAAE;cAC3C,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,GAAG,EAAE,CAAE;EACrC,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;EACrE,YAAA,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE;EACvC,YAAA,IAAM,OAAO,GAAa,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;EAC5E,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;cACvD,IAAM,OAAO,GAAG,SAAS;EACzB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;kBACf,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE;EACvD,aAAA,CAAC;cACF,IAAM,aAAa,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,UAAU,EAAE,CAAE;EAC9D,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;EACf,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;EAC1F,aAAA,CAAC;EACF,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;EACvC,YAAA,OAAO,aAAa;UACxB;EAAO,aAAA,IAAI,SAAS,YAAY,UAAU,EAAE;cACxC,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAE;EAC/C,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,CAAE,CAAC;EACrE,YAAA,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE;EACvC,YAAA,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAE;EAC9D,YAAA,IAAM,MAAM,GAAa,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;EACrF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;cACtD,IAAM,QAAQ,GAAG,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,SAAS,CAAC,UAAU,EAAE,CAAE;EACxD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,MAAM;EACd,gBAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE;EACrF,aAAA,CAAC;EACF,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC;EACnC,YAAA,OAAO,QAAQ;UACnB;EAAO,aAAA,IAAI,SAAS,YAAY,IAAI,EAAE;EAClC,YAAA,IAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;EAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;EACjE,YAAA,OAAO,EAAE;UACb;EAAO,aAAA,IAAI,SAAS,YAAY,QAAQ,EAAE;EACtC,YAAA,IAAM,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE;EACzB,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;EACjE,YAAA,OAAO,EAAE;UACb;eAAO;EACH,YAAA,IAAM,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE;EAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;EACjE,YAAA,OAAO,EAAE;UACb;MACJ,CAAC;MAED,YAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,QAAgB,EAAE,IAAa,EAAE,QAAkB,EAAE,KAAc,EAAA;UAC9E,IAAM,OAAO,GAAa,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAG,IAAI,CAAC,EAAE,EAAE,CAAE,EAAE,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC;UAClF,IAAI,SAAS,GAAG,IAAI;UACpB,IAAI,OAAO,GAAG,EAAE;EAChB,QAAA,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE;EACnB,YAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE;EAClC,YAAA,IAAI,MAAM,CAAC,MAAM,EAAE;kBACf,SAAS,GAAG,MAAM;kBAClB,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,MAAM,gBAAM,KAAK,CAAC,GAAG,CAAE,CAAA,CAAhC,CAAgC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;cAC9E;UACJ;eAAO;cACH,SAAS,GAAG,WAAW;UAC3B;EACA,QAAA,IAAM,MAAM,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,UAAG,QAAQ,CAAC,OAAO,EAAE,CAAE,EAAE,EAAE,IAAI,MAAA,EAAE,QAAQ,EAAA,QAAA,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC;UACjI,IAAI,QAAQ,EAAE;cACV,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;UAC5C;EACA,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;EACvD,QAAA,OAAO,QAAQ,CAAC,EAAE,EAAE;MACxB,CAAC;EAED,IAAA,YAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;EACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;EAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;UAEf,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;cACzB,KAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,CAAC;EACzD,QAAA,CAAC,CAAC;UAEF,IAAM,MAAM,GAA8B,EAAE;EAC5C,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAnC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;cACrC,IAAI,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;EACzD,YAAA,KAAuB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,QAAQ,CAAC,UAAU,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAAzC,gBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,EAAA,CAAA;kBACf,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;cACxD;EACA,YAAA,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;EAC1C,YAAA,IAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE;EACzC,YAAA,IAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;cAC/E,IAAM,aAAa,GAAG,EAAA,CAAA,MAAA,CAAG,aAAa,CAAC,EAAE,EAAE,QAAK;EAChD,YAAA,IAAM,OAAO,GAAa,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,eAAe,EAAE,EAAE,aAAa,EAAA,aAAA,EAAE,CAAC;EAChG,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;kBAChB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACnC,gBAAA,KAAK,EAAE;EACV,aAAA,CAAC;EACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;kBACf,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE;EACtC,aAAA,CAAC;cACF,IAAM,WAAW,GAAG,EAAA,CAAA,MAAA,CAAG,aAAa,CAAC,EAAE,EAAE,SAAM;EAC/C,YAAA,IAAM,YAAY,GAAW,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,MAAA,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC;EAC5J,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC;EAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EAChB,gBAAA,MAAM,EAAE,OAAO;EACf,gBAAA,KAAK,EAAE;EACV,aAAA,CAAC;cACF,IAAM,aAAa,GAAG,EAAA,CAAA,MAAA,CAAG,aAAa,CAAC,EAAE,EAAE,WAAQ;cACnD,IAAM,WAAW,GAAW,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,EAAE,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;EACxG,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,aAAa;mBACrC,MAAM,CAAC,EAAE;mBACT,eAAe,CAAC,KAAK;mBACrB,IAAI,CAAC,SAAS,CAAC;EAEpB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC;EACtC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;kBAChB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EACnC,gBAAA,KAAK,EAAE;EACV,aAAA,CAAC;cACF,MAAM,GAAG,aAAa;cACtB,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM;UAClC;;EAGA,QAAA,KAAmB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAnC,YAAA,IAAM,IAAI,GAAA,EAAA,CAAA,EAAA,CAAA;EACX,YAAA,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;EAC1C,YAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;cAC9E,IAAI,gBAAgB,EAAE;kBAClB,IAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;EAC5D,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAA,CAAA,MAAA,CAAG,aAAa,CAAC,EAAE,EAAE,EAAA,MAAA,CAAM,CAAC;cAC/D;UACJ;EAEA,QAAA,KAAkB,IAAA,EAAA,GAAA,CAAmB,EAAnB,EAAA,GAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAnB,EAAA,GAAA,EAAA,CAAA,MAAmB,EAAnB,EAAA,EAAmB,EAAE;EAAlC,YAAA,IAAM,GAAG,GAAA,EAAA,CAAA,EAAA,CAAA;EACV,YAAA,IAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE;EAChC,YAAA,KAAyB,IAAA,EAAA,GAAA,CAAqB,EAArB,EAAA,GAAA,IAAI,CAAC,cAAc,EAAE,EAArB,EAAA,GAAA,EAAA,CAAA,MAAqB,EAArB,EAAA,EAAqB,EAAE;EAA3C,gBAAA,IAAM,UAAU,GAAA,EAAA,CAAA,EAAA,CAAA;EACjB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE;uBAC7F,MAAM,CAAC,EAAE;uBACT,eAAe,CAAC,KAAK;uBACrB,IAAI,CAAC,SAAS,CAAC;cAExB;UACJ;UAEA,OAAO;cACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;cACvB,KAAK,EAAE,IAAI,CAAC,KAAK;cACjB,SAAS,EAAE,IAAI,CAAC;WACnB;MACL,CAAC;MACL,OAAA,YAAC;EAAD,CAAC,EAlRD;;ECPA,IAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EA4GzB,IAAA,SAAA,OAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;EA1Gf,QAAA,KAAA,CAAA,UAAU,GAAG,IAAIL,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ;eAC/D,EAAE,CAAC,OAAO,EAAE,YAAA;cACT,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;EAC7C,YAAA,IAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;EACzC,YAAA,IAAI,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC;EACvB,gBAAA,MAAM,EAAE,IAAI;EACZ,gBAAA,aAAa,EAAE,IAAI;kBACnB,OAAO,EAAE,IAAI,CAAC,IAAI;kBAClB,OAAO,EAAE,IAAI,CAAC;EACjB,aAAA,CAAC,EAAE;EAER,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,aAAa,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,WAAW;eACtE,OAAO,CAAC,KAAK;eACb,EAAE,CAAC,OAAO,EAAE,YAAA;cACT,KAAI,CAAC,MAAM,EAAE;EACjB,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,YAAY,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU;eACpE,OAAO,CAAC,KAAK;eACb,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAI,KAAI,CAAC,YAAY,EAAE;EACnB,gBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,QAAQ,EAAE;EACvC,oBAAA,KAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;kBAC/D;EAAO,qBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,IAAI,EAAE;EAC1C,oBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;kBAC3D;EAAO,qBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,WAAW,EAAE;sBACjD,KAAI,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;kBAC5E;EAAO,qBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,UAAU,EAAE;sBAChD,KAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAI,CAAC,GAAG;2BAC3B,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;2BAChF,UAAU,CAAC,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAC9C;kBACL;EAAO,qBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,QAAQ,EAAE;sBAC9C,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAI,CAAC,GAAG;2BACzB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;2BAC7D,UAAU,CAAC,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAC9C;kBACL;EAAO,qBAAA,IAAI,KAAI,CAAC,YAAY,YAAY,WAAW,EAAE;sBACjD,KAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG;2BAC5B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAI,CAAC,GAAG,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;2BACjF,UAAU,CAAC,KAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAC9C;kBACL;uBAAO;EACH,oBAAA,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC;kBAC1C;cACJ;EACJ,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,WAAW,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,aAAa;eACzE,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,MAAM,CAAC,iGAAiG,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,EAAA;EAC9G,gBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACvD,YAAA,CAAC,CAAC;EACF,YAAA,MAAM,CAAC,iGAAiG,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,EAAA;EAC9G,gBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACvD,YAAA,CAAC,CAAC;EACF,YAAA,MAAM,CAAC,8FAA8F,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,EAAA;EAC3G,gBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACvD,YAAA,CAAC,CAAC;cACF,KAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAI,CAAC,GAAG;EAC3B,iBAAA,OAAO,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG;mBAC5B,GAAG,CAAC,+BAA+B;mBACnC,MAAM,CAAC,oBAAoB;EAC3B,iBAAA,aAAa,CAAC;EACX,gBAAA,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;EAC9B,gBAAA,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM;EACjC,aAAA,CAAC;EACL,iBAAA,UAAU,CAAC,SAAS,CAAC,CACzB;cACD,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAI,CAAC,GAAG;EACzB,iBAAA,EAAE,CAAC,IAAI,EAAE,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;EACtF,iBAAA,UAAU,CAAC,UAAU,CAAC,CAC1B;cACD,KAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG;mBAC5B,GAAG,CAAC,oCAAoC;EACxC,iBAAA,WAAW,CAAC,yBAAyB,CAAC,CAC1C;cACD,IAAM,OAAO,GAAG,IAAI,YAAY,CAAC,KAAI,CAAC,GAAG;mBACpC,GAAG,CAAC,oCAAoC;mBACxC,QAAQ,CAAC,OAAO;mBAChB,OAAO,CAAC,cAAc,CAAC;cAE5B,KAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG;mBAC5B,OAAO,CAAC,OAAO;EACf,iBAAA,UAAU,CAAC,QAAQ,CAAC,CACxB;EACD,YAAA,KAAI,CAAC,GAAG,CAAC,IAAI,IAAI;EACZ,iBAAA,UAAU,CAAC;EACR,gBAAA,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;kBACrD,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;kBACnD,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;kBACjD,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;kBAC9C,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK;EAC/C,aAAA,CAAC,CACL;cACD,KAAI,CAAC,MAAM,EAAE;EACjB,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,QAAQ,GAAG,IAAI/B,WAAK,EAAE;UAQ1B;eACK,OAAO,CAAC,CAAC,KAAI,CAAC,UAAU,EAAE,KAAI,CAAC,aAAa,EAAE,IAAIF,aAAM,EAAE,EAAE,KAAI,CAAC,YAAY,EAAE,IAAIA,aAAM,EAAE,EAAE,KAAI,CAAC,WAAW,CAAC;EAC9G,aAAA,MAAM,CAAC,KAAI,CAAC,QAAQ;eACpB,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;eACpC,EAAE,CAAC,OAAO,EAAE,UAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAA;EACvB,YAAA,KAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ;EAChC,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,EAAE;EACnD,gBAAA,KAAI,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ;cACnC;mBAAO;kBACH,OAAO,KAAI,CAAC,WAAW;cAC3B;EACA,YAAA,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,MAAM,EAAE;EACnE,YAAA,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,MAAM,EAAE;EACvE,QAAA,CAAC,CAAC;UAGN,KAAI,CAAC,QAAQ,EAAE;;MACnB;EAEA,IAAA,OAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAIuC,wBAAe,EAAE;;EAGtC,QAAA,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE;EACjC,YAAA,KAAK,EAAE,iBAAiB;EACxB,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;cACpC;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,iBAAiB,EAAE;EACnC,YAAA,KAAK,EAAE,cAAc;EACrB,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;cACvC;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;EAC7B,YAAA,KAAK,EAAE,eAAe;EACtB,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;cACvC;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;EAC5B,YAAA,KAAK,EAAE,MAAM;EACb,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC;cACtC;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE;EAChC,YAAA,KAAK,EAAE,UAAU;EACjB,YAAA,OAAO,EAAE,YAAA;EACL,gBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;cAC5B;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;EAC5B,YAAA,KAAK,EAAE,MAAM;EACb,YAAA,OAAO,EAAE,YAAA;EACL,gBAAA,KAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;cACxB;EACH,SAAA,CAAC;UAEF,IAAI,CAAC,YAAY,GAAG,IAAIC,oBAAW,CAAC,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC;EACjD,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;EACnF,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;EACrF,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;EAC/E,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;EAC9E,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;EAClF,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;MAClF,CAAC;MAED,OAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,EAAqB,EAAA;EACrB,QAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;UAC7B,IAAI,CAAC,MAAM,EAAE;MACjB,CAAC;EAED,IAAA,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;cAClB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;cAC3C,IAAI,CAAC,MAAM,EAAE;UACjB;MACJ,CAAC;MAGD,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,QAAS,EAAA;UACZ,IAAM,IAAI,GAAG,EAAE;UACf,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAA,CAAC,EAAA;cACzB,IAAI,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;EACvC,YAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;EACxB,gBAAA,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;cACxB;cACA,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE;kBAC7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;cACrB;EACA,YAAA,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;EACnB,QAAA,CAAC,CAAC;EACF,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAA,EAAE,EAAA,EAAI,OAAA,EAAE,CAAC,EAAE,EAAE,KAAK,OAAO,CAAA,CAAnB,CAAmB,CAAC,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;cACxE,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE;kBAC7B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;cACrB;cACA,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EAC1D,QAAA,CAAC,CAAC;UACF,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;EACnC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;EAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;EACzB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UACnB;EACA,QAAA,OAAO,gBAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,QAAQ,CAAC;MACjC,CAAC;MACL,OAAA,OAAC;EAAD,CA9NA,CAA6BvC,iBAAU,CAAA,CAAA;;ECVvC,IAAA,OAAA,kBAAA,UAAA,MAAA,EAAA;MAA6B,SAAA,CAAA,OAAA,EAAA,MAAA,CAAA;EAIzB,IAAA,SAAA,OAAA,CAAoB,GAAqB,EAAA;UACrC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,GAAG,GAAH,GAAG;EAFf,QAAA,KAAA,CAAA,QAAQ,GAAG,IAAIC,WAAK,EAAE;UAI1B;eACK,YAAY,CAAC,KAAK;EAClB,aAAA,MAAM,CAAC,KAAI,CAAC,QAAQ;EACpB,aAAA,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;MAEjC;MAGA,OAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,QAAS,EAAA;EACZ,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA;EACrC,YAAA,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC;EAC1D,QAAA,CAAC,CAAC;UACF,IAAM,MAAM,GAAG9W,cAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,EAAN,CAAM,CAAC,CAAC;EAC/C,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;EAC7B,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;EACzB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UACnB;EACA,QAAA,OAAO,gBAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,QAAQ,CAAC;MACjC,CAAC;MACL,OAAA,OAAC;EAAD,CAzBA,CAA6B6W,iBAAU,CAAA,CAAA;;;;;ECevC,IAAA,uBAAA,kBAAA,UAAA,MAAA,EAAA;MAAsC,SAAA,CAAA,uBAAA,EAAA,MAAA,CAAA;EAAtC,IAAA,SAAA,uBAAA,GAAA;;UAYI,KAAA,CAAA,cAAc,GAAoB,EAAE;;MAoBxC;MA3BI,uBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,CAAU,EAAA;UACZ,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,MAAM;EACzC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;EACf,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;EACf,QAAA,OAAO,IAAI;MACf,CAAC;MAKD,uBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,CAAmB,EAAA;UACtB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,cAAc;EACjD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;UACvB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;;EAEnC,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;cACV,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,EAAA;kBAClB,IAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;EAC5C,gBAAA,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;EAC3B,gBAAA,OAAO,EAAA,CAAA,MAAA,CAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA,KAAA,CAAA,CAAA,MAAA,CAAM,GAAG,CAAC,GAAG,CAAE;EACrD,YAAA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;UAClB;eAAO;EACH,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;UAC7B;UACA,IAAI,CAAC,MAAM,EAAE;EACb,QAAA,OAAO,IAAI;MACf,CAAC;MACL,OAAA,uBAAC;EAAD,CAhCA,CAAsCwC,sBAAe,CAAA,CAAA;EAkCrD,IAAA,aAAA,kBAAA,UAAA,MAAA,EAAA;MAA4B,SAAA,CAAA,aAAA,EAAA,MAAA,CAAA;EA+CxB,IAAA,SAAA,aAAA,CAAY,KAAyB,EAAA;UACjC,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EA7CX,QAAA,KAAA,CAAA,UAAU,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;EACnG,QAAA,KAAA,CAAA,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;EAC1E,QAAA,KAAA,CAAA,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;EAC5E,QAAA,KAAA,CAAA,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;EACnF,QAAA,KAAA,CAAA,IAAI,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;EAC9E,QAAA,KAAA,CAAA,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;EACzE,QAAA,KAAA,CAAA,QAAQ,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;EAC9E,QAAA,KAAA,CAAA,UAAU,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;EACzF,QAAA,KAAA,CAAA,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;EAChF,QAAA,KAAA,CAAA,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;EACrE,QAAA,KAAA,CAAA,GAAG,GAAG,IAAI,uBAAuB,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;UAElE,KAAA,CAAA,WAAW,GAAmB,IAAIC,oBAAc;eAC3C,WAAW,CAAC,KAAK;eACjB,aAAa,CAAC,KAAK;eACnB,UAAU,CAAC,KAAK,CAAC;EAGd,QAAA,KAAA,CAAA,QAAQ,GAAG;EACf,YAAA,KAAI,CAAC,UAAU;EACf,YAAA,KAAI,CAAC,MAAM;EACX,YAAA,KAAI,CAAC,OAAO;EACZ,YAAA,KAAI,CAAC,OAAO;EACZ,YAAA,KAAI,CAAC,IAAI;EACT,YAAA,KAAI,CAAC,KAAK;EACV,YAAA,IAAI1C,aAAM,EAAE;EACZ,YAAA,KAAI,CAAC,QAAQ;EACb,YAAA,KAAI,CAAC,UAAU;EACf,YAAA,IAAIA,aAAM,EAAE;EACZ,YAAA,KAAI,CAAC,KAAK;EACV,YAAA,KAAI,CAAC,KAAK;EACV,YAAA,IAAIA,aAAM,EAAE;EACZ,YAAA,KAAI,CAAC;WACR;EACD,QAAA,KAAA,CAAA,eAAe,GAA4B,KAAI,CAAC,UAAU;UAClD,KAAA,CAAA,kBAAkB,GAAG,IAAI2C,mBAAY;eACxC,OAAO,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,UAAA,EAAE,EAAA;EACrC,YAAA,KAAI,CAAC,eAAe,GAAG,EAAE;cACzB,KAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;EACnC,QAAA,CAAC,CAAC;EAOF,QAAA,KAAI,CAAC,MAAM,GAAG,KAAK;UACnB,KAAI,CAAC,OAAO,CAAC,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;UACvC,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;EACnC,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,KAAA,EAAC,KAAI,CAAC,WAAW,CAAC;EAC9B,QAAA,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,EAAU,EAAE,QAAa,EAAE,QAAa,EAAE,MAAmB,EAAA;EACnF,YAAA,IAAI,MAAM,KAAK,KAAI,CAAC,WAAW,EAAE;kBAC7B,KAAI,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;kBAChD,KAAI,CAAC,WAAW,EAAE;cACtB;EACJ,QAAA,CAAC,CAAC;;MACN;EAEA,IAAA,aAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,YAAY,uBAAuB,CAAA,CAApC,CAAoC,CAA8B;MAC3H,CAAC;MAKD,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,CAAe,EAAA;UACnB,IAAI,CAAC,SAAS,CAAC,MAAM;cAAE,OAAO,IAAI,CAAC,QAAQ;EAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC;EACjB,QAAA,OAAO,IAAI;MACf,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,UAAU,EAAE;cACrC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,QAAQ,EAAE;cAC1C,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYC,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;UACrD;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAlB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,OAAO,EAAE;cAClC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;UAClD;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAnB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,OAAO,EAAE;cAClC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;UAClD;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAnB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,OAAO,EAAE;cAClC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;UAClD;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAhB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,IAAI,EAAE;cAC/B,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE;UAC/C;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,SAAS,GAAjB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,KAAK,EAAE;cAChC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE;UAChD;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,YAAY,GAApB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,QAAQ,EAAE;cACnC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;cAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE;UACnD;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,aAAa,EAAE;EAC/C,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;UACnC;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY3C,iBAAU,EAAE;cACrC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,aAAa,EAAE;cAC/C,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAY2C,OAAY,EAAE;EAC9C,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;UACxC;MACJ,CAAC;EAEO,IAAA,aAAA,CAAA,SAAA,CAAA,SAAS,GAAjB,YAAA;EACI,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,KAAK,EAAE;cAChC,OAAO,IAAI,CAAC,QAAQ;UACxB;EAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,YAAYA,OAAY,EAAE;EAC9C,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;UAChC;MACJ,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE;cACxD,OAAO,IAAI,CAAC,eAAe;UAC/B;EACA,QAAA,KAAiB,IAAA,EAAA,GAAA,CAAuB,EAAvB,EAAA,GAAA,IAAI,CAAC,gBAAgB,EAAE,EAAvB,EAAA,GAAA,EAAA,CAAA,MAAuB,EAAvB,EAAA,EAAuB,EAAE;EAArC,YAAA,IAAM,EAAE,GAAA,EAAA,CAAA,EAAA,CAAA;EACT,YAAA,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;EACd,gBAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;EACjB,gBAAA,OAAO,EAAE;cACb;UACJ;EACA,QAAA,OAAO,SAAS;MACpB,CAAC;EAID,IAAA,aAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;EACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC9B,IAAI,CAAC,WAAW,EAAE;EAClB,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE;EAC7C,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,KAAK,cAAc,EAAE;EACpF,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;EACjC,YAAA,IAAI,CAAC,mBAAmB,GAAG,cAAc;EACzC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,cAAc,EAAE;kBACjC,QAAQ,cAAc;sBAClB,KAAK,IAAI,CAAC,UAAU;0BAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;0BAC9C;sBACJ,KAAK,IAAI,CAAC,MAAM;0BACZ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;0BAC1C;sBACJ,KAAK,IAAI,CAAC,OAAO;0BACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;0BAC3C;sBACJ,KAAK,IAAI,CAAC,OAAO;0BACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;0BAC3C;sBACJ,KAAK,IAAI,CAAC,IAAI;0BACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;0BACxC;sBACJ,KAAK,IAAI,CAAC,KAAK;0BACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;0BACzC;sBACJ,KAAK,IAAI,CAAC,QAAQ;0BACd,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;0BAC5C;sBACJ,KAAK,IAAI,CAAC,UAAU;0BAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;0BAC9C;sBACJ,KAAK,IAAI,CAAC,KAAK;0BACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;0BACzC;sBACJ,KAAK,IAAI,CAAC,GAAG;0BACT,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;0BACtC;;cAEZ;mBAAO;EACH,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;cACtC;EACA,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;UACtD;MACJ,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,EAAE,EAAE,EAAE,EAAA;EACpB,QAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;EAChB,QAAA,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;MAC1C,CAAC;EAED,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,UAAA,EAAE,EAAA;EAC9B,YAAA,IAAI,EAAE,YAAY,uBAAuB,EAAE;EACvC,gBAAA,IAAI,KAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;EACnD,oBAAA,KAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;sBACrC;kBACJ;cACJ;cAEA,QAAQ,EAAE;kBACN,KAAK,KAAI,CAAC,UAAU;sBAChB,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC;sBACjD;kBACJ,KAAK,KAAI,CAAC,MAAM;sBACZ,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;sBAC7C;kBACJ,KAAK,KAAI,CAAC,OAAO;sBACb,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;sBAC9C;kBACJ,KAAK,KAAI,CAAC,OAAO;sBACb,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;sBAC9C;kBACJ,KAAK,KAAI,CAAC,IAAI;sBACV,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;sBAC3C;kBACJ,KAAK,KAAI,CAAC,KAAK;sBACX,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC;sBAC5C;kBACJ,KAAK,KAAI,CAAC,QAAQ;sBACd,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;sBAC/C;kBACJ,KAAK,KAAI,CAAC,UAAU;EAChB,oBAAA,IAAM,EAAE,GAAG,KAAI,CAAC,cAAc,EAAE;EAChC,oBAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;sBAChB;kBACJ,KAAK,KAAI,CAAC,KAAK;EACX,oBAAA,IAAM,EAAE,GAAG,KAAI,CAAC,SAAS,EAAE;EAC3B,oBAAA,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;sBAChB;kBACJ,KAAK,KAAI,CAAC,KAAK;EACX,oBAAA,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;sBACjB;kBACJ,KAAK,KAAI,CAAC,GAAG;sBACT,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC;sBAC3B;;EAER,YAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE;EACf,gBAAA,KAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;cAC9C;EACJ,QAAA,CAAC,CAAC;MACN,CAAC;;MAGD,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,EAAU,EAAE,QAAa,EAAE,QAAa,EAAE,MAAmB,EAAA;MACzE,CAAC;EApOD,IAAA,UAAA,CAAA;EADC,QAAArZ,cAAO,CAAC,EAAE,EAAE,OAAO,EAAE,yBAAyB,CAAC;;EACL,KAAA,EAAA,aAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,CAAA;MAqO/C,OAAA,aAAC;GAAA,CAlR2B0W,iBAAU,CAAA,CAAA;EAmRtC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,2BAA2B;EAE7D,IAAA4C,YAAA,kBAAA,UAAA,MAAA,EAAA;MAAyB,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAyBrB,IAAA,SAAA,UAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EAxBH,QAAA,KAAA,CAAA,KAAK,GAAG,IAAIZ,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM;eACxD,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAM,QAAQ,GAAG,KAAI,CAAC,QAAQ,EAAE;EAChC,YAAA,IAAI,QAAQ,IAAK,QAAgB,CAAC,OAAO,EAAE;kBACtC,QAAgB,CAAC,OAAO,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;cACtD;cACA,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,MAAM,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO;eAC1D,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,KAAI,CAAC;EACA,iBAAA,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE;EACpB,iBAAA,UAAU,EAAE;cAEjB,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;UAEE,KAAA,CAAA,WAAW,GAAG,IAAIC,qBAAU;EAC/B,aAAA,EAAE,CAAC,SAAS,EAAE,UAAC,OAAiB,EAAA;cAC7B,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;EAIF,QAAA,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,MAAM,CAAC,CAAC;EACjD,QAAA,KAAI,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC;;MACjC;MAKA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,CAAe,EAAA;UACpB,IAAI,CAAC,KAAK,MAAM;cAAE,OAAO,IAAI,CAAC,SAAS;EACvC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;EACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC;cAClB,OAAO,IAAI,CAAC,SAAS;UACzB;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;UAChC,OAAO,QAAQ,IAAK,QAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAE,QAAgB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE;MAC7G,CAAC;EAGD,IAAA,UAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;EACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;EAC9B,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;UAC5B,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;UAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;EAC5F,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;EACrB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;UAC/B;UACA,IAAI,CAAC,aAAa,EAAE;MACxB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAS;EACvC,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;UAC5B,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;EAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,UAAU,EAAE;EACpF,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,UAAU,EAAE;MACzD,CAAC;MACL,OAAA,UAAC;EAAD,CAnEA,CAAyBjC,iBAAU,CAAA,CAAA;EAqEnC,IAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;MAAwC,SAAA,CAAA,kBAAA,EAAA,MAAA,CAAA;EAWpC,IAAA,SAAA,kBAAA,GAAA;UACI,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;EAXH,QAAA,KAAA,CAAA,cAAc,GAAG,IAAI,aAAa,CAAC,KAAI,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,UAAC,EAAU,EAAE,QAAa,EAAE,QAAa,EAAE,MAAmB,EAAA;cAC7H,KAAI,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;EACpD,QAAA,CAAC,CAAC;EACM,QAAA,KAAA,CAAA,aAAa,GAAG,IAAI6C,iBAAQ,EAAE;EAC9B,QAAA,KAAA,CAAA,cAAc,GAAG,IAAID,YAAU,EAAE;UACjC,KAAA,CAAA,eAAe,GAAG,IAAIE,qBAAe,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;EAO5D,QAAA,KAAI,CAAC;EACA,aAAA,SAAS,CAAC,KAAI,CAAC,eAAe,EAAE,MAAM;EACtC,aAAA,SAAS,CAAC,KAAI,CAAC,cAAc,EAAE,KAAK,CAAC;UAE1C;EACK,aAAA,SAAS,CAAC,KAAI,CAAC,cAAc;EAC7B,aAAA,SAAS,CAAC,KAAI,CAAC,aAAa,CAAC;;MAEtC;MAEA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,EAAe,EAAA;EACzB,QAAA,IAAI,CAAC;eACA,OAAO,CAAC,EAAE;EACV,aAAA,MAAM,EAAE;MAEjB,CAAC;MAED,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,QAAiC,EAAA;EACzC,QAAA,QAAQ,GAAG,QAAQ,YAAY,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ;EAC7E,QAAA,IAAI,CAAC;EACA,aAAA,UAAU,CAAC,IAAI,eAAe,CAAC,QAAQ,YAAY,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;EACnF,aAAA,UAAU,EAAE;EAEjB,QAAA,IAAI,CAAC;EACA,aAAA,QAAQ,CAAC,QAAQ,CAAC;EAClB,aAAA,UAAU,EAAE;MAErB,CAAC;EAED,IAAA,kBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAqB;UAC/D,IAAI,EAAE,EAAE;EACJ,YAAA,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAA;EACX,gBAAA,KAAI,CAAC;EACA,qBAAA,UAAU;EACV,qBAAA,UAAU,EAAE;EAEjB,gBAAA,KAAI,CAAC;EACA,qBAAA,UAAU,EAAE;EAErB,YAAA,CAAC,CAAC;UACN;eAAO;EACH,YAAA,IAAI,CAAC;EACA,iBAAA,UAAU,EAAE;UAErB;MACJ,CAAC;;MAGD,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,EAAU,EAAE,QAAa,EAAE,QAAa,EAAE,MAAmB,EAAA;MACzE,CAAC;EAtDD,IAAA,UAAA,CAAA;UADCvB,mBAAY,CAAC,gBAAgB,CAAC;;EACY,KAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,CAAA;MAuD/C,OAAA,kBAAC;GAAA,CAhEuCW,mBAAU,CAAA,CAAA;;;;;EC7XlD,IAAM,MAAM,GAAGJ,mBAAY,CAAC,kBAAkB,CAAC;EAM/C,IAAA,UAAA,kBAAA,UAAA,MAAA,EAAA;MAAyB,SAAA,CAAA,UAAA,EAAA,MAAA,CAAA;EAuBrB,IAAA,SAAA,UAAA,CAAoB,MAAa,EAAA;UAC7B,IAAA,KAAA,GAAA,MAAK,WAAE,IAAA,IAAA;UADS,KAAA,CAAA,MAAM,GAAN,MAAM;EArBlB,QAAA,KAAA,CAAA,KAAK,GAAG,IAAIE,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM;eACxD,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;EAC/C,YAAA,KAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;cAC1B,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,MAAM,GAAG,IAAIA,aAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO;eAC1D,EAAE,CAAC,OAAO,EAAE,YAAA;EACT,YAAA,KAAI,CAAC;EACA,iBAAA,IAAI,CAAC,KAAI,CAAC,IAAI;EACd,iBAAA,UAAU,EAAE;cAEjB,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;UAEE,KAAA,CAAA,WAAW,GAAG,IAAIC,qBAAU;EAC/B,aAAA,EAAE,CAAC,SAAS,EAAE,UAAC,OAAiB,EAAA;cAC7B,KAAI,CAAC,aAAa,EAAE;EACxB,QAAA,CAAC,CAAC;EAIF,QAAA,KAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAI,CAAC,KAAK,EAAE,KAAI,CAAC,MAAM,CAAC,CAAC;EACjD,QAAA,KAAI,CAAC,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC;;MACjC;MAGA,UAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAc,EAAA;EACd,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;EAC3C,QAAA,OAAO,IAAI;MACf,CAAC;EAGD,IAAA,UAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;EACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,IAAI,EAAE;EAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;cAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;UACpC;UACA,IAAI,CAAC,aAAa,EAAE;MACxB,CAAC;EAED,IAAA,UAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;EAC1C,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,UAAU,EAAE;EACzD,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,UAAU,EAAE;MAC9D,CAAC;MACL,OAAA,UAAC;EAAD,CAlDA,CAAyBjC,iBAAU,CAAA,CAAA;AAoDnC,MAAA,KAAA,kBAAA,UAAA,MAAA,EAAA;MAA2B,SAAA,CAAA,KAAA,EAAA,MAAA,CAAA;EAyEvB,IAAA,SAAA,KAAA,GAAA;EACI,QAAA,IAAA,KAAA,GAAA,MAAK,CAAA,IAAA,CAAA,IAAA,EAAC,YAAY,CAAC,IAAA,IAAA;EAxEf,QAAA,KAAA,CAAA,iBAAiB,GAAqB,IAAI,gBAAgB,EAAE;EAE5D,QAAA,KAAA,CAAA,SAAS,GAAG,IAAI6C,iBAAQ,EAAE;EAC1B,QAAA,KAAA,CAAA,aAAa,GAAc,IAAI,SAAS,CAAC,KAAI,CAAC,iBAAiB;EAClE,aAAA,EAAE,CAAC,eAAe,EAAE,UAAC,IAAa,EAAE,EAAiB,EAAA;cAClD,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,aAAa,EAAE,IAAI,CAAC;EACxC,QAAA,CAAC;EACA,aAAA,EAAE,CAAC,iBAAiB,EAAE,UAAC,IAAa,EAAA;EACjC,YAAA,KAA0B,UAA4C,EAA5C,EAAA,GAAA,KAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAA5C,cAA4C,EAA5C,EAAA,EAA4C,EAAE;EAAnE,gBAAA,IAAM,WAAW,GAAA,EAAA,CAAA,EAAA,CAAA;EAClB,gBAAA,IAAI,KAAI,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE;EAC9B,oBAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE;kBACvC;cACJ;EACJ,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,aAAa,GAAY,IAAI,OAAO,CAAC,KAAI,CAAC,iBAAiB;eAC9D,EAAE,CAAC,OAAO,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,GAAQ,EAAA;cACvD,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC;EAC5C,YAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE;EACvC,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,eAAe,GAAY,IAAI,OAAO,CAAC,KAAI,CAAC,iBAAiB;eAChE,EAAE,CAAC,OAAO,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,GAAQ,EAAA;cACvD,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC;EAC9C,YAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE;EACvC,QAAA,CAAC,CAAC;UAEE,KAAA,CAAA,aAAa,GAAG,IAAI,YAAY,CAAC,KAAI,CAAC,iBAAiB,CAAC;UACxD,KAAA,CAAA,YAAY,GAAU,IAAIE,WAAK;eAClC,MAAM,CAAC,WAAW;eAClB,aAAa,CAAC,KAAK;eACnB,kBAAkB,CAAC,IAAI;eACvB,EAAE,CAAC,cAAc,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,GAAQ,EAAA;cAC9D,IAAM,GAAG,GAAe,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE;cAC7C,KAAI,CAAC,KAAK,CAAC,KAAI,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC;EAC/G,QAAA,CAAC;eACA,EAAE,CAAC,oBAAoB,EAAE,UAAC,GAAQ,EAAE,GAAW,EAAE,GAAY,EAAE,GAAQ,EAAA;EACxE,QAAA,CAAC,CAAC;EAEE,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIF,iBAAQ,EAAE;EAC/B,QAAA,KAAA,CAAA,kBAAkB,GAAG,IAAI,UAAU,CAAC,KAAI,CAAC;UACzC,KAAA,CAAA,kBAAkB,GAAG,IAAIZ,qBAAU,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;EACtD,QAAA,KAAA,CAAA,iBAAiB,GAAG,IAAIe,mBAAQ,EAAE;EAClC,QAAA,KAAA,CAAA,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE;EAC3D,QAAA,KAAA,CAAA,cAAc,GAAc,IAAI,SAAS,CAAC,KAAI,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;EACzG,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIf,qBAAU,EAAE;EACjC,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIA,qBAAU,EAAE;EAEjC,QAAA,KAAA,CAAA,aAAa,GAAG,IAAI,kBAAkB,EAAE;UAyGxC,KAAA,CAAA,cAAc,GAAsC,EAAE;;MAhF9D;MAlBO,KAAA,CAAA,MAAM,GAAb,UAAc,MAAc,EAAE,GAAkC,EAAE,OAAgB,EAAE,IAAa,EAAA;EAC7F,QAAA,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM,EAAA;EAC/B,YAAA,IAAM,KAAK,GAAG,IAAI,KAAK;mBAClB,MAAM,CAAC,MAAM;mBACb,MAAM,CAAC,UAAC,CAAQ,EAAA;kBACb,IAAI,GAAG,EAAE;sBACL,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,YAAA;0BACjC,OAAO,CAAC,KAAK,CAAC;EAClB,oBAAA,CAAC,CAAC;kBACN;uBAAO;sBACH,OAAO,CAAC,KAAK,CAAC;kBAClB;EACJ,YAAA,CAAC,CAAC;EACV,QAAA,CAAC,CAAC;MACN,CAAC;EAMD,IAAA,KAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;UACI,OAAO,IAAI,CAAC,iBAAiB;MACjC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;UACrD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;EACrD,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;EAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;UAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;EACzC,QAAA,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EAC7B,YAAA,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;EAC3C,QAAA,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,EAAE,EAAA;cACN;EACJ,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;EACI,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;MACpC,CAAC;MAED,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,IAAiB,EAAA;UAAzB,IAAA,KAAA,GAAA,IAAA;UACI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;EACzC,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAA;EACrB,YAAA,KAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;EAChC,YAAA,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE;EAC3B,YAAA,KAAI,CAAC,eAAe,CAAC,MAAM,EAAE;cAC7B,OAAO,KAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;kBAC3C,IAAM,QAAQ,GAAG,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;EAClD,gBAAA,IAAI,QAAQ,CAAC,MAAM,EAAE;sBACjB,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;kBAC5C;EACA,gBAAA,OAAO,KAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;cAC3C,CAAC,CAAC,CAAC,IAAI,CAAC,YAAA;kBACJ,IAAI,QAAQ,GAAG,KAAK;EACpB,gBAAA,KAAoB,IAAA,EAAA,GAAA,CAAiC,EAAjC,EAAA,GAAA,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAjC,EAAA,GAAA,EAAA,CAAA,MAAiC,EAAjC,EAAA,EAAiC,EAAE;EAAlD,oBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;sBACZ,QAAQ,GAAG,IAAI;EACf,oBAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;kBAC9E;kBACA,IAAI,QAAQ,EAAE;;EAEV,oBAAA,KAAI,CAAC,aAAa,CAAC,aAAa,EAAE;kBACtC;EACJ,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;MACN,CAAC;MAED,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAiC,EAAE,OAAgB,EAAE,IAAa,EAAE,eAA4B,EAAA;EAA5B,QAAA,IAAA,eAAA,KAAA,MAAA,EAAA,EAAA,eAAA,GAAA,EAA4B,CAAA,CAAA;UACtG,IAAM,IAAI,GAAgB,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC;UACtG,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;EACjC,QAAA,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;EACnB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B,YAAA,IAAI,CAAC;EACA,iBAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC;UAElD;eAAO;EACH,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC;EAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;EAC9B,YAAA,IAAI,CAAC;EACA,iBAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI;EACnC,iBAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;UAEnD;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EACpC,QAAA,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;EAChC,YAAA,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;UACzC;EACA,QAAA,OAAO,MAAM;MACjB,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UACI,OAAO,IAAI,CAAC,aAAa;MAC7B,CAAC;EAIO,IAAA,KAAA,CAAA,SAAA,CAAA,cAAc,GAAtB,YAAA;EACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,EAAE;UAClC,OAAO,aAAa,YAAY,OAAO,GAAG,aAAa,GAAG,SAAS;MACvE,CAAC;EAIO,IAAA,KAAA,CAAA,SAAA,CAAA,KAAK,GAAb,UAAc,MAAe,EAAE,IAAgB,EAAA;UAC3C,IAAI,CAAC,SAAS,CAAC,MAAM;EAAE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;EACxE,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;cAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;cACvC,IAAI,CAAC,YAAY,EAAE;UACvB;EACA,QAAA,OAAO,IAAI;MACf,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;UACI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;MAClD,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE;EACzC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;UAC7C;EACA,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;MACrC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;UACI,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE;EAC3C,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;UAC/C;EACA,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;MACrC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;UACI,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,aAAa,EAAE;EACzC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;EACjC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;UAC7C;EACA,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;MACrC,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;EACI,QAAA,IAAI,CAAC;eACA,IAAI,CAAAhZ,UAAA,CAAA,EAAA,EAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAA,EAAI,IAAI,CAAC;UAExD,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE;EACxC,YAAA,IAAI,CAAC;EACA,iBAAA,UAAU,EAAE;UAErB;MACJ,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;EACI,QAAA,IAAI,CAAC;eACA,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;UAElC,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,kBAAkB,EAAE;EAC9C,YAAA,IAAI,CAAC;EACA,iBAAA,UAAU,EAAE;UAErB;MACJ,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;EACI,QAAA,IAAI,CAAC;eACA,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;UAEhD,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,iBAAiB,EAAE;EAC7C,YAAA,IAAI,CAAC;EACA,iBAAA,UAAU,EAAE;UAErB;MACJ,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;EACxB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;EAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACrC,YAAA,KAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;EACjC,YAAA,KAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACrC,gBAAA,OAAO,KAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;cAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,YAAA;EACJ,gBAAA,KAAoB,IAAA,EAAA,GAAA,CAAgC,EAAhC,EAAA,GAAA,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAhC,EAAA,GAAA,EAAA,CAAA,MAAgC,EAAhC,EAAA,EAAgC,EAAE;EAAjD,oBAAA,IAAM,KAAK,GAAA,EAAA,CAAA,EAAA,CAAA;EACZ,oBAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;kBAC9E;EACJ,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;UAAA,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,IAAM,QAAQ,GAAG,IAAIqZ,wBAAe,EAAE;;EAGtC,QAAA,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE;EAC5B,YAAA,KAAK,EAAE,UAAU;EACjB,YAAA,OAAO,EAAE,YAAA;kBACL,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAI,CAAC,iBAAiB,CAAC;EACnD,gBAAA,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;EACtC,gBAAA,KAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,oBAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACnB,wBAAA,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;EACxC,oBAAA,CAAC,CAAC;EACN,gBAAA,CAAC,CAAC;cACN;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE;EAC9B,YAAA,KAAK,EAAE,OAAO;EACd,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,KAAK,EAAE;cAChB;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;EAC7B,YAAA,KAAK,EAAE,MAAM;EACb,YAAA,OAAO,EAAE,YAAA;EACL,gBAAA,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;kBACpD5C,cAAO,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;cACjD;EACH,SAAA,CAAC;EAEF,QAAA,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE;EAC7B,YAAA,KAAK,EAAE,MAAM;EACb,YAAA,OAAO,EAAE,YAAA;kBACL,KAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;kBACjD,KAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;cACjC;EACH,SAAA,CAAC;;UAGF,IAAM,OAAO,GAAG,IAAIuD,uBAAc,CAAC,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC;EAChD,QAAA,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;EACjE,QAAA,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;EAC7D,QAAA,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;EAC5D,QAAA,OAAO,CAAC,EAAE,GAAG,SAAS;UAEtB,IAAM,WAAW,GAAG,IAAIV,oBAAW,CAAC,EAAE,QAAQ,EAAA,QAAA,EAAE,CAAC;UAEjD,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC;UACrF,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC;UACvF,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC;EAEnF,QAAA,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC;EACxE,QAAA,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAA,CAAA,MAAA,CAAI,IAAI,CAAC,EAAE,EAAE,CAAE,EAAE,CAAC;EAExE,QAAA,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAC,KAAiB,EAAA;EACvD,YAAA,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;kBACzB,KAAK,CAAC,cAAc,EAAE;cAC1B;EACJ,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,KAAa,EAAE,OAAe,EAAE,MAA8B,EAAA;UAA1E,IAAA,KAAA,GAAA,IAAA;UACI,IAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;EACzE,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,CAAC;UACjD,IAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;UACnD,IAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE;EAC/C,QAAA,IAAI,EAAE,YAAY,QAAQ,EAAE;cACxB,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;UAClC;EACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;EACtC,QAAA,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,YAAA;EACtB,YAAA,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACnB,gBAAA,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;EACxC,YAAA,CAAC,CAAC;EACN,QAAA,CAAC,CAAC;MACN,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,OAAO,EAAE,OAAO,EAAA;UAAtB,IAAA,KAAA,GAAA,IAAA;EACI,QAAA,MAAA,CAAA,SAAK,CAAC,KAAK,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;UAC7B;EACK,aAAA,SAAS,CAAC,IAAI,CAAC,SAAS;EACxB,aAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;EAElC,QAAA,IAAI,CAAC;EACA,aAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW;EACzC,aAAA,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW;EACzC,aAAA,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa;EAC7C,aAAA,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU;EACvC,aAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO;EACtC,aAAA,EAAE,CAAC,iBAAiB,EAAE,UAAC,CAAS,EAAA;cAC7B,QAAQ,CAAC;kBACL,KAAK,KAAI,CAAC,aAAa;sBACnB,KAAI,CAAC,YAAY,EAAE;sBACnB;kBACJ,KAAK,KAAI,CAAC,eAAe;sBACrB,KAAI,CAAC,YAAY,EAAE;sBACnB;kBACJ,KAAK,KAAI,CAAC,aAAa;sBACnB,KAAI,CAAC,YAAY,EAAE;sBACnB;kBACJ,KAAK,KAAI,CAAC,YAAY;sBAClB,KAAI,CAAC,YAAY,EAAE;sBACnB,KAAI,CAAC,SAAS,EAAE;sBAChB;kBACJ,KAAK,KAAI,CAAC,cAAc;EACpB,oBAAA,KAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;sBACjE;;EAEZ,QAAA,CAAC,CAAC;EAEN,QAAA,IAAI,CAAC;EACA,aAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI;EACvC,aAAA,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ;EAC3C,aAAA,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI;EACtC,aAAA,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO;EACtC,aAAA,EAAE,CAAC,iBAAiB,EAAE,UAAC,CAAS,EAAA;cAC7B,QAAQ,CAAC;kBACL,KAAK,KAAI,CAAC,kBAAkB;sBACxB,KAAI,CAAC,YAAY,EAAE;sBACnB,KAAI,CAAC,OAAO,EAAE;sBACd;kBACJ,KAAK,KAAI,CAAC,iBAAiB;sBACvB,KAAI,CAAC,YAAY,EAAE;sBACnB,KAAI,CAAC,cAAc,EAAE;sBACrB;kBACJ,KAAK,KAAI,CAAC,cAAc;sBACpB,KAAI,CAAC,SAAS,EAAE;sBAChB;;EAEZ,QAAA,CAAC,CAAC;UAGN,IAAI,CAAC,QAAQ,EAAE;EACf,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,UAAC,EAAU,EAAE,QAAa,EAAE,QAAa,EAAE,MAAmB,EAAA;EAC/F,YAAA,IAAM,WAAW,GAAG,KAAI,CAAC,cAAc,EAAE;cACzC,IAAI,WAAW,EAAE;EACb,gBAAA,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,YAAA;EACvB,oBAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE;EACvC,gBAAA,CAAC,CAAC;cACN;mBAAO;EACH,gBAAA,KAAI,CAAC,aAAa,CAAC,cAAc,EAAE;cACvC;EACA,YAAA,QAAQ,KAAI,CAAC,SAAS,EAAE;kBACpB,KAAK,KAAI,CAAC,aAAa;sBACnB,KAAI,CAAC,aAAa,EAAE;sBACpB;kBACJ,KAAK,KAAI,CAAC,eAAe;EACrB,oBAAA,KAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;sBAChC;kBACJ,KAAK,KAAI,CAAC,YAAY;sBAClB,KAAI,CAAC,SAAS,EAAE;sBAChB;kBACJ,KAAK,KAAI,CAAC,kBAAkB;sBACxB,KAAI,CAAC,OAAO,EAAE;sBACd;kBACJ,KAAK,KAAI,CAAC,cAAc;sBACpB,KAAI,CAAC,SAAS,EAAE;sBAChB;;EAEZ,QAAA,CAAC,CAAC;UAEF,IAAM,OAAO,GAAG,IAAI;UACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO;EAClC,aAAA,IAAI,CAAC,MAAM,EAAE,MAAM;EACnB,aAAA,QAAQ,CAAC,QAAQ,EAAE,cAAc;EACjC,aAAA,KAAK,CAAC,SAAS,EAAE,MAAM;eACvB,EAAE,CAAC,QAAQ,EAAE,YAAA;cACV,IAAI,CAAC,GAAG,CAAC;cACT,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;cACrB,OAAO,CAAC,EAAE;EACN,gBAAA,IAAM,MAAM,GAAG,IAAI,UAAU,EAAE;EAC/B,gBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,UAAU,OAAO,EAAA;EAC9B,oBAAA,OAAO,UAAU,CAAC,EAAA;EACd,wBAAA,IAAI;EACA,4BAAA,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM;8BACpF,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;EAC/B,4BAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;0BAC3B;0BAAE,OAAO,EAAE,EAAE;EACT,4BAAA,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC;0BACjD;EACJ,oBAAA,CAAC;EACL,gBAAA,CAAC,EAAG,CAAC;EACL,gBAAA,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;kBACpB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;kBACnB;cACJ;EACJ,QAAA,CAAC,CAAC;MAEV,CAAC;EAED,IAAA,KAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,OAAO,EAAE,OAAO,EAAA;EACnB,QAAA,MAAA,CAAA,SAAK,CAAC,MAAM,CAAA,IAAA,CAAA,IAAA,EAAC,OAAO,EAAE,OAAO,CAAC;MAClC,CAAC;EApYD,IAAA,UAAA,CAAA;UADChB,mBAAY,CAAC,eAAe,CAAC;;EACa,KAAA,EAAA,KAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,CAAA;MAqY/C,OAAA,KAAC;GAAA,CA1b0BW,mBAAU,CAAA;EA2brC,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[1,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,84,90]}
1
+ {"version":3,"file":"index.js","sources":["../src/__package__.ts","../src/ddl2/activities/activity.ts","../src/ddl2/activities/datasource.ts","../src/ddl2/activities/form.ts","../src/ddl2/activities/databomb.ts","../src/ddl2/activities/wuresult.ts","../src/ddl2/activities/logicalfile.ts","../src/ddl2/activities/rest.ts","../src/ddl2/activities/roxie.ts","../src/ddl2/activities/dspicker.ts","../src/ddl2/activities/filter.ts","../src/ddl2/activities/groupby.ts","../src/ddl2/activities/limit.ts","../src/ddl2/activities/project.ts","../src/ddl2/activities/sort.ts","../src/ddl2/activities/hipiepipeline.ts","../src/ddl2/activities/nullview.ts","../src/ddl2/model/vizChartPanel.ts","../src/ddl2/model/visualization.ts","../src/ddl2/model/element.ts","../node_modules/d3-fetch/src/text.js","../src/ddl2/PopupManager.ts","../src/ddl2/dashboardDockPanel.ts","../src/ddl2/dashboardGrid.ts","../src/ddl2/ddl.ts","../src/ddl2/javascriptadapter.ts","../src/ddl2/dashboard.ts","../src/ddl2/ddleditor.ts","../src/ddl2/graphadapter.ts","../src/ddl2/dsTable.ts","../src/ddl2/dvTable.ts","../src/ddl2/pipelinePanel.ts","../src/dashy.ts"],"sourcesContent":["export const PKG_NAME = \"__PACKAGE_NAME__\";\nexport const PKG_VERSION = \"__PACKAGE_VERSION__\";\nexport const BUILD_VERSION = \"__BUILD_VERSION__\";\n","import { IMonitorHandle, PropertyExt } from \"@hpcc-js/common\";\nimport { IField as WsEclField } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, update } from \"@hpcc-js/util\";\n\nexport function stringify(obj_from_json) {\n if (Array.isArray(obj_from_json)) {\n // not an object, stringify using native function\n return \"[\" + obj_from_json.map(stringify).join(\", \") + \"]\";\n }\n if (typeof obj_from_json !== \"object\" || obj_from_json === null || obj_from_json === undefined) {\n // not an object, stringify using native function\n return JSON.stringify(obj_from_json);\n }\n // Implements recursive object serialization according to JSON spec\n // but without quotes around the keys.\n const props = Object\n .keys(obj_from_json)\n .map(key => `${key}: ${stringify(obj_from_json[key])}`)\n .join(\", \");\n return `{ ${props} }`;\n}\n\nexport function schemaType2IFieldType(type): \"boolean\" | \"number\" | \"number64\" | \"range\" | \"string\" {\n switch (type) {\n case \"boolean\":\n return \"boolean\";\n case \"xs:byte\":\n case \"xs:double\":\n case \"xs:decimal\":\n case \"xs:float\":\n case \"xs:int\":\n case \"xs:short\":\n case \"xs:unsignedInt\":\n case \"xs:unsignedShort\":\n case \"xs:unsignedByte\":\n case \"number\":\n return \"number\";\n case \"xs:integer\":\n case \"xs:long\":\n case \"xs:negativeInteger\":\n case \"xs:nonNegativeInteger\":\n case \"xs:nonPositiveInteger\":\n case \"xs:positiveInteger\":\n case \"xs:unsignedLong\":\n return \"number64\";\n case \"string\":\n return \"string\";\n case \"range\":\n return \"range\";\n }\n return \"string\";\n}\n\nexport function schemaRow2IField(row: any): DDL2.IField {\n if (row._children && row._children.length) {\n return {\n type: \"dataset\",\n id: row.name,\n children: row._children.map(schemaRow2IField)\n };\n } else {\n return {\n id: row.name,\n type: schemaType2IFieldType(row.type)\n };\n }\n}\n\nexport function wsEclSchemaRow2IField(row: WsEclField): DDL2.IField {\n return row;\n}\n\nexport type ReferencedFields = {\n inputs: { [activityID: string]: string[] },\n outputs: { [activityID: string]: string[] }\n};\n\nexport interface IActivityError {\n source: string;\n msg: string;\n hint: string;\n}\n\n/*\nexport const ROW_ID = \"__##__\"; // TODO: Should be Symbol\nexport function rowID(row: Readonly<object>): undefined | number {\n return row[ROW_ID] || row[\"__lparam\"];\n}\n*/\n\nexport abstract class Activity extends PropertyExt {\n private _sourceActivity: Activity;\n\n fixInt64(data) {\n if (!data || data.length === 0) return [];\n const int64Fields = this.outFields().filter(field => {\n switch (field.type) {\n case \"number\":\n // Test actual data for integer64 cases.\n return typeof data[0][field.id] !== \"number\";\n case \"number64\":\n return true;\n }\n return false;\n });\n if (int64Fields.length) {\n return data.map(row => {\n for (const int64Field of int64Fields) {\n row[int64Field.id] = +row[int64Field.id];\n }\n return row;\n });\n }\n return data;\n }\n\n sourceActivity(): Activity;\n sourceActivity(_: Activity): this;\n sourceActivity(_?: Activity): Activity | this {\n if (!arguments.length) return this._sourceActivity;\n this._sourceActivity = _;\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.refreshMeta() : Promise.resolve();\n }\n\n exists(): boolean {\n return true;\n }\n\n validate(): IActivityError[] {\n return [];\n }\n\n label(): string {\n return this.id();\n }\n\n updatedBy(): string[] {\n return [];\n }\n\n private _emptyFields: ReadonlyArray<DDL2.IField> = [];\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._sourceActivity ? this._sourceActivity.outFields() : this._emptyFields;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => inFields;\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.computeFields(this.inFields())();\n }\n\n localFields(): DDL2.IField[] {\n const inFieldIDs = this.inFields().map(field => field.id);\n return this.outFields().filter(field => inFieldIDs.indexOf(field.id) < 0);\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n if (this.localFields().filter(field => field.id === fieldID).length) {\n return this;\n } else if (this.sourceActivity()) {\n return this.sourceActivity().fieldOrigin(fieldID);\n }\n return null;\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n for (const fieldID of fieldIDs) {\n const fieldOrigin = this.fieldOrigin(fieldID);\n if (fieldOrigin) {\n if (!refs.outputs[fieldOrigin.id()]) {\n refs.outputs[fieldOrigin.id()] = [];\n }\n if (refs.outputs[fieldOrigin.id()].indexOf(fieldID) < 0) {\n refs.outputs[fieldOrigin.id()].push(fieldID);\n }\n }\n }\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n return this._sourceActivity && this._sourceActivity.resolveFields(refs, fieldIDs);\n }\n\n referencedFields(refs: ReferencedFields): void {\n this._sourceActivity?.referencedFields(refs);\n }\n\n exec(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.exec() : Promise.resolve();\n }\n\n _emptyData: ReadonlyArray<object> = [];\n inData(): ReadonlyArray<object> {\n return this._sourceActivity ? this._sourceActivity.outData() || this._emptyData : this._emptyData;\n }\n\n computeData(): ReadonlyArray<object> {\n return this.inData();\n }\n\n private _prevDataHash: string = \"\";\n private _prevInData: ReadonlyArray<object> = [];\n private _prevData: ReadonlyArray<object> = [];\n private cachedComputeData(inData: ReadonlyArray<object>): ReadonlyArray<object> {\n const hash = this.hash();\n if (this._prevDataHash !== hash || this._prevInData !== inData) {\n this._prevDataHash = hash;\n this._prevInData = inData;\n this._prevData = update(this._prevData, this.computeData());\n }\n return this._prevData;\n }\n\n outData(): ReadonlyArray<object> {\n return this.cachedComputeData(this.inData());\n }\n}\n\nexport class ActivityArray extends Activity {\n private _activities: Activity[] = [];\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return this._activities;\n this._activities = _;\n return this;\n }\n}\nActivityArray.prototype._class += \" ActivityArray\";\n\nexport class ActivityPipeline extends ActivityArray {\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return super.activities();\n super.activities(_);\n let prevActivity: Activity;\n for (const activity of _) {\n if (prevActivity) {\n activity.sourceActivity(prevActivity);\n }\n prevActivity = activity;\n }\n return this;\n }\n\n first(): Activity {\n const retVal = this.activities();\n return retVal[0];\n }\n\n last(): Activity | null {\n const retVal = this.activities();\n return retVal[retVal.length - 1];\n }\n\n protected calcUpdatedGraph(activity: Activity): Array<{ from: string, to: Activity }> {\n return activity.updatedBy().map(source => {\n return {\n from: source,\n to: activity\n };\n });\n }\n\n updatedByGraph(): Array<{ from: string, to: Activity }> {\n let retVal: Array<{ from: string, to: Activity }> = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(this.calcUpdatedGraph(activity));\n }\n return retVal;\n }\n\n fetch(from: number = 0, count: number = Number.MAX_VALUE): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this.outData();\n if (from === 0 && data.length <= count) {\n return data;\n }\n return data.slice(from, from + count);\n });\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n activities: [this.activities().map(activity => activity.hash())],\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this.last().refreshMeta();\n }\n\n updatedBy(): string[] {\n let retVal: string[] = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(activity.updatedBy());\n }\n return retVal;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.first().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.last().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.last().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.last().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.last().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.last().outData();\n }\n}\nActivityPipeline.prototype._class += \" ActivitySequence\";\n\nexport class ActivitySelection extends ActivityArray {\n private _selection: Activity;\n private _monitorHandle: IMonitorHandle;\n\n selection(): Activity;\n selection(_: Activity): this;\n selection(_?: Activity): Activity | this {\n if (_ === undefined) return this._selection;\n if (this._monitorHandle) {\n this._monitorHandle.remove();\n }\n this._selection = _;\n this._monitorHandle = _.monitor((id, newVal, oldVal) => {\n this.broadcast(id, newVal, oldVal, _);\n });\n return this;\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n selection: this.selection().hash(),\n ...more\n });\n }\n\n label(): string {\n return this.selection().label();\n }\n\n refreshMeta(): Promise<void> {\n return this.selection().refreshMeta();\n }\n\n updatedBy(): string[] {\n return this.selection().updatedBy();\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.selection().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.selection().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.selection().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.selection().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.selection().outData();\n }\n}\nActivitySelection.prototype._class += \" ActivitySelection\";\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Activity } from \"./activity.ts\";\nimport { Databomb } from \"./databomb.ts\";\nimport { Form } from \"./form.ts\";\nimport { LogicalFile } from \"./logicalfile.ts\";\nimport { RestResult, RestService } from \"./rest.ts\";\nimport { RoxieResult, RoxieService } from \"./roxie.ts\";\nimport { WU, WUResult } from \"./wuresult.ts\";\n\nlet datasourceID = 0;\nexport class Datasource extends Activity {\n\n constructor() {\n super();\n this._id = `ds_${++datasourceID}`;\n }\n}\n\nexport type DatasourceRefType = Databomb | Form | LogicalFile | RoxieResult | WUResult | RestResult;\nexport type DatasourceType = Databomb | Form | LogicalFile | RoxieService | WU | RestService;\n\nexport class DatasourceRef extends Activity {\n _origDatasource;\n declare _datasource: DatasourceRefType;\n\n constructor() {\n super();\n }\n\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n datasource: this._datasource ? this._datasource.hash(more) : undefined,\n ...more\n });\n }\n\n toDDL(): DDL2.IDatabombRef {\n return {\n id: this.datasource().id()\n };\n }\n}\nDatasourceRef.prototype._class += \" DatasourceRef\";\n\nexport interface DatasourceRef {\n datasource(): DatasourceRefType;\n datasource(_: DatasourceRefType): this;\n}\n\nDatasourceRef.prototype.publish(\"datasource\", null, \"widget\", \"Datasource Reference\", null, { internal: true });\n\nDatasourceRef.prototype._origDatasource = DatasourceRef.prototype.datasource;\nDatasourceRef.prototype.datasource = function (this: DatasourceRef, _?) {\n const retVal = DatasourceRef.prototype._origDatasource.apply(this, arguments);\n if (_ !== undefined) {\n this.sourceActivity(_);\n }\n return retVal;\n};","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Datasource } from \"./datasource.ts\";\n\ntype IField = DDL2.IFieldBoolean | DDL2.IFieldNumber | DDL2.IFieldString | DDL2.IFieldDataset;\n\nexport class FormField extends PropertyExt {\n protected _owner: Form;\n\n disableChildField(): boolean {\n return this.type() !== \"dataset\";\n }\n\n constructor() {\n super();\n }\n\n toDDL(): IField {\n return {\n type: this.type(),\n id: this.fieldID(),\n default: this.default(),\n children: this.type() === \"dataset\" ? this.childFields().map(cf => cf.toDDL()) : undefined\n } as IField;\n }\n\n fromDDL(ddl: IField): this {\n return this\n .type(ddl.type)\n .fieldID(ddl.id)\n .default(ddl.default)\n .childFields(ddl.type === \"dataset\" && ddl.children ? ddl.children.map(FormField.fromDDL) : [])\n ;\n }\n\n static fromDDL(ddl: IField): FormField {\n return new FormField().fromDDL(ddl);\n }\n\n owner(): Form;\n owner(_: Form): this;\n owner(_?: Form): Form | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.type() && !!this.fieldID();\n }\n\n coerceFunc(): (cell: any) => boolean | number | string {\n switch (this.type()) {\n case \"boolean\":\n return cell => !!cell;\n case \"number\":\n return cell => +cell;\n case \"string\":\n return cell => \"\" + cell;\n }\n return cell => cell;\n }\n\n calcValue() {\n return this.value_exists() ? this.value() : this.default();\n }\n}\n\nexport class Form extends Datasource {\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IForm {\n return {\n type: \"form\",\n id: this.id(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IForm, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .formFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IForm, skipID = false): Form {\n return new Form().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.formFields().filter(f => f.valid());\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Form\";\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n const retVal: DDL2.IField[] = this.validFields().map(f => f.toDDL());\n return () => retVal;\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const retVal = {};\n this.validFields().forEach(f => {\n retVal[f.fieldID()] = f.calcValue();\n });\n return [retVal];\n }\n\n // ===\n total(): number {\n return 1;\n }\n}\nForm.prototype._class += \" Form\";\n\nexport interface FormField {\n type(): \"boolean\" | \"number\" | \"string\" | \"dataset\";\n type(_: \"boolean\" | \"number\" | \"string\" | \"dataset\"): this;\n fieldID(): string;\n fieldID(_: string): this;\n default(): boolean | number | string | any[];\n default(_: boolean | number | string | any[]): this;\n value(): boolean | number | string;\n value(_: boolean | number | string): this;\n value_exists(): boolean;\n childFields(): FormField[];\n childFields(_: FormField[]): this;\n}\n\nexport interface Form {\n formFields(): FormField[];\n formFields(_: FormField[]): this;\n}\n\nFormField.prototype.publish(\"type\", \"string\", \"set\", \"FormField Type\", [\"boolean\", \"number\", \"string\", \"dataset\"]);\nFormField.prototype.publish(\"fieldID\", \"\", \"string\", \"FormField Label\");\nFormField.prototype.publish(\"default\", null, \"any\", \"Default Value\", null, { optional: true });\nFormField.prototype.publish(\"value\", null, \"any\", \"Default Value\", null, { optional: true });\nFormField.prototype.publish(\"childFields\", [], \"propertyArray\", \"Child Fields\", null, { autoExpand: FormField, disable: (w: FormField) => w.disableChildField() });\n\nForm.prototype.publish(\"formFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField });","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IDatasource } from \"@hpcc-js/dgrid\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { csvParse as d3CsvParse, tsvParse as d3TsvParse } from \"d3-dsv\";\nimport { Activity } from \"./activity.ts\";\nimport { Datasource } from \"./datasource.ts\";\nimport { FormField } from \"./form.ts\";\n\nfunction fieldType(field: any): DDL2.IFieldType {\n if (isArray(field)) {\n return \"dataset\";\n }\n const type = typeof field;\n switch (type) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"object\":\n return type;\n }\n return \"string\";\n}\n\nexport function rowToFields(row: object, _jsonData): DDL2.IField[] {\n // TODO: This heuristic will fail if there are empty nested rows in the first row...\n const retVal: DDL2.IField[] = [];\n for (const key in row) {\n const field = {\n type: fieldType(row[key]),\n id: key\n } as DDL2.IField;\n switch (field.type) {\n case \"object\":\n for (const row of _jsonData) {\n let found = false;\n for (const _childKey in row[key]) {\n const rowFields = rowToFields(row[key], [row[key]]);\n field.fields = {};\n if (rowFields.length) {\n rowFields.forEach(rf => field.fields[rf.id] = rf);\n found = true;\n }\n break;\n }\n if (found) break;\n }\n break;\n case \"dataset\":\n for (const row of _jsonData) {\n if (row[key] && row[key].length) {\n field.children = rowToFields(row[key][0], row[key]);\n break;\n }\n }\n break;\n }\n retVal.push(field);\n }\n return retVal;\n}\n\nexport class Databomb extends Datasource {\n\n private _jsonData: ReadonlyArray<object> = [];\n\n constructor() {\n super();\n }\n\n toDDL(skipPayload: boolean = false): DDL2.IDatabomb {\n return {\n type: \"databomb\",\n id: this.id(),\n format: this.format(),\n payload: skipPayload ? undefined : this.payload(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IDatabomb, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .format(ddl.format)\n .payload(ddl.payload)\n .databombFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IDatabomb, skipID = false): Databomb {\n return new Databomb().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.databombFields().filter(f => f.valid());\n }\n\n updateJsonData() {\n try {\n switch (this.format()) {\n case \"csv\":\n this._jsonData = d3CsvParse(this.payload());\n break;\n case \"tsv\":\n this._jsonData = d3TsvParse(this.payload());\n break;\n case \"json\":\n default:\n this._jsonData = JSON.parse(this.payload());\n break;\n }\n this.databombFields(this.preCalcFields().map(FormField.fromDDL));\n } catch (e) {\n this.databombFields([]);\n this._jsonData = [];\n }\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL(true),\n ...more\n }) + this.payload();\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Databomb\";\n }\n\n private preCalcFields(): DDL2.IField[] {\n if (this._jsonData.length === 0) return [];\n return rowToFields(this._jsonData[0], this._jsonData);\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.validFields().map(f => f.toDDL());\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const coarceFuncMap = {};\n this.validFields().forEach(field => {\n coarceFuncMap[field.fieldID()] = field.coerceFunc();\n });\n return this._jsonData.map(row => {\n const retVal = {};\n for (const key in coarceFuncMap) {\n retVal[key] = coarceFuncMap[key](row[key]);\n }\n return retVal;\n });\n }\n\n // ===\n total(): number {\n return this._jsonData.length;\n }\n}\nDatabomb.prototype._class += \" Databomb\";\n\nexport interface Databomb {\n format(): \"json\" | \"csv\" | \"tsv\";\n format(_: \"json\" | \"csv\" | \"tsv\"): this;\n payload(): string;\n payload(_: string): this;\n databombFields(): FormField[];\n databombFields(_: FormField[]): this;\n}\n\nDatabomb.prototype.publish(\"format\", \"json\", \"set\", \"Databomb Format\", [\"json\", \"csv\", \"tsv\"]);\nDatabomb.prototype.publish(\"payload\", \"\", \"string\", \"Databomb array\", null, { multiline: true });\nDatabomb.prototype.publish(\"databombFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField });\n\nconst payloadFormat = Databomb.prototype.format;\nDatabomb.prototype.format = function (this: Databomb, _?) {\n const retVal = payloadFormat.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nconst databombPayloadOrig = Databomb.prototype.payload;\nDatabomb.prototype.payload = function (this: Databomb, _?) {\n const retVal = databombPayloadOrig.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nexport const emptyDatabomb = new Databomb().id(\"Empty\").payload(\"[]\");\n\nexport class DatasourceAdapt implements IDatasource {\n private _activity: Activity;\n\n constructor(activity: Activity) {\n this._activity = activity || emptyDatabomb;\n }\n\n exec(): Promise<void> {\n return this._activity.refreshMeta().then(() => {\n return this._activity.exec();\n });\n }\n\n id(): string {\n return this._activity.id();\n }\n hash(more: { [key: string]: any } = {}): string {\n return this._activity.hash(more);\n }\n label(): string {\n return this._activity.label();\n }\n outFields(): DDL2.IField[] {\n return this._activity && this._activity.outFields ? this._activity.outFields() as DDL2.IField[] : [];\n }\n total(): number {\n return this._activity ? this._activity.outData().length : 0;\n }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this._activity.outData();\n if (from === 0 && data.length <= count) {\n return Promise.resolve(data);\n }\n return Promise.resolve(data.slice(from, from + count));\n });\n }\n}\n","import { Result, Workunit, XSDXMLNode } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, debounce, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element.ts\";\nimport { schemaRow2IField } from \"./activity.ts\";\nimport { Datasource, DatasourceRef } from \"./datasource.ts\";\n\nexport abstract class ESPResult extends Datasource {\n protected _result: Result;\n protected _schema: XSDXMLNode[] = [];\n protected _meta: DDL2.IField[] = [];\n protected _total: number;\n private _data: ReadonlyArray<object> = [];\n\n constructor(protected _ec: ElementContainer) {\n super();\n this\n .samples(this._ec.samples())\n .sampleSize(this._ec.sampleSize())\n ;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n samples: this.samples(),\n sampleSize: this.sampleSize(),\n ...more\n });\n }\n\n abstract _createResult(): Result;\n\n _prevMetaHash: string;\n refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevMetaHash !== this.hash()) {\n this._prevMetaHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._result = this._createResult();\n if (this._result) {\n return this._result.refresh();\n }\n throw new Error(\"No valid result\");\n }).then(result => {\n this._total = result.Total;\n this._schema = result.fields();\n this._meta = this._meta && this._meta.length ? this._meta : this._schema.map(schemaRow2IField);\n }).catch(e => {\n this._total = 0;\n this._schema = [];\n this._meta = [];\n });\n }\n return this.refreshMetaPromise;\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): ReadonlyArray<DDL2.IField> | this {\n if (!arguments.length) return this._meta;\n this._meta = _;\n this.refreshMeta();\n return this;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.responseFields();\n }\n\n exec(): Promise<void> {\n return this._exec();\n }\n\n private _prevExecHash: string;\n private _exec = debounce((): Promise<void> => {\n if (this._prevExecHash !== this.hash()) {\n this._prevExecHash = this.hash();\n return super.exec().then(() => {\n return this.sample();\n }).then(response => {\n this._data = this.fixInt64(response);\n }).catch(e => {\n this._data = [];\n });\n } else {\n return Promise.resolve();\n }\n });\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n\n total(): number {\n return this._total;\n }\n\n // ---\n async fetch(from: number, count: number): Promise<any[]> {\n if (count > this.samples() * this.sampleSize()) {\n return this.sample();\n }\n return this._fetch(from, count);\n }\n\n private _fetchQ = new AsyncOrderedQueue();\n private _fetch(from: number, count: number): Promise<any[]> {\n return this._fetchQ.push(\n this._result ? this._result\n .fetchRows(from, count)\n .catch(e => {\n return [];\n }) :\n Promise.resolve([])\n );\n }\n\n private sample = debounce((samples: number = this.samples(), sampleSize: number = this.sampleSize()): Promise<any[]> => {\n const pages: Array<Promise<any[]>> = [];\n if (samples * sampleSize >= this.total()) {\n pages.push(this._fetch(0, this.total()));\n } else {\n const lastPage = this.total() - sampleSize;\n for (let i = 0; i < samples; ++i) {\n pages.push(this._fetch(Math.floor(i * lastPage / samples), sampleSize));\n }\n }\n return Promise.all(pages).then(responses => {\n let retVal2: any[] = [];\n for (const response of responses) {\n retVal2 = retVal2.concat(response);\n }\n return retVal2;\n });\n });\n}\nESPResult.prototype._class += \" ESPResult\";\n\nexport interface ESPResult {\n samples(): number;\n samples(_: number): this;\n sampleSize(): number;\n sampleSize(_: number): this;\n}\n\nexport class WUResult extends ESPResult {\n\n _origWu;\n _origResultName;\n\n declare _wu: WU;\n declare _resultName: string;\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n this._wu = new WU(this._ec);\n }\n\n url(): string {\n return this._wu.url();\n }\n\n wuid(): string {\n return this._wu.wuid();\n }\n\n toDDL(): DDL2.IWUResult {\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this._wu.url(),\n wuid: this.wuid(),\n outputs: {\n [this.resultName()]: {\n fields: this.responseFields()\n }\n }\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n if (ddl.outputs[this.resultName()]) {\n return this.responseFields(ddl.outputs[this.resultName()].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IWUResult, wu: WU, resultName: string, skipID = false): WUResult {\n return new WUResult(ec)\n .wu(wu)\n .resultName(resultName)\n .fromDDL(ddl)\n ;\n }\n\n _createResult(): Result {\n if (this._wu.url() && this.wuid() && this.resultName()) {\n return Result.attach({ baseUrl: this._wu.url(), hookSend: this._ec.hookSend() }, this.wuid(), this.resultName());\n }\n return undefined;\n }\n\n sourceHash(): string {\n return super.hash({\n wuid: this.wuid()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.wuid()}\\n${this.resultName()}`;\n }\n}\nWUResult.prototype._class += \" WUResult\";\n\nexport interface WUResult {\n wu(): WU;\n wu(_: WU): this;\n resultName(): string;\n resultName(_: string): this;\n}\n\nexport class WU extends Datasource {\n _origUrl;\n _origWuid;\n\n protected _workunit: Workunit;\n protected _outputs: { [id: string]: WUResult } = {};\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IWUResult {\n const ddlOutputs: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n ddlOutputs[resultName] = {\n fields: this._outputs[resultName].responseFields()\n };\n }\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this.url(),\n wuid: this.wuid(),\n outputs: ddlOutputs\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .wuid(ddl.wuid)\n ;\n const wuResults: { [id: string]: WUResult } = {};\n for (const resultName in ddl.outputs) {\n wuResults[resultName] = WUResult.fromDDL(this._ec, ddl, this, resultName);\n }\n this._outputs = wuResults;\n return this;\n }\n\n static fromDDL(elementContainer: ElementContainer, ddl: DDL2.IWUResult, skipID = false): WU {\n return new WU(elementContainer).fromDDL(ddl, skipID);\n }\n\n hash(): string {\n return hashSum({\n url: this.url(),\n wuid: this.wuid()\n });\n }\n\n label(): string {\n return this.wuid();\n }\n\n outputs(): WUResult[] {\n const retVal = [];\n for (const resultName in this._outputs) {\n retVal.push(this._outputs[resultName]);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n retVal[resultName] = {\n fields: this._outputs[resultName].outFields() as DDL2.IField[]\n };\n }\n return retVal;\n }\n\n output(id: string): WUResult {\n return this._outputs[id];\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n private _resultNames: string[] = [];\n refreshMeta(): Promise<void> {\n if (!this.url() || !this.wuid()) {\n return Promise.resolve();\n }\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._workunit = Workunit.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.wuid());\n return this._workunit.fetchResults();\n }).then(results => {\n this._resultNames = results.map(r => r.Name);\n }).catch(e => {\n });\n }\n return this.refreshMetaPromise;\n }\n\n resultNames(): string[] {\n return this._resultNames;\n }\n}\nWU.prototype._class += \" WU\";\n\nexport interface WU {\n url(): string;\n url(_: string): this;\n wuid(): string;\n wuid(_: string): this;\n}\n\nexport class WUResultRef extends DatasourceRef {\n\n datasource(): WUResult;\n datasource(_: WUResult): this;\n datasource(_?: WUResult): this | WUResult {\n return super.datasource.apply(this, arguments);\n }\n\n resultName(): string;\n resultName(_: string): this;\n resultName(_?: string): string | this {\n if (!arguments.length) return this.datasource().resultName();\n this.datasource().resultName(_);\n return this;\n }\n\n toDDL(): DDL2.IWUResultRef {\n return {\n id: this.datasource().wu().id(),\n output: this.resultName()\n };\n }\n}\nWUResultRef.prototype._class += \" WUResultRef\";\n\nESPResult.prototype.publish(\"samples\", 10, \"number\", \"Number of samples\");\nESPResult.prototype.publish(\"sampleSize\", 100, \"number\", \"Sample size\");\n\nWUResult.prototype.publish(\"wu\", null, \"widget\", \"Workunit\");\nWUResult.prototype.publish(\"resultName\", \"\", \"set\", \"Result Name\", function (this: WUResult): string[] {\n return this._wu !== undefined ? this._wu.resultNames() : [];\n});\n\nWUResult.prototype._origWu = WUResult.prototype.wu;\nWUResult.prototype.wu = function (this: WUResult, _?) {\n const retVal = WUResult.prototype._origWu.apply(this, arguments);\n if (_ !== undefined) {\n this._wu.refreshMeta();\n }\n return retVal;\n};\n\nWUResult.prototype._origResultName = WUResult.prototype.resultName;\nWUResult.prototype.resultName = function (this: WUResult, _?) {\n const prev = this._resultName;\n const retVal = WUResult.prototype._origResultName.apply(this, arguments);\n if (_ !== undefined && prev !== _) {\n this.responseFields([]);\n }\n return retVal;\n};\n\nWU.prototype.publish(\"url\", \"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\");\nWU.prototype.publish(\"wuid\", \"\", \"string\", \"Workunit ID\");\n\nWU.prototype._origUrl = WU.prototype.url;\nWU.prototype.url = function (this: WU, _?) {\n const retVal = WU.prototype._origUrl.apply(this, arguments);\n if (_ !== undefined) {\n this.refreshMeta();\n }\n return retVal;\n};\n\nWU.prototype._origWuid = WU.prototype.wuid;\nWU.prototype.wuid = function (this: WU, _?) {\n const retVal = WU.prototype._origWuid.apply(this, arguments);\n if (_ !== undefined) {\n this.refreshMeta();\n }\n return retVal;\n};","import { Result } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element.ts\";\nimport { ESPResult } from \"./wuresult.ts\";\n\nexport class LogicalFile extends ESPResult {\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n }\n\n toDDL(): DDL2.ILogicalFile {\n return {\n type: \"logicalfile\",\n id: this.id(),\n url: this.url(),\n logicalFile: this.logicalFile(),\n fields: this.responseFields()\n };\n }\n\n fromDDL(ddl: DDL2.ILogicalFile, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .logicalFile(ddl.logicalFile)\n ;\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.ILogicalFile, skipID = false): LogicalFile {\n return new LogicalFile(ec).fromDDL(ddl, skipID);\n }\n\n _createResult(): Result {\n return Result.attachLogicalFile({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.nodeGroup(), this.logicalFile());\n }\n\n sourceHash(): string {\n return super.hash({\n logicalFile: this.logicalFile()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.logicalFile()}`;\n }\n}\nLogicalFile.prototype._class += \" LogicalFile\";\n\nexport interface LogicalFile {\n url(): string;\n url(_: string): this;\n nodeGroup(): string;\n nodeGroup(_: string): this;\n logicalFile(): string;\n logicalFile(_: string): this;\n}\nLogicalFile.prototype.publish(\"url\", \"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\");\nLogicalFile.prototype.publish(\"nodeGroup\", \"\", \"string\", \"Node Group\");\nLogicalFile.prototype.publish(\"logicalFile\", \"\", \"string\", \"Logical File Name\");","import { PropertyExt } from \"@hpcc-js/common\";\nimport { createConnection } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element.ts\";\nimport { IActivityError, ReferencedFields } from \"./activity.ts\";\nimport { rowToFields } from \"./databomb.ts\";\nimport { Datasource, DatasourceRef } from \"./datasource.ts\";\n\nexport class RestField extends PropertyExt {\n protected _owner: RestService;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IFieldString {\n return {\n type: \"string\",\n id: this.fieldID()\n };\n }\n\n fromDDL(ddl: DDL2.IFieldString): this {\n return this\n .fieldID(ddl.id)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFieldString): RestField {\n return new RestField().fromDDL(ddl);\n }\n\n owner(): RestService;\n owner(_: RestService): this;\n owner(_?: RestService): RestService | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n}\n\nexport class RestService extends Datasource {\n\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n\n constructor(readonly _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRestService {\n return {\n type: \"rest\",\n id: this.id(),\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n inputs: this.validRequestFields().map(rf => rf.toDDL()),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRestService, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .action(ddl.action)\n .mode(ddl.mode || \"get\")\n .requestFields(ddl.inputs.map(RestField.fromDDL))\n ;\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRestService, skipID = false): RestService {\n return new RestService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n ...more\n });\n }\n\n label(): string {\n return this.action();\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n validRequestFields(): RestField[] {\n return this.requestFields().filter(f => f.valid());\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n const conn = createConnection({ baseUrl: this.url(), type: this.mode() });\n this._prevPromise = this._submitQ.push(conn.send(this.action(), request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRestService.prototype._class += \" RestService\";\n\nexport class RestResult extends Datasource {\n\n _origService;\n\n declare _service: RestService;\n\n constructor(private _ec: ElementContainer) {\n super();\n this._service = new RestService(this._ec);\n }\n\n validRequestFields(): RestField[] {\n return this.service().validRequestFields();\n }\n\n toDDL(): DDL2.IRestService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRestService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RestService, resultName: string): RestResult {\n return new RestResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().action()}}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields().map(rf => rf.toDDL());\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n private _jsonData: object[] = [];\n private jsonDataFields(): DDL2.IField[] {\n if (!this._jsonData || !this._jsonData.length) return [];\n const retVal = rowToFields(this._jsonData[0], this._jsonData);\n this.responseFields(retVal);\n return retVal;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.jsonDataFields();\n }\n\n computeData(): ReadonlyArray<object> {\n return this._jsonData;\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request).then(response => {\n const resultName = this.resultName();\n const resultFields = resultName ? resultName.split(\".\") : [];\n for (const field of resultFields) {\n response = (response || {})[field];\n }\n this._jsonData = response as object[];\n return response;\n });\n }\n\n formatRequest() {\n const request = {};\n this.service().validRequestFields().forEach(f => {\n request[f.fieldID()] = \"\";\n });\n return request;\n }\n\n exec(): Promise<void> {\n return this.submit(this.formatRequest()).then(response => { });\n }\n}\nRestResult.prototype._class += \" RestResult\";\n\nexport class Param extends PropertyExt {\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: \"expected: any value.\"\n });\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRequestField {\n return {\n source: this.source(),\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n value: this.value()\n };\n }\n\n fromDDL(ddl: DDL2.IRequestField): this {\n return this\n .source(ddl.source)\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .value(ddl.value)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRequestField): Param {\n return new Param(ec).fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n label: this.localField(),\n source: this.source(),\n sourceField: this.remoteField()\n });\n }\n\n visualizationIDs() {\n return this._ec.elementIDs();\n }\n\n sourceFields() {\n return this.sourceOutFields().map(field => field.id);\n }\n\n sourceViz(): Element {\n return this._ec.element(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n calcValue(): Array<string | number | boolean> {\n if (this.source_exists() && this.remoteField_exists()) {\n const sourceSelection = this.sourceSelection();\n return sourceSelection.map(row => row[this.remoteField()]);\n } else if (this.value_exists()) {\n return [this.value()];\n }\n return [\"\"];\n }\n\n exists(): boolean {\n return this.localField_exists() && ((this.source_exists() && this.remoteField_exists()) || this.value_exists());\n }\n}\nParam.prototype._class += \" Param\";\n\nexport class RestResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RestResult;\n datasource(_: RestResult): this;\n datasource(_?: RestResult): this | RestResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n action(): string {\n return this.datasource().service().action();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().validRequestFields().map(ff => ff.fieldID()));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return this.datasource().computeFields(inFields);\n }\n\n formatRequest(): { [key: string]: any } {\n const request = this.datasource().formatRequest();\n this.request().forEach(f => {\n if (request[f.localField()] !== undefined) {\n request[f.localField()] = f.calcValue() || request[f.localField()];\n }\n });\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n this._data = this.fixInt64(response);\n return this._data;\n });\n }\n return this._prevRequestPromise;\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRestResultRef.prototype._class += \" RestResultRef\";\n\nexport interface RestField {\n fieldID(): string;\n fieldID(_: string): this;\n}\n\nRestField.prototype.publish(\"fieldID\", \"\", \"string\", \"RestField Label\");\n\nexport interface RestService {\n url(): string;\n url(_: string): this;\n action(): string;\n action(_: string): this;\n mode(): \"get\" | \"post\";\n mode(_: \"get\" | \"post\"): this;\n requestFields(): RestField[];\n requestFields(_: RestField[]): this;\n}\n\nRestService.prototype.publish(\"url\", \"\", \"string\", \"REST Url\");\nRestService.prototype.publish(\"action\", \"\", \"string\", \"Query Set\");\nRestService.prototype.publish(\"mode\", \"get\", \"set\", \"Request mode\", [\"get\", \"post\"]);\nRestService.prototype.publish(\"requestFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: RestField });\n\nexport interface RestResult {\n service(): RestService;\n service(_: RestService): this;\n resultName(): string;\n resultName(_: string): this;\n}\n\nRestResult.prototype.publish(\"service\", null, \"widget\", \"Rest service\");\nRestResult.prototype.publish(\"resultName\", \"\", \"string\", \"Result Name\");\n\nRestResult.prototype._origService = RestResult.prototype.service;\nRestResult.prototype.service = function (this: RestResult, _?) {\n const retVal = RestResult.prototype._origService.apply(this, arguments);\n if (_ !== undefined) {\n this._service.refreshMeta();\n }\n return retVal;\n};\n\nexport interface Param {\n localField(): string;\n localField(_: string): this;\n localField_exists(): boolean;\n source(): string;\n source(_: string): this;\n source_exists(): boolean;\n source_valid(): boolean;\n source_disabled(): boolean;\n remoteField(): string;\n remoteField(_: string): this;\n remoteField_exists(): boolean;\n remoteField_valid(): boolean;\n remoteField_disabled(): boolean;\n value(): string;\n value(_: string): this;\n value_exists(): boolean;\n value_valid(): boolean;\n value_disabled(): boolean;\n}\n\nParam.prototype.publish(\"localField\", null, \"string\", \"Label\");\nParam.prototype.publish(\"source\", null, \"set\", \"Activity\", function (this: Param) { return this.visualizationIDs(); }, {\n optional: true,\n disable: (w: Param): boolean => w.value_exists(),\n validate: (w: Param): boolean => w.source_disabled() || w.visualizationIDs().indexOf(w.source()) >= 0\n});\nParam.prototype.publish(\"remoteField\", null, \"set\", \"Source Field\", function (this: Param) { return this.sourceFields(); }, {\n optional: true,\n disable: (w: Param): boolean => !w.source_exists() || w.value_exists(),\n validate: (w: Param): boolean => w.remoteField_disabled() || w.sourceFields().indexOf(w.remoteField()) >= 0\n});\nParam.prototype.publish(\"value\", null, \"string\", \"Static Value\", null, {\n optional: true,\n disable: (w: Param): boolean => w.source_exists(),\n validate: (w: Param): boolean => w.value_disabled() || w.value_exists()\n});\n\nexport interface RestResultRef {\n request(): Param[];\n request(_: Param[]): this;\n}\n\nRestResultRef.prototype.publish(\"request\", [], \"propertyArray\", \"Request Fields\");\n","import { Query as CommsQuery } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element.ts\";\nimport { IActivityError, ReferencedFields } from \"./activity.ts\";\nimport { Datasource, DatasourceRef } from \"./datasource.ts\";\nimport { Param } from \"./rest.ts\";\n\nfunction parseUrl(_: string): { url: string, querySet: string, queryID: string } {\n // \"http://10.241.100.157:8002/WsEcl/submit/query/roxie/carmigjx_govbisgsavi.Ins4621360_Service_00000006/json\",\n const parts = _.split(\"/WsEcl/submit/query/\");\n if (parts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n const urlParts = parts[0].split(\":\");\n if (urlParts.length < 3) throw new Error(`Invalid roxie URL: ${_}`);\n const roxieParts = parts[1].split(\"/\");\n if (roxieParts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n return {\n url: `${urlParts[0]}:${urlParts[1]}:${urlParts[2] === \"18002\" ? \"18010\" : \"8010\"}`,\n querySet: roxieParts[0],\n queryID: roxieParts[1]\n };\n}\n\nfunction isHipieRequest(requestField: string): boolean {\n return requestField.length >= 8 && requestField.indexOf(\"_changed\") === requestField.length - 8;\n}\n\nfunction isHipieResponse(resultName: string): boolean {\n return (resultName.length >= 8 && resultName.indexOf(\"_changed\") === resultName.length - 8) ||\n ([\"HIPIE_DDL\", \"HIPIE_DDLGLOBALS\", \"hipieversion\"].indexOf(resultName) >= 0)\n ;\n}\n\nexport class RoxieService extends Datasource {\n private _query: CommsQuery;\n private _requestFields: DDL2.IField[];\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n private _type: \"roxie\" | \"hipie\" = \"roxie\";\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return {\n type: this._type,\n id: this.id(),\n url: this.url(),\n querySet: this.querySet(),\n queryID: this.queryID(),\n inputs: this.requestFields(),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): this {\n this._type = ddl.type;\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .querySet(ddl.querySet)\n .queryID(ddl.queryID)\n ;\n if (ddl.inputs && ddl.inputs.length) {\n this.requestFields(ddl.inputs);\n }\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): RoxieService {\n return new RoxieService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n querySet: this.querySet(),\n queryId: this.queryID(),\n ignoreHipieRequest: this.ignoreHipieRequest(),\n ignoreHipieResponse: this.ignoreHipieResponse(),\n ...more\n });\n }\n\n label(): string {\n return this.queryID();\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n const hasMeta = !!this._requestFields;\n this.refreshMetaPromise = new Promise<CommsQuery>((resolve, reject) => {\n const query = CommsQuery.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.querySet(), this.queryID());\n if (!hasMeta || this.ignoreHipieRequest() || this.ignoreHipieResponse()) {\n resolve(query.refresh());\n }\n resolve(query);\n }).then((query) => {\n this._query = query;\n if (!hasMeta || this.ignoreHipieRequest()) {\n this._requestFields = query.requestFields().filter(row => this._type === \"roxie\" || !isHipieRequest(row.id));\n }\n if (!hasMeta || this.ignoreHipieResponse()) {\n query.resultNames().filter(resultName => this._type === \"roxie\" || !isHipieResponse(resultName)).forEach(resultName => {\n this._responseFields[resultName] = query.resultFields(resultName);\n });\n }\n });\n }\n return this.refreshMetaPromise;\n }\n\n requestFields(): DDL2.IField[];\n requestFields(_: DDL2.IField[]): this;\n requestFields(_?: DDL2.IField[]): DDL2.IField[] | this {\n if (!arguments.length) return this._requestFields || [];\n this._requestFields = _;\n return this;\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevPromise = this._submitQ.push(this._query.submit(request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRoxieService.prototype._class += \" RoxieService\";\n\nexport interface RoxieService {\n url(): string;\n url(_: string): this;\n querySet(): string;\n querySet(_: string): this;\n queryID(): string;\n queryID(_: string): this;\n ignoreHipieRequest(): boolean;\n ignoreHipieRequest(_: boolean): this;\n ignoreHipieResponse(): boolean;\n ignoreHipieResponse(_: boolean): this;\n}\n\nRoxieService.prototype.publish(\"url\", \"\", \"string\", \"ESP Url (http://x.x.x.x:8002)\");\nRoxieService.prototype.publish(\"querySet\", \"\", \"string\", \"Query Set\");\nRoxieService.prototype.publish(\"queryID\", \"\", \"string\", \"Query ID\");\nRoxieService.prototype.publish(\"ignoreHipieRequest\", false, \"boolean\", \"Ignore provided DDL request\");\nRoxieService.prototype.publish(\"ignoreHipieResponse\", false, \"boolean\", \"Ignore provided DDL response\");\n\nexport class RoxieResult extends Datasource {\n\n _origService;\n\n declare _service: RoxieService;\n\n constructor(private _ec: ElementContainer) {\n super();\n this._service = new RoxieService(this._ec);\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRoxieService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RoxieService, resultName: string): RoxieResult {\n return new RoxieResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().querySet()}/${this.service().queryID()}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields();\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.service().responseFields(this.resultName());\n }\n\n refreshMeta(): Promise<void> {\n return this.service().refreshMeta();\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request);\n }\n}\nRoxieResult.prototype._class += \" RoxieResult\";\n\nexport interface RoxieResult {\n service(): RoxieService;\n service(_: RoxieService): this;\n resultName(): string;\n resultName(_: string): this;\n}\n\nRoxieResult.prototype.publish(\"service\", null, \"widget\", \"Roxie service\");\nRoxieResult.prototype.publish(\"resultName\", \"\", \"set\", \"Result Name\", function (this: RoxieResult): string[] {\n return this._service !== undefined ? this._service.resultNames() : [];\n});\n\nRoxieResult.prototype._origService = RoxieResult.prototype.service;\nRoxieResult.prototype.service = function (this: RoxieResult, _?) {\n const retVal = RoxieResult.prototype._origService.apply(this, arguments);\n if (_ !== undefined) {\n this._service.refreshMeta();\n }\n return retVal;\n};\n\nexport class RoxieResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RoxieResult;\n datasource(_: RoxieResult): this;\n datasource(_?: RoxieResult): this | RoxieResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n querySet(): string {\n return this.datasource().service().querySet();\n }\n\n queryID(): string {\n return this.datasource().service().queryID();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n params: this.request().map(param => param.hash()),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n localFieldIDs.push(param.localField());\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().requestFields().map(ff => ff.id));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.datasource().responseFields();\n }\n\n formatRequest(): { [key: string]: any } {\n const request: { [key: string]: any } = {};\n let hasRequest = false;\n const fields = this.datasource().requestFields();\n for (const param of this.validParams()) {\n const _value = param.calcValue();\n const field = fields.filter(row => row.id === param.localField())[0];\n let value;\n if (field.type === \"set\") {\n value = {\n Item: _value\n };\n } else {\n value = _value[0];\n }\n if (value !== undefined) {\n request[param.localField()] = value;\n }\n hasRequest = true;\n }\n if (!hasRequest) {\n request.refresh = true;\n }\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n return super.exec().then(() => {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n const resultName = this.datasource().resultName();\n let result = response[resultName];\n if (!result) {\n // See: https://track.hpccsystems.com/browse/HPCC-21176 ---\n // \"Result 1\" => \"result_1\"\n result = response[resultName.toLowerCase().replace(/ /g, \"_\")];\n }\n return this.fixInt64(result);\n });\n }\n return this._prevRequestPromise;\n }).then(data => {\n this._data = data;\n });\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRoxieResultRef.prototype._class += \" RoxieResultRef\";\n\nexport interface RoxieResultRef {\n request(): Param[];\n request(_: Param[]): this;\n}\n\nRoxieResultRef.prototype.publish(\"request\", [], \"propertyArray\", \"Request Fields\");\n\nexport class HipieResultRef extends RoxieResultRef {\n\n fullUrl(_: string): this {\n const info = parseUrl(_);\n this.datasource().service().url(info.url);\n this.datasource().service().querySet(info.querySet);\n this.datasource().service().queryID(info.queryID);\n return this;\n }\n\n formatRequest(): { [key: string]: any } {\n const _request = super.formatRequest();\n const request: { [key: string]: any } = {};\n for (const key in _request) {\n request[key] = _request[key];\n request[`${key}_changed`] = true;\n }\n return request;\n }\n}\nHipieResultRef.prototype._class += \" HipieResultRef\";","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element.ts\";\nimport { ActivitySelection, IActivityError } from \"./activity.ts\";\nimport { Databomb, emptyDatabomb } from \"./databomb.ts\";\nimport { DatasourceRef, DatasourceRefType } from \"./datasource.ts\";\nimport { Form } from \"./form.ts\";\nimport { LogicalFile } from \"./logicalfile.ts\";\nimport { RestResult, RestResultRef } from \"./rest.ts\";\nimport { HipieResultRef, RoxieResult, RoxieService } from \"./roxie.ts\";\nimport { WUResult, WUResultRef } from \"./wuresult.ts\";\n\nlet dsPickerID = 0;\nexport class DSPicker extends ActivitySelection {\n private _nullDatasource = emptyDatabomb;\n\n _origDatasourceID;\n _origDatasourceRef;\n\n declare _datasourceID: string; // DDL2.IDatasourceType;\n declare _datasourceRef: DatasourceRef;\n\n datasource(): DatasourceRefType {\n return this.datasourceRef().datasource();\n }\n\n refreshRef(id: string) {\n const ds: DatasourceRefType = this._ec.datasource(id);\n if (ds instanceof Databomb) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof Form) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof LogicalFile) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof RoxieService) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof WUResult) {\n this.selection(new WUResultRef().datasource(ds));\n } else if (ds instanceof RoxieResult) {\n this.selection(new HipieResultRef(this._ec).datasource(ds));\n } else if (ds instanceof RestResult) {\n this.selection(new RestResultRef(this._ec).datasource(ds));\n }\n }\n\n selection(): DatasourceRef;\n selection(_: DatasourceRef): this;\n selection(_?: DatasourceRef): DatasourceRef | this {\n const retVal = super.selection.apply(this, arguments);\n if (!arguments.length) return retVal || this._nullDatasource;\n if (this._datasourceID !== _.datasource().id()) {\n this._datasourceID = _.datasource().id();\n }\n return this;\n }\n\n validate(): IActivityError[] {\n return this.selection().validate();\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._id = `ds_${++dsPickerID}`;\n const ds = this._ec.datasources()[0];\n this.datasourceID(ds.id());\n }\n\n toDDL(): DDL2.IDatasourceRef {\n return {\n ...this.datasourceRef().toDDL(),\n id: this.datasourceID()\n };\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n ...more\n });\n }\n\n datasourceIDs() {\n return this._ec.datasources().map(ds => {\n return {\n value: ds.id(),\n text: `${ds.label()} ${ds.id() !== ds.label() ? ` (${ds.id()})` : \"\"}`\n };\n });\n }\n}\nDSPicker.prototype._class += \" DSPicker\";\n\nexport interface DSPicker {\n datasourceID(): string;\n datasourceID(_: string): this;\n datasourceRef(): DatasourceRef;\n datasourceRef(_: DatasourceRef): this;\n}\n\nDSPicker.prototype.publish(\"datasourceID\", \"\", \"set\", \"Activity\", function (this: DSPicker) { return this.datasourceIDs(); }, { optional: false });\nDSPicker.prototype.publish(\"datasourceRef\", \"\", \"widget\", \"Activity\");\n\nDSPicker.prototype._origDatasourceID = DSPicker.prototype.datasourceID;\nDSPicker.prototype.datasourceID = function (this: DSPicker, _?) {\n const prev = this._datasourceID;\n const retVal = DSPicker.prototype._origDatasourceID.apply(this, arguments);\n if (_ !== undefined && prev !== _) {\n this.refreshRef(_);\n }\n return retVal;\n};\n\nDSPicker.prototype._origDatasourceRef = DSPicker.prototype.datasourceRef;\nDSPicker.prototype.datasourceRef = function (this: DSPicker, _?) {\n return ActivitySelection.prototype.selection.apply(this, arguments);\n};","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element.ts\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity.ts\";\n\nfunction createFilter(condition: DDL2.IMappingConditionType, lf: string, val: string | number): (localRow: any) => boolean {\n const isString = typeof val === \"string\";\n switch (condition) {\n case \"==\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() === val : localRow[lf] === val;\n case \"!=\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() !== val : localRow[lf] !== val;\n case \"<\":\n return (localRow) => localRow[lf] < val;\n case \"<=\":\n return (localRow) => localRow[lf] <= val;\n case \">\":\n return (localRow) => localRow[lf] > val;\n case \">=\":\n return (localRow) => localRow[lf] >= val;\n default:\n throw new Error(`Unknown filter condition: ${condition}`);\n }\n}\n\nexport class ColumnMapping extends PropertyExt {\n private _owner: RemoteFilter;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): RemoteFilter;\n owner(_: RemoteFilter): this;\n owner(_?: RemoteFilter): RemoteFilter | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() || this.remoteField_exists();\n }\n\n toDDL(): DDL2.IMapping {\n return {\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n };\n }\n\n fromDDL(ddl: DDL2.IMapping): this {\n return this\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .nullable(ddl.nullable)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapping): ColumnMapping {\n return new ColumnMapping().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n remoteField: this.remoteField(),\n localField: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n sourceOutFields(): string[] {\n return this._owner.sourceOutFields().map(field => field.id);\n }\n\n remoteValues(filterSelection: any[]): Array<number | string> {\n const rf = this.remoteField();\n return filterSelection.map(sel => {\n const retVal = sel[rf];\n if (typeof retVal === \"string\") {\n return retVal.trim();\n }\n return retVal;\n });\n }\n\n createFilterDescription(filterSelection: any[]): string {\n switch (this.condition()) {\n case \"in\":\n case \"range\":\n return `${this.localField()} ${this.condition()} [${this.remoteValues(filterSelection).join(\", \")}]`;\n default:\n return `${this.localField()} ${this.condition()} ${this.remoteValues(filterSelection)[0]}`;\n }\n }\n\n createFilter(filterSelection: any[]): (localRow: any) => boolean {\n const lf = this.localField();\n const fsArr = this.remoteValues(filterSelection);\n switch (this.condition()) {\n case \"range\":\n if (this.nullable() && (fsArr.length < 2 || fsArr[0] === fsArr[1])) {\n return (localRow) => true;\n }\n return (localRow) => localRow[lf] >= fsArr[0] && localRow[lf] <= fsArr[1];\n case \"in\":\n if (this.nullable() && fsArr.length === 0) {\n return (localRow) => true;\n }\n return (localRow) => fsArr.some(fs => typeof localRow[lf] === \"string\" ? localRow[lf].trim() === fs : localRow[lf] === fs);\n default:\n const fs0 = fsArr[0];\n if (this.nullable() && (fs0 === undefined || fs0 === null || fs0 === \"\")) {\n return (localRow) => true;\n }\n return createFilter(this.condition(), lf, fs0);\n }\n }\n}\nColumnMapping.prototype._class += \" ColumnMapping\";\n\nexport interface ColumnMapping {\n remoteField(): string;\n remoteField(_: string): this;\n remoteField_exists(): boolean;\n remoteField_valid(): boolean;\n localField(): string;\n localField(_: string): this;\n localField_exists(): boolean;\n localField_valid(): boolean;\n condition(): DDL2.IMappingConditionType;\n condition(_: DDL2.IMappingConditionType): this;\n nullable(): boolean;\n nullable(_: boolean): this;\n}\n\nexport class RemoteFilter extends PropertyExt {\n private _owner: Filters;\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (this.source_exists() && this.validMappings().length === 0) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid mappings: \"${this.source()}\"`,\n hint: \"expected minimum of 1 mapping\"\n });\n }\n for (const mapping of this.validMappings()) {\n retVal = retVal.concat(mapping.validate(`${prefix}.${this.source()}.mappings`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.source() && this.validMappings().length > 0;\n }\n\n toDDL(): DDL2.IFilterCondition {\n return {\n viewID: this.source(),\n mappings: this.ddlMappings()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterCondition): this {\n return this\n .source(ddl.viewID)\n .ddlMappings(ddl.mappings)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterCondition): RemoteFilter {\n return new RemoteFilter().fromDDL(ddl);\n }\n\n ddlMappings(): DDL2.IMapping[];\n ddlMappings(_: DDL2.IMapping[]): this;\n ddlMappings(_?: DDL2.IMapping[]): DDL2.IMapping[] | this {\n if (!arguments.length) return this.validMappings().map(mapping => mapping.toDDL());\n this.mappings(_.map(mapping => ColumnMapping.fromDDL(mapping)));\n return this;\n }\n\n visualizationIDs() {\n return this._owner.visualizationIDs();\n }\n\n hash(): string {\n return hashSum({\n source: this.source(),\n mappings: this.validMappings().map(mapping => mapping.hash()),\n selection: this.sourceSelection()\n });\n }\n\n validMappings(): ColumnMapping[] {\n return this.mappings().filter(mapping => mapping.valid());\n }\n\n appendMappings(mappings: Array<{ remoteField: string, localField: string, condition: DDL2.IMappingConditionType }>): this {\n for (const mapping of mappings) {\n this.mappings().push(new ColumnMapping()\n .owner(this)\n .remoteField(mapping.remoteField)\n .localField(mapping.localField)\n .condition(mapping.condition)\n );\n }\n return this;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._owner.inFields();\n }\n\n sourceViz(): Element {\n return this._owner.visualization(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n createFilter(): (localRow: any) => boolean {\n const selection = this.sourceSelection();\n const mappingFilters = this.validMappings().map(mapping => mapping.createFilter(selection));\n return (row: object): boolean => mappingFilters.every(mappingFilter => mappingFilter(row));\n }\n\n createFilterDescription(): string {\n const selection = this.sourceSelection();\n const mappingFilterDescs = this.validMappings().map(mapping => mapping.createFilterDescription(selection));\n return mappingFilterDescs.join(\", \");\n }\n}\nRemoteFilter.prototype._class += \" Filter\";\n\nexport interface RemoteFilter {\n source(): string;\n source(_: string): this;\n source_exists(): boolean;\n source_valid(): boolean;\n mappings(): ColumnMapping[];\n mappings(_: ColumnMapping[]): this;\n}\n\nexport class StaticFilter extends PropertyExt {\n private _owner: Filters;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n coerceValue(): string | number;\n coerceValue(_: string | number): this;\n coerceValue(_?: string | number): string | number | this {\n if (arguments.length === 0) {\n switch (this.valueType()) {\n case \"number\":\n return +this.value();\n case \"string\":\n default:\n return \"\" + this.value();\n }\n }\n this.value(_);\n if (typeof _ === \"number\") {\n this.valueType(\"number\");\n } else {\n this.valueType(\"string\");\n }\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() && this.value_exists();\n }\n\n toDDL(): DDL2.IFilterStaticCondition {\n return {\n localFieldID: this.localField(),\n condition: this.condition(),\n value: this.coerceValue()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterStaticCondition): this {\n return this\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .coerceValue(ddl.value)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterStaticCondition): StaticFilter {\n return new StaticFilter().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n localField: this.localField(),\n condition: this.condition(),\n value: this.value(),\n valueType: this.valueType()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n createFilterDescription(): string {\n return `${this.localField()} ${this.condition()} ${this.coerceValue()}`;\n }\n\n createFilter(): (localRow: any) => boolean {\n return createFilter(this.condition(), this.localField(), this.coerceValue());\n }\n}\nStaticFilter.prototype._class += \" StaticFilter\";\n\nexport interface StaticFilter {\n localField(): string;\n localField(_: string): this;\n localField_exists(): boolean;\n localField_valid(): boolean;\n condition(): DDL2.IMappingConditionType;\n condition(_: DDL2.IMappingConditionType): this;\n value(): string | number | boolean;\n value(_: string | number | boolean): this;\n value_exists(): boolean;\n value_valid(): boolean;\n valueType(): \"number\" | \"string\";\n valueType(_: \"number\" | \"string\"): this;\n}\n\ntype FilterT = RemoteFilter | StaticFilter;\n\nexport class Filters extends Activity {\n static Filter = RemoteFilter;\n static Mapping = ColumnMapping;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validFilters()) {\n retVal = retVal.concat(filter.validate(\"filter\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IFilter {\n return {\n type: \"filter\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.IFilter): this {\n return this\n .conditions(ddl.conditions)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IFilter): Filters {\n return new Filters(ec).fromDDL(ddl);\n }\n\n conditions(): DDL2.FilterCondition[];\n conditions(_: DDL2.FilterCondition[]): this;\n conditions(_?: DDL2.FilterCondition[]): DDL2.FilterCondition[] | this {\n if (!arguments.length) return this.validFilters().map(filter => filter.toDDL());\n const remoteFilters: RemoteFilter[] = [];\n const staticFilters: StaticFilter[] = [];\n _.forEach(fc => {\n if (DDL2.isIFilterCondition(fc)) {\n remoteFilters.push(RemoteFilter.fromDDL(fc));\n } else {\n staticFilters.push(StaticFilter.fromDDL(fc));\n }\n });\n this.remoteFilter(remoteFilters);\n this.staticFilter(staticFilters);\n return this;\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs();\n }\n\n visualization(sourceID: string | PropertyExt): Element {\n return this._ec.element(sourceID);\n }\n\n // Activity overrides ---\n hash(): string {\n return hashSum(this.validFilters().map(f => {\n return {\n filter: f.hash()\n };\n }));\n }\n\n exists(): boolean {\n return this.validFilters().length > 0;\n }\n\n updatedBy(): string[] {\n return this.validRemoteFilters().map(filter => filter.source());\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const filter of this.validRemoteFilters()) {\n const filterSource = filter.sourceViz().hipiePipeline();\n const remoteFieldIDs: string[] = [];\n for (const mapping of filter.validMappings()) {\n localFieldIDs.push(mapping.localField());\n remoteFieldIDs.push(mapping.remoteField());\n }\n filterSource.resolveFields(refs, remoteFieldIDs);\n }\n super.resolveInFields(refs, localFieldIDs);\n }\n\n exec(): Promise<void> {\n return super.exec();\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const filters = this.validFilters().map(filter => filter.createFilter());\n return data.filter(row => {\n return filters.every(filter => filter(row));\n });\n }\n\n // --- --- ---\n validRemoteFilters(): RemoteFilter[] {\n return this.remoteFilter().filter(filter => filter.valid());\n }\n\n validStaticFilters(): StaticFilter[] {\n return this.staticFilter().filter(filter => filter.valid());\n }\n\n validFilters(): FilterT[] {\n return [...this.validRemoteFilters(), ...this.validStaticFilters()];\n }\n}\nFilters.prototype._class += \" Filters\";\n\nexport interface Filters {\n remoteFilter(): RemoteFilter[];\n remoteFilter(_: RemoteFilter[]): this;\n staticFilter(): StaticFilter[];\n staticFilter(_: StaticFilter[]): this;\n}\n\nColumnMapping.prototype.publish(\"remoteField\", null, \"set\", \"Filter Fields\", function (this: ColumnMapping) { return this.sourceOutFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w[\"_owner\"].source(),\n validate: (w: ColumnMapping): boolean => w.sourceOutFields().indexOf(w.remoteField()) >= 0\n});\nColumnMapping.prototype.publish(\"localField\", null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w[\"_owner\"].source(),\n validate: (w: ColumnMapping): boolean => w.localFields().indexOf(w.localField()) >= 0\n});\nColumnMapping.prototype.publish(\"condition\", \"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\", \"range\", \"in\"]);\nColumnMapping.prototype.publish(\"nullable\", false, \"boolean\", \"Ignore null filters\");\n\nRemoteFilter.prototype.publish(\"source\", null, \"set\", \"Activity\", function (this: RemoteFilter) { return this.visualizationIDs(); }, {\n optional: true,\n validate: (w: RemoteFilter): boolean => w.visualizationIDs().indexOf(w.source()) >= 0\n});\nRemoteFilter.prototype.publish(\"mappings\", [], \"propertyArray\", \"Mappings\", null, { autoExpand: ColumnMapping });\n\nStaticFilter.prototype.publish(\"localField\", null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n validate: (w: StaticFilter): boolean => w.localFields().indexOf(w.localField()) >= 0\n});\nStaticFilter.prototype.publish(\"condition\", \"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\"]);\nStaticFilter.prototype.publish(\"value\", \"\", \"any\", \"Static Value\");\nStaticFilter.prototype.publish(\"valueType\", \"number\", \"set\", \"Static Value Type\", [\"number\", \"string\"]);\n\nFilters.prototype.publish(\"remoteFilter\", [], \"propertyArray\", \"Remote Filter\", null, { autoExpand: RemoteFilter });\nFilters.prototype.publish(\"staticFilter\", [], \"propertyArray\", \"Static Filter\", null, { autoExpand: StaticFilter });","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { deviation as d3Deviation, max as d3Max, mean as d3Mean, median as d3Median, min as d3Min, sum as d3Sum, variance as d3Variance } from \"d3-array\";\nimport { nest as d3Nest } from \"d3-collection\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity.ts\";\n\nexport class GroupByColumn extends PropertyExt {\n private _owner: GroupBy;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.label_valid()) {\n retVal.push({\n source: `${prefix}.label`,\n msg: `Invalid label: \"${this.label()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n toDDL(): string {\n return this.label();\n }\n\n fromDDL(label: string): this {\n return this\n .label(label)\n ;\n }\n\n static fromDDL(label: string): GroupByColumn {\n return new GroupByColumn().fromDDL(label);\n }\n\n hash(): string {\n return hashSum(this.label());\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n}\nGroupByColumn.prototype._class += \" GroupByColumn\";\n\nexport interface GroupByColumn {\n label(): string;\n label(_: string): this;\n label_valid(): boolean;\n}\n\n// ===========================================================================\nexport type AggrFuncCallback = (item: any) => number;\nexport type AggrFunc = (leaves: any[], callback: AggrFuncCallback) => number;\nfunction localCount(leaves: any[], callback: AggrFuncCallback): number {\n return leaves.length;\n}\n\nconst d3Aggr: { [key: string]: AggrFunc } = {\n count: localCount,\n min: d3Min,\n max: d3Max,\n mean: d3Mean,\n median: d3Median,\n variance: d3Variance,\n deviation: d3Deviation,\n sum: d3Sum\n};\n\nexport type AggregateType = \"count\" | \"min\" | \"max\" | \"sum\" | \"mean\" | \"median\" | \"variance\" | \"deviation\";\nexport class AggregateField extends PropertyExt {\n private _owner: GroupBy;\n\n disableAggrColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() === \"count\";\n }\n\n disableBaseCountColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() !== \"mean\";\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.aggrColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid aggrColumn: \"${this.aggrColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.baseCountColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid baseCountColumn: \"${this.baseCountColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.IAggregate | DDL2.ICount {\n if (this.aggrType() === \"count\") {\n return {\n fieldID: this.fieldID(),\n type: \"count\"\n };\n }\n return {\n fieldID: this.fieldID(),\n type: this.aggrType() as DDL2.IAggregateType,\n inFieldID: this.aggrColumn(),\n baseCountFieldID: this.baseCountColumn()\n };\n }\n\n fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): this {\n const retVal = this\n .fieldID(ddl.fieldID)\n .aggrType(ddl.type)\n ;\n if (ddl.type !== \"count\") {\n retVal.aggrColumn(ddl.inFieldID);\n retVal.baseCountColumn(ddl.baseCountFieldID);\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): AggregateField {\n return new AggregateField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n label: this.fieldID(),\n aggrType: this.aggrType(),\n aggrColumn: this.aggrColumn()\n });\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n\n hasColumn() {\n return this.columns().length;\n }\n\n aggregate(values: Array<{ [key: string]: any }>) {\n return d3Aggr[this.aggrType() as string](values, leaf => +leaf[this.aggrColumn()]);\n }\n\n aggrFunc(): (leaves: any[]) => number {\n const aggrFunc = d3Aggr[this.aggrType() as string];\n const aggrColumn = this.aggrColumn();\n const baseCountColumn = this.baseCountColumn();\n if (baseCountColumn) {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn] / +leaf[baseCountColumn]);\n };\n } else {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn]);\n };\n }\n }\n}\nAggregateField.prototype._class += \" AggregateField\";\n\nexport interface AggregateField {\n fieldID(): string;\n fieldID(_: string): this;\n aggrType(): AggregateType;\n aggrType(_: AggregateType): this;\n aggrColumn(): string;\n aggrColumn(_: string): this;\n aggrColumn_valid(): boolean;\n baseCountColumn(): string;\n baseCountColumn(_: string): this;\n baseCountColumn_valid(): boolean;\n}\n\n// ===========================================================================\nexport class GroupBy extends Activity {\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const gbColumn of this.validGroupBy()) {\n retVal = retVal.concat(gbColumn.validate(\"GroupBy.column\"));\n }\n for (const cfs of this.validComputedFields()) {\n retVal = retVal.concat(cfs.validate(\"GroupBy.computedFields\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IGroupBy {\n return {\n type: \"groupby\",\n groupByIDs: this.fieldIDs(),\n aggregates: this.aggregates()\n };\n }\n\n fromDDL(ddl: DDL2.IGroupBy): this {\n return this\n .fieldIDs(ddl.groupByIDs)\n .aggregates(ddl.aggregates)\n ;\n }\n\n static fromDDL(ddl: DDL2.IGroupBy): GroupBy {\n return new GroupBy().fromDDL(ddl);\n }\n\n fieldIDs(): string[];\n fieldIDs(_: string[]): this;\n fieldIDs(_?: string[]): string[] | this {\n if (!arguments.length) return this.validGroupBy().map(gb => gb.toDDL());\n this.column(_.map(fieldID => GroupByColumn.fromDDL(fieldID)));\n return this;\n }\n\n aggregates(): DDL2.AggregateType[];\n aggregates(_: DDL2.AggregateType[]): this;\n aggregates(_?: DDL2.AggregateType[]): DDL2.AggregateType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(aggrType => AggregateField.fromDDL(aggrType)));\n return this;\n }\n\n // Activity\n hash(): string {\n return hashSum({\n groupBy: this.column().map(gb => gb.hash()),\n computedFields: this.computedFields().map(cf => cf.hash())\n });\n }\n\n appendGroupBys(columns: [{ field: string }]): this {\n for (const column of columns) {\n this.column().push(new GroupByColumn()\n .owner(this)\n .label(column.field)\n );\n }\n return this;\n }\n\n validGroupBy(): GroupByColumn[] {\n return this.column().filter(groupBy => groupBy.valid());\n }\n\n exists(): boolean {\n return this.validGroupBy().length > 0;\n }\n\n inFieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n\n appendComputedFields(aggregateFields: [{ label: string, type: AggregateType, column?: string }]): this {\n for (const aggregateField of aggregateFields) {\n const aggrField = new AggregateField()\n .owner(this)\n .fieldID(aggregateField.label)\n .aggrType(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.aggrColumn(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n const retVal: DDL2.IField[] = [];\n const groups: GroupByColumn[] = this.validGroupBy();\n for (const groupBy of groups) {\n const groupByField = this.field(groupBy.label());\n const field = {\n type: groupByField ? groupByField.type : \"string\",\n id: groupBy.label()\n } as DDL2.IField;\n retVal.push(field);\n }\n for (const cf of this.computedFields()) {\n if (cf.fieldID()) {\n const computedField: DDL2.IField = {\n id: cf.fieldID(),\n type: \"number\"\n };\n retVal.push(computedField);\n }\n }\n if (this.details()) {\n let detailsTarget: DDL2.IField[] = retVal;\n if (this.exists()) {\n const rows: DDL2.IField = {\n id: \"values\",\n type: \"dataset\",\n children: []\n };\n retVal.push(rows);\n detailsTarget = rows.children;\n }\n const columns = groups.map(groupBy => groupBy.label());\n detailsTarget.push(...this.inFields().filter(field => {\n return this.fullDetails() || columns.indexOf(field.id) < 0;\n }));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const gb of this.validGroupBy()) {\n fieldIDs.push(gb.label());\n }\n for (const cf of this.validComputedFields()) {\n if (cf.aggrColumn()) {\n fieldIDs.push(cf.aggrColumn());\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const columnLabels: string[] = this.validGroupBy().map(gb => gb.label());\n const computedFields = this.validComputedFields().map(cf => {\n return { label: cf.fieldID(), aggrFunc: cf.aggrFunc() };\n });\n const retVal = d3Nest()\n .key((row: { [key: string]: any }) => {\n let key = \"\";\n for (const groupByLabel of columnLabels) {\n key += \":\" + row[groupByLabel];\n }\n return key;\n })\n .entries(data as object[]).map(_row => {\n const row: {\n [key: string]: any\n } = _row;\n delete row.key;\n for (const groupByLabel of columnLabels) {\n row[groupByLabel] = row.values[0][groupByLabel];\n }\n for (const cf of computedFields) {\n row[cf.label] = cf.aggrFunc(row.values);\n }\n return row;\n })\n ;\n const outFields = this.outFields();\n return retVal.map(row => {\n const retVal = {};\n for (const field of outFields) {\n retVal[field.id] = row[field.id];\n }\n return retVal;\n });\n }\n}\nGroupBy.prototype._class += \" GroupBy\";\n\nexport interface GroupBy {\n column(): GroupByColumn[];\n column(_: GroupByColumn[]): this;\n computedFields(): AggregateField[];\n computedFields(_: AggregateField[]): this;\n details(): boolean;\n details(_: boolean): this;\n fullDetails(): boolean;\n fullDetails(_: boolean): this;\n}\n\nGroupByColumn.prototype.publish(\"label\", undefined, \"set\", \"Field\", function (this: GroupByColumn) { return this.columns(); }, {\n optional: true,\n validate: (w: GroupByColumn): boolean => w.columns().indexOf(w.label()) >= 0\n });\n\nAggregateField.prototype.publish(\"fieldID\", null, \"string\", \"new Field ID\", null, { optional: true, disable: (w: AggregateField) => !w.hasColumn() });\nAggregateField.prototype.publish(\"aggrType\", \"count\", \"set\", \"Aggregation Type\", [\"count\", \"min\", \"max\", \"sum\", \"mean\", \"median\", \"variance\", \"deviation\"], { optional: true, disable: (w: AggregateField) => !w.fieldID() });\nAggregateField.prototype.publish(\"aggrColumn\", null, \"set\", \"Aggregation Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableAggrColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.aggrColumn()) >= 0\n });\nAggregateField.prototype.publish(\"baseCountColumn\", null, \"set\", \"Base Count Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableBaseCountColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.baseCountColumn()) >= 0\n });\n\nGroupBy.prototype.publish(\"column\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: GroupByColumn });\nGroupBy.prototype.publish(\"computedFields\", [], \"propertyArray\", \"Computed Fields\", null, { autoExpand: AggregateField });\nGroupBy.prototype.publish(\"details\", false, \"boolean\", \"Show details\");\nGroupBy.prototype.publish(\"fullDetails\", false, \"boolean\", \"Show groupBy fileds in details\");","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Activity } from \"./activity.ts\";\n\nexport class Limit extends Activity {\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ILimit {\n return {\n type: \"limit\",\n limit: this.rows()\n };\n }\n\n fromDDL(ddl: DDL2.ILimit): this {\n return this\n .rows(ddl.limit)\n ;\n }\n\n static fromDDL(ddl: DDL2.ILimit): Limit {\n return new Limit().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n limit: this.rows()\n });\n }\n\n exists(): boolean {\n return this.rows_exists() && this.rows() > 0;\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.slice(0, Math.min(this.rows(), data.length));\n }\n}\nLimit.prototype._class += \" Limit\";\n\nexport interface Limit {\n rows(): number | undefined;\n rows(_: number | undefined): this;\n rows_exists(): boolean;\n}\nLimit.prototype.publish(\"rows\", undefined, \"number\", \"Limit output\");","import { PropertyExt, Utility } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity.ts\";\n\nexport class ComputedMapping extends PropertyExt {\n protected _owner: ComputedField;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n if (!this.newValue_valid()) {\n retVal.push({\n source: `${prefix}.newValue`,\n msg: `Invalid value: \"${this.newValue()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): ComputedField;\n owner(_: ComputedField): this;\n owner(_?: ComputedField): ComputedField | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.value() && !!this.newValue();\n }\n\n toDDL(): DDL2.IMapMapping {\n return {\n value: this.value(),\n newValue: this.newValue()\n };\n }\n\n fromDDL(ddl: DDL2.IMapMapping): this {\n return this\n .value(ddl.value)\n .newValue(ddl.newValue)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapMapping): ComputedMapping {\n return new ComputedMapping().fromDDL(ddl);\n }\n}\nComputedMapping.prototype._class += \" ComputedMapping\";\n\nexport interface ComputedMapping {\n value(): any;\n value(_: any): this;\n value_valid(): boolean;\n newValue(): any;\n newValue(_: any): this;\n newValue_valid(): boolean;\n}\n\nexport type ComputedType = \"=\" | \"*\" | \"/\" | \"+\" | \"-\" | \"scale\" | \"template\" | \"map\";\n\nexport interface IComputedFieldOwner extends PropertyExt {\n fieldIDs(): string[];\n field(fieldID: string): DDL2.IField | null;\n}\n\nexport class ComputedField extends PropertyExt {\n private _owner: IComputedFieldOwner;\n\n disableColumn1(): boolean {\n return !this.label() || [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"map\"].indexOf(this.type()) < 0;\n }\n\n disableColumn2(): boolean {\n return !this.label() || [\"*\", \"/\", \"+\", \"-\"].indexOf(this.type()) < 0;\n }\n\n disableMapping(): boolean {\n return !this.label() || [\"map\"].indexOf(this.type()) < 0;\n }\n\n disableChildField(): boolean {\n return !this.hasChildren();\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.column1_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column1: \"${this.column1()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.column2_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column2: \"${this.column2()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.disableMapping()) {\n this.validComputedMappings().forEach(cm => cm.validate(`${prefix}.mapping`));\n }\n if (!this.disableChildField()) {\n this.validChildFields().forEach(cf => cf.validate(`${prefix}.childField`));\n }\n return retVal;\n }\n\n hasChildren() {\n if (!this.label()) return false;\n if (this.type() !== \"=\") return false;\n if (!this.column1()) return false;\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\" && field.children) {\n return true;\n }\n return false;\n }\n\n children(): DDL2.IField[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\") {\n return field.children;\n }\n return [];\n }\n\n constructor() {\n super();\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n validComputedMappings(): ComputedMapping[] {\n return this.mapping().filter(cf => cf.valid());\n }\n\n validChildFields() {\n return this.childField().filter(cf => cf.valid());\n }\n\n hasChildFields() {\n return this.validChildFields().length;\n }\n\n toDDL(): DDL2.MultiTransformationType {\n switch (this.type()) {\n case \"scale\":\n return {\n fieldID: this.label(),\n type: \"scale\",\n sourceFieldID: this.column1(),\n factor: this.constValue()\n };\n case \"template\":\n return {\n fieldID: this.label(),\n type: \"template\",\n template: this.template()\n };\n case \"=\":\n const transformations = this.validChildFields().map(cf => cf.toDDL());\n return {\n fieldID: this.label(),\n type: \"=\",\n sourceFieldID: this.column1(),\n transformations: transformations.length ? transformations : undefined\n };\n case \"map\":\n return {\n fieldID: this.label(),\n type: \"map\",\n sourceFieldID: this.column1(),\n default: this.default(),\n mappings: this.validComputedMappings().map(cm => cm.toDDL())\n };\n default:\n return {\n fieldID: this.label(),\n type: this.type() as DDL2.ICalculatedType,\n sourceFieldID1: this.column1(),\n sourceFieldID2: this.column2()\n };\n }\n }\n\n fromDDL(ddl: DDL2.MultiTransformationType): this {\n const retVal = this\n .label(ddl.fieldID)\n .type(ddl.type)\n ;\n switch (ddl.type) {\n case \"scale\":\n retVal\n .column1(ddl.sourceFieldID)\n .constValue(ddl.factor)\n ;\n break;\n case \"template\":\n retVal\n .template(ddl.template)\n ;\n break;\n case \"=\":\n retVal\n .column1(ddl.sourceFieldID)\n .childField(ddl.transformations ? ddl.transformations.map(transformation => ComputedField.fromDDL(transformation)) : [])\n ;\n break;\n case \"map\":\n retVal\n .column1(ddl.sourceFieldID)\n .default(ddl.default)\n .mapping(ddl.mappings ? ddl.mappings.map(mapping => ComputedMapping.fromDDL(mapping)) : [])\n ;\n break;\n default:\n retVal\n .column1(ddl.sourceFieldID1)\n .column2(ddl.sourceFieldID2)\n ;\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.MultiTransformationType): ComputedField {\n return new ComputedField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum(this.toDDL());\n }\n\n columns(): string[] {\n return this._owner.fieldIDs();\n }\n\n computedField(): DDL2.IField {\n switch (this.type()) {\n case \"=\":\n let validChildFields = this.validChildFields();\n if (validChildFields.length === 0 && this.hasChildren()) {\n // Has children but no mappings - include all children by default...\n validChildFields = this.children().map((child: DDL2.IField) => {\n return new ComputedField()\n .owner(this)\n .label(child.id)\n .type(\"=\")\n .column1(child.id)\n ;\n });\n }\n return {\n ...this._owner.field(this.column1()),\n id: this.label(),\n children: validChildFields.length ? validChildFields.map(cf => cf.computedField()) : undefined\n } as DDL2.IField;\n case \"*\":\n case \"/\":\n case \"+\":\n case \"-\":\n case \"scale\":\n return { id: this.label(), type: \"number\" };\n case \"template\":\n return { id: this.label(), type: \"string\" };\n case \"map\":\n return { id: this.label(), type: \"object\" } as DDL2.IFieldObject;\n }\n return { id: this.label(), type: \"string\" };\n }\n\n projection(trim: boolean): (row: object) => object {\n const hasComputedFields = this.hasChildFields();\n const computedFields = this.validChildFields().map(cf => {\n return {\n label: cf.label(),\n func: cf.computeFunc(trim)\n };\n });\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n retVal[\"__lparam\"] = row;\n }\n return retVal;\n };\n }\n\n computeFunc(trim: boolean): (row: any) => any {\n const column1 = this.column1();\n const column2 = this.column2();\n switch (this.type()) {\n case \"=\":\n if (this.hasChildFields()) {\n return (row: object) => {\n // TODO Move to function factory ---\n const r = row[column1].Row && isArray(row[column1].Row) ? row[column1].Row : row[column1];\n return r.map(this.projection(trim));\n };\n }\n return (row: object) => {\n return row[column1];\n };\n case \"*\":\n return (row: any) => {\n return +row[column1] * +row[column2];\n };\n case \"/\":\n return (row: any) => {\n return +row[column1] / +row[column2];\n };\n case \"+\":\n return (row: any) => {\n return +row[column1] + +row[column2];\n };\n case \"-\":\n return (row: any) => {\n return +row[column1] - +row[column2];\n };\n case \"scale\":\n const constValue = this.constValue();\n return (row: any) => {\n return +row[column1] * constValue;\n };\n case \"template\":\n const template = this.template();\n return (row: any) => {\n return Utility.template(template, row);\n };\n case \"map\":\n const defValue = this.default();\n const mappings = {};\n for (const mapping of this.mapping()) {\n mappings[mapping.value()] = mapping.newValue();\n }\n return (row: any) => {\n return mappings[row[column1]] || defValue;\n };\n default:\n return (row: any) => {\n return row[column1];\n };\n }\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n return field.children.map(field => field.id);\n case \"object\":\n return Object.keys(field.fields);\n }\n }\n return [];\n }\n\n field(fieldID: string): DDL2.IField | undefined {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n for (const f of field.children) {\n if (f.id === fieldID) {\n return f;\n }\n }\n break;\n case \"object\":\n return field.fields[fieldID];\n }\n }\n return undefined;\n }\n}\nComputedField.prototype._class += \" ComputedField\";\n\nexport interface ComputedField {\n label(): string;\n label(_: string): this;\n type(): ComputedType;\n type(_: ComputedType): this;\n column1(): string;\n column1(_: string): this;\n column1_valid(): boolean;\n column2(): string;\n column2(_: string): this;\n column2_valid(): boolean;\n constValue(): number;\n constValue(_: number): this;\n template(): string;\n template(_: string): this;\n default(): any;\n default(_: any): this;\n mapping(): ComputedMapping[];\n mapping(_: ComputedMapping[]): this;\n childField(): ComputedField[];\n childField(_: ComputedField[]): this;\n}\n\n// ===========================================================================\nexport class MultiField extends PropertyExt implements IComputedFieldOwner {\n private _owner: IComputedFieldOwner;\n\n constructor() {\n super();\n }\n\n hash() {\n return hashSum(this.toDDL());\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label() && this.validMultiFields().length > 0;\n }\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validMultiFields()) {\n retVal = retVal.concat(cf.validate(`${prefix}.computedFields`));\n }\n return retVal;\n }\n\n toDDL(): DDL2.IMulti {\n return {\n fieldID: this.label(),\n type: \"multi\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IMulti): this {\n return this\n .label(ddl.fieldID)\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMulti): MultiField {\n return new MultiField().fromDDL(ddl);\n }\n\n validMultiFields(): ComputedField[] {\n return this.multiFields().filter(computedField => computedField.valid());\n }\n\n transformations(): DDL2.MultiTransformationType[];\n transformations(_: DDL2.MultiTransformationType[]): this;\n transformations(_?: DDL2.MultiTransformationType[]): DDL2.MultiTransformationType[] | this {\n if (!arguments.length) return this.validMultiFields().map(cf => cf.toDDL());\n this.multiFields(_.map(transformation => ComputedField.fromDDL(transformation)));\n return this;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this._owner.fieldIDs();\n }\n\n field(fieldID: string): DDL2.IField | null {\n return this._owner.field(fieldID);\n }\n}\nMultiField.prototype._class += \" MultiField\";\n\nexport interface MultiField {\n label(): string;\n label(_: string): this;\n multiFields(): ComputedField[];\n multiFields(_: ComputedField[]): this;\n}\n\n// ===========================================================================\nexport class ProjectBase extends Activity {\n static ComputedField = ComputedField;\n\n _includeLParam = false;\n _trim = false;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validComputedFields()) {\n retVal = retVal.concat(cf.validate(`${this.classID()}.computedFields`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n transformations(): DDL2.ProjectTransformationType[];\n transformations(_: DDL2.ProjectTransformationType[]): this;\n transformations(_?: DDL2.ProjectTransformationType[]): DDL2.ProjectTransformationType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(transformation => {\n switch (transformation.type) {\n case \"multi\":\n return MultiField.fromDDL(transformation);\n default:\n return ComputedField.fromDDL(transformation);\n }\n }));\n return this;\n }\n\n exists(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n // ---\n\n clearComputedFields() {\n this.computedFields([]);\n }\n\n appendComputedFields(computedFields: [{ label: string, type: ComputedType, column?: string }]): this {\n for (const aggregateField of computedFields) {\n const aggrField = new ComputedField()\n .owner(this)\n .label(aggregateField.label)\n .type(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.column1(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields() {\n return this.validComputedFields().length;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n let retVal: DDL2.IField[] = [];\n const retValMap: { [key: string]: boolean } = {};\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n const computedField = cf2.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n const computedField = cf.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n }\n if (this._trim && this.hasComputedFields()) {\n if (this._includeLParam) {\n const computedField = {\n id: \"__lparam\",\n type: \"object\"\n } as DDL2.IField;\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n retVal = retVal.concat(inFields.filter(field => !retValMap[field.id]));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n fieldIDs.push(cf2.column1());\n if (cf2.column2()) {\n fieldIDs.push(cf2.column2());\n }\n }\n } else {\n if (cf.type() === \"template\") {\n for (const fieldID of Utility.templateFields(cf.template())) {\n fieldIDs.push(fieldID);\n }\n } else {\n fieldIDs.push(cf.column1());\n if (cf.column2()) {\n fieldIDs.push(cf.column2());\n }\n }\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n projection(): (row: object) => object {\n const trim = this._trim;\n const hasComputedFields = this.hasComputedFields();\n const computedFields = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n computedFields.push({\n label: cf2.label(),\n func: cf2.computeFunc(trim)\n });\n }\n } else {\n computedFields.push({\n label: cf.label(),\n func: cf.computeFunc(trim)\n });\n }\n }\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n if (this._includeLParam) {\n retVal[\"__lparam\"] = row;\n }\n }\n return retVal;\n };\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.map(this.projection());\n }\n}\n\nexport class Project extends ProjectBase {\n\n toDDL(): DDL2.IProject {\n return {\n type: \"project\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IProject): this {\n return this.transformations(ddl.transformations);\n }\n\n static fromDDL(ddl: DDL2.IProject): Project {\n return new Project().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n}\nProject.prototype._class += \" Project\";\n\nexport class Mappings extends ProjectBase {\n\n constructor() {\n super();\n this._trim = true;\n this._includeLParam = true;\n }\n\n toDDL(): DDL2.IMappings {\n return {\n type: \"mappings\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(_ddl: DDL2.IMappings): this {\n const ddl = _ddl || { transformations: [] };\n return this\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMappings): Mappings {\n return new Mappings().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n if (this.hasComputedFields()) {\n return super.referencedFields(refs);\n }\n this.resolveInFields(refs, this.inFields().filter(f => f.id !== \"__lparam\").map(f => f.id));\n }\n}\nMappings.prototype._class += \" Mappings\";\n\nComputedMapping.prototype.publish(\"value\", null, \"any\", \"Compare Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n});\nComputedMapping.prototype.publish(\"newValue\", null, \"any\", \"New Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n});\n\nComputedField.prototype.publish(\"label\", null, \"string\", \"Label\", null, { optional: true });\nComputedField.prototype.publish(\"type\", \"mapping\", \"set\", \"Project type\", [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"template\", \"map\"], { optional: true, disable: w => !w.label() });\nComputedField.prototype.publish(\"column1\", null, \"set\", \"Param 1\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn1(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column1()) >= 0\n});\nComputedField.prototype.publish(\"column2\", null, \"set\", \"Param 2\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn2(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column2()) >= 0\n});\nComputedField.prototype.publish(\"constValue\", null, \"number\", \"Const value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"scale\"].indexOf(w.type()) < 0 });\nComputedField.prototype.publish(\"template\", null, \"string\", \"template\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"template\"].indexOf(w.type()) < 0 });\nComputedField.prototype.publish(\"default\", null, \"any\", \"Default Value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"map\"].indexOf(w.type()) < 0 });\nComputedField.prototype.publish(\"mapping\", [], \"propertyArray\", \"Mapped Values\", null, { autoExpand: ComputedMapping, disable: (w: ComputedField) => w.disableMapping() });\nComputedField.prototype.publish(\"childField\", [], \"propertyArray\", \"Child Fields\", null, { autoExpand: ComputedField, disable: (w: ComputedField) => w.disableChildField() });\n\nMultiField.prototype.publish(\"label\", \"\", \"string\", \"Label\");\nMultiField.prototype.publish(\"multiFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: ComputedField });\n\nexport interface ProjectBase {\n computedFields(): Array<ComputedField | MultiField>;\n computedFields(_: Array<ComputedField | MultiField>): this;\n}\n\nProjectBase.prototype.publish(\"computedFields\", [], \"propertyArray\", \"Computed Fields\", null, { autoExpand: ComputedField });","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ascending as d3Ascending, descending as d3Descending } from \"d3-array\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity.ts\";\n\nexport class SortColumn extends PropertyExt {\n private _owner: Sort;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.fieldID_valid()) {\n retVal.push({\n source: `${prefix}.fieldID`,\n msg: `Invalid fieldID: ${this.fieldID()}`,\n hint: `expected ${JSON.stringify(this.fieldIDs())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Sort;\n owner(_: Sort): this;\n owner(_?: Sort): Sort | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.ISortCondition {\n return {\n fieldID: this.fieldID(),\n descending: this.descending()\n };\n }\n\n fromDDL(ddl: DDL2.ISortCondition): this {\n return this\n .fieldID(ddl.fieldID)\n .descending(ddl.descending)\n ;\n }\n\n static fromDDL(ddl: DDL2.ISortCondition): SortColumn {\n return new SortColumn().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n sortColumn: this.fieldID(),\n descending: this.descending()\n });\n }\n\n fieldIDs() {\n return this._owner.fieldIDs();\n }\n\n field(id: string): DDL2.IField | undefined {\n return this._owner.inFields().filter(field =>\n field.id === id\n )[0];\n }\n}\nSortColumn.prototype._class += \" SortColumn\";\n\nexport interface SortColumn {\n fieldID(): string;\n fieldID(_: string): this;\n fieldID_valid(): boolean;\n descending(): boolean;\n descending(_: boolean): this;\n}\n\n// ===========================================================================\nexport class Sort extends Activity {\n static Column = SortColumn;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const sb of this.validSortBy()) {\n retVal = retVal.concat(sb.validate(\"Sort.column\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ISort {\n return {\n type: \"sort\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.ISort): this {\n this.conditions(ddl.conditions);\n return this;\n }\n\n static fromDDL(ddl: DDL2.ISort) {\n return new Sort().fromDDL(ddl);\n }\n\n conditions(): DDL2.ISortCondition[];\n conditions(_: DDL2.ISortCondition[]): this;\n conditions(_?: DDL2.ISortCondition[]): DDL2.ISortCondition[] | this {\n if (!arguments.length) return this.validSortBy().map(column => column.toDDL());\n this.column(_.map(condition => SortColumn.fromDDL(condition)));\n return this;\n }\n\n // Activitiy ---\n hash(): string {\n return hashSum({\n Sort: this.column().map(sb => sb.hash())\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n super.resolveInFields(refs, this.validSortBy().map(sortBy => sortBy.fieldID()));\n }\n\n validSortBy(): SortColumn[] {\n return this.column().filter(sortBy => sortBy.fieldID());\n }\n\n exists(): boolean {\n return this.validSortBy().length > 0;\n }\n\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n const sortByArr: Array<{ compare: (l, r) => number, id: string }> = [];\n for (const sortBy of this.validSortBy()) {\n sortByArr.push({\n compare: sortBy.descending() ? d3Descending : d3Ascending,\n id: sortBy.fieldID()\n });\n }\n\n if (sortByArr.length) {\n return [...data].sort((l: any, r: any) => {\n for (const item of sortByArr) {\n const retVal2 = item.compare(l[item.id], r[item.id]);\n if (retVal2 !== 0) {\n return retVal2;\n }\n }\n return 0;\n });\n\n }\n return data;\n }\n}\nSort.prototype._class += \" Sort\";\n\nexport interface Sort {\n column(): SortColumn[];\n column(_: SortColumn[]): this;\n}\n\nSortColumn.prototype.publish(\"fieldID\", null, \"set\", \"Sort Field\", function (this: SortColumn) { return this.fieldIDs(); }, {\n optional: true,\n validate: (w: SortColumn): boolean => w.fieldIDs().indexOf(w.fieldID()) >= 0\n });\nSortColumn.prototype.publish(\"descending\", false, \"boolean\", \"Sort Field\");\n\nSort.prototype.publish(\"column\", [], \"propertyArray\", \"Source Columns\", null, { autoExpand: SortColumn });","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element.ts\";\nimport { Activity, ActivityPipeline } from \"./activity.ts\";\nimport { DatasourceRefType } from \"./datasource.ts\";\nimport { DSPicker } from \"./dspicker.ts\";\nimport { Filters } from \"./filter.ts\";\nimport { GroupBy } from \"./groupby.ts\";\nimport { Limit } from \"./limit.ts\";\nimport { Project } from \"./project.ts\";\nimport { Sort } from \"./sort.ts\";\n\nexport class HipiePipeline extends ActivityPipeline {\n\n _origDatasource;\n _origFilters;\n _origProject;\n _origGroupBy;\n _origSort;\n _origLimit;\n\n declare _datasource: DSPicker | DatasourceRefType;\n declare _filters: Filters;\n declare _project: Project;\n declare _groupBy: GroupBy;\n declare _sort: Sort;\n declare _limit: Limit;\n\n constructor(private _ec: ElementContainer, viewID: string) {\n super();\n this._id = viewID;\n this._datasource = new DSPicker(this._ec);\n this._filters = new Filters(this._ec);\n this._project = new Project();\n this._groupBy = new GroupBy();\n this._sort = new Sort();\n this._limit = new Limit();\n this.updateSequence();\n }\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n const retVal = super.activities.apply(this, arguments);\n return retVal;\n }\n\n private updateSequence() {\n this.activities([\n this.datasource() as Activity,\n this.filters(),\n this.project(),\n this.groupBy(),\n this.sort(),\n this.limit()\n ]);\n }\n\n selectionFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n}\n\nexport interface HipiePipeline {\n datasource(): DSPicker | DatasourceRefType;\n datasource(_: DSPicker | DatasourceRefType): this;\n filters(): Filters;\n filters(_: Filters): this;\n project(): Project;\n project(_: Project): this;\n groupBy(): GroupBy;\n groupBy(_: GroupBy): this;\n sort(): Sort;\n sort(_: Sort): this;\n limit(): Limit;\n limit(_: Limit): this;\n}\n\nHipiePipeline.prototype.publish(\"datasource\", null, \"widget\", \"Data Source 2\");\nHipiePipeline.prototype.publish(\"filters\", null, \"widget\", \"Client Filters\");\nHipiePipeline.prototype.publish(\"project\", null, \"widget\", \"Project\");\nHipiePipeline.prototype.publish(\"groupBy\", null, \"widget\", \"Group By\");\nHipiePipeline.prototype.publish(\"sort\", null, \"widget\", \"Sort\");\nHipiePipeline.prototype.publish(\"limit\", null, \"widget\", \"Limit output\");\n\nfunction wrapHipiePipelineProperty(prop: string) {\n const origKey = `_orig${prop.charAt(0).toUpperCase() + prop.slice(1)}`;\n HipiePipeline.prototype[origKey] = HipiePipeline.prototype[prop];\n HipiePipeline.prototype[prop] = function (_?) {\n const retVal = HipiePipeline.prototype[origKey].apply(this, arguments);\n if (_ !== undefined) {\n this.updateSequence();\n }\n return retVal;\n };\n}\nwrapHipiePipelineProperty(\"datasource\");\nwrapHipiePipelineProperty(\"filters\");\nwrapHipiePipelineProperty(\"project\");\nwrapHipiePipelineProperty(\"groupBy\");\nwrapHipiePipelineProperty(\"sort\");\nwrapHipiePipelineProperty(\"limit\");","import { HipiePipeline } from \"./hipiepipeline.ts\";\n\nexport class NullView extends HipiePipeline {\n hash(): string {\n return super.hash();\n }\n\n _fetch(from: number, count: number): Promise<any[]> {\n return Promise.resolve([]);\n }\n}\nNullView.prototype._class += \" NullView\";\n","import { Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { ChartPanel, Modal } from \"@hpcc-js/layout\";\n\nexport interface IVizPopupPanelOwner {\n vizActivation(viz);\n}\n\nexport class VizPopupPanel extends Modal {\n\n private _owner: IVizPopupPanelOwner;\n private _ownerLParam;\n\n constructor(owner: IVizPopupPanelOwner, ownerLParam) {\n super();\n this._owner = owner;\n this._ownerLParam = ownerLParam;\n this._drawStartPos = \"origin\";\n this.visible(false);\n this.minHeight_default(\"240px\");\n this.minWidth_default(\"320px\");\n this.overflowY_default(\"hidden\");\n }\n\n private _host: VizChartPanel;\n host(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._host;\n if (this._host && this._host !== _) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n this._host = _;\n this._owner.vizActivation(this._ownerLParam);\n return this;\n }\n\n enter(domNode, element) {\n domNode.parentElement.style.position = \"absolute\";\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n this.title(widgetTitle);\n (this.widget() as ChartPanel).titleVisible(false);\n }\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n this.fixedTop(this._pos.y + \"px\");\n this.fixedLeft(this._pos.x + \"px\");\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n (this.widget() as ChartPanel).titleVisible(true);\n }\n }\n\n closeModal() {\n super.closeModal();\n if (this._host) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n }\n}\nVizPopupPanel.prototype._class += \" marshaller_VizPopupPanel\";\n\nexport interface VizPopupPanel {\n widget(_: Widget): this;\n widget(): Widget;\n widget_exists(): boolean;\n minHeight_default(_: string);\n minWidth_default(_: string);\n overflowY_default(_: string);\n}\n\n// ===========================================================================\n\nexport interface VizChartPanel {\n}\n\nexport class VizChartPanel extends ChartPanel {\n\n private _popup: VizPopupPanel;\n _togglePopup = new ToggleButton().faChar(\"fa-filter\").tooltip(\"Filter\")\n .on(\"click\", () => {\n this._popup.host(this);\n const dp = this.locateClosestAncestor([\"marshaller_DashboardDockPanel\", \"marshaller_DashboardGrid\"]);\n const dpBBox = dp.getBBox(true);\n const cp = this._popup.widget() as VizChartPanel;\n const tbBBox = this._togglePopup.getBBox();\n this._popup\n .pos({\n x: -dpBBox.x + tbBBox.x + tbBBox.width - cp.minWidth(),\n y: -dpBBox.y + tbBBox.y + tbBBox.height\n })\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .visible(this._togglePopup.selected())\n .render((popup: any) => {\n const widgetSelector = \"#\" + popup.id() + \" .layout_Carousel .common_Widget\";\n const node = popup.element().node();\n if (node) {\n const { height, width } = node.querySelector(widgetSelector).getBoundingClientRect();\n popup.resizeBodySync(width, height);\n }\n })\n ;\n });\n\n private _origButtons: Widget[];\n private _filterButtons: Widget[];\n\n constructor() {\n super();\n\n this._origButtons = this.buttons();\n this._filterButtons = [this._togglePopup, new Spacer(), ...this._origButtons];\n }\n\n popup(_?: VizPopupPanel): VizPopupPanel | this {\n if (!arguments.length) return this._popup;\n this._popup = _;\n if (!this._popup) {\n this._togglePopup.selected(false);\n }\n this.buttons(this._popup ? this._filterButtons : this._origButtons);\n return this;\n }\n}\nVizChartPanel.prototype._class += \" marshaller_VizChartPanel\";\n\nexport interface VizChartPanel {\n minWidth(): number;\n minWidth(_: number): this;\n minWidth(_: number): this;\n minWidth_exists(): boolean;\n minHeight(): number;\n minHeight(_: number): this;\n minHeight_exists(): boolean;\n}\nVizChartPanel.prototype.publish(\"descriptionTemplate\", \"\", \"string\");\nVizChartPanel.prototype.publish(\"minWidth\", 320, \"number\", \"Min Width\");\nVizChartPanel.prototype.publish(\"minHeight\", 240, \"number\", \"Min Height\");\n","import { Area, Bar, Bubble, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud } from \"@hpcc-js/chart\";\nimport { Database, EntityRectList, InputField, PropertyExt, Widget } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { FieldForm } from \"@hpcc-js/form\";\nimport { AdjacencyGraph, DataGraph } from \"@hpcc-js/graph\";\nimport { ChoroplethCounties, ChoroplethStates, Leaflet } from \"@hpcc-js/map\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { HipiePipeline } from \"../activities/hipiepipeline.ts\";\nimport { ComputedField, Mappings, MultiField } from \"../activities/project.ts\";\nimport { ElementContainer } from \"./element.ts\";\nimport { VizChartPanel } from \"./vizChartPanel.ts\";\n\nexport type VizType = \"Table\" | \"FieldForm\" |\n \"Area\" | \"Bubble\" | \"Bar\" | \"Column\" | \"Contour\" | \"HexBin\" | \"Line\" | \"Pie\" | \"WordCloud\" | \"Radar\" | \"RadialBar\" | \"Scatter\" | \"Step\" |\n \"USCountiesChoropleth\" | \"USStatesChoropleth\" | \"ClusterPins\" |\n \"EntityRectList\" | \"AdjacencyGraph\" | \"DataGraph\";\nconst VizTypeMap: { [key: string]: new (...args: any[]) => object } = {\n Table, FieldForm,\n Area, Bubble, Bar, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud,\n USCountiesChoropleth: ChoroplethCounties, USStatesChoropleth: ChoroplethStates, ClusterPins: Leaflet.ClusterPins,\n EntityRectList, AdjacencyGraph, DataGraph\n};\nexport const VizTypeSet = [];\nfor (const key in VizTypeMap) {\n VizTypeSet.push(key);\n}\n\nfunction typeClass(type: VizType): any {\n const retVal = VizTypeMap[type];\n return retVal || Table;\n}\n\nfunction typeNew(type: VizType): Widget {\n const ChartClass = VizTypeMap[type];\n const retVal = new (ChartClass || Table)() as Widget;\n\n // Override default properties as needed ---\n if (retVal instanceof FieldForm) {\n retVal\n .validate(false)\n .allowEmptyRequest(true)\n ;\n } else if (retVal instanceof AdjacencyGraph) {\n retVal\n .uidColumn(\"uid\")\n .labelColumn(\"label\")\n .iconColumn(\"icon\")\n .linksColumn(\"links\")\n .linkUidColumn(\"uid\")\n .linkLabelColumn(\"label\")\n ;\n }\n return retVal;\n}\n\nfunction typeInputs(type: VizType): InputField[] {\n return typeClass(type).__inputs || [];\n}\n\nexport class Visualization extends PropertyExt {\n\n _origVisibility;\n _origChartType;\n _origChartPanel;\n\n declare _visibility: DDL2.VisibilityType;\n declare _chartType: VizType;\n declare _chartPanel: VizChartPanel;\n\n protected _hipiePipeline: HipiePipeline;\n constructor(protected _ec: ElementContainer, hipiePipeline: HipiePipeline) {\n super();\n this._hipiePipeline = hipiePipeline;\n this.mappings(new Mappings());\n this.chartPanel(new VizChartPanel());\n this.typeChanged();\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs().filter(id => id !== this.id());\n }\n\n _prevChartType;\n typeChanged() {\n if (this._prevChartType !== this._chartType) {\n this._prevChartType = this._chartType;\n this.refreshMappings();\n const chart = typeNew(this._chartType);\n this.chartPanel().widget(chart);\n }\n }\n\n properties(): DDL2.IWidgetProperties;\n properties(_: DDL2.IWidgetProperties): this;\n properties(_?: DDL2.IWidgetProperties): DDL2.IWidgetProperties | this {\n if (!arguments.length) return this.chartPanel().serialize();\n this.chartPanel().deserialize(_);\n\n return this;\n }\n\n refreshMappings(): this {\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n const cfs = mappings.validComputedFields();\n const inFields = mappings.inFields();\n const taken = {};\n mappings.computedFields(typeInputs(this._chartType).map((input, idx) => {\n let retVal: MultiField | ComputedField = cfs[idx];\n if (retVal) {\n if (retVal instanceof MultiField) {\n } else {\n retVal.label(input.id);\n }\n } else {\n if (input.multi) {\n retVal = new MultiField()\n .owner(mappings)\n .label(input.id)\n ;\n const computedFields: ComputedField[] = [];\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n computedFields.push(new ComputedField()\n .label(inField.id)\n .type(\"=\")\n .column1(inField.id)\n );\n }\n }\n retVal.multiFields(computedFields);\n } else {\n retVal = new ComputedField()\n .owner(mappings)\n .label(input.id)\n .type(\"=\")\n ;\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n retVal.column1(inField.id);\n break;\n }\n }\n }\n }\n return retVal;\n }));\n return this;\n }\n\n _prevFields: ReadonlyArray<DDL2.IField> = [];\n _prevLinkFields: ReadonlyArray<DDL2.IField> = [];\n _prevData: ReadonlyArray<object> = [];\n refreshData(): Promise<void> {\n const mappings = this.mappings();\n\n const fields = mappings.outFields();\n const dbFields = this.toDBFields(fields);\n let linkFields: ReadonlyArray<DDL2.IField>;\n let dbLinkFields = [];\n const se = this._ec.element(this.secondaryDataviewID());\n if (se) {\n linkFields = se.mappings().outFields();\n dbLinkFields = this.toDBFields(linkFields);\n }\n\n const fieldsChanged = this._prevFields !== fields || this._prevLinkFields !== linkFields;\n if (fieldsChanged) {\n this._prevFields = fields;\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertexColumns(dbFields.map(f => f.label()));\n dataGraph.edgeColumns(dbLinkFields.map(f => f.label()));\n } else {\n this.chartPanel().fields(dbFields.filter(f => f.id() !== \"__lparam\"));\n }\n } else {\n console.warn(`***${this.id()} Immutable Fields***`);\n }\n\n const data = mappings.outData();\n const dataChanged = this._prevData !== data;\n if (dataChanged) {\n this._prevData = data;\n const mappedData = this.toDBData(dbFields, data);\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertices(mappedData);\n if (se) {\n const linkData = se.mappings().outData();\n const mappedLinkData = this.toDBData(dbLinkFields, linkData);\n dataGraph.edges(mappedLinkData);\n }\n } else {\n this.chartPanel().data(mappedData);\n }\n } else {\n console.warn(`${this.id()} Immutable Data!`);\n }\n\n if (fieldsChanged || dataChanged) {\n return this.chartPanel().renderPromise().then(() => { });\n }\n return Promise.resolve();\n }\n\n private fieldTypeTodbFieldType(type: DDL2.IFieldType): Database.FieldType {\n switch (type) {\n case \"dataset\":\n return \"nested\";\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n default:\n return \"string\";\n }\n }\n\n toDBFields(fields: ReadonlyArray<DDL2.IField>): Database.Field[] {\n const retVal: Database.Field[] = [];\n for (const field of fields || []) {\n const f = new Database.Field()\n .type(this.fieldTypeTodbFieldType(field.type))\n .id(field.id)\n .label(field.id)\n ;\n switch (field.type) {\n case \"dataset\":\n f.children(this.toDBFields(field.children));\n break;\n case \"object\":\n // TODO: For __lparam we should do nothing - not 100% if that is correct for \"real\" data (we don't really support \"object\" anyway)?\n break;\n }\n retVal.push(f);\n }\n return retVal;\n }\n\n toDBData(fields: Database.Field[], data: ReadonlyArray<object> | Readonly<object>) {\n const _data: ReadonlyArray<object> = isArray(data) ? data : [data];\n return _data.map((row: any) => {\n const retVal = [];\n for (const field of fields) {\n if (field.type() === \"nested\") {\n retVal.push(this.toDBData(field.children() as Database.Field[], row[field.id()].Row || row[field.id()]));\n } else {\n retVal.push(row[field.label()]);\n }\n }\n return retVal;\n });\n }\n\n exec(): Promise<void[]> {\n const promises = [];\n if (this.secondaryDataviewID_exists()) {\n const secondaryElementID = this.secondaryDataviewID();\n const secondaryElement = this._ec.element(secondaryElementID);\n if (secondaryElement) {\n promises.push(secondaryElement.visualization().exec());\n }\n }\n\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n promises.push(mappings.refreshMeta().then(() => {\n return mappings.exec();\n }));\n\n return Promise.all(promises);\n }\n\n refresh(): Promise<void> {\n if (this.chartPanel().startProgress) {\n this.chartPanel().startProgress();\n }\n return this.exec().then(() => {\n if (this.chartPanel().finishProgress) {\n this.chartPanel().finishProgress();\n }\n return this.refreshData();\n });\n }\n\n // Events ---\n click(row: any, col: string, sel: boolean, more?) {\n }\n\n vertex_click(row: any, col: string, sel: boolean) {\n }\n}\nVisualization.prototype._class += \" Visualization\";\n\nexport interface Visualization {\n title(): string;\n title(_: string): this;\n description(): string;\n description(_: string): this;\n visibility(): DDL2.VisibilityType;\n visibility(_: DDL2.VisibilityType): this;\n chartType(): VizType;\n chartType(_: VizType, props?: { [prop: string]: any }): this;\n secondaryDataviewID(): string;\n secondaryDataviewID(_: string): this;\n secondaryDataviewID_exists(): boolean;\n secondaryDataviewID_valid(): boolean;\n mappings(): Mappings;\n mappings(_: Mappings): this;\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n}\n\nVisualization.prototype.publishProxy(\"title\", \"_chartPanel\");\nVisualization.prototype.publishProxy(\"description\", \"_chartPanel\");\nVisualization.prototype.publish(\"visibility\", DDL2.VisibilitySet[0], \"set\", \"Type\", DDL2.VisibilitySet);\nVisualization.prototype.publish(\"chartType\", \"Table\", \"set\", \"Type\", VizTypeSet);\nVisualization.prototype.publish(\"secondaryDataviewID\", null, \"set\", \"Secondary Data View (e.g. graph edges)\", function (this: Visualization) { return this.visualizationIDs(); }, { optional: true });\nVisualization.prototype.publish(\"mappings\", null, \"widget\", \"Mappings\", undefined, { render: false, internal: true });\nVisualization.prototype.publish(\"chartPanel\", [], \"widget\", \"Widget\");\n\nVisualization.prototype._origVisibility = Visualization.prototype.visibility;\nVisualization.prototype.visibility = function (this: Visualization, _?) {\n const prev = this._visibility;\n const retVal = Visualization.prototype._origVisibility.apply(this, arguments);\n if (_ !== undefined && prev !== _) {\n this.chartPanel().target(null);\n }\n return retVal;\n};\n\nVisualization.prototype._origChartType = Visualization.prototype.chartType;\nVisualization.prototype.chartType = function (this: Visualization, _?, props?) {\n if (_ !== undefined && VizTypeSet.indexOf(_) === -1) {\n _ = \"Table\";\n }\n const retVal = Visualization.prototype._origChartType.call(this, _);\n if (_ !== undefined) {\n this.typeChanged();\n if (props) {\n const widget = this.chartPanel().widget();\n for (const prop in props) {\n if (typeof widget[prop] === \"function\") {\n widget[prop](props[prop]);\n }\n }\n }\n }\n return retVal;\n};\n\nVisualization.prototype._origChartPanel = Visualization.prototype.chartPanel;\nVisualization.prototype.chartPanel = function (this: Visualization, _?) {\n const retVal = Visualization.prototype._origChartPanel.apply(this, arguments);\n if (_ !== undefined) {\n this._chartPanel\n .on(\"click\", (row: any, col: string, sel: boolean, more) => this.click(row, col, sel, more))\n .on(\"vertex_click\", (row: any, col: string, sel: boolean) => this.vertex_click(row, col, sel))\n ;\n for (const key in VizTypeMap) {\n if (this._chartPanel.widget() instanceof VizTypeMap[key]) {\n this._chartType = key as VizType;\n break;\n }\n }\n }\n return retVal;\n};","import { PropertyExt, Widget } from \"@hpcc-js/common\";\nimport { IOptionsSend } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { find, hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError } from \"../activities/activity.ts\";\nimport { emptyDatabomb } from \"../activities/databomb.ts\";\nimport { DatasourceRefType } from \"../activities/datasource.ts\";\nimport { HipiePipeline } from \"../activities/hipiepipeline.ts\";\nimport { Mappings } from \"../activities/project.ts\";\nimport { Visualization } from \"./visualization.ts\";\nimport { VizChartPanel } from \"./vizChartPanel.ts\";\n\nexport class State extends PropertyExt {\n\n constructor() {\n super();\n this.selection([]);\n }\n\n set(_: Array<{ [key: string]: any }>): boolean {\n const currSelHash = hashSum(this.selection());\n const newSelHash = hashSum(_);\n if (currSelHash !== newSelHash) {\n this.selection(_);\n return true;\n }\n return false;\n }\n\n removeInvalid(data: ReadonlyArray<object>): boolean {\n const currSelection = this.selection();\n const newSelection: object[] = [];\n for (const selRow of currSelection) {\n if (find(data, (row: { [key: string]: any }, index): boolean => {\n for (const column in selRow) {\n if (selRow[column] !== row[column]) {\n return false;\n }\n }\n return true;\n })) {\n newSelection.push(selRow);\n }\n }\n if (newSelection.length !== currSelection.length) {\n this.selection(newSelection);\n return true;\n }\n return false;\n }\n}\nState.prototype._class += \" State\";\nexport interface State {\n selection(): Array<{ [key: string]: any }>;\n selection(_: Array<{ [key: string]: any }>): this;\n}\nState.prototype.publish(\"selection\", [], \"array\", \"State\");\n\nlet vizID = 0;\nexport class Element extends PropertyExt {\n private _vizChartPanel: Visualization;\n\n _origVisualization;\n\n declare _visualization: Visualization;\n\n constructor(private _ec: ElementContainer) {\n super();\n while (true) {\n vizID++;\n this._id = `e_${vizID}`;\n if (!this._ec.elementExists(this._id)) {\n break;\n }\n }\n const view = new HipiePipeline(this._ec, this._id);\n this.hipiePipeline(view);\n this._vizChartPanel = new Visualization(this._ec, this.hipiePipeline())\n .id(`viz_${vizID}`)\n .title(`Element ${vizID}`)\n ;\n this._vizChartPanel.chartPanel().id(`cp_${vizID}`);\n this.visualization(this._vizChartPanel);\n this.state(new State());\n }\n\n id(): string;\n id(_: string): this;\n id(_?: string): string | this {\n const retVal = super.id.apply(this, arguments);\n if (arguments.length) {\n this._vizChartPanel.id(_);\n }\n return retVal;\n }\n\n chartType(): string {\n return this._vizChartPanel.chartType();\n }\n\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n chartPanel(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._vizChartPanel.chartPanel();\n this._vizChartPanel.chartPanel(_);\n return this;\n }\n\n chart(): Widget {\n return this._vizChartPanel.chartPanel().widget();\n }\n\n mappings(): Mappings;\n mappings(_: Mappings): this;\n mappings(_?: Mappings): Mappings | this {\n if (!arguments.length) return this._vizChartPanel.mappings();\n this._vizChartPanel.mappings(_);\n return this;\n }\n\n pipeline(activities: Activity[]): this {\n this.hipiePipeline()\n .activities(activities)\n ;\n return this;\n }\n\n updatedBy(): string[] {\n const retVal = this.hipiePipeline().updatedBy();\n if (this.visualization().secondaryDataviewID_exists()) {\n retVal.push(this.visualization().secondaryDataviewID());\n }\n return retVal;\n }\n\n dataProps(): PropertyExt {\n return this.hipiePipeline();\n }\n\n vizProps(): Widget {\n return this.visualization().chartPanel();\n }\n\n stateProps(): PropertyExt {\n return this.state();\n }\n\n private _errors: IElementError[] = [];\n errors(): IElementError[] {\n return this._errors;\n }\n\n validate(): IElementError[] {\n if (!this._initialized) {\n return [];\n }\n this._errors = [];\n const pipeline = this.hipiePipeline();\n for (const activity of [...pipeline.activities(), this.mappings()]) {\n for (const error of activity.validate()) {\n this._errors.push({\n elementID: this.id(),\n ...error\n });\n }\n }\n return this._errors;\n }\n\n private _initialized = false;\n refresh(): Promise<void> {\n const filters = this.hipiePipeline().filters().validFilters();\n const desc: string[] = filters.map(f => f.createFilterDescription());\n this.visualization().chartPanel().description(desc.join(\", \"));\n return this.visualization().refresh().then(() => {\n this._initialized = true;\n const data = this.hipiePipeline().outData();\n if (this.visualization().chartType() === \"FieldForm\") {\n if (this.state().set([...data])) {\n this.selectionChanged();\n }\n } else {\n if (this.state().removeInvalid(data)) {\n this.selectionChanged();\n }\n }\n });\n }\n\n // Selection ---\n selection(): object[];\n selection(_: object[]): this;\n selection(_?: object[]): object[] | this {\n if (!arguments.length) return this.state().selection();\n this.state().selection(_);\n this.selectionChanged();\n return this;\n }\n\n // Events ---\n selectionChanged() {\n const promises: Array<Promise<void>> = [];\n for (const filteredViz of this._ec.filteredBy(this.id())) {\n promises.push(filteredViz.refresh());\n }\n Promise.all(promises).then(() => {\n this._ec.vizStateChanged(this);\n });\n }\n\n monitor(func: (id: string, newVal: any, oldVal: any, source: PropertyExt) => void): { remove: () => void; } {\n return this.hipiePipeline().monitor(func);\n }\n}\nElement.prototype._class += \" Viz\";\n\nexport interface Element {\n hipiePipeline(): HipiePipeline;\n hipiePipeline(_: HipiePipeline): this;\n visualization(): Visualization;\n visualization(_: Visualization): this;\n state(): State;\n state(_: State): this;\n}\n\nElement.prototype.publish(\"hipiePipeline\", null, \"widget\", \"Data View\");\nElement.prototype.publish(\"visualization\", null, \"widget\", \"Visualization\");\nElement.prototype.publish(\"state\", null, \"widget\", \"State\");\n\nElement.prototype._origVisualization = Element.prototype.visualization;\nElement.prototype.visualization = function (this: Element, _?) {\n const retVal = Element.prototype._origVisualization.apply(this, arguments);\n if (_ !== undefined) {\n this._visualization\n .on(\"click\", (_row: object | object[], col: string, sel: boolean, more?) => {\n if (more && more.selection) {\n this.selection(sel ? more.selection.map(r => r.__lparam || r) : []);\n } else {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n }\n })\n .on(\"vertex_click\", (_row: object | object[], col: string, sel: boolean) => {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n })\n ;\n }\n return retVal;\n};\n\nexport interface IPersist {\n ddl: DDL2.Schema;\n layout: any;\n}\n\nexport interface IElementError extends IActivityError {\n elementID: string;\n}\n\nexport class ElementContainer extends PropertyExt {\n\n private _nullElement;\n\n private _datasources: DatasourceRefType[] = [emptyDatabomb];\n private _elements: Element[] = [];\n\n constructor() {\n super();\n this.clear();\n this._nullElement = new Element(this);\n }\n\n clear(eid?: string) {\n this._datasources = eid === undefined ? [emptyDatabomb] : this._datasources;\n this._elements = eid === undefined ? [] : this._elements.filter(d => d.id() !== eid);\n }\n\n private _hookSend: IOptionsSend;\n hookSend(): IOptionsSend;\n hookSend(_: IOptionsSend): this;\n hookSend(_?: IOptionsSend): IOptionsSend | this {\n if (!arguments.length) return this._hookSend;\n this._hookSend = _;\n return this;\n }\n\n datasources(): DatasourceRefType[];\n datasources(_: DatasourceRefType[]): this;\n datasources(_?: DatasourceRefType[]): DatasourceRefType[] | this {\n if (!arguments.length) return this._datasources;\n this._datasources = _;\n return this;\n }\n\n datasource(id): DatasourceRefType {\n return this._datasources.filter(ds => ds.id() === id)[0];\n }\n\n appendDatasource(ds: DatasourceRefType): this {\n this._datasources.push(ds);\n return this;\n }\n\n removeDatasource(ds: DatasourceRefType): this {\n this._datasources = this._datasources.filter(row => row !== ds);\n return this;\n }\n\n elements(): Element[] {\n return [...this._elements];\n }\n\n element(w: string | PropertyExt | VizChartPanel): Element {\n let retVal: Element[];\n if (typeof w === \"string\") {\n retVal = this._elements.filter(viz => viz.id() === w);\n } else if (w instanceof VizChartPanel) {\n retVal = this._elements.filter(v => v.chartPanel() === w);\n } else {\n retVal = this._elements.filter(v => v.vizProps() === w);\n }\n if (retVal.length) {\n return retVal[0];\n }\n return this._nullElement;\n }\n\n elementExists(w: string | PropertyExt): boolean {\n return this.element(w) !== this._nullElement;\n }\n\n elementIDs() {\n return this._elements.map(viz => viz.id());\n }\n\n append(element: Element): this {\n this._elements.push(element);\n return this;\n }\n\n filteredBy(elemID: string): Element[] {\n return this._elements.filter(otherViz => {\n const filterIDs = otherViz.updatedBy();\n return filterIDs.indexOf(elemID) >= 0;\n });\n }\n\n views(): HipiePipeline[] {\n return this._elements.map(viz => viz.hipiePipeline());\n }\n\n view(id: string): HipiePipeline | undefined {\n return this.views().filter(view => view.id() === id)[0];\n }\n\n normalizePersist(seri: any): { [key: string]: { [key: string]: any } } {\n const ret = {};\n seri.__properties.content.map((n) => {\n const _is_MegaChart = !!n.__properties.widget.__properties.chart;\n const _cell = n;\n const _panel = n.__properties.widget;\n const _widget = _is_MegaChart ? n.__properties.widget.__properties.chart : n.__properties.widget.__properties.widget;\n const _id = n.__properties.widget.__id ? n.__properties.widget.__id : n.__properties.widget.__properties.widget.__id;\n ret[_id] = {\n id: _id,\n package: _widget.__class.split(\"_\")[0],\n object: _widget.__class.split(\"_\")[1],\n cell: _get_params(_cell, [\"chart\", \"widget\", \"fields\"]),\n panel: _get_params(_panel, [\"chart\", \"widget\", \"fields\"]),\n widget: _get_params(_widget, [\"fields\"])\n };\n });\n return ret;\n function _get_params(_o, exclude_list) {\n const ret = {};\n Object.keys(_o.__properties)\n .filter(n => exclude_list.indexOf(n) === -1)\n .forEach(n => ret[n] = _o.__properties[n]);\n return ret;\n }\n }\n\n validate(): IElementError[] {\n let retVal: IElementError[] = [];\n this._elements.forEach(elem => {\n retVal = retVal.concat(elem.validate());\n });\n return retVal;\n }\n\n refresh(): Promise<this> {\n return Promise.all(this.elements().map(element => element.refresh())).then(() => {\n return this;\n });\n }\n\n // Events ---\n vizStateChanged(viz: Element) {\n }\n}\nElementContainer.prototype._class += \" dashboard_ElementContainer\";\n\nexport interface ElementContainer {\n samples(): number;\n samples(_: number): this;\n sampleSize(): number;\n sampleSize(_: number): this;\n}\n\nElementContainer.prototype.publish(\"samples\", 10, \"number\", \"Number of samples\");\nElementContainer.prototype.publish(\"sampleSize\", 100, \"number\", \"Sample size\");","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import { IMonitorHandle, Widget } from \"@hpcc-js/common\";\nimport { compare } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element.ts\";\nimport { IVizPopupPanelOwner, VizChartPanel, VizPopupPanel } from \"./model/vizChartPanel.ts\";\n\nexport class PopupManager extends Widget implements IVizPopupPanelOwner {\n protected _ec: ElementContainer;\n protected _popups: VizPopupPanel[] = [];\n protected _popupIdx: {\n [id: string]: {\n panel: VizPopupPanel,\n monitorHandle: IMonitorHandle\n }\n } = {};\n\n popupPanels(): VizPopupPanel[] {\n if (!this._popups) this._popups = [];\n if (!this._popupIdx) this._popupIdx = {};\n return this._popups;\n }\n\n popupChartPanels(): VizChartPanel[] {\n return this.popupPanels().map(p => p.widget() as VizChartPanel);\n }\n\n addPopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n const targetNode = this.element().node();\n const pp = new VizPopupPanel(this, elem)\n .target(targetNode)\n .widget(cp)\n .relativeTargetId(this.id())\n .size({\n width: cp.minWidth(),\n height: cp.minHeight()\n });\n this._popups.push(pp);\n this._popupIdx[cp.id()] = {\n panel: pp,\n monitorHandle: cp.monitor((id) => {\n switch (id) {\n case \"minWidth\":\n case \"minHeight\":\n pp\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .render()\n ;\n break;\n }\n })\n };\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(pp);\n });\n }\n\n removePopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(null);\n });\n this._popupIdx[cp.id()].panel.target(null);\n this._popupIdx[cp.id()].monitorHandle.remove();\n cp.target(null);\n delete this._popupIdx[cp.id()];\n this._popups = this._popups.filter(p => p.widget() !== cp);\n }\n\n syncPopups() {\n const prevPopups = this.popupChartPanels();\n const diffPopups = compare(prevPopups, this._ec.elements()\n .filter(e => e.visualization().visibility() === \"flyout\")\n .map((elem: any) => elem.visualization().chartPanel()))\n ;\n\n for (const w of diffPopups.exit) {\n this.removePopup(w);\n }\n\n for (const w of diffPopups.enter) {\n this.addPopup(w);\n }\n\n return this;\n }\n\n vizActivation() {\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { DockPanel, IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Element, ElementContainer } from \"./model/element.ts\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel.ts\";\nimport { PopupManager } from \"./PopupManager.ts\";\n\nexport class DashboardDockPanel extends DockPanel implements IClosable, IVizPopupPanelOwner {\n\n constructor(private _ec: ElementContainer) {\n super();\n\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n titleClassed(wa: WidgetAdapter, classID: string, include: boolean) {\n let classes = wa.title.className.split(\" \");\n if (include && classes.indexOf(classID) < 0) {\n classes.push(classID);\n } else if (!include && classes.indexOf(classID) > 0) {\n classes = classes.filter(c => c !== classID);\n }\n wa.title.className = classes.join(\" \");\n }\n\n updateTitle(w: Widget) {\n const wa: WidgetAdapter = this.getWidgetAdapter(w);\n const element: Element = this._ec.element(w);\n const errors = element.validate();\n wa.title.label = this.tabTitle(element);\n this.titleClassed(wa, \"error\", errors.length > 0);\n wa.title.caption = errors.map(err => `${err.source}: ${err.msg}`).join(\"\\n\");\n }\n\n activate(element: Element) {\n const wa = this.getWidgetAdapter(element.visualization().chartPanel());\n if (wa) {\n wa.activate();\n }\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const wa = this.getWidgetAdapter(w);\n d3Select(wa.node)\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n let refit = false;\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n\n for (const w of diffWidgets.enter) {\n const element: Element = this._ec.element(w);\n this.addWidget(w, this.tabTitle(element), \"split-bottom\", undefined, this.hideSingleTabs() ? undefined : this);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n if (refit) {\n this.refit();\n }\n\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa: WidgetAdapter) {\n super.childActivation(w, wa);\n this.vizActivation(this._ec.element(w));\n for (const wa2 of this.widgetAdapters()) {\n if (wa2 === wa) {\n wa2.addClass(\"active\");\n this.titleClassed(wa2, \"active\", true);\n wa2.title.iconClass = \"active\";\n } else {\n wa2.removeClass(\"active\");\n this.titleClassed(wa2, \"active\", false);\n wa2.title.iconClass = \"\";\n }\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardDockPanel.prototype._class += \" marshaller_DashboardDockPanel\";\nDashboardDockPanel.prototype.mixin(PopupManager);\n","import { Widget } from \"@hpcc-js/common\";\nimport { Cell, Grid } from \"@hpcc-js/layout\";\nimport { IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { IDockPanel } from \"./dashboard.ts\";\nimport { Element, ElementContainer } from \"./model/element.ts\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel.ts\";\nimport { PopupManager } from \"./PopupManager.ts\";\n\nexport class DashboardGrid extends Grid implements IClosable, IVizPopupPanelOwner, IDockPanel {\n private _layoutCache = [];\n constructor(private _ec: ElementContainer) {\n super();\n\n this.designMode(false);\n this.surfacePadding(\"0\");\n this.surfaceBorderWidth(0);\n }\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n super.updateGrid(resize, transitionDuration, _noRender);\n this._layoutCache = this.content().map(cellWidget => {\n return {\n id: cellWidget.widget().id(),\n position: [\n cellWidget.gridCol(),\n cellWidget.gridRow(),\n cellWidget.gridColSpan(),\n cellWidget.gridRowSpan()\n ]\n };\n });\n }\n layoutObj(_: object | null): this {\n if (_) {\n if ((_ as any).main) {\n const convertedLayout = ddl2_layout(_, 10, 10);\n this._layoutCache = convertedLayout;\n } else if (_ instanceof Array) {\n this._layoutCache = _;\n }\n }\n return this;\n\n function ddl2_layout(layoutObject, rows, cols) {\n const ret = [];\n dive(layoutObject.main, 0, 0, rows, cols);\n return ret;\n function dive(o, x, y, w, h) {\n if (o.children) {\n if (o.type === \"split-area\") {\n if (o.orientation === \"horizontal\") {\n o.children.forEach((child, i) => {\n const _w = o.sizes[i] * w;\n const _h = h;\n const _x = i === 0 ? x : x + o.sizes[0] * w;\n const _y = y;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else if (o.orientation === \"vertical\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else {\n console.error(\"wtf\");\n }\n } else if (o.type === \"tab-area\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n }\n } else {\n ret.push([x, y, w, h].map(Math.round));\n }\n }\n }\n }\n layout() {\n return this._layoutCache;\n }\n widgets() {\n return this.content().map(c => c.widget());\n }\n hideSingleTabs() {\n return true;\n }\n getWidgetAdapter() {\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n updateTitle(w: Widget) {\n const cell: Cell = this.getWidgetCell(w.id());\n const element: Element = this._ec.element(w);\n const tabTitle = this.tabTitle(element);\n (cell.widget() as any)\n .title(tabTitle)\n ;\n }\n\n activate(element: Element) {\n }\n\n removeWidget(w: Widget) {\n const cell = this.getWidgetCell(w.id());\n this.clearContent(cell);\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const cell: Cell = this.getWidgetCell(w.id());\n cell.element()\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n let maxX = 0;\n let maxY = 0;\n const no_layout_added = [];\n for (const widget of diffWidgets.enter) {\n const element: Element = this._ec.element(widget);\n const i = this.content().length;\n if (this._layoutCache && this._layoutCache[i]) {\n const layout = (this._layoutCache as any).find(n => n.id === widget.id());\n if (layout) {\n const [x, y, w, h] = layout.position;\n this.setContent(y, x, element.visualization().chartPanel(), \"\", h, w);\n if (x + w > maxX) maxX = x + w;\n if (y + h > maxY) maxY = y + h;\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n }\n let freeRow = this.content().reduce((prev, curr) => Math.max(prev, curr.gridRow() + curr.gridRowSpan()), 0);\n no_layout_added.forEach(cp => {\n this.setContent(freeRow, 0, cp, \"\", 3, 3);\n freeRow += 3;\n });\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n }\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa?: WidgetAdapter) {\n this.vizActivation(this._ec.element(w));\n }\n\n postSelectionChange() {\n super.postSelectionChange();\n const selected = this._selectionBag.get();\n if (selected.length > 0) {\n this.childActivation(selected[0].widget.widget());\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardGrid.prototype._class += \" marshaller_DashboardGrid\";\nDashboardGrid.prototype.mixin(PopupManager);\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { BUILD_VERSION, PKG_NAME, PKG_VERSION } from \"../__package__.ts\";\nimport { ActivityPipeline, ReferencedFields } from \"./activities/activity.ts\";\nimport { Databomb } from \"./activities/databomb.ts\";\nimport { DatasourceRef, DatasourceRefType, DatasourceType } from \"./activities/datasource.ts\";\nimport { DSPicker } from \"./activities/dspicker.ts\";\nimport { Filters } from \"./activities/filter.ts\";\nimport { Form } from \"./activities/form.ts\";\nimport { GroupBy } from \"./activities/groupby.ts\";\nimport { Limit } from \"./activities/limit.ts\";\nimport { LogicalFile } from \"./activities/logicalfile.ts\";\nimport { Mappings, Project } from \"./activities/project.ts\";\nimport { Param, RestResult, RestResultRef, RestService } from \"./activities/rest.ts\";\nimport { HipieResultRef, RoxieResult, RoxieResultRef, RoxieService } from \"./activities/roxie.ts\";\nimport { Sort } from \"./activities/sort.ts\";\nimport { WU, WUResult, WUResultRef } from \"./activities/wuresult.ts\";\nimport { Dashboard } from \"./dashboard.ts\";\nimport { Element, ElementContainer } from \"./model/element.ts\";\nimport { Visualization } from \"./model/visualization.ts\";\n\nconst logger = scopedLogger(\"marshaller/ddl2/ddl\");\n\ntype DatasourceRefTypeMap = { [key: string]: { refType: DatasourceRefType, ref: DatasourceRef } };\ntype ServerRefTypeMap = { [key: string]: { ds: DatasourceType, result: DatasourceRefTypeMap } };\n\nclass DDLDatasourceAdapter {\n private _dsDedup: ServerRefTypeMap;\n\n constructor() {\n }\n\n clear() {\n this._dsDedup = {};\n }\n\n id(dsT: DatasourceType): string {\n if (dsT instanceof WU) {\n return `${dsT.url()}/${dsT.wuid()}`;\n } else if (dsT instanceof RoxieService) {\n return `${dsT.url()}/${dsT.querySet()}/${dsT.queryID()}`;\n } else if (dsT instanceof RestService) {\n return `${dsT.url()}/${dsT.action()}`;\n }\n return dsT.id();\n }\n\n _resolveID(dsT: DatasourceType): string {\n return this._dsDedup[this.id(dsT)].ds.id();\n }\n\n resolveID(dsRef: DatasourceRef): string | undefined {\n if (dsRef instanceof WUResultRef) {\n return this._resolveID(dsRef.datasource().wu());\n } else if (dsRef instanceof RoxieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof HipieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof RestResultRef) {\n return this._resolveID(dsRef.datasource().service());\n }\n }\n\n append(pDS: DSPicker | DatasourceRefType) {\n const refType: DatasourceRefType = pDS instanceof DSPicker ? pDS.datasource() : pDS;\n const ref: DatasourceRef = pDS instanceof DSPicker ? pDS.datasourceRef() : undefined;\n const dsTID = refType.id();\n const ds: DatasourceType = refType instanceof WUResult ? refType.wu() : refType instanceof RoxieResult ? refType.service() : refType instanceof RestResult ? refType.service() : refType;\n const dsID = this.id(ds);\n if (!this._dsDedup[dsID]) {\n this._dsDedup[dsID] = {\n ds,\n result: {}\n };\n }\n if (!this._dsDedup[dsID].result[dsTID]) {\n this._dsDedup[dsID].result[dsTID] = {\n refType,\n ref\n };\n }\n }\n\n getAll(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const key in this._dsDedup) {\n const ddl = this._dsDedup[key].ds.toDDL();\n\n // Inputs ---\n if (ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const inputs: { [fieldID: string]: DDL2.IField } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n const refs: ReferencedFields = {\n inputs: {},\n outputs: {}\n };\n this._dsDedup[key].result[key2].ref.referencedFields(refs);\n for (const inElementID in refs.inputs) {\n refs.inputs[inElementID].forEach(fieldID => {\n inputs[fieldID] = (ddl2 as any).inputs.filter(row => row.id === fieldID)[0];\n });\n }\n }\n ddl.inputs = [];\n for (const key in inputs) {\n ddl.inputs.push(inputs[key]);\n }\n }\n\n // Outputs ---\n if (ddl.type === \"wuresult\" || ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const outputs: { [fieldID: string]: DDL2.IOutput } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n if (ddl2.type === \"wuresult\" || ddl2.type === \"roxie\" || ddl2.type === \"hipie\" || ddl2.type === \"rest\") {\n for (const outputID in ddl2.outputs) {\n outputs[outputID] = ddl2.outputs[outputID];\n }\n }\n }\n ddl.outputs = {};\n for (const key in outputs) {\n ddl.outputs[key] = outputs[key];\n }\n }\n retVal.push(ddl);\n }\n return retVal;\n }\n}\n\nexport class DDLAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _dsWriteDedup: DDLDatasourceAdapter = new DDLDatasourceAdapter();\n private _dsReadDedup: { [id: string]: WU | RoxieService | RestService } = {};\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n for (const viz of this._ec.elements()) {\n this._dsWriteDedup.append(viz.hipiePipeline().datasource());\n }\n return this._dsWriteDedup.getAll();\n }\n\n writeFilters(filters: Filters): DDL2.IFilter {\n if (!filters.exists()) return undefined;\n return filters.toDDL();\n }\n\n readFilters(ddlFilter: DDL2.IFilter, ec: ElementContainer): Filters {\n return Filters.fromDDL(ec, ddlFilter);\n }\n\n writeProject(project: Project): DDL2.IProject {\n if (!project.exists()) return undefined;\n return project.toDDL();\n }\n\n readProject(ddlProject: DDL2.IProject): Project {\n return Project.fromDDL(ddlProject);\n }\n\n writeMappings(mappings: Mappings): DDL2.IMappings {\n if (!mappings.exists()) return { type: \"mappings\", transformations: [] };\n return mappings.toDDL();\n }\n\n readMappings(ddlProject: DDL2.IMappings): Mappings {\n return Mappings.fromDDL(ddlProject);\n }\n\n writeGroupBy(gb: GroupBy): DDL2.IGroupBy {\n if (!gb.exists()) return undefined;\n return gb.toDDL();\n }\n\n readGroupBy(ddlGB: DDL2.IGroupBy): GroupBy {\n return GroupBy.fromDDL(ddlGB);\n }\n\n writeSort(sort: Sort): DDL2.ISort {\n if (!sort.exists()) return undefined;\n return sort.toDDL();\n }\n\n readSort(ddlSort: DDL2.ISort): Sort {\n return Sort.fromDDL(ddlSort);\n }\n\n writeLimit(limit: Limit): DDL2.ILimit {\n if (!limit.exists()) return undefined;\n return limit.toDDL();\n }\n\n readLimit(ddlLimit: DDL2.ILimit): Limit {\n return Limit.fromDDL(ddlLimit);\n }\n\n readDatasourceRef(ddlDSRef: DDL2.IDatasourceRef, dsPicker: DSPicker, elementContainer: ElementContainer): this {\n if (DDL2.isWUResultRef(ddlDSRef)) {\n const wu = this._dsReadDedup[ddlDSRef.id] as WU;\n dsPicker.datasourceID(wu.output(ddlDSRef.output).id());\n } else if (DDL2.isRoxieServiceRef(ddlDSRef)) {\n dsPicker.datasourceID(`${ddlDSRef.id}_${ddlDSRef.output}`);\n const dsRef = dsPicker.datasourceRef() as RoxieResultRef | RestResultRef;\n dsRef\n .request(ddlDSRef.request.map(rf => {\n return Param.fromDDL(this._ec, rf);\n }))\n ;\n } else {\n dsPicker.datasourceID(ddlDSRef.id);\n }\n return this;\n }\n\n writeActivities(view: ActivityPipeline): DDL2.ActivityType[] {\n return view.activities().map(activity => {\n if (activity instanceof Filters) {\n return this.writeFilters(activity);\n } else if (activity instanceof Project) {\n return this.writeProject(activity);\n } else if (activity instanceof GroupBy) {\n return this.writeGroupBy(activity);\n } else if (activity instanceof Sort) {\n return this.writeSort(activity);\n } else if (activity instanceof Limit) {\n return this.writeLimit(activity);\n } else if (activity instanceof Mappings) {\n return this.writeMappings(activity);\n } else if (activity instanceof DSPicker) {\n // Fall through ---\n } else {\n logger.warning(`Unknown activity type: ${activity.classID()}`);\n }\n }).filter(activity => !!activity);\n }\n\n writeVisualization(visualization: Visualization): DDL2.IVisualization {\n return {\n id: visualization.chartPanel().id(),\n title: visualization.title(),\n description: visualization.description(),\n visibility: visualization.visibility(),\n chartType: visualization.chartType(),\n __class: visualization.chartPanel().widget().classID(),\n mappings: this.writeMappings(visualization.mappings()),\n properties: visualization.properties()\n };\n }\n\n readVisualization(ddlViz: DDL2.IVisualization, visualization: Visualization): this {\n const mappings = this.readMappings(ddlViz.mappings);\n visualization.chartPanel().id(ddlViz.id);\n visualization\n .title(ddlViz.title)\n .description(ddlViz.description)\n .visibility(ddlViz.visibility)\n .chartType(ddlViz.chartType as any)\n .properties(ddlViz.properties)\n .mappings(mappings)\n ;\n return this;\n }\n\n writeViewDatasource(dsRef: DatasourceRef) {\n const retVal = dsRef.toDDL();\n retVal.id = this._dsWriteDedup.resolveID(dsRef) || retVal.id;\n return retVal;\n }\n\n writeDDLViews(): DDL2.IView[] {\n // Gather referenced fields ---\n const refFields: ReferencedFields = { inputs: {}, outputs: {} };\n for (const element of this._ec.elements()) {\n element.visualization().mappings().referencedFields(refFields);\n }\n\n return this._ec.elements().map(element => {\n const view = element.hipiePipeline();\n const dsPicker = view.datasource();\n if (dsPicker instanceof DSPicker) {\n const dsRef = dsPicker.datasourceRef();\n const retVal = {\n id: element.id(),\n datasource: this.writeViewDatasource(dsRef),\n activities: this.writeActivities(view),\n visualization: this.writeVisualization(element.visualization())\n };\n return retVal;\n }\n throw new Error(\"Missing DSPicker?\");\n });\n }\n\n writeProperties(): DDL2.IProperties {\n return {\n name: PKG_NAME,\n version: PKG_VERSION,\n buildVersion: BUILD_VERSION,\n layout: this._dashboard.layout() as any\n };\n }\n\n readDDLViews(ddlViews: DDL2.IView[]) {\n for (const ddlView of ddlViews) {\n const element = new Element(this._ec).id(ddlView.id);\n this._ec.append(element);\n const hipiePipeline = element.hipiePipeline();\n this.readDatasourceRef(ddlView.datasource, hipiePipeline.datasource() as DSPicker, this._ec);\n for (const activity of ddlView.activities) {\n if (DDL2.isProjectActivity(activity)) {\n const project = this.readProject(activity);\n hipiePipeline.project(project);\n }\n if (DDL2.isFilterActivity(activity)) {\n const filters = this.readFilters(activity, this._ec);\n hipiePipeline.filters(filters);\n }\n if (DDL2.isGroupByActivity(activity)) {\n const groupBy = this.readGroupBy(activity);\n hipiePipeline.groupBy(groupBy);\n }\n if (DDL2.isSortActivity(activity)) {\n const sort = this.readSort(activity);\n hipiePipeline.sort(sort);\n }\n if (DDL2.isLimitActivity(activity)) {\n const limit = this.readLimit(activity);\n hipiePipeline.limit(limit);\n }\n }\n this.readVisualization(ddlView.visualization, element.visualization());\n }\n }\n\n readProperties(properties: DDL2.IProperties) {\n if (properties && properties.layout) {\n this._dashboard.layoutObj(properties.layout as object);\n }\n }\n\n write(): DDL2.Schema {\n this._dsWriteDedup.clear();\n const retVal: DDL2.Schema = {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDDLViews(),\n properties: this.writeProperties(),\n hipieProperties: this._dashboard.hipieProps()\n };\n return retVal;\n }\n\n read(ddl: DDL2.Schema) {\n this._dsWriteDedup.clear();\n for (const ddlDS of ddl.datasources) {\n switch (ddlDS.type) {\n case \"databomb\":\n this._ec.appendDatasource(Databomb.fromDDL(ddlDS));\n break;\n case \"form\":\n this._ec.appendDatasource(Form.fromDDL(ddlDS));\n break;\n case \"logicalfile\":\n this._ec.appendDatasource(LogicalFile.fromDDL(this._ec, ddlDS));\n break;\n case \"wuresult\":\n const wu = WU.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[wu.id()] = wu;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(wu.output(resultName));\n }\n break;\n case \"roxie\":\n case \"hipie\":\n const rs = RoxieService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs.id()] = rs;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RoxieResult.fromDDL(this._ec, rs, resultName));\n }\n break;\n case \"rest\":\n const rs2 = RestService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs2.id()] = rs2;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RestResult.fromDDL(this._ec, rs2, resultName));\n }\n break;\n default:\n logger.warning(`Unknown ddl datasource type: ${(ddlDS as any).type} `);\n }\n }\n this.readDDLViews(ddl.dataviews);\n this.readProperties(ddl.properties);\n this._dashboard.hipieProps(ddl.hipieProperties);\n }\n}\n","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { classID2Meta, ClassMeta, isArray } from \"@hpcc-js/util\";\nimport { Activity, stringify } from \"./activities/activity.ts\";\nimport { Dashboard } from \"./dashboard.ts\";\nimport { DDLAdapter } from \"./ddl.ts\";\nimport { ElementContainer } from \"./model/element.ts\";\n\ntype WidgetImport = { [moduleID: string]: { [classID: string]: boolean } };\n\nclass Imports {\n _moduleMap: WidgetImport = {};\n\n append(widgetMeta: ClassMeta) {\n if (!this._moduleMap[widgetMeta.module]) {\n this._moduleMap[widgetMeta.module] = {};\n }\n this._moduleMap[widgetMeta.module][widgetMeta.class] = true;\n }\n\n write(): string {\n const importJS: string[] = [];\n for (const moduleID in this._moduleMap) {\n const classIDs: string[] = [];\n for (const classID in this._moduleMap[moduleID]) {\n classIDs.push(classID);\n }\n classIDs.sort();\n importJS.push(`import { ${classIDs.join(\", \")} } from \"${moduleID}\";`);\n }\n return importJS.join(\"\\n\");\n }\n}\n\nexport function createProps(pe: PropertyExt): { [key: string]: any } {\n const retVal: { [key: string]: any } = {};\n for (const meta of pe.publishedProperties()) {\n if (pe[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n const val = pe[meta.id]();\n switch (meta.type) {\n case \"propertyArray\":\n const serialization = val.map(createProps);\n if (serialization) {\n retVal[meta.id] = serialization;\n }\n break;\n default:\n retVal[meta.id] = val;\n }\n }\n }\n return retVal;\n}\n\nexport class JavaScriptAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _ddlAdapter: DDLAdapter;\n private _ddlSchema: DDL2.Schema;\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n this._ddlAdapter = new DDLAdapter(this._dashboard);\n this._ddlSchema = this._ddlAdapter.write();\n }\n\n createProps(prefix: string, pe: PropertyExt, postfix: string = \"\"): string[] {\n let retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_exists\"]()) {\n switch (meta.type) {\n case \"string\":\n case \"set\":\n retVal.push(`${prefix}.${meta.id}(\"${(pe as any)[meta.id]()}\")${postfix};`);\n break;\n case \"number\":\n case \"boolean\":\n retVal.push(`${prefix}.${meta.id}(${(pe as any)[meta.id]()})${postfix};`);\n break;\n case \"widget\":\n retVal = retVal.concat(this.createProps(`${prefix}.${meta.id}()`, (pe as any)[meta.id]()));\n break;\n case \"propertyArray\":\n if (meta.ext)\n retVal.push(`${prefix}.${meta.id}([${(pe as any)[meta.id]()}])${postfix};`);\n break;\n default:\n break;\n }\n }\n }\n return retVal;\n }\n\n writeMeta(dsDetails: Activity) {\n return \"\";\n }\n\n private safeID(id: string): string {\n if (!id) return id;\n return id.replace(/ /g, \"_\").replace(/\\./g, \"_\");\n }\n\n private datasourceRefID(view: DDL2.IView): string {\n const datasourceRef = view.datasource;\n if (DDL2.isRoxieServiceRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}_${this.safeID(view.id)}`;\n } else if (DDL2.isWUResultRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}`;\n }\n return `${this.safeID(datasourceRef.id)}`;\n }\n\n _dedup: { [key: string]: boolean } = {};\n private writeDatasource(view: DDL2.IView): string[] {\n const datasourceRef = view.datasource;\n const retVal: string[] = [];\n const datasource = this._ddlSchema.datasources.filter(ds => ds.id === datasourceRef.id)[0];\n const outputID = (datasourceRef as any).output;\n const id = this.datasourceRefID(view);\n if (!this._dedup[id]) {\n this._dedup[id] = true;\n switch (datasource.type) {\n case \"wuresult\":\n const wuID = this.safeID(view.datasource.id);\n if (!this._dedup[wuID]) {\n this._dedup[wuID] = true;\n retVal.push(` export const ${wuID} = new marshaller.WU()\n .url(\"${datasource.url}\")\n .wuid(\"${datasource.wuid}\")\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.WUResult()\n .wu(${wuID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n break;\n case \"logicalfile\":\n retVal.push(` export const ${id} = new marshaller.LogicalFile()\n .url(\"${datasource.url}\")\n .logicalFile(\"${datasource.logicalFile}\")\n .responseFields(${stringify(datasource.fields)})\n ;`);\n break;\n case \"hipie\":\n case \"roxie\":\n const serviceID = this.safeID(view.datasource.id);\n if (!this._dedup[serviceID]) {\n this._dedup[serviceID] = true;\n retVal.push(` export const ${serviceID} = new marshaller.RoxieService(ec)\n .url(\"${datasource.url}\")\n .querySet(\"${datasource.querySet}\")\n .queryID(\"${datasource.queryID}\")\n .requestFields(${stringify(datasource.inputs)})\n ;`);\n }\n const resultID = serviceID + \"_\" + this.safeID(outputID);\n if (!this._dedup[resultID]) {\n this._dedup[resultID] = true;\n retVal.push(` export const ${resultID} = new marshaller.RoxieResult(ec)\n .service(${serviceID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.HipieResultRef(ec)\n .datasource(${resultID})\n .requestFieldRefs(${stringify((datasourceRef as DDL2.IRoxieServiceRef).request)})\n ;`);\n break;\n case \"databomb\":\n {\n retVal.push(` export const ${id} = new marshaller.Databomb()\n .format(\"${datasource.format}\")\n .payload(${JSON.stringify(datasource.payload)})\n ;`);\n }\n break;\n case \"form\":\n {\n const fromFields: string[] = [];\n for (const field of datasource.fields) {\n fromFields.push(`new marshaller.FormField().fieldID(\"${field.id}\").default(\"${field.default || \"\"}\")`);\n }\n retVal.push(` export const ${id} = new marshaller.Form()\n .formFields([\n ${fromFields.join(\",\\n \")}\n ])\n ;`);\n }\n break;\n }\n }\n return retVal;\n }\n\n private writeActivity(activity: DDL2.ActivityType): string {\n switch (activity.type) {\n case \"filter\":\n return `new marshaller.Filters(ec).conditions(${stringify(activity.conditions)})`;\n case \"project\":\n return `new marshaller.Project().transformations(${stringify(activity.transformations)})`;\n case \"groupby\":\n return `new marshaller.GroupBy().fieldIDs(${JSON.stringify(activity.groupByIDs)}).aggregates(${stringify(activity.aggregates)})`;\n case \"sort\":\n return `new marshaller.Sort().conditions(${stringify(activity.conditions)})`;\n case \"limit\":\n return `new marshaller.Limit().rows(${activity.limit})`;\n case \"mappings\":\n return `new marshaller.Mappings().transformations(${stringify(activity.transformations)})`;\n }\n }\n\n writeWidgetProps(pe: PropertyExt): string[] {\n const retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n retVal.push(`.${meta.id}(${JSON.stringify((pe as any)[meta.id]())})`);\n }\n }\n return retVal;\n }\n\n private joinWithPrefix(props: DDL2.IWidgetProperties, imports: Imports, joinStr: string, postFix: string): string {\n let retVal: string = \"\";\n let meta: ClassMeta;\n if (props.__class) {\n meta = classID2Meta(props.__class);\n imports.append(meta);\n retVal += `new ${meta.class}()`;\n }\n for (const prop in props) {\n if (prop === \"__class\") {\n } else if (isArray(props[prop])) {\n const arr = `${(props[prop] as any[]).map(item => this.joinWithPrefix(item, imports, joinStr + \" \", \"\")).join(`,${joinStr} `)}`;\n if (arr) {\n retVal += `${joinStr} .${prop}([${joinStr} ${arr}${joinStr} ])${postFix}`;\n }\n } else {\n retVal += `${joinStr} .${prop}(${JSON.stringify(props[prop])})${postFix}`;\n }\n }\n return retVal;\n }\n\n private writeWidget(dataview: DDL2.IView, imports: Imports): string {\n return ` export const ${dataview.visualization.id} = new marshaller.VizChartPanel()\n .id(\"${dataview.visualization.id}\")\n .title(\"${dataview.visualization.title}\")\n .widget(${this.joinWithPrefix(dataview.visualization.properties[\"widget\"] as any, imports, \"\\n \", \"\")})\n ;`;\n }\n\n private writeElement(dataview: DDL2.IView) {\n const activities: string[] = [`data.${this.datasourceRefID(dataview)}`];\n for (const activity of dataview.activities) {\n activities.push(this.writeActivity(activity));\n }\n const updates: string[] = [];\n for (const filteredViz of this._ec.filteredBy(dataview.id)) {\n updates.push(`${filteredViz.id()}.refresh();`);\n }\n return `\nconst ${dataview.id} = new marshaller.Element(ec)\n .id(\"${dataview.id}\")\n .pipeline([\n ${activities.join(\",\\n \")}\n ])\n .mappings(new marshaller.Mappings().transformations(${stringify(dataview.visualization.mappings.transformations)}))\n .chartPanel(viz.${dataview.visualization.id})\n .on(\"selectionChanged\", () => {\n ${updates.join(\"\\n \")}\n }, true)\n ;\n${dataview.id}.visualization()\n .visibility(\"${dataview.visualization.visibility}\")\n .secondaryDataviewID(\"${dataview.visualization.secondaryDataviewID || \"\"}\")\n ;\nec.append(${dataview.id});\n`;\n }\n\n private writeDatasources(): string[] {\n let retVal: string[] = [];\n for (const dataview of this._ddlSchema.dataviews) {\n retVal = retVal.concat(this.writeDatasource(dataview));\n }\n return retVal;\n }\n\n private writeWidgets(): { widgetImports: string, widgetDefs: string } {\n const jsDef: string[] = [];\n const imports = new Imports();\n for (const dataview of this._ddlSchema.dataviews) {\n jsDef.push(this.writeWidget(dataview, imports));\n }\n return {\n widgetImports: imports.write(),\n widgetDefs: jsDef.join(\"\\n\\n\")\n };\n }\n\n private writeElements(): string {\n let retVal = \"\";\n for (const dataview of this._ddlSchema.dataviews) {\n retVal += this.writeElement(dataview);\n }\n return retVal;\n }\n\n createJavaScript(): string {\n const widgets = this.writeWidgets();\n\n return `\\\n${widgets.widgetImports}\nimport * as marshaller from \"@hpcc-js/marshaller\";\n\n// Dashboard Element Container (Model) ---\nconst ec = new marshaller.ElementContainer();\n\nnamespace data {\n${this.writeDatasources().join(\"\\n\")}\n}\n\nnamespace viz {\n${widgets.widgetDefs}\n}\n\n// Dashboard Elements (Controller) ---\n${this.writeElements().trim()}\n\nec.refresh();\n\n// Optional ---\nconst errors = ec.validate();\nfor (const error of errors) {\n console.error(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n}\n\nexport const dashboard = new marshaller.Dashboard(ec)\n .target(\"placeholder\")\n .titleVisible(false)\n .hideSingleTabs(true)\n .layoutObj(${stringify(this._dashboard.layout())})\n .render()\n ;\n\n// @ts-ignore\nconst ddl = ${JSON.stringify(this._ddlSchema)};\n`;\n }\n}\n","import { Button, Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Activity } from \"./activities/activity.ts\";\nimport { Databomb } from \"./activities/databomb.ts\";\nimport { DSPicker } from \"./activities/dspicker.ts\";\nimport { Filters } from \"./activities/filter.ts\";\nimport { Form, FormField } from \"./activities/form.ts\";\nimport { GroupBy } from \"./activities/groupby.ts\";\nimport { Limit } from \"./activities/limit.ts\";\nimport { Project } from \"./activities/project.ts\";\nimport { Sort } from \"./activities/sort.ts\";\nimport { DashboardDockPanel } from \"./dashboardDockPanel.ts\";\nimport { DashboardGrid } from \"./dashboardGrid.ts\";\nimport { DDLAdapter } from \"./ddl.ts\";\nimport { JavaScriptAdapter } from \"./javascriptadapter.ts\";\nimport { Element, ElementContainer } from \"./model/element.ts\";\n\nimport \"../../src/ddl2/dashboard.css\";\n\nexport interface IDockPanel {\n layoutObj(_: object | null): this;\n layout();\n widgets();\n activate(element: Element);\n hideSingleTabs(bool?: boolean);\n syncWidgets();\n syncPopups();\n}\n\nexport class Dashboard extends ChartPanel {\n\n private _dockPanel: IDockPanel;\n\n private _designModeButton = new ToggleButton().faChar(\"fa-object-group\").tooltip(\"Design Mode...\")\n .selected(true)\n .on(\"click\", () => {\n if (this._dockPanel instanceof DashboardGrid) {\n this._dockPanel\n .designMode(this._designModeButton.selected())\n .lazyRender()\n ;\n }\n });\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const newElem = new Element(this._ec);\n this._ec.append(newElem);\n this.renderPromise().then(() => {\n newElem.refresh().then(() => {\n this.activate(newElem);\n });\n });\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n const elem = this._prevActive;\n if (elem && window.confirm(`Remove Widget \"${elem.id()}\"?`)) {\n this._ec.clear(elem.id());\n this.renderPromise().then(() => {\n this.vizActivation(undefined);\n });\n }\n });\n\n private _reloadButton = new Button().faChar(\"fa-refresh\").tooltip(\"Reload...\")\n .on(\"click\", () => {\n const json = this.save();\n this._ec.clear();\n this.vizActivation(undefined);\n this.renderPromise().then(() => {\n this.restore(json);\n this.renderPromise().then(() => {\n this._ec.refresh().then(() => {\n });\n });\n });\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n Promise.all([\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/airports.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/carriers.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/stats.csv\")\n ]).then(([airports, carriers, stats]) => {\n const popupElement = this.addForm(\"popup\", {\n type: \"form\",\n id: \"global_filter\",\n fields: [{\n type: \"string\",\n id: \"Airport\"\n }, {\n type: \"string\",\n id: \"Airline\"\n }]\n });\n popupElement.visualization()\n .title(\"Global Filter\")\n .visibility(\"flyout\")\n .chartType(\"FieldForm\")\n ;\n const airportsElement = this.addDatabomb(\"airports\", airports, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airport\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n airportsElement.chartPanel().title(\"Airports\");\n const carrierElement = this.addDatabomb(\"carriers\", carriers, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airline\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n carrierElement.chartPanel().title(\"Airlines\");\n const statsElement = this.addDatabomb(\"stats\", stats, \"csv\",\n [],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(airportsElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"airport\")]),\n new Filters.Filter().source(carrierElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"carrier\").nullable(true)])\n ]));\n statsElement.chartPanel().title(\"Stats\");\n return Promise.all([\n popupElement.refresh(),\n airportsElement.refresh(),\n carrierElement.refresh(),\n statsElement.refresh()\n ]);\n }).then(() => {\n this.render();\n });\n });\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\" = \"csv\", databombFields: FormField[], ...activities: Activity[]): Element {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n if (databombFields.length > 0) {\n databomb.databombFields(databombFields);\n }\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n for (const activity of activities) {\n if (activity instanceof Filters) {\n newElem.hipiePipeline().filters(activity);\n } else if (activity instanceof Project) {\n newElem.hipiePipeline().project(activity);\n } else if (activity instanceof GroupBy) {\n newElem.hipiePipeline().groupBy(activity);\n } else if (activity instanceof Sort) {\n newElem.hipiePipeline().sort(activity);\n } else if (activity instanceof Limit) {\n newElem.hipiePipeline().limit(activity);\n }\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n addForm(label: string, ddl: DDL2.IForm): Element {\n const databomb = new Form().id(label).fromDDL(ddl);\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n static create(target: string, ddl: DDL2.Schema): Promise<Dashboard> {\n return new Promise((resolve, reject) => {\n const ec = new ElementContainer();\n const dashboard = new Dashboard(ec)\n .target(target)\n .hideSingleTabs(true)\n .titleVisible(false)\n .restore(ddl)\n .render(w => {\n ec.refresh().then(() => {\n resolve(dashboard);\n });\n });\n });\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._ec.on(\"vizStateChanged\", (viz) => {\n this.vizStateChanged(viz);\n });\n this.buttons([this._designModeButton, new Spacer(), this._addButton, this._removeButton, new Spacer(), this._reloadButton, new Spacer(), this._addSamples]);\n this.ensureDockPanel(\"dock\");\n }\n\n ensureDockPanel(mode: \"dock\" | \"grid\" = \"dock\") {\n if ((mode === \"dock\" && !(this._dockPanel instanceof DashboardDockPanel)) || (mode === \"grid\" && !(this._dockPanel instanceof DashboardGrid))) {\n this._dockPanel = (mode === \"dock\" ? new DashboardDockPanel(this._ec) : new DashboardGrid(this._ec).designMode(this.titleVisible()))\n .on(\"vizActivation\", (elem: Element) => {\n this.vizActivation(elem);\n })\n ;\n this.widget(this._dockPanel as any);\n }\n }\n\n elementContainer(): ElementContainer {\n return this._ec;\n }\n\n private _hipieProps;\n hipieProps(): DDL2.IProperties;\n hipieProps(_: DDL2.IProperties): this;\n hipieProps(_?: DDL2.IProperties): DDL2.IProperties | this {\n if (!arguments.length) return this._hipieProps;\n this._hipieProps = _;\n return this;\n }\n\n ddl(): DDL2.Schema;\n ddl(_: DDL2.Schema): this;\n ddl(_?: DDL2.Schema): DDL2.Schema | this {\n const ddlAdapter = new DDLAdapter(this);\n if (!arguments.length) return ddlAdapter.write();\n this._ec.clear();\n ddlAdapter.read(_);\n return this;\n }\n\n // Used to delay load a layout after a render...\n layoutObj(_: object | null): this {\n this._dockPanel.layoutObj(_);\n return this;\n }\n\n save(): DDL2.Schema {\n const ddlAdapter = new DDLAdapter(this);\n return ddlAdapter.write();\n }\n\n restore(_: DDL2.Schema, render: boolean = false): this {\n this.ensureDockPanel(_ && _.properties && _.properties.layout instanceof Array ? \"grid\" : \"dock\");\n const ddlAdapter = new DDLAdapter(this);\n ddlAdapter.read(_);\n if (render) {\n this.renderPromise().then(() => {\n this._ec.refresh();\n });\n }\n return this;\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): this {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n return this.restore(ddl2, true);\n }\n\n javascript(): string {\n const jsAdapter = new JavaScriptAdapter(this);\n return jsAdapter.createJavaScript();\n }\n\n layout() {\n return this._dockPanel.layout();\n }\n\n widgets(): Widget[] {\n return this._dockPanel.widgets();\n }\n\n activate(element: Element) {\n this._dockPanel.activate(element);\n }\n\n hideSingleTabs(): boolean;\n hideSingleTabs(_: boolean): this;\n hideSingleTabs(_?: boolean): boolean | this {\n if (!arguments.length) return this._dockPanel.hideSingleTabs();\n this._dockPanel.hideSingleTabs(_);\n return this;\n }\n\n updateButtonState() {\n this._designModeButton.enabled(this._dockPanel instanceof DashboardGrid).render();\n this._removeButton.enabled(this._prevActive !== undefined).render();\n }\n\n update(domNode: HTMLElement, element) {\n this._dockPanel.syncWidgets();\n super.update(domNode, element);\n this.updateButtonState();\n }\n\n private _prevActive: Element;\n vizActivation(viz: Element) {\n this._prevActive = viz;\n this._removeButton.enabled(viz !== undefined).render();\n }\n\n vizStateChanged(viz: Element) {\n }\n\n render(callback?): this {\n this._dockPanel.syncPopups();\n return super.render(w => {\n if (callback) {\n callback(w);\n }\n });\n }\n}\nDashboard.prototype._class += \" dashboard_dashboard\";\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { DDL2, validate2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { SplitPanel } from \"@hpcc-js/phosphor\";\n\nimport \"../../src/ddl2/ddleditor.css\";\n\nexport class DDLEditor extends SplitPanel {\n summary: string = \"0 Errors\";\n _ddlEditor = new JSONEditor().on(\"changes\", (changes) => {\n this.checkSyntax();\n });\n _errorTable = new Table()\n .columns([\"dataPath\", \"keyword\", \"message\", \"params\"])\n ;\n\n ddl(): object;\n ddl(_: object): this;\n ddl(_?: object): object | this {\n if (!arguments.length) return this._ddlEditor.json();\n this._ddlEditor.json(_);\n this.checkSyntax();\n return this;\n }\n\n checkSyntax() {\n try {\n const json = this.ddl();\n try {\n const { success, errors } = validate2(json as DDL2.Schema);\n if (success) {\n this._errorTable.data([]);\n } else {\n this._errorTable.data(errors.map(error => [error.dataPath, error.keyword, error.message, JSON.stringify(error.params)]));\n }\n } catch (e) {\n this._errorTable.data([[\"\", \"Validation Failed\", \"\", \"\"]]);\n }\n } catch (e) {\n this._errorTable.data([[\"ALL\", \"Invalid JSON\", \"\", \"\"]]);\n }\n if (this._renderCount) {\n this._errorTable.lazyRender();\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._ddlEditor)\n .addWidget(this._errorTable)\n ;\n }\n\n update(domNode, _element) {\n super.update(domNode, _element);\n }\n\n}\nDDLEditor.prototype._class += \" codemirror_DDLEditor\";\n","import { Widget } from \"@hpcc-js/common\";\nimport { Edge, IGraphData, Lineage, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Activity } from \"./activities/activity.ts\";\nimport { Databomb } from \"./activities/databomb.ts\";\nimport { DSPicker } from \"./activities/dspicker.ts\";\nimport { Form } from \"./activities/form.ts\";\nimport { LogicalFile } from \"./activities/logicalfile.ts\";\nimport { RestResult, RestResultRef } from \"./activities/rest.ts\";\nimport { RoxieResult, RoxieResultRef } from \"./activities/roxie.ts\";\nimport { WUResult } from \"./activities/wuresult.ts\";\nimport { Element, ElementContainer, State } from \"./model/element.ts\";\nimport { Visualization } from \"./model/visualization.ts\";\nimport { VizChartPanel } from \"./model/vizChartPanel.ts\";\n\nexport interface VertexData {\n view?: Element;\n activity?: Activity;\n visualization?: Visualization;\n chartPanel?: VizChartPanel;\n state?: State;\n}\n\nexport class GraphAdapter {\n private subgraphMap: { [key: string]: Subgraph } = {};\n private vertexMap: { [key: string]: Vertex } = {};\n private edgeMap: { [key: string]: Edge } = {};\n private hierarchy: Lineage[] = [];\n private vertices: Widget[] = [];\n private edges: Edge[] = [];\n\n constructor(private _ec: ElementContainer) {\n }\n\n clear() {\n this.subgraphMap = {};\n this.vertexMap = {};\n this.edgeMap = {};\n\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n }\n\n createSubgraph(id: string, label: string, data?: VertexData): Subgraph {\n let retVal: Subgraph = this.subgraphMap[id];\n if (!retVal) {\n retVal = new Subgraph()\n // .classed({ subgraph: true })\n // .showIcon(false)\n .columns([\"DS\"])\n .data([[data]])\n ;\n this.subgraphMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal.title(`${label}`);\n retVal.getBBox(true);\n return retVal;\n }\n\n createVertex(id: string, label: string, data?: VertexData, tooltip: string = \"\", fillColor: string = \"#dcf1ff\"): Vertex {\n let retVal: Vertex = this.vertexMap[id];\n if (!retVal) {\n retVal = new Vertex()\n .columns([\"DS\"])\n .data([[data]])\n .icon_diameter(0)\n ;\n this.vertexMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal\n .textbox_shape_colorFill(fillColor)\n .text(tooltip ? `${label}\\n${tooltip}` : `${label}`)\n .tooltip(tooltip)\n ;\n retVal.getBBox(true);\n return retVal;\n }\n\n createEdge(sourceID: string, targetID: string) {\n const edgeID = `${sourceID}->${targetID}`;\n let retVal = this.edgeMap[edgeID];\n if (!retVal) {\n retVal = new Edge()\n .sourceVertex(this.vertexMap[sourceID])\n .targetVertex(this.vertexMap[targetID])\n ;\n this.edgeMap[edgeID] = retVal;\n }\n this.edges.push(retVal);\n return retVal;\n }\n\n createDatasource(dsDetails: Activity): string {\n if (dsDetails instanceof DSPicker) {\n dsDetails = dsDetails.selection().datasource();\n }\n if (dsDetails instanceof WUResult) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const wuID = `${dsDetails.url()}/${dsDetails.wuid()}`;\n const wu: Subgraph = this.createSubgraph(wuID, `${dsDetails.wuid()}`);\n this.hierarchy.push({ parent: server, child: wu });\n const resultID = `${wuID}/${dsDetails.resultName()}`;\n const result: Vertex = this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails });\n this.hierarchy.push({ parent: wu, child: result });\n return resultID;\n } else if (dsDetails instanceof LogicalFile) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const lfID = `${serverID}/${dsDetails.logicalFile()}`;\n const lf: Vertex = this.createVertex(lfID, dsDetails.logicalFile(), { activity: dsDetails });\n this.hierarchy.push({ parent: server, child: lf });\n return lfID;\n } else if (dsDetails instanceof RoxieResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID(); // `${dsDetails.url()}/${dsDetails.querySet()}`;\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.querySet());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.queryID())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RoxieResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const querySetID = dsDetails.serviceID();\n const querySet: Subgraph = this.createSubgraph(querySetID, dsDetails.service().querySet());\n this.hierarchy.push({ parent: server, child: querySet });\n const queryID = `${querySetID}/${dsDetails.service().queryID()}`;\n const query: Subgraph = this.createSubgraph(queryID, dsDetails.service().queryID());\n this.hierarchy.push({ parent: querySet, child: query });\n const resultID = `${queryID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: query,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(queryID, resultID);\n return resultID;\n } else if (dsDetails instanceof RestResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID();\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.action());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.action())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RestResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const serviceID = dsDetails.serviceID();\n const actionID = `${serverID}/${dsDetails.service().action()}`;\n const action: Subgraph = this.createSubgraph(serviceID, dsDetails.service().action());\n this.hierarchy.push({ parent: server, child: action });\n const resultID = `${actionID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: action,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(actionID, resultID);\n return resultID;\n } else if (dsDetails instanceof Form) {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else if (dsDetails instanceof Databomb) {\n const id = dsDetails.id();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n }\n }\n\n createActivity(sourceID: string, view: Element, activity: Activity, label?: string): string {\n const surface: Subgraph = this.createSubgraph(view.id(), `${view.id()}`, { view });\n let fillColor = null;\n let tooltip = \"\";\n if (activity.exists()) {\n const errors = activity.validate();\n if (errors.length) {\n fillColor = \"pink\";\n tooltip = errors.map(error => `${error.source}: ${error.msg}`).join(\"\\n\");\n }\n } else {\n fillColor = \"lightgrey\";\n }\n const vertex: Vertex = this.createVertex(activity.id(), label || `${activity.classID()}`, { view, activity }, tooltip, fillColor);\n if (sourceID) {\n this.createEdge(sourceID, activity.id());\n }\n this.hierarchy.push({ parent: surface, child: vertex });\n return activity.id();\n }\n\n createGraph(): IGraphData {\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n\n this._ec.elements().forEach(e => {\n this.createDatasource(e.hipiePipeline().datasource());\n });\n\n const lastID: { [key: string]: string } = {};\n for (const view of this._ec.elements()) {\n const pipeline = view.hipiePipeline();\n let prevID = this.createDatasource(pipeline.datasource());\n for (const activity of pipeline.activities()) {\n prevID = this.createActivity(prevID, view, activity);\n }\n const visualization = view.visualization();\n const mappings = visualization.mappings();\n const mappingVertexID = this.createActivity(prevID, view, mappings, \"Mappings\");\n const vizSubgraphID = `${visualization.id()}-sg`;\n const surface: Subgraph = this.createSubgraph(vizSubgraphID, \"Visualization\", { visualization });\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: surface\n });\n this.hierarchy.push({\n parent: surface,\n child: this.vertexMap[mappings.id()]\n });\n const vizVertexID = `${visualization.id()}-viz`;\n const widgetVertex: Vertex = this.createVertex(vizVertexID, visualization.chartPanel().widget().classID(), { view, chartPanel: visualization.chartPanel() });\n this.createEdge(mappingVertexID, vizVertexID);\n this.hierarchy.push({\n parent: surface,\n child: widgetVertex\n });\n const stateVertexID = `${visualization.id()}-state`;\n const stateVertex: Vertex = this.createVertex(stateVertexID, \"Selection\", { view, state: view.state() });\n this.createEdge(vizVertexID, stateVertexID)\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n this.createEdge(prevID, stateVertexID);\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: stateVertex\n });\n prevID = stateVertexID;\n lastID[pipeline.id()] = prevID;\n }\n\n // Mapping Secondary Sources ---\n for (const view of this._ec.elements()) {\n const visualization = view.visualization();\n const secondaryElement = this._ec.element(visualization.secondaryDataviewID());\n if (secondaryElement) {\n const mappings = secondaryElement.visualization().mappings();\n this.createEdge(mappings.id(), `${visualization.id()}-viz`);\n }\n }\n\n for (const viz of this._ec.elements()) {\n const view = viz.hipiePipeline();\n for (const updateInfo of view.updatedByGraph()) {\n this.createEdge(lastID[this._ec.element(updateInfo.from).hipiePipeline().id()], updateInfo.to.id())\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n }\n }\n\n return {\n vertices: this.vertices,\n edges: this.edges,\n hierarchy: this.hierarchy\n };\n }\n}\n","import { Button, Spacer } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandRegistry, ContextMenu } from \"@hpcc-js/phosphor\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Databomb } from \"./activities/databomb.ts\";\nimport { DatasourceRefType } from \"./activities/datasource.ts\";\nimport { DSPicker } from \"./activities/dspicker.ts\";\nimport { Form, FormField } from \"./activities/form.ts\";\nimport { LogicalFile } from \"./activities/logicalfile.ts\";\nimport { RestField, RestResult, RestService } from \"./activities/rest.ts\";\nimport { RoxieResult, RoxieService } from \"./activities/roxie.ts\";\nimport { WU, WUResult } from \"./activities/wuresult.ts\";\nimport { ElementContainer } from \"./model/element.ts\";\n\nexport class DSTable extends ChartPanel {\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const node = this._addButton.element().node();\n const rect = node.getBoundingClientRect();\n if (this._contextMenu.open({\n target: node,\n currentTarget: node,\n clientX: rect.left,\n clientY: rect.bottom\n })) {\n }\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n this.remove();\n });\n\n private _cloneButton = new Button().faChar(\"fa-clone\").tooltip(\"Clone...\")\n .enabled(false)\n .on(\"click\", () => {\n if (this._selectedDS2) {\n if (this._selectedDS2 instanceof Databomb) {\n this.add(Databomb.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof Form) {\n this.add(Form.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof LogicalFile) {\n this.add(LogicalFile.fromDDL(this._ec, this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof RestResult) {\n this.add(new RestResult(this._ec)\n .service(RestService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof WUResult) {\n this.add(new WUResult(this._ec)\n .wu(WU.fromDDL(this._ec, this._selectedDS2.wu().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof RoxieResult) {\n this.add(new RoxieResult(this._ec)\n .service(RoxieService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else {\n console.warn(\"Unknown datasoure type\");\n }\n }\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/airports.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/carriers.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/candidate-2.x.x/utils/data/data/stats.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n this.add(new RestResult(this._ec)\n .service(new RestService(this._ec)\n .url(\"https://cmsapi.pulselive.com/\")\n .action(\"rugby/rankings/mru\")\n .requestFields([\n new RestField().fieldID(\"xxx\"),\n new RestField().fieldID(\"date\")\n ]))\n .resultName(\"entries\")\n );\n this.add(new WUResult(this._ec)\n .wu(new WU(this._ec).url(\"http://localhost:8010\").wuid(\"W20190802-112509\"))\n .resultName(\"Result 1\")\n );\n this.add(new LogicalFile(this._ec)\n .url(\"http://localhost:8010\")\n .logicalFile(\"progguide::exampledata::peopleaccts\")\n );\n this.add(new LogicalFile(this._ec)\n .url(\"http://localhost:8010\")\n .logicalFile(\"progguide::exampledata::people\")\n );\n const vmRoxie = new RoxieService(this._ec)\n .url(\"http://localhost:8002\")\n .querySet(\"roxie\")\n .queryID(\"peopleaccounts\")\n ;\n this.add(new RoxieResult(this._ec)\n .service(vmRoxie)\n .resultName(\"Accounts\")\n );\n this.add(new Form()\n .formFields([\n new FormField().type(\"number\").fieldID(\"id\").value(8),\n new FormField().fieldID(\"first_name\").value(\"John\"),\n new FormField().fieldID(\"last_name\").value(\"Doe\"),\n new FormField().fieldID(\"gender\").default(\"M\"),\n new FormField().type(\"number\").fieldID(\"age\")\n ])\n );\n this.render();\n });\n\n private _dstable = new Table();\n private _selectedDS;\n private _selectedDS2;\n\n private _contextMenu;\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .buttons([this._addButton, this._removeButton, new Spacer(), this._cloneButton, new Spacer(), this._addSamples])\n .widget(this._dstable)\n .columns([\"ID\", \"Type\", \"References\"])\n .on(\"click\", (row, col, sel) => {\n this._selectedDS2 = row.__lparam;\n if (sel && row.References === 0 && row.ID !== \"Empty\") {\n this._selectedDS = row.__lparam;\n } else {\n delete this._selectedDS;\n }\n this._removeButton.enabled(this._selectedDS !== undefined).render();\n this._cloneButton.enabled(this._selectedDS2 !== undefined).render();\n })\n ;\n\n this.initMenu();\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"add_wu_result\", {\n label: \"Workunit Result\",\n execute: () => {\n this.add(new WUResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_logicalfile\", {\n label: \"Logical File\",\n execute: () => {\n this.add(new LogicalFile(this._ec));\n }\n });\n\n commands.addCommand(\"add_roxie\", {\n label: \"Roxie Service\",\n execute: () => {\n this.add(new RoxieResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_rest\", {\n label: \"Rest\",\n execute: () => {\n this.add(new RestResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_databomb\", {\n label: \"Databomb\",\n execute: () => {\n this.add(new Databomb());\n }\n });\n\n commands.addCommand(\"add_form\", {\n label: \"Form\",\n execute: () => {\n this.add(new Form());\n }\n });\n\n this._contextMenu = new ContextMenu({ commands });\n this._contextMenu.addItem({ command: \"add_wu_result\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_logicalfile\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_roxie\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_rest\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_databomb\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_form\", selector: \".common_Button\" });\n }\n\n add(ds: DatasourceRefType) {\n this._ec.appendDatasource(ds);\n this.render();\n }\n\n remove() {\n if (this._selectedDS) {\n this._ec.removeDatasource(this._selectedDS);\n this.render();\n }\n }\n\n private _prevDataID;\n render(callback?) {\n const refs = {};\n this._ec.elements().forEach(e => {\n let ds = e.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds = ds.datasource();\n }\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n refs[ds.id()]++;\n });\n const data = this._ec.datasources().filter(ds => ds.id() !== \"Empty\").map(ds => {\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n return [ds.id(), ds.classID(), refs[ds.id()] || 0, ds];\n });\n const dataID = JSON.stringify(refs);\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element.ts\";\n\nexport class DVTable extends ChartPanel {\n\n private _dvtable = new Table();\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .titleVisible(false)\n .widget(this._dvtable)\n .columns([\"ID\", \"Title\"])\n ;\n }\n\n private _prevDataID;\n render(callback?) {\n const data = this._ec.elements().map(elem => {\n return [elem.id(), elem.visualization().title(), elem];\n });\n const dataID = hashSum(data.map(row => row[0]));\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, SelectionBar, SelectionButton, Spacer } from \"@hpcc-js/common\";\nimport { DatasourceTable } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { PropertyEditor } from \"@hpcc-js/other\";\nimport { SplitPanel, TabPanel } from \"@hpcc-js/phosphor\";\nimport { Activity } from \"./activities/activity.ts\";\nimport { DatasourceAdapt } from \"./activities/databomb.ts\";\nimport { Datasource } from \"./activities/datasource.ts\";\nimport { DSPicker } from \"./activities/dspicker.ts\";\nimport { Filters } from \"./activities/filter.ts\";\nimport { GroupBy } from \"./activities/groupby.ts\";\nimport { Limit } from \"./activities/limit.ts\";\nimport { Mappings, Project } from \"./activities/project.ts\";\nimport { Sort } from \"./activities/sort.ts\";\nimport { Element as ModelElement, IElementError, State } from \"./model/element.ts\";\nimport { Visualization } from \"./model/visualization.ts\";\n\nimport \"../../src/ddl2/pipelinePanel.css\";\n\nclass PipelineSelectionButton extends SelectionButton {\n\n _label: string;\n label(): string;\n label(_: string): this;\n label(_?: string): string | this {\n if (!arguments.length) return this._label;\n this._label = _;\n this.tooltip(_);\n return this;\n }\n\n _elementErrors: IElementError[] = [];\n errors(): IElementError[];\n errors(_: IElementError[]): this;\n errors(_?: IElementError[]): IElementError[] | this {\n if (!arguments.length) return this._elementErrors;\n this._elementErrors = _;\n this.classed(\"error\", _.length > 0);\n // this.element().classed(\"error\", _.length > 0);\n if (_.length) {\n this.tooltip(_.map(err => {\n const errSourceParts = err.source.split(\".\");\n errSourceParts.splice(0, 1);\n return `${errSourceParts.join(\".\")}: ${err.msg}`;\n }).join(\"\\n\"));\n } else {\n this.tooltip(this._label);\n }\n this.render();\n return this;\n }\n}\n\nclass PipelinePanel extends ChartPanel {\n _owner: PipelineSplitPanel;\n\n datasource = new PipelineSelectionButton().faChar(\"fa-database\").label(\"Datasource\").selected(true);\n filter = new PipelineSelectionButton().faChar(\"fa-filter\").label(\"Filter\");\n project = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Project\");\n groupBy = new PipelineSelectionButton().faChar(\"fa-object-group\").label(\"Group By\");\n sort = new PipelineSelectionButton().faChar(\"fa-sort-alpha-asc\").label(\"Sort\");\n limit = new PipelineSelectionButton().faChar(\"fa-list-ol\").label(\"Limit\");\n mappings = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Mappings\");\n chartPanel = new PipelineSelectionButton().faChar(\"fa-area-chart\").label(\"Visualization\");\n state = new PipelineSelectionButton().faChar(\"fa-check-square-o\").label(\"State\");\n debug = new PipelineSelectionButton().faChar(\"fa-bug\").label(\"Debug\");\n all = new PipelineSelectionButton().faChar(\"fa-list\").label(\"All\");\n\n _propEditor: PropertyEditor = new PropertyEditor()\n .show_header(false)\n .show_settings(false)\n .showFields(false)\n ;\n\n private _buttons = [\n this.datasource,\n this.filter,\n this.project,\n this.groupBy,\n this.sort,\n this.limit,\n new Spacer(),\n this.mappings,\n this.chartPanel,\n new Spacer(),\n this.state,\n this.debug,\n new Spacer(),\n this.all\n ];\n _pipelineButton: PipelineSelectionButton = this.datasource;\n private _pipelineSelection = new SelectionBar()\n .buttons(this._buttons).on(\"selected\", sb => {\n this._pipelineButton = sb;\n this.title(sb.label()).render();\n });\n\n constructor(owner: PipelineSplitPanel) {\n super();\n this._owner = owner;\n this.buttons([this._pipelineSelection]);\n this.title(this.datasource.label());\n super.widget(this._propEditor);\n this._propEditor.monitor((id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n if (source !== this._propEditor) {\n this.propChanged(id, newValue, oldValue, source);\n this.updateState();\n }\n });\n }\n\n selectionButtons(): PipelineSelectionButton[] {\n return this._pipelineSelection.buttons().filter(b => b instanceof PipelineSelectionButton) as PipelineSelectionButton[];\n }\n\n private _propExt: PropertyExt;\n propExt(): PropertyExt;\n propExt(_: PropertyExt): this;\n propExt(_?: PropertyExt): PropertyExt | this {\n if (!arguments.length) return this._propExt;\n this._propExt = _;\n return this;\n }\n\n private peAsDatasource(): Datasource {\n if (this._propExt instanceof Datasource) {\n return this._propExt;\n } else if (this._propExt instanceof DSPicker) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().datasource();\n }\n }\n\n private peAsFilter(): Filters {\n if (this._propExt instanceof Filters) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().filters();\n }\n }\n\n private peAsProject(): Project {\n if (this._propExt instanceof Project) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().project();\n }\n }\n\n private peAsGroupBy(): GroupBy {\n if (this._propExt instanceof GroupBy) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().groupBy();\n }\n }\n\n private peAsSort(): Sort {\n if (this._propExt instanceof Sort) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().sort();\n }\n }\n\n private peAsLimit(): Limit {\n if (this._propExt instanceof Limit) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().limit();\n }\n }\n\n private peAsMappings(): Mappings {\n if (this._propExt instanceof Mappings) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization().mappings();\n } else if (this._propExt instanceof Visualization) {\n return this._propExt.mappings();\n }\n }\n\n private peAsChartPanel(): ChartPanel | Visualization {\n if (this._propExt instanceof ChartPanel) {\n return this._propExt;\n } else if (this._propExt instanceof Visualization) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization();\n }\n }\n\n private peAsState(): State {\n if (this._propExt instanceof State) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.state();\n }\n }\n\n selectionButton(): PipelineSelectionButton {\n if (this._pipelineButton && this._pipelineButton.enabled()) {\n return this._pipelineButton;\n }\n for (const pb of this.selectionButtons()) {\n if (pb.enabled()) {\n pb.selected(true);\n return pb;\n }\n }\n return undefined;\n }\n\n _prevPropExt: PropertyExt;\n _prevPipelineButton: SelectionButton;\n update(domNode, element) {\n super.update(domNode, element);\n this.updateState();\n const pipelineButton = this.selectionButton();\n if (this._prevPropExt !== this._propExt || this._prevPipelineButton !== pipelineButton) {\n this._prevPropExt = this._propExt;\n this._prevPipelineButton = pipelineButton;\n if (this._propExt && pipelineButton) {\n switch (pipelineButton) {\n case this.datasource:\n this._propEditor.widget(this.peAsDatasource());\n break;\n case this.filter:\n this._propEditor.widget(this.peAsFilter());\n break;\n case this.project:\n this._propEditor.widget(this.peAsProject());\n break;\n case this.groupBy:\n this._propEditor.widget(this.peAsGroupBy());\n break;\n case this.sort:\n this._propEditor.widget(this.peAsSort());\n break;\n case this.limit:\n this._propEditor.widget(this.peAsLimit());\n break;\n case this.mappings:\n this._propEditor.widget(this.peAsMappings());\n break;\n case this.chartPanel:\n this._propEditor.widget(this.peAsChartPanel());\n break;\n case this.state:\n this._propEditor.widget(this.peAsState());\n break;\n case this.all:\n this._propEditor.widget(this._propExt);\n break;\n }\n } else {\n this._propEditor.widget(undefined);\n }\n this._owner.loadPreview(this._propEditor.widget());\n }\n }\n\n updateButtonState(pe, sb) {\n sb.enabled(!!pe);\n sb.errors(!!pe && pe.validate() || []);\n }\n\n updateState() {\n this.selectionButtons().forEach(sb => {\n if (sb instanceof PipelineSelectionButton) {\n if (this.disableActivities().indexOf(sb.label()) >= 0) {\n this.updateButtonState(undefined, sb);\n return;\n }\n }\n\n switch (sb) {\n case this.datasource:\n this.updateButtonState(this.peAsDatasource(), sb);\n break;\n case this.filter:\n this.updateButtonState(this.peAsFilter(), sb);\n break;\n case this.project:\n this.updateButtonState(this.peAsProject(), sb);\n break;\n case this.groupBy:\n this.updateButtonState(this.peAsGroupBy(), sb);\n break;\n case this.sort:\n this.updateButtonState(this.peAsSort(), sb);\n break;\n case this.limit:\n this.updateButtonState(this.peAsLimit(), sb);\n break;\n case this.mappings:\n this.updateButtonState(this.peAsMappings(), sb);\n break;\n case this.chartPanel:\n const cp = this.peAsChartPanel();\n sb.enabled(!!cp);\n break;\n case this.state:\n const st = this.peAsState();\n sb.enabled(!!st);\n break;\n case this.debug:\n sb.enabled(false);\n break;\n case this.all:\n sb.enabled(!!this._propExt);\n break;\n }\n if (sb.selected()) {\n this.title(sb.enabled() ? sb.label() : \"\");\n }\n });\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\nPipelinePanel.prototype._class += \" marshaller_PipelinePanel\";\n\ninterface PipelinePanel {\n disableActivities(): string[];\n disableActivities(_: string[]): this;\n}\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const activity = this.activity();\n if (activity && (activity as any).fromDDL) {\n (activity as any).fromDDL(this._jsonEditor.json());\n }\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this.jsonText())\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor() {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _activity: PropertyExt;\n activity(_: PropertyExt): this;\n activity(): PropertyExt;\n activity(_?: PropertyExt): PropertyExt | this {\n if (_ === void 0) return this._activity;\n if (this._activity !== _) {\n this._activity = _;\n delete this._prevJson;\n }\n return this;\n }\n\n jsonText(): string {\n const activity = this.activity();\n return activity && (activity as any).toDDL ? JSON.stringify((activity as any).toDDL(), undefined, 4) : \"\";\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n if ((this._prevJson === undefined || this._prevJson === editorJson) && this._prevJson !== json) {\n this._prevJson = json;\n this._jsonEditor.text(json);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const activity = this.activity() as any;\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n this._save.enabled(activity && activity.fromDDL && json !== editorJson).lazyRender();\n this._reset.enabled(json !== editorJson).lazyRender();\n }\n}\n\nexport class PipelineSplitPanel extends SplitPanel {\n private _rhsPropsPanel = new PipelinePanel(this).on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n this.propChanged(id, newValue, oldValue, source);\n });\n private _previewPanel = new TabPanel();\n private _rhsDDLPreview = new DDLPreview();\n private _rhsDataPreview = new DatasourceTable().pagination(true);\n\n constructor() {\n super();\n this._previewPanel\n .addWidget(this._rhsDataPreview, \"Data\")\n .addWidget(this._rhsDDLPreview, \"DDL\")\n ;\n this\n .addWidget(this._rhsPropsPanel)\n .addWidget(this._previewPanel)\n ;\n }\n\n loadDataProps(pe: PropertyExt) {\n this._rhsPropsPanel\n .propExt(pe)\n .render()\n ;\n }\n\n loadPreview(activity: undefined | PropertyExt) {\n activity = activity instanceof Visualization ? activity.mappings() : activity;\n this._rhsDataPreview\n .datasource(new DatasourceAdapt(activity instanceof Activity ? activity : undefined))\n .lazyRender()\n ;\n this._rhsDDLPreview\n .activity(activity) // instanceof DSPicker ? activity.datasourceRef() : activity)\n .lazyRender()\n ;\n }\n\n refreshPreview() {\n const ds = this._rhsDataPreview.datasource() as DatasourceAdapt;\n if (ds) {\n ds.exec().then(() => {\n this._rhsDataPreview\n .invalidate()\n .lazyRender()\n ;\n this._rhsDDLPreview\n .lazyRender()\n ;\n });\n } else {\n this._rhsDDLPreview\n .lazyRender()\n ;\n }\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\n\nexport interface PipelineSplitPanel {\n disableActivities(): string[];\n disableActivities(_: string[]): this;\n}\n\nPipelinePanel.prototype.publish(\"disableActivities\", [], \"array\", \"Disabled pipeline items\");\n\nPipelineSplitPanel.prototype.publishProxy(\"disableActivities\", \"_rhsPropsPanel\");","import { JSEditor, JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, Utility, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, ddl2Schema, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { Graph } from \"@hpcc-js/graph\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandPalette, CommandRegistry, ContextMenu, SplitPanel, TabPanel, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { Activity } from \"./ddl2/activities/activity.ts\";\nimport { Databomb } from \"./ddl2/activities/databomb.ts\";\nimport { DSPicker } from \"./ddl2/activities/dspicker.ts\";\nimport { Dashboard } from \"./ddl2/dashboard.ts\";\nimport { DSTable } from \"./ddl2/dsTable.ts\";\nimport { DVTable } from \"./ddl2/dvTable.ts\";\nimport { GraphAdapter, VertexData } from \"./ddl2/graphadapter.ts\";\nimport { Element, ElementContainer, State } from \"./ddl2/model/element.ts\";\nimport { Visualization } from \"./ddl2/model/visualization.ts\";\nimport { VizChartPanel } from \"./ddl2/model/vizChartPanel.ts\";\nimport { PipelineSplitPanel } from \"./ddl2/pipelinePanel.ts\";\n\nconst logger = scopedLogger(\"marshaller/dashy\");\n\nimport \"../src/dashy.css\";\n\nexport type FocusType = Element | Activity | Visualization | VizChartPanel | State | undefined;\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const obj = JSON.parse(this._jsonEditor.text());\n this._dashy.importDDL(obj);\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this._ddl)\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor(private _dashy: Dashy) {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _ddl;\n ddl(_: DDL2.Schema): this {\n this._ddl = JSON.stringify(_, undefined, 4);\n return this;\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._prevJson !== this._ddl) {\n this._prevJson = this._ddl;\n this._jsonEditor.text(this._ddl);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const editorJson = this._jsonEditor.text();\n this._save.enabled(this._ddl !== editorJson).lazyRender();\n this._reset.enabled(this._ddl !== editorJson).lazyRender();\n }\n}\n\nexport class Dashy extends SplitPanel {\n\n private _elementContainer: ElementContainer = new ElementContainer();\n\n private _lhsSheet = new TabPanel();\n private _lhsDashboard: Dashboard = new Dashboard(this._elementContainer)\n .on(\"vizActivation\", (elem: Element, wa: WidgetAdapter) => {\n this.focus(this._lhsDashboard, elem);\n })\n .on(\"vizStateChanged\", (elem: Element) => {\n for (const filteredViz of this._elementContainer.filteredBy(elem.id())) {\n if (this.focus() === filteredViz) {\n this._rhsSplitView.refreshPreview();\n }\n }\n })\n ;\n private _lhsDataviews: DVTable = new DVTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDataviews, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _lhsDatasources: DSTable = new DSTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDatasources, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _graphAdapter = new GraphAdapter(this._elementContainer);\n private _lhsPipeline: Graph = new Graph()\n .layout(\"Hierarchy\")\n .allowDragging(false)\n .applyScaleOnLayout(true)\n .on(\"vertex_click\", (row: any, col: string, sel: boolean, ext: any) => {\n const obj: VertexData = row.__lparam[0] || {};\n this.focus(this._lhsPipeline, obj.state || obj.chartPanel || obj.visualization || obj.activity || obj.view);\n })\n .on(\"vertex_contextmenu\", (row: any, col: string, sel: boolean, ext: any) => {\n })\n ;\n private _lhsDebugSheet = new TabPanel();\n private _lhsDebugDDLEditor = new DDLPreview(this);\n private _lhsDebugDDLSchema = new JSONEditor().json(ddl2Schema);\n private _lhsDebugJSEditor = new JSEditor();\n private _lhsDebugCloneEC: ElementContainer = new ElementContainer();\n private _lhsDebugClone: Dashboard = new Dashboard(this._lhsDebugCloneEC).hideSingleTabs(true).titleVisible(false);\n private _lhsDebugDDLv1 = new JSONEditor();\n private _lhsDebugDDLv2 = new JSONEditor();\n\n private _rhsSplitView = new PipelineSplitPanel();\n\n private _fileOpen;\n\n static create(target: string, ddl?: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string): Promise<Dashy> {\n return new Promise((resolve, reject) => {\n const dashy = new Dashy()\n .target(target)\n .render((w: Dashy) => {\n if (ddl) {\n w.importDDL(ddl, baseUrl, wuid).then(() => {\n resolve(dashy);\n });\n } else {\n resolve(dashy);\n }\n });\n });\n }\n\n constructor() {\n super(\"horizontal\");\n }\n\n elementContainer(): ElementContainer {\n return this._elementContainer;\n }\n\n clear(): Promise<void> {\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv1);\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv2);\n this._elementContainer.clear();\n this._graphAdapter.clear();\n this.focus(this._lhsDashboard, undefined);\n return this.loadDashboard().then(() => {\n return this._elementContainer.refresh();\n }).then(ec => {\n return;\n });\n }\n\n save(): DDL2.Schema {\n return this._lhsDashboard.save();\n }\n\n restore(json: DDL2.Schema): Promise<void> {\n this._lhsSheet.active(this._lhsDashboard);\n return this.clear().then(() => {\n this._lhsDashboard.restore(json);\n this._lhsDataviews.render();\n this._lhsDatasources.render();\n return this._lhsDashboard.renderPromise().then(() => {\n const elements = this._elementContainer.elements();\n if (elements.length) {\n this._lhsDashboard.activate(elements[0]);\n }\n return this._elementContainer.refresh();\n }).then(() => {\n let hasError = false;\n for (const error of this._elementContainer.validate()) {\n hasError = true;\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n if (hasError) {\n // Re-render to highlight errrors ---\n this._lhsDashboard.renderPromise();\n }\n });\n });\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): Promise<void> {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n const retVal = this.restore(ddl2);\n if (isDDL2Schema(ddl)) {\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv2, \"orig v2\")\n ;\n } else {\n this._lhsDebugDDLv1.json(ddl);\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv1, \"v1\")\n .addWidget(this._lhsDebugDDLv2, \"v1 -> v2\")\n ;\n }\n return retVal;\n }\n\n activeLHS(): Widget {\n let retVal = this._lhsSheet.active();\n if (retVal === this._lhsDebugSheet) {\n retVal = this._lhsDebugSheet.active();\n }\n return retVal;\n }\n\n activeRHS(): Widget {\n return this._rhsSplitView;\n }\n\n private _currSelection: { [sourceID: string]: FocusType } = {};\n\n private focusAsElement(): Element | undefined {\n const currSelection = this.focus();\n return currSelection instanceof Element ? currSelection : undefined;\n }\n\n private focus(): FocusType;\n private focus(source: Widget, item: FocusType): this;\n private focus(source?: Widget, item?: FocusType): FocusType | this {\n if (!arguments.length) return this._currSelection[this.activeLHS().id()];\n if (this._currSelection[source.id()] !== item) {\n this._currSelection[source.id()] = item;\n this.loadRHSSplit();\n }\n return this;\n }\n\n loadRHSSplit() {\n this._rhsSplitView.loadDataProps(this.focus());\n }\n\n loadDataviews(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDataviews) {\n return this._lhsDataviews.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDatasources(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDatasources) {\n return this._lhsDatasources.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDashboard(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDashboard) {\n this._elementContainer.validate();\n return this._lhsDashboard.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadGraph() {\n this._lhsPipeline\n .data({ ...this._graphAdapter.createGraph() }, true)\n ;\n if (this.activeLHS() === this._lhsPipeline) {\n this._lhsPipeline\n .lazyRender()\n ;\n }\n }\n\n loadDDL() {\n this._lhsDebugDDLEditor\n .ddl(this._lhsDashboard.ddl())\n ;\n if (this.activeLHS() === this._lhsDebugDDLEditor) {\n this._lhsDebugDDLEditor\n .lazyRender()\n ;\n }\n }\n\n loadJavaScript() {\n this._lhsDebugJSEditor\n .javascript(this._lhsDashboard.javascript())\n ;\n if (this.activeLHS() === this._lhsDebugJSEditor) {\n this._lhsDebugJSEditor\n .lazyRender()\n ;\n }\n }\n\n loadClone() {\n const json = this.save();\n this._lhsDebugCloneEC.clear();\n this._lhsDebugClone.renderPromise().then(() => {\n this._lhsDebugClone.restore(json);\n this._lhsDebugClone.renderPromise().then(() => {\n return this._lhsDebugCloneEC.refresh();\n }).then(() => {\n for (const error of this._lhsDebugCloneEC.validate()) {\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n });\n });\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"dash_add\", {\n label: \"Add View\",\n execute: () => {\n const newElem = new Element(this._elementContainer);\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n });\n\n commands.addCommand(\"dash_clear\", {\n label: \"Clear\",\n execute: () => {\n this.clear();\n }\n });\n\n commands.addCommand(\"dash_save\", {\n label: \"Save\",\n execute: () => {\n const text = JSON.stringify(this.save(), null, \" \");\n Utility.downloadString(\"JSON\", text, \"dashy\");\n }\n });\n\n commands.addCommand(\"dash_load\", {\n label: \"Open\",\n execute: () => {\n this._fileOpen.property(\"accept\", \".dashy,.json\");\n this._fileOpen.node().click();\n }\n });\n\n // Model Commands ---\n const palette = new CommandPalette({ commands });\n palette.addItem({ command: \"addWUResult\", category: \"Notebook\" });\n palette.addItem({ command: \"addView\", category: \"Notebook\" });\n palette.addItem({ command: \"remove\", category: \"Notebook\" });\n palette.id = \"palette\";\n\n const contextMenu = new ContextMenu({ commands });\n\n contextMenu.addItem({ command: \"dash_add\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ command: \"dash_clear\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ type: \"separator\", selector: `#${this._lhsDashboard.id()}` });\n\n contextMenu.addItem({ command: \"dash_load\", selector: `#${this.id()}` });\n contextMenu.addItem({ command: \"dash_save\", selector: `#${this.id()}` });\n\n document.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n if (contextMenu.open(event)) {\n event.preventDefault();\n }\n });\n }\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\") {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n this._elementContainer.appendDatasource(databomb);\n const newElem = new Element(this._elementContainer);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._lhsSheet)\n .addWidget(this._rhsSplitView)\n ;\n this._lhsSheet\n .addWidget(this._lhsDashboard, \"Dashboard\")\n .addWidget(this._lhsDataviews, \"Dataviews\")\n .addWidget(this._lhsDatasources, \"Datasources\")\n .addWidget(this._lhsPipeline, \"Pipeline\")\n .addWidget(this._lhsDebugSheet, \"Debug\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDataviews:\n this.loadRHSSplit();\n break;\n case this._lhsDatasources:\n this.loadRHSSplit();\n break;\n case this._lhsDashboard:\n this.loadRHSSplit();\n break;\n case this._lhsPipeline:\n this.loadRHSSplit();\n this.loadGraph();\n break;\n case this._lhsDebugSheet:\n this._lhsDebugSheet.childActivation(this._lhsDebugSheet.active());\n break;\n }\n })\n ;\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLEditor, \"v2\")\n .addWidget(this._lhsDebugDDLSchema, \"Schema\")\n .addWidget(this._lhsDebugJSEditor, \"TS\")\n .addWidget(this._lhsDebugClone, \"Clone\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDebugDDLEditor:\n this.loadRHSSplit();\n this.loadDDL();\n break;\n case this._lhsDebugJSEditor:\n this.loadRHSSplit();\n this.loadJavaScript();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n })\n ;\n\n this.initMenu();\n this._rhsSplitView.on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n const currElement = this.focusAsElement();\n if (currElement) {\n currElement.refresh().then(() => {\n this._rhsSplitView.refreshPreview();\n });\n } else {\n this._rhsSplitView.refreshPreview();\n }\n switch (this.activeLHS()) {\n case this._lhsDashboard:\n this.loadDashboard();\n break;\n case this._lhsDatasources:\n this._elementContainer.refresh();\n break;\n case this._lhsPipeline:\n this.loadGraph();\n break;\n case this._lhsDebugDDLEditor:\n this.loadDDL();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n });\n\n const context = this;\n this._fileOpen = element.append(\"input\")\n .attr(\"type\", \"file\")\n .property(\"accept\", \".dashy,.json\")\n .style(\"display\", \"none\")\n .on(\"change\", function () {\n const i = 0;\n const f = this.files[i];\n while (f) {\n const reader = new FileReader();\n reader.onload = (function (theFile) {\n return function (e) {\n try {\n const result = Array.isArray(e.target.result) ? e.target.result[0] : e.target.result;\n const json = JSON.parse(result);\n context.importDDL(json);\n } catch (ex) {\n alert(\"ex when trying to parse json = \" + ex);\n }\n };\n })(f);\n reader.readAsText(f);\n break;\n }\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n}\nDashy.prototype._class += \" composite_Dashy\";\n\nexport interface Dashy {\n disableActivities(): string[];\n disableActivities(_: string[]): this;\n}\nDashy.prototype.publishProxy(\"disableActivities\", \"_rhsSplitView\");"],"names":["PKG_NAME","PKG_VERSION","BUILD_VERSION","stringify","obj_from_json","Array","isArray","map","join","JSON","Object","keys","key","schemaType2IFieldType","type","schemaRow2IField","row","_children","length","id","name","children","wsEclSchemaRow2IField","__name","_Activity","PropertyExt","_sourceActivity","fixInt64","data","int64Fields","this","outFields","filter","field","int64Field","sourceActivity","_","arguments","hash","more","hashSum","refreshMeta","Promise","resolve","exists","validate","label","updatedBy","_emptyFields","inFields","computeFields","localFields","inFieldIDs","indexOf","fieldOrigin","fieldID","resolveFields","refs","fieldIDs","outputs","push","resolveInFields","referencedFields","exec","_emptyData","inData","outData","computeData","_prevDataHash","_prevInData","_prevData","cachedComputeData","update","Activity","_ActivityArray","_activities","activities","ActivityArray","prototype","_class","_ActivityPipeline","super","prevActivity","activity","first","last","retVal","calcUpdatedGraph","source","from","to","updatedByGraph","concat","fetch","count","Number","MAX_VALUE","then","slice","ActivityPipeline","_ActivitySelection","_selection","_monitorHandle","selection","remove","monitor","newVal","oldVal","broadcast","ActivitySelection","datasourceID","_Datasource","constructor","_id","Datasource","_DatasourceRef","_origDatasource","datasource","_datasource","toDDL","DatasourceRef","publish","internal","apply","_FormField","_owner","disableChildField","default","childFields","cf","fromDDL","ddl","owner","valid","coerceFunc","cell","calcValue","value_exists","value","FormField","_Form","fields","validFields","f","skipID","formFields","forEach","total","Form","fieldType","rowToFields","_jsonData","found","_childKey","rowFields","rf","optional","autoExpand","disable","w","_Databomb","skipPayload","format","payload","databombFields","updateJsonData","d3CsvParse","d3TsvParse","parse","preCalcFields","e","coarceFuncMap","Databomb","multiline","payloadFormat","databombPayloadOrig","emptyDatabomb","_DatasourceAdapt","_activity","DatasourceAdapt","_ESPResult","_ec","samples","sampleSize","_result","_schema","_meta","_total","_data","_prevMetaHash","refreshMetaPromise","_createResult","refresh","Error","result","Total","catch","responseFields","_exec","_prevExecHash","debounce","sample","response","_fetch","_fetchQ","AsyncOrderedQueue","fetchRows","pages","lastPage","i","Math","floor","all","responses","retVal2","ESPResult","_WUResult","_origWu","_origResultName","_wu","WU","url","wuid","resultName","ec","wu","Result","attach","baseUrl","hookSend","sourceHash","WUResult","_WU","_origUrl","_origWuid","_workunit","_outputs","ddlOutputs","wuResults","elementContainer","outputDDL","output","_prevSourceHash","_resultNames","Workunit","fetchResults","results","r","Name","resultNames","_WUResultRef","WUResultRef","prev","_resultName","_LogicalFile","logicalFile","attachLogicalFile","nodeGroup","LogicalFile","_RestField","RestField","_RestService","_responseFields","action","mode","inputs","validRequestFields","requestFields","_prevRequestHash","_prevPromise","_submitQ","submit","request","requestHash","conn","createConnection","send","RestService","_RestResult","_service","_origService","service","rs","serviceID","jsonDataFields","resultFields","split","formatRequest","RestResult","_Param","prefix","source_valid","msg","hint","visualizationIDs","remoteField_valid","remoteField","sourceOutFields","value_valid","remoteFieldID","localFieldID","localField","sourceField","elementIDs","sourceFields","sourceViz","element","hipiePipeline","selectionFields","sourceSelection","source_exists","remoteField_exists","localField_exists","Param","_RestResultRef","validParams","vp","requestFieldRefs","fc","param","filterSource","oldParams","diffs","compare","p","ff","newParams","op","enter","_prevRequestPromise","RestResultRef","parseUrl","parts","urlParts","roxieParts","querySet","queryID","isHipieRequest","requestField","isHipieResponse","source_disabled","remoteField_disabled","value_disabled","_RoxieService","_query","_requestFields","_type","queryId","ignoreHipieRequest","ignoreHipieResponse","hasMeta","reject","query","CommsQuery","RoxieService","_RoxieResult","RoxieResult","_RoxieResultRef","params","localFieldIDs","hasRequest","_value","Item","toLowerCase","replace","RoxieResultRef","_HipieResultRef","fullUrl","info","_request","HipieResultRef","dsPickerID","_DSPicker","ds","datasources","_nullDatasource","_origDatasourceID","_origDatasourceRef","datasourceRef","refreshRef","_datasourceID","datasourceIDs","text","DSPicker","createFilter","condition","lf","val","isString","localRow","trim","_ColumnMapping","localField_valid","nullable","remoteValues","filterSelection","sel","createFilterDescription","fsArr","some","fs","fs0","ColumnMapping","_RemoteFilter","validMappings","mapping","viewID","mappings","ddlMappings","appendMappings","visualization","mappingFilters","every","mappingFilter","RemoteFilter","_StaticFilter","coerceValue","valueType","StaticFilter","_Filters","validFilters","conditions","remoteFilters","staticFilters","DDL2","isIFilterCondition","remoteFilter","staticFilter","sourceID","validRemoteFilters","remoteFieldIDs","filters","validStaticFilters","__publicField","Filters","_GroupByColumn","label_valid","columns","GroupByColumn","localCount","leaves","callback","d3Aggr","min","max","mean","median","variance","deviation","sum","_AggregateField","disableAggrColumn","aggrType","disableBaseCountColumn","aggrColumn_valid","aggrColumn","baseCountColumn_valid","baseCountColumn","inFieldID","baseCountFieldID","hasColumn","aggregate","values","leaf","aggrFunc","AggregateField","_GroupBy","gbColumn","validGroupBy","cfs","validComputedFields","groupByIDs","aggregates","column","gb","computedFields","groupBy","appendGroupBys","appendComputedFields","aggregateFields","aggregateField","aggrField","computedField","hasComputedFields","groups","groupByField","details","detailsTarget","rows","fullDetails","columnLabels","d3Nest","groupByLabel","entries","_row","GroupBy","_Limit","limit","rows_exists","Limit","_ComputedMapping","newValue_valid","newValue","ComputedMapping","_ComputedField","disableColumn1","disableColumn2","disableMapping","hasChildren","column1_valid","column1","column2_valid","column2","validComputedMappings","cm","validChildFields","childField","hasChildFields","sourceFieldID","factor","constValue","template","transformations","sourceFieldID1","sourceFieldID2","transformation","child","projection","func","computeFunc","Row","Utility","defValue","ComputedField","_MultiField","validMultiFields","multiFields","MultiField","_ProjectBase","_includeLParam","_trim","classID","clearComputedFields","retValMap","cf2","templateFields","ProjectBase","_Project","Project","_Mappings","_ddl","Mappings","_SortColumn","fieldID_valid","descending","sortColumn","SortColumn","_Sort","sb","validSortBy","Sort","sortBy","sortByArr","d3Descending","d3Ascending","sort","l","item","_HipiePipeline","_filters","_project","_groupBy","_sort","_limit","updateSequence","_origFilters","_origProject","_origGroupBy","_origSort","_origLimit","project","HipiePipeline","wrapHipiePipelineProperty","prop","origKey","charAt","toUpperCase","_NullView","NullView","_VizPopupPanel","Modal","_ownerLParam","ownerLParam","_drawStartPos","visible","minHeight_default","minWidth_default","overflowY_default","_host","host","_togglePopup","selected","render","vizActivation","domNode","parentElement","style","position","widgetTitle","widget","title","titleVisible","fixedTop","_pos","y","fixedLeft","x","exit","closeModal","VizPopupPanel","_VizChartPanel","ChartPanel","_popup","ToggleButton","faChar","tooltip","on","dpBBox","locateClosestAncestor","getBBox","cp","tbBBox","pos","width","minWidth","height","resize","minHeight","popup","widgetSelector","node","querySelector","getBoundingClientRect","resizeBodySync","_origButtons","_filterButtons","buttons","Spacer","VizChartPanel","VizTypeMap","Table","FieldForm","Area","Bubble","Bar","Column","Contour","HexBin","Line","Pie","Radar","RadialBar","Scatter","Step","WordCloud","USCountiesChoropleth","ChoroplethCounties","USStatesChoropleth","ChoroplethStates","ClusterPins","Leaflet","EntityRectList","AdjacencyGraph","DataGraph","VizTypeSet","typeClass","typeNew","allowEmptyRequest","uidColumn","labelColumn","iconColumn","linksColumn","linkUidColumn","linkLabelColumn","typeInputs","__inputs","_Visualization","_hipiePipeline","chartPanel","typeChanged","_origVisibility","_origChartType","_origChartPanel","_prevChartType","_chartType","refreshMappings","chart","properties","deserialize","serialize","taken","input","idx","multi","inField","_prevFields","_prevLinkFields","refreshData","dbFields","toDBFields","linkFields","dbLinkFields","se","secondaryDataviewID","fieldsChanged","chartType","dataGraph","vertexColumns","edgeColumns","console","warn","dataChanged","mappedData","toDBData","vertices","linkData","mappedLinkData","edges","renderPromise","fieldTypeTodbFieldType","Database","Field","promises","secondaryDataviewID_exists","secondaryElementID","secondaryElement","startProgress","finishProgress","click","col","vertex_click","Visualization","publishProxy","VisibilitySet","visibility","_visibility","target","props","call","_chartPanel","_State","set","removeInvalid","currSelection","newSelection","selRow","find","index","State","vizID","_Element","elementExists","view","_vizChartPanel","state","_origVisualization","pipeline","dataProps","vizProps","stateProps","_errors","errors","_initialized","error","elementID","desc","description","selectionChanged","filteredViz","filteredBy","vizStateChanged","Element","_visualization","__lparam","_ElementContainer","_nullElement","_datasources","_elements","clear","eid","d","_hookSend","appendDatasource","removeDatasource","elements","viz","v","append","elemID","otherViz","views","normalizePersist","seri","ret","__properties","content","n","_is_MegaChart","_cell","_panel","_widget","__id","package","__class","object","_get_params","panel","_o","exclude_list","elem","ElementContainer","responseText","ok","status","statusText","d3Text","init","_PopupManager","Widget","_popups","_popupIdx","popupPanels","popupChartPanels","addPopup","targetNode","pp","relativeTargetId","size","monitorHandle","otherElem","removePopup","syncPopups","prevPopups","diffPopups","PopupManager","_DashboardDockPanel","DockPanel","tabTitle","hideSingleTabs","titleClassed","wa","include","classes","className","c","updateTitle","getWidgetAdapter","caption","err","activate","syncMinSize","minWidth_exists","minHeight_exists","d3Select","syncWidgets","prevWidgets","widgets","diffWidgets","refit","removeWidget","addWidget","childActivation","wa2","widgetAdapters","addClass","iconClass","removeClass","canClose","window","confirm","DashboardDockPanel","mixin","_DashboardGrid","Grid","designMode","surfacePadding","surfaceBorderWidth","_layoutCache","updateGrid","transitionDuration","_noRender","cellWidget","gridCol","gridRow","gridColSpan","gridRowSpan","layoutObj","main","convertedLayout","ddl2_layout","layoutObject","cols","dive","o","h","orientation","_w","sizes","_h","_x","_y","round","layout","getWidgetCell","clearContent","no_layout_added","setContent","freeRow","reduce","curr","postSelectionChange","_selectionBag","get","DashboardGrid","logger","scopedLogger","_DDLDatasourceAdapter","_dsDedup","dsT","_resolveID","resolveID","dsRef","pDS","refType","ref","dsTID","dsID","getAll","key2","ddl2","inElementID","outputID","DDLDatasourceAdapter","_DDLAdapter","_dashboard","_dsWriteDedup","_dsReadDedup","dashboard","writeDatasources","writeFilters","readFilters","ddlFilter","writeProject","readProject","ddlProject","writeMappings","readMappings","writeGroupBy","readGroupBy","ddlGB","writeSort","readSort","ddlSort","writeLimit","readLimit","ddlLimit","readDatasourceRef","ddlDSRef","dsPicker","isWUResultRef","isRoxieServiceRef","writeActivities","warning","writeVisualization","readVisualization","ddlViz","writeViewDatasource","writeDDLViews","refFields","writeProperties","version","buildVersion","readDDLViews","ddlViews","ddlView","isProjectActivity","isFilterActivity","isGroupByActivity","isSortActivity","isLimitActivity","readProperties","write","createdBy","dataviews","hipieProperties","hipieProps","read","ddlDS","rs2","DDLAdapter","_Imports","_moduleMap","widgetMeta","module","class","importJS","moduleID","classIDs","Imports","createProps","pe","meta","publishedProperties","serialization","_JavaScriptAdapter","_ddlAdapter","_ddlSchema","postfix","ext","writeMeta","dsDetails","safeID","datasourceRefID","_dedup","writeDatasource","wuID","resultID","fromFields","writeActivity","writeWidgetProps","joinWithPrefix","imports","joinStr","postFix","classID2Meta","arr","writeWidget","dataview","writeElement","updates","writeWidgets","jsDef","widgetImports","widgetDefs","writeElements","createJavaScript","JavaScriptAdapter","_Dashboard","_designModeButton","_addButton","_removeButton","_reloadButton","_addSamples","ensureDockPanel","_dockPanel","lazyRender","Button","newElem","enabled","_prevActive","json","save","restore","airports","carriers","stats","popupElement","addForm","airportsElement","addDatabomb","Filter","Mapping","carrierElement","statsElement","databomb","create","_hipieProps","ddlAdapter","importDDL","dermatologyJson","isDDL2Schema","upgrade","javascript","updateButtonState","Dashboard","_DDLEditor","SplitPanel","summary","_ddlEditor","JSONEditor","changes","checkSyntax","_errorTable","success","validate2","dataPath","keyword","message","_renderCount","_element","DDLEditor","_GraphAdapter","subgraphMap","vertexMap","edgeMap","hierarchy","createSubgraph","Subgraph","createVertex","fillColor","Vertex","icon_diameter","textbox_shape_colorFill","createEdge","targetID","edgeID","Edge","sourceVertex","targetVertex","createDatasource","serverID","server","parent","lfID","surfaceID","surface","roxieID","roxieResultID","querySetID","actionID","createActivity","vertex","createGraph","lastID","prevID","mappingVertexID","vizSubgraphID","vizVertexID","widgetVertex","stateVertexID","stateVertex","weight","strokeDasharray","updateInfo","GraphAdapter","_DSTable","_cloneButton","_dstable","_selectedDS2","References","ID","_selectedDS","initMenu","rect","_contextMenu","open","currentTarget","clientX","left","clientY","bottom","add","csv","vmRoxie","commands","CommandRegistry","addCommand","execute","ContextMenu","addItem","command","selector","_prevDataID","dataID","DSTable","_DVTable","_dvtable","DVTable","_PipelineSelectionButton","SelectionButton","_label","_elementErrors","classed","errSourceParts","splice","PipelineSelectionButton","_PipelinePanel","debug","_propEditor","PropertyEditor","show_header","show_settings","showFields","_buttons","_pipelineButton","_pipelineSelection","SelectionBar","oldValue","propChanged","updateState","selectionButtons","b","_propExt","propExt","peAsDatasource","ModelElement","peAsFilter","peAsProject","peAsGroupBy","peAsSort","peAsLimit","peAsMappings","peAsChartPanel","peAsState","selectionButton","pb","_prevPropExt","_prevPipelineButton","pipelineButton","loadPreview","disableActivities","st","PipelinePanel","_a","_save","_jsonEditor","updateToolbar","_reset","jsonText","_titleBar","_prevJson","editorJson","_PipelineSplitPanel","_rhsPropsPanel","_previewPanel","TabPanel","_rhsDDLPreview","DDLPreview","_rhsDataPreview","DatasourceTable","pagination","loadDataProps","refreshPreview","invalidate","PipelineSplitPanel","_DDLPreview","_dashy","obj","_Dashy","_elementContainer","_lhsSheet","_lhsDashboard","focus","_rhsSplitView","_lhsDataviews","_lhsDatasources","_graphAdapter","_lhsPipeline","Graph","allowDragging","applyScaleOnLayout","_lhsDebugSheet","_lhsDebugDDLEditor","_lhsDebugDDLSchema","ddl2Schema","_lhsDebugJSEditor","JSEditor","_lhsDebugCloneEC","_lhsDebugClone","_lhsDebugDDLv1","_lhsDebugDDLv2","_fileOpen","dashy","loadDashboard","active","hasError","activeLHS","activeRHS","_currSelection","focusAsElement","loadRHSSplit","loadDataviews","loadDatasources","loadGraph","loadDDL","loadJavaScript","loadClone","downloadString","property","palette","CommandPalette","category","contextMenu","document","addEventListener","event","preventDefault","currElement","context","attr","files","reader","FileReader","onload","ex","alert","readAsText","Dashy"],"mappings":"6tDAAO,MAAMA,GAAW,sBACXC,GAAc,QACdC,GAAgB,SCGtB,SAASC,GAAUC,GACtB,GAAIC,MAAMC,QAAQF,GAEd,MAAO,IAAMA,EAAcG,IAAIJ,IAAWK,KAAK,MAAQ,IAE3D,GAA6B,iBAAlBJ,GAAP,MAAqCA,EAErC,OAAOK,KAAKN,UAAUC,GAQ1B,MAAO,KAJOM,OACTC,KAAKP,GACLG,OAAW,GAAGK,MAAQT,GAAUC,EAAcQ,OAC9CJ,KAAK,SAEd,CAEO,SAASK,GAAsBC,GAClC,OAAQA,GACJ,IAAK,UACD,MAAO,UACX,IAAK,UACL,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,iBACL,IAAK,mBACL,IAAK,kBACL,IAAK,SACD,MAAO,SACX,IAAK,aACL,IAAK,UACL,IAAK,qBACL,IAAK,wBACL,IAAK,wBACL,IAAK,qBACL,IAAK,kBACD,MAAO,WACX,IAAK,SACD,MAAO,SACX,IAAK,QACD,MAAO,QAEf,MAAO,QACX,CAEO,SAASC,GAAiBC,GAC7B,OAAIA,EAAIC,WAAaD,EAAIC,UAAUC,OACxB,CACHJ,KAAM,UACNK,GAAIH,EAAII,KACRC,SAAUL,EAAIC,UAAUV,IAAIQ,KAGzB,CACHI,GAAIH,EAAII,KACRN,KAAMD,GAAsBG,EAAIF,MAG5C,CAEO,SAASQ,GAAsBN,GAClC,OAAOA,CACX,CAlEgBO,EAAApB,GAAA,aAkBAoB,EAAAV,GAAA,yBA+BAU,EAAAR,GAAA,oBAeAQ,EAAAD,GAAA,yBAsBT,MAAeE,GAAf,MAAeA,kBAAiBC,EAC3BC,gBAER,QAAAC,CAASC,GACL,IAAKA,GAAwB,IAAhBA,EAAKV,aAAqB,GACvC,MAAMW,EAAcC,KAAKC,YAAYC,OAAOC,IACxC,OAAQA,EAAMnB,MACV,IAAK,SAED,MAAoC,iBAAtBc,EAAK,GAAGK,EAAMd,IAChC,IAAK,WACD,OAAO,EAEf,OAAO,IAEX,OAAIU,EAAYX,OACLU,EAAKrB,IAAIS,IACZ,IAAA,MAAWkB,KAAcL,EACrBb,EAAIkB,EAAWf,KAAOH,EAAIkB,EAAWf,IAEzC,OAAOH,IAGRY,CACX,CAIA,cAAAO,CAAeC,GACX,OAAKC,UAAUnB,QACfY,KAAKJ,gBAAkBU,EAChBN,MAFuBA,KAAKJ,eAGvC,CAEA,IAAAY,CAAKC,EAAe,IAChB,OAAOC,EAAQ,IACRD,GAEX,CAEA,WAAAE,GACI,OAAOX,KAAKJ,gBAAkBI,KAAKJ,gBAAgBe,cAAgBC,QAAQC,SAC/E,CAEA,MAAAC,GACI,OAAO,CACX,CAEA,QAAAC,GACI,MAAO,EACX,CAEA,KAAAC,GACI,OAAOhB,KAAKX,IAChB,CAEA,SAAA4B,GACI,MAAO,EACX,CAEQC,aAA2C,GACnD,QAAAC,GACI,OAAOnB,KAAKJ,gBAAkBI,KAAKJ,gBAAgBK,YAAcD,KAAKkB,YAC1E,CAEA,aAAAE,CAAcD,GACV,MAAO,IAAMA,CACjB,CAEA,SAAAlB,GACI,OAAOD,KAAKoB,cAAcpB,KAAKmB,WAAxBnB,EACX,CAEA,WAAAqB,GACI,MAAMC,EAAatB,KAAKmB,WAAW1C,IAAI0B,GAASA,EAAMd,IACtD,OAAOW,KAAKC,YAAYC,OAAOC,GAASmB,EAAWC,QAAQpB,EAAMd,IAAM,EAC3E,CAEA,WAAAmC,CAAYC,GACR,OAAIzB,KAAKqB,cAAcnB,UAAgBC,EAAMd,KAAOoC,GAASrC,OAClDY,KACAA,KAAKK,iBACLL,KAAKK,iBAAiBmB,YAAYC,GAEtC,IACX,CAEA,aAAAC,CAAcC,EAAwBC,GAClC,IAAA,MAAWH,KAAWG,EAAU,CAC5B,MAAMJ,EAAcxB,KAAKwB,YAAYC,GACjCD,IACKG,EAAKE,QAAQL,EAAYnC,QAC1BsC,EAAKE,QAAQL,EAAYnC,MAAQ,IAEjCsC,EAAKE,QAAQL,EAAYnC,MAAMkC,QAAQE,GAAW,GAClDE,EAAKE,QAAQL,EAAYnC,MAAMyC,KAAKL,GAGhD,CACJ,CAEA,eAAAM,CAAgBJ,EAAwBC,GACpC,OAAO5B,KAAKJ,iBAAmBI,KAAKJ,gBAAgB8B,cAAcC,EAAMC,EAC5E,CAEA,gBAAAI,CAAiBL,GACb3B,KAAKJ,iBAAiBoC,iBAAiBL,EAC3C,CAEA,IAAAM,GACI,OAAOjC,KAAKJ,gBAAkBI,KAAKJ,gBAAgBqC,OAASrB,QAAQC,SACxE,CAEAqB,WAAoC,GACpC,MAAAC,GACI,OAAOnC,KAAKJ,iBAAkBI,KAAKJ,gBAAgBwC,WAA+BpC,KAAKkC,UAC3F,CAEA,WAAAG,GACI,OAAOrC,KAAKmC,QAChB,CAEQG,cAAwB,GACxBC,YAAqC,GACrCC,UAAmC,GACnC,iBAAAC,CAAkBN,GACtB,MAAM3B,EAAOR,KAAKQ,OAMlB,OALIR,KAAKsC,gBAAkB9B,GAAQR,KAAKuC,cAAgBJ,IACpDnC,KAAKsC,cAAgB9B,EACrBR,KAAKuC,YAAcJ,EACnBnC,KAAKwC,UAAYE,EAAO1C,KAAKwC,UAAWxC,KAAKqC,gBAE1CrC,KAAKwC,SAChB,CAEA,OAAAJ,GACI,OAAOpC,KAAKyC,kBAAkBzC,KAAKmC,SACvC,GAzI+C1C,EAAAC,GAAA,YAA5C,IAAeiD,GAAfjD,GA4IA,MAAMkD,GAAN,MAAMA,uBAAsBD,GACvBE,YAA0B,GAIlC,UAAAC,CAAWxC,GACP,OAAKC,UAAUnB,QACfY,KAAK6C,YAAcvC,EACZN,MAFuBA,KAAK6C,WAGvC,GATwCpD,EAAAmD,GAAA,iBAArC,IAAMG,GAANH,GAWPG,GAAcC,UAAUC,QAAU,iBAE3B,MAAMC,GAAN,MAAMA,0BAAyBH,GAIlC,UAAAD,CAAWxC,GACP,IAAKC,UAAUnB,OAAQ,OAAO+D,MAAML,aAEpC,IAAIM,EADJD,MAAML,WAAWxC,GAEjB,IAAA,MAAW+C,KAAY/C,EACf8C,GACAC,EAAShD,eAAe+C,GAE5BA,EAAeC,EAEnB,OAAOrD,IACX,CAEA,KAAAsD,GAEI,OADetD,KAAK8C,aACN,EAClB,CAEA,IAAAS,GACI,MAAMC,EAASxD,KAAK8C,aACpB,OAAOU,EAAOA,EAAOpE,OAAS,EAClC,CAEU,gBAAAqE,CAAiBJ,GACvB,OAAOA,EAASpC,YAAYxC,IAAIiF,IACrB,CACHC,KAAMD,EACNE,GAAIP,IAGhB,CAEA,cAAAQ,GACI,IAAIL,EAAgD,GACpD,IAAA,MAAWH,KAAYrD,KAAK8C,aACxBU,EAASA,EAAOM,OAAO9D,KAAKyD,iBAAiBJ,IAEjD,OAAOG,CACX,CAEA,KAAAO,CAAMJ,EAAe,EAAGK,EAAgBC,OAAOC,WAC3C,OAAOlE,KAAKiC,OAAOkC,KAAK,KACpB,MAAMrE,EAAOE,KAAKoC,UAClB,OAAa,IAATuB,GAAc7D,EAAKV,QAAU4E,EACtBlE,EAEJA,EAAKsE,MAAMT,EAAMA,EAAOK,IAEvC,CAGA,IAAAxD,CAAKC,EAA+B,IAChC,OAAOC,EAAQ,CACXoC,WAAY,CAAC9C,KAAK8C,aAAarE,IAAI4E,GAAYA,EAAS7C,YACrDC,GAEX,CAEA,WAAAE,GACI,OAAOX,KAAKuD,OAAO5C,aACvB,CAEA,SAAAM,GACI,IAAIuC,EAAmB,GACvB,IAAA,MAAWH,KAAYrD,KAAK8C,aACxBU,EAASA,EAAOM,OAAOT,EAASpC,aAEpC,OAAOuC,CACX,CAEA,QAAArC,GACI,OAAOnB,KAAKsD,QAAQnC,UACxB,CAEA,SAAAlB,GACI,OAAOD,KAAKuD,OAAOtD,WACvB,CAEA,WAAAoB,GACI,OAAOrB,KAAKuD,OAAOlC,aACvB,CAEA,WAAAG,CAAYC,GACR,OAAOzB,KAAKuD,OAAO/B,YAAYC,EACnC,CAEA,gBAAAO,CAAiBL,GACb3B,KAAKuD,OAAOvB,iBAAiBL,EACjC,CAEA,eAAAI,CAAgBJ,EAAwBC,GACpC5B,KAAKuD,OAAOxB,gBAAgBJ,EAAMC,EACtC,CAEA,aAAAF,CAAcC,EAAwBC,GAClC5B,KAAKuD,OAAO7B,cAAcC,EAAMC,EACpC,CAEA,IAAAK,GACI,OAAOjC,KAAKuD,OAAOtB,MACvB,CAEA,OAAAG,GACI,OAAOpC,KAAKuD,OAAOnB,SACvB,GA5GgD3C,EAAAyD,GAAA,oBAA7C,IAAMmB,GAANnB,GA8GPmB,GAAiBrB,UAAUC,QAAU,oBAE9B,MAAMqB,GAAN,MAAMA,2BAA0BvB,GAC3BwB,WACAC,eAIR,SAAAC,CAAUnE,GACN,YAAU,IAANA,EAAwBN,KAAKuE,YAC7BvE,KAAKwE,gBACLxE,KAAKwE,eAAeE,SAExB1E,KAAKuE,WAAajE,EAClBN,KAAKwE,eAAiBlE,EAAEqE,QAAQ,CAACtF,EAAIuF,EAAQC,KACzC7E,KAAK8E,UAAUzF,EAAIuF,EAAQC,EAAQvE,KAEhCN,KACX,CAGA,IAAAQ,CAAKC,EAA+B,IAChC,OAAOC,EAAQ,CACX+D,UAAWzE,KAAKyE,YAAYjE,UACzBC,GAEX,CAEA,KAAAO,GACI,OAAOhB,KAAKyE,YAAYzD,OAC5B,CAEA,WAAAL,GACI,OAAOX,KAAKyE,YAAY9D,aAC5B,CAEA,SAAAM,GACI,OAAOjB,KAAKyE,YAAYxD,WAC5B,CAEA,QAAAE,GACI,OAAOnB,KAAKyE,YAAYtD,UAC5B,CAEA,SAAAlB,GACI,OAAOD,KAAKyE,YAAYxE,WAC5B,CAEA,WAAAoB,GACI,OAAOrB,KAAKyE,YAAYpD,aAC5B,CAEA,WAAAG,CAAYC,GACR,OAAOzB,KAAKyE,YAAYjD,YAAYC,EACxC,CAEA,gBAAAO,CAAiBL,GACb3B,KAAKyE,YAAYzC,iBAAiBL,EACtC,CAEA,eAAAI,CAAgBJ,EAAwBC,GACpC5B,KAAKyE,YAAY1C,gBAAgBJ,EAAMC,EAC3C,CAEA,aAAAF,CAAcC,EAAwBC,GAClC5B,KAAKyE,YAAY/C,cAAcC,EAAMC,EACzC,CAEA,IAAAK,GACI,OAAOjC,KAAKyE,YAAYxC,MAC5B,CAEA,OAAAG,GACI,OAAOpC,KAAKyE,YAAYrC,SAC5B,GAxEiD3C,EAAA6E,GAAA,qBAA9C,IAAMS,GAANT,GA0EPS,GAAkB/B,UAAUC,QAAU,qBCratC,IAAI+B,GAAe,EACZ,MAAMC,GAAN,MAAMA,oBAAmBtC,GAE5B,WAAAuC,GACI/B,QACAnD,KAAKmF,IAAM,SAAQH,EACvB,GALqCvF,EAAAwF,GAAA,cAAlC,IAAMG,GAANH,GAWA,MAAMI,GAAN,MAAMA,uBAAsB1C,GAC/B2C,gBAGA,WAAAJ,GACI/B,OACJ,CAEA,IAAA3C,CAAKC,EAA+B,IAChC,OAAO0C,MAAM3C,KAAK,CACd+E,WAAYvF,KAAKwF,YAAcxF,KAAKwF,YAAYhF,KAAKC,QAAQ,KAC1DA,GAEX,CAEA,KAAAgF,GACI,MAAO,CACHpG,GAAIW,KAAKuF,aAAalG,KAE9B,GAnBwCI,EAAA4F,GAAA,iBAArC,IAAMK,GAANL,GAqBPK,GAAc1C,UAAUC,QAAU,iBAOlCyC,GAAc1C,UAAU2C,QAAQ,aAAc,KAAM,SAAU,uBAAwB,KAAM,CAAEC,UAAU,IAExGF,GAAc1C,UAAUsC,gBAAkBI,GAAc1C,UAAUuC,WAClEG,GAAc1C,UAAUuC,WAAa,SAA+BjF,GAChE,MAAMkD,EAASkC,GAAc1C,UAAUsC,gBAAgBO,MAAM7F,KAAMO,WAInE,YAHU,IAAND,GACAN,KAAKK,eAAeC,GAEjBkD,CACX,ECpDO,MAAMsC,GAAN,MAAMA,mBAAkBnG,EACjBoG,OAEV,iBAAAC,GACI,MAAuB,YAAhBhG,KAAKhB,MAChB,CAEA,WAAAkG,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAMgB,KAAKhB,OACXK,GAAIW,KAAKyB,UACTwE,QAASjG,KAAKiG,UACd1G,SAA0B,YAAhBS,KAAKhB,OAAuBgB,KAAKkG,cAAczH,IAAI0H,GAAMA,EAAGV,cAAW,EAEzF,CAEA,OAAAW,CAAQC,GACJ,OAAOrG,KACFhB,KAAKqH,EAAIrH,MACTyC,QAAQ4E,EAAIhH,IACZ4G,QAAQI,EAAIJ,SACZC,YAAyB,YAAbG,EAAIrH,MAAsBqH,EAAI9G,SAAW8G,EAAI9G,SAASd,IAAIqH,WAAUM,SAAW,GAEpG,CAEA,cAAOA,CAAQC,GACX,OAAO,IAAIP,YAAYM,QAAQC,EACnC,CAIA,KAAAC,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKhB,UAAYgB,KAAKyB,SACnC,CAEA,UAAA+E,GACI,OAAQxG,KAAKhB,QACT,IAAK,UACD,OAAOyH,KAAUA,EACrB,IAAK,SACD,WAAgBA,EACpB,IAAK,SACD,UAAe,GAAKA,EAE5B,OAAOA,GAAQA,CACnB,CAEA,SAAAC,GACI,OAAO1G,KAAK2G,eAAiB3G,KAAK4G,QAAU5G,KAAKiG,SACrD,GA3DuCxG,EAAAqG,GAAA,aAApC,IAAMe,GAANf,GA8DA,MAAMgB,GAAN,MAAMA,cAAa1B,GAEtB,WAAAF,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAM,OACNK,GAAIW,KAAKX,KACT0H,OAAQ/G,KAAKgH,cAAcvI,IAAIwI,GAAKA,EAAExB,SAE9C,CAEA,OAAAW,CAAQC,EAAiBa,GAAS,GAI9B,OAHCA,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB8H,WAAWd,EAAIU,OAAOtI,IAAIoI,GAAUT,UAElCpG,IACX,CAEA,cAAOoG,CAAQC,EAAiBa,GAAS,GACrC,OAAO,IAAIJ,OAAOV,QAAQC,EAAKa,EACnC,CAEA,WAAAF,GACI,OAAOhH,KAAKmH,aAAajH,OAAO+G,GAAKA,EAAEV,QAC3C,CAEA,IAAA/F,CAAKC,EAAe,IAChB,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,WACPhF,GAEX,CAEA,WAAAE,GACI,OAAOC,QAAQC,SACnB,CAEA,KAAAG,GACI,MAAO,MACX,CAEA,aAAAI,CAAcD,GACV,MAAMqC,EAAwBxD,KAAKgH,cAAcvI,IAAIwI,GAAKA,EAAExB,SAC5D,MAAO,IAAMjC,CACjB,CAEA,IAAAvB,GACI,OAAOrB,QAAQC,SACnB,CAEA,WAAAwB,GACI,MAAMmB,EAAS,CAAA,EAIf,OAHAxD,KAAKgH,cAAcI,QAAQH,IACvBzD,EAAOyD,EAAExF,WAAawF,EAAEP,cAErB,CAAClD,EACZ,CAGA,KAAA6D,GACI,OAAO,CACX,GAhEiC5H,EAAAqH,GAAA,QAA9B,IAAMQ,GAANR,GC5DP,SAASS,GAAUpH,GACf,GAAI3B,EAAQ2B,GACR,MAAO,UAEX,MAAMnB,SAAcmB,EACpB,OAAQnB,GACJ,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACD,OAAOA,EAEf,MAAO,QACX,CAEO,SAASwI,GAAYtI,EAAauI,GAErC,MAAMjE,EAAwB,GAC9B,IAAA,MAAW1E,KAAOI,EAAK,CACnB,MAAMiB,EAAQ,CACVnB,KAAMuI,GAAUrI,EAAIJ,IACpBO,GAAIP,GAER,OAAQqB,EAAMnB,MACV,IAAK,SACD,IAAA,MAAWE,KAAOuI,EAAW,CACzB,IAAIC,GAAQ,EACZ,IAAA,MAAWC,KAAazI,EAAIJ,GAAM,CAC9B,MAAM8I,EAAYJ,GAAYtI,EAAIJ,GAAM,CAACI,EAAIJ,KAC7CqB,EAAM4G,OAAS,CAAA,EACXa,EAAUxI,SACVwI,EAAUR,QAAQS,GAAM1H,EAAM4G,OAAOc,EAAGxI,IAAMwI,GAC9CH,GAAQ,GAEZ,KACJ,CACA,GAAIA,EAAO,KACf,CACA,MACJ,IAAK,UACD,IAAA,MAAWxI,KAAOuI,EACd,GAAIvI,EAAIJ,IAAQI,EAAIJ,GAAKM,OAAQ,CAC7Be,EAAMZ,SAAWiI,GAAYtI,EAAIJ,GAAK,GAAII,EAAIJ,IAC9C,KACJ,EAIZ0E,EAAO1B,KAAK3B,EAChB,CACA,OAAOqD,CACX,CD2EA8D,GAAKtE,UAAUC,QAAU,QAqBzB4D,GAAU7D,UAAU2C,QAAQ,OAAQ,SAAU,MAAO,iBAAkB,CAAC,UAAW,SAAU,SAAU,YACvGkB,GAAU7D,UAAU2C,QAAQ,UAAW,GAAI,SAAU,mBACrDkB,GAAU7D,UAAU2C,QAAQ,UAAW,KAAM,MAAO,gBAAiB,KAAM,CAAEmC,UAAU,IACvFjB,GAAU7D,UAAU2C,QAAQ,QAAS,KAAM,MAAO,gBAAiB,KAAM,CAAEmC,UAAU,IACrFjB,GAAU7D,UAAU2C,QAAQ,cAAe,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYlB,GAAWmB,uBAASvI,EAACwI,GAAiBA,EAAEjC,oBAApB,aAExHsB,GAAKtE,UAAU2C,QAAQ,aAAc,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYlB,KCzJrFpH,EAAA8H,GAAA,aAeO9H,EAAA+H,GAAA,eAsCT,MAAMU,GAAN,MAAMA,kBAAiB9C,GAElBqC,UAAmC,GAE3C,WAAAvC,GACI/B,OACJ,CAEA,KAAAsC,CAAM0C,GAAuB,GACzB,MAAO,CACHnJ,KAAM,WACNK,GAAIW,KAAKX,KACT+I,OAAQpI,KAAKoI,SACbC,QAASF,OAAc,EAAYnI,KAAKqI,UACxCtB,OAAQ/G,KAAKgH,cAAcvI,IAAIwI,GAAKA,EAAExB,SAE9C,CAEA,OAAAW,CAAQC,EAAqBa,GAAS,GAMlC,OALCA,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB+I,OAAO/B,EAAI+B,QACXC,QAAQhC,EAAIgC,SACZC,eAAejC,EAAIU,OAAOtI,IAAIoI,GAAUT,UAEtCpG,IACX,CAEA,cAAOoG,CAAQC,EAAqBa,GAAS,GACzC,OAAO,IAAIgB,WAAW9B,QAAQC,EAAKa,EACvC,CAEA,WAAAF,GACI,OAAOhH,KAAKsI,iBAAiBpI,OAAO+G,GAAKA,EAAEV,QAC/C,CAEA,cAAAgC,GACI,IACI,OAAQvI,KAAKoI,UACT,IAAK,MACDpI,KAAKyH,UAAYe,EAAWxI,KAAKqI,WACjC,MACJ,IAAK,MACDrI,KAAKyH,UAAYgB,EAAWzI,KAAKqI,WACjC,MAEJ,QACIrI,KAAKyH,UAAY9I,KAAK+J,MAAM1I,KAAKqI,WAGzCrI,KAAKsI,eAAetI,KAAK2I,gBAAgBlK,IAAIoI,GAAUT,SAC3D,OAASwC,GACL5I,KAAKsI,eAAe,IACpBtI,KAAKyH,UAAY,EACrB,CACJ,CAEA,IAAAjH,CAAKC,GACD,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,OAAM,MACbhF,IACFT,KAAKqI,SACd,CAEA,WAAA1H,GACI,OAAOC,QAAQC,SACnB,CAEA,KAAAG,GACI,MAAO,UACX,CAEQ,aAAA2H,GACJ,OAA8B,IAA1B3I,KAAKyH,UAAUrI,OAAqB,GACjCoI,GAAYxH,KAAKyH,UAAU,GAAIzH,KAAKyH,UAC/C,CAEA,aAAArG,CAAcD,GACV,MAAO,IAAMnB,KAAKgH,cAAcvI,IAAIwI,GAAKA,EAAExB,QAC/C,CAEA,IAAAxD,GACI,OAAOrB,QAAQC,SACnB,CAEA,WAAAwB,GACI,MAAMwG,EAAgB,CAAA,EAItB,OAHA7I,KAAKgH,cAAcI,QAAQjH,IACvB0I,EAAc1I,EAAMsB,WAAatB,EAAMqG,eAEpCxG,KAAKyH,UAAUhJ,IAAIS,IACtB,MAAMsE,EAAS,CAAA,EACf,IAAA,MAAW1E,KAAO+J,EACdrF,EAAO1E,GAAO+J,EAAc/J,GAAKI,EAAIJ,IAEzC,OAAO0E,GAEf,CAGA,KAAA6D,GACI,OAAOrH,KAAKyH,UAAUrI,MAC1B,GArGqCK,EAAAyI,GAAA,YAAlC,IAAMY,GAANZ,GAuGPY,GAAS9F,UAAUC,QAAU,YAW7B6F,GAAS9F,UAAU2C,QAAQ,SAAU,OAAQ,MAAO,kBAAmB,CAAC,OAAQ,MAAO,QACvFmD,GAAS9F,UAAU2C,QAAQ,UAAW,GAAI,SAAU,iBAAkB,KAAM,CAAEoD,WAAW,IACzFD,GAAS9F,UAAU2C,QAAQ,iBAAkB,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYlB,KAEtG,MAAMmC,GAAgBF,GAAS9F,UAAUoF,OACzCU,GAAS9F,UAAUoF,OAAS,SAA0B9H,GAClD,MAAMkD,EAASwF,GAAcnD,MAAM7F,KAAMO,WAIzC,OAHIA,UAAUnB,QACVY,KAAKuI,iBAEF/E,CACX,EAEA,MAAMyF,GAAsBH,GAAS9F,UAAUqF,QAC/CS,GAAS9F,UAAUqF,QAAU,SAA0B/H,GACnD,MAAMkD,EAASyF,GAAoBpD,MAAM7F,KAAMO,WAI/C,OAHIA,UAAUnB,QACVY,KAAKuI,iBAEF/E,CACX,EAEO,MAAM0F,IAAgB,IAAIJ,IAAWzJ,GAAG,SAASgJ,QAAQ,MAEnDc,GAAN,MAAMA,iBACDC,UAER,WAAAlE,CAAY7B,GACRrD,KAAKoJ,UAAY/F,GAAY6F,EACjC,CAEA,IAAAjH,GACI,OAAOjC,KAAKoJ,UAAUzI,cAAcwD,KAAK,IAC9BnE,KAAKoJ,UAAUnH,OAE9B,CAEA,EAAA5C,GACI,OAAOW,KAAKoJ,UAAU/J,IAC1B,CACA,IAAAmB,CAAKC,EAA+B,IAChC,OAAOT,KAAKoJ,UAAU5I,KAAKC,EAC/B,CACA,KAAAO,GACI,OAAOhB,KAAKoJ,UAAUpI,OAC1B,CACA,SAAAf,GACI,OAAOD,KAAKoJ,WAAapJ,KAAKoJ,UAAUnJ,UAAYD,KAAKoJ,UAAUnJ,YAA+B,EACtG,CACA,KAAAoH,GACI,OAAOrH,KAAKoJ,UAAYpJ,KAAKoJ,UAAUhH,UAAUhD,OAAS,CAC9D,CACA,KAAA2E,CAAMJ,EAAcK,GAChB,OAAOhE,KAAKiC,OAAOkC,KAAK,KACpB,MAAMrE,EAAOE,KAAKoJ,UAAUhH,UAC5B,OAAa,IAATuB,GAAc7D,EAAKV,QAAU4E,EACtBpD,QAAQC,QAAQf,GAEpBc,QAAQC,QAAQf,EAAKsE,MAAMT,EAAMA,EAAOK,KAEvD,GApCgDvE,EAAA0J,GAAA,mBAA7C,IAAME,GAANF,GChMA,MAAeG,GAAf,MAAeA,mBAAkBlE,GAOpC,WAAAF,CAAsBqE,GAClBpG,QADkBnD,KAAAuJ,IAAAA,EAElBvJ,KACKwJ,QAAQxJ,KAAKuJ,IAAIC,WACjBC,WAAWzJ,KAAKuJ,IAAIE,aAE7B,CANsBF,IANZG,QACAC,QAAwB,GACxBC,MAAuB,GACvBC,OACFC,MAA+B,GAUvC,IAAAtJ,CAAKC,EAAe,IAChB,OAAOC,EAAQ,CACX8I,QAASxJ,KAAKwJ,UACdC,WAAYzJ,KAAKyJ,gBACdhJ,GAEX,CAIAsJ,cACAC,mBACA,WAAArJ,GAsBI,OArBIX,KAAK+J,gBAAkB/J,KAAKQ,SAC5BR,KAAK+J,cAAgB/J,KAAKQ,cACnBR,KAAKgK,oBAEXhK,KAAKgK,qBACNhK,KAAKgK,mBAAqB7G,MAAMxC,cAAcwD,KAAK,KAE/C,GADAnE,KAAK0J,QAAU1J,KAAKiK,gBAChBjK,KAAK0J,QACL,OAAO1J,KAAK0J,QAAQQ,UAExB,MAAM,IAAIC,MAAM,qBACjBhG,KAAKiG,IACJpK,KAAK6J,OAASO,EAAOC,MACrBrK,KAAK2J,QAAUS,EAAOrD,SACtB/G,KAAK4J,MAAQ5J,KAAK4J,OAAS5J,KAAK4J,MAAMxK,OAASY,KAAK4J,MAAQ5J,KAAK2J,QAAQlL,IAAIQ,MAC9EqL,MAAM1B,IACL5I,KAAK6J,OAAS,EACd7J,KAAK2J,QAAU,GACf3J,KAAK4J,MAAQ,MAGd5J,KAAKgK,kBAChB,CAIA,cAAAO,CAAejK,GACX,OAAKC,UAAUnB,QACfY,KAAK4J,MAAQtJ,EACbN,KAAKW,cACEX,MAHuBA,KAAK4J,KAIvC,CAEA,aAAAxI,CAAcD,GACV,MAAO,IAAMnB,KAAKuK,gBACtB,CAEA,IAAAtI,GACI,OAAOjC,KAAKwK,OAChB,CAEQC,cACAD,MAAQE,EAAS,IACjB1K,KAAKyK,gBAAkBzK,KAAKQ,QAC5BR,KAAKyK,cAAgBzK,KAAKQ,OACnB2C,MAAMlB,OAAOkC,KAAK,IACdnE,KAAK2K,UACbxG,KAAKyG,IACJ5K,KAAK8J,MAAQ9J,KAAKH,SAAS+K,KAC5BN,MAAM1B,IACL5I,KAAK8J,MAAQ,MAGVlJ,QAAQC,WAIvB,MAAAsB,GACI,OAAOnC,KAAK8J,KAChB,CAEA,WAAAzH,GACI,OAAOrC,KAAK8J,KAChB,CAEA,KAAAzC,GACI,OAAOrH,KAAK6J,MAChB,CAGA,WAAM9F,CAAMJ,EAAcK,GACtB,OAAIA,EAAQhE,KAAKwJ,UAAYxJ,KAAKyJ,aACvBzJ,KAAK2K,SAET3K,KAAK6K,OAAOlH,EAAMK,EAC7B,CAEQ8G,QAAU,IAAIC,EACd,MAAAF,CAAOlH,EAAcK,GACzB,OAAOhE,KAAK8K,QAAQhJ,KAChB9B,KAAK0J,QAAU1J,KAAK0J,QACfsB,UAAUrH,EAAMK,GAChBsG,MAAM1B,GACI,IAEXhI,QAAQC,QAAQ,IAE5B,CAEQ8J,OAASD,EAAS,CAAClB,EAAkBxJ,KAAKwJ,UAAWC,EAAqBzJ,KAAKyJ,gBACnF,MAAMwB,EAA+B,GACrC,GAAIzB,EAAUC,GAAczJ,KAAKqH,QAC7B4D,EAAMnJ,KAAK9B,KAAK6K,OAAO,EAAG7K,KAAKqH,cAC5B,CACH,MAAM6D,EAAWlL,KAAKqH,QAAUoC,EAChC,IAAA,IAAS0B,EAAI,EAAGA,EAAI3B,IAAW2B,EAC3BF,EAAMnJ,KAAK9B,KAAK6K,OAAOO,KAAKC,MAAMF,EAAID,EAAW1B,GAAUC,GAEnE,CACA,OAAO7I,QAAQ0K,IAAIL,GAAO9G,KAAKoH,IAC3B,IAAIC,EAAiB,GACrB,IAAA,MAAWZ,KAAYW,EACnBC,EAAUA,EAAQ1H,OAAO8G,GAE7B,OAAOY,OApIgC/L,EAAA6J,GAAA,aAA5C,IAAemC,GAAfnC,GAwIPmC,GAAUzI,UAAUC,QAAU,aASvB,MAAMyI,GAAN,MAAMA,kBAAiBD,GAE1BE,QACAC,gBAKA,WAAA1G,CAAYqE,GACRpG,MAAMoG,GACNvJ,KAAK6L,IAAM,IAAIC,GAAG9L,KAAKuJ,IAC3B,CAEA,GAAAwC,GACI,OAAO/L,KAAK6L,IAAIE,KACpB,CAEA,IAAAC,GACI,OAAOhM,KAAK6L,IAAIG,MACpB,CAEA,KAAAvG,GACI,MAAO,CACHzG,KAAM,WACNK,GAAIW,KAAKX,KACT0M,IAAK/L,KAAK6L,IAAIE,MACdC,KAAMhM,KAAKgM,OACXnK,QAAS,CACL,CAAC7B,KAAKiM,cAAe,CACjBlF,OAAQ/G,KAAKuK,mBAI7B,CAEA,OAAAnE,CAAQC,EAAqBa,GAAS,GAClC,OAAIb,EAAIxE,QAAQ7B,KAAKiM,cACVjM,KAAKuK,eAAelE,EAAIxE,QAAQ7B,KAAKiM,cAAclF,QAEvD/G,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB7F,EAAqB8F,EAAQF,EAAoB/E,GAAS,GAC3F,OAAO,IAAIwE,UAASQ,GACfC,GAAGA,GACHF,WAAWA,GACX7F,QAAQC,EAEjB,CAEA,aAAA4D,GACI,GAAIjK,KAAK6L,IAAIE,OAAS/L,KAAKgM,QAAUhM,KAAKiM,aACtC,OAAOG,EAAOC,OAAO,CAAEC,QAAStM,KAAK6L,IAAIE,MAAOQ,SAAUvM,KAAKuJ,IAAIgD,YAAcvM,KAAKgM,OAAQhM,KAAKiM,aAG3G,CAEA,UAAAO,GACI,OAAOrJ,MAAM3C,KAAK,CACdwL,KAAMhM,KAAKgM,QAEnB,CAEA,IAAAxL,CAAKC,GACD,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,SAElB,CAEA,KAAAzE,GACI,MAAO,GAAGhB,KAAKgM,WAAWhM,KAAKiM,cACnC,GAvEoCxM,EAAAiM,GAAA,YAAjC,IAAMe,GAANf,GAyEPe,GAASzJ,UAAUC,QAAU,YAStB,MAAMyJ,GAAN,MAAMA,YAAWtH,GAOpB,WAAAF,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IANpBoD,SACAC,UAEUC,UACAC,SAAuC,CAAA,EAMjD,KAAArH,GACI,MAAMsH,EAA8B,CAAA,EACpC,IAAA,MAAWd,KAAcjM,KAAK8M,SAC1BC,EAAWd,GAAc,CACrBlF,OAAQ/G,KAAK8M,SAASb,GAAY1B,kBAG1C,MAAO,CACHvL,KAAM,WACNK,GAAIW,KAAKX,KACT0M,IAAK/L,KAAK+L,MACVC,KAAMhM,KAAKgM,OACXnK,QAASkL,EAEjB,CAEA,OAAA3G,CAAQC,EAAqBa,GAAS,IACjCA,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB0M,IAAI1F,EAAI0F,KACRC,KAAK3F,EAAI2F,MAEd,MAAMgB,EAAwC,CAAA,EAC9C,IAAA,MAAWf,KAAc5F,EAAIxE,QACzBmL,EAAUf,GAAcQ,GAASrG,QAAQpG,KAAKuJ,IAAKlD,EAAKrG,KAAMiM,GAGlE,OADAjM,KAAK8M,SAAWE,EACThN,IACX,CAEA,cAAOoG,CAAQ6G,EAAoC5G,EAAqBa,GAAS,GAC7E,OAAO,IAAIwF,IAAGO,GAAkB7G,QAAQC,EAAKa,EACjD,CAEA,IAAA1G,GACI,OAAOE,EAAQ,CACXqL,IAAK/L,KAAK+L,MACVC,KAAMhM,KAAKgM,QAEnB,CAEA,KAAAhL,GACI,OAAOhB,KAAKgM,MAChB,CAEA,OAAAnK,GACI,MAAM2B,EAAS,GACf,IAAA,MAAWyI,KAAcjM,KAAK8M,SAC1BtJ,EAAO1B,KAAK9B,KAAK8M,SAASb,IAE9B,OAAOzI,CACX,CAEA,SAAA0J,GACI,MAAM1J,EAA0B,CAAA,EAChC,IAAA,MAAWyI,KAAcjM,KAAK8M,SAC1BtJ,EAAOyI,GAAc,CACjBlF,OAAQ/G,KAAK8M,SAASb,GAAYhM,aAG1C,OAAOuD,CACX,CAEA,MAAA2J,CAAO9N,GACH,OAAOW,KAAK8M,SAASzN,EACzB,CAEQ+N,gBACApD,mBACAqD,aAAyB,GACjC,WAAA1M,GACI,OAAKX,KAAK+L,OAAU/L,KAAKgM,QAGrBhM,KAAKoN,kBAAoBpN,KAAKQ,SAC9BR,KAAKoN,gBAAkBpN,KAAKQ,cACrBR,KAAKgK,oBAEXhK,KAAKgK,qBACNhK,KAAKgK,mBAAqB7G,MAAMxC,cAAcwD,KAAK,KAC/CnE,KAAK6M,UAAYS,EAASjB,OAAO,CAAEC,QAAStM,KAAK+L,MAAOQ,SAAUvM,KAAKuJ,IAAIgD,YAAcvM,KAAKgM,QACvFhM,KAAK6M,UAAUU,iBACvBpJ,KAAKqJ,IACJxN,KAAKqN,aAAeG,EAAQ/O,IAAIgP,GAAKA,EAAEC,QACxCpD,MAAM1B,QAGN5I,KAAKgK,oBAfDpJ,QAAQC,SAgBvB,CAEA,WAAA8M,GACI,OAAO3N,KAAKqN,YAChB,GAtG+B5N,EAAAiN,GAAA,MAA5B,IAAMZ,GAANY,GAwGPZ,GAAG9I,UAAUC,QAAU,MAShB,MAAM2K,GAAN,MAAMA,qBAAoBlI,GAI7B,UAAAH,CAAWjF,GACP,OAAO6C,MAAMoC,WAAWM,MAAM7F,KAAMO,UACxC,CAIA,UAAA0L,CAAW3L,GACP,OAAKC,UAAUnB,QACfY,KAAKuF,aAAa0G,WAAW3L,GACtBN,MAFuBA,KAAKuF,aAAa0G,YAGpD,CAEA,KAAAxG,GACI,MAAO,CACHpG,GAAIW,KAAKuF,aAAa4G,KAAK9M,KAC3B8N,OAAQnN,KAAKiM,aAErB,GArB2CxM,EAAAmO,GAAA,eAAxC,IAAMC,GAAND,GAuBPC,GAAY7K,UAAUC,QAAU,eAEhCwI,GAAUzI,UAAU2C,QAAQ,UAAW,GAAI,SAAU,qBACrD8F,GAAUzI,UAAU2C,QAAQ,aAAc,IAAK,SAAU,eAEzD8G,GAASzJ,UAAU2C,QAAQ,KAAM,KAAM,SAAU,YACjD8G,GAASzJ,UAAU2C,QAAQ,aAAc,GAAI,MAAO,cAAe,WAC/D,YAAoB,IAAb3F,KAAK6L,IAAoB7L,KAAK6L,IAAI8B,cAAgB,EAC7D,GAEAlB,GAASzJ,UAAU2I,QAAUc,GAASzJ,UAAUmJ,GAChDM,GAASzJ,UAAUmJ,GAAK,SAA0B7L,GAC9C,MAAMkD,EAASiJ,GAASzJ,UAAU2I,QAAQ9F,MAAM7F,KAAMO,WAItD,YAHU,IAAND,GACAN,KAAK6L,IAAIlL,cAEN6C,CACX,EAEAiJ,GAASzJ,UAAU4I,gBAAkBa,GAASzJ,UAAUiJ,WACxDQ,GAASzJ,UAAUiJ,WAAa,SAA0B3L,GACtD,MAAMwN,EAAO9N,KAAK+N,YACZvK,EAASiJ,GAASzJ,UAAU4I,gBAAgB/F,MAAM7F,KAAMO,WAI9D,YAHU,IAAND,GAAmBwN,IAASxN,GAC5BN,KAAKuK,eAAe,IAEjB/G,CACX,EAEAsI,GAAG9I,UAAU2C,QAAQ,MAAO,GAAI,SAAU,iCAC1CmG,GAAG9I,UAAU2C,QAAQ,OAAQ,GAAI,SAAU,eAE3CmG,GAAG9I,UAAU2J,SAAWb,GAAG9I,UAAU+I,IACrCD,GAAG9I,UAAU+I,IAAM,SAAoBzL,GACnC,MAAMkD,EAASsI,GAAG9I,UAAU2J,SAAS9G,MAAM7F,KAAMO,WAIjD,YAHU,IAAND,GACAN,KAAKW,cAEF6C,CACX,EAEAsI,GAAG9I,UAAU4J,UAAYd,GAAG9I,UAAUgJ,KACtCF,GAAG9I,UAAUgJ,KAAO,SAAoB1L,GACpC,MAAMkD,EAASsI,GAAG9I,UAAU4J,UAAU/G,MAAM7F,KAAMO,WAIlD,YAHU,IAAND,GACAN,KAAKW,cAEF6C,CACX,EC7ZO,MAAMwK,GAAN,MAAMA,qBAAoBvC,GAE7B,WAAAvG,CAAYqE,GACRpG,MAAMoG,EACV,CAEA,KAAA9D,GACI,MAAO,CACHzG,KAAM,cACNK,GAAIW,KAAKX,KACT0M,IAAK/L,KAAK+L,MACVkC,YAAajO,KAAKiO,cAClBlH,OAAQ/G,KAAKuK,iBAErB,CAEA,OAAAnE,CAAQC,EAAwBa,GAAS,GAKrC,OAJCA,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB0M,IAAI1F,EAAI0F,KACRkC,YAAY5H,EAAI4H,aAEdjO,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB7F,EAAwBa,GAAS,GAClE,OAAO,IAAI8G,aAAY9B,GAAI9F,QAAQC,EAAKa,EAC5C,CAEA,aAAA+C,GACI,OAAOmC,EAAO8B,kBAAkB,CAAE5B,QAAStM,KAAK+L,MAAOQ,SAAUvM,KAAKuJ,IAAIgD,YAAcvM,KAAKmO,YAAanO,KAAKiO,cACnH,CAEA,UAAAzB,GACI,OAAOrJ,MAAM3C,KAAK,CACdyN,YAAajO,KAAKiO,eAE1B,CAEA,IAAAzN,CAAKC,GACD,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,SAElB,CAEA,KAAAzE,GACI,MAAO,GAAGhB,KAAKiO,eACnB,GA9CuCxO,EAAAuO,GAAA,eAApC,IAAMI,GAANJ,GAgDPI,GAAYpL,UAAUC,QAAU,eAUhCmL,GAAYpL,UAAU2C,QAAQ,MAAO,GAAI,SAAU,iCACnDyI,GAAYpL,UAAU2C,QAAQ,YAAa,GAAI,SAAU,cACzDyI,GAAYpL,UAAU2C,QAAQ,cAAe,GAAI,SAAU,qBCxDpD,MAAM0I,GAAN,MAAMA,mBAAkB1O,EACjBoG,OAEV,WAAAb,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAM,SACNK,GAAIW,KAAKyB,UAEjB,CAEA,OAAA2E,CAAQC,GACJ,OAAOrG,KACFyB,QAAQ4E,EAAIhH,GAErB,CAEA,cAAO+G,CAAQC,GACX,OAAO,IAAIgI,YAAYjI,QAAQC,EACnC,CAIA,KAAAC,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKyB,SAClB,GAlCuChC,EAAA4O,GAAA,aAApC,IAAMC,GAAND,GAqCA,MAAME,GAAN,MAAMA,qBAAoBnJ,GAI7B,WAAAF,CAAqBqE,GACjBpG,QADiBnD,KAAAuJ,IAAAA,CAErB,CAFqBA,IAFbiF,gBAAyD,CAAA,EAMjE,KAAA/I,GACI,MAAO,CACHzG,KAAM,OACNK,GAAIW,KAAKX,KACT0M,IAAK/L,KAAK+L,MACV0C,OAAQzO,KAAKyO,SACbC,KAAM1O,KAAK0O,OACXC,OAAQ3O,KAAK4O,qBAAqBnQ,IAAIoJ,GAAMA,EAAGpC,SAC/C5D,QAAS7B,KAAKkN,YAEtB,CAEA,OAAA9G,CAAQC,EAAwBa,GAAS,IACpCA,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB0M,IAAI1F,EAAI0F,KACR0C,OAAOpI,EAAIoI,QACXC,KAAKrI,EAAIqI,MAAQ,OACjBG,cAAcxI,EAAIsI,OAAOlQ,IAAI6P,GAAUlI,UAE5C,IAAA,MAAWtH,KAAOuH,EAAIxE,QAClB7B,KAAKuK,eAAezL,EAAKuH,EAAIxE,QAAQ/C,GAAKiI,QAE9C,OAAO/G,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB7F,EAAwBa,GAAS,GAClE,OAAO,IAAIqH,aAAYrC,GAAI9F,QAAQC,EAAKa,EAC5C,CAEA,IAAA1G,CAAKC,EAAe,IAChB,OAAOC,EAAQ,CACXqL,IAAK/L,KAAK+L,MACV0C,OAAQzO,KAAKyO,SACbC,KAAM1O,KAAK0O,UACRjO,GAEX,CAEA,KAAAO,GACI,OAAOhB,KAAKyO,QAChB,CAIA,cAAAlE,CAAe0B,EAAoB3L,GAC/B,OAAyB,IAArBC,UAAUnB,OAAqBY,KAAKwO,gBAAgBvC,IAAe,IACvEjM,KAAKwO,gBAAgBvC,GAAc3L,EAC5BN,KACX,CAEA,kBAAA4O,GACI,OAAO5O,KAAK6O,gBAAgB3O,OAAO+G,GAAKA,EAAEV,QAC9C,CAEQuI,iBACAC,aACAC,SAAW,IAAIjE,EACvB,MAAAkE,CAAOC,GACH,MAAMC,EAAczO,EAAQwO,GAC5B,IAAKlP,KAAK+O,cAAgB/O,KAAK8O,mBAAqBK,EAAa,CAC7DnP,KAAK8O,iBAAmBK,EACxB,MAAMC,EAAOC,EAAiB,CAAE/C,QAAStM,KAAK+L,MAAO/M,KAAMgB,KAAK0O,SAChE1O,KAAK+O,aAAe/O,KAAKgP,SAASlN,KAAKsN,EAAKE,KAAKtP,KAAKyO,SAAUS,GACpE,CACA,OAAOlP,KAAK+O,YAChB,CAEA,WAAApB,GACI,MAAMnK,EAAmB,GACzB,IAAA,MAAW1E,KAAOkB,KAAKwO,gBACnBhL,EAAO1B,KAAKhD,GAEhB,OAAO0E,CACX,CAEA,SAAA0J,GACI,MAAM1J,EAA0B,CAAA,EAMhC,OALAxD,KAAK2N,cAAcvG,QAAQ6E,IACvBzI,EAAOyI,GAAc,CACjBlF,OAAQ/G,KAAKwO,gBAAgBvC,MAG9BzI,CACX,GA3FwC/D,EAAA8O,GAAA,eAArC,IAAMgB,GAANhB,GA6FPgB,GAAYvM,UAAUC,QAAU,eAEzB,MAAMuM,GAAN,MAAMA,oBAAmBpK,GAM5B,WAAAF,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KAAKyP,SAAW,IAAIF,GAAYvP,KAAKuJ,IACzC,CAHoBA,IAJpBmG,aASA,kBAAAd,GACI,OAAO5O,KAAK2P,UAAUf,oBAC1B,CAEA,KAAAnJ,GACI,OAAOzF,KAAK2P,UAAUlK,OAC1B,CAEA,OAAAW,CAAQC,GAEJ,OADArG,KAAK2P,UAAUvJ,QAAQC,GAChBrG,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB0D,EAAiB3D,GAClD,OAAO,IAAIuD,YAAWtD,GACjB7M,GAAG,GAAGuQ,EAAGvQ,QAAQ4M,KACjB0D,QAAQC,GACR3D,WAAWA,EAEpB,CAEA,SAAA4D,GACI,MAAO,GAAG7P,KAAK2P,UAAU5D,SAAS/L,KAAK2P,UAAUlB,WACrD,CAEA,UAAAjC,GACI,OAAOxM,KAAK2P,UAAUnP,MAC1B,CAEA,aAAAqO,GACI,OAAO7O,KAAK2P,UAAUd,gBAAgBpQ,IAAIoJ,GAAMA,EAAGpC,QACvD,CAIA,cAAA8E,CAAejK,GACX,OAAKC,UAAUnB,QACfY,KAAK2P,UAAUpF,eAAevK,KAAKiM,aAAc3L,GAC1CN,MAFuBA,KAAK2P,UAAUpF,eAAevK,KAAKiM,aAGrE,CAEA,IAAAzL,CAAKC,EAAe,IAChB,OAAOC,EAAQ,CACXgD,OAAQ1D,KAAKwM,aACbP,WAAYjM,KAAKiM,gBACdxL,GAEX,CAEA,KAAAO,GACI,MAAO,GAAGhB,KAAK2P,UAAU3O,YAAYhB,KAAKiM,cAC9C,CAEQxE,UAAsB,GACtB,cAAAqI,GACJ,IAAK9P,KAAKyH,YAAczH,KAAKyH,UAAUrI,aAAe,GACtD,MAAMoE,EAASgE,GAAYxH,KAAKyH,UAAU,GAAIzH,KAAKyH,WAEnD,OADAzH,KAAKuK,eAAe/G,GACbA,CACX,CAEA,aAAApC,CAAcD,GACV,MAAO,IAAMnB,KAAK8P,gBACtB,CAEA,WAAAzN,GACI,OAAOrC,KAAKyH,SAChB,CAEA,MAAAwH,CAAOC,GACH,OAAOlP,KAAK2P,UAAUV,OAAOC,GAAS/K,KAAKyG,IACvC,MAAMqB,EAAajM,KAAKiM,aAClB8D,EAAe9D,EAAaA,EAAW+D,MAAM,KAAO,GAC1D,IAAA,MAAW7P,KAAS4P,EAChBnF,GAAYA,GAAY,CAAA,GAAIzK,GAGhC,OADAH,KAAKyH,UAAYmD,EACVA,GAEf,CAEA,aAAAqF,GACI,MAAMf,EAAU,CAAA,EAIhB,OAHAlP,KAAK2P,UAAUf,qBAAqBxH,QAAQH,IACxCiI,EAAQjI,EAAExF,WAAa,KAEpByN,CACX,CAEA,IAAAjN,GACI,OAAOjC,KAAKiP,OAAOjP,KAAKiQ,iBAAiB9L,KAAKyG,MAClD,GAtGuCnL,EAAA+P,GAAA,cAApC,IAAMU,GAANV,GAwGPU,GAAWlN,UAAUC,QAAU,cAExB,MAAMkN,GAAN,MAAMA,eAAcxQ,EA4BvB,WAAAuF,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IA1BpB,QAAAxI,CAASqP,GACL,MAAM5M,EAA2B,GAsBjC,OArBKxD,KAAKqQ,gBACN7M,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,YAAiBpQ,KAAK0D,WACjC4M,IAAK,qBAAqBtQ,KAAK0D,YAC/B6M,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKwQ,wBAG3CxQ,KAAKyQ,qBACNjN,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,gBACXE,IAAK,0BAA0BtQ,KAAK0Q,iBACpCH,KAAM,cAAc5R,KAAKN,UAAU2B,KAAK2Q,uBAG3C3Q,KAAK4Q,eACNpN,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,UACXE,IAAK,oBAAoBtQ,KAAK4G,WAC9B2J,KAAM,0BAGP/M,CACX,CAMA,KAAAiC,GACI,MAAO,CACH/B,OAAQ1D,KAAK0D,SACbmN,cAAe7Q,KAAK0Q,cACpBI,aAAc9Q,KAAK+Q,aACnBnK,MAAO5G,KAAK4G,QAEpB,CAEA,OAAAR,CAAQC,GACJ,OAAOrG,KACF0D,OAAO2C,EAAI3C,QACXgN,YAAYrK,EAAIwK,eAChBE,WAAW1K,EAAIyK,cACflK,MAAMP,EAAIO,MAEnB,CAEA,cAAOR,CAAQ8F,EAAsB7F,GACjC,OAAO,IAAI8J,OAAMjE,GAAI9F,QAAQC,EACjC,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXM,MAAOhB,KAAK+Q,aACZrN,OAAQ1D,KAAK0D,SACbsN,YAAahR,KAAK0Q,eAE1B,CAEA,gBAAAF,GACI,OAAOxQ,KAAKuJ,IAAI0H,YACpB,CAEA,YAAAC,GACI,OAAOlR,KAAK2Q,kBAAkBlS,IAAI0B,GAASA,EAAMd,GACrD,CAEA,SAAA8R,GACI,OAAOnR,KAAKuJ,IAAI6H,QAAQpR,KAAK0D,SACjC,CAEA,eAAAiN,GACI,OAAO3Q,KAAKmR,YAAYE,gBAAgBC,iBAC5C,CAEA,eAAAC,GACI,OAAOvR,KAAKmR,YAAY1M,WAC5B,CAEA,SAAAiC,GACI,GAAI1G,KAAKwR,iBAAmBxR,KAAKyR,qBAAsB,CAEnD,OADwBzR,KAAKuR,kBACN9S,IAAIS,GAAOA,EAAIc,KAAK0Q,eAC/C,CAAA,OAAW1Q,KAAK2G,eACL,CAAC3G,KAAK4G,SAEV,CAAC,GACZ,CAEA,MAAA9F,GACI,OAAOd,KAAK0R,sBAAyB1R,KAAKwR,iBAAmBxR,KAAKyR,sBAAyBzR,KAAK2G,eACpG,GA9FmClH,EAAA0Q,GAAA,SAAhC,IAAMwB,GAANxB,GAgGPwB,GAAM3O,UAAUC,QAAU,SAEnB,MAAM2O,GAAN,MAAMA,uBAAsBlM,GAkC/B,WAAAR,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IAhCpB,SAAAsG,GACI,OAAO7P,KAAKuF,aAAasK,WAC7B,CAEQ/F,MAA+B,GAIvC,UAAAvE,CAAWjF,GACP,OAAO6C,MAAMoC,WAAWM,MAAM7F,KAAMO,UACxC,CAEA,GAAAwL,GACI,OAAO/L,KAAKuF,aAAaoK,UAAU5D,KACvC,CAEA,MAAA0C,GACI,OAAOzO,KAAKuF,aAAaoK,UAAUlB,QACvC,CAEA,UAAAxC,GACI,OAAOjM,KAAKuF,aAAa0G,YAC7B,CAEA,QAAAlL,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAWtD,KAAUF,KAAK6R,cACtBrO,EAASA,EAAOM,OAAO5D,EAAOa,SAAS,YAE3C,OAAOyC,CACX,CAMA,KAAAiC,GACI,MAAO,CACHpG,GAAIW,KAAKuF,aAAaoK,UAAUtQ,KAChC8N,OAAQnN,KAAKiM,aACbiD,QAASlP,KAAK6R,cAAcpT,IAAKqT,IACtB,CACHpO,OAAQoO,EAAGpO,SACXmN,cAAeiB,EAAGpB,cAClBI,aAAcgB,EAAGf,aACjBnK,MAAOkL,EAAGlL,WAI1B,CAEA,UAAA4F,GACI,OAAOxM,KAAKuF,aAAa/E,MAC7B,CAIA,gBAAAuR,CAAiBzR,GACb,OAAKC,UAAUnB,QACfY,KAAKkP,QAAQ5O,EAAE7B,IAAIuT,GAAML,GAAMvL,QAAQpG,KAAKuJ,IAAKyI,KAC1ChS,MAFuBA,KAAK6R,cAAcpT,IAAIwT,GAASA,EAAMxM,QAGxE,CAEA,aAAAoJ,GACI,OAAO7O,KAAKuF,aAAasJ,eAC7B,CAEA,cAAAtE,GACI,OAAOvK,KAAKuF,aAAagF,gBAC7B,CAEA,IAAA/J,GACI,OAAOR,KAAKuF,aAAa/E,KAAK,CAC1ByL,WAAYjM,KAAKiM,aACjBiD,QAASlP,KAAKiQ,iBAEtB,CAEA,KAAAjP,GACI,MAAO,GAAGhB,KAAKuF,aAAavE,YAAYhB,KAAKuF,aAAa0G,cAC9D,CAEA,UAAAgF,GACI,OAAOjR,KAAKuJ,IAAI0H,YACpB,CAEA,OAAAG,CAAQ1N,GACJ,OAAO1D,KAAKuJ,IAAI6H,QAAQ1N,EAC5B,CAEA,gBAAA1B,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GAEvB,IAAA,MAAWsQ,KAASjS,KAAK6R,cAAe,CACpC,MAAMK,EAAeD,EAAMd,YAAYE,gBAClC1P,EAAKgN,OAAO3O,KAAKX,QAClBsC,EAAKgN,OAAO3O,KAAKX,MAAQ,IAE7BsC,EAAKgN,OAAO3O,KAAKX,MAAMyC,KAAKmQ,EAAMlB,cAClCmB,EAAaxQ,cAAcC,EAAM,CAACsQ,EAAMvB,eAC5C,CACAvN,MAAMzB,cAAcC,EATY,GAUpC,CAEA,WAAAkQ,GACI,OAAO7R,KAAKkP,UAAUhP,OAAO+R,GAASA,EAAMnR,SAChD,CAEA,WAAAH,GACI,OAAOX,KAAKuF,aAAa5E,cAAcwD,KAAK,KACxC,MAAMgO,EAAYnS,KAAKkP,UACjBkD,EAAQC,EAAQF,EAAU1T,IAAI6T,GAAKA,EAAEvB,cAAe/Q,KAAKuF,aAAaqJ,qBAAqBnQ,OAAU8T,EAAG9Q,YACxG+Q,EAAYL,EAAUjS,OAAOuS,GAAML,EAAM1P,OAAOnB,QAAQkR,EAAG1B,eAAiB,GAClF/Q,KAAKkP,QAAQsD,EAAU1O,OAAOsO,EAAMM,MAAMjU,IAAIuC,GAAS,IAAI2Q,GAAM3R,KAAKuJ,KAAKwH,WAAW/P,OAE9F,CAEA,SAAAC,GACI,OAAOjB,KAAK6R,cAAcpT,IAAIwT,GAASA,EAAMvO,SACjD,CAEA,aAAAtC,CAAcD,GACV,OAAOnB,KAAKuF,aAAanE,cAAcD,EAC3C,CAEA,aAAA8O,GACI,MAAMf,EAAUlP,KAAKuF,aAAa0K,gBAMlC,OALAjQ,KAAKkP,UAAU9H,QAAQH,SACa,IAA5BiI,EAAQjI,EAAE8J,gBACV7B,EAAQjI,EAAE8J,cAAgB9J,EAAEP,aAAewI,EAAQjI,EAAE8J,iBAGtD7B,CACX,CAEQJ,iBACA6D,oBACR,IAAA1Q,GACI,MAAMiN,EAAUlP,KAAKiQ,gBACfd,EAAczO,EAAQ,CAAEF,KAAMR,KAAKQ,OAAQ0O,YAQjD,OAPIlP,KAAK8O,mBAAqBK,IAC1BnP,KAAK8O,iBAAmBK,EACxBnP,KAAK2S,oBAAsB3S,KAAKuF,aAAa0J,OAAOC,GAAS/K,KAAMyG,IAC/D5K,KAAK8J,MAAQ9J,KAAKH,SAAS+K,GACpB5K,KAAK8J,SAGb9J,KAAK2S,mBAChB,CAEA,MAAAxQ,GACI,OAAOnC,KAAK8J,KAChB,CAEA,WAAAzH,GACI,OAAOrC,KAAK8J,KAChB,GA9J6CrK,EAAAmS,GAAA,iBAA1C,IAAMgB,GAANhB,GCjVP,SAASiB,GAASvS,GAEd,MAAMwS,EAAQxS,EAAE0P,MAAM,wBACtB,GAAI8C,EAAM1T,OAAS,EAAG,MAAM,IAAI+K,MAAM,uBAAuB7J,KAC7D,MAAMyS,EAAWD,EAAM,GAAG9C,MAAM,KAChC,GAAI+C,EAAS3T,OAAS,EAAG,MAAM,IAAI+K,MAAM,uBAAuB7J,KAChE,MAAM0S,EAAaF,EAAM,GAAG9C,MAAM,KAClC,GAAIgD,EAAW5T,OAAS,EAAG,MAAM,IAAI+K,MAAM,uBAAuB7J,KAClE,MAAO,CACHyL,IAAK,GAAGgH,EAAS,MAAMA,EAAS,MAAsB,UAAhBA,EAAS,GAAiB,QAAU,SAC1EE,SAAUD,EAAW,GACrBE,QAASF,EAAW,GAE5B,CAEA,SAASG,GAAeC,GACpB,OAAOA,EAAahU,QAAU,GAAKgU,EAAa7R,QAAQ,cAAgB6R,EAAahU,OAAS,CAClG,CAEA,SAASiU,GAAgBpH,GACrB,OAAQA,EAAW7M,QAAU,GAAK6M,EAAW1K,QAAQ,cAAgB0K,EAAW7M,OAAS,GACpF,CAAC,YAAa,mBAAoB,gBAAgBmC,QAAQ0K,IAAe,CAElF,CD0dA2G,GAAc5P,UAAUC,QAAU,iBAOlCqL,GAAUtL,UAAU2C,QAAQ,UAAW,GAAI,SAAU,mBAarD4J,GAAYvM,UAAU2C,QAAQ,MAAO,GAAI,SAAU,YACnD4J,GAAYvM,UAAU2C,QAAQ,SAAU,GAAI,SAAU,aACtD4J,GAAYvM,UAAU2C,QAAQ,OAAQ,MAAO,MAAO,eAAgB,CAAC,MAAO,SAC5E4J,GAAYvM,UAAU2C,QAAQ,gBAAiB,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYuG,KASxG4B,GAAWlN,UAAU2C,QAAQ,UAAW,KAAM,SAAU,gBACxDuK,GAAWlN,UAAU2C,QAAQ,aAAc,GAAI,SAAU,eAEzDuK,GAAWlN,UAAU0M,aAAeQ,GAAWlN,UAAU2M,QACzDO,GAAWlN,UAAU2M,QAAU,SAA4BrP,GACvD,MAAMkD,EAAS0M,GAAWlN,UAAU0M,aAAa7J,MAAM7F,KAAMO,WAI7D,YAHU,IAAND,GACAN,KAAKyP,SAAS9O,cAEX6C,CACX,EAuBAmO,GAAM3O,UAAU2C,QAAQ,aAAc,KAAM,SAAU,SACtDgM,GAAM3O,UAAU2C,QAAQ,SAAU,KAAM,MAAO,WAAY,WAAyB,OAAO3F,KAAKwQ,kBAAoB,EAAG,CACnH1I,UAAU,EACVE,uBAASvI,EAACwI,GAAsBA,EAAEtB,eAAzB,WACT5F,wBAAUtB,EAACwI,GAAsBA,EAAEqL,mBAAqBrL,EAAEuI,mBAAmBjP,QAAQ0G,EAAEvE,WAAa,EAA1F,cAEdiO,GAAM3O,UAAU2C,QAAQ,cAAe,KAAM,MAAO,eAAgB,WAAyB,OAAO3F,KAAKkR,cAAgB,EAAG,CACxHpJ,UAAU,EACVE,yBAAUC,IAAuBA,EAAEuJ,iBAAmBvJ,EAAEtB,eAA/C,WACT5F,wBAAUtB,EAACwI,GAAsBA,EAAEsL,wBAA0BtL,EAAEiJ,eAAe3P,QAAQ0G,EAAEyI,gBAAkB,EAAhG,cAEdiB,GAAM3O,UAAU2C,QAAQ,QAAS,KAAM,SAAU,eAAgB,KAAM,CACnEmC,UAAU,EACVE,uBAASvI,EAACwI,GAAsBA,EAAEuJ,gBAAzB,WACTzQ,0BAAWkH,GAAsBA,EAAEuL,kBAAoBvL,EAAEtB,eAA/C,cAQdiM,GAAc5P,UAAU2C,QAAQ,UAAW,GAAI,gBAAiB,kBCxkBvDlG,EAAAoT,GAAA,YAeApT,EAAA0T,GAAA,kBAIA1T,EAAA4T,GAAA,mBAMF,MAAMI,GAAN,MAAMA,sBAAqBrO,GAM9B,WAAAF,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IALZmK,OACAC,eACAnF,gBAAyD,CAAA,EACzDoF,MAA2B,QAMnC,KAAAnO,GACI,MAAO,CACHzG,KAAMgB,KAAK4T,MACXvU,GAAIW,KAAKX,KACT0M,IAAK/L,KAAK+L,MACVkH,SAAUjT,KAAKiT,WACfC,QAASlT,KAAKkT,UACdvE,OAAQ3O,KAAK6O,gBACbhN,QAAS7B,KAAKkN,YAEtB,CAEA,OAAA9G,CAAQC,EAA8Ca,GAAS,GAC3DlH,KAAK4T,MAAQvN,EAAIrH,MAChBkI,EAASlH,KAAOA,KAAKX,GAAGgH,EAAIhH,KACxB0M,IAAI1F,EAAI0F,KACRkH,SAAS5M,EAAI4M,UACbC,QAAQ7M,EAAI6M,SAEb7M,EAAIsI,QAAUtI,EAAIsI,OAAOvP,QACzBY,KAAK6O,cAAcxI,EAAIsI,QAE3B,IAAA,MAAW7P,KAAOuH,EAAIxE,QAClB7B,KAAKuK,eAAezL,EAAKuH,EAAIxE,QAAQ/C,GAAKiI,QAE9C,OAAO/G,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB7F,EAA8Ca,GAAS,GACxF,OAAO,IAAIuM,cAAavH,GAAI9F,QAAQC,EAAKa,EAC7C,CAEA,IAAA1G,CAAKC,EAAe,IAChB,OAAOC,EAAQ,CACXqL,IAAK/L,KAAK+L,MACVkH,SAAUjT,KAAKiT,WACfY,QAAS7T,KAAKkT,UACdY,mBAAoB9T,KAAK8T,qBACzBC,oBAAqB/T,KAAK+T,yBACvBtT,GAEX,CAEA,KAAAO,GACI,OAAOhB,KAAKkT,SAChB,CAEQ9F,gBACApD,mBACR,WAAArJ,GAKI,GAJIX,KAAKoN,kBAAoBpN,KAAKQ,SAC9BR,KAAKoN,gBAAkBpN,KAAKQ,cACrBR,KAAKgK,qBAEXhK,KAAKgK,mBAAoB,CAC1B,MAAMgK,IAAYhU,KAAK2T,eACvB3T,KAAKgK,mBAAqB,IAAIpJ,QAAoB,CAACC,EAASoT,KACxD,MAAMC,EAAQC,EAAW9H,OAAO,CAAEC,QAAStM,KAAK+L,MAAOQ,SAAUvM,KAAKuJ,IAAIgD,YAAcvM,KAAKiT,WAAYjT,KAAKkT,aACzGc,GAAWhU,KAAK8T,sBAAwB9T,KAAK+T,wBAC9ClT,EAAQqT,EAAMhK,WAElBrJ,EAAQqT,KACT/P,KAAM+P,IACLlU,KAAK0T,OAASQ,EACTF,IAAWhU,KAAK8T,uBACjB9T,KAAK2T,eAAiBO,EAAMrF,gBAAgB3O,OAAOhB,GAAsB,UAAfc,KAAK4T,QAAsBT,GAAejU,EAAIG,MAEvG2U,IAAWhU,KAAK+T,uBACjBG,EAAMvG,cAAczN,OAAO+L,GAA6B,UAAfjM,KAAK4T,QAAsBP,GAAgBpH,IAAa7E,QAAQ6E,IACrGjM,KAAKwO,gBAAgBvC,GAAciI,EAAMnE,aAAa9D,MAItE,CACA,OAAOjM,KAAKgK,kBAChB,CAIA,aAAA6E,CAAcvO,GACV,OAAKC,UAAUnB,QACfY,KAAK2T,eAAiBrT,EACfN,MAFuBA,KAAK2T,gBAAkB,EAGzD,CAIA,cAAApJ,CAAe0B,EAAoB3L,GAC/B,OAAyB,IAArBC,UAAUnB,OAAqBY,KAAKwO,gBAAgBvC,IAAe,IACvEjM,KAAKwO,gBAAgBvC,GAAc3L,EAC5BN,KACX,CAEQ8O,iBACAC,aACAC,SAAW,IAAIjE,EACvB,MAAAkE,CAAOC,GACH,MAAMC,EAAczO,EAAQwO,GAK5B,OAJKlP,KAAK+O,cAAgB/O,KAAK8O,mBAAqBK,IAChDnP,KAAK8O,iBAAmBK,EACxBnP,KAAK+O,aAAe/O,KAAKgP,SAASlN,KAAK9B,KAAK0T,OAAOzE,OAAOC,KAEvDlP,KAAK+O,YAChB,CAEA,WAAApB,GACI,MAAMnK,EAAmB,GACzB,IAAA,MAAW1E,KAAOkB,KAAKwO,gBACnBhL,EAAO1B,KAAKhD,GAEhB,OAAO0E,CACX,CAEA,SAAA0J,GACI,MAAM1J,EAA0B,CAAA,EAMhC,OALAxD,KAAK2N,cAAcvG,QAAQ6E,IACvBzI,EAAOyI,GAAc,CACjBlF,OAAQ/G,KAAKwO,gBAAgBvC,MAG9BzI,CACX,GAnIyC/D,EAAAgU,GAAA,gBAAtC,IAAMW,GAANX,GAqIPW,GAAapR,UAAUC,QAAU,gBAejCmR,GAAapR,UAAU2C,QAAQ,MAAO,GAAI,SAAU,iCACpDyO,GAAapR,UAAU2C,QAAQ,WAAY,GAAI,SAAU,aACzDyO,GAAapR,UAAU2C,QAAQ,UAAW,GAAI,SAAU,YACxDyO,GAAapR,UAAU2C,QAAQ,sBAAsB,EAAO,UAAW,+BACvEyO,GAAapR,UAAU2C,QAAQ,uBAAuB,EAAO,UAAW,gCAEjE,MAAM0O,GAAN,MAAMA,qBAAoBjP,GAM7B,WAAAF,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KAAKyP,SAAW,IAAI2E,GAAapU,KAAKuJ,IAC1C,CAHoBA,IAJpBmG,aASA,KAAAjK,GACI,OAAOzF,KAAK2P,UAAUlK,OAC1B,CAEA,OAAAW,CAAQC,GAEJ,OADArG,KAAK2P,UAAUvJ,QAAQC,GAChBrG,IACX,CAEA,cAAOoG,CAAQ8F,EAAsB0D,EAAkB3D,GACnD,OAAO,IAAIoI,aAAYnI,GAClB7M,GAAG,GAAGuQ,EAAGvQ,QAAQ4M,KACjB0D,QAAQC,GACR3D,WAAWA,EAEpB,CAEA,SAAA4D,GACI,MAAO,GAAG7P,KAAK2P,UAAU5D,SAAS/L,KAAK2P,UAAUsD,cAAcjT,KAAK2P,UAAUuD,WAClF,CAEA,UAAA1G,GACI,OAAOxM,KAAK2P,UAAUnP,MAC1B,CAEA,aAAAqO,GACI,OAAO7O,KAAK2P,UAAUd,eAC1B,CAIA,cAAAtE,CAAejK,GACX,OAAKC,UAAUnB,QACfY,KAAK2P,UAAUpF,eAAevK,KAAKiM,aAAc3L,GAC1CN,MAFuBA,KAAK2P,UAAUpF,eAAevK,KAAKiM,aAGrE,CAEA,IAAAzL,CAAKC,EAAe,IAChB,OAAOC,EAAQ,CACXgD,OAAQ1D,KAAKwM,aACbP,WAAYjM,KAAKiM,gBACdxL,GAEX,CAEA,KAAAO,GACI,MAAO,GAAGhB,KAAK2P,UAAU3O,YAAYhB,KAAKiM,cAC9C,CAEA,aAAA7K,CAAcD,GACV,MAAO,IAAMnB,KAAK2P,UAAUpF,eAAevK,KAAKiM,aACpD,CAEA,WAAAtL,GACI,OAAOX,KAAK2P,UAAUhP,aAC1B,CAEA,MAAAsO,CAAOC,GACH,OAAOlP,KAAK2P,UAAUV,OAAOC,EACjC,GAtEwCzP,EAAA4U,GAAA,eAArC,IAAMC,GAAND,GAwEPC,GAAYtR,UAAUC,QAAU,eAShCqR,GAAYtR,UAAU2C,QAAQ,UAAW,KAAM,SAAU,iBACzD2O,GAAYtR,UAAU2C,QAAQ,aAAc,GAAI,MAAO,cAAe,WAClE,YAAyB,IAAlB3F,KAAKyP,SAAyBzP,KAAKyP,SAAS9B,cAAgB,EACvE,GAEA2G,GAAYtR,UAAU0M,aAAe4E,GAAYtR,UAAU2M,QAC3D2E,GAAYtR,UAAU2M,QAAU,SAA6BrP,GACzD,MAAMkD,EAAS8Q,GAAYtR,UAAU0M,aAAa7J,MAAM7F,KAAMO,WAI9D,YAHU,IAAND,GACAN,KAAKyP,SAAS9O,cAEX6C,CACX,EAEO,MAAM+Q,GAAN,MAAMA,wBAAuB7O,GAsChC,WAAAR,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IApCpB,SAAAsG,GACI,OAAO7P,KAAKuF,aAAasK,WAC7B,CAEQ/F,MAA+B,GAIvC,UAAAvE,CAAWjF,GACP,OAAO6C,MAAMoC,WAAWM,MAAM7F,KAAMO,UACxC,CAEA,GAAAwL,GACI,OAAO/L,KAAKuF,aAAaoK,UAAU5D,KACvC,CAEA,QAAAkH,GACI,OAAOjT,KAAKuF,aAAaoK,UAAUsD,UACvC,CAEA,OAAAC,GACI,OAAOlT,KAAKuF,aAAaoK,UAAUuD,SACvC,CAEA,UAAAjH,GACI,OAAOjM,KAAKuF,aAAa0G,YAC7B,CAEA,QAAAlL,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAWtD,KAAUF,KAAK6R,cACtBrO,EAASA,EAAOM,OAAO5D,EAAOa,SAAS,YAE3C,OAAOyC,CACX,CAMA,KAAAiC,GACI,MAAO,CACHpG,GAAIW,KAAKuF,aAAaoK,UAAUtQ,KAChC8N,OAAQnN,KAAKiM,aACbiD,QAASlP,KAAK6R,cAAcpT,IAAKqT,IACtB,CACHpO,OAAQoO,EAAGpO,SACXmN,cAAeiB,EAAGpB,cAClBI,aAAcgB,EAAGf,aACjBnK,MAAOkL,EAAGlL,WAI1B,CAEA,UAAA4F,GACI,OAAOxM,KAAKuF,aAAa/E,MAC7B,CAIA,gBAAAuR,CAAiBzR,GACb,OAAKC,UAAUnB,QACfY,KAAKkP,QAAQ5O,EAAE7B,IAAIuT,GAAML,GAAMvL,QAAQpG,KAAKuJ,IAAKyI,KAC1ChS,MAFuBA,KAAK6R,cAAcpT,IAAIwT,GAASA,EAAMxM,QAGxE,CAEA,aAAAoJ,GACI,OAAO7O,KAAKuF,aAAasJ,eAC7B,CAEA,cAAAtE,GACI,OAAOvK,KAAKuF,aAAagF,gBAC7B,CAEA,IAAA/J,GACI,OAAOR,KAAKuF,aAAa/E,KAAK,CAC1ByL,WAAYjM,KAAKiM,aACjBuI,OAAQxU,KAAKkP,UAAUzQ,IAAIwT,GAASA,EAAMzR,QAC1C0O,QAASlP,KAAKiQ,iBAEtB,CAEA,KAAAjP,GACI,MAAO,GAAGhB,KAAKuF,aAAavE,YAAYhB,KAAKuF,aAAa0G,cAC9D,CAEA,UAAAgF,GACI,OAAOjR,KAAKuJ,IAAI0H,YACpB,CAEA,OAAAG,CAAQ1N,GACJ,OAAO1D,KAAKuJ,IAAI6H,QAAQ1N,EAC5B,CAEA,gBAAA1B,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GACvB,MAAM8S,EAA0B,GAChC,IAAA,MAAWxC,KAASjS,KAAK6R,cAAe,CACpC4C,EAAc3S,KAAKmQ,EAAMlB,cACzB,MAAMmB,EAAeD,EAAMd,YAAYE,gBAClC1P,EAAKgN,OAAO3O,KAAKX,QAClBsC,EAAKgN,OAAO3O,KAAKX,MAAQ,IAE7BsC,EAAKgN,OAAO3O,KAAKX,MAAMyC,KAAKmQ,EAAMlB,cAClCmB,EAAaxQ,cAAcC,EAAM,CAACsQ,EAAMvB,eAC5C,CACAvN,MAAMzB,cAAcC,EAAM8S,EAC9B,CAEA,WAAA5C,GACI,OAAO7R,KAAKkP,UAAUhP,OAAO+R,GAASA,EAAMnR,SAChD,CAEA,WAAAH,GACI,OAAOX,KAAKuF,aAAa5E,cAAcwD,KAAK,KACxC,MAAMgO,EAAYnS,KAAKkP,UACjBkD,EAAQC,EAAQF,EAAU1T,IAAI6T,GAAKA,EAAEvB,cAAe/Q,KAAKuF,aAAasJ,gBAAgBpQ,IAAI8T,GAAMA,EAAGlT,KACnGmT,EAAYL,EAAUjS,OAAOuS,GAAML,EAAM1P,OAAOnB,QAAQkR,EAAG1B,eAAiB,GAClF/Q,KAAKkP,QAAQsD,EAAU1O,OAAOsO,EAAMM,MAAMjU,IAAIuC,GAAS,IAAI2Q,GAAM3R,KAAKuJ,KAAKwH,WAAW/P,OAE9F,CAEA,SAAAC,GACI,OAAOjB,KAAK6R,cAAcpT,IAAIwT,GAASA,EAAMvO,SACjD,CAEA,aAAAtC,CAAcD,GACV,MAAO,IAAMnB,KAAKuF,aAAagF,gBACnC,CAEA,aAAA0F,GACI,MAAMf,EAAkC,CAAA,EACxC,IAAIwF,GAAa,EACjB,MAAM3N,EAAS/G,KAAKuF,aAAasJ,gBACjC,IAAA,MAAWoD,KAASjS,KAAK6R,cAAe,CACpC,MAAM8C,EAAS1C,EAAMvL,YAErB,IAAIE,EAEAA,EADe,QAFLG,EAAO7G,OAAOhB,GAAOA,EAAIG,KAAO4S,EAAMlB,cAAc,GAExD/R,KACE,CACJ4V,KAAMD,GAGFA,EAAO,QAEL,IAAV/N,IACAsI,EAAQ+C,EAAMlB,cAAgBnK,GAElC8N,GAAa,CACjB,CAIA,OAHKA,IACDxF,EAAQhF,SAAU,GAEfgF,CACX,CAEQJ,iBACA6D,oBACR,IAAA1Q,GACI,OAAOkB,MAAMlB,OAAOkC,KAAK,KACrB,MAAM+K,EAAUlP,KAAKiQ,gBACfd,EAAczO,EAAQ,CAAEF,KAAMR,KAAKQ,OAAQ0O,YAcjD,OAbIlP,KAAK8O,mBAAqBK,IAC1BnP,KAAK8O,iBAAmBK,EACxBnP,KAAK2S,oBAAsB3S,KAAKuF,aAAa0J,OAAOC,GAAS/K,KAAMyG,IAC/D,MAAMqB,EAAajM,KAAKuF,aAAa0G,aACrC,IAAI7B,EAASQ,EAASqB,GAMtB,OALK7B,IAGDA,EAASQ,EAASqB,EAAW4I,cAAcC,QAAQ,KAAM,OAEtD9U,KAAKH,SAASuK,MAGtBpK,KAAK2S,sBACbxO,KAAKrE,IACJE,KAAK8J,MAAQhK,GAErB,CAEA,MAAAqC,GACI,OAAOnC,KAAK8J,KAChB,CAEA,WAAAzH,GACI,OAAOrC,KAAK8J,KAChB,GA9L8CrK,EAAA8U,GAAA,kBAA3C,IAAMQ,GAANR,GAgMPQ,GAAe/R,UAAUC,QAAU,kBAOnC8R,GAAe/R,UAAU2C,QAAQ,UAAW,GAAI,gBAAiB,kBAE1D,MAAMqP,GAAN,MAAMA,wBAAuBD,GAEhC,OAAAE,CAAQ3U,GACJ,MAAM4U,EAAOrC,GAASvS,GAItB,OAHAN,KAAKuF,aAAaoK,UAAU5D,IAAImJ,EAAKnJ,KACrC/L,KAAKuF,aAAaoK,UAAUsD,SAASiC,EAAKjC,UAC1CjT,KAAKuF,aAAaoK,UAAUuD,QAAQgC,EAAKhC,SAClClT,IACX,CAEA,aAAAiQ,GACI,MAAMkF,EAAWhS,MAAM8M,gBACjBf,EAAkC,CAAA,EACxC,IAAA,MAAWpQ,KAAOqW,EACdjG,EAAQpQ,GAAOqW,EAASrW,GACxBoQ,EAAQ,GAAGpQ,cAAiB,EAEhC,OAAOoQ,CACX,GAlB+CzP,EAAAuV,GAAA,kBAA5C,IAAMI,GAANJ,GAoBPI,GAAepS,UAAUC,QAAU,kBC5enC,IAAIoS,GAAa,EACV,MAAMC,GAAN,MAAMA,kBAAiBvQ,GA+C1B,WAAAG,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KAAKmF,IAAM,SAAQkQ,GACnB,MAAME,EAAKvV,KAAKuJ,IAAIiM,cAAc,GAClCxV,KAAKgF,aAAauQ,EAAGlW,KACzB,CALoBkK,IA9CZkM,gBAAkBvM,GAE1BwM,kBACAC,mBAKA,UAAApQ,GACI,OAAOvF,KAAK4V,gBAAgBrQ,YAChC,CAEA,UAAAsQ,CAAWxW,GACP,MAAMkW,EAAwBvV,KAAKuJ,IAAIhE,WAAWlG,GAC9CkW,aAAczM,IAEPyM,aAAcjO,IAEdiO,aAAcnH,IAEdmH,aAAcnB,GALrBpU,KAAKyE,WAAU,IAAIiB,IAAgBH,WAAWgQ,IAOvCA,aAAc9I,GACrBzM,KAAKyE,WAAU,IAAIoJ,IAActI,WAAWgQ,IACrCA,aAAcjB,GACrBtU,KAAKyE,UAAU,IAAI2Q,GAAepV,KAAKuJ,KAAKhE,WAAWgQ,IAChDA,aAAcrF,IACrBlQ,KAAKyE,UAAU,IAAImO,GAAc5S,KAAKuJ,KAAKhE,WAAWgQ,GAE9D,CAIA,SAAA9Q,CAAUnE,GACN,MAAMkD,EAASL,MAAMsB,UAAUoB,MAAM7F,KAAMO,WAC3C,OAAKA,UAAUnB,QACXY,KAAK8V,gBAAkBxV,EAAEiF,aAAalG,OACtCW,KAAK8V,cAAgBxV,EAAEiF,aAAalG,MAEjCW,MAJuBwD,GAAUxD,KAAKyV,eAKjD,CAEA,QAAA1U,GACI,OAAOf,KAAKyE,YAAY1D,UAC5B,CASA,KAAA0E,GACI,MAAO,IACAzF,KAAK4V,gBAAgBnQ,QACxBpG,GAAIW,KAAKgF,eAEjB,CAGA,IAAAxE,CAAKC,EAA+B,IAChC,OAAO0C,MAAM3C,KAAK,IACXC,GAEX,CAEA,aAAAsV,GACI,OAAO/V,KAAKuJ,IAAIiM,cAAc/W,IAAI8W,IACvB,CACH3O,MAAO2O,EAAGlW,KACV2W,KAAM,GAAGT,EAAGvU,WAAWuU,EAAGlW,OAASkW,EAAGvU,QAAU,KAAKuU,EAAGlW,QAAU,OAG9E,GA3E4CI,EAAA6V,GAAA,YAAzC,IAAMW,GAANX,GCNP,SAASY,GAAaC,EAAuCC,EAAYC,GACrE,MAAMC,EAA0B,iBAARD,EACxB,OAAQF,GACJ,IAAK,KACD,OAAQI,GAAaD,GAAoC,iBAAjBC,EAASH,GAAmBG,EAASH,GAAII,SAAWH,EAAME,EAASH,KAAQC,EACvH,IAAK,KACD,OAAQE,GAAaD,GAAoC,iBAAjBC,EAASH,GAAmBG,EAASH,GAAII,SAAWH,EAAME,EAASH,KAAQC,EACvH,IAAK,IACD,OAAQE,GAAaA,EAASH,GAAMC,EACxC,IAAK,KACD,OAAQE,GAAaA,EAASH,IAAOC,EACzC,IAAK,IACD,OAAQE,GAAaA,EAASH,GAAMC,EACxC,IAAK,KACD,OAAQE,GAAaA,EAASH,IAAOC,EACzC,QACI,MAAM,IAAIlM,MAAM,8BAA8BgM,KAE1D,CDiEAF,GAASjT,UAAUC,QAAU,YAS7BgT,GAASjT,UAAU2C,QAAQ,eAAgB,GAAI,MAAO,WAAY,WAA4B,OAAO3F,KAAK+V,eAAiB,EAAG,CAAEjO,UAAU,IAC1ImO,GAASjT,UAAU2C,QAAQ,gBAAiB,GAAI,SAAU,YAE1DsQ,GAASjT,UAAU0S,kBAAoBO,GAASjT,UAAUgC,aAC1DiR,GAASjT,UAAUgC,aAAe,SAA0B1E,GACxD,MAAMwN,EAAO9N,KAAK8V,cACZtS,EAASyS,GAASjT,UAAU0S,kBAAkB7P,MAAM7F,KAAMO,WAIhE,YAHU,IAAND,GAAmBwN,IAASxN,GAC5BN,KAAK6V,WAAWvV,GAEbkD,CACX,EAEAyS,GAASjT,UAAU2S,mBAAqBM,GAASjT,UAAU4S,cAC3DK,GAASjT,UAAU4S,cAAgB,SAA0BtV,GACzD,OAAOyE,GAAkB/B,UAAUyB,UAAUoB,MAAM7F,KAAMO,UAC7D,EC5GSd,EAAAyW,GAAA,gBAoBF,MAAMO,GAAN,MAAMA,uBAAsB9W,EACvBoG,OAER,QAAAhF,CAASqP,GACL,MAAM5M,EAA2B,GAejC,OAdKxD,KAAKyQ,qBACNjN,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,gBACXE,IAAK,0BAA0BtQ,KAAK0Q,iBACpCH,KAAM,cAAc5R,KAAKN,UAAU2B,KAAK2Q,uBAG3C3Q,KAAK0W,oBACNlT,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,eACXE,IAAK,yBAAyBtQ,KAAK+Q,gBACnCR,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKqB,mBAGzCmC,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,OAAOvG,KAAK0R,qBAAuB1R,KAAKyR,oBAC5C,CAEA,KAAAhM,GACI,MAAO,CACHoL,cAAe7Q,KAAK0Q,cACpBI,aAAc9Q,KAAK+Q,aACnBoF,UAAWnW,KAAKmW,YAChBQ,SAAU3W,KAAK2W,WAEvB,CAEA,OAAAvQ,CAAQC,GACJ,OAAOrG,KACF0Q,YAAYrK,EAAIwK,eAChBE,WAAW1K,EAAIyK,cACfqF,UAAU9P,EAAI8P,WACdQ,SAAStQ,EAAIsQ,SAEtB,CAEA,cAAOvQ,CAAQC,GACX,OAAO,IAAIoQ,gBAAgBrQ,QAAQC,EACvC,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXgQ,YAAa1Q,KAAK0Q,cAClBK,WAAY/Q,KAAK+Q,aACjBoF,UAAWnW,KAAKmW,YAChBQ,SAAU3W,KAAK2W,YAEvB,CAEA,WAAAtV,GACI,OAAOrB,KAAK+F,OAAO5E,WAAW1C,IAAI0B,GAASA,EAAMd,GACrD,CAEA,eAAAsR,GACI,OAAO3Q,KAAK+F,OAAO4K,kBAAkBlS,IAAI0B,GAASA,EAAMd,GAC5D,CAEA,YAAAuX,CAAaC,GACT,MAAMhP,EAAK7H,KAAK0Q,cAChB,OAAOmG,EAAgBpY,IAAIqY,IACvB,MAAMtT,EAASsT,EAAIjP,GACnB,MAAsB,iBAAXrE,EACAA,EAAOgT,OAEXhT,GAEf,CAEA,uBAAAuT,CAAwBF,GACpB,OAAQ7W,KAAKmW,aACT,IAAK,KACL,IAAK,QACD,MAAO,GAAGnW,KAAK+Q,gBAAgB/Q,KAAKmW,gBAAgBnW,KAAK4W,aAAaC,GAAiBnY,KAAK,SAChG,QACI,MAAO,GAAGsB,KAAK+Q,gBAAgB/Q,KAAKmW,eAAenW,KAAK4W,aAAaC,GAAiB,KAElG,CAEA,YAAAX,CAAaW,GACT,MAAMT,EAAKpW,KAAK+Q,aACViG,EAAQhX,KAAK4W,aAAaC,GAChC,OAAQ7W,KAAKmW,aACT,IAAK,QACD,OAAInW,KAAK2W,aAAeK,EAAM5X,OAAS,GAAK4X,EAAM,KAAOA,EAAM,IACnDT,IAAa,EAEjBA,GAAaA,EAASH,IAAOY,EAAM,IAAMT,EAASH,IAAOY,EAAM,GAC3E,IAAK,KACD,OAAIhX,KAAK2W,YAA+B,IAAjBK,EAAM5X,OACjBmX,IAAa,EAEjBA,GAAaS,EAAMC,KAAKC,GAA8B,iBAAjBX,EAASH,GAAmBG,EAASH,GAAII,SAAWU,EAAKX,EAASH,KAAQc,GAC3H,QACI,MAAMC,EAAMH,EAAM,GAClB,OAAIhX,KAAK2W,YAAeQ,SAA6C,KAARA,EAGtDjB,GAAalW,KAAKmW,YAAaC,EAAIe,GAF9BZ,IAAa,EAIrC,GAvH2C9W,EAAAgX,GAAA,iBAAxC,IAAMW,GAANX,GAyHPW,GAAcpU,UAAUC,QAAU,iBAiB3B,MAAMoU,GAAN,MAAMA,sBAAqB1X,EACtBoG,OAER,QAAAhF,CAASqP,GACL,IAAI5M,EAA2B,GAC1BxD,KAAKqQ,gBACN7M,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,YAAiBpQ,KAAK0D,WACjC4M,IAAK,qBAAqBtQ,KAAK0D,YAC/B6M,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKwQ,wBAG5CxQ,KAAKwR,iBAAmD,IAAhCxR,KAAKsX,gBAAgBlY,QAC7CoE,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,YAAiBpQ,KAAK0D,WACjC4M,IAAK,uBAAuBtQ,KAAK0D,YACjC6M,KAAM,kCAGd,IAAA,MAAWgH,KAAWvX,KAAKsX,gBACvB9T,EAASA,EAAOM,OAAOyT,EAAQxW,SAAS,GAAGqP,KAAUpQ,KAAK0D,sBAE9D,OAAOF,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAK0D,UAAY1D,KAAKsX,gBAAgBlY,OAAS,CAC5D,CAEA,KAAAqG,GACI,MAAO,CACH+R,OAAQxX,KAAK0D,SACb+T,SAAUzX,KAAK0X,cAEvB,CAEA,OAAAtR,CAAQC,GACJ,OAAOrG,KACF0D,OAAO2C,EAAImR,QACXE,YAAYrR,EAAIoR,SAEzB,CAEA,cAAOrR,CAAQC,GACX,OAAO,IAAIgR,eAAejR,QAAQC,EACtC,CAIA,WAAAqR,CAAYpX,GACR,OAAKC,UAAUnB,QACfY,KAAKyX,SAASnX,EAAE7B,IAAI8Y,GAAWH,GAAchR,QAAQmR,KAC9CvX,MAFuBA,KAAKsX,gBAAgB7Y,IAAI8Y,GAAWA,EAAQ9R,QAG9E,CAEA,gBAAA+K,GACI,OAAOxQ,KAAK+F,OAAOyK,kBACvB,CAEA,IAAAhQ,GACI,OAAOE,EAAQ,CACXgD,OAAQ1D,KAAK0D,SACb+T,SAAUzX,KAAKsX,gBAAgB7Y,IAAI8Y,GAAWA,EAAQ/W,QACtDiE,UAAWzE,KAAKuR,mBAExB,CAEA,aAAA+F,GACI,OAAOtX,KAAKyX,WAAWvX,OAAOqX,GAAWA,EAAQhR,QACrD,CAEA,cAAAoR,CAAeF,GACX,IAAA,MAAWF,KAAWE,EAClBzX,KAAKyX,WAAW3V,MAAK,IAAIsV,IACpB9Q,MAAMtG,MACN0Q,YAAY6G,EAAQ7G,aACpBK,WAAWwG,EAAQxG,YACnBoF,UAAUoB,EAAQpB,YAG3B,OAAOnW,IACX,CAEA,QAAAmB,GACI,OAAOnB,KAAK+F,OAAO5E,UACvB,CAEA,SAAAgQ,GACI,OAAOnR,KAAK+F,OAAO6R,cAAc5X,KAAK0D,SAC1C,CAEA,eAAAiN,GACI,OAAO3Q,KAAKmR,YAAYE,gBAAgBC,iBAC5C,CAEA,eAAAC,GACI,OAAOvR,KAAKmR,YAAY1M,WAC5B,CAEA,YAAAyR,GACI,MAAMzR,EAAYzE,KAAKuR,kBACjBsG,EAAiB7X,KAAKsX,gBAAgB7Y,IAAI8Y,GAAWA,EAAQrB,aAAazR,IAChF,OAAQvF,GAAyB2Y,EAAeC,MAAMC,GAAiBA,EAAc7Y,GACzF,CAEA,uBAAA6X,GACI,MAAMtS,EAAYzE,KAAKuR,kBAEvB,OAD2BvR,KAAKsX,gBAAgB7Y,IAAI8Y,GAAWA,EAAQR,wBAAwBtS,IACrE/F,KAAK,KACnC,GAzH0Ce,EAAA4X,GAAA,gBAAvC,IAAMW,GAANX,GA2HPW,GAAahV,UAAUC,QAAU,UAW1B,MAAMgV,GAAN,MAAMA,sBAAqBtY,EACtBoG,OAER,QAAAhF,CAASqP,GACL,MAAM5M,EAA2B,GAQjC,OAPKxD,KAAK0W,oBACNlT,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,eACXE,IAAK,yBAAyBtQ,KAAK+Q,gBACnCR,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKqB,mBAGzCmC,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAIA,WAAAmS,CAAY5X,GACR,OAAyB,IAArBC,UAAUnB,OAED,WADDY,KAAKmY,aAEGnY,KAAK4G,QAGN,GAAK5G,KAAK4G,SAG7B5G,KAAK4G,MAAMtG,GACM,iBAANA,EACPN,KAAKmY,UAAU,UAEfnY,KAAKmY,UAAU,UAEZnY,KACX,CAEA,KAAAuG,GACI,OAAOvG,KAAK0R,qBAAuB1R,KAAK2G,cAC5C,CAEA,KAAAlB,GACI,MAAO,CACHqL,aAAc9Q,KAAK+Q,aACnBoF,UAAWnW,KAAKmW,YAChBvP,MAAO5G,KAAKkY,cAEpB,CAEA,OAAA9R,CAAQC,GACJ,OAAOrG,KACF+Q,WAAW1K,EAAIyK,cACfqF,UAAU9P,EAAI8P,WACd+B,YAAY7R,EAAIO,MAEzB,CAEA,cAAOR,CAAQC,GACX,OAAO,IAAI4R,eAAe7R,QAAQC,EACtC,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXqQ,WAAY/Q,KAAK+Q,aACjBoF,UAAWnW,KAAKmW,YAChBvP,MAAO5G,KAAK4G,QACZuR,UAAWnY,KAAKmY,aAExB,CAEA,WAAA9W,GACI,OAAOrB,KAAK+F,OAAO5E,WAAW1C,IAAI0B,GAASA,EAAMd,GACrD,CAEA,uBAAA0X,GACI,MAAO,GAAG/W,KAAK+Q,gBAAgB/Q,KAAKmW,eAAenW,KAAKkY,eAC5D,CAEA,YAAAhC,GACI,OAAOA,GAAalW,KAAKmW,YAAanW,KAAK+Q,aAAc/Q,KAAKkY,cAClE,GA3F0CzY,EAAAwY,GAAA,gBAAvC,IAAMG,GAANH,GA6FPG,GAAapV,UAAUC,QAAU,gBAmB1B,MAAMoV,GAAN,MAAMA,iBAAgB1V,GAYzB,WAAAuC,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAEpB,CAFoBA,IARpB,QAAAxI,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAWtD,KAAUF,KAAKsY,eACtB9U,EAASA,EAAOM,OAAO5D,EAAOa,SAAS,WAE3C,OAAOyC,CACX,CAMA,KAAAiC,GACI,MAAO,CACHzG,KAAM,SACNuZ,WAAYvY,KAAKuY,aAEzB,CAEA,OAAAnS,CAAQC,GACJ,OAAOrG,KACFuY,WAAWlS,EAAIkS,WAExB,CAEA,cAAOnS,CAAQ8F,EAAsB7F,GACjC,OAAO,IAAIgS,SAAQnM,GAAI9F,QAAQC,EACnC,CAIA,UAAAkS,CAAWjY,GACP,IAAKC,UAAUnB,OAAQ,OAAOY,KAAKsY,eAAe7Z,IAAIyB,GAAUA,EAAOuF,SACvE,MAAM+S,EAAgC,GAChCC,EAAgC,GAUtC,OATAnY,EAAE8G,QAAQ4K,IACF0G,EAAKC,mBAAmB3G,GACxBwG,EAAc1W,KAAKkW,GAAa5R,QAAQ4L,IAExCyG,EAAc3W,KAAKsW,GAAahS,QAAQ4L,MAGhDhS,KAAK4Y,aAAaJ,GAClBxY,KAAK6Y,aAAaJ,GACXzY,IACX,CAEA,gBAAAwQ,GACI,OAAOxQ,KAAKuJ,IAAI0H,YACpB,CAEA,aAAA2G,CAAckB,GACV,OAAO9Y,KAAKuJ,IAAI6H,QAAQ0H,EAC5B,CAGA,IAAAtY,GACI,OAAOE,EAAQV,KAAKsY,eAAe7Z,IAAIwI,IAC5B,CACH/G,OAAQ+G,EAAEzG,UAGtB,CAEA,MAAAM,GACI,OAAOd,KAAKsY,eAAelZ,OAAS,CACxC,CAEA,SAAA6B,GACI,OAAOjB,KAAK+Y,qBAAqBta,IAAIyB,GAAUA,EAAOwD,SAC1D,CAEA,gBAAA1B,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GACvB,MAAM8S,EAA0B,GAChC,IAAA,MAAWvU,KAAUF,KAAK+Y,qBAAsB,CAC5C,MAAM7G,EAAehS,EAAOiR,YAAYE,gBAClC2H,EAA2B,GACjC,IAAA,MAAWzB,KAAWrX,EAAOoX,gBACzB7C,EAAc3S,KAAKyV,EAAQxG,cAC3BiI,EAAelX,KAAKyV,EAAQ7G,eAEhCwB,EAAaxQ,cAAcC,EAAMqX,EACrC,CACA7V,MAAMpB,gBAAgBJ,EAAM8S,EAChC,CAEA,IAAAxS,GACI,OAAOkB,MAAMlB,MACjB,CAEA,WAAAI,GACI,MAAMvC,EAAOqD,MAAMd,cACnB,GAAoB,IAAhBvC,EAAKV,SAAiBY,KAAKc,SAAU,OAAOhB,EAChD,MAAMmZ,EAAUjZ,KAAKsY,eAAe7Z,IAAIyB,GAAUA,EAAOgW,gBACzD,OAAOpW,EAAKI,OAAOhB,GACR+Z,EAAQnB,MAAM5X,GAAUA,EAAOhB,IAE9C,CAGA,kBAAA6Z,GACI,OAAO/Y,KAAK4Y,eAAe1Y,OAAOA,GAAUA,EAAOqG,QACvD,CAEA,kBAAA2S,GACI,OAAOlZ,KAAK6Y,eAAe3Y,OAAOA,GAAUA,EAAOqG,QACvD,CAEA,YAAA+R,GACI,MAAO,IAAItY,KAAK+Y,wBAAyB/Y,KAAKkZ,qBAClD,GAnHkCzZ,EAAA4Y,GAAA,WAClCc,EADSd,GACF,SAASL,IAChBmB,EAFSd,GAEF,UAAUjB,IAFd,IAAMgC,GAANf,GAqHPe,GAAQpW,UAAUC,QAAU,WAS5BmU,GAAcpU,UAAU2C,QAAQ,cAAe,KAAM,MAAO,gBAAiB,WAAiC,OAAO3F,KAAK2Q,iBAAmB,EAAG,CAC5I7I,UAAU,EACVE,yBAAUC,IAA+BA,EAAU,OAAEvE,SAA5C,WACT3C,wBAAUtB,EAACwI,GAA8BA,EAAE0I,kBAAkBpP,QAAQ0G,EAAEyI,gBAAkB,EAA/E,cAEd0G,GAAcpU,UAAU2C,QAAQ,aAAc,KAAM,MAAO,eAAgB,WAAiC,OAAO3F,KAAKqB,aAAe,EAAG,CACtIyG,UAAU,EACVE,yBAAUC,IAA+BA,EAAU,OAAEvE,SAA5C,WACT3C,wBAAUtB,EAACwI,GAA8BA,EAAE5G,cAAcE,QAAQ0G,EAAE8I,eAAiB,EAA1E,cAEdqG,GAAcpU,UAAU2C,QAAQ,YAAa,KAAM,MAAO,gBAAiB,CAAC,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,QAAS,OACvHyR,GAAcpU,UAAU2C,QAAQ,YAAY,EAAO,UAAW,uBAE9DqS,GAAahV,UAAU2C,QAAQ,SAAU,KAAM,MAAO,WAAY,WAAgC,OAAO3F,KAAKwQ,kBAAoB,EAAG,CACjI1I,UAAU,EACV/G,wBAAUtB,EAACwI,GAA6BA,EAAEuI,mBAAmBjP,QAAQ0G,EAAEvE,WAAa,EAA1E,cAEdsU,GAAahV,UAAU2C,QAAQ,WAAY,GAAI,gBAAiB,WAAY,KAAM,CAAEoC,WAAYqP,KAEhGgB,GAAapV,UAAU2C,QAAQ,aAAc,KAAM,MAAO,eAAgB,WAAiC,OAAO3F,KAAKqB,aAAe,EAAG,CACrIyG,UAAU,EACV/G,wBAAUtB,EAACwI,GAA6BA,EAAE5G,cAAcE,QAAQ0G,EAAE8I,eAAiB,EAAzE,cAEdqH,GAAapV,UAAU2C,QAAQ,YAAa,KAAM,MAAO,gBAAiB,CAAC,KAAM,KAAM,IAAK,KAAM,IAAK,OACvGyS,GAAapV,UAAU2C,QAAQ,QAAS,GAAI,MAAO,gBACnDyS,GAAapV,UAAU2C,QAAQ,YAAa,SAAU,MAAO,oBAAqB,CAAC,SAAU,WAE7FyT,GAAQpW,UAAU2C,QAAQ,eAAgB,GAAI,gBAAiB,gBAAiB,KAAM,CAAEoC,WAAYiQ,KACpGoB,GAAQpW,UAAU2C,QAAQ,eAAgB,GAAI,gBAAiB,gBAAiB,KAAM,CAAEoC,WAAYqQ,KC7iB7F,MAAMiB,GAAN,MAAMA,uBAAsB1Z,EACvBoG,OAER,QAAAhF,CAASqP,GACL,MAAM5M,EAA2B,GAQjC,OAPKxD,KAAKsZ,eACN9V,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,UACXE,IAAK,oBAAoBtQ,KAAKgB,WAC9BuP,KAAM,YAAY5R,KAAKN,UAAU2B,KAAKuZ,eAGvC/V,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKgB,OAClB,CAEA,KAAAyE,GACI,OAAOzF,KAAKgB,OAChB,CAEA,OAAAoF,CAAQpF,GACJ,OAAOhB,KACFgB,MAAMA,EAEf,CAEA,cAAOoF,CAAQpF,GACX,OAAO,IAAIqY,gBAAgBjT,QAAQpF,EACvC,CAEA,IAAAR,GACI,OAAOE,EAAQV,KAAKgB,QACxB,CAEA,OAAAuY,GACI,OAAOvZ,KAAK+F,OAAOzE,YACvB,GAnD2C7B,EAAA4Z,GAAA,iBAAxC,IAAMG,GAANH,GAgEP,SAASI,GAAWC,EAAeC,GAC/B,OAAOD,EAAOta,MAClB,CAbAoa,GAAcxW,UAAUC,QAAU,iBAWzBxD,EAAAga,GAAA,cAIT,MAAMG,GAAsC,CACxC5V,MAAOyV,GACPI,MACAC,MACAC,OACAC,SACAC,WACAC,YACAC,OAISC,GAAN,MAAMA,wBAAuBza,EACxBoG,OAER,iBAAAsU,GACI,OAAQra,KAAKyB,YAAczB,KAAKsa,YAAkC,UAApBta,KAAKsa,UACvD,CAEA,sBAAAC,GACI,OAAQva,KAAKyB,YAAczB,KAAKsa,YAAkC,SAApBta,KAAKsa,UACvD,CAEA,QAAAvZ,CAASqP,GACL,MAAM5M,EAA2B,GAejC,OAdKxD,KAAKwa,oBACNhX,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,KAAUpQ,KAAKyB,uBAC1B6O,IAAK,yBAAyBtQ,KAAKya,gBACnClK,KAAM,YAAY5R,KAAKN,UAAU2B,KAAKuZ,eAGzCvZ,KAAK0a,yBACNlX,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,KAAUpQ,KAAKyB,uBAC1B6O,IAAK,8BAA8BtQ,KAAK2a,qBACxCpK,KAAM,YAAY5R,KAAKN,UAAU2B,KAAKuZ,eAGvC/V,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKyB,SAClB,CAEA,KAAAgE,GACI,MAAwB,UAApBzF,KAAKsa,WACE,CACH7Y,QAASzB,KAAKyB,UACdzC,KAAM,SAGP,CACHyC,QAASzB,KAAKyB,UACdzC,KAAMgB,KAAKsa,WACXM,UAAW5a,KAAKya,aAChBI,iBAAkB7a,KAAK2a,kBAE/B,CAEA,OAAAvU,CAAQC,GACJ,MAAM7C,EAASxD,KACVyB,QAAQ4E,EAAI5E,SACZ6Y,SAASjU,EAAIrH,MAMlB,MAJiB,UAAbqH,EAAIrH,OACJwE,EAAOiX,WAAWpU,EAAIuU,WACtBpX,EAAOmX,gBAAgBtU,EAAIwU,mBAExBrX,CACX,CAEA,cAAO4C,CAAQC,GACX,OAAO,IAAI+T,iBAAiBhU,QAAQC,EACxC,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXM,MAAOhB,KAAKyB,UACZ6Y,SAAUta,KAAKsa,WACfG,WAAYza,KAAKya,cAEzB,CAEA,OAAAlB,GACI,OAAOvZ,KAAK+F,OAAOzE,YACvB,CAEA,SAAAwZ,GACI,OAAO9a,KAAKuZ,UAAUna,MAC1B,CAEA,SAAA2b,CAAUC,GACN,OAAOpB,GAAO5Z,KAAKsa,YAAsBU,EAAQC,IAASA,EAAKjb,KAAKya,cACxE,CAEA,QAAAS,GACI,MAAMA,EAAWtB,GAAO5Z,KAAKsa,YACvBG,EAAaza,KAAKya,aAClBE,EAAkB3a,KAAK2a,kBAC7B,OAAIA,EACQK,GACGE,EAASF,EAAQC,IAASA,EAAKR,IAAeQ,EAAKN,IAGtDK,GACGE,EAASF,EAAQC,IAASA,EAAKR,GAGlD,GA9G4Chb,EAAA2a,GAAA,kBAAzC,IAAMe,GAANf,GAgHPe,GAAenY,UAAUC,QAAU,kBAgB5B,MAAMmY,GAAN,MAAMA,iBAAgBzY,GAEzB,QAAA5B,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAW6X,KAAYrb,KAAKsb,eACxB9X,EAASA,EAAOM,OAAOuX,EAASta,SAAS,mBAE7C,IAAA,MAAWwa,KAAOvb,KAAKwb,sBACnBhY,EAASA,EAAOM,OAAOyX,EAAIxa,SAAS,2BAExC,OAAOyC,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAM,UACNyc,WAAYzb,KAAK4B,WACjB8Z,WAAY1b,KAAK0b,aAEzB,CAEA,OAAAtV,CAAQC,GACJ,OAAOrG,KACF4B,SAASyE,EAAIoV,YACbC,WAAWrV,EAAIqV,WAExB,CAEA,cAAOtV,CAAQC,GACX,OAAO,IAAI+U,UAAUhV,QAAQC,EACjC,CAIA,QAAAzE,CAAStB,GACL,OAAKC,UAAUnB,QACfY,KAAK2b,OAAOrb,EAAE7B,IAAIgD,GAAW+X,GAAcpT,QAAQ3E,KAC5CzB,MAFuBA,KAAKsb,eAAe7c,IAAImd,GAAMA,EAAGnW,QAGnE,CAIA,UAAAiW,CAAWpb,GACP,OAAKC,UAAUnB,QACfY,KAAK6b,eAAevb,EAAE7B,IAAI6b,GAAYa,GAAe/U,QAAQkU,KACtDta,MAFuBA,KAAKwb,sBAAsB/c,IAAI0H,GAAMA,EAAGV,QAG1E,CAGA,IAAAjF,GACI,OAAOE,EAAQ,CACXob,QAAS9b,KAAK2b,SAASld,IAAImd,GAAMA,EAAGpb,QACpCqb,eAAgB7b,KAAK6b,iBAAiBpd,IAAI0H,GAAMA,EAAG3F,SAE3D,CAEA,cAAAub,CAAexC,GACX,IAAA,MAAWoC,KAAUpC,EACjBvZ,KAAK2b,SAAS7Z,MAAK,IAAI0X,IAClBlT,MAAMtG,MACNgB,MAAM2a,EAAOxb,QAGtB,OAAOH,IACX,CAEA,YAAAsb,GACI,OAAOtb,KAAK2b,SAASzb,OAAO4b,GAAWA,EAAQvV,QACnD,CAEA,MAAAzF,GACI,OAAOd,KAAKsb,eAAelc,OAAS,CACxC,CAEA,UAAAkC,GACI,OAAOtB,KAAKmB,WAAW1C,IAAI0B,GAASA,EAAMd,GAC9C,CAEA,KAAAc,CAAMsB,GACF,IAAA,MAAWtB,KAASH,KAAKmB,WACrB,GAAIhB,EAAMd,KAAOoC,EACb,OAAOtB,EAGf,OAAO,IACX,CAEA,oBAAA6b,CAAqBC,GACjB,IAAA,MAAWC,KAAkBD,EAAiB,CAC1C,MAAME,GAAY,IAAIhB,IACjB7U,MAAMtG,MACNyB,QAAQya,EAAelb,OACvBsZ,SAAS4B,EAAeld,WAEC,IAA1Bkd,EAAeP,QACfQ,EAAU1B,WAAWyB,EAAeP,QAExC3b,KAAK6b,iBAAiB/Z,KAAKqa,EAC/B,CACA,OAAOnc,IACX,CAEA,mBAAAwb,GACI,OAAOxb,KAAK6b,iBAAiB3b,OAAOkc,GAAiBA,EAAc7V,QACvE,CAEA,iBAAA8V,GACI,OAAOrc,KAAKwb,sBAAsBpc,OAAS,CAC/C,CAEA,aAAAgC,CAAcD,GACV,IAAKnB,KAAKc,SAAU,OAAOqC,MAAM/B,cAAcD,GAC/C,MAAMqC,EAAwB,GACxB8Y,EAA0Btc,KAAKsb,eACrC,IAAA,MAAWQ,KAAWQ,EAAQ,CAC1B,MAAMC,EAAevc,KAAKG,MAAM2b,EAAQ9a,SAClCb,EAAQ,CACVnB,KAAMud,EAAeA,EAAavd,KAAO,SACzCK,GAAIyc,EAAQ9a,SAEhBwC,EAAO1B,KAAK3B,EAChB,CACA,IAAA,MAAWgG,KAAMnG,KAAK6b,iBAClB,GAAI1V,EAAG1E,UAAW,CACd,MAAM2a,EAA6B,CAC/B/c,GAAI8G,EAAG1E,UACPzC,KAAM,UAEVwE,EAAO1B,KAAKsa,EAChB,CAEJ,GAAIpc,KAAKwc,UAAW,CAChB,IAAIC,EAA+BjZ,EACnC,GAAIxD,KAAKc,SAAU,CACf,MAAM4b,EAAoB,CACtBrd,GAAI,SACJL,KAAM,UACNO,SAAU,IAEdiE,EAAO1B,KAAK4a,GACZD,EAAgBC,EAAKnd,QACzB,CACA,MAAMga,EAAU+C,EAAO7d,IAAIqd,GAAWA,EAAQ9a,SAC9Cyb,EAAc3a,QAAQ9B,KAAKmB,WAAWjB,OAAOC,GAClCH,KAAK2c,eAAiBpD,EAAQhY,QAAQpB,EAAMd,IAAM,GAEjE,CACA,MAAO,IAAMmE,CACjB,CAEA,gBAAAxB,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GACvB,MAAMC,EAAqB,GAC3B,IAAA,MAAWga,KAAM5b,KAAKsb,eAClB1Z,EAASE,KAAK8Z,EAAG5a,SAErB,IAAA,MAAWmF,KAAMnG,KAAKwb,sBACdrV,EAAGsU,cACH7Y,EAASE,KAAKqE,EAAGsU,cAGzBtX,MAAMpB,gBAAgBJ,EAAMC,EAChC,CAEA,WAAAS,GACI,MAAMvC,EAAOqD,MAAMd,cACnB,GAAoB,IAAhBvC,EAAKV,SAAiBY,KAAKc,SAAU,OAAOhB,EAChD,MAAM8c,EAAyB5c,KAAKsb,eAAe7c,IAAImd,GAAMA,EAAG5a,SAC1D6a,EAAiB7b,KAAKwb,sBAAsB/c,IAAI0H,IAC3C,CAAEnF,MAAOmF,EAAG1E,UAAWyZ,SAAU/U,EAAG+U,cAEzC1X,EAASqZ,IACV/d,IAAKI,IACF,IAAIJ,EAAM,GACV,IAAA,MAAWge,KAAgBF,EACvB9d,GAAO,IAAMI,EAAI4d,GAErB,OAAOhe,IAEVie,QAAQjd,GAAkBrB,IAAIue,IAC3B,MAAM9d,EAEF8d,SACG9d,EAAIJ,IACX,IAAA,MAAWge,KAAgBF,EACvB1d,EAAI4d,GAAgB5d,EAAI8b,OAAO,GAAG8B,GAEtC,IAAA,MAAW3W,KAAM0V,EACb3c,EAAIiH,EAAGnF,OAASmF,EAAG+U,SAAShc,EAAI8b,QAEpC,OAAO9b,IAGTe,EAAYD,KAAKC,YACvB,OAAOuD,EAAO/E,IAAIS,IACd,MAAMsE,EAAS,CAAA,EACf,IAAA,MAAWrD,KAASF,EAChBuD,EAAOrD,EAAMd,IAAMH,EAAIiB,EAAMd,IAEjC,OAAOmE,GAEf,GA7MkC/D,EAAA2b,GAAA,WAA/B,IAAM6B,GAAN7B,GA+MP6B,GAAQja,UAAUC,QAAU,WAa5BuW,GAAcxW,UAAU2C,QAAQ,aAAS,EAAW,MAAO,QAAS,WAAiC,OAAO3F,KAAKuZ,SAAW,EAAG,CACvHzR,UAAU,EACV/G,wBAAUtB,EAACwI,GAA8BA,EAAEsR,UAAUhY,QAAQ0G,EAAEjH,UAAY,EAAjE,cAGlBma,GAAenY,UAAU2C,QAAQ,UAAW,KAAM,SAAU,eAAgB,KAAM,CAAEmC,UAAU,EAAME,yBAAUC,IAAuBA,EAAE6S,YAA1B,aAC7GK,GAAenY,UAAU2C,QAAQ,WAAY,QAAS,MAAO,mBAAoB,CAAC,QAAS,MAAO,MAAO,MAAO,OAAQ,SAAU,WAAY,aAAc,CAAEmC,UAAU,EAAME,uBAASvI,EAACwI,IAAuBA,EAAExG,UAA1B,aACvL0Z,GAAenY,UAAU2C,QAAQ,aAAc,KAAM,MAAO,oBAAqB,WAAkC,OAAO3F,KAAKuZ,SAAW,EAAG,CACrIzR,UAAU,EACVE,uBAASvI,EAACwI,GAAsBA,EAAEoS,oBAAzB,WACTtZ,wBAAUtB,EAACwI,GAA+BA,EAAEsR,UAAUhY,QAAQ0G,EAAEwS,eAAiB,EAAvE,cAElBU,GAAenY,UAAU2C,QAAQ,kBAAmB,KAAM,MAAO,mBAAoB,WAAkC,OAAO3F,KAAKuZ,SAAW,EAAG,CACzIzR,UAAU,EACVE,uBAASvI,EAACwI,GAAsBA,EAAEsS,yBAAzB,WACTxZ,wBAAUtB,EAACwI,GAA+BA,EAAEsR,UAAUhY,QAAQ0G,EAAE0S,oBAAsB,EAA5E,cAGlBsC,GAAQja,UAAU2C,QAAQ,SAAU,GAAI,gBAAiB,iBAAkB,KAAM,CAAEoC,WAAYyR,KAC/FyD,GAAQja,UAAU2C,QAAQ,iBAAkB,GAAI,gBAAiB,kBAAmB,KAAM,CAAEoC,WAAYoT,KACxG8B,GAAQja,UAAU2C,QAAQ,WAAW,EAAO,UAAW,gBACvDsX,GAAQja,UAAU2C,QAAQ,eAAe,EAAO,UAAW,kCCpcpD,MAAMuX,GAAN,MAAMA,eAAcva,GAEvB,WAAAuC,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAM,QACNme,MAAOnd,KAAK0c,OAEpB,CAEA,OAAAtW,CAAQC,GACJ,OAAOrG,KACF0c,KAAKrW,EAAI8W,MAElB,CAEA,cAAO/W,CAAQC,GACX,OAAO,IAAI6W,QAAQ9W,QAAQC,EAC/B,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXyc,MAAOnd,KAAK0c,QAEpB,CAEA,MAAA5b,GACI,OAAOd,KAAKod,eAAiBpd,KAAK0c,OAAS,CAC/C,CAEA,WAAAra,GACI,MAAMvC,EAAOqD,MAAMd,cACnB,OAAoB,IAAhBvC,EAAKV,QAAiBY,KAAKc,SACxBhB,EAAKsE,MAAM,EAAGgH,KAAKyO,IAAI7Z,KAAK0c,OAAQ5c,EAAKV,SADAU,CAEpD,GArCgCL,EAAAyd,GAAA,SAA7B,IAAMG,GAANH,GAuCPG,GAAMra,UAAUC,QAAU,SAO1Boa,GAAMra,UAAU2C,QAAQ,YAAQ,EAAW,SAAU,gBC7C9C,MAAM2X,GAAN,MAAMA,yBAAwB3d,EACvBoG,OAEV,QAAAhF,CAASqP,GACL,MAAM5M,EAA2B,GAejC,OAdKxD,KAAK4Q,eACNpN,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,UACXE,IAAK,oBAAoBtQ,KAAK4G,WAC9B2J,KAAM,qBAGTvQ,KAAKud,kBACN/Z,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,aACXE,IAAK,oBAAoBtQ,KAAKwd,cAC9BjN,KAAM,qBAGP/M,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAK4G,WAAa5G,KAAKwd,UACpC,CAEA,KAAA/X,GACI,MAAO,CACHmB,MAAO5G,KAAK4G,QACZ4W,SAAUxd,KAAKwd,WAEvB,CAEA,OAAApX,CAAQC,GACJ,OAAOrG,KACF4G,MAAMP,EAAIO,OACV4W,SAASnX,EAAImX,SAEtB,CAEA,cAAOpX,CAAQC,GACX,OAAO,IAAIiX,kBAAkBlX,QAAQC,EACzC,GAtD6C5G,EAAA6d,GAAA,mBAA1C,IAAMG,GAANH,GAwDPG,GAAgBza,UAAUC,QAAU,mBAkB7B,MAAMya,GAAN,MAAMA,uBAAsB/d,EACvBoG,OAER,cAAA4X,GACI,OAAQ3d,KAAKgB,SAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,QAAS,OAAOO,QAAQvB,KAAKhB,QAAU,CAC7F,CAEA,cAAA4e,GACI,OAAQ5d,KAAKgB,SAAW,CAAC,IAAK,IAAK,IAAK,KAAKO,QAAQvB,KAAKhB,QAAU,CACxE,CAEA,cAAA6e,GACI,OAAQ7d,KAAKgB,SAAW,CAAC,OAAOO,QAAQvB,KAAKhB,QAAU,CAC3D,CAEA,iBAAAgH,GACI,OAAQhG,KAAK8d,aACjB,CAEA,QAAA/c,CAASqP,GACL,MAAM5M,EAA2B,GAqBjC,OApBKxD,KAAK+d,iBACNva,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,KAAUpQ,KAAKgB,UAC1BsP,IAAK,sBAAsBtQ,KAAKge,aAChCzN,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKuZ,eAG3CvZ,KAAKie,iBACNza,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,KAAUpQ,KAAKgB,UAC1BsP,IAAK,qBAAqBtQ,KAAKke,aAC/B3N,KAAM,cAAc5R,KAAKN,UAAU2B,KAAKuZ,eAG3CvZ,KAAK6d,kBACN7d,KAAKme,wBAAwB/W,QAAQgX,GAAMA,EAAGrd,SAAS,GAAGqP,cAEzDpQ,KAAKgG,qBACNhG,KAAKqe,mBAAmBjX,QAAQjB,GAAMA,EAAGpF,SAAS,GAAGqP,iBAElD5M,CACX,CAEA,WAAAsa,GACI,IAAK9d,KAAKgB,QAAS,OAAO,EAC1B,GAAoB,MAAhBhB,KAAKhB,OAAgB,OAAO,EAChC,IAAKgB,KAAKge,UAAW,OAAO,EAC5B,MAAM7d,EAASH,KAAK+F,OAAuB5F,MAAMH,KAAKge,WACtD,SAAI7d,GAAwB,YAAfA,EAAMnB,OAAsBmB,EAAMZ,SAInD,CAEA,QAAAA,GACI,MAAMY,EAASH,KAAK+F,OAAuB5F,MAAMH,KAAKge,WACtD,OAAI7d,GAAwB,YAAfA,EAAMnB,KACRmB,EAAMZ,SAEV,EACX,CAEA,WAAA2F,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKgB,OAClB,CAEA,qBAAAmd,GACI,OAAOne,KAAKuX,UAAUrX,OAAOiG,GAAMA,EAAGI,QAC1C,CAEA,gBAAA8X,GACI,OAAOre,KAAKse,aAAape,OAAOiG,GAAMA,EAAGI,QAC7C,CAEA,cAAAgY,GACI,OAAOve,KAAKqe,mBAAmBjf,MACnC,CAEA,KAAAqG,GACI,OAAQzF,KAAKhB,QACT,IAAK,QACD,MAAO,CACHyC,QAASzB,KAAKgB,QACdhC,KAAM,QACNwf,cAAexe,KAAKge,UACpBS,OAAQze,KAAK0e,cAErB,IAAK,WACD,MAAO,CACHjd,QAASzB,KAAKgB,QACdhC,KAAM,WACN2f,SAAU3e,KAAK2e,YAEvB,IAAK,IACD,MAAMC,EAAkB5e,KAAKqe,mBAAmB5f,IAAI0H,GAAMA,EAAGV,SAC7D,MAAO,CACHhE,QAASzB,KAAKgB,QACdhC,KAAM,IACNwf,cAAexe,KAAKge,UACpBY,gBAAiBA,EAAgBxf,OAASwf,OAAkB,GAEpE,IAAK,MACD,MAAO,CACHnd,QAASzB,KAAKgB,QACdhC,KAAM,MACNwf,cAAexe,KAAKge,UACpB/X,QAASjG,KAAKiG,UACdwR,SAAUzX,KAAKme,wBAAwB1f,IAAI2f,GAAMA,EAAG3Y,UAE5D,QACI,MAAO,CACHhE,QAASzB,KAAKgB,QACdhC,KAAMgB,KAAKhB,OACX6f,eAAgB7e,KAAKge,UACrBc,eAAgB9e,KAAKke,WAGrC,CAEA,OAAA9X,CAAQC,GACJ,MAAM7C,EAASxD,KACVgB,MAAMqF,EAAI5E,SACVzC,KAAKqH,EAAIrH,MAEd,OAAQqH,EAAIrH,MACR,IAAK,QACDwE,EACKwa,QAAQ3X,EAAImY,eACZE,WAAWrY,EAAIoY,QAEpB,MACJ,IAAK,WACDjb,EACKmb,SAAStY,EAAIsY,UAElB,MACJ,IAAK,IACDnb,EACKwa,QAAQ3X,EAAImY,eACZF,WAAWjY,EAAIuY,gBAAkBvY,EAAIuY,gBAAgBngB,OAAsBif,eAActX,QAAQ2Y,IAAmB,IAEzH,MACJ,IAAK,MACDvb,EACKwa,QAAQ3X,EAAImY,eACZvY,QAAQI,EAAIJ,SACZsR,QAAQlR,EAAIoR,SAAWpR,EAAIoR,SAAShZ,IAAI8Y,GAAWkG,GAAgBrX,QAAQmR,IAAY,IAE5F,MACJ,QACI/T,EACKwa,QAAQ3X,EAAIwY,gBACZX,QAAQ7X,EAAIyY,gBAGzB,OAAOtb,CACX,CAEA,cAAO4C,CAAQC,GACX,OAAO,IAAIqX,gBAAgBtX,QAAQC,EACvC,CAEA,IAAA7F,GACI,OAAOE,EAAQV,KAAKyF,QACxB,CAEA,OAAA8T,GACI,OAAOvZ,KAAK+F,OAAOnE,UACvB,CAEA,aAAAwa,GACI,OAAQpc,KAAKhB,QACT,IAAK,IACD,IAAIqf,EAAmBre,KAAKqe,mBAY5B,OAXgC,IAA5BA,EAAiBjf,QAAgBY,KAAK8d,gBAEtCO,EAAmBre,KAAKT,WAAWd,IAAKugB,IAC7B,IAAItB,gBACNpX,MAAMtG,MACNgB,MAAMge,EAAM3f,IACZL,KAAK,KACLgf,QAAQgB,EAAM3f,MAIpB,IACAW,KAAK+F,OAAO5F,MAAMH,KAAKge,WAC1B3e,GAAIW,KAAKgB,QACTzB,SAAU8e,EAAiBjf,OAASif,EAAiB5f,IAAI0H,GAAMA,EAAGiW,sBAAmB,GAE7F,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,QACD,MAAO,CAAE/c,GAAIW,KAAKgB,QAAShC,KAAM,UACrC,IAAK,WACD,MAAO,CAAEK,GAAIW,KAAKgB,QAAShC,KAAM,UACrC,IAAK,MACD,MAAO,CAAEK,GAAIW,KAAKgB,QAAShC,KAAM,UAEzC,MAAO,CAAEK,GAAIW,KAAKgB,QAAShC,KAAM,SACrC,CAEA,UAAAigB,CAAWzI,GACP,MAAM6F,EAAoBrc,KAAKue,iBACzB1C,EAAiB7b,KAAKqe,mBAAmB5f,IAAI0H,IACxC,CACHnF,MAAOmF,EAAGnF,QACVke,KAAM/Y,EAAGgZ,YAAY3I,MAG7B,OAAQtX,IACJ,MAAMsE,EAASgT,GAAQ6F,EAAoB,CAAA,EAAK,IAAKnd,GACrD,IAAA,MAAWiH,KAAM0V,EACbrY,EAAO2C,EAAGnF,OAASmF,EAAG+Y,KAAKhgB,GAK/B,OAHIsX,GAAQ6F,IACR7Y,EAAiB,SAAItE,GAElBsE,EAEf,CAEA,WAAA2b,CAAY3I,GACR,MAAMwH,EAAUhe,KAAKge,UACfE,EAAUle,KAAKke,UACrB,OAAQle,KAAKhB,QACT,IAAK,IACD,OAAIgB,KAAKue,iBACGrf,IAEMA,EAAI8e,GAASoB,KAAO5gB,EAAQU,EAAI8e,GAASoB,KAAOlgB,EAAI8e,GAASoB,IAAMlgB,EAAI8e,IACxEvf,IAAIuB,KAAKif,WAAWzI,IAG7BtX,GACGA,EAAI8e,GAEnB,IAAK,IACD,OAAQ9e,IACIA,EAAI8e,IAAY9e,EAAIgf,GAEpC,IAAK,IACD,OAAQhf,IACIA,EAAI8e,IAAY9e,EAAIgf,GAEpC,IAAK,IACD,OAAQhf,IACIA,EAAI8e,KAAY9e,EAAIgf,GAEpC,IAAK,IACD,OAAQhf,IACIA,EAAI8e,IAAY9e,EAAIgf,GAEpC,IAAK,QACD,MAAMQ,EAAa1e,KAAK0e,aACxB,OAAQxf,IACIA,EAAI8e,GAAWU,EAE/B,IAAK,WACD,MAAMC,EAAW3e,KAAK2e,WACtB,OAAQzf,GACGmgB,EAAQV,SAASA,EAAUzf,GAE1C,IAAK,MACD,MAAMogB,EAAWtf,KAAKiG,UAChBwR,EAAW,CAAA,EACjB,IAAA,MAAWF,KAAWvX,KAAKuX,UACvBE,EAASF,EAAQ3Q,SAAW2Q,EAAQiG,WAExC,OAAQte,GACGuY,EAASvY,EAAI8e,KAAasB,EAEzC,QACI,OAAQpgB,GACGA,EAAI8e,GAG3B,CAGA,QAAApc,GACI,MAAMzB,EAASH,KAAK+F,OAAuB5F,MAAMH,KAAKge,WACtD,GAAI7d,EACA,OAAQA,EAAMnB,MACV,IAAK,UACD,OAAOmB,EAAMZ,SAASd,IAAI0B,GAASA,EAAMd,IAC7C,IAAK,SACD,OAAOT,OAAOC,KAAKsB,EAAM4G,QAGrC,MAAO,EACX,CAEA,KAAA5G,CAAMsB,GACF,MAAMtB,EAASH,KAAK+F,OAAuB5F,MAAMH,KAAKge,WACtD,GAAI7d,EACA,OAAQA,EAAMnB,MACV,IAAK,UACD,IAAA,MAAWiI,KAAK9G,EAAMZ,SAClB,GAAI0H,EAAE5H,KAAOoC,EACT,OAAOwF,EAGf,MACJ,IAAK,SACD,OAAO9G,EAAM4G,OAAOtF,GAIpC,GApU2ChC,EAAAie,GAAA,iBAAxC,IAAM6B,GAAN7B,GAsUP6B,GAAcvc,UAAUC,QAAU,iBA0B3B,MAAMuc,GAAN,MAAMA,oBAAmB7f,EACpBoG,OAER,WAAAb,GACI/B,OACJ,CAEA,IAAA3C,GACI,OAAOE,EAAQV,KAAKyF,QACxB,CAIA,KAAAa,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKgB,SAAWhB,KAAKyf,mBAAmBrgB,OAAS,CAC9D,CAEA,QAAA2B,CAASqP,GACL,IAAI5M,EAA2B,GAC/B,IAAA,MAAW2C,KAAMnG,KAAKyf,mBAClBjc,EAASA,EAAOM,OAAOqC,EAAGpF,SAAS,GAAGqP,qBAE1C,OAAO5M,CACX,CAEA,KAAAiC,GACI,MAAO,CACHhE,QAASzB,KAAKgB,QACdhC,KAAM,QACN4f,gBAAiB5e,KAAK4e,kBAE9B,CAEA,OAAAxY,CAAQC,GACJ,OAAOrG,KACFgB,MAAMqF,EAAI5E,SACVmd,gBAAgBvY,EAAIuY,gBAE7B,CAEA,cAAOxY,CAAQC,GACX,OAAO,IAAImZ,aAAapZ,QAAQC,EACpC,CAEA,gBAAAoZ,GACI,OAAOzf,KAAK0f,cAAcxf,OAAOkc,GAAiBA,EAAc7V,QACpE,CAIA,eAAAqY,CAAgBte,GACZ,OAAKC,UAAUnB,QACfY,KAAK0f,YAAYpf,EAAE7B,IAAIsgB,GAAkBQ,GAAcnZ,QAAQ2Y,KACxD/e,MAFuBA,KAAKyf,mBAAmBhhB,IAAI0H,GAAMA,EAAGV,QAGvE,CAGA,QAAA7D,GACI,OAAO5B,KAAK+F,OAAOnE,UACvB,CAEA,KAAAzB,CAAMsB,GACF,OAAOzB,KAAK+F,OAAO5F,MAAMsB,EAC7B,GArEuEhC,EAAA+f,GAAA,cAApE,IAAMG,GAANH,GAuEPG,GAAW3c,UAAUC,QAAU,cAUxB,MAAM2c,GAAN,MAAMA,qBAAoBjd,GAG7Bkd,gBAAiB,EACjBC,OAAQ,EAER,QAAA/e,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAW2C,KAAMnG,KAAKwb,sBAClBhY,EAASA,EAAOM,OAAOqC,EAAGpF,SAAS,GAAGf,KAAK+f,6BAE/C,OAAOvc,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,eAAAyb,CAAgBte,GACZ,OAAKC,UAAUnB,QACfY,KAAK6b,eAAevb,EAAE7B,IAAIsgB,GAEb,UADDA,EAAe/f,KAER2gB,GAAWvZ,QAAQ2Y,GAEnBQ,GAAcnZ,QAAQ2Y,KAGlC/e,MATuBA,KAAKwb,sBAAsB/c,IAAI0H,GAAMA,EAAGV,QAU1E,CAEA,MAAA3E,GACI,OAAOd,KAAKwb,sBAAsBpc,OAAS,CAC/C,CAGA,QAAAwC,GACI,OAAO5B,KAAKmB,WAAW1C,IAAI0B,GAASA,EAAMd,GAC9C,CAEA,KAAAc,CAAMsB,GACF,IAAA,MAAWtB,KAASH,KAAKmB,WACrB,GAAIhB,EAAMd,KAAOoC,EACb,OAAOtB,EAGf,OAAO,IACX,CAGA,mBAAA6f,GACIhgB,KAAK6b,eAAe,GACxB,CAEA,oBAAAG,CAAqBH,GACjB,IAAA,MAAWK,KAAkBL,EAAgB,CACzC,MAAMM,GAAY,IAAIoD,IACjBjZ,MAAMtG,MACNgB,MAAMkb,EAAelb,OACrBhC,KAAKkd,EAAeld,WAEK,IAA1Bkd,EAAeP,QACfQ,EAAU6B,QAAQ9B,EAAeP,QAErC3b,KAAK6b,iBAAiB/Z,KAAKqa,EAC/B,CACA,OAAOnc,IACX,CAEA,mBAAAwb,GACI,OAAOxb,KAAK6b,iBAAiB3b,OAAOkc,GAAiBA,EAAc7V,QACvE,CAEA,iBAAA8V,GACI,OAAOrc,KAAKwb,sBAAsBpc,MACtC,CAEA,aAAAgC,CAAcD,GACV,IAAKnB,KAAKc,SAAU,OAAOqC,MAAM/B,cAAcD,GAC/C,IAAIqC,EAAwB,GAC5B,MAAMyc,EAAwC,CAAA,EAC9C,IAAA,MAAW9Z,KAAMnG,KAAKwb,sBAClB,GAAIrV,aAAcwZ,GACd,IAAA,MAAWO,KAAO/Z,EAAGsZ,mBAAoB,CACrC,MAAMrD,EAAgB8D,EAAI9D,gBAC1B5Y,EAAO1B,KAAKsa,GACZ6D,EAAU7D,EAAc/c,KAAM,CAClC,KACG,CACH,MAAM+c,EAAgBjW,EAAGiW,gBACzB5Y,EAAO1B,KAAKsa,GACZ6D,EAAU7D,EAAc/c,KAAM,CAClC,CAEJ,GAAIW,KAAK8f,OAAS9f,KAAKqc,qBACnB,GAAIrc,KAAK6f,eAAgB,CACrB,MAAMzD,EAAgB,CAClB/c,GAAI,WACJL,KAAM,UAEVwE,EAAO1B,KAAKsa,GACZ6D,EAAU7D,EAAc/c,KAAM,CAClC,OAEAmE,EAASA,EAAOM,OAAO3C,EAASjB,OAAOC,IAAU8f,EAAU9f,EAAMd,MAErE,MAAO,IAAMmE,CACjB,CAEA,gBAAAxB,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GACvB,MAAMC,EAAqB,GAC3B,IAAA,MAAWuE,KAAMnG,KAAKwb,sBAClB,GAAIrV,aAAcwZ,GACd,IAAA,MAAWO,KAAO/Z,EAAGsZ,mBACjB7d,EAASE,KAAKoe,EAAIlC,WACdkC,EAAIhC,WACJtc,EAASE,KAAKoe,EAAIhC,gBAI1B,GAAkB,aAAd/X,EAAGnH,OACH,IAAA,MAAWyC,KAAW4d,EAAQc,eAAeha,EAAGwY,YAC5C/c,EAASE,KAAKL,QAGlBG,EAASE,KAAKqE,EAAG6X,WACb7X,EAAG+X,WACHtc,EAASE,KAAKqE,EAAG+X,WAKjC/a,MAAMpB,gBAAgBJ,EAAMC,EAChC,CAEA,UAAAqd,GACI,MAAMzI,EAAOxW,KAAK8f,MACZzD,EAAoBrc,KAAKqc,oBACzBR,EAAiB,GACvB,IAAA,MAAW1V,KAAMnG,KAAKwb,sBAClB,GAAIrV,aAAcwZ,GACd,IAAA,MAAWO,KAAO/Z,EAAGsZ,mBACjB5D,EAAe/Z,KAAK,CAChBd,MAAOkf,EAAIlf,QACXke,KAAMgB,EAAIf,YAAY3I,UAI9BqF,EAAe/Z,KAAK,CAChBd,MAAOmF,EAAGnF,QACVke,KAAM/Y,EAAGgZ,YAAY3I,KAIjC,OAAQtX,IACJ,MAAMsE,EAASgT,GAAQ6F,EAAoB,CAAA,EAAK,IAAKnd,GACrD,IAAA,MAAWiH,KAAM0V,EACbrY,EAAO2C,EAAGnF,OAASmF,EAAG+Y,KAAKhgB,GAO/B,OALIsX,GAAQ6F,GACJrc,KAAK6f,iBACLrc,EAAiB,SAAItE,GAGtBsE,EAEf,CAEA,WAAAnB,GACI,MAAMvC,EAAOqD,MAAMd,cACnB,OAAoB,IAAhBvC,EAAKV,QAAiBY,KAAKc,SACxBhB,EAAKrB,IAAIuB,KAAKif,cAD2Bnf,CAEpD,GA/KsCL,EAAAmgB,GAAA,eACtCzG,EADSyG,GACF,gBAAgBL,IADpB,IAAMa,GAANR,GAkLA,MAAMS,GAAN,MAAMA,iBAAgBD,GAEzB,KAAA3a,GACI,MAAO,CACHzG,KAAM,UACN4f,gBAAiB5e,KAAK4e,kBAE9B,CAEA,OAAAxY,CAAQC,GACJ,OAAOrG,KAAK4e,gBAAgBvY,EAAIuY,gBACpC,CAEA,cAAOxY,CAAQC,GACX,OAAO,IAAIga,UAAUja,QAAQC,EACjC,CAEA,IAAA7F,CAAKC,EAAe,IAChB,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,WACPhF,GAEX,GAtBqChB,EAAA4gB,GAAA,WAAlC,IAAMC,GAAND,GAwBPC,GAAQtd,UAAUC,QAAU,WAErB,MAAMsd,GAAN,MAAMA,kBAAiBH,GAE1B,WAAAlb,GACI/B,QACAnD,KAAK8f,OAAQ,EACb9f,KAAK6f,gBAAiB,CAC1B,CAEA,KAAApa,GACI,MAAO,CACHzG,KAAM,WACN4f,gBAAiB5e,KAAK4e,kBAE9B,CAEA,OAAAxY,CAAQoa,GACJ,MAAMna,EAAMma,GAAQ,CAAE5B,gBAAiB,IACvC,OAAO5e,KACF4e,gBAAgBvY,EAAIuY,gBAE7B,CAEA,cAAOxY,CAAQC,GACX,OAAO,IAAIka,WAAWna,QAAQC,EAClC,CAEA,IAAA7F,CAAKC,EAAe,IAChB,OAAO0C,MAAM3C,KAAK,CACd6F,IAAKrG,KAAKyF,WACPhF,GAEX,CAEA,gBAAAuB,CAAiBL,GACb,GAAI3B,KAAKqc,oBACL,OAAOlZ,MAAMnB,iBAAiBL,GAElC3B,KAAK+B,gBAAgBJ,EAAM3B,KAAKmB,WAAWjB,OAAO+G,GAAc,aAATA,EAAE5H,IAAmBZ,IAAIwI,GAAKA,EAAE5H,IAC3F,GAtCsCI,EAAA8gB,GAAA,YAAnC,IAAME,GAANF,GAwCPE,GAASzd,UAAUC,QAAU,YAE7Bwa,GAAgBza,UAAU2C,QAAQ,QAAS,KAAM,MAAO,qBAAiB,EAAW,CAChF5E,0BAAWkH,IAAkCA,EAAErB,UAAYqB,EAAEuV,cAAkBvV,EAAErB,WAAaqB,EAAEuV,WAAtF,cAEdC,GAAgBza,UAAU2C,QAAQ,WAAY,KAAM,MAAO,iBAAa,EAAW,CAC/E5E,0BAAWkH,IAAkCA,EAAErB,UAAYqB,EAAEuV,cAAkBvV,EAAErB,WAAaqB,EAAEuV,WAAtF,cAGd+B,GAAcvc,UAAU2C,QAAQ,QAAS,KAAM,SAAU,QAAS,KAAM,CAAEmC,UAAU,IACpFyX,GAAcvc,UAAU2C,QAAQ,OAAQ,UAAW,MAAO,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,QAAS,WAAY,OAAQ,CAAEmC,UAAU,EAAME,uBAASvI,EAAAwI,IAAMA,EAAEjH,QAAR,aAC5Jue,GAAcvc,UAAU2C,QAAQ,UAAW,KAAM,MAAO,UAAW,WAAiC,OAAO3F,KAAKuZ,SAAW,EAAG,CAC1HzR,UAAU,EACVE,uBAASvI,EAACwI,GAAqBA,EAAE0V,iBAAxB,WACT5c,wBAAUtB,EAACwI,GAA8BA,EAAEsR,UAAUhY,QAAQ0G,EAAE+V,YAAc,EAAnE,cAEduB,GAAcvc,UAAU2C,QAAQ,UAAW,KAAM,MAAO,UAAW,WAAiC,OAAO3F,KAAKuZ,SAAW,EAAG,CAC1HzR,UAAU,EACVE,uBAASvI,EAACwI,GAAqBA,EAAE2V,iBAAxB,WACT7c,wBAAUtB,EAACwI,GAA8BA,EAAEsR,UAAUhY,QAAQ0G,EAAEiW,YAAc,EAAnE,cAEdqB,GAAcvc,UAAU2C,QAAQ,aAAc,KAAM,SAAU,cAAe,KAAM,CAAEmC,UAAU,EAAME,uBAASvI,EAACwI,IAAsBA,EAAEjH,SAAW,CAAC,SAASO,QAAQ0G,EAAEjJ,QAAU,EAAlE,aAC9GugB,GAAcvc,UAAU2C,QAAQ,WAAY,KAAM,SAAU,WAAY,KAAM,CAAEmC,UAAU,EAAME,uBAASvI,EAACwI,IAAsBA,EAAEjH,SAAW,CAAC,YAAYO,QAAQ0G,EAAEjJ,QAAU,EAArE,aACzGugB,GAAcvc,UAAU2C,QAAQ,UAAW,KAAM,MAAO,gBAAiB,KAAM,CAAEmC,UAAU,EAAME,uBAASvI,EAACwI,IAAsBA,EAAEjH,SAAW,CAAC,OAAOO,QAAQ0G,EAAEjJ,QAAU,EAAhE,aAC1GugB,GAAcvc,UAAU2C,QAAQ,UAAW,GAAI,gBAAiB,gBAAiB,KAAM,CAAEoC,WAAY0V,GAAiBzV,uBAASvI,EAACwI,GAAqBA,EAAE4V,iBAAxB,aAC/H0B,GAAcvc,UAAU2C,QAAQ,aAAc,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYwX,GAAevX,uBAASvI,EAACwI,GAAqBA,EAAEjC,oBAAxB,aAE/H2Z,GAAW3c,UAAU2C,QAAQ,QAAS,GAAI,SAAU,SACpDga,GAAW3c,UAAU2C,QAAQ,cAAe,GAAI,gBAAiB,eAAgB,KAAM,CAAEoC,WAAYwX,KAOrGa,GAAYpd,UAAU2C,QAAQ,iBAAkB,GAAI,gBAAiB,kBAAmB,KAAM,CAAEoC,WAAYwX,KCjxBrG,MAAMmB,GAAN,MAAMA,oBAAmB/gB,EACpBoG,OAER,QAAAhF,CAASqP,GACL,MAAM5M,EAA2B,GAQjC,OAPKxD,KAAK2gB,iBACNnd,EAAO1B,KAAK,CACR4B,OAAQ,GAAG0M,YACXE,IAAK,qBAAqBtQ,KAAKyB,YAC/B8O,KAAM,YAAY5R,KAAKN,UAAU2B,KAAK4B,gBAGvC4B,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAIA,KAAAmD,CAAMhG,GACF,OAAKC,UAAUnB,QACfY,KAAK+F,OAASzF,EACPN,MAFuBA,KAAK+F,MAGvC,CAEA,KAAAQ,GACI,QAASvG,KAAKyB,SAClB,CAEA,KAAAgE,GACI,MAAO,CACHhE,QAASzB,KAAKyB,UACdmf,WAAY5gB,KAAK4gB,aAEzB,CAEA,OAAAxa,CAAQC,GACJ,OAAOrG,KACFyB,QAAQ4E,EAAI5E,SACZmf,WAAWva,EAAIua,WAExB,CAEA,cAAOxa,CAAQC,GACX,OAAO,IAAIqa,aAAata,QAAQC,EACpC,CAEA,IAAA7F,GACI,OAAOE,EAAQ,CACXmgB,WAAY7gB,KAAKyB,UACjBmf,WAAY5gB,KAAK4gB,cAEzB,CAEA,QAAAhf,GACI,OAAO5B,KAAK+F,OAAOnE,UACvB,CAEA,KAAAzB,CAAMd,GACF,OAAOW,KAAK+F,OAAO5E,WAAWjB,OAAOC,GACjCA,EAAMd,KAAOA,GACf,EACN,GAhEwCI,EAAAihB,GAAA,cAArC,IAAMI,GAANJ,GAkEPI,GAAW9d,UAAUC,QAAU,cAWxB,MAAM8d,GAAN,MAAMA,cAAape,GAGtB,QAAA5B,GACI,IAAIyC,EAA2B,GAC/B,IAAA,MAAWwd,KAAMhhB,KAAKihB,cAClBzd,EAASA,EAAOM,OAAOkd,EAAGjgB,SAAS,gBAEvC,OAAOyC,CACX,CAEA,WAAA0B,GACI/B,OACJ,CAEA,KAAAsC,GACI,MAAO,CACHzG,KAAM,OACNuZ,WAAYvY,KAAKuY,aAEzB,CAEA,OAAAnS,CAAQC,GAEJ,OADArG,KAAKuY,WAAWlS,EAAIkS,YACbvY,IACX,CAEA,cAAOoG,CAAQC,GACX,OAAO,IAAI0a,OAAO3a,QAAQC,EAC9B,CAIA,UAAAkS,CAAWjY,GACP,OAAKC,UAAUnB,QACfY,KAAK2b,OAAOrb,EAAE7B,IAAI0X,GAAa2K,GAAW1a,QAAQ+P,KAC3CnW,MAFuBA,KAAKihB,cAAcxiB,IAAIkd,GAAUA,EAAOlW,QAG1E,CAGA,IAAAjF,GACI,OAAOE,EAAQ,CACXwgB,KAAMlhB,KAAK2b,SAASld,IAAIuiB,GAAMA,EAAGxgB,SAEzC,CAEA,gBAAAwB,CAAiBL,GACbwB,MAAMnB,iBAAiBL,GACvBwB,MAAMpB,gBAAgBJ,EAAM3B,KAAKihB,cAAcxiB,IAAI0iB,GAAUA,EAAO1f,WACxE,CAEA,WAAAwf,GACI,OAAOjhB,KAAK2b,SAASzb,OAAOihB,GAAUA,EAAO1f,UACjD,CAEA,MAAAX,GACI,OAAOd,KAAKihB,cAAc7hB,OAAS,CACvC,CAEA,QAAAwC,GACI,OAAO5B,KAAKmB,WAAW1C,IAAI0B,GAASA,EAAMd,GAC9C,CAEA,WAAAgD,GACI,MAAMvC,EAAOqD,MAAMd,cACb+e,EAA8D,GACpE,IAAA,MAAWD,KAAUnhB,KAAKihB,cACtBG,EAAUtf,KAAK,CACXuQ,QAAS8O,EAAOP,aAAeS,EAAeC,EAC9CjiB,GAAI8hB,EAAO1f,YAInB,OAAI2f,EAAUhiB,OACH,IAAIU,GAAMyhB,KAAK,CAACC,EAAQ/T,KAC3B,IAAA,MAAWgU,KAAQL,EAAW,CAC1B,MAAM5V,EAAUiW,EAAKpP,QAAQmP,EAAEC,EAAKpiB,IAAKoO,EAAEgU,EAAKpiB,KAChD,GAAgB,IAAZmM,EACA,OAAOA,CAEf,CACA,OAAO,IAIR1L,CACX,GAtF+BL,EAAAshB,GAAA,QAC/B5H,EADS4H,GACF,SAASD,IADb,IAAMI,GAANH,GAwFPG,GAAKle,UAAUC,QAAU,QAOzB6d,GAAW9d,UAAU2C,QAAQ,UAAW,KAAM,MAAO,aAAc,WAA8B,OAAO3F,KAAK4B,UAAY,EAAG,CACpHkG,UAAU,EACV/G,wBAAUtB,EAACwI,GAA2BA,EAAErG,WAAWL,QAAQ0G,EAAExG,YAAc,EAAjE,cAElBqf,GAAW9d,UAAU2C,QAAQ,cAAc,EAAO,UAAW,cAE7Dub,GAAKle,UAAU2C,QAAQ,SAAU,GAAI,gBAAiB,iBAAkB,KAAM,CAAEoC,WAAY+Y,KC7KrF,MAAMY,GAAN,MAAMA,uBAAsBrd,GAgB/B,WAAAa,CAAoBqE,EAAuBiO,GACvCrU,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KAAKmF,IAAMqS,EACXxX,KAAKwF,YAAc,IAAIyQ,GAASjW,KAAKuJ,KACrCvJ,KAAK2hB,SAAW,IAAIvI,GAAQpZ,KAAKuJ,KACjCvJ,KAAK4hB,SAAW,IAAItB,GACpBtgB,KAAK6hB,SAAW,IAAI5E,GACpBjd,KAAK8hB,MAAQ,IAAIZ,GACjBlhB,KAAK+hB,OAAS,IAAI1E,GAClBrd,KAAKgiB,gBACT,CAVoBzY,IAdpBjE,gBACA2c,aACAC,aACAC,aACAC,UACAC,WAuBA,UAAAvf,CAAWxC,GAEP,OADe6C,MAAML,WAAW+C,MAAM7F,KAAMO,UAEhD,CAEQ,cAAAyhB,GACJhiB,KAAK8C,WAAW,CACZ9C,KAAKuF,aACLvF,KAAKiZ,UACLjZ,KAAKsiB,UACLtiB,KAAK8b,UACL9b,KAAKuhB,OACLvhB,KAAKmd,SAEb,CAEA,eAAA7L,GACI,OAAOtR,KAAKuD,OAAOtD,WACvB,GAhDgDR,EAAAiiB,GAAA,iBAA7C,IAAMa,GAANb,GAyEP,SAASc,GAA0BC,GAC/B,MAAMC,EAAU,QAAQD,EAAKE,OAAO,GAAGC,cAAgBH,EAAKre,MAAM,KAClEme,GAAcvf,UAAU0f,GAAWH,GAAcvf,UAAUyf,GAC3DF,GAAcvf,UAAUyf,GAAQ,SAAUniB,GACtC,MAAMkD,EAAS+e,GAAcvf,UAAU0f,GAAS7c,MAAM7F,KAAMO,WAI5D,YAHU,IAAND,GACAN,KAAKgiB,iBAEFxe,CACX,CACJ,CAjBA+e,GAAcvf,UAAU2C,QAAQ,aAAc,KAAM,SAAU,iBAC9D4c,GAAcvf,UAAU2C,QAAQ,UAAW,KAAM,SAAU,kBAC3D4c,GAAcvf,UAAU2C,QAAQ,UAAW,KAAM,SAAU,WAC3D4c,GAAcvf,UAAU2C,QAAQ,UAAW,KAAM,SAAU,YAC3D4c,GAAcvf,UAAU2C,QAAQ,OAAQ,KAAM,SAAU,QACxD4c,GAAcvf,UAAU2C,QAAQ,QAAS,KAAM,SAAU,gBAEhDlG,EAAA+iB,GAAA,6BAWTA,GAA0B,cAC1BA,GAA0B,WAC1BA,GAA0B,WAC1BA,GAA0B,WAC1BA,GAA0B,QAC1BA,GAA0B,SClGnB,MAAMK,GAAN,MAAMA,kBAAiBN,GAC1B,IAAA/hB,GACI,OAAO2C,MAAM3C,MACjB,CAEA,MAAAqK,CAAOlH,EAAcK,GACjB,OAAOpD,QAAQC,QAAQ,GAC3B,GAPwCpB,EAAAojB,GAAA,YAArC,IAAMC,GAAND,GASPC,GAAS9f,UAAUC,QAAU,YCJtB,MAAM8f,GAAN,MAAMA,uBAAsBC,GAEvBjd,OACAkd,aAER,WAAA/d,CAAYoB,EAA4B4c,GACpC/f,QACAnD,KAAK+F,OAASO,EACdtG,KAAKijB,aAAeC,EACpBljB,KAAKmjB,cAAgB,SACrBnjB,KAAKojB,SAAQ,GACbpjB,KAAKqjB,kBAAkB,SACvBrjB,KAAKsjB,iBAAiB,SACtBtjB,KAAKujB,kBAAkB,SAC3B,CAEQC,MACR,IAAAC,CAAKnjB,GACD,OAAKC,UAAUnB,QACXY,KAAKwjB,OAASxjB,KAAKwjB,QAAUljB,GAC7BN,KAAKwjB,MAAME,aACNC,UAAS,GACTC,SAGT5jB,KAAKwjB,MAAQljB,EACbN,KAAK+F,OAAO8d,cAAc7jB,KAAKijB,cACxBjjB,MATuBA,KAAKwjB,KAUvC,CAEA,KAAA9Q,CAAMoR,EAAS1S,GACX0S,EAAQC,cAAcC,MAAMC,SAAW,WACvC,MAAMC,EAAelkB,KAAKmkB,SAAwBC,QAC9CF,IACAlkB,KAAKokB,MAAMF,GACVlkB,KAAKmkB,SAAwBE,cAAa,IAE/ClhB,MAAMuP,MAAMoR,EAAS1S,EACzB,CAEA,MAAA1O,CAAOohB,EAAS1S,GACZpR,KAAKskB,SAAStkB,KAAKukB,KAAKC,EAAI,MAC5BxkB,KAAKykB,UAAUzkB,KAAKukB,KAAKG,EAAI,MAC7BvhB,MAAMT,OAAOohB,EAAS1S,EAC1B,CAEA,IAAAuT,CAAKb,EAAS1S,GACVjO,MAAMwhB,KAAKb,EAAS1S,GACCpR,KAAKmkB,SAAwBC,SAE7CpkB,KAAKmkB,SAAwBE,cAAa,EAEnD,CAEA,UAAAO,GACIzhB,MAAMyhB,aACF5kB,KAAKwjB,OACLxjB,KAAKwjB,MAAME,aACNC,UAAS,GACTC,QAGb,GA9DqCnkB,EAAAsjB,GAAA,iBAAlC,IAAM8B,GAAN9B,GAgEP8B,GAAc7hB,UAAUC,QAAU,4BAgB3B,MAAM6hB,GAAN,MAAMA,uBAAsBC,GAEvBC,OACRtB,cAAe,IAAIuB,GAAeC,OAAO,aAAaC,QAAQ,UACzDC,GAAG,QAAS,KACTplB,KAAKglB,OAAOvB,KAAKzjB,MACjB,MACMqlB,EADKrlB,KAAKslB,sBAAsB,CAAC,gCAAiC,6BACtDC,SAAQ,GACpBC,EAAKxlB,KAAKglB,OAAOb,SACjBsB,EAASzlB,KAAK0jB,aAAa6B,UACjCvlB,KAAKglB,OACAU,IAAI,CACDhB,GAAIW,EAAOX,EAAIe,EAAOf,EAAIe,EAAOE,MAAQH,EAAGI,WAC5CpB,GAAIa,EAAOb,EAAIiB,EAAOjB,EAAIiB,EAAOI,SAEpCC,OAAO,CAAEH,MAAOH,EAAGI,WAAYC,OAAQL,EAAGO,cAC1C3C,QAAQpjB,KAAK0jB,aAAaC,YAC1BC,OAAQoC,IACL,MAAMC,EAAiB,IAAMD,EAAM3mB,KAAO,mCACpC6mB,EAAOF,EAAM5U,UAAU8U,OAC7B,GAAIA,EAAM,CACN,MAAML,OAAEA,QAAQF,GAAUO,EAAKC,cAAcF,GAAgBG,wBAC7DJ,EAAMK,eAAeV,EAAOE,EAChC,MAKRS,aACAC,eAER,WAAArhB,GACI/B,QAEAnD,KAAKsmB,aAAetmB,KAAKwmB,UACzBxmB,KAAKumB,eAAiB,CAACvmB,KAAK0jB,aAAc,IAAI+C,KAAazmB,KAAKsmB,aACpE,CAEA,KAAAN,CAAM1lB,GACF,OAAKC,UAAUnB,QACfY,KAAKglB,OAAS1kB,EACTN,KAAKglB,QACNhlB,KAAK0jB,aAAaC,UAAS,GAE/B3jB,KAAKwmB,QAAQxmB,KAAKglB,OAAShlB,KAAKumB,eAAiBvmB,KAAKsmB,cAC/CtmB,MANuBA,KAAKglB,MAOvC,GA9C0CvlB,EAAAqlB,GAAA,iBAAvC,IAAM4B,GAAN5B,GAgDP4B,GAAc1jB,UAAUC,QAAU,4BAWlCyjB,GAAc1jB,UAAU2C,QAAQ,sBAAuB,GAAI,UAC3D+gB,GAAc1jB,UAAU2C,QAAQ,WAAY,IAAK,SAAU,aAC3D+gB,GAAc1jB,UAAU2C,QAAQ,YAAa,IAAK,SAAU,cCnI5D,MAAMghB,GAAgE,CAClEC,SAAOC,aACPC,QAAMC,UAAQC,OAAKC,UAAQC,WAASC,SAAQC,OAAMC,MAAKC,QAAOC,YAAWC,UAASC,OAAMC,YACxFC,qBAAsBC,GAAoBC,mBAAoBC,GAAkBC,YAAaC,GAAQD,YACrGE,iBAAgBC,kBAAgBC,cAEvBC,GAAa,GAC1B,IAAA,MAAWtpB,MAAO6nB,GACdyB,GAAWtmB,KAAKhD,IAGpB,SAASupB,GAAUrpB,GAEf,OADe2nB,GAAW3nB,IACT4nB,EACrB,CAEA,SAAS0B,GAAQtpB,GACb,MACMwE,EAAS,IADImjB,GAAW3nB,IACI4nB,IAkBlC,OAfIpjB,aAAkBqjB,GAClBrjB,EACKzC,UAAS,GACTwnB,mBAAkB,GAEhB/kB,aAAkB0kB,IACzB1kB,EACKglB,UAAU,OACVC,YAAY,SACZC,WAAW,QACXC,YAAY,SACZC,cAAc,OACdC,gBAAgB,SAGlBrlB,CACX,CAEA,SAASslB,GAAW9pB,GAChB,OAAOqpB,GAAUrpB,GAAM+pB,UAAY,EACvC,CA9BStpB,EAAA4oB,GAAA,aAKA5oB,EAAA6oB,GAAA,WAuBA7oB,EAAAqpB,GAAA,cAIF,MAAME,GAAN,MAAMA,uBAAsBrpB,EAW/B,WAAAuF,CAAsBqE,EAAuB8H,GACzClO,QADkBnD,KAAAuJ,IAAAA,EAElBvJ,KAAKipB,eAAiB5X,EACtBrR,KAAKyX,SAAS,IAAIgJ,IAClBzgB,KAAKkpB,WAAW,IAAIxC,IACpB1mB,KAAKmpB,aACT,CANsB5f,IATtB6f,gBACAC,eACAC,gBAMUL,eASV,gBAAAzY,GACI,OAAOxQ,KAAKuJ,IAAI0H,aAAa/Q,OAAOb,GAAMA,IAAOW,KAAKX,KAC1D,CAEAkqB,eACA,WAAAJ,GACI,GAAInpB,KAAKupB,iBAAmBvpB,KAAKwpB,WAAY,CACzCxpB,KAAKupB,eAAiBvpB,KAAKwpB,WAC3BxpB,KAAKypB,kBACL,MAAMC,EAAQpB,GAAQtoB,KAAKwpB,YAC3BxpB,KAAKkpB,aAAa/E,OAAOuF,EAC7B,CACJ,CAIA,UAAAC,CAAWrpB,GACP,OAAKC,UAAUnB,QACfY,KAAKkpB,aAAaU,YAAYtpB,GAEvBN,MAHuBA,KAAKkpB,aAAaW,WAIpD,CAEA,eAAAJ,GACI,MAAMhS,EAAWzX,KAAKyX,WACtBA,EAASpX,eAAeL,KAAKipB,gBAC7B,MAAM1N,EAAM9D,EAAS+D,sBACfra,EAAWsW,EAAStW,WACpB2oB,EAAQ,CAAA,EA2Cd,OA1CArS,EAASoE,eAAeiN,GAAW9oB,KAAKwpB,YAAY/qB,IAAI,CAACsrB,EAAOC,KAC5D,IAAIxmB,EAAqC+X,EAAIyO,GAC7C,GAAIxmB,EACIA,aAAkBmc,IAElBnc,EAAOxC,MAAM+oB,EAAM1qB,SAGvB,GAAI0qB,EAAME,MAAO,CACbzmB,GAAS,IAAImc,IACRrZ,MAAMmR,GACNzW,MAAM+oB,EAAM1qB,IAEjB,MAAMwc,EAAkC,GACxC,IAAA,MAAWqO,KAAW/oB,EACE,QAAf4oB,EAAM/qB,MAAkB+qB,EAAM/qB,OAASkrB,EAAQlrB,MAAU8qB,EAAMI,EAAQ7qB,MACxEyqB,EAAMI,EAAQ7qB,KAAM,EACpBwc,EAAe/Z,MAAK,IAAIyd,IACnBve,MAAMkpB,EAAQ7qB,IACdL,KAAK,KACLgf,QAAQkM,EAAQ7qB,MAI7BmE,EAAOkc,YAAY7D,EACvB,KAAO,CACHrY,GAAS,IAAI+b,IACRjZ,MAAMmR,GACNzW,MAAM+oB,EAAM1qB,IACZL,KAAK,KAEV,IAAA,MAAWkrB,KAAW/oB,EAClB,IAAoB,QAAf4oB,EAAM/qB,MAAkB+qB,EAAM/qB,OAASkrB,EAAQlrB,QAAU8qB,EAAMI,EAAQ7qB,IAAK,CAC7EyqB,EAAMI,EAAQ7qB,KAAM,EACpBmE,EAAOwa,QAAQkM,EAAQ7qB,IACvB,KACJ,CAER,CAEJ,OAAOmE,KAEJxD,IACX,CAEAmqB,YAA0C,GAC1CC,gBAA8C,GAC9C5nB,UAAmC,GACnC,WAAA6nB,GACI,MAAM5S,EAAWzX,KAAKyX,WAEhB1Q,EAAS0Q,EAASxX,YAClBqqB,EAAWtqB,KAAKuqB,WAAWxjB,GACjC,IAAIyjB,EACAC,EAAe,GACnB,MAAMC,EAAK1qB,KAAKuJ,IAAI6H,QAAQpR,KAAK2qB,uBAC7BD,IACAF,EAAaE,EAAGjT,WAAWxX,YAC3BwqB,EAAezqB,KAAKuqB,WAAWC,IAGnC,MAAMI,EAAgB5qB,KAAKmqB,cAAgBpjB,GAAU/G,KAAKoqB,kBAAoBI,EAC9E,GAAII,EAEA,GADA5qB,KAAKmqB,YAAcpjB,EACM,cAArB/G,KAAK6qB,YAA6B,CAClC,MAAMC,EAAY9qB,KAAKkpB,aAAa/E,SACpC2G,EAAUC,cAAcT,EAAS7rB,OAASwI,EAAEjG,UAC5C8pB,EAAUE,YAAYP,EAAahsB,OAASwI,EAAEjG,SAClD,MACIhB,KAAKkpB,aAAaniB,OAAOujB,EAASpqB,UAAuB,aAAX+G,EAAE5H,YAGpD4rB,QAAQC,KAAK,MAAMlrB,KAAKX,4BAG5B,MAAMS,EAAO2X,EAASrV,UAChB+oB,EAAcnrB,KAAKwC,YAAc1C,EACvC,GAAIqrB,EAAa,CACbnrB,KAAKwC,UAAY1C,EACjB,MAAMsrB,EAAaprB,KAAKqrB,SAASf,EAAUxqB,GAC3C,GAAyB,cAArBE,KAAK6qB,YAA6B,CAClC,MAAMC,EAAY9qB,KAAKkpB,aAAa/E,SAEpC,GADA2G,EAAUQ,SAASF,GACfV,EAAI,CACJ,MAAMa,EAAWb,EAAGjT,WAAWrV,UACzBopB,EAAiBxrB,KAAKqrB,SAASZ,EAAcc,GACnDT,EAAUW,MAAMD,EACpB,CACJ,MACIxrB,KAAKkpB,aAAappB,KAAKsrB,EAE/B,MACIH,QAAQC,KAAK,GAAGlrB,KAAKX,wBAGzB,OAAIurB,GAAiBO,EACVnrB,KAAKkpB,aAAawC,gBAAgBvnB,KAAK,QAE3CvD,QAAQC,SACnB,CAEQ,sBAAA8qB,CAAuB3sB,GAC3B,OAAQA,GACJ,IAAK,UACD,MAAO,SACX,IAAK,UACD,MAAO,UACX,IAAK,SACD,MAAO,SAEX,QACI,MAAO,SAEnB,CAEA,UAAAurB,CAAWxjB,GACP,MAAMvD,EAA2B,GACjC,IAAA,MAAWrD,KAAS4G,GAAU,GAAI,CAC9B,MAAME,GAAI,IAAI2kB,EAASC,OAClB7sB,KAAKgB,KAAK2rB,uBAAuBxrB,EAAMnB,OACvCK,GAAGc,EAAMd,IACT2B,MAAMb,EAAMd,IAEjB,GACS,YADDc,EAAMnB,KAENiI,EAAE1H,SAASS,KAAKuqB,WAAWpqB,EAAMZ,WAMzCiE,EAAO1B,KAAKmF,EAChB,CACA,OAAOzD,CACX,CAEA,QAAA6nB,CAAStkB,EAA0BjH,GAE/B,OADqCtB,EAAQsB,GAAQA,EAAO,CAACA,IAChDrB,IAAKS,IACd,MAAMsE,EAAS,GACf,IAAA,MAAWrD,KAAS4G,EACK,WAAjB5G,EAAMnB,OACNwE,EAAO1B,KAAK9B,KAAKqrB,SAASlrB,EAAMZ,WAAgCL,EAAIiB,EAAMd,MAAM+f,KAAOlgB,EAAIiB,EAAMd,QAEjGmE,EAAO1B,KAAK5C,EAAIiB,EAAMa,UAG9B,OAAOwC,GAEf,CAEA,IAAAvB,GACI,MAAM6pB,EAAW,GACjB,GAAI9rB,KAAK+rB,6BAA8B,CACnC,MAAMC,EAAqBhsB,KAAK2qB,sBAC1BsB,EAAmBjsB,KAAKuJ,IAAI6H,QAAQ4a,GACtCC,GACAH,EAAShqB,KAAKmqB,EAAiBrU,gBAAgB3V,OAEvD,CAEA,MAAMwV,EAAWzX,KAAKyX,WAMtB,OALAA,EAASpX,eAAeL,KAAKipB,gBAC7B6C,EAAShqB,KAAK2V,EAAS9W,cAAcwD,KAAK,IAC/BsT,EAASxV,SAGbrB,QAAQ0K,IAAIwgB,EACvB,CAEA,OAAA5hB,GAII,OAHIlK,KAAKkpB,aAAagD,eAClBlsB,KAAKkpB,aAAagD,gBAEflsB,KAAKiC,OAAOkC,KAAK,KAChBnE,KAAKkpB,aAAaiD,gBAClBnsB,KAAKkpB,aAAaiD,iBAEfnsB,KAAKqqB,eAEpB,CAGA,KAAA+B,CAAMltB,EAAUmtB,EAAavV,EAAcrW,GAC3C,CAEA,YAAA6rB,CAAaptB,EAAUmtB,EAAavV,GACpC,GA3O2CrX,EAAAupB,GAAA,iBAAxC,IAAMuD,GAANvD,GA6OPuD,GAAcvpB,UAAUC,QAAU,iBAqBlCspB,GAAcvpB,UAAUwpB,aAAa,QAAS,eAC9CD,GAAcvpB,UAAUwpB,aAAa,cAAe,eACpDD,GAAcvpB,UAAU2C,QAAQ,aAAc+S,EAAK+T,cAAc,GAAI,MAAO,OAAQ/T,EAAK+T,eACzFF,GAAcvpB,UAAU2C,QAAQ,YAAa,QAAS,MAAO,OAAQyiB,IACrEmE,GAAcvpB,UAAU2C,QAAQ,sBAAuB,KAAM,MAAO,yCAA0C,WAAiC,OAAO3F,KAAKwQ,kBAAoB,EAAG,CAAE1I,UAAU,IAC9LykB,GAAcvpB,UAAU2C,QAAQ,WAAY,KAAM,SAAU,gBAAY,EAAW,CAAEie,QAAQ,EAAOhe,UAAU,IAC9G2mB,GAAcvpB,UAAU2C,QAAQ,aAAc,GAAI,SAAU,UAE5D4mB,GAAcvpB,UAAUomB,gBAAkBmD,GAAcvpB,UAAU0pB,WAClEH,GAAcvpB,UAAU0pB,WAAa,SAA+BpsB,GAChE,MAAMwN,EAAO9N,KAAK2sB,YACZnpB,EAAS+oB,GAAcvpB,UAAUomB,gBAAgBvjB,MAAM7F,KAAMO,WAInE,YAHU,IAAND,GAAmBwN,IAASxN,GAC5BN,KAAKkpB,aAAa0D,OAAO,MAEtBppB,CACX,EAEA+oB,GAAcvpB,UAAUqmB,eAAiBkD,GAAcvpB,UAAU6nB,UACjE0B,GAAcvpB,UAAU6nB,UAAY,SAA+BvqB,EAAIusB,QACzD,IAANvsB,IAA6C,IAA1B8nB,GAAW7mB,QAAQjB,KACtCA,EAAI,SAER,MAAMkD,EAAS+oB,GAAcvpB,UAAUqmB,eAAeyD,KAAK9sB,KAAMM,GACjE,QAAU,IAANA,IACAN,KAAKmpB,cACD0D,GAAO,CACP,MAAM1I,EAASnkB,KAAKkpB,aAAa/E,SACjC,IAAA,MAAW1B,KAAQoK,EACa,mBAAjB1I,EAAO1B,IACd0B,EAAO1B,GAAMoK,EAAMpK,GAG/B,CAEJ,OAAOjf,CACX,EAEA+oB,GAAcvpB,UAAUsmB,gBAAkBiD,GAAcvpB,UAAUkmB,WAClEqD,GAAcvpB,UAAUkmB,WAAa,SAA+B5oB,GAChE,MAAMkD,EAAS+oB,GAAcvpB,UAAUsmB,gBAAgBzjB,MAAM7F,KAAMO,WACnE,QAAU,IAAND,EAAiB,CACjBN,KAAK+sB,YACA3H,GAAG,QAAS,CAAClmB,EAAUmtB,EAAavV,EAAcrW,IAAST,KAAKosB,MAAMltB,EAAKmtB,EAAKvV,EAAKrW,IACrF2kB,GAAG,eAAgB,CAAClmB,EAAUmtB,EAAavV,IAAiB9W,KAAKssB,aAAaptB,EAAKmtB,EAAKvV,IAE7F,IAAA,MAAWhY,KAAO6nB,GACd,GAAI3mB,KAAK+sB,YAAY5I,mBAAoBwC,GAAW7nB,GAAM,CACtDkB,KAAKwpB,WAAa1qB,EAClB,KACJ,CAER,CACA,OAAO0E,CACX,ECxWO,MAAMwpB,GAAN,MAAMA,eAAcrtB,EAEvB,WAAAuF,GACI/B,QACAnD,KAAKyE,UAAU,GACnB,CAEA,GAAAwoB,CAAI3sB,GAGA,OAFoBI,EAAQV,KAAKyE,eACd/D,EAAQJ,KAEvBN,KAAKyE,UAAUnE,IACR,EAGf,CAEA,aAAA4sB,CAAcptB,GACV,MAAMqtB,EAAgBntB,KAAKyE,YACrB2oB,EAAyB,GAC/B,IAAA,MAAWC,KAAUF,EACbG,EAAKxtB,EAAM,CAACZ,EAA6BquB,KACzC,IAAA,MAAW5R,KAAU0R,EACjB,GAAIA,EAAO1R,KAAYzc,EAAIyc,GACvB,OAAO,EAGf,OAAO,KAEPyR,EAAatrB,KAAKurB,GAG1B,OAAID,EAAahuB,SAAW+tB,EAAc/tB,SACtCY,KAAKyE,UAAU2oB,IACR,EAGf,GArCmC3tB,EAAAutB,GAAA,SAAhC,IAAMQ,GAANR,GAuCPQ,GAAMxqB,UAAUC,QAAU,SAK1BuqB,GAAMxqB,UAAU2C,QAAQ,YAAa,GAAI,QAAS,SAElD,IAAI8nB,GAAQ,EACL,MAAMC,GAAN,MAAMA,iBAAgB/tB,EAOzB,WAAAuF,CAAoBqE,GAEhB,IADApG,QADgBnD,KAAAuJ,IAAAA,EAGZkkB,KACAztB,KAAKmF,IAAM,KAAKsoB,KACXztB,KAAKuJ,IAAIokB,cAAc3tB,KAAKmF,OAIrC,MAAMyoB,EAAO,IAAIrL,GAAcviB,KAAKuJ,IAAKvJ,KAAKmF,KAC9CnF,KAAKqR,cAAcuc,GACnB5tB,KAAK6tB,eAAiB,IAAItB,GAAcvsB,KAAKuJ,IAAKvJ,KAAKqR,iBAClDhS,GAAG,OAAOouB,MACVrJ,MAAM,WAAWqJ,MAEtBztB,KAAK6tB,eAAe3E,aAAa7pB,GAAG,MAAMouB,MAC1CztB,KAAK4X,cAAc5X,KAAK6tB,gBACxB7tB,KAAK8tB,MAAM,IAAIN,GACnB,CAlBoBjkB,IANZskB,eAERE,mBA0BA,EAAA1uB,CAAGiB,GACC,MAAMkD,EAASL,MAAM9D,GAAGwG,MAAM7F,KAAMO,WAIpC,OAHIA,UAAUnB,QACVY,KAAK6tB,eAAexuB,GAAGiB,GAEpBkD,CACX,CAEA,SAAAqnB,GACI,OAAO7qB,KAAK6tB,eAAehD,WAC/B,CAIA,UAAA3B,CAAW5oB,GACP,OAAKC,UAAUnB,QACfY,KAAK6tB,eAAe3E,WAAW5oB,GACxBN,MAFuBA,KAAK6tB,eAAe3E,YAGtD,CAEA,KAAAQ,GACI,OAAO1pB,KAAK6tB,eAAe3E,aAAa/E,QAC5C,CAIA,QAAA1M,CAASnX,GACL,OAAKC,UAAUnB,QACfY,KAAK6tB,eAAepW,SAASnX,GACtBN,MAFuBA,KAAK6tB,eAAepW,UAGtD,CAEA,QAAAuW,CAASlrB,GAIL,OAHA9C,KAAKqR,gBACAvO,WAAWA,GAET9C,IACX,CAEA,SAAAiB,GACI,MAAMuC,EAASxD,KAAKqR,gBAAgBpQ,YAIpC,OAHIjB,KAAK4X,gBAAgBmU,8BACrBvoB,EAAO1B,KAAK9B,KAAK4X,gBAAgB+S,uBAE9BnnB,CACX,CAEA,SAAAyqB,GACI,OAAOjuB,KAAKqR,eAChB,CAEA,QAAA6c,GACI,OAAOluB,KAAK4X,gBAAgBsR,YAChC,CAEA,UAAAiF,GACI,OAAOnuB,KAAK8tB,OAChB,CAEQM,QAA2B,GACnC,MAAAC,GACI,OAAOruB,KAAKouB,OAChB,CAEA,QAAArtB,GACI,IAAKf,KAAKsuB,aACN,MAAO,GAEXtuB,KAAKouB,QAAU,GACf,MAAMJ,EAAWhuB,KAAKqR,gBACtB,IAAA,MAAWhO,IAAY,IAAI2qB,EAASlrB,aAAc9C,KAAKyX,YACnD,IAAA,MAAW8W,KAASlrB,EAAStC,WACzBf,KAAKouB,QAAQtsB,KAAK,CACd0sB,UAAWxuB,KAAKX,QACbkvB,IAIf,OAAOvuB,KAAKouB,OAChB,CAEQE,cAAe,EACvB,OAAApkB,GACI,MACMukB,EADUzuB,KAAKqR,gBAAgB4H,UAAUX,eAChB7Z,IAAIwI,GAAKA,EAAE8P,2BAE1C,OADA/W,KAAK4X,gBAAgBsR,aAAawF,YAAYD,EAAK/vB,KAAK,OACjDsB,KAAK4X,gBAAgB1N,UAAU/F,KAAK,KACvCnE,KAAKsuB,cAAe,EACpB,MAAMxuB,EAAOE,KAAKqR,gBAAgBjP,UACO,cAArCpC,KAAK4X,gBAAgBiT,YACjB7qB,KAAK8tB,QAAQb,IAAI,IAAIntB,KACrBE,KAAK2uB,mBAGL3uB,KAAK8tB,QAAQZ,cAAcptB,IAC3BE,KAAK2uB,oBAIrB,CAKA,SAAAlqB,CAAUnE,GACN,OAAKC,UAAUnB,QACfY,KAAK8tB,QAAQrpB,UAAUnE,GACvBN,KAAK2uB,mBACE3uB,MAHuBA,KAAK8tB,QAAQrpB,WAI/C,CAGA,gBAAAkqB,GACI,MAAM7C,EAAiC,GACvC,IAAA,MAAW8C,KAAe5uB,KAAKuJ,IAAIslB,WAAW7uB,KAAKX,MAC/CysB,EAAShqB,KAAK8sB,EAAY1kB,WAE9BtJ,QAAQ0K,IAAIwgB,GAAU3nB,KAAK,KACvBnE,KAAKuJ,IAAIulB,gBAAgB9uB,OAEjC,CAEA,OAAA2E,CAAQua,GACJ,OAAOlf,KAAKqR,gBAAgB1M,QAAQua,EACxC,GAzJqCzf,EAAAiuB,GAAA,WAAlC,IAAMqB,GAANrB,GA2JPqB,GAAQ/rB,UAAUC,QAAU,OAW5B8rB,GAAQ/rB,UAAU2C,QAAQ,gBAAiB,KAAM,SAAU,aAC3DopB,GAAQ/rB,UAAU2C,QAAQ,gBAAiB,KAAM,SAAU,iBAC3DopB,GAAQ/rB,UAAU2C,QAAQ,QAAS,KAAM,SAAU,SAEnDopB,GAAQ/rB,UAAU+qB,mBAAqBgB,GAAQ/rB,UAAU4U,cACzDmX,GAAQ/rB,UAAU4U,cAAgB,SAAyBtX,GACvD,MAAMkD,EAASurB,GAAQ/rB,UAAU+qB,mBAAmBloB,MAAM7F,KAAMO,WAiBhE,YAhBU,IAAND,GACAN,KAAKgvB,eACA5J,GAAG,QAAS,CAACpI,EAAyBqP,EAAavV,EAAcrW,KAC9D,GAAIA,GAAQA,EAAKgE,UACbzE,KAAKyE,UAAUqS,EAAMrW,EAAKgE,UAAUhG,IAAIgP,GAAKA,EAAEwhB,UAAYxhB,GAAK,QAC7D,CACH,MAAMvO,EAAaV,EAAQwe,GAAQA,EAAO,CAACA,GAC3Chd,KAAKyE,UAAUqS,EAAM5X,EAAIT,IAAIgP,GAAKA,EAAEwhB,UAAYxhB,GAAK,GACzD,IAEH2X,GAAG,eAAgB,CAACpI,EAAyBqP,EAAavV,KACvD,MAAM5X,EAAaV,EAAQwe,GAAQA,EAAO,CAACA,GAC3Chd,KAAKyE,UAAUqS,EAAM5X,EAAIT,IAAIgP,GAAKA,EAAEwhB,UAAYxhB,GAAK,MAI1DjK,CACX,EAWO,MAAM0rB,GAAN,MAAMA,0BAAyBvvB,EAE1BwvB,aAEAC,aAAoC,CAAClmB,IACrCmmB,UAAuB,GAE/B,WAAAnqB,GACI/B,QACAnD,KAAKsvB,QACLtvB,KAAKmvB,aAAe,IAAIJ,GAAQ/uB,KACpC,CAEA,KAAAsvB,CAAMC,GACFvvB,KAAKovB,kBAAuB,IAARG,EAAoB,CAACrmB,IAAiBlJ,KAAKovB,aAC/DpvB,KAAKqvB,eAAoB,IAARE,EAAoB,GAAKvvB,KAAKqvB,UAAUnvB,OAAOsvB,GAAKA,EAAEnwB,OAASkwB,EACpF,CAEQE,UAGR,QAAAljB,CAASjM,GACL,OAAKC,UAAUnB,QACfY,KAAKyvB,UAAYnvB,EACVN,MAFuBA,KAAKyvB,SAGvC,CAIA,WAAAja,CAAYlV,GACR,OAAKC,UAAUnB,QACfY,KAAKovB,aAAe9uB,EACbN,MAFuBA,KAAKovB,YAGvC,CAEA,UAAA7pB,CAAWlG,GACP,OAAOW,KAAKovB,aAAalvB,OAAOqV,GAAMA,EAAGlW,OAASA,GAAI,EAC1D,CAEA,gBAAAqwB,CAAiBna,GAEb,OADAvV,KAAKovB,aAAattB,KAAKyT,GAChBvV,IACX,CAEA,gBAAA2vB,CAAiBpa,GAEb,OADAvV,KAAKovB,aAAepvB,KAAKovB,aAAalvB,OAAOhB,GAAOA,IAAQqW,GACrDvV,IACX,CAEA,QAAA4vB,GACI,MAAO,IAAI5vB,KAAKqvB,UACpB,CAEA,OAAAje,CAAQnJ,GACJ,IAAIzE,EAQJ,OANIA,EADa,iBAANyE,EACEjI,KAAKqvB,UAAUnvB,UAAc2vB,EAAIxwB,OAAS4I,GAC5CA,aAAaye,GACX1mB,KAAKqvB,UAAUnvB,UAAY4vB,EAAE5G,eAAiBjhB,GAE9CjI,KAAKqvB,UAAUnvB,UAAY4vB,EAAE5B,aAAejmB,GAErDzE,EAAOpE,OACAoE,EAAO,GAEXxD,KAAKmvB,YAChB,CAEA,aAAAxB,CAAc1lB,GACV,OAAOjI,KAAKoR,QAAQnJ,KAAOjI,KAAKmvB,YACpC,CAEA,UAAAle,GACI,OAAOjR,KAAKqvB,UAAU5wB,IAAIoxB,GAAOA,EAAIxwB,KACzC,CAEA,MAAA0wB,CAAO3e,GAEH,OADApR,KAAKqvB,UAAUvtB,KAAKsP,GACbpR,IACX,CAEA,UAAA6uB,CAAWmB,GACP,OAAOhwB,KAAKqvB,UAAUnvB,OAAO+vB,GACPA,EAAShvB,YACVM,QAAQyuB,IAAW,EAE5C,CAEA,KAAAE,GACI,OAAOlwB,KAAKqvB,UAAU5wB,IAAIoxB,GAAOA,EAAIxe,gBACzC,CAEA,IAAAuc,CAAKvuB,GACD,OAAOW,KAAKkwB,QAAQhwB,OAAO0tB,GAAQA,EAAKvuB,OAASA,GAAI,EACzD,CAEA,gBAAA8wB,CAAiBC,GACb,MAAMC,EAAM,CAAA,EAgBZ,OAfAD,EAAKE,aAAaC,QAAQ9xB,IAAK+xB,IAC3B,MAAMC,IAAkBD,EAAEF,aAAanM,OAAOmM,aAAa5G,MACrDgH,EAAQF,EACRG,EAASH,EAAEF,aAAanM,OACxByM,EAAUH,EAAgBD,EAAEF,aAAanM,OAAOmM,aAAa5G,MAAQ8G,EAAEF,aAAanM,OAAOmM,aAAanM,OACxGhf,EAAMqrB,EAAEF,aAAanM,OAAO0M,KAAOL,EAAEF,aAAanM,OAAO0M,KAAOL,EAAEF,aAAanM,OAAOmM,aAAanM,OAAO0M,KAChHR,EAAIlrB,GAAO,CACP9F,GAAI8F,EACJ2rB,QAASF,EAAQG,QAAQ/gB,MAAM,KAAK,GACpCghB,OAAQJ,EAAQG,QAAQ/gB,MAAM,KAAK,GACnCvJ,KAAMwqB,EAAYP,EAAO,CAAC,QAAS,SAAU,WAC7CQ,MAAOD,EAAYN,EAAQ,CAAC,QAAS,SAAU,WAC/CxM,OAAQ8M,EAAYL,EAAS,CAAC,cAG/BP,EACP,SAASY,EAAYE,EAAIC,GACrB,MAAMf,EAAM,CAAA,EAIZ,OAHAzxB,OAAOC,KAAKsyB,EAAGb,cACVpwB,OAAOswB,QAAKY,EAAa7vB,QAAQivB,IACjCppB,WAAaipB,EAAIG,GAAKW,EAAGb,aAAaE,IACpCH,CACX,CACJ,CAEA,QAAAtvB,GACI,IAAIyC,EAA0B,GAI9B,OAHAxD,KAAKqvB,UAAUjoB,QAAQiqB,IACnB7tB,EAASA,EAAOM,OAAOutB,EAAKtwB,cAEzByC,CACX,CAEA,OAAA0G,GACI,OAAOtJ,QAAQ0K,IAAItL,KAAK4vB,WAAWnxB,IAAI2S,GAAWA,EAAQlH,YAAY/F,KAAK,IAChEnE,KAEf,CAGA,eAAA8uB,CAAgBe,GAChB,GA3I8CpwB,EAAAyvB,GAAA,oBAA3C,IAAMoC,GAANpC,GCpQP,SAASqC,GAAa3mB,GACpB,IAAKA,EAAS4mB,GAAI,MAAM,IAAIrnB,MAAMS,EAAS6mB,OAAS,IAAM7mB,EAAS8mB,YACnE,OAAO9mB,EAASoL,MAClB,CAEe,SAAA2b,GAAS5H,EAAO6H,GAC7B,OAAO7tB,MAAMgmB,EAAO6H,GAAMztB,KAAKotB,GACjC,CD0YAD,GAAiBtuB,UAAUC,QAAU,8BASrCquB,GAAiBtuB,UAAU2C,QAAQ,UAAW,GAAI,SAAU,qBAC5D2rB,GAAiBtuB,UAAU2C,QAAQ,aAAc,IAAK,SAAU,eC3ZvDlG,EAAA8xB,GAAA,gBAKM9xB,EAAAkyB,GAAA,UCAR,MAAME,GAAN,MAAMA,sBAAqBC,EACpBvoB,IACAwoB,QAA2B,GAC3BC,UAKN,CAAA,EAEJ,WAAAC,GAGI,OAFKjyB,KAAK+xB,UAAS/xB,KAAK+xB,QAAU,IAC7B/xB,KAAKgyB,YAAWhyB,KAAKgyB,UAAY,CAAA,GAC/BhyB,KAAK+xB,OAChB,CAEA,gBAAAG,GACI,OAAOlyB,KAAKiyB,cAAcxzB,IAAI6T,GAAKA,EAAE6R,SACzC,CAEA,QAAAgO,CAAS3M,GACL,MAAM6L,EAAOrxB,KAAKuJ,IAAI6H,QAAQoU,GACxB4M,EAAapyB,KAAKoR,UAAU8U,OAC5BmM,EAAK,IAAIxN,GAAc7kB,KAAMqxB,GAC9BzE,OAAOwF,GACPjO,OAAOqB,GACP8M,iBAAiBtyB,KAAKX,MACtBkzB,KAAK,CACF5M,MAAOH,EAAGI,WACVC,OAAQL,EAAGO,cAEnB/lB,KAAK+xB,QAAQjwB,KAAKuwB,GAClBryB,KAAKgyB,UAAUxM,EAAGnmB,MAAQ,CACtB6xB,MAAOmB,EACPG,cAAehN,EAAG7gB,QAAStF,IACvB,OAAQA,GACJ,IAAK,WACL,IAAK,YACDgzB,EACKvM,OAAO,CAAEH,MAAOH,EAAGI,WAAYC,OAAQL,EAAGO,cAC1CnC,aAMrB5jB,KAAKuJ,IAAIslB,WAAWwC,EAAKhyB,MAAM+H,QAAQqrB,IACnCA,EAAU7a,gBAAgBsR,aAAalD,MAAMqM,IAErD,CAEA,WAAAK,CAAYlN,GACR,MAAM6L,EAAOrxB,KAAKuJ,IAAI6H,QAAQoU,GAC9BxlB,KAAKuJ,IAAIslB,WAAWwC,EAAKhyB,MAAM+H,QAAQqrB,IACnCA,EAAU7a,gBAAgBsR,aAAalD,MAAM,QAEjDhmB,KAAKgyB,UAAUxM,EAAGnmB,MAAM6xB,MAAMtE,OAAO,MACrC5sB,KAAKgyB,UAAUxM,EAAGnmB,MAAMmzB,cAAc9tB,SACtC8gB,EAAGoH,OAAO,aACH5sB,KAAKgyB,UAAUxM,EAAGnmB,MACzBW,KAAK+xB,QAAU/xB,KAAK+xB,QAAQ7xB,UAAYoS,EAAE6R,WAAaqB,EAC3D,CAEA,UAAAmN,GACI,MAAMC,EAAa5yB,KAAKkyB,mBAClBW,EAAaxgB,EAAQugB,EAAY5yB,KAAKuJ,IAAIqmB,WAC3C1vB,OAAO0I,GAAwC,WAAnCA,EAAEgP,gBAAgB8U,cAC9BjuB,IAAK4yB,GAAcA,EAAKzZ,gBAAgBsR,eAG7C,IAAA,MAAWjhB,KAAK4qB,EAAWlO,KACvB3kB,KAAK0yB,YAAYzqB,GAGrB,IAAA,MAAWA,KAAK4qB,EAAWngB,MACvB1S,KAAKmyB,SAASlqB,GAGlB,OAAOjI,IACX,CAEA,aAAA6jB,GACA,GAlFoEpkB,EAAAoyB,GAAA,gBAAjE,IAAMiB,GAANjB,GCGA,MAAMkB,GAAN,MAAMA,4BAA2BC,GAEpC,WAAA9tB,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,CAGpB,CAHoBA,IAKpB,QAAA0pB,CAAS7hB,GACL,OAAIpR,KAAKkzB,iBACE9hB,EAAQwG,gBAAgBwM,MAAQhT,EAAQwG,gBAAgBwM,QAAUhT,EAAQwG,gBAAgBvY,KAE9F+R,EAAQ/R,IACnB,CAEA,YAAA8zB,CAAaC,EAAmBrT,EAAiBsT,GAC7C,IAAIC,EAAUF,EAAGhP,MAAMmP,UAAUvjB,MAAM,KACnCqjB,GAAWC,EAAQ/xB,QAAQwe,GAAW,EACtCuT,EAAQxxB,KAAKie,IACLsT,GAAWC,EAAQ/xB,QAAQwe,GAAW,IAC9CuT,EAAUA,EAAQpzB,OAAOszB,GAAKA,IAAMzT,IAExCqT,EAAGhP,MAAMmP,UAAYD,EAAQ50B,KAAK,IACtC,CAEA,WAAA+0B,CAAYxrB,GACR,MAAMmrB,EAAoBpzB,KAAK0zB,iBAAiBzrB,GAC1CmJ,EAAmBpR,KAAKuJ,IAAI6H,QAAQnJ,GACpComB,EAASjd,EAAQrQ,WACvBqyB,EAAGhP,MAAMpjB,MAAQhB,KAAKizB,SAAS7hB,GAC/BpR,KAAKmzB,aAAaC,EAAI,QAAS/E,EAAOjvB,OAAS,GAC/Cg0B,EAAGhP,MAAMuP,QAAUtF,EAAO5vB,OAAW,GAAGm1B,EAAIlwB,YAAYkwB,EAAItjB,OAAO5R,KAAK,KAC5E,CAEA,QAAAm1B,CAASziB,GACL,MAAMgiB,EAAKpzB,KAAK0zB,iBAAiBtiB,EAAQwG,gBAAgBsR,cACrDkK,GACAA,EAAGS,UAEX,CAEA,WAAAC,CAAY7rB,GACR,GAAIA,EAAE8rB,mBAAqB9rB,EAAE+rB,mBAAoB,CAC7C,MAAMZ,EAAKpzB,KAAK0zB,iBAAiBzrB,GAKjC,OAJAgsB,EAASb,EAAGlN,MACPlC,MAAM,YAAa,GAAG/b,EAAE2d,gBACxB5B,MAAM,aAAc,GAAG/b,EAAE8d,kBAEvB,CACX,CACA,OAAO,CACX,CAEA,WAAAmO,GACI,MAAMC,EAAcn0B,KAAKo0B,UACnBC,EAAchiB,EAAQ8hB,EAAan0B,KAAKuJ,IAAIqmB,WAAW1vB,OAAO0I,GAAwC,WAAnCA,EAAEgP,gBAAgB8U,cAA2BjuB,IAAIoxB,GAAOA,EAAIjY,gBAAgBsR,eAErJ,IAAIoL,GAAQ,EACZ,IAAA,MAAWrsB,KAAKosB,EAAY1P,KACxB3kB,KAAKu0B,aAAatsB,GAGtB,IAAA,MAAWA,KAAKosB,EAAY3hB,MAAO,CAC/B,MAAMtB,EAAmBpR,KAAKuJ,IAAI6H,QAAQnJ,GAC1CjI,KAAKw0B,UAAUvsB,EAAGjI,KAAKizB,SAAS7hB,GAAU,oBAAgB,EAAWpR,KAAKkzB,sBAAmB,EAAYlzB,MACzGs0B,EAAQt0B,KAAK8zB,YAAY7rB,IAAMqsB,CACnC,CAEA,IAAA,MAAWrsB,KAAKosB,EAAY3xB,OACxB1C,KAAKyzB,YAAYxrB,GACjBqsB,EAAQt0B,KAAK8zB,YAAY7rB,IAAMqsB,EAOnC,OAJIA,GACAt0B,KAAKs0B,QAGFt0B,IACX,CAGA,eAAAy0B,CAAgBxsB,EAAWmrB,GACvBjwB,MAAMsxB,gBAAgBxsB,EAAGmrB,GACzBpzB,KAAK6jB,cAAc7jB,KAAKuJ,IAAI6H,QAAQnJ,IACpC,IAAA,MAAWysB,KAAO10B,KAAK20B,iBACfD,IAAQtB,GACRsB,EAAIE,SAAS,UACb50B,KAAKmzB,aAAauB,EAAK,UAAU,GACjCA,EAAItQ,MAAMyQ,UAAY,WAEtBH,EAAII,YAAY,UAChB90B,KAAKmzB,aAAauB,EAAK,UAAU,GACjCA,EAAItQ,MAAMyQ,UAAY,GAGlC,CAEA,aAAAhR,CAAcgM,GACd,CAGA,QAAAkF,CAAS9sB,EAAWmrB,GAChB,MAAM/zB,EAAKW,KAAKuJ,IAAI6H,QAAQnJ,GAAG5I,KACzBmE,EAASwxB,OAAOC,QAAQ,kBAAkB51B,OAMhD,OALImE,IACAxD,KAAKuJ,IAAI+lB,MAAMjwB,GACfW,KAAKk0B,cACLl0B,KAAK6jB,mBAAc,IAEhBrgB,CACX,CAEA,UAAAmvB,GAAe,GA/GyElzB,EAAAszB,GAAA,sBAArF,IAAMmC,GAANnC,GAiHPmC,GAAmBlyB,UAAUC,QAAU,iCACvCiyB,GAAmBlyB,UAAUmyB,MAAMrC,ICjH5B,MAAMsC,GAAN,MAAMA,uBAAsBC,GAE/B,WAAAnwB,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAGhBvJ,KAAKs1B,YAAW,GAChBt1B,KAAKu1B,eAAe,KACpBv1B,KAAKw1B,mBAAmB,EAC5B,CANoBjsB,IADZksB,aAAe,GAQvB,UAAAC,CAAW5P,EAAQ6P,EAA6B,EAAGC,GAAqB,GACpEzyB,MAAMuyB,WAAW5P,EAAQ6P,EAAoBC,GAC7C51B,KAAKy1B,aAAez1B,KAAKuwB,UAAU9xB,IAAIo3B,IAC5B,CACHx2B,GAAIw2B,EAAW1R,SAAS9kB,KACxB4kB,SAAU,CACN4R,EAAWC,UACXD,EAAWE,UACXF,EAAWG,cACXH,EAAWI,iBAI3B,CACA,SAAAC,CAAU51B,GACN,GAAIA,EACA,GAAKA,EAAU61B,KAAM,CACjB,MAAMC,EAAkBC,EAAY/1B,EAAG,GAAI,IAC3CN,KAAKy1B,aAAeW,CACxB,MAAW91B,aAAa/B,QACpByB,KAAKy1B,aAAen1B,GAG5B,OAAON,KAEP,SAASq2B,EAAYC,EAAc5Z,EAAM6Z,GACrC,MAAMlG,EAAM,GAEZ,OADAmG,EAAKF,EAAaH,KAAM,EAAG,EAAGzZ,EAAM6Z,GAC7BlG,EACP,SAASmG,EAAKC,EAAG/R,EAAGF,EAAGvc,EAAGyuB,GAClBD,EAAEl3B,SACa,eAAXk3B,EAAEz3B,KACoB,eAAlBy3B,EAAEE,YACFF,EAAEl3B,SAAS6H,QAAQ,CAAC4X,EAAO7T,KACvB,MAAMyrB,EAAKH,EAAEI,MAAM1rB,GAAKlD,EAClB6uB,EAAKJ,EACLK,EAAW,IAAN5rB,EAAUuZ,EAAIA,EAAI+R,EAAEI,MAAM,GAAK5uB,EACpC+uB,EAAKxS,EACXgS,EAAKC,EAAEl3B,SAAS4L,GAAI4rB,EAAIC,EAAIJ,EAAIE,KAEX,aAAlBL,EAAEE,YACTF,EAAEl3B,SAAS6H,QAAQ,CAAC4X,EAAO7T,KACvB,MAAMyrB,EAAK3uB,EACL6uB,EAAKL,EAAEI,MAAM1rB,GAAKurB,EAClBK,EAAKrS,EACLsS,EAAW,IAAN7rB,EAAUqZ,EAAIA,EAAIiS,EAAEI,MAAM,GAAKH,EAC1CF,EAAKC,EAAEl3B,SAAS4L,GAAI4rB,EAAIC,EAAIJ,EAAIE,KAGpC7L,QAAQsD,MAAM,OAEA,aAAXkI,EAAEz3B,MACTy3B,EAAEl3B,SAAS6H,QAAQ,CAAC4X,EAAO7T,KACvB,MAAMyrB,EAAK3uB,EACL6uB,EAAKL,EAAEI,MAAM1rB,GAAKurB,EAClBK,EAAKrS,EACLsS,EAAW,IAAN7rB,EAAUqZ,EAAIA,EAAIiS,EAAEI,MAAM,GAAKH,EAC1CF,EAAKC,EAAEl3B,SAAS4L,GAAI4rB,EAAIC,EAAIJ,EAAIE,KAIxCzG,EAAIvuB,KAAK,CAAC4iB,EAAGF,EAAGvc,EAAGyuB,GAAGj4B,IAAI2M,KAAK6rB,OAEvC,CACJ,CACJ,CACA,MAAAC,GACI,OAAOl3B,KAAKy1B,YAChB,CACA,OAAArB,GACI,OAAOp0B,KAAKuwB,UAAU9xB,IAAI+0B,GAAKA,EAAErP,SACrC,CACA,cAAA+O,GACI,OAAO,CACX,CACA,gBAAAQ,GACA,CAEA,QAAAT,CAAS7hB,GACL,OAAIpR,KAAKkzB,iBACE9hB,EAAQwG,gBAAgBwM,MAAQhT,EAAQwG,gBAAgBwM,QAAUhT,EAAQwG,gBAAgBvY,KAE9F+R,EAAQ/R,IACnB,CAEA,WAAAo0B,CAAYxrB,GACR,MAAMxB,EAAazG,KAAKm3B,cAAclvB,EAAE5I,MAClC+R,EAAmBpR,KAAKuJ,IAAI6H,QAAQnJ,GACpCgrB,EAAWjzB,KAAKizB,SAAS7hB,GAC9B3K,EAAK0d,SACDC,MAAM6O,EAEf,CAEA,QAAAY,CAASziB,GACT,CAEA,YAAAmjB,CAAatsB,GACT,MAAMxB,EAAOzG,KAAKm3B,cAAclvB,EAAE5I,MAClCW,KAAKo3B,aAAa3wB,EACtB,CAEA,WAAAqtB,CAAY7rB,GACR,GAAIA,EAAE8rB,mBAAqB9rB,EAAE+rB,mBAAoB,CAM7C,OALmBh0B,KAAKm3B,cAAclvB,EAAE5I,MACnC+R,UACA4S,MAAM,YAAa,GAAG/b,EAAE2d,gBACxB5B,MAAM,aAAc,GAAG/b,EAAE8d,kBAEvB,CACX,CACA,OAAO,CACX,CAEA,WAAAmO,GACI,MAAMC,EAAcn0B,KAAKo0B,UACnBC,EAAchiB,EAAQ8hB,EAAan0B,KAAKuJ,IAAIqmB,WAAW1vB,OAAO0I,GAAwC,WAAnCA,EAAEgP,gBAAgB8U,cAA2BjuB,IAAIoxB,GAAOA,EAAIjY,gBAAgBsR,eAErJ,IAAA,MAAWjhB,KAAKosB,EAAY1P,KACxB3kB,KAAKu0B,aAAatsB,GAItB,MAAMovB,EAAkB,GACxB,IAAA,MAAWlT,KAAUkQ,EAAY3hB,MAAO,CACpC,MAAMtB,EAAmBpR,KAAKuJ,IAAI6H,QAAQ+S,GACpChZ,EAAInL,KAAKuwB,UAAUnxB,OACzB,GAAIY,KAAKy1B,cAAgBz1B,KAAKy1B,aAAatqB,GAAI,CAC3C,MAAM+rB,EAAUl3B,KAAKy1B,aAAqBnI,QAAUkD,EAAEnxB,KAAO8kB,EAAO9kB,MACpE,GAAI63B,EAAQ,CACR,MAAOxS,EAAGF,EAAGvc,EAAGyuB,GAAKQ,EAAOjT,SAC5BjkB,KAAKs3B,WAAW9S,EAAGE,EAAGtT,EAAQwG,gBAAgBsR,aAAc,GAAIwN,EAAGzuB,EAGvE,MACIovB,EAAgBv1B,KAAKsP,EAAQwG,gBAAgBsR,aAErD,MACImO,EAAgBv1B,KAAKsP,EAAQwG,gBAAgBsR,aAErD,CACA,IAAIqO,EAAUv3B,KAAKuwB,UAAUiH,OAAO,CAAC1pB,EAAM2pB,IAASrsB,KAAK0O,IAAIhM,EAAM2pB,EAAK1B,UAAY0B,EAAKxB,eAAgB,GACzGoB,EAAgBjwB,QAAQoe,IACpBxlB,KAAKs3B,WAAWC,EAAS,EAAG/R,EAAI,GAAI,EAAG,GACvC+R,GAAW,IAEf,IAAA,MAAWtvB,KAAKosB,EAAY3xB,OACxB1C,KAAKyzB,YAAYxrB,GAErB,OAAOjI,IACX,CAGA,eAAAy0B,CAAgBxsB,EAAWmrB,GACvBpzB,KAAK6jB,cAAc7jB,KAAKuJ,IAAI6H,QAAQnJ,GACxC,CAEA,mBAAAyvB,GACIv0B,MAAMu0B,sBACN,MAAM/T,EAAW3jB,KAAK23B,cAAcC,MAChCjU,EAASvkB,OAAS,GAClBY,KAAKy0B,gBAAgB9Q,EAAS,GAAGQ,OAAOA,SAEhD,CAEA,aAAAN,CAAcgM,GACd,CAGA,QAAAkF,CAAS9sB,EAAWmrB,GAChB,MAAM/zB,EAAKW,KAAKuJ,IAAI6H,QAAQnJ,GAAG5I,KACzBmE,EAASwxB,OAAOC,QAAQ,kBAAkB51B,OAMhD,OALImE,IACAxD,KAAKuJ,IAAI+lB,MAAMjwB,GACfW,KAAKk0B,cACLl0B,KAAK6jB,mBAAc,IAEhBrgB,CACX,CAEA,UAAAmvB,GAAe,GA7L2ElzB,EAAA21B,GAAA,iBAAvF,IAAMyC,GAANzC,GA+LPyC,GAAc70B,UAAUC,QAAU,4BAClC40B,GAAc70B,UAAUmyB,MAAMrC,ICpL9B,MAAMgF,GAASC,EAAa,uBAKtBC,GAAN,MAAMA,sBACMC,SAER,WAAA/yB,GACA,CAEA,KAAAoqB,GACItvB,KAAKi4B,SAAW,CAAA,CACpB,CAEA,EAAA54B,CAAG64B,GACC,OAAIA,aAAepsB,GACR,GAAGosB,EAAInsB,SAASmsB,EAAIlsB,SACpBksB,aAAe9jB,GACf,GAAG8jB,EAAInsB,SAASmsB,EAAIjlB,cAAcilB,EAAIhlB,YACtCglB,aAAe3oB,GACf,GAAG2oB,EAAInsB,SAASmsB,EAAIzpB,WAExBypB,EAAI74B,IACf,CAEA,UAAA84B,CAAWD,GACP,OAAOl4B,KAAKi4B,SAASj4B,KAAKX,GAAG64B,IAAM3iB,GAAGlW,IAC1C,CAEA,SAAA+4B,CAAUC,GACN,OAAIA,aAAiBxqB,GACV7N,KAAKm4B,WAAWE,EAAM9yB,aAAa4G,MACnCksB,aAAiBtjB,IAEjBsjB,aAAiBjjB,IAEjBijB,aAAiBzlB,GAHjB5S,KAAKm4B,WAAWE,EAAM9yB,aAAaoK,gBAG9C,CAGJ,CAEA,MAAAogB,CAAOuI,GACH,MAAMC,EAA6BD,aAAeriB,GAAWqiB,EAAI/yB,aAAe+yB,EAC1EE,EAAqBF,aAAeriB,GAAWqiB,EAAI1iB,qBAAkB,EACrE6iB,EAAQF,EAAQl5B,KAChBkW,EAAqBgjB,aAAmB9rB,GAAW8rB,EAAQpsB,KAAOosB,aAAmBjkB,IAAkCikB,aAAmBroB,GAAvCqoB,EAAQ5oB,UAAgE4oB,EAC3KG,EAAO14B,KAAKX,GAAGkW,GAChBvV,KAAKi4B,SAASS,KACf14B,KAAKi4B,SAASS,GAAQ,CAClBnjB,KACAnL,OAAQ,CAAA,IAGXpK,KAAKi4B,SAASS,GAAMtuB,OAAOquB,KAC5Bz4B,KAAKi4B,SAASS,GAAMtuB,OAAOquB,GAAS,CAChCF,UACAC,OAGZ,CAEA,MAAAG,GACI,MAAMn1B,EAAgC,GACtC,IAAA,MAAW1E,KAAOkB,KAAKi4B,SAAU,CAC7B,MAAM5xB,EAAMrG,KAAKi4B,SAASn5B,GAAKyW,GAAG9P,QAGlC,GAAiB,UAAbY,EAAIrH,MAAiC,UAAbqH,EAAIrH,MAAiC,SAAbqH,EAAIrH,KAAiB,CACrE,MAAM2P,EAA6C,CAAA,EACnD,IAAA,MAAWiqB,KAAQ54B,KAAKi4B,SAASn5B,GAAKsL,OAAQ,CAC1C,MAAMyuB,EAAO74B,KAAKi4B,SAASn5B,GAAKsL,OAAOwuB,GAAML,QAAQ9yB,QAC/C9D,EAAyB,CAC3BgN,OAAQ,CAAA,EACR9M,QAAS,CAAA,GAEb7B,KAAKi4B,SAASn5B,GAAKsL,OAAOwuB,GAAMJ,IAAIx2B,iBAAiBL,GACrD,IAAA,MAAWm3B,KAAen3B,EAAKgN,OAC3BhN,EAAKgN,OAAOmqB,GAAa1xB,QAAQ3F,IAC7BkN,EAAOlN,GAAYo3B,EAAalqB,OAAOzO,UAAchB,EAAIG,KAAOoC,GAAS,IAGrF,CACA4E,EAAIsI,OAAS,GACb,IAAA,MAAW7P,KAAO6P,EACdtI,EAAIsI,OAAO7M,KAAK6M,EAAO7P,GAE/B,CAGA,GAAiB,aAAbuH,EAAIrH,MAAoC,UAAbqH,EAAIrH,MAAiC,UAAbqH,EAAIrH,MAAiC,SAAbqH,EAAIrH,KAAiB,CAChG,MAAM6C,EAA+C,CAAA,EACrD,IAAA,MAAW+2B,KAAQ54B,KAAKi4B,SAASn5B,GAAKsL,OAAQ,CAC1C,MAAMyuB,EAAO74B,KAAKi4B,SAASn5B,GAAKsL,OAAOwuB,GAAML,QAAQ9yB,QACrD,GAAkB,aAAdozB,EAAK75B,MAAqC,UAAd65B,EAAK75B,MAAkC,UAAd65B,EAAK75B,MAAkC,SAAd65B,EAAK75B,KACnF,IAAA,MAAW+5B,KAAYF,EAAKh3B,QACxBA,EAAQk3B,GAAYF,EAAKh3B,QAAQk3B,EAG7C,CACA1yB,EAAIxE,QAAU,CAAA,EACd,IAAA,MAAW/C,KAAO+C,EACdwE,EAAIxE,QAAQ/C,GAAO+C,EAAQ/C,EAEnC,CACA0E,EAAO1B,KAAKuE,EAChB,CACA,OAAO7C,CACX,GAvGuB/D,EAAAu4B,GAAA,wBAA3B,IAAMgB,GAANhB,GA0GO,MAAMiB,GAAN,MAAMA,YACDC,WACA3vB,IACA4vB,cAAsC,IAAIH,GAC1CI,aAAkE,CAAA,EAE1E,WAAAl0B,CAAYm0B,GACRr5B,KAAKk5B,WAAaG,EAClBr5B,KAAKuJ,IAAMvJ,KAAKk5B,WAAWjsB,kBAC/B,CAEA,gBAAAqsB,GACI,IAAA,MAAWzJ,KAAO7vB,KAAKuJ,IAAIqmB,WACvB5vB,KAAKm5B,cAAcpJ,OAAOF,EAAIxe,gBAAgB9L,cAElD,OAAOvF,KAAKm5B,cAAcR,QAC9B,CAEA,YAAAY,CAAatgB,GACT,GAAKA,EAAQnY,SACb,OAAOmY,EAAQxT,OACnB,CAEA,WAAA+zB,CAAYC,EAAyBvtB,GACjC,OAAOkN,GAAQhT,QAAQ8F,EAAIutB,EAC/B,CAEA,YAAAC,CAAapX,GACT,GAAKA,EAAQxhB,SACb,OAAOwhB,EAAQ7c,OACnB,CAEA,WAAAk0B,CAAYC,GACR,OAAOtZ,GAAQla,QAAQwzB,EAC3B,CAEA,aAAAC,CAAcpiB,GACV,OAAKA,EAAS3W,SACP2W,EAAShS,QADe,CAAEzG,KAAM,WAAY4f,gBAAiB,GAExE,CAEA,YAAAkb,CAAaF,GACT,OAAOnZ,GAASra,QAAQwzB,EAC5B,CAEA,YAAAG,CAAane,GACT,GAAKA,EAAG9a,SACR,OAAO8a,EAAGnW,OACd,CAEA,WAAAu0B,CAAYC,GACR,OAAOhd,GAAQ7W,QAAQ6zB,EAC3B,CAEA,SAAAC,CAAU3Y,GACN,GAAKA,EAAKzgB,SACV,OAAOygB,EAAK9b,OAChB,CAEA,QAAA00B,CAASC,GACL,OAAOlZ,GAAK9a,QAAQg0B,EACxB,CAEA,UAAAC,CAAWld,GACP,GAAKA,EAAMrc,SACX,OAAOqc,EAAM1X,OACjB,CAEA,SAAA60B,CAAUC,GACN,OAAOld,GAAMjX,QAAQm0B,EACzB,CAEA,iBAAAC,CAAkBC,EAA+BC,EAAoBztB,GACjE,GAAIyL,EAAKiiB,cAAcF,GAAW,CAC9B,MAAMtuB,EAAKnM,KAAKo5B,aAAaqB,EAASp7B,IACtCq7B,EAAS11B,aAAamH,EAAGgB,OAAOstB,EAASttB,QAAQ9N,KACrD,MAAA,GAAWqZ,EAAKkiB,kBAAkBH,GAAW,CACzCC,EAAS11B,aAAa,GAAGy1B,EAASp7B,MAAMo7B,EAASttB,UACnCutB,EAAS9kB,gBAElB1G,QAAQurB,EAASvrB,QAAQzQ,IAAIoJ,GACnB8J,GAAMvL,QAAQpG,KAAKuJ,IAAK1B,IAG3C,MACI6yB,EAAS11B,aAAay1B,EAASp7B,IAEnC,OAAOW,IACX,CAEA,eAAA66B,CAAgBjN,GACZ,OAAOA,EAAK9qB,aAAarE,IAAI4E,GACrBA,aAAoB+V,GACbpZ,KAAKu5B,aAAal2B,GAClBA,aAAoBid,GACpBtgB,KAAK05B,aAAar2B,GAClBA,aAAoB4Z,GACpBjd,KAAK+5B,aAAa12B,GAClBA,aAAoB6d,GACpBlhB,KAAKk6B,UAAU72B,GACfA,aAAoBga,GACpBrd,KAAKq6B,WAAWh3B,GAChBA,aAAoBod,GACpBzgB,KAAK65B,cAAcx2B,QACnBA,aAAoB4S,IAG3B6hB,GAAOgD,QAAQ,0BAA0Bz3B,EAAS0c,eAEvD7f,OAAOmD,KAAcA,EAC5B,CAEA,kBAAA03B,CAAmBnjB,GACf,MAAO,CACHvY,GAAIuY,EAAcsR,aAAa7pB,KAC/B+kB,MAAOxM,EAAcwM,QACrBsK,YAAa9W,EAAc8W,cAC3BhC,WAAY9U,EAAc8U,aAC1B7B,UAAWjT,EAAciT,YACzBkG,QAASnZ,EAAcsR,aAAa/E,SAASpE,UAC7CtI,SAAUzX,KAAK65B,cAAcjiB,EAAcH,YAC3CkS,WAAY/R,EAAc+R,aAElC,CAEA,iBAAAqR,CAAkBC,EAA6BrjB,GAC3C,MAAMH,EAAWzX,KAAK85B,aAAamB,EAAOxjB,UAU1C,OATAG,EAAcsR,aAAa7pB,GAAG47B,EAAO57B,IACrCuY,EACKwM,MAAM6W,EAAO7W,OACbsK,YAAYuM,EAAOvM,aACnBhC,WAAWuO,EAAOvO,YAClB7B,UAAUoQ,EAAOpQ,WACjBlB,WAAWsR,EAAOtR,YAClBlS,SAASA,GAEPzX,IACX,CAEA,mBAAAk7B,CAAoB7C,GAChB,MAAM70B,EAAS60B,EAAM5yB,QAErB,OADAjC,EAAOnE,GAAKW,KAAKm5B,cAAcf,UAAUC,IAAU70B,EAAOnE,GACnDmE,CACX,CAEA,aAAA23B,GAEI,MAAMC,EAA8B,CAAEzsB,OAAQ,CAAA,EAAI9M,QAAS,CAAA,GAC3D,IAAA,MAAWuP,KAAWpR,KAAKuJ,IAAIqmB,WAC3Bxe,EAAQwG,gBAAgBH,WAAWzV,iBAAiBo5B,GAGxD,OAAOp7B,KAAKuJ,IAAIqmB,WAAWnxB,IAAI2S,IAC3B,MAAMwc,EAAOxc,EAAQC,gBACfqpB,EAAW9M,EAAKroB,aACtB,GAAIm1B,aAAoBzkB,GAAU,CAC9B,MAAMoiB,EAAQqC,EAAS9kB,gBAOvB,MANe,CACXvW,GAAI+R,EAAQ/R,KACZkG,WAAYvF,KAAKk7B,oBAAoB7C,GACrCv1B,WAAY9C,KAAK66B,gBAAgBjN,GACjChW,cAAe5X,KAAK+6B,mBAAmB3pB,EAAQwG,iBAGvD,CACA,MAAM,IAAIzN,MAAM,sBAExB,CAEA,eAAAkxB,GACI,MAAO,CACH/7B,KAAMpB,GACNo9B,QAASn9B,GACTo9B,aAAcn9B,GACd84B,OAAQl3B,KAAKk5B,WAAWhC,SAEhC,CAEA,YAAAsE,CAAaC,GACT,IAAA,MAAWC,KAAWD,EAAU,CAC5B,MAAMrqB,EAAU,IAAI2d,GAAQ/uB,KAAKuJ,KAAKlK,GAAGq8B,EAAQr8B,IACjDW,KAAKuJ,IAAIwmB,OAAO3e,GAChB,MAAMC,EAAgBD,EAAQC,gBAC9BrR,KAAKw6B,kBAAkBkB,EAAQn2B,WAAY8L,EAAc9L,aAA0BvF,KAAKuJ,KACxF,IAAA,MAAWlG,KAAYq4B,EAAQ54B,WAAY,CACvC,GAAI4V,EAAKijB,kBAAkBt4B,GAAW,CAClC,MAAMif,EAAUtiB,KAAK25B,YAAYt2B,GACjCgO,EAAciR,QAAQA,EAC1B,CACA,GAAI5J,EAAKkjB,iBAAiBv4B,GAAW,CACjC,MAAM4V,EAAUjZ,KAAKw5B,YAAYn2B,EAAUrD,KAAKuJ,KAChD8H,EAAc4H,QAAQA,EAC1B,CACA,GAAIP,EAAKmjB,kBAAkBx4B,GAAW,CAClC,MAAMyY,EAAU9b,KAAKg6B,YAAY32B,GACjCgO,EAAcyK,QAAQA,EAC1B,CACA,GAAIpD,EAAKojB,eAAez4B,GAAW,CAC/B,MAAMke,EAAOvhB,KAAKm6B,SAAS92B,GAC3BgO,EAAckQ,KAAKA,EACvB,CACA,GAAI7I,EAAKqjB,gBAAgB14B,GAAW,CAChC,MAAM8Z,EAAQnd,KAAKs6B,UAAUj3B,GAC7BgO,EAAc8L,MAAMA,EACxB,CACJ,CACAnd,KAAKg7B,kBAAkBU,EAAQ9jB,cAAexG,EAAQwG,gBAC1D,CACJ,CAEA,cAAAokB,CAAerS,GACPA,GAAcA,EAAWuN,QACzBl3B,KAAKk5B,WAAWhD,UAAUvM,EAAWuN,OAE7C,CAEA,KAAA+E,GACIj8B,KAAKm5B,cAAc7J,QAYnB,MAX4B,CACxBgM,QAAS,QACTY,UAAW,CACP58B,KAAMpB,GACNo9B,QAASn9B,IAEbqX,YAAaxV,KAAKs5B,mBAClB6C,UAAWn8B,KAAKm7B,gBAChBxR,WAAY3pB,KAAKq7B,kBACjBe,gBAAiBp8B,KAAKk5B,WAAWmD,aAGzC,CAEA,IAAAC,CAAKj2B,GACDrG,KAAKm5B,cAAc7J,QACnB,IAAA,MAAWiN,KAASl2B,EAAImP,YACpB,OAAQ+mB,EAAMv9B,MACV,IAAK,WACDgB,KAAKuJ,IAAImmB,iBAAiB5mB,GAAS1C,QAAQm2B,IAC3C,MACJ,IAAK,OACDv8B,KAAKuJ,IAAImmB,iBAAiBpoB,GAAKlB,QAAQm2B,IACvC,MACJ,IAAK,cACDv8B,KAAKuJ,IAAImmB,iBAAiBthB,GAAYhI,QAAQpG,KAAKuJ,IAAKgzB,IACxD,MACJ,IAAK,WACD,MAAMpwB,EAAKL,GAAG1F,QAAQpG,KAAKuJ,IAAKgzB,GAChCv8B,KAAKo5B,aAAajtB,EAAG9M,MAAQ8M,EAC7B,IAAA,MAAWF,KAAcswB,EAAM16B,QAC3B7B,KAAKuJ,IAAImmB,iBAAiBvjB,EAAGgB,OAAOlB,IAExC,MACJ,IAAK,QACL,IAAK,QACD,MAAM2D,EAAKwE,GAAahO,QAAQpG,KAAKuJ,IAAKgzB,GAC1Cv8B,KAAKo5B,aAAaxpB,EAAGvQ,MAAQuQ,EAC7B,IAAA,MAAW3D,KAAcswB,EAAM16B,QAC3B7B,KAAKuJ,IAAImmB,iBAAiBpb,GAAYlO,QAAQpG,KAAKuJ,IAAKqG,EAAI3D,IAEhE,MACJ,IAAK,OACD,MAAMuwB,EAAMjtB,GAAYnJ,QAAQpG,KAAKuJ,IAAKgzB,GAC1Cv8B,KAAKo5B,aAAaoD,EAAIn9B,MAAQm9B,EAC9B,IAAA,MAAWvwB,KAAcswB,EAAM16B,QAC3B7B,KAAKuJ,IAAImmB,iBAAiBxf,GAAW9J,QAAQpG,KAAKuJ,IAAKizB,EAAKvwB,IAEhE,MACJ,QACI6rB,GAAOgD,QAAQ,gCAAiCyB,EAAcv9B,SAG1EgB,KAAKw7B,aAAan1B,EAAI81B,WACtBn8B,KAAKg8B,eAAe31B,EAAIsjB,YACxB3pB,KAAKk5B,WAAWmD,WAAWh2B,EAAI+1B,gBACnC,GAlRoB38B,EAAAw5B,GAAA,cAAjB,IAAMwD,GAANxD,GC1HP,MAAMyD,GAAN,MAAMA,SACFC,WAA2B,CAAA,EAE3B,MAAA5M,CAAO6M,GACE58B,KAAK28B,WAAWC,EAAWC,UAC5B78B,KAAK28B,WAAWC,EAAWC,QAAU,CAAA,GAEzC78B,KAAK28B,WAAWC,EAAWC,QAAQD,EAAWE,QAAS,CAC3D,CAEA,KAAAb,GACI,MAAMc,EAAqB,GAC3B,IAAA,MAAWC,KAAYh9B,KAAK28B,WAAY,CACpC,MAAMM,EAAqB,GAC3B,IAAA,MAAWld,KAAW/f,KAAK28B,WAAWK,GAClCC,EAASn7B,KAAKie,GAElBkd,EAAS1b,OACTwb,EAASj7B,KAAK,YAAYm7B,EAASv+B,KAAK,iBAAiBs+B,MAC7D,CACA,OAAOD,EAASr+B,KAAK,KACzB,GArBUe,EAAAi9B,GAAA,WAAd,IAAMQ,GAANR,GAwBO,SAASS,GAAYC,GACxB,MAAM55B,EAAiC,CAAA,EACvC,IAAA,MAAW65B,KAAQD,EAAGE,sBAClB,GAAIF,EAAGC,EAAKh+B,GAAK,gBAA8B,WAAZg+B,EAAKh+B,GAAiB,CACrD,MAAMgX,EAAM+mB,EAAGC,EAAKh+B,MACpB,GACS,kBADDg+B,EAAKr+B,KACT,CACI,MAAMu+B,EAAgBlnB,EAAI5X,IAAI0+B,IAC1BI,IACA/5B,EAAO65B,EAAKh+B,IAAMk+B,EAEtB,MAEA/5B,EAAO65B,EAAKh+B,IAAMgX,CAE9B,CAEJ,OAAO7S,CACX,CAlBgB/D,EAAA09B,GAAA,eAoBT,MAAMK,GAAN,MAAMA,mBACDtE,WACA3vB,IACAk0B,YACAC,WAER,WAAAx4B,CAAYm0B,GACRr5B,KAAKk5B,WAAaG,EAClBr5B,KAAKuJ,IAAMvJ,KAAKk5B,WAAWjsB,mBAC3BjN,KAAKy9B,YAAc,IAAIhB,GAAWz8B,KAAKk5B,YACvCl5B,KAAK09B,WAAa19B,KAAKy9B,YAAYxB,OACvC,CAEA,WAAAkB,CAAY/sB,EAAgBgtB,EAAiBO,EAAkB,IAC3D,IAAIn6B,EAAmB,GACvB,IAAA,MAAW65B,KAAQD,EAAGE,sBAClB,GAAKF,EAAWC,EAAKh+B,GAAK,aACtB,OAAQg+B,EAAKr+B,MACT,IAAK,SACL,IAAK,MACDwE,EAAO1B,KAAK,GAAGsO,KAAUitB,EAAKh+B,OAAQ+9B,EAAWC,EAAKh+B,UAAUs+B,MAChE,MACJ,IAAK,SACL,IAAK,UACDn6B,EAAO1B,KAAK,GAAGsO,KAAUitB,EAAKh+B,MAAO+9B,EAAWC,EAAKh+B,SAASs+B,MAC9D,MACJ,IAAK,SACDn6B,EAASA,EAAOM,OAAO9D,KAAKm9B,YAAY,GAAG/sB,KAAUitB,EAAKh+B,OAAS+9B,EAAWC,EAAKh+B,QACnF,MACJ,IAAK,gBACGg+B,EAAKO,KACLp6B,EAAO1B,KAAK,GAAGsO,KAAUitB,EAAKh+B,OAAQ+9B,EAAWC,EAAKh+B,UAAUs+B,MAOpF,OAAOn6B,CACX,CAEA,SAAAq6B,CAAUC,GACN,MAAO,EACX,CAEQ,MAAAC,CAAO1+B,GACX,OAAKA,EACEA,EAAGyV,QAAQ,KAAM,KAAKA,QAAQ,MAAO,KAD5BzV,CAEpB,CAEQ,eAAA2+B,CAAgBpQ,GACpB,MAAMhY,EAAgBgY,EAAKroB,WAC3B,OAAImT,EAAKkiB,kBAAkBhlB,GAChB,GAAG5V,KAAK+9B,OAAOnoB,EAAcvW,OAAOW,KAAK+9B,OAAOnoB,EAAczI,WAAWnN,KAAK+9B,OAAOnQ,EAAKvuB,MAC1FqZ,EAAKiiB,cAAc/kB,GACnB,GAAG5V,KAAK+9B,OAAOnoB,EAAcvW,OAAOW,KAAK+9B,OAAOnoB,EAAczI,UAElE,GAAGnN,KAAK+9B,OAAOnoB,EAAcvW,KACxC,CAEA4+B,OAAqC,CAAA,EAC7B,eAAAC,CAAgBtQ,GACpB,MAAMhY,EAAgBgY,EAAKroB,WACrB/B,EAAmB,GACnB+B,EAAavF,KAAK09B,WAAWloB,YAAYtV,OAAOqV,GAAMA,EAAGlW,KAAOuW,EAAcvW,IAAI,GAClF05B,EAAYnjB,EAAsBzI,OAClC9N,EAAKW,KAAKg+B,gBAAgBpQ,GAChC,IAAK5tB,KAAKi+B,OAAO5+B,GAEb,OADAW,KAAKi+B,OAAO5+B,IAAM,EACVkG,EAAWvG,MACf,IAAK,WACD,MAAMm/B,EAAOn+B,KAAK+9B,OAAOnQ,EAAKroB,WAAWlG,IACpCW,KAAKi+B,OAAOE,KACbn+B,KAAKi+B,OAAOE,IAAQ,EACpB36B,EAAO1B,KAAK,oBAAoBq8B,0CACxC54B,EAAWwG,yBACVxG,EAAWyG,sBAGRxI,EAAO1B,KAAK,oBAAoBzC,8CACtC8+B,4BACSpF,gCACG16B,GAAUkH,EAAW1D,QAAQk3B,GAAUhyB,uBAE7C,MACJ,IAAK,cACDvD,EAAO1B,KAAK,oBAAoBzC,mDACpCkG,EAAWwG,gCACHxG,EAAW0I,0CACT5P,GAAUkH,EAAWwB,uBAE3B,MACJ,IAAK,QACL,IAAK,QACD,MAAM8I,EAAY7P,KAAK+9B,OAAOnQ,EAAKroB,WAAWlG,IACzCW,KAAKi+B,OAAOpuB,KACb7P,KAAKi+B,OAAOpuB,IAAa,EACzBrM,EAAO1B,KAAK,oBAAoB+N,sDACxCtK,EAAWwG,6BACNxG,EAAW0N,iCACZ1N,EAAW2N,qCACN7U,GAAUkH,EAAWoJ,wBAG1B,MAAMyvB,EAAWvuB,EAAY,IAAM7P,KAAK+9B,OAAOhF,GAC1C/4B,KAAKi+B,OAAOG,KACbp+B,KAAKi+B,OAAOG,IAAY,EACxB56B,EAAO1B,KAAK,oBAAoBs8B,wDACrCvuB,4BACIkpB,gCACG16B,GAAUkH,EAAW1D,QAAQk3B,GAAUhyB,wBAG7CvD,EAAO1B,KAAK,oBAAoBzC,8DAC9B++B,iCACM//B,GAAWuX,EAAwC1G,wBAE3D,MACJ,IAAK,WAEG1L,EAAO1B,KAAK,oBAAoBzC,mDACrCkG,EAAW6C,8BACXzJ,KAAKN,UAAUkH,EAAW8C,wBAGzB,MACJ,IAAK,OACD,CACI,MAAMg2B,EAAuB,GAC7B,IAAA,MAAWl+B,KAASoF,EAAWwB,OAC3Bs3B,EAAWv8B,KAAK,uCAAuC3B,EAAMd,iBAAiBc,EAAM8F,SAAW,QAEnGzC,EAAO1B,KAAK,oBAAoBzC,iEAE1Cg/B,EAAW3/B,KAAK,4CAGV,EAIZ,OAAO8E,CACX,CAEQ,aAAA86B,CAAcj7B,GAClB,OAAQA,EAASrE,MACb,IAAK,SACD,MAAO,yCAAyCX,GAAUgF,EAASkV,eACvE,IAAK,UACD,MAAO,4CAA4Cla,GAAUgF,EAASub,oBAC1E,IAAK,UACD,MAAO,qCAAqCjgB,KAAKN,UAAUgF,EAASoY,2BAA2Bpd,GAAUgF,EAASqY,eACtH,IAAK,OACD,MAAO,oCAAoCrd,GAAUgF,EAASkV,eAClE,IAAK,QACD,MAAO,+BAA+BlV,EAAS8Z,SACnD,IAAK,WACD,MAAO,6CAA6C9e,GAAUgF,EAASub,oBAEnF,CAEA,gBAAA2f,CAAiBnB,GACb,MAAM55B,EAAmB,GACzB,IAAA,MAAW65B,KAAQD,EAAGE,sBACbF,EAAWC,EAAKh+B,GAAK,gBAA8B,WAAZg+B,EAAKh+B,IAC7CmE,EAAO1B,KAAK,IAAIu7B,EAAKh+B,MAAMV,KAAKN,UAAW++B,EAAWC,EAAKh+B,WAGnE,OAAOmE,CACX,CAEQ,cAAAg7B,CAAe3R,EAA+B4R,EAAkBC,EAAiBC,GACrF,IACItB,EADA75B,EAAiB,GAEjBqpB,EAAMkE,UACNsM,EAAOuB,EAAa/R,EAAMkE,SAC1B0N,EAAQ1O,OAAOsN,GACf75B,GAAU,OAAO65B,EAAKP,WAE1B,IAAA,MAAWra,KAAQoK,EACf,GAAa,YAATpK,QAAoB,GACbjkB,EAAQquB,EAAMpK,IAAQ,CAC7B,MAAMoc,EAAM,GAAIhS,EAAMpK,GAAgBhkB,IAAIgjB,GAAQzhB,KAAKw+B,eAAe/c,EAAMgd,EAASC,EAAU,WAAY,KAAKhgC,KAAK,IAAIggC,eACrHG,IACAr7B,GAAU,GAAGk7B,SAAejc,MAASic,YAAkBG,IAAMH,UAAgBC,IAErF,MACIn7B,GAAU,GAAGk7B,SAAejc,KAAQ9jB,KAAKN,UAAUwuB,EAAMpK,OAAUkc,IAG3E,OAAOn7B,CACX,CAEQ,WAAAs7B,CAAYC,EAAsBN,GACtC,MAAO,oBAAoBM,EAASnnB,cAAcvY,qDAC3C0/B,EAASnnB,cAAcvY,yBACpB0/B,EAASnnB,cAAcwM,4BACvBpkB,KAAKw+B,eAAeO,EAASnnB,cAAc+R,WAAmB,OAAU8U,EAAS,aAAc,iBAE7G,CAEQ,YAAAO,CAAaD,GACjB,MAAMj8B,EAAuB,CAAC,QAAQ9C,KAAKg+B,gBAAgBe,MAC3D,IAAA,MAAW17B,KAAY07B,EAASj8B,WAC5BA,EAAWhB,KAAK9B,KAAKs+B,cAAcj7B,IAEvC,MAAM47B,EAAoB,GAC1B,IAAA,MAAWrQ,KAAe5uB,KAAKuJ,IAAIslB,WAAWkQ,EAAS1/B,IACnD4/B,EAAQn9B,KAAK,GAAG8sB,EAAYvvB,mBAEhC,MAAO,WACP0/B,EAAS1/B,6CACN0/B,EAAS1/B,kCAEVyD,EAAWpE,KAAK,mFAEgCL,GAAU0gC,EAASnnB,cAAcH,SAASmH,2CAC9EmgB,EAASnnB,cAAcvY,qDAEnC4/B,EAAQvgC,KAAK,uCAGrBqgC,EAAS1/B,wCACQ0/B,EAASnnB,cAAc8U,2CACdqS,EAASnnB,cAAc+S,qBAAuB,0BAE9DoU,EAAS1/B,QAEjB,CAEQ,gBAAAi6B,GACJ,IAAI91B,EAAmB,GACvB,IAAA,MAAWu7B,KAAY/+B,KAAK09B,WAAWvB,UACnC34B,EAASA,EAAOM,OAAO9D,KAAKk+B,gBAAgBa,IAEhD,OAAOv7B,CACX,CAEQ,YAAA07B,GACJ,MAAMC,EAAkB,GAClBV,EAAU,IAAIvB,GACpB,IAAA,MAAW6B,KAAY/+B,KAAK09B,WAAWvB,UACnCgD,EAAMr9B,KAAK9B,KAAK8+B,YAAYC,EAAUN,IAE1C,MAAO,CACHW,cAAeX,EAAQxC,QACvBoD,WAAYF,EAAMzgC,KAAK,QAE/B,CAEQ,aAAA4gC,GACJ,IAAI97B,EAAS,GACb,IAAA,MAAWu7B,KAAY/+B,KAAK09B,WAAWvB,UACnC34B,GAAUxD,KAAKg/B,aAAaD,GAEhC,OAAOv7B,CACX,CAEA,gBAAA+7B,GACI,MAAMnL,EAAUp0B,KAAKk/B,eAErB,MAAO,GACb9K,EAAQgL,yLAORp/B,KAAKs5B,mBAAmB56B,KAAK,gCAI7B01B,EAAQiL,8DAIRr/B,KAAKs/B,gBAAgB9oB,2VAcNnY,GAAU2B,KAAKk5B,WAAWhC,kEAK7Bv4B,KAAKN,UAAU2B,KAAK09B,gBAE9B,GA1S2Bj+B,EAAA+9B,GAAA,qBAAxB,IAAMgC,GAANhC,GCvBA,MAAMiC,GAAN,MAAMA,mBAAkB1a,GA6K3B,WAAA7f,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KAAKuJ,IAAI6b,GAAG,kBAAoByK,IAC5B7vB,KAAK8uB,gBAAgBe,KAEzB7vB,KAAKwmB,QAAQ,CAACxmB,KAAK0/B,kBAAmB,IAAIjZ,EAAUzmB,KAAK2/B,WAAY3/B,KAAK4/B,cAAe,IAAInZ,EAAUzmB,KAAK6/B,cAAe,IAAIpZ,EAAUzmB,KAAK8/B,cAC9I9/B,KAAK+/B,gBAAgB,OACzB,CAPoBx2B,IA3KZy2B,WAEAN,mBAAoB,IAAIza,GAAeC,OAAO,mBAAmBC,QAAQ,kBAC5ExB,UAAS,GACTyB,GAAG,QAAS,KACLplB,KAAKggC,sBAAsBnI,IAC3B73B,KAAKggC,WACA1K,WAAWt1B,KAAK0/B,kBAAkB/b,YAClCsc,eAKTN,YAAa,IAAIO,GAAShb,OAAO,WAAWC,QAAQ,UACvDC,GAAG,QAAS,KACT,MAAM+a,EAAU,IAAIpR,GAAQ/uB,KAAKuJ,KACjCvJ,KAAKuJ,IAAIwmB,OAAOoQ,GAChBngC,KAAK0rB,gBAAgBvnB,KAAK,KACtBg8B,EAAQj2B,UAAU/F,KAAK,KACnBnE,KAAK6zB,SAASsM,SAKtBP,eAAgB,IAAIM,GAAShb,OAAO,YAAYC,QAAQ,aAC3Dib,SAAQ,GACRhb,GAAG,QAAS,KACT,MAAMiM,EAAOrxB,KAAKqgC,YACdhP,GAAQ2D,OAAOC,QAAQ,kBAAkB5D,EAAKhyB,YAC9CW,KAAKuJ,IAAI+lB,MAAM+B,EAAKhyB,MACpBW,KAAK0rB,gBAAgBvnB,KAAK,KACtBnE,KAAK6jB,mBAAc,QAK3Bgc,eAAgB,IAAIK,GAAShb,OAAO,cAAcC,QAAQ,aAC7DC,GAAG,QAAS,KACT,MAAMkb,EAAOtgC,KAAKugC,OAClBvgC,KAAKuJ,IAAI+lB,QACTtvB,KAAK6jB,mBAAc,GACnB7jB,KAAK0rB,gBAAgBvnB,KAAK,KACtBnE,KAAKwgC,QAAQF,GACbtgC,KAAK0rB,gBAAgBvnB,KAAK,KACtBnE,KAAKuJ,IAAIW,UAAU/F,KAAK,cAMhC27B,aAAc,IAAII,GAAShb,OAAO,eAAeC,QAAQ,eAC5DC,GAAG,QAAS,KACTxkB,QAAQ0K,IAAI,CACRqmB,GAAO,6GACPA,GAAO,6GACPA,GAAO,4GACRxtB,KAAK,EAAEs8B,EAAUC,EAAUC,MAC1B,MAAMC,EAAe5gC,KAAK6gC,QAAQ,QAAS,CACvC7hC,KAAM,OACNK,GAAI,gBACJ0H,OAAQ,CAAC,CACL/H,KAAM,SACNK,GAAI,WACL,CACCL,KAAM,SACNK,GAAI,cAGZuhC,EAAahpB,gBACRwM,MAAM,iBACNsI,WAAW,UACX7B,UAAU,aAEf,MAAMiW,EAAkB9gC,KAAK+gC,YAAY,WAAYN,EAAU,MAC3D,EACI,IAAI55B,IAAYpF,QAAQ,QAAQzC,KAAK,WACrC,IAAI6H,IAAYpF,QAAQ,QAAQzC,KAAK,WACrC,IAAI6H,IAAYpF,QAAQ,SAASzC,KAAK,WAE1C,IAAIoa,GAAQpZ,KAAKuJ,KAAKqP,aAAa,EAC/B,IAAIQ,GAAQ4nB,QAASt9B,OAAOk9B,EAAavhC,MAAMoY,SAAS,EAAC,IAAI2B,GAAQ6nB,SAAUvwB,YAAY,WAAWK,WAAW,QAAQ4F,UAAS,QAEtI,IAAIuK,IAAOvF,OAAO,EAAC,IAAIuF,GAAK+F,QAASxlB,QAAQ,SAASmf,YAAW,MAErEkgB,EAAgB5X,aAAa9E,MAAM,YACnC,MAAM8c,EAAiBlhC,KAAK+gC,YAAY,WAAYL,EAAU,MAC1D,EACI,IAAI75B,IAAYpF,QAAQ,QAAQzC,KAAK,WACrC,IAAI6H,IAAYpF,QAAQ,QAAQzC,KAAK,WACrC,IAAI6H,IAAYpF,QAAQ,SAASzC,KAAK,WAE1C,IAAIoa,GAAQpZ,KAAKuJ,KAAKqP,aAAa,EAC/B,IAAIQ,GAAQ4nB,QAASt9B,OAAOk9B,EAAavhC,MAAMoY,SAAS,EAAC,IAAI2B,GAAQ6nB,SAAUvwB,YAAY,WAAWK,WAAW,QAAQ4F,UAAS,QAEtI,IAAIuK,IAAOvF,OAAO,EAAC,IAAIuF,GAAK+F,QAASxlB,QAAQ,SAASmf,YAAW,MAErEsgB,EAAehY,aAAa9E,MAAM,YAClC,MAAM+c,EAAenhC,KAAK+gC,YAAY,QAASJ,EAAO,MAClD,GACA,IAAIvnB,GAAQpZ,KAAKuJ,KAAKqP,aAAa,EAC/B,IAAIQ,GAAQ4nB,QAASt9B,OAAOo9B,EAAgBzhC,MAAMoY,SAAS,EAAC,IAAI2B,GAAQ6nB,SAAUvwB,YAAY,QAAQK,WAAW,cACjH,IAAIqI,GAAQ4nB,QAASt9B,OAAOw9B,EAAe7hC,MAAMoY,SAAS,EAAC,IAAI2B,GAAQ6nB,SAAUvwB,YAAY,QAAQK,WAAW,WAAW4F,UAAS,QAG5I,OADAwqB,EAAajY,aAAa9E,MAAM,SACzBxjB,QAAQ0K,IAAI,CACfs1B,EAAa12B,UACb42B,EAAgB52B,UAChBg3B,EAAeh3B,UACfi3B,EAAaj3B,cAElB/F,KAAK,KACJnE,KAAK4jB,aAIjB,WAAAmd,CAAY//B,EAAeqH,EAAiBD,EAAiC,MAAOE,KAAgCxF,GAChH,MAAMs+B,GAAW,IAAIt4B,IAAWzJ,GAAG2B,GAAOoH,OAAOA,GAAQC,QAAQA,GAC7DC,EAAelJ,OAAS,GACxBgiC,EAAS94B,eAAeA,GAE5BtI,KAAKuJ,IAAImmB,iBAAiB0R,GAC1B,MAAMjB,EAAU,IAAIpR,GAAQ/uB,KAAKuJ,KAC3BgM,EAAK4qB,EAAQ9uB,gBAAgB9L,aAC/BgQ,aAAcU,IACdV,EAAGvQ,aAAao8B,EAAS/hC,MAE7B,IAAA,MAAWgE,KAAYP,EACfO,aAAoB+V,GACpB+mB,EAAQ9uB,gBAAgB4H,QAAQ5V,GACzBA,aAAoBid,GAC3B6f,EAAQ9uB,gBAAgBiR,QAAQjf,GACzBA,aAAoB4Z,GAC3BkjB,EAAQ9uB,gBAAgByK,QAAQzY,GACzBA,aAAoB6d,GAC3Bif,EAAQ9uB,gBAAgBkQ,KAAKle,GACtBA,aAAoBga,IAC3B8iB,EAAQ9uB,gBAAgB8L,MAAM9Z,GAItC,OADArD,KAAKuJ,IAAIwmB,OAAOoQ,GACTA,CACX,CAEA,OAAAU,CAAQ7/B,EAAeqF,GACnB,MAAM+6B,GAAW,IAAI95B,IAAOjI,GAAG2B,GAAOoF,QAAQC,GAC9CrG,KAAKuJ,IAAImmB,iBAAiB0R,GAC1B,MAAMjB,EAAU,IAAIpR,GAAQ/uB,KAAKuJ,KAC3BgM,EAAK4qB,EAAQ9uB,gBAAgB9L,aAKnC,OAJIgQ,aAAcU,IACdV,EAAGvQ,aAAao8B,EAAS/hC,MAE7BW,KAAKuJ,IAAIwmB,OAAOoQ,GACTA,CACX,CAEA,aAAOkB,CAAOzU,EAAgBvmB,GAC1B,OAAO,IAAIzF,QAAQ,CAACC,EAASoT,KACzB,MAAM/H,EAAK,IAAIolB,GACT+H,EAAY,IAAIoG,WAAUvzB,GAC3B0gB,OAAOA,GACPsG,gBAAe,GACf7O,cAAa,GACbmc,QAAQn6B,GACRud,OAAO3b,IACJiE,EAAGhC,UAAU/F,KAAK,KACdtD,EAAQw4B,QAI5B,CAWA,eAAA0G,CAAgBrxB,EAAwB,SACtB,SAATA,GAAqB1O,KAAKggC,sBAAsB9K,MAAkC,SAATxmB,GAAqB1O,KAAKggC,sBAAsBnI,MAC1H73B,KAAKggC,YAAuB,SAATtxB,EAAkB,IAAIwmB,GAAmBl1B,KAAKuJ,KAAO,IAAIsuB,GAAc73B,KAAKuJ,KAAK+rB,WAAWt1B,KAAKqkB,iBAC/Ge,GAAG,gBAAkBiM,IAClBrxB,KAAK6jB,cAAcwN,KAG3BrxB,KAAKmkB,OAAOnkB,KAAKggC,YAEzB,CAEA,gBAAA/yB,GACI,OAAOjN,KAAKuJ,GAChB,CAEQ+3B,YAGR,UAAAjF,CAAW/7B,GACP,OAAKC,UAAUnB,QACfY,KAAKshC,YAAchhC,EACZN,MAFuBA,KAAKshC,WAGvC,CAIA,GAAAj7B,CAAI/F,GACA,MAAMihC,EAAa,IAAI9E,GAAWz8B,MAClC,OAAKO,UAAUnB,QACfY,KAAKuJ,IAAI+lB,QACTiS,EAAWjF,KAAKh8B,GACTN,MAHuBuhC,EAAWtF,OAI7C,CAGA,SAAA/F,CAAU51B,GAEN,OADAN,KAAKggC,WAAW9J,UAAU51B,GACnBN,IACX,CAEA,IAAAugC,GAEI,OADmB,IAAI9D,GAAWz8B,MAChBi8B,OACtB,CAEA,OAAAuE,CAAQlgC,EAAgBsjB,GAAkB,GACtC5jB,KAAK+/B,gBAAgBz/B,GAAKA,EAAEqpB,YAAcrpB,EAAEqpB,WAAWuN,kBAAkB34B,MAAQ,OAAS,QAQ1F,OAPmB,IAAIk+B,GAAWz8B,MACvBs8B,KAAKh8B,GACZsjB,GACA5jB,KAAK0rB,gBAAgBvnB,KAAK,KACtBnE,KAAKuJ,IAAIW,YAGVlK,IACX,CAEA,SAAAwhC,CAAUn7B,EAAmCiG,EAAkBN,EAAey1B,EAA0B,CAAA,GACpG,MAAM5I,EAAoB6I,EAAar7B,GAAOA,EAAMs7B,EAAQt7B,EAAKiG,EAASN,GAAM,EAAMy1B,GACtF,OAAOzhC,KAAKwgC,QAAQ3H,GAAM,EAC9B,CAEA,UAAA+I,GAEI,OADkB,IAAIpC,GAAkBx/B,MACvBu/B,kBACrB,CAEA,MAAArI,GACI,OAAOl3B,KAAKggC,WAAW9I,QAC3B,CAEA,OAAA9C,GACI,OAAOp0B,KAAKggC,WAAW5L,SAC3B,CAEA,QAAAP,CAASziB,GACLpR,KAAKggC,WAAWnM,SAASziB,EAC7B,CAIA,cAAA8hB,CAAe5yB,GACX,OAAKC,UAAUnB,QACfY,KAAKggC,WAAW9M,eAAe5yB,GACxBN,MAFuBA,KAAKggC,WAAW9M,gBAGlD,CAEA,iBAAA2O,GACI7hC,KAAK0/B,kBAAkBU,QAAQpgC,KAAKggC,sBAAsBnI,IAAejU,SACzE5jB,KAAK4/B,cAAcQ,aAA6B,IAArBpgC,KAAKqgC,aAA2Bzc,QAC/D,CAEA,MAAAlhB,CAAOohB,EAAsB1S,GACzBpR,KAAKggC,WAAW9L,cAChB/wB,MAAMT,OAAOohB,EAAS1S,GACtBpR,KAAK6hC,mBACT,CAEQxB,YACR,aAAAxc,CAAcgM,GACV7vB,KAAKqgC,YAAcxQ,EACnB7vB,KAAK4/B,cAAcQ,aAAgB,IAARvQ,GAAmBjM,QAClD,CAEA,eAAAkL,CAAgBe,GAChB,CAEA,MAAAjM,CAAOjK,GAEH,OADA3Z,KAAKggC,WAAWrN,aACTxvB,MAAMygB,OAAO3b,IACZ0R,GACAA,EAAS1R,IAGrB,GAxSsCxI,EAAAggC,GAAA,aAAnC,IAAMqC,GAANrC,GA0SPqC,GAAU9+B,UAAUC,QAAU,uBClUvB,MAAM8+B,GAAN,MAAMA,mBAAkBC,GAC3BC,QAAkB,WAClBC,YAAa,IAAIC,IAAa/c,GAAG,UAAYgd,IACzCpiC,KAAKqiC,gBAETC,aAAc,IAAI1b,IACbrN,QAAQ,CAAC,WAAY,UAAW,UAAW,WAKhD,GAAAlT,CAAI/F,GACA,OAAKC,UAAUnB,QACfY,KAAKkiC,WAAW5B,KAAKhgC,GACrBN,KAAKqiC,cACEriC,MAHuBA,KAAKkiC,WAAW5B,MAIlD,CAEA,WAAA+B,GACI,IACI,MAAM/B,EAAOtgC,KAAKqG,MAClB,IACI,MAAMk8B,QAAEA,EAAAlU,OAASA,GAAWmU,EAAUlC,GAClCiC,EACAviC,KAAKsiC,YAAYxiC,KAAK,IAEtBE,KAAKsiC,YAAYxiC,KAAKuuB,EAAO5vB,IAAI8vB,GAAS,CAACA,EAAMkU,SAAUlU,EAAMmU,QAASnU,EAAMoU,QAAShkC,KAAKN,UAAUkwB,EAAM/Z,UAEtH,OAAS5L,GACL5I,KAAKsiC,YAAYxiC,KAAK,CAAC,CAAC,GAAI,oBAAqB,GAAI,KACzD,CACJ,OAAS8I,GACL5I,KAAKsiC,YAAYxiC,KAAK,CAAC,CAAC,MAAO,eAAgB,GAAI,KACvD,CACIE,KAAK4iC,cACL5iC,KAAKsiC,YAAYrC,YAEzB,CAEA,KAAAvtB,CAAMoR,EAAS1S,GACXjO,MAAMuP,MAAMoR,EAAS1S,GACrBpR,KACKw0B,UAAUx0B,KAAKkiC,YACf1N,UAAUx0B,KAAKsiC,YAExB,CAEA,MAAA5/B,CAAOohB,EAAS+e,GACZ1/B,MAAMT,OAAOohB,EAAS+e,EAC1B,GAjDsCpjC,EAAAsiC,GAAA,aAAnC,IAAMe,GAANf,GAoDPe,GAAU9/B,UAAUC,QAAU,wBCrCvB,MAAM8/B,GAAN,MAAMA,cAQT,WAAA79B,CAAoBqE,GAAAvJ,KAAAuJ,IAAAA,CACpB,CADoBA,IAPZy5B,YAA2C,CAAA,EAC3CC,UAAuC,CAAA,EACvCC,QAAmC,CAAA,EACnCC,UAAuB,GACvB7X,SAAqB,GACrBG,MAAgB,GAKxB,KAAA6D,GACItvB,KAAKgjC,YAAc,CAAA,EACnBhjC,KAAKijC,UAAY,CAAA,EACjBjjC,KAAKkjC,QAAU,CAAA,EAEfljC,KAAKmjC,UAAY,GACjBnjC,KAAKsrB,SAAW,GAChBtrB,KAAKyrB,MAAQ,EACjB,CAEA,cAAA2X,CAAe/jC,EAAY2B,EAAelB,GACtC,IAAI0D,EAAmBxD,KAAKgjC,YAAY3jC,GAaxC,OAZKmE,IACDA,GAAS,IAAI6/B,IAGR9pB,QAAQ,CAAC,OACTzZ,KAAK,CAAC,CAACA,KAEZE,KAAKgjC,YAAY3jC,GAAMmE,GAE3BxD,KAAKsrB,SAASxpB,KAAK0B,GACnBA,EAAO4gB,MAAM,GAAGpjB,KAChBwC,EAAO+hB,SAAQ,GACR/hB,CACX,CAEA,YAAA8/B,CAAajkC,EAAY2B,EAAelB,EAAmBqlB,EAAkB,GAAIoe,EAAoB,WACjG,IAAI//B,EAAiBxD,KAAKijC,UAAU5jC,GAgBpC,OAfKmE,IACDA,GAAS,IAAIggC,IACRjqB,QAAQ,CAAC,OACTzZ,KAAK,CAAC,CAACA,KACP2jC,cAAc,GAEnBzjC,KAAKijC,UAAU5jC,GAAMmE,GAEzBxD,KAAKsrB,SAASxpB,KAAK0B,GACnBA,EACKkgC,wBAAwBH,GACxBvtB,KAAKmP,EAAU,GAAGnkB,MAAUmkB,IAAY,GAAGnkB,KAC3CmkB,QAAQA,GAEb3hB,EAAO+hB,SAAQ,GACR/hB,CACX,CAEA,UAAAmgC,CAAW7qB,EAAkB8qB,GACzB,MAAMC,EAAS,GAAG/qB,MAAa8qB,IAC/B,IAAIpgC,EAASxD,KAAKkjC,QAAQW,GAS1B,OARKrgC,IACDA,GAAS,IAAIsgC,IACRC,aAAa/jC,KAAKijC,UAAUnqB,IAC5BkrB,aAAahkC,KAAKijC,UAAUW,IAEjC5jC,KAAKkjC,QAAQW,GAAUrgC,GAE3BxD,KAAKyrB,MAAM3pB,KAAK0B,GACTA,CACX,CAEA,gBAAAygC,CAAiBnG,GAIb,GAHIA,aAAqB7nB,KACrB6nB,EAAYA,EAAUr5B,YAAYc,cAElCu4B,aAAqBrxB,GAAU,CAC/B,MAAMy3B,EAAW,GAAGpG,EAAU/xB,QACxBo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpD/F,EAAO,GAAGL,EAAU/xB,SAAS+xB,EAAU9xB,SACvCG,EAAenM,KAAKojC,eAAejF,EAAM,GAAGL,EAAU9xB,UAC5DhM,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAO7S,IAC7C,MAAMiyB,EAAW,GAAGD,KAAQL,EAAU7xB,eAChC7B,EAAiBpK,KAAKsjC,aAAalF,EAAUN,EAAU7xB,aAAc,CAAE5I,SAAUy6B,IAEvF,OADA99B,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQj4B,EAAI6S,MAAO5U,IAClCg0B,CACX,CAAA,GAAWN,aAAqB1vB,GAAa,CACzC,MAAM81B,EAAW,GAAGpG,EAAU/xB,QACxBo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpDG,EAAO,GAAGH,KAAYpG,EAAU7vB,gBAChCmI,EAAapW,KAAKsjC,aAAae,EAAMvG,EAAU7vB,cAAe,CAAE5K,SAAUy6B,IAEhF,OADA99B,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAO5I,IACtCiuB,CACX,CAAA,GAAWvG,aAAqB/oB,GAAgB,CAC5C,MAAMmvB,EAAW,GAAGpG,EAAU/xB,QACxBo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpDI,EAAYxG,EAAUjuB,YACtB00B,EAAoBvkC,KAAKojC,eAAekB,EAAWxG,EAAU7qB,YACnEjT,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAOulB,IAC7C,MAAMC,EAAUF,EAChBtkC,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOhf,KAAKsjC,aAAakB,EAAS1G,EAAU5qB,aAEhD,MAAMuxB,EAAgB,GAAGH,KAAaxG,EAAU7xB,eAMhD,OALAjM,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOhf,KAAKsjC,aAAamB,EAAe3G,EAAU7xB,aAAc,CAAE5I,SAAUy6B,MAEhF99B,KAAK2jC,WAAWa,EAASC,GAClBA,CACX,CAAA,GAAW3G,aAAqBxpB,GAAa,CACzC,MAAM4vB,EAAW,GAAGpG,EAAUnuB,UAAU5D,QAClCo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpDQ,EAAa5G,EAAUjuB,YACvBoD,EAAqBjT,KAAKojC,eAAesB,EAAY5G,EAAUnuB,UAAUsD,YAC/EjT,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAO/L,IAC7C,MAAMC,EAAU,GAAGwxB,KAAc5G,EAAUnuB,UAAUuD,YAC/CgB,EAAkBlU,KAAKojC,eAAelwB,EAAS4qB,EAAUnuB,UAAUuD,WACzElT,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQnxB,EAAU+L,MAAO9K,IAC/C,MAAMkqB,EAAW,GAAGlrB,KAAW4qB,EAAU7xB,eAMzC,OALAjM,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQlwB,EACR8K,MAAOhf,KAAKsjC,aAAalF,EAAUN,EAAU7xB,aAAc,CAAE5I,SAAUy6B,MAE3E99B,KAAK2jC,WAAWzwB,EAASkrB,GAClBA,CACX,CAAA,GAAWN,aAAqBlrB,GAAe,CAC3C,MAAMsxB,EAAW,GAAGpG,EAAU/xB,QACxBo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpDI,EAAYxG,EAAUjuB,YACtB00B,EAAoBvkC,KAAKojC,eAAekB,EAAWxG,EAAUrvB,UACnEzO,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAOulB,IAC7C,MAAMC,EAAUF,EAChBtkC,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOhf,KAAKsjC,aAAakB,EAAS1G,EAAUrvB,YAEhD,MAAMg2B,EAAgB,GAAGH,KAAaxG,EAAU7xB,eAMhD,OALAjM,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOhf,KAAKsjC,aAAamB,EAAe3G,EAAU7xB,aAAc,CAAE5I,SAAUy6B,MAEhF99B,KAAK2jC,WAAWa,EAASC,GAClBA,CACX,CAAA,GAAW3G,aAAqB5tB,GAAY,CACxC,MAAMg0B,EAAW,GAAGpG,EAAUnuB,UAAU5D,QAClCo4B,EAAmBnkC,KAAKojC,eAAec,EAAU,GAAGA,KACpDr0B,EAAYiuB,EAAUjuB,YACtB80B,EAAW,GAAGT,KAAYpG,EAAUnuB,UAAUlB,WAC9CA,EAAmBzO,KAAKojC,eAAevzB,EAAWiuB,EAAUnuB,UAAUlB,UAC5EzO,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQD,EAAQnlB,MAAOvQ,IAC7C,MAAM2vB,EAAW,GAAGuG,KAAY7G,EAAU7xB,eAM1C,OALAjM,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQ31B,EACRuQ,MAAOhf,KAAKsjC,aAAalF,EAAUN,EAAU7xB,aAAc,CAAE5I,SAAUy6B,MAE3E99B,KAAK2jC,WAAWgB,EAAUvG,GACnBA,CACX,CAAA,GAAWN,aAAqBx2B,GAAM,CAClC,MAAMjI,EAAKy+B,EAAUt9B,OAErB,OADAR,KAAKsjC,aAAajkC,EAAIy+B,EAAU98B,QAAS,CAAEqC,SAAUy6B,IAC9Cz+B,CACX,CAAA,GAAWy+B,aAAqBh1B,GAAU,CACtC,MAAMzJ,EAAKy+B,EAAUz+B,KAErB,OADAW,KAAKsjC,aAAajkC,EAAIy+B,EAAU98B,QAAS,CAAEqC,SAAUy6B,IAC9Cz+B,CACX,CAAO,CACH,MAAMA,EAAKy+B,EAAUt9B,OAErB,OADAR,KAAKsjC,aAAajkC,EAAIy+B,EAAU98B,QAAS,CAAEqC,SAAUy6B,IAC9Cz+B,CACX,CACJ,CAEA,cAAAulC,CAAe9rB,EAAkB8U,EAAevqB,EAAoBrC,GAChE,MAAMujC,EAAoBvkC,KAAKojC,eAAexV,EAAKvuB,KAAM,GAAGuuB,EAAKvuB,OAAQ,CAAEuuB,SAC3E,IAAI2V,EAAY,KACZpe,EAAU,GACd,GAAI9hB,EAASvC,SAAU,CACnB,MAAMutB,EAAShrB,EAAStC,WACpBstB,EAAOjvB,SACPmkC,EAAY,OACZpe,EAAUkJ,EAAO5vB,IAAI8vB,GAAS,GAAGA,EAAM7qB,YAAY6qB,EAAMje,OAAO5R,KAAK,MAE7E,MACI6kC,EAAY,YAEhB,MAAMsB,EAAiB7kC,KAAKsjC,aAAajgC,EAAShE,KAAM2B,GAAS,GAAGqC,EAAS0c,YAAa,CAAE6N,OAAMvqB,YAAY8hB,EAASoe,GAKvH,OAJIzqB,GACA9Y,KAAK2jC,WAAW7qB,EAAUzV,EAAShE,MAEvCW,KAAKmjC,UAAUrhC,KAAK,CAAEsiC,OAAQG,EAASvlB,MAAO6lB,IACvCxhC,EAAShE,IACpB,CAEA,WAAAylC,GACI9kC,KAAKmjC,UAAY,GACjBnjC,KAAKsrB,SAAW,GAChBtrB,KAAKyrB,MAAQ,GAEbzrB,KAAKuJ,IAAIqmB,WAAWxoB,QAAQwB,IACxB5I,KAAKikC,iBAAiBr7B,EAAEyI,gBAAgB9L,gBAG5C,MAAMw/B,EAAoC,CAAA,EAC1C,IAAA,MAAWnX,KAAQ5tB,KAAKuJ,IAAIqmB,WAAY,CACpC,MAAM5B,EAAWJ,EAAKvc,gBACtB,IAAI2zB,EAAShlC,KAAKikC,iBAAiBjW,EAASzoB,cAC5C,IAAA,MAAWlC,KAAY2qB,EAASlrB,aAC5BkiC,EAAShlC,KAAK4kC,eAAeI,EAAQpX,EAAMvqB,GAE/C,MAAMuU,EAAgBgW,EAAKhW,gBACrBH,EAAWG,EAAcH,WACzBwtB,EAAkBjlC,KAAK4kC,eAAeI,EAAQpX,EAAMnW,EAAU,YAC9DytB,EAAgB,GAAGttB,EAAcvY,UACjCklC,EAAoBvkC,KAAKojC,eAAe8B,EAAe,gBAAiB,CAAEttB,kBAChF5X,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQpkC,KAAKgjC,YAAYpV,EAAKvuB,MAC9B2f,MAAOulB,IAEXvkC,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOhf,KAAKijC,UAAUxrB,EAASpY,QAEnC,MAAM8lC,EAAc,GAAGvtB,EAAcvY,WAC/B+lC,EAAuBplC,KAAKsjC,aAAa6B,EAAavtB,EAAcsR,aAAa/E,SAASpE,UAAW,CAAE6N,OAAM1E,WAAYtR,EAAcsR,eAC7IlpB,KAAK2jC,WAAWsB,EAAiBE,GACjCnlC,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQG,EACRvlB,MAAOomB,IAEX,MAAMC,EAAgB,GAAGztB,EAAcvY,aACjCimC,EAAsBtlC,KAAKsjC,aAAa+B,EAAe,YAAa,CAAEzX,OAAME,MAAOF,EAAKE,UAC9F9tB,KAAK2jC,WAAWwB,EAAaE,GACxBE,OAAO,IACPC,gBAAgB,OAChBxvB,KAAK,WAEVhW,KAAK2jC,WAAWqB,EAAQK,GACxBrlC,KAAKmjC,UAAUrhC,KAAK,CAChBsiC,OAAQpkC,KAAKgjC,YAAYpV,EAAKvuB,MAC9B2f,MAAOsmB,IAEXN,EAASK,EACTN,EAAO/W,EAAS3uB,MAAQ2lC,CAC5B,CAGA,IAAA,MAAWpX,KAAQ5tB,KAAKuJ,IAAIqmB,WAAY,CACpC,MAAMhY,EAAgBgW,EAAKhW,gBACrBqU,EAAmBjsB,KAAKuJ,IAAI6H,QAAQwG,EAAc+S,uBACxD,GAAIsB,EAAkB,CAClB,MAAMxU,EAAWwU,EAAiBrU,gBAAgBH,WAClDzX,KAAK2jC,WAAWlsB,EAASpY,KAAM,GAAGuY,EAAcvY,WACpD,CACJ,CAEA,IAAA,MAAWwwB,KAAO7vB,KAAKuJ,IAAIqmB,WAAY,CACnC,MAAMhC,EAAOiC,EAAIxe,gBACjB,IAAA,MAAWo0B,KAAc7X,EAAK/pB,iBAC1B7D,KAAK2jC,WAAWoB,EAAO/kC,KAAKuJ,IAAI6H,QAAQq0B,EAAW9hC,MAAM0N,gBAAgBhS,MAAOomC,EAAW7hC,GAAGvE,MACzFkmC,OAAO,IACPC,gBAAgB,OAChBxvB,KAAK,UAGlB,CAEA,MAAO,CACHsV,SAAUtrB,KAAKsrB,SACfG,MAAOzrB,KAAKyrB,MACZ0X,UAAWnjC,KAAKmjC,UAExB,GAjRsB1jC,EAAAsjC,GAAA,gBAAnB,IAAM2C,GAAN3C,GCPA,MAAM4C,GAAN,MAAMA,iBAAgB5gB,GAgHzB,WAAA7f,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KACKwmB,QAAQ,CAACxmB,KAAK2/B,WAAY3/B,KAAK4/B,cAAe,IAAInZ,EAAUzmB,KAAK4lC,aAAc,IAAInf,EAAUzmB,KAAK8/B,cAClG3b,OAAOnkB,KAAK6lC,UACZtsB,QAAQ,CAAC,KAAM,OAAQ,eACvB6L,GAAG,QAAS,CAAClmB,EAAKmtB,EAAKvV,KACpB9W,KAAK8lC,aAAe5mC,EAAI+vB,SACpBnY,GAA0B,IAAnB5X,EAAI6mC,YAA+B,UAAX7mC,EAAI8mC,GACnChmC,KAAKimC,YAAc/mC,EAAI+vB,gBAEhBjvB,KAAKimC,YAEhBjmC,KAAK4/B,cAAcQ,aAA6B,IAArBpgC,KAAKimC,aAA2BriB,SAC3D5jB,KAAK4lC,aAAaxF,aAA8B,IAAtBpgC,KAAK8lC,cAA4BliB,WAInE5jB,KAAKkmC,UACT,CAnBoB38B,IA9GZo2B,YAAa,IAAIO,GAAShb,OAAO,WAAWC,QAAQ,UACvDC,GAAG,QAAS,KACT,MAAMc,EAAOlmB,KAAK2/B,WAAWvuB,UAAU8U,OACjCigB,EAAOjgB,EAAKE,wBACdpmB,KAAKomC,aAAaC,KAAK,CACvBzZ,OAAQ1G,EACRogB,cAAepgB,EACfqgB,QAASJ,EAAKK,KACdC,QAASN,EAAKO,WAKlB9G,eAAgB,IAAIM,GAAShb,OAAO,YAAYC,QAAQ,aAC3Dib,SAAQ,GACRhb,GAAG,QAAS,KACTplB,KAAK0E,WAGLkhC,cAAe,IAAI1F,GAAShb,OAAO,YAAYC,QAAQ,YAC1Dib,SAAQ,GACRhb,GAAG,QAAS,KACLplB,KAAK8lC,eACD9lC,KAAK8lC,wBAAwBh9B,GAC7B9I,KAAK2mC,IAAI79B,GAAS1C,QAAQpG,KAAK8lC,aAAargC,SAAS,IAC9CzF,KAAK8lC,wBAAwBx+B,GACpCtH,KAAK2mC,IAAIr/B,GAAKlB,QAAQpG,KAAK8lC,aAAargC,SAAS,IAC1CzF,KAAK8lC,wBAAwB13B,GACpCpO,KAAK2mC,IAAIv4B,GAAYhI,QAAQpG,KAAKuJ,IAAKvJ,KAAK8lC,aAAargC,SAAS,IAC3DzF,KAAK8lC,wBAAwB51B,GACpClQ,KAAK2mC,IAAI,IAAIz2B,GAAWlQ,KAAKuJ,KACxBoG,QAAQJ,GAAYnJ,QAAQpG,KAAKuJ,IAAKvJ,KAAK8lC,aAAan2B,UAAUlK,SAAS,IAC3EwG,WAAWjM,KAAK8lC,aAAa75B,eAE3BjM,KAAK8lC,wBAAwBr5B,GACpCzM,KAAK2mC,IAAI,IAAIl6B,GAASzM,KAAKuJ,KACtB4C,GAAGL,GAAG1F,QAAQpG,KAAKuJ,IAAKvJ,KAAK8lC,aAAa35B,KAAK1G,SAAS,IACxDwG,WAAWjM,KAAK8lC,aAAa75B,eAE3BjM,KAAK8lC,wBAAwBxxB,GACpCtU,KAAK2mC,IAAI,IAAIryB,GAAYtU,KAAKuJ,KACzBoG,QAAQyE,GAAahO,QAAQpG,KAAKuJ,IAAKvJ,KAAK8lC,aAAan2B,UAAUlK,SAAS,IAC5EwG,WAAWjM,KAAK8lC,aAAa75B,eAGlCgf,QAAQC,KAAK,6BAKrB4U,aAAc,IAAII,GAAShb,OAAO,eAAeC,QAAQ,eAC5DC,GAAG,QAAS,KACTuM,GAAO,6GAA6GxtB,KAAKyiC,IACrH5mC,KAAK2mC,KAAI,IAAI79B,IAAWV,OAAO,OAAOC,QAAQu+B,MAElDjV,GAAO,6GAA6GxtB,KAAKyiC,IACrH5mC,KAAK2mC,KAAI,IAAI79B,IAAWV,OAAO,OAAOC,QAAQu+B,MAElDjV,GAAO,0GAA0GxtB,KAAKyiC,IAClH5mC,KAAK2mC,KAAI,IAAI79B,IAAWV,OAAO,OAAOC,QAAQu+B,MAElD5mC,KAAK2mC,IAAI,IAAIz2B,GAAWlQ,KAAKuJ,KACxBoG,QAAQ,IAAIJ,GAAYvP,KAAKuJ,KACzBwC,IAAI,iCACJ0C,OAAO,sBACPI,cAAc,EACX,IAAIP,IAAY7M,QAAQ,QACxB,IAAI6M,IAAY7M,QAAQ,WAE/BwK,WAAW,YAEhBjM,KAAK2mC,IAAI,IAAIl6B,GAASzM,KAAKuJ,KACtB4C,GAAG,IAAIL,GAAG9L,KAAKuJ,KAAKwC,IAAI,yBAAyBC,KAAK,qBACtDC,WAAW,aAEhBjM,KAAK2mC,IAAI,IAAIv4B,GAAYpO,KAAKuJ,KACzBwC,IAAI,yBACJkC,YAAY,wCAEjBjO,KAAK2mC,IAAI,IAAIv4B,GAAYpO,KAAKuJ,KACzBwC,IAAI,yBACJkC,YAAY,mCAEjB,MAAM44B,EAAU,IAAIzyB,GAAapU,KAAKuJ,KACjCwC,IAAI,yBACJkH,SAAS,SACTC,QAAQ,kBAEblT,KAAK2mC,IAAI,IAAIryB,GAAYtU,KAAKuJ,KACzBoG,QAAQk3B,GACR56B,WAAW,aAEhBjM,KAAK2mC,KAAI,IAAIr/B,IACRH,WAAW,EACR,IAAIN,IAAY7H,KAAK,UAAUyC,QAAQ,MAAMmF,MAAM,IACnD,IAAIC,IAAYpF,QAAQ,cAAcmF,MAAM,SAC5C,IAAIC,IAAYpF,QAAQ,aAAamF,MAAM,QAC3C,IAAIC,IAAYpF,QAAQ,UAAUwE,QAAQ,MAC1C,IAAIY,IAAY7H,KAAK,UAAUyC,QAAQ,UAG/CzB,KAAK4jB,WAGLiiB,SAAW,IAAIjf,GACfqf,YACAH,aAEAM,aAuBR,QAAAF,GACI,MAAMY,EAAW,IAAIC,GAGrBD,EAASE,WAAW,gBAAiB,CACjChmC,MAAO,kBACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAIl6B,GAASzM,KAAKuJ,OADtB,aAKbu9B,EAASE,WAAW,kBAAmB,CACnChmC,MAAO,eACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAIv4B,GAAYpO,KAAKuJ,OADzB,aAKbu9B,EAASE,WAAW,YAAa,CAC7BhmC,MAAO,gBACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAIryB,GAAYtU,KAAKuJ,OADzB,aAKbu9B,EAASE,WAAW,WAAY,CAC5BhmC,MAAO,OACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAIz2B,GAAWlQ,KAAKuJ,OADxB,aAKbu9B,EAASE,WAAW,eAAgB,CAChChmC,MAAO,WACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAI79B,KADR,aAKbg+B,EAASE,WAAW,WAAY,CAC5BhmC,MAAO,OACPimC,uBAASxnC,EAAA,KACLO,KAAK2mC,IAAI,IAAIr/B,KADR,aAKbtH,KAAKomC,aAAe,IAAIc,GAAY,CAAEJ,aACtC9mC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,gBAAiBC,SAAU,mBAChErnC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,kBAAmBC,SAAU,mBAClErnC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,YAAaC,SAAU,mBAC5DrnC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,WAAYC,SAAU,mBAC3DrnC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,eAAgBC,SAAU,mBAC/DrnC,KAAKomC,aAAae,QAAQ,CAAEC,QAAS,WAAYC,SAAU,kBAC/D,CAEA,GAAAV,CAAIpxB,GACAvV,KAAKuJ,IAAImmB,iBAAiBna,GAC1BvV,KAAK4jB,QACT,CAEA,MAAAlf,GACQ1E,KAAKimC,cACLjmC,KAAKuJ,IAAIomB,iBAAiB3vB,KAAKimC,aAC/BjmC,KAAK4jB,SAEb,CAEQ0jB,YACR,MAAA1jB,CAAOjK,GACH,MAAMhY,EAAO,CAAA,EACb3B,KAAKuJ,IAAIqmB,WAAWxoB,QAAQwB,IACxB,IAAI2M,EAAK3M,EAAEyI,gBAAgB9L,aACvBgQ,aAAcU,KACdV,EAAKA,EAAGhQ,mBAEU,IAAlB5D,EAAK4T,EAAGlW,QACRsC,EAAK4T,EAAGlW,MAAQ,GAEpBsC,EAAK4T,EAAGlW,UAEZ,MAAMS,EAAOE,KAAKuJ,IAAIiM,cAActV,OAAOqV,GAAkB,UAAZA,EAAGlW,MAAkBZ,IAAI8W,SAChD,IAAlB5T,EAAK4T,EAAGlW,QACRsC,EAAK4T,EAAGlW,MAAQ,GAEb,CAACkW,EAAGlW,KAAMkW,EAAGwK,UAAWpe,EAAK4T,EAAGlW,OAAS,EAAGkW,KAEjDgyB,EAAS5oC,KAAKN,UAAUsD,GAK9B,OAJI3B,KAAKsnC,cAAgBC,IACrBvnC,KAAKsnC,YAAcC,EACnBvnC,KAAKF,KAAKA,IAEPqD,MAAMygB,OAAOjK,EACxB,GAjOoCla,EAAAkmC,GAAA,WAAjC,IAAM6B,GAAN7B,GCVA,MAAM8B,GAAN,MAAMA,iBAAgB1iB,GAIzB,WAAA7f,CAAoBqE,GAChBpG,QADgBnD,KAAAuJ,IAAAA,EAEhBvJ,KACKqkB,cAAa,GACbF,OAAOnkB,KAAK0nC,UACZnuB,QAAQ,CAAC,KAAM,SAExB,CAPoBhQ,IAFZm+B,SAAW,IAAI9gB,GAWf0gB,YACR,MAAA1jB,CAAOjK,GACH,MAAM7Z,EAAOE,KAAKuJ,IAAIqmB,WAAWnxB,IAAI4yB,GAC1B,CAACA,EAAKhyB,KAAMgyB,EAAKzZ,gBAAgBwM,QAASiN,IAE/CkW,EAAS7mC,EAAQZ,EAAKrB,OAAWS,EAAI,KAK3C,OAJIc,KAAKsnC,cAAgBC,IACrBvnC,KAAKsnC,YAAcC,EACnBvnC,KAAKF,KAAKA,IAEPqD,MAAMygB,OAAOjK,EACxB,GAxBoCla,EAAAgoC,GAAA,WAAjC,IAAME,GAANF,GCeP,MAAMG,GAAN,MAAMA,iCAAgCC,EAElCC,OAGA,KAAA9mC,CAAMV,GACF,OAAKC,UAAUnB,QACfY,KAAK8nC,OAASxnC,EACdN,KAAKmlB,QAAQ7kB,GACNN,MAHuBA,KAAK8nC,MAIvC,CAEAC,eAAkC,GAGlC,MAAA1Z,CAAO/tB,GACH,OAAKC,UAAUnB,QACfY,KAAK+nC,eAAiBznC,EACtBN,KAAKgoC,QAAQ,QAAS1nC,EAAElB,OAAS,GAE7BkB,EAAElB,OACFY,KAAKmlB,QAAQ7kB,EAAE7B,IAAIm1B,IACf,MAAMqU,EAAiBrU,EAAIlwB,OAAOsM,MAAM,KAExC,OADAi4B,EAAeC,OAAO,EAAG,GAClB,GAAGD,EAAevpC,KAAK,UAAUk1B,EAAItjB,QAC7C5R,KAAK,OAERsB,KAAKmlB,QAAQnlB,KAAK8nC,QAEtB9nC,KAAK4jB,SACE5jB,MAduBA,KAAK+nC,cAevC,GA/BkDtoC,EAAAmoC,GAAA,2BAAtD,IAAMO,GAANP,GAkCA,MAAMQ,GAAN,MAAMA,uBAAsBrjB,GACxBhf,OAEAR,YAAa,IAAI4iC,IAA0BjjB,OAAO,eAAelkB,MAAM,cAAc2iB,UAAS,GAC9FzjB,QAAS,IAAIioC,IAA0BjjB,OAAO,aAAalkB,MAAM,UACjEshB,SAAU,IAAI6lB,IAA0BjjB,OAAO,aAAalkB,MAAM,WAClE8a,SAAU,IAAIqsB,IAA0BjjB,OAAO,mBAAmBlkB,MAAM,YACxEugB,MAAO,IAAI4mB,IAA0BjjB,OAAO,qBAAqBlkB,MAAM,QACvEmc,OAAQ,IAAIgrB,IAA0BjjB,OAAO,cAAclkB,MAAM,SACjEyW,UAAW,IAAI0wB,IAA0BjjB,OAAO,aAAalkB,MAAM,YACnEkoB,YAAa,IAAIif,IAA0BjjB,OAAO,iBAAiBlkB,MAAM,iBACzE8sB,OAAQ,IAAIqa,IAA0BjjB,OAAO,qBAAqBlkB,MAAM,SACxEqnC,OAAQ,IAAIF,IAA0BjjB,OAAO,UAAUlkB,MAAM,SAC7DsK,KAAM,IAAI68B,IAA0BjjB,OAAO,WAAWlkB,MAAM,OAE5DsnC,aAA8B,IAAIC,IAC7BC,aAAY,GACZC,eAAc,GACdC,YAAW,GAGRC,SAAW,CACf3oC,KAAKuF,WACLvF,KAAKE,OACLF,KAAKsiB,QACLtiB,KAAK8b,QACL9b,KAAKuhB,KACLvhB,KAAKmd,MACL,IAAIsJ,EACJzmB,KAAKyX,SACLzX,KAAKkpB,WACL,IAAIzC,EACJzmB,KAAK8tB,MACL9tB,KAAKqoC,MACL,IAAI5hB,EACJzmB,KAAKsL,KAETs9B,gBAA2C5oC,KAAKuF,WACxCsjC,oBAAqB,IAAIC,GAC5BtiB,QAAQxmB,KAAK2oC,UAAUvjB,GAAG,WAAYpE,IACnChhB,KAAK4oC,gBAAkB5nB,EACvBhhB,KAAKokB,MAAMpD,EAAGhgB,SAAS4iB,WAG/B,WAAA1e,CAAYoB,GACRnD,QACAnD,KAAK+F,OAASO,EACdtG,KAAKwmB,QAAQ,CAACxmB,KAAK6oC,qBACnB7oC,KAAKokB,MAAMpkB,KAAKuF,WAAWvE,SAC3BmC,MAAMghB,OAAOnkB,KAAKsoC,aAClBtoC,KAAKsoC,YAAY3jC,QAAQ,CAACtF,EAAYme,EAAeurB,EAAerlC,KAC5DA,IAAW1D,KAAKsoC,cAChBtoC,KAAKgpC,YAAY3pC,EAAIme,EAAUurB,EAAUrlC,GACzC1D,KAAKipC,gBAGjB,CAEA,gBAAAC,GACI,OAAOlpC,KAAK6oC,mBAAmBriB,UAAUtmB,OAAOipC,GAAKA,aAAahB,GACtE,CAEQiB,SAGR,OAAAC,CAAQ/oC,GACJ,OAAKC,UAAUnB,QACfY,KAAKopC,SAAW9oC,EACTN,MAFuBA,KAAKopC,QAGvC,CAEQ,cAAAE,GACJ,OAAItpC,KAAKopC,oBAAoBhkC,IAElBpF,KAAKopC,oBAAoBnzB,GADzBjW,KAAKopC,SAGLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgB9L,kBADzC,CAGJ,CAEQ,UAAAikC,GACJ,OAAIxpC,KAAKopC,oBAAoBhwB,GAClBpZ,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgB4H,eADzC,CAGJ,CAEQ,WAAAwwB,GACJ,OAAIzpC,KAAKopC,oBAAoB9oB,GAClBtgB,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgBiR,eADzC,CAGJ,CAEQ,WAAAonB,GACJ,OAAI1pC,KAAKopC,oBAAoBnsB,GAClBjd,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgByK,eADzC,CAGJ,CAEQ,QAAA6tB,GACJ,OAAI3pC,KAAKopC,oBAAoBloB,GAClBlhB,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgBkQ,YADzC,CAGJ,CAEQ,SAAAqoB,GACJ,OAAI5pC,KAAKopC,oBAAoB/rB,GAClBrd,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAS/3B,gBAAgB8L,aADzC,CAGJ,CAEQ,YAAA0sB,GACJ,OAAI7pC,KAAKopC,oBAAoB3oB,GAClBzgB,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAASxxB,gBAAgBH,WAC9BzX,KAAKopC,oBAAoB7c,GACzBvsB,KAAKopC,SAAS3xB,gBADzB,CAGJ,CAEQ,cAAAqyB,GACJ,OAAI9pC,KAAKopC,oBAAoBrkB,IAElB/kB,KAAKopC,oBAAoB7c,GADzBvsB,KAAKopC,SAGLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAASxxB,qBADzB,CAGJ,CAEQ,SAAAmyB,GACJ,OAAI/pC,KAAKopC,oBAAoB5b,GAClBxtB,KAAKopC,SACLppC,KAAKopC,oBAAoBG,GACzBvpC,KAAKopC,SAAStb,aADzB,CAGJ,CAEA,eAAAkc,GACI,GAAIhqC,KAAK4oC,iBAAmB5oC,KAAK4oC,gBAAgBxI,UAC7C,OAAOpgC,KAAK4oC,gBAEhB,IAAA,MAAWqB,KAAMjqC,KAAKkpC,mBAClB,GAAIe,EAAG7J,UAEH,OADA6J,EAAGtmB,UAAS,GACLsmB,CAInB,CAEAC,aACAC,oBACA,MAAAznC,CAAOohB,EAAS1S,GACZjO,MAAMT,OAAOohB,EAAS1S,GACtBpR,KAAKipC,cACL,MAAMmB,EAAiBpqC,KAAKgqC,kBAC5B,GAAIhqC,KAAKkqC,eAAiBlqC,KAAKopC,UAAYppC,KAAKmqC,sBAAwBC,EAAgB,CAGpF,GAFApqC,KAAKkqC,aAAelqC,KAAKopC,SACzBppC,KAAKmqC,oBAAsBC,EACvBpqC,KAAKopC,UAAYgB,EACjB,OAAQA,GACJ,KAAKpqC,KAAKuF,WACNvF,KAAKsoC,YAAYnkB,OAAOnkB,KAAKspC,kBAC7B,MACJ,KAAKtpC,KAAKE,OACNF,KAAKsoC,YAAYnkB,OAAOnkB,KAAKwpC,cAC7B,MACJ,KAAKxpC,KAAKsiB,QACNtiB,KAAKsoC,YAAYnkB,OAAOnkB,KAAKypC,eAC7B,MACJ,KAAKzpC,KAAK8b,QACN9b,KAAKsoC,YAAYnkB,OAAOnkB,KAAK0pC,eAC7B,MACJ,KAAK1pC,KAAKuhB,KACNvhB,KAAKsoC,YAAYnkB,OAAOnkB,KAAK2pC,YAC7B,MACJ,KAAK3pC,KAAKmd,MACNnd,KAAKsoC,YAAYnkB,OAAOnkB,KAAK4pC,aAC7B,MACJ,KAAK5pC,KAAKyX,SACNzX,KAAKsoC,YAAYnkB,OAAOnkB,KAAK6pC,gBAC7B,MACJ,KAAK7pC,KAAKkpB,WACNlpB,KAAKsoC,YAAYnkB,OAAOnkB,KAAK8pC,kBAC7B,MACJ,KAAK9pC,KAAK8tB,MACN9tB,KAAKsoC,YAAYnkB,OAAOnkB,KAAK+pC,aAC7B,MACJ,KAAK/pC,KAAKsL,IACNtL,KAAKsoC,YAAYnkB,OAAOnkB,KAAKopC,eAIrCppC,KAAKsoC,YAAYnkB,YAAO,GAE5BnkB,KAAK+F,OAAOskC,YAAYrqC,KAAKsoC,YAAYnkB,SAC7C,CACJ,CAEA,iBAAA0d,CAAkBzE,EAAIpc,GAClBA,EAAGof,UAAUhD,GACbpc,EAAGqN,SAAS+O,GAAMA,EAAGr8B,YAAc,GACvC,CAEA,WAAAkoC,GACIjpC,KAAKkpC,mBAAmB9hC,QAAQ4Z,IAC5B,GAAIA,aAAcmnB,IACVnoC,KAAKsqC,oBAAoB/oC,QAAQyf,EAAGhgB,UAAY,EAChDhB,KAAK6hC,yBAA6B7gB,OAF1C,CAOA,OAAQA,GACJ,KAAKhhB,KAAKuF,WACNvF,KAAK6hC,kBAAkB7hC,KAAKspC,iBAAkBtoB,GAC9C,MACJ,KAAKhhB,KAAKE,OACNF,KAAK6hC,kBAAkB7hC,KAAKwpC,aAAcxoB,GAC1C,MACJ,KAAKhhB,KAAKsiB,QACNtiB,KAAK6hC,kBAAkB7hC,KAAKypC,cAAezoB,GAC3C,MACJ,KAAKhhB,KAAK8b,QACN9b,KAAK6hC,kBAAkB7hC,KAAK0pC,cAAe1oB,GAC3C,MACJ,KAAKhhB,KAAKuhB,KACNvhB,KAAK6hC,kBAAkB7hC,KAAK2pC,WAAY3oB,GACxC,MACJ,KAAKhhB,KAAKmd,MACNnd,KAAK6hC,kBAAkB7hC,KAAK4pC,YAAa5oB,GACzC,MACJ,KAAKhhB,KAAKyX,SACNzX,KAAK6hC,kBAAkB7hC,KAAK6pC,eAAgB7oB,GAC5C,MACJ,KAAKhhB,KAAKkpB,WACN,MAAM1D,EAAKxlB,KAAK8pC,iBAChB9oB,EAAGof,UAAU5a,GACb,MACJ,KAAKxlB,KAAK8tB,MACN,MAAMyc,EAAKvqC,KAAK+pC,YAChB/oB,EAAGof,UAAUmK,GACb,MACJ,KAAKvqC,KAAKqoC,MACNrnB,EAAGof,SAAQ,GACX,MACJ,KAAKpgC,KAAKsL,IACN0V,EAAGof,UAAUpgC,KAAKopC,UAGtBpoB,EAAG2C,YACH3jB,KAAKokB,MAAMpD,EAAGof,UAAYpf,EAAGhgB,QAAU,GAxC3C,GA2CR,CAGA,WAAAgoC,CAAY3pC,EAAYme,EAAeurB,EAAerlC,GACtD,GA9QmCjE,EAAA2oC,GAAA,iBAAvC,IAAMoC,GAANpC,GAgRAoC,GAAcxnC,UAAUC,QAAU,oCAOExD,EAApCgrC,gBAAyB1lB,GAEb2lB,OAAQ,IAAIxK,GAAShb,OAAO,WAAWC,QAAQ,QAClDC,GAAG,QAAS,KACT,MAAM/hB,EAAWrD,KAAKqD,WAClBA,GAAaA,EAAiB+C,SAC7B/C,EAAiB+C,QAAQpG,KAAK2qC,YAAYrK,QAE/CtgC,KAAK4qC,kBAGLC,QAAS,IAAI3K,GAAShb,OAAO,WAAWC,QAAQ,SACnDC,GAAG,QAAS,KACTplB,KAAK2qC,YACA30B,KAAKhW,KAAK8qC,YACV7K,aAELjgC,KAAK4qC,kBAGLD,aAAc,IAAIxI,IACrB/c,GAAG,UAAYgd,IACZpiC,KAAK4qC,kBAGb,WAAA1lC,GACI/B,QACAnD,KAAK+qC,UAAUvkB,QAAQ,CAACxmB,KAAK0qC,MAAO1qC,KAAK6qC,SACzC7qC,KAAKmkB,OAAOnkB,KAAK2qC,YACrB,CAEQvhC,UAGR,QAAA/F,CAAS/C,GACL,YAAU,IAANA,EAAqBN,KAAKoJ,WAC1BpJ,KAAKoJ,YAAc9I,IACnBN,KAAKoJ,UAAY9I,SACVN,KAAKgrC,WAEThrC,KACX,CAEA,QAAA8qC,GACI,MAAMznC,EAAWrD,KAAKqD,WACtB,OAAOA,GAAaA,EAAiBoC,MAAQ9G,KAAKN,UAAWgF,EAAiBoC,aAAS,EAAW,GAAK,EAC3G,CAEQulC,UACR,MAAAtoC,CAAOohB,EAAS1S,GACZjO,MAAMT,OAAOohB,EAAS1S,GACtB,MAAMkvB,EAAOtgC,KAAK8qC,WACZG,EAAajrC,KAAK2qC,YAAY30B,YACZ,IAAnBhW,KAAKgrC,WAA2BhrC,KAAKgrC,YAAcC,GAAejrC,KAAKgrC,YAAc1K,IACtFtgC,KAAKgrC,UAAY1K,EACjBtgC,KAAK2qC,YAAY30B,KAAKsqB,IAE1BtgC,KAAK4qC,eACT,CAEA,aAAAA,GACI,MAAMvnC,EAAWrD,KAAKqD,WAChBi9B,EAAOtgC,KAAK8qC,WACZG,EAAajrC,KAAK2qC,YAAY30B,OACpChW,KAAK0qC,MAAMtK,QAAQ/8B,GAAYA,EAAS+C,SAAWk6B,IAAS2K,GAAYhL,aACxEjgC,KAAK6qC,OAAOzK,QAAQE,IAAS2K,GAAYhL,YAC7C,GAlEgC,cAApCwK,GAqEO,MAAMS,GAAN,MAAMA,4BAA2BlJ,GAC5BmJ,eAAiB,IAAIX,GAAcxqC,MAAMolB,GAAG,cAAe,CAAC/lB,EAAYme,EAAeurB,EAAerlC,KAC1G1D,KAAKgpC,YAAY3pC,EAAIme,EAAUurB,EAAUrlC,KAErC0nC,cAAgB,IAAIC,GACpBC,eAAiB,IAAIC,GACrBC,iBAAkB,IAAIC,IAAkBC,YAAW,GAE3D,WAAAxmC,GACI/B,QACAnD,KAAKorC,cACA5W,UAAUx0B,KAAKwrC,gBAAiB,QAChChX,UAAUx0B,KAAKsrC,eAAgB,OAEpCtrC,KACKw0B,UAAUx0B,KAAKmrC,gBACf3W,UAAUx0B,KAAKorC,cAExB,CAEA,aAAAO,CAAcvO,GACVp9B,KAAKmrC,eACA9B,QAAQjM,GACRxZ,QAET,CAEA,WAAAymB,CAAYhnC,GACRA,EAAWA,aAAoBkpB,GAAgBlpB,EAASoU,WAAapU,EACrErD,KAAKwrC,gBACAjmC,WAAW,IAAI8D,GAAgBhG,aAAoBV,GAAWU,OAAW,IACzE48B,aAELjgC,KAAKsrC,eACAjoC,SAASA,GACT48B,YAET,CAEA,cAAA2L,GACI,MAAMr2B,EAAKvV,KAAKwrC,gBAAgBjmC,aAC5BgQ,EACAA,EAAGtT,OAAOkC,KAAK,KACXnE,KAAKwrC,gBACAK,aACA5L,aAELjgC,KAAKsrC,eACArL,eAITjgC,KAAKsrC,eACArL,YAGb,CAGA,WAAA+I,CAAY3pC,EAAYme,EAAeurB,EAAerlC,GACtD,GA5D+CjE,EAAAyrC,GAAA,sBAA5C,IAAMY,GAANZ,GAoEPV,GAAcxnC,UAAU2C,QAAQ,oBAAqB,GAAI,QAAS,2BAElEmmC,GAAmB9oC,UAAUwpB,aAAa,oBAAqB,kBCrc/D,MAAMsL,GAASC,EAAa,oBAMtBgU,GAAN,MAAMA,oBAAmBhnB,GAuBrB,WAAA7f,CAAoB8mC,GAChB7oC,QADgBnD,KAAAgsC,OAAAA,EAEhBhsC,KAAK+qC,UAAUvkB,QAAQ,CAACxmB,KAAK0qC,MAAO1qC,KAAK6qC,SACzC7qC,KAAKmkB,OAAOnkB,KAAK2qC,YACrB,CAJoBqB,OArBZtB,OAAQ,IAAIxK,GAAShb,OAAO,WAAWC,QAAQ,QAClDC,GAAG,QAAS,KACT,MAAM6mB,EAAMttC,KAAK+J,MAAM1I,KAAK2qC,YAAY30B,QACxChW,KAAKgsC,OAAOxK,UAAUyK,GACtBjsC,KAAK4qC,kBAGLC,QAAS,IAAI3K,GAAShb,OAAO,WAAWC,QAAQ,SACnDC,GAAG,QAAS,KACTplB,KAAK2qC,YACA30B,KAAKhW,KAAKwgB,MACVyf,aAELjgC,KAAK4qC,kBAGLD,aAAc,IAAIxI,IACrB/c,GAAG,UAAYgd,IACZpiC,KAAK4qC,kBASLpqB,KACR,GAAAna,CAAI/F,GAEA,OADAN,KAAKwgB,KAAO7hB,KAAKN,UAAUiC,SAAc,GAClCN,IACX,CAEQgrC,UACR,MAAAtoC,CAAOohB,EAAS1S,GACZjO,MAAMT,OAAOohB,EAAS1S,GAClBpR,KAAKgrC,YAAchrC,KAAKwgB,OACxBxgB,KAAKgrC,UAAYhrC,KAAKwgB,KACtBxgB,KAAK2qC,YAAY30B,KAAKhW,KAAKwgB,OAE/BxgB,KAAK4qC,eACT,CAEA,aAAAA,GACI,MAAMK,EAAajrC,KAAK2qC,YAAY30B,OACpChW,KAAK0qC,MAAMtK,QAAQpgC,KAAKwgB,OAASyqB,GAAYhL,aAC7CjgC,KAAK6qC,OAAOzK,QAAQpgC,KAAKwgB,OAASyqB,GAAYhL,YAClD,GAjDgCxgC,EAAAssC,GAAA,cAApC,IAAMR,GAANQ,GAoDO,MAAMG,GAAN,MAAMA,eAAclK,GAEfmK,kBAAsC,IAAI7a,GAE1C8a,UAAY,IAAIf,GAChBgB,cAA2B,IAAIvK,GAAU9hC,KAAKmsC,mBACjD/mB,GAAG,gBAAiB,CAACiM,EAAe+B,KACjCpzB,KAAKssC,MAAMtsC,KAAKqsC,cAAehb,KAElCjM,GAAG,kBAAoBiM,IACpB,IAAA,MAAWzC,KAAe5uB,KAAKmsC,kBAAkBtd,WAAWwC,EAAKhyB,MACzDW,KAAKssC,UAAY1d,GACjB5uB,KAAKusC,cAAcX,mBAK3BY,cAAyB,IAAI7E,GAAQ3nC,KAAKmsC,mBAC7C/mB,GAAG,QAAS,CAAClmB,EAAUmtB,EAAavV,EAAc8mB,KAC/C59B,KAAKssC,MAAMtsC,KAAKwsC,cAAettC,EAAI+vB,UACnCjvB,KAAKusC,cAAcX,mBAGnBa,gBAA2B,IAAIjF,GAAQxnC,KAAKmsC,mBAC/C/mB,GAAG,QAAS,CAAClmB,EAAUmtB,EAAavV,EAAc8mB,KAC/C59B,KAAKssC,MAAMtsC,KAAKysC,gBAAiBvtC,EAAI+vB,UACrCjvB,KAAKusC,cAAcX,mBAGnBc,cAAgB,IAAIhH,GAAa1lC,KAAKmsC,mBACtCQ,cAAsB,IAAIC,IAC7B1V,OAAO,aACP2V,eAAc,GACdC,oBAAmB,GACnB1nB,GAAG,eAAgB,CAAClmB,EAAUmtB,EAAavV,EAAc8mB,KACtD,MAAMqO,EAAkB/sC,EAAI+vB,SAAS,IAAM,CAAA,EAC3CjvB,KAAKssC,MAAMtsC,KAAK2sC,aAAcV,EAAIne,OAASme,EAAI/iB,YAAc+iB,EAAIr0B,eAAiBq0B,EAAI5oC,UAAY4oC,EAAIre,QAEzGxI,GAAG,qBAAsB,CAAClmB,EAAUmtB,EAAavV,EAAc8mB,QAG5DmP,eAAiB,IAAI1B,GACrB2B,mBAAqB,IAAIzB,GAAWvrC,MACpCitC,oBAAqB,IAAI9K,IAAa7B,KAAK4M,GAC3CC,kBAAoB,IAAIC,GACxBC,iBAAqC,IAAI/b,GACzCgc,eAA4B,IAAIxL,GAAU9hC,KAAKqtC,kBAAkBna,gBAAe,GAAM7O,cAAa,GACnGkpB,eAAiB,IAAIpL,GACrBqL,eAAiB,IAAIrL,GAErBoK,cAAgB,IAAIT,GAEpB2B,UAER,aAAOpM,CAAOzU,EAAgBvmB,EAAoCiG,EAAkBN,GAChF,OAAO,IAAIpL,QAAQ,CAACC,EAASoT,KACzB,MAAMy5B,GAAQ,IAAIxB,QACbtf,OAAOA,GACPhJ,OAAQ3b,IACD5B,EACA4B,EAAEu5B,UAAUn7B,EAAKiG,EAASN,GAAM7H,KAAK,KACjCtD,EAAQ6sC,KAGZ7sC,EAAQ6sC,MAI5B,CAEA,WAAAxoC,GACI/B,MAAM,aACV,CAEA,gBAAA8J,GACI,OAAOjN,KAAKmsC,iBAChB,CAEA,KAAA7c,GAMI,OALAtvB,KAAK+sC,eAAexY,aAAav0B,KAAKutC,gBACtCvtC,KAAK+sC,eAAexY,aAAav0B,KAAKwtC,gBACtCxtC,KAAKmsC,kBAAkB7c,QACvBtvB,KAAK0sC,cAAcpd,QACnBtvB,KAAKssC,MAAMtsC,KAAKqsC,mBAAe,GACxBrsC,KAAK2tC,gBAAgBxpC,KAAK,IACtBnE,KAAKmsC,kBAAkBjiC,WAC/B/F,KAAK+H,MAGZ,CAEA,IAAAq0B,GACI,OAAOvgC,KAAKqsC,cAAc9L,MAC9B,CAEA,OAAAC,CAAQF,GAEJ,OADAtgC,KAAKosC,UAAUwB,OAAO5tC,KAAKqsC,eACpBrsC,KAAKsvB,QAAQnrB,KAAK,KACrBnE,KAAKqsC,cAAc7L,QAAQF,GAC3BtgC,KAAKwsC,cAAc5oB,SACnB5jB,KAAKysC,gBAAgB7oB,SACd5jB,KAAKqsC,cAAc3gB,gBAAgBvnB,KAAK,KAC3C,MAAMyrB,EAAW5vB,KAAKmsC,kBAAkBvc,WAIxC,OAHIA,EAASxwB,QACTY,KAAKqsC,cAAcxY,SAASjE,EAAS,IAElC5vB,KAAKmsC,kBAAkBjiC,YAC/B/F,KAAK,KACJ,IAAI0pC,GAAW,EACf,IAAA,MAAWtf,KAASvuB,KAAKmsC,kBAAkBprC,WACvC8sC,GAAW,EACX/V,GAAOgD,QAAQvM,EAAMC,UAAY,KAAOD,EAAM7qB,OAAS,OAAS6qB,EAAMje,KAEtEu9B,GAEA7tC,KAAKqsC,cAAc3gB,mBAInC,CAEA,SAAA8V,CAAUn7B,EAAmCiG,EAAkBN,EAAey1B,EAA0B,CAAA,GACpG,MAAM5I,EAAoB6I,EAAar7B,GAAOA,EAAMs7B,EAAQt7B,EAAKiG,EAASN,GAAM,EAAMy1B,GAChFj+B,EAASxD,KAAKwgC,QAAQ3H,GAc5B,OAbI6I,EAAar7B,IACbrG,KAAKwtC,eAAelN,KAAKzH,GACzB74B,KAAK+sC,eACAvY,UAAUx0B,KAAKwtC,eAAgB,aAGpCxtC,KAAKutC,eAAejN,KAAKj6B,GACzBrG,KAAKwtC,eAAelN,KAAKzH,GACzB74B,KAAK+sC,eACAvY,UAAUx0B,KAAKutC,eAAgB,MAC/B/Y,UAAUx0B,KAAKwtC,eAAgB,aAGjChqC,CACX,CAEA,SAAAsqC,GACI,IAAItqC,EAASxD,KAAKosC,UAAUwB,SAI5B,OAHIpqC,IAAWxD,KAAK+sC,iBAChBvpC,EAASxD,KAAK+sC,eAAea,UAE1BpqC,CACX,CAEA,SAAAuqC,GACI,OAAO/tC,KAAKusC,aAChB,CAEQyB,eAAoD,CAAA,EAEpD,cAAAC,GACJ,MAAM9gB,EAAgBntB,KAAKssC,QAC3B,OAAOnf,aAAyB4B,GAAU5B,OAAgB,CAC9D,CAIQ,KAAAmf,CAAM5oC,EAAiB+d,GAC3B,OAAKlhB,UAAUnB,QACXY,KAAKguC,eAAetqC,EAAOrE,QAAUoiB,IACrCzhB,KAAKguC,eAAetqC,EAAOrE,MAAQoiB,EACnCzhB,KAAKkuC,gBAEFluC,MALuBA,KAAKguC,eAAehuC,KAAK8tC,YAAYzuC,KAMvE,CAEA,YAAA6uC,GACIluC,KAAKusC,cAAcZ,cAAc3rC,KAAKssC,QAC1C,CAEA,aAAA6B,GACI,OAAInuC,KAAK8tC,cAAgB9tC,KAAKwsC,cACnBxsC,KAAKwsC,cAAc9gB,gBAEvB9qB,QAAQC,aAAQ,EAC3B,CAEA,eAAAutC,GACI,OAAIpuC,KAAK8tC,cAAgB9tC,KAAKysC,gBACnBzsC,KAAKysC,gBAAgB/gB,gBAEzB9qB,QAAQC,aAAQ,EAC3B,CAEA,aAAA8sC,GACI,OAAI3tC,KAAK8tC,cAAgB9tC,KAAKqsC,eAC1BrsC,KAAKmsC,kBAAkBprC,WAChBf,KAAKqsC,cAAc3gB,iBAEvB9qB,QAAQC,aAAQ,EAC3B,CAEA,SAAAwtC,GACIruC,KAAK2sC,aACA7sC,KAAK,IAAKE,KAAK0sC,cAAc5H,gBAAiB,GAE/C9kC,KAAK8tC,cAAgB9tC,KAAK2sC,cAC1B3sC,KAAK2sC,aACA1M,YAGb,CAEA,OAAAqO,GACItuC,KAAKgtC,mBACA3mC,IAAIrG,KAAKqsC,cAAchmC,OAExBrG,KAAK8tC,cAAgB9tC,KAAKgtC,oBAC1BhtC,KAAKgtC,mBACA/M,YAGb,CAEA,cAAAsO,GACIvuC,KAAKmtC,kBACAvL,WAAW5hC,KAAKqsC,cAAczK,cAE/B5hC,KAAK8tC,cAAgB9tC,KAAKmtC,mBAC1BntC,KAAKmtC,kBACAlN,YAGb,CAEA,SAAAuO,GACI,MAAMlO,EAAOtgC,KAAKugC,OAClBvgC,KAAKqtC,iBAAiB/d,QACtBtvB,KAAKstC,eAAe5hB,gBAAgBvnB,KAAK,KACrCnE,KAAKstC,eAAe9M,QAAQF,GAC5BtgC,KAAKstC,eAAe5hB,gBAAgBvnB,KAAK,IAC9BnE,KAAKqtC,iBAAiBnjC,WAC9B/F,KAAK,KACJ,IAAA,MAAWoqB,KAASvuB,KAAKqtC,iBAAiBtsC,WACtC+2B,GAAOgD,QAAQvM,EAAMC,UAAY,KAAOD,EAAM7qB,OAAS,OAAS6qB,EAAMje,QAItF,CAEA,QAAA41B,GACI,MAAMY,EAAW,IAAIC,GAGrBD,EAASE,WAAW,WAAY,CAC5BhmC,MAAO,WACPimC,uBAASxnC,EAAA,KACL,MAAM0gC,EAAU,IAAIpR,GAAQ/uB,KAAKmsC,mBACjCnsC,KAAKmsC,kBAAkBpc,OAAOoQ,GAC9BngC,KAAK2tC,gBAAgBxpC,KAAK,KACtBg8B,EAAQj2B,UAAU/F,KAAK,KACnBnE,KAAKqsC,cAAcxY,SAASsM,QAL/B,aAWb2G,EAASE,WAAW,aAAc,CAC9BhmC,MAAO,QACPimC,uBAASxnC,EAAA,KACLO,KAAKsvB,SADA,aAKbwX,EAASE,WAAW,YAAa,CAC7BhmC,MAAO,OACPimC,uBAASxnC,EAAA,KACL,MAAMuW,EAAOrX,KAAKN,UAAU2B,KAAKugC,OAAQ,KAAM,MAC/ClhB,EAAQovB,eAAe,OAAQz4B,EAAM,UAFhC,aAMb8wB,EAASE,WAAW,YAAa,CAC7BhmC,MAAO,OACPimC,uBAASxnC,EAAA,KACLO,KAAKytC,UAAUiB,SAAS,SAAU,gBAClC1uC,KAAKytC,UAAUvnB,OAAOkG,SAFjB,aAOb,MAAMuiB,EAAU,IAAIC,GAAe,CAAE9H,aACrC6H,EAAQxH,QAAQ,CAAEC,QAAS,cAAeyH,SAAU,aACpDF,EAAQxH,QAAQ,CAAEC,QAAS,UAAWyH,SAAU,aAChDF,EAAQxH,QAAQ,CAAEC,QAAS,SAAUyH,SAAU,aAC/CF,EAAQtvC,GAAK,UAEb,MAAMyvC,EAAc,IAAI5H,GAAY,CAAEJ,aAEtCgI,EAAY3H,QAAQ,CAAEC,QAAS,WAAYC,SAAU,IAAIrnC,KAAKqsC,cAAchtC,SAC5EyvC,EAAY3H,QAAQ,CAAEC,QAAS,aAAcC,SAAU,IAAIrnC,KAAKqsC,cAAchtC,SAC9EyvC,EAAY3H,QAAQ,CAAEnoC,KAAM,YAAaqoC,SAAU,IAAIrnC,KAAKqsC,cAAchtC,SAE1EyvC,EAAY3H,QAAQ,CAAEC,QAAS,YAAaC,SAAU,IAAIrnC,KAAKX,SAC/DyvC,EAAY3H,QAAQ,CAAEC,QAAS,YAAaC,SAAU,IAAIrnC,KAAKX,SAE/D0vC,SAASC,iBAAiB,cAAgBC,IAClCH,EAAYzI,KAAK4I,IACjBA,EAAMC,kBAGlB,CAEA,WAAAnO,CAAY//B,EAAeqH,EAAiBD,GACxC,MAAMg5B,GAAW,IAAIt4B,IAAWzJ,GAAG2B,GAAOoH,OAAOA,GAAQC,QAAQA,GACjErI,KAAKmsC,kBAAkBzc,iBAAiB0R,GACxC,MAAMjB,EAAU,IAAIpR,GAAQ/uB,KAAKmsC,mBAC3B52B,EAAK4qB,EAAQ9uB,gBAAgB9L,aAC/BgQ,aAAcU,IACdV,EAAGvQ,aAAao8B,EAAS/hC,MAE7BW,KAAKmsC,kBAAkBpc,OAAOoQ,GAC9BngC,KAAK2tC,gBAAgBxpC,KAAK,KACtBg8B,EAAQj2B,UAAU/F,KAAK,KACnBnE,KAAKqsC,cAAcxY,SAASsM,MAGxC,CAEA,KAAAztB,CAAMoR,EAAS1S,GACXjO,MAAMuP,MAAMoR,EAAS1S,GACrBpR,KACKw0B,UAAUx0B,KAAKosC,WACf5X,UAAUx0B,KAAKusC,eAEpBvsC,KAAKosC,UACA5X,UAAUx0B,KAAKqsC,cAAe,aAC9B7X,UAAUx0B,KAAKwsC,cAAe,aAC9BhY,UAAUx0B,KAAKysC,gBAAiB,eAChCjY,UAAUx0B,KAAK2sC,aAAc,YAC7BnY,UAAUx0B,KAAK+sC,eAAgB,SAC/B3nB,GAAG,kBAAoBnd,IACpB,OAAQA,GACJ,KAAKjI,KAAKwsC,cAGV,KAAKxsC,KAAKysC,gBAGV,KAAKzsC,KAAKqsC,cACNrsC,KAAKkuC,eACL,MACJ,KAAKluC,KAAK2sC,aACN3sC,KAAKkuC,eACLluC,KAAKquC,YACL,MACJ,KAAKruC,KAAK+sC,eACN/sC,KAAK+sC,eAAetY,gBAAgBz0B,KAAK+sC,eAAea,aAKxE5tC,KAAK+sC,eACAvY,UAAUx0B,KAAKgtC,mBAAoB,MACnCxY,UAAUx0B,KAAKitC,mBAAoB,UACnCzY,UAAUx0B,KAAKmtC,kBAAmB,MAClC3Y,UAAUx0B,KAAKstC,eAAgB,SAC/BloB,GAAG,kBAAoBnd,IACpB,OAAQA,GACJ,KAAKjI,KAAKgtC,mBACNhtC,KAAKkuC,eACLluC,KAAKsuC,UACL,MACJ,KAAKtuC,KAAKmtC,kBACNntC,KAAKkuC,eACLluC,KAAKuuC,iBACL,MACJ,KAAKvuC,KAAKstC,eACNttC,KAAKwuC,eAMrBxuC,KAAKkmC,WACLlmC,KAAKusC,cAAcnnB,GAAG,cAAe,CAAC/lB,EAAYme,EAAeurB,EAAerlC,KAC5E,MAAMyrC,EAAcnvC,KAAKiuC,iBAQzB,OAPIkB,EACAA,EAAYjlC,UAAU/F,KAAK,KACvBnE,KAAKusC,cAAcX,mBAGvB5rC,KAAKusC,cAAcX,iBAEf5rC,KAAK8tC,aACT,KAAK9tC,KAAKqsC,cACNrsC,KAAK2tC,gBACL,MACJ,KAAK3tC,KAAKysC,gBACNzsC,KAAKmsC,kBAAkBjiC,UACvB,MACJ,KAAKlK,KAAK2sC,aACN3sC,KAAKquC,YACL,MACJ,KAAKruC,KAAKgtC,mBACNhtC,KAAKsuC,UACL,MACJ,KAAKtuC,KAAKstC,eACNttC,KAAKwuC,eAKjB,MAAMY,EAAUpvC,KAChBA,KAAKytC,UAAYr8B,EAAQ2e,OAAO,SAC3Bsf,KAAK,OAAQ,QACbX,SAAS,SAAU,gBACnB1qB,MAAM,UAAW,QACjBoB,GAAG,SAAU,WACV,MACMne,EAAIjH,KAAKsvC,MADL,GAEV,KAAOroC,GAAG,CACN,MAAMsoC,EAAS,IAAIC,WACnBD,EAAOE,iCACH,OAAO,SAAU7mC,GACb,IACI,MAAMwB,EAAS7L,MAAMC,QAAQoK,EAAEgkB,OAAOxiB,QAAUxB,EAAEgkB,OAAOxiB,OAAO,GAAKxB,EAAEgkB,OAAOxiB,OACxEk2B,EAAO3hC,KAAK+J,MAAM0B,GACxBglC,EAAQ5N,UAAUlB,EACtB,OAASoP,GACLC,MAAM,kCAAoCD,EAC9C,CACJ,CACJ,IACAH,EAAOK,WAAW3oC,GAClB,KACJ,CACJ,EAER,CAEA,MAAAvE,CAAOohB,EAAS1S,GACZjO,MAAMT,OAAOohB,EAAS1S,EAC1B,GArbkC3R,EAAAysC,GAAA,SAA/B,IAAM2D,GAAN3D,GAubP2D,GAAM7sC,UAAUC,QAAU,mBAM1B4sC,GAAM7sC,UAAUwpB,aAAa,oBAAqB","x_google_ignoreList":[20]}