@veloceapps/sdk 2.0.12 → 2.0.13

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 (95) hide show
  1. package/bundles/veloce-sdk-cms.umd.js +94 -78
  2. package/bundles/veloce-sdk-cms.umd.js.map +1 -1
  3. package/bundles/veloce-sdk-runtime.umd.js +143 -143
  4. package/bundles/veloce-sdk-runtime.umd.js.map +1 -1
  5. package/bundles/veloce-sdk.umd.js +60 -60
  6. package/bundles/veloce-sdk.umd.js.map +1 -1
  7. package/esm2015/cms/components/element-children/element-children.component.js +3 -3
  8. package/esm2015/cms/components/element-children/element-children.module.js +4 -4
  9. package/esm2015/cms/components/element-renderer/element-renderer.component.js +3 -3
  10. package/esm2015/cms/components/element-renderer/element-renderer.module.js +4 -4
  11. package/esm2015/cms/components/federated/federated.component.js +3 -3
  12. package/esm2015/cms/components/federated/federated.module.js +4 -4
  13. package/esm2015/cms/components/plugin.component.js +3 -3
  14. package/esm2015/cms/components/preview/preview.component.js +3 -3
  15. package/esm2015/cms/components/preview/preview.module.js +4 -4
  16. package/esm2015/cms/directives/custom-template.directive.js +3 -3
  17. package/esm2015/cms/launcher.module.js +21 -7
  18. package/esm2015/cms/modules/configuration/configuration.module.js +4 -4
  19. package/esm2015/cms/modules/configuration/services/configuration-runtime.service.js +3 -3
  20. package/esm2015/cms/modules/configuration/services/configuration.service.js +3 -3
  21. package/esm2015/cms/modules/configuration/services/runtime-context.service.js +3 -3
  22. package/esm2015/cms/plugins/configuration.plugin.js +3 -3
  23. package/esm2015/cms/plugins/io.plugin.js +3 -3
  24. package/esm2015/cms/plugins/script.plugin.js +3 -3
  25. package/esm2015/cms/services/dynamic-module.service.js +3 -3
  26. package/esm2015/cms/services/element-context.service.js +3 -3
  27. package/esm2015/cms/services/io-provider.service.js +3 -3
  28. package/esm2015/cms/services/launcher.service.js +7 -6
  29. package/esm2015/cms/services/templates.service.js +3 -3
  30. package/esm2015/cms/vendor-map.js +4 -2
  31. package/esm2015/runtime/components/component-preview/component-preview.component.js +3 -3
  32. package/esm2015/runtime/components/section-renderer/section-renderer.component.js +3 -3
  33. package/esm2015/runtime/components/ui-runtime/runtime.component.js +3 -3
  34. package/esm2015/runtime/components/ui-runtime-preview/runtime-preview.component.js +3 -3
  35. package/esm2015/runtime/execution/components/children-placeholder/children-placeholder.component.js +6 -6
  36. package/esm2015/runtime/execution/components/context-provider/context-provider.component.js +3 -3
  37. package/esm2015/runtime/execution/components/execution-section-renderer/execution-section-renderer.component.js +3 -3
  38. package/esm2015/runtime/execution/components/federated/federated.component.js +3 -3
  39. package/esm2015/runtime/execution/components/velo-attribute/velo-attribute.component.js +3 -3
  40. package/esm2015/runtime/execution/components/velo-multiselect/velo-multiselect.component.js +3 -3
  41. package/esm2015/runtime/execution/components/velo-port-checkbox/velo-port-checkbox.component.js +3 -3
  42. package/esm2015/runtime/execution/components/velo-port-dropdown/velo-port-dropdown.component.js +3 -3
  43. package/esm2015/runtime/execution/components/velo-port-radio/velo-port-radio.component.js +3 -3
  44. package/esm2015/runtime/execution/components/velo-type/velo-type.component.js +3 -3
  45. package/esm2015/runtime/execution/directives/section-script.directive.js +3 -3
  46. package/esm2015/runtime/execution/directives/sf-query.directive.js +3 -3
  47. package/esm2015/runtime/execution/directives/velo-attribute.directive.js +3 -3
  48. package/esm2015/runtime/execution/directives/velo-port.directive.js +18 -18
  49. package/esm2015/runtime/execution/directives/vl-approval.directive.js +3 -3
  50. package/esm2015/runtime/execution/directives/vl-document-attachments.directive.js +3 -3
  51. package/esm2015/runtime/execution/directives/vl-document-templates.directive.js +3 -3
  52. package/esm2015/runtime/execution/directives/vl-quote.directive.js +3 -3
  53. package/esm2015/runtime/execution/directives/vl-ramp.directive.js +3 -3
  54. package/esm2015/runtime/execution/runtime-execution.module.js +4 -4
  55. package/esm2015/runtime/runtime.module.js +4 -4
  56. package/esm2015/runtime/services/cart.service.js +3 -3
  57. package/esm2015/runtime/services/collapsible-state.service.js +3 -3
  58. package/esm2015/runtime/services/configuration.service.js +3 -3
  59. package/esm2015/runtime/services/context.service.js +3 -3
  60. package/esm2015/runtime/services/current-state.service.js +3 -3
  61. package/esm2015/runtime/services/form-scope.service.js +3 -3
  62. package/esm2015/runtime/services/product-model-cache.service.js +3 -3
  63. package/esm2015/runtime/services/quote.service.js +3 -3
  64. package/esm2015/runtime/services/runtime-context.service.js +3 -3
  65. package/esm2015/runtime/services/runtime-form.service.js +3 -3
  66. package/esm2015/runtime/services/runtime.service.js +3 -3
  67. package/esm2015/runtime/services/section-helper.service.js +3 -3
  68. package/esm2015/runtime/services/section-scope.service.js +3 -3
  69. package/esm2015/runtime/services/section-store.service.js +3 -3
  70. package/esm2015/runtime/services/section.service.js +6 -6
  71. package/esm2015/src/flow-routing.module.js +4 -4
  72. package/esm2015/src/flow.component.js +3 -3
  73. package/esm2015/src/flow.module.js +4 -4
  74. package/esm2015/src/guards/context.guard.js +3 -3
  75. package/esm2015/src/guards/root.guard.js +3 -3
  76. package/esm2015/src/pages/debug/debug.component.js +3 -3
  77. package/esm2015/src/pages/debug/debug.module.js +4 -4
  78. package/esm2015/src/pages/legacy-product/legacy-product.component.js +3 -3
  79. package/esm2015/src/pages/legacy-product/legacy-product.module.js +4 -4
  80. package/esm2015/src/pages/product/product.component.js +3 -3
  81. package/esm2015/src/pages/product/product.module.js +4 -4
  82. package/esm2015/src/pages/record-not-found/record-not-found.component.js +3 -3
  83. package/esm2015/src/pages/record-not-found/record-not-found.module.js +4 -4
  84. package/esm2015/src/resolvers/context.resolver.js +3 -3
  85. package/esm2015/src/resolvers/flow.resolver.js +3 -3
  86. package/esm2015/src/resolvers/quote.resolver.js +3 -3
  87. package/esm2015/src/services/flow.service.js +3 -3
  88. package/esm2015/src/services/router.service.js +3 -3
  89. package/fesm2015/veloce-sdk-cms.js +93 -76
  90. package/fesm2015/veloce-sdk-cms.js.map +1 -1
  91. package/fesm2015/veloce-sdk-runtime.js +143 -143
  92. package/fesm2015/veloce-sdk-runtime.js.map +1 -1
  93. package/fesm2015/veloce-sdk.js +60 -60
  94. package/fesm2015/veloce-sdk.js.map +1 -1
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"veloce-sdk-cms.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/services/dynamic-module.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/utils/line-item.utils.ts","../../../../libs/sdk/cms/types/line-item.types.ts","../../../../libs/sdk/cms/modules/configuration/helpers.ts","../../../../libs/sdk/cms/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/utils/federated.util.ts","../../../../libs/sdk/cms/components/federated/federated.component.ts","../../../../libs/sdk/cms/components/federated/federated.component.html","../../../../libs/sdk/cms/components/federated/federated.module.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/configuration.plugin.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/services/launcher.service.ts","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/modules/configuration/configuration.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/veloce-sdk-cms.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\nimport { UIDefinitionMetadata } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<typeof Plugin[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\nexport const VENDOR_MAP = new InjectionToken<Dictionary<any>>('VENDOR_MAP');\n","import { Injector } from '@angular/core';\nimport { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG } from '../../injection-tokens';\nimport { ElementConfig } from '../../types/common.types';\nimport { Plugin } from './plugin';\n\nexport class Entity {\n protected readonly plugins: Plugin[] = [];\n\n private config: ElementConfig;\n private defaultPlugins: typeof Plugin[];\n\n constructor(public injector: Injector) {\n this.config = this.injector.get(ELEMENT_CONFIG);\n this.defaultPlugins = this.injector.get(DEFAULT_PLUGINS_TOKEN);\n }\n\n public initPlugins() {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin) {\n this.plugins.push(plugin);\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Inject, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent extends Entity implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n ngAfterViewInit() {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata, ElementPath } from '../types';\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0])?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { ComponentFactory, Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class DynamicModuleService {\n private _elementsTree: ElementMetadata[] = [];\n private _componentFactories: ComponentFactory<any>[] = [];\n\n set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n getComponentFactory(element: ElementMetadata): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => (f.componentType as any).path === element.path);\n }\n\n get elementsTree(): ElementMetadata[] {\n return this._elementsTree;\n }\n\n set elementsTree(tree: ElementMetadata[]) {\n this._elementsTree = tree;\n }\n\n clear() {\n this._elementsTree = [];\n this.componentFactories = [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private dynamicModuleService: DynamicModuleService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const elPath = parsePath(target as string);\n const pathIsValue =\n elPath.segments.length === 1 && elPath.segments[0].startsWith('\"') && elPath.segments[0].endsWith('\"');\n\n const finalName = elPath.variable ?? name;\n const value = pathIsValue ? new BehaviorSubject(elPath.segments[0].slice(1, -1)) : undefined;\n\n const absolutePath = !pathIsValue ? getAbsolutePath(this.dynamicModuleService.elementsTree, el, elPath) : el.path;\n return this.createSubjectSafe(absolutePath ?? '', finalName, value);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n if (!this.inputs[path]) {\n this.inputs[path] = {};\n }\n\n const subjectAlreadyExists = Boolean(this.inputs[path][name]);\n\n if (!this.inputs[path][name]) {\n this.inputs[path][name] = subject ?? new BehaviorSubject<any>(undefined);\n }\n\n if (subject && subjectAlreadyExists) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => this.inputs[path][name].next(subject.value));\n }\n\n return this.inputs[path][name];\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<TemplateRef<any>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>) {\n this.templates[name] = templateRef;\n }\n\n public get(name: string): TemplateRef<any> | undefined {\n return this.templates[name];\n }\n}\n","import { Directive } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { IOProviderService } from '../services/io-provider.service';\nimport { ElementMetadata } from '../types/common.types';\n\n@Directive()\nexport class IOPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const inputProvider: IOProviderService = this.host.injector.get(IOProviderService);\n\n const inputs = Object.entries(elementMetadata.inputs ?? {});\n const outputs = Object.entries(elementMetadata.outputs ?? {});\n\n inputs.forEach(([key, path]) => {\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' input should be a string`);\n }\n\n if (elementMetadata.outputs?.[key] !== undefined) {\n console.warn(\n `'${key}' appears both in inputs and outputs. To prevent inconsistent behavior please keep them unique `,\n );\n }\n\n (this.host as any)[key] = inputProvider.connect(elementMetadata, key, path);\n });\n\n outputs.forEach(([key, path]) => {\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' output should be a string`);\n }\n\n (this.host as any)[key] = inputProvider.provide(elementMetadata, key, path);\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive } from '@angular/core';\nimport { UUID } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA, VENDOR_MAP } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\n\nconst normalizeImports = (script: string) => {\n const regexp = new RegExp(\n `import([ \\\\n\\\\t]*(?:[^ \\\\n\\\\t\\\\{\\\\}]+[ \\\\n\\\\t]*,?)?(?:[ \\\\n\\\\t]*\\\\{(?:[ \\\\n\\\\t]*[^ \\\\n\\\\t\"'\\\\{\\\\}]+[ \\\\n\\\\t]*,?)+\\\\})?[ \\\\n\\\\t]*)from[ \\\\n\\\\t]*(['\"])([^'\"\\\\n]+)(?:['\"]);`,\n 'g',\n );\n const result = script.replace(regexp, (match, g1, g2, src) => `const ${g1} = vendor['${src}'];`);\n return result;\n};\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n private document: Document;\n private vendorMap: Dictionary<any>;\n\n constructor(public host: ElementComponent) {\n this.document = this.host.injector.get(DOCUMENT);\n this.vendorMap = this.host.injector.get(VENDOR_MAP);\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n if (sharedElementMetadata?.script) {\n this.addScript(sharedElementMetadata.script);\n }\n\n if (elementMetadata.script) {\n this.addScript(elementMetadata.script);\n }\n }\n\n private addScript(scriptStr: string) {\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(scriptStr);\n\n const classMatch = /export class (\\S+)/.exec(scriptContent);\n const className = classMatch?.[1];\n\n if (!classMatch || !className) {\n console.error(\"Script doesn't have exported class\");\n return;\n }\n\n scriptContent = scriptContent.replace(classMatch[0], `class ${className}`);\n\n script.text = `var ${id} = function(vendor) {${scriptContent}\n return ${className}; };`;\n\n this.document.body.appendChild(script);\n\n const ScriptClass = (window as any)[id](this.vendorMap);\n if (ScriptClass instanceof Object) {\n this.host.registerPlugin(new ScriptClass(this.host));\n }\n\n this.document.body.removeChild(script);\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ElementConfig, ELEMENT_TYPE } from './types/common.types';\n\n/*\n * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.\n */\n\nexport const CONFIG: { [key in ELEMENT_TYPE]: ElementConfig } = {\n CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n },\n CONTAINER: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [ScriptPlugin],\n },\n SERVICE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n suppressStyles: true,\n },\n REFERENCE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n },\n};\n","import { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementMetadata, ELEMENT_TYPE, UIElement, UIElementMetadata, UIElementModel } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|.)*export class/g;\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = el.script && window.atob(el.script);\n const template = el.template && window.atob(el.template);\n const styles = el.styles && window.atob(el.styles);\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n\n if (!exportedClassName) {\n throw new Error(\"Script doesn't have exported class\");\n }\n\n const elementMetadata = extractElementMetadata(script || '');\n const path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;\n\n return {\n ...elementMetadata,\n path,\n script: script?.replace(METADATA_DECORATOR_REGEX, 'export class'),\n template,\n styles,\n children: el.children.map(child => elementToMetadata(child, path)),\n };\n};\n\nexport const metadataToElement = (metadata: ElementMetadata): UIElement => {\n const elMetadata: UIElementMetadata = {\n name: metadata.name,\n isShared: metadata.isShared,\n type: metadata.type,\n model: metadata.model,\n module: metadata.module,\n reference: metadata.reference,\n inputs: metadata.inputs,\n outputs: metadata.outputs,\n children: metadata.children.map(({ name }) => name),\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new Error(`'${metadata.name}' element script doesn't have exported class`);\n }\n\n const script =\n metadata.script &&\n window.btoa(\n metadata.script.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = metadata.template && window.btoa(metadata.template);\n const styles = metadata.styles && window.btoa(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: metadata.children.map(meta => metadataToElement(meta)),\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: UIElementMetadata): UIElementMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: UIElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): UIElementMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return eval(`(${metadataString})`);\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<UIElementMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...eval(`(${metadataString})`), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: UIElementMetadata) {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n metadata?: ElementMetadata;\n parentModelId?: string;\n}\n","import { Attribute, CfgStatus, EntityUtil, LineItem, PortDomain } from '@veloce/core';\nimport { compact, Dictionary, sortBy } from 'lodash';\nimport { PathBlock } from '../types/configuration.types';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return EntityUtil.findByFieldHierarchically('id', id, lineItems, 'lineItems');\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n","import { LineItem } from '@veloce/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from '../utils/line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { LineItem, UUID } from '@veloce/core';\nimport { UIDefinitionProps } from '../../types/ui-definition.types';\nimport { RuntimeContext } from './types/configuration.types';\n\nexport const getDefaultLineItem = (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/core';\nimport { RuntimeMode } from '@veloce/sdk/runtime';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UIDefinition } from '../../../types';\nimport { RuntimeContext } from '../types/configuration.types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService, private messageService: MessageService) {}\n\n getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n priceListId: uiDefinition?.properties?.priceList,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled,\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n if (!uiDefinition) {\n const errMsg = `Unable to find Default UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { ContextService, RuntimeMode } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { UIDefinitionProps } from '../../../types/ui-definition.types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _assets?: LineItem[];\n private _isInitialized = false;\n\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinitionProperties: UIDefinitionProps) {\n this.uiDefinitionProperties = uiDefinitionProperties;\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, configurationContext]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n priceListId: uiDefinitionProperties.priceList,\n properties: {\n ...this.runtimeContext?.properties,\n ...configurationContext.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: String(uiDefinitionProperties.pricingEnabled),\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: uiDefinitionProperties.priceList,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this._assets = props.assets;\n const configurationContext = this.contextService.resolve();\n\n if (!configurationContext) {\n return of();\n }\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (configurationContext.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n priceListId: this.uiDefinitionProperties.priceList,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n PricingEnabled: String(this.uiDefinitionProperties.pricingEnabled),\n PriceListId: this.uiDefinitionProperties.priceList,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n} from '@veloce/core';\nimport { ContextService, QuoteStates, RuntimeStep } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, of, shareReplay, throwError } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { LineItemWorker } from '../../../types/line-item.types';\nimport { getDefaultLineItem } from '../helpers';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\n\n constructor(\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n ) {}\n\n public reset() {\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.next({});\n }\n\n public patch(lineItem: LineItem): void {\n if (!this.lineItem.value) {\n return;\n }\n\n this.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n this.configure()\n .pipe(\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n return of();\n }),\n )\n .subscribe();\n }\n\n public updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get charges$(): Observable<Dictionary<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem | undefined> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return of(undefined);\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const lineItem = this.states.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties);\n const configurationRequest = this.createRequest(lineItem);\n configurationRequest.lineItems = this.states.currentState || [];\n configurationRequest.asset = this.states.asset;\n\n let request$: Observable<LineItem>;\n if (uiDefinitionProperties.pricingEnabled) {\n request$ = this.configurationApiService.configureAndPriceLineItem(configurationRequest, runtimeModel).pipe(\n map(({ lineItem, context, charges }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n this.charges.next(charges ?? {});\n\n return lineItem;\n }),\n );\n } else {\n request$ = this.configurationApiService.configureLineItem(configurationRequest, runtimeModel);\n }\n\n return request$.pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error => throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error)))),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n return {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve() as ConfigurationContext,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n SkipSelf,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem, UUID } from '@veloce/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { DynamicModuleService } from '../../services/dynamic-module.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/line-item.utils';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) el?: ViewContainerRef;\n\n @Input() meta!: ElementMetadata;\n\n private factory?: ComponentFactory<any>;\n private refs: Dictionary<ComponentRef<any> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n @SkipSelf() private parentInjector: Injector,\n private dynamicModuleService: DynamicModuleService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.elementContext.metadata = this.meta;\n this.factory = this.dynamicModuleService.getComponentFactory(this.meta);\n\n this.createComponents();\n }\n\n ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.parentInjector.get(ElementRendererComponent, null);\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data) => {\n const key = String(data?.id ?? UUID.UUID());\n const ref = this.refs[key] ? this.updateComponent(key, data) : this.createComponent(data);\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} as Dictionary<ComponentRef<any>>);\n\n const existingKeys = Object.keys(this.refs);\n const newKeys = Object.keys(refs);\n\n pull(existingKeys, ...newKeys).forEach(key => {\n this.destroyComponent(key);\n });\n\n this.refs = refs;\n this.cdr.detectChanges();\n }\n\n private getParentLineItem$(parentComp: ElementRendererComponent | null): Observable<LineItem> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory);\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n componentRef.instance?.model$.next(data);\n }\n\n return componentRef;\n }\n\n private updateComponent(key: string, data?: any): ComponentRef<any> | undefined {\n const ref = this.refs[key];\n ref?.instance.model$.next(data);\n\n return ref;\n }\n\n private destroyComponent(key: string) {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent {\n public metadata?: ElementMetadata;\n\n constructor(private elementContext: ElementContextService) {\n this.metadata = this.elementContext.metadata;\n }\n}\n","<ng-container *ngIf=\"metadata?.children.length\">\n <ng-container *ngFor=\"let child of metadata.children\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n </ng-container>\n</ng-container>\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = () => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\nimport { LineItem } from '@veloce/core';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) moduleHostRef?: ElementRef;\n\n @Input() remoteEntry?: string;\n @Input() remoteName?: string;\n @Input() exposedModule?: string;\n @Input() data?: InputData;\n @Input() eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { NgModule } from '@angular/core';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { AfterViewInit, Directive, Input, TemplateRef } from '@angular/core';\nimport { TemplatesService } from '../services/templates.service';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[customTemplate]' })\nexport class CustomTemplateDirective implements AfterViewInit {\n constructor(private templateRef: TemplateRef<any>, private templatesService: TemplatesService) {}\n\n @Input() customTemplate: string | undefined;\n\n ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { map, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { ConfigurationService } from '../modules/configuration/services/configuration.service';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { LineItemWorker } from '../types/line-item.types';\nimport { generateLineItem, getAttributeValue, parseBoundPath } from '../utils/line-item.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string) {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (id: string): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(id).li);\n };\n\n this.typeHost.remove = remove;\n }\n\n private registerPort(name: string): void {\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$?.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any) => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost() {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost() {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost() {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\nimport { UIDefinitionType } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\nimport * as lodash from 'lodash';\nimport { Dictionary } from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as vlInjectionTokens from './injection-tokens';\nimport * as vlCmsModules from './modules';\nimport { TemplatesService } from './services/templates.service';\nimport * as vlCmsLineItemTypes from './types/line-item.types';\nimport * as vlCmsUtils from './utils';\n\nexport const vendorMap: Dictionary<any> = {\n '@veloce/sdk/cms': {\n ...vlCmsModules,\n ...vlCmsUtils,\n ...vlCmsLineItemTypes,\n ...vlInjectionTokens,\n TemplatesService,\n },\n '@veloce/api': {\n SalesforceApiService,\n QuoteApiService,\n },\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { flatten, set } from 'lodash';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n VENDOR_MAP,\n} from '../injection-tokens';\nimport { ElementMetadata, UIDefinitionMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public readonly elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(private uiDef: UIDefinitionMetadata, elements: ElementMetadata[]) {\n this.elements = this.transpileScripts(elements);\n\n const flatElements = this.flattenElements(this.elements);\n\n for (const el of flatElements) {\n if (this.isSharedElement(el)) {\n this.sharedElements.push(el);\n } else {\n this.renderableElements.push(el);\n }\n }\n }\n\n private transpile(el: ElementMetadata): string | undefined {\n if (!el.script) {\n return;\n }\n\n const transformed = transform(el.script, {\n filename: el.name + '.ts',\n presets: ['typescript'],\n sourceMaps: 'inline',\n });\n\n return transformed.code ?? undefined;\n }\n\n private transpileScripts(elements: ElementMetadata[]): ElementMetadata[] {\n return elements.map(el => ({\n ...el,\n script: this.transpile(el),\n children: this.transpileScripts(el.children),\n }));\n }\n\n private flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));\n }\n\n private isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (element.type !== 'REFERENCE') {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n const sharedElement = this.getSharedElement(sourceElement);\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return finalElement;\n }\n\n private resolveElement(sourceElement: ElementMetadata): Type<any> | undefined {\n const element = this.processElementMetadata(sourceElement);\n if (!element) {\n return;\n }\n\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDef.type];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(element.styles ? { styles: [element.styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(sourceElement) },\n { provide: ELEMENT_CONFIG, useValue: config },\n { provide: VENDOR_MAP, useValue: vendorMap },\n ],\n };\n\n const cmp = Component(component)(class C extends config.component {});\n\n set(cmp, 'path', element.path);\n\n return cmp;\n }\n\n public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(Boolean) as Type<any>[];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, ModuleWithComponentFactories, NgModule, Type } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { from, Observable, tap } from 'rxjs';\nimport { ElementChildrenComponent } from '../components/element-children/element-children.component';\nimport { ElementRendererComponent } from '../components/element-renderer/element-renderer.component';\nimport { FederatedModule } from '../components/federated/federated.module';\nimport { CustomTemplateDirective } from '../directives/custom-template.directive';\nimport { ElementMetadata } from '../types';\nimport { UIDefinitionMetadata } from '../types/ui-definition.types';\nimport { ElementsResolver } from '../utils/elements-resolver';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class LauncherService {\n private module?: Type<NgModule>;\n private moduleInstance?: ModuleWithComponentFactories<NgModule>;\n\n constructor(private compiler: Compiler, private dynamicModuleService: DynamicModuleService) {}\n\n public compileModule(\n elements: ElementMetadata[],\n uiDefs: UIDefinitionMetadata,\n ): Observable<ModuleWithComponentFactories<NgModule>> {\n this.module = this.getModule(elements, uiDefs);\n return from(this.compiler.compileModuleAndAllComponentsAsync(this.module)).pipe(\n tap(m => {\n this.dynamicModuleService.componentFactories = m.componentFactories;\n this.moduleInstance = m;\n }),\n );\n }\n\n public destroy() {\n if (this.moduleInstance) {\n this.dynamicModuleService.clear();\n this.moduleInstance = undefined;\n }\n\n if (this.module) {\n this.compiler.clearCacheFor(this.module);\n this.module = undefined;\n }\n }\n\n private getModule(elements: ElementMetadata[], uiDef: UIDefinitionMetadata): Type<NgModule> {\n const staticComponents = [ElementChildrenComponent, ElementRendererComponent, CustomTemplateDirective];\n const elementsResolver = new ElementsResolver(uiDef, elements);\n this.dynamicModuleService.elementsTree = elementsResolver.elements;\n\n @NgModule({\n imports: [CommonModule, ReactiveFormsModule, FederatedModule],\n declarations: [...staticComponents, ...elementsResolver.getNgComponents()],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { ConfigurationRuntimeService } from '../../modules/configuration/services/configuration-runtime.service';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { LauncherService } from '../../services/launcher.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { UIDefinition, UIDefinitionProps, UIElement } from '../../types/ui-definition.types';\nimport { elementToMetadata } from '../../utils/element.utils';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() modelId?: string;\n @Input() uiDefinition?: UIDefinition;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements: ElementMetadata[] = [];\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private launcherService: LauncherService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private runtimeService: ConfigurationRuntimeService,\n ) {}\n\n ngOnInit() {\n this.startPreview();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.runtimeService.isInitialized;\n if (!this.uiDefinition || this.uiDefinition.type !== 'CONFIGURATION' || isAlreadyInitialized) {\n return of({});\n }\n\n if (!this.modelId) {\n console.warn(`No modelId is given for uiDefinition with '${this.uiDefinition.type}' type`);\n return of({});\n }\n\n // If still not initialized - init configuration in Test mode\n const uiDefinitionProps: UIDefinitionProps = this.uiDefinition.properties ?? {};\n return this.runtimeService\n .initTestMode(this.modelId, uiDefinitionProps)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private elementToMetadataSafe(elements: UIElement[]): ElementMetadata[] {\n try {\n return elements.map(element => elementToMetadata(element));\n } catch (e) {\n console.error(e);\n this.messageService.add({ severity: 'error', summary: String(e) });\n return [];\n }\n }\n\n private startPreview() {\n if (!this.uiDefinition) {\n return;\n }\n\n const { children, ...uiDefinitionMeta } = this.uiDefinition;\n this.elements = this.elementToMetadataSafe(children);\n\n const compilation$ = this.launcherService.compileModule(this.elements, uiDefinitionMeta);\n\n forkJoin([compilation$, this.initializeConfiguration$()])\n .pipe(\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [ElementRendererModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { UIElementMetadata } from '../types';\n\nexport function ElementDefinition(definition: UIElementMetadata) {\n return function (constructor: any) {\n return constructor;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ContextService } from '@veloce/sdk/runtime';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n providers: [\n ContextService,\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CoreModule } from '@veloce/core';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { DynamicModuleService } from './services/dynamic-module.service';\nimport { LauncherService } from './services/launcher.service';\nimport { QuoteApiService, SalesforceApiService } from '@veloce/api';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ConfigurationModule],\n providers: [LauncherService, DynamicModuleService, SalesforceApiService, QuoteApiService],\n})\nexport class LauncherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","ElementComponent","BehaviorSubject","Component","ChangeDetectionStrategy","Inject","Injector","i0","Injectable","i1.DynamicModuleService","i1.ElementComponent","Directive","DOCUMENT","UUID","compact","EntityUtil","sortBy","map","RuntimeModel","RuntimeMode","i1","i2","combineLatest","ConfigurationContextMode","first","tap","of","SalesforceIdUtils","i3.RuntimeContextService","ConfigurationMode","catchError","shareReplay","throwError","RuntimeStep","i1.ConfigurationRuntimeService","i3","i4","Subject","takeUntil","isArray","pull","i2.ElementContextService","i3.IOProviderService","i4.ConfigurationService","ViewContainerRef","SkipSelf","ViewChild","Input","i1.ElementContextService","i2.ElementRendererComponent","EventEmitter","TemplateRef","Output","NgModule","i1.TemplatesService","SalesforceApiService","QuoteApiService","angularCore","angularForms","rxjs","rxjsOperators","lodash","transform","flatten","set","from","CommonModule","ReactiveFormsModule","switchMap","forkJoin","i1.LauncherService","i2.ConfigurationService","i4.ConfigurationRuntimeService","i5","i6.ElementRendererComponent","i7","ViewEncapsulation","LoaderModule","ContextService","ContextApiService","ProductModelApiService","ConfigurationApiService","CoreModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,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,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,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,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,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,CAAC;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,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,EAAE;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC;gBAAE,IAAI;IACV,gBAAA,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;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,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;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;IAAE,yBAAA;IAC5G,wBAAA,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;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;IACxC,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;IAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IACpB,gBAAA,IAAI,CAAC,EAAE;IAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,aAAA;IACJ,SAAA;IACD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QAClE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;QCxOa,qBAAqB,GAAG,IAAIA,iBAAc,CAAkB,uBAAuB,EAAE;QAErF,sBAAsB,GAAG,IAAIA,iBAAc,CAAuB,8BAA8B,EAAE;QAClG,gBAAgB,GAAG,IAAIA,iBAAc,CAAkB,wBAAwB,EAAE;QACjF,uBAAuB,GAAG,IAAIA,iBAAc,CAAkB,+BAA+B,EAAE;QAC/F,cAAc,GAAG,IAAIA,iBAAc,CAAgB,sBAAsB,EAAE;QAC3E,UAAU,GAAG,IAAIA,iBAAc,CAAkB,YAAY;;;;;;;;;;;;ICP1E,IAAA,MAAA,kBAAA,YAAA;IAME,IAAA,SAAA,MAAA,CAAmB,QAAkB,EAAA;IAAlB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IALlB,QAAA,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;YAMxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;SAChE;IAEM,IAAA,MAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAGN,KAAA,GAAA,IAAA,CAAA;;YAFC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;YAC7E,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,KAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAI,CAAC,CAAC,CAArC,EAAqC,CAAC,CAAC;SAC/E,CAAA;QAEM,MAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,MAAc,EAAA;IAClC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAA;QACF,OAAA,MAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;ACdYC,4BAAgB,kBAAA,UAAA,MAAA,EAAA;QAAS,SAAM,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAI1C,IAAA,SAAA,gBAAA,CAAqC,QAAkB,EAAA;YAAvD,IACE,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAM,QAAQ,CAAC,IAGhB,IAAA,CAAA;IAJoC,QAAA,KAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;YAHvC,KAAA,CAAA,MAAM,GAAG,IAAIC,oBAAe,CAAkB,SAAS,CAAC,CAAC;YAMvE,MAAM,CAAA,SAAA,CAAA,WAAW,YAAE,CAAC;;SACrB;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,MAAM,CAAC,QAAQ,MAAf,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAM,CAAa,CAAA,EAAA,CAAC,CAAC;SACrD,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,MAAM,CAAC,eAAe,MAAtB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAM,CAAoB,CAAA,EAAA,CAAC,CAAC;SAC5D,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,MAAM,CAAC,WAAW,MAAlB,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAM,CAAgB,CAAA,EAAA,CAAC,CAAC;SACxD,CAAA;eACF,gBAAA,CAAA;KAAA,CArBqC,MAAM,CAAA,EAqB3C;AArBYD,4BAAgB,GAAA,UAAA,CAAA;IAL5B,IAAAE,YAAS,CAAC;IACT,QAAA,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,QAAA,GAAG,EAAE,IAAI;SACV,CAAC;IAKa,IAAA,OAAA,CAAA,CAAA,EAAAC,SAAM,CAACC,WAAQ,CAAC,CAAA;KAJlB,EAAAL,wBAAgB,CAqB5B;;IC7BM,IAAM,SAAS,GAAG,UAAC,IAAY,EAAA;;QACpC,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAA,IAAI,MAA0B,CAAC;IAC/B,IAAA,IAAI,QAA4B,CAAC;IAEjC,IAAA,IAAI,CAAA,EAAA,GAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,UAAU,CAAC,GAAG,CAAC,EAAE;IAChC,QAAA,MAAM,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,KAAK,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzC,KAAA;IAED,IAAA,IAAI,CAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,MAAG,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAC,CAAC,MAAK,GAAG,EAAE;IAC9C,QAAA,QAAQ,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,GAAG,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACzC,KAAA;IAED,IAAA,IAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC9C,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1B,KAAA;QAED,OAAO;IACL,QAAA,UAAU,EAAA,UAAA;IACV,QAAA,QAAQ,EAAE,gBAAgB;IAC1B,QAAA,MAAM,EAAA,MAAA;IACN,QAAA,QAAQ,EAAA,QAAA;SACT,CAAC;IACJ,CAAC,CAAC;IAEK,IAAM,mBAAmB,GAAG,UACjC,QAA2B,EAC3B,MAAc,EACd,WAAmB,EAAA;;;IAEnB,QAAA,KAAiB,IAAA,UAAA,GAAA,QAAA,CAAA,QAAQ,CAAA,kCAAA,EAAE,CAAA,YAAA,CAAA,IAAA,EAAA,YAAA,GAAA,UAAA,CAAA,IAAA,EAAA,EAAA;IAAtB,YAAA,IAAM,EAAE,GAAA,YAAA,CAAA,KAAA,CAAA;gBACX,IAAI,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE;IACnD,gBAAA,OAAO,EAAE,CAAC;IACX,aAAA;IAED,YAAA,IAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,YAAA,IAAI,KAAK,EAAE;IACT,gBAAA,OAAO,KAAK,CAAC;IACd,aAAA;IACF,SAAA;;;;;;;;;QAED,OAAO;IACT,CAAC,CAAC;IAEK,IAAM,eAAe,GAAG,UAC7B,QAA2B,EAC3B,OAAwB,EACxB,IAAiB,EAAA;;QAEjB,IAAI,IAAI,CAAC,MAAM,EAAE;IACf,QAAA,OAAO,MAAA,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC;IAC3E,KAAA;QAED,IAAM,eAAe,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;IACvD,IAAA,IAAM,QAAQ,GAAO,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,QAAQ,EAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,UAAU,EAAE;IACnB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAA;QAED,OAAO,QAAQ,CAAC,MAAM,EAAE;IACtB,QAAA,IAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEjC,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,eAAe,CAAC,GAAG,EAAE,CAAC;IACvB,SAAA;IAAM,aAAA,IAAI,OAAO,EAAE;IAClB,YAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAA;IACF,KAAA;IAED,IAAA,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;;ICxED,IAAA,oBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,oBAAA,GAAA;IAEU,QAAA,IAAa,CAAA,aAAA,GAAsB,EAAE,CAAC;IACtC,QAAA,IAAmB,CAAA,mBAAA,GAA4B,EAAE,CAAC;SA0B3D;IAxBC,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;IAItB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;aACjC;IAND,QAAA,GAAA,EAAA,UAAuB,IAA6B,EAAA;IAClD,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aACjC;;;IAAA,KAAA,CAAA,CAAA;QAMD,oBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,OAAwB,EAAA;YAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAK,OAAA,CAAC,CAAC,aAAqB,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAA,EAAA,CAAC,CAAC;SAC1F,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;IAED,QAAA,GAAA,EAAA,UAAiB,IAAuB,EAAA;IACtC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC3B;;;IAJA,KAAA,CAAA,CAAA;IAMD,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACE,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAC9B,CAAA;;;4IA3BU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAM,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gJAApB,oBAAoB,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBADhCC,aAAU;;;ICKX,IAAA,iBAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,iBAAA,CAAoB,oBAA0C,EAAA;IAA1C,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;IAFtD,QAAA,IAAM,CAAA,MAAA,GAAiD,EAAE,CAAC;SAEA;IAE3D,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,EAAmB,EAAE,IAAY,EAAE,MAAsB,EAAA;;IACtE,QAAA,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAY,EAAE,CAAC;SAC7D,CAAA;IAEM,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,EAAmB,EAAE,IAAY,EAAE,MAAsB,EAAA;YACtE,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SAC7C,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,EAAmB,EAAE,IAAY,EAAE,MAAsB,EAAA;;IAC7E,QAAA,IAAM,MAAM,GAAG,CAAC,MAAM,CAAC;IAEvB,QAAA,IAAI,MAAM,EAAE;IACV,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAA,EAAA,GAAA,EAAE,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,SAAA;IAED,QAAA,IAAM,MAAM,GAAG,SAAS,CAAC,MAAgB,CAAC,CAAC;IAC3C,QAAA,IAAM,WAAW,GACf,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEzG,IAAM,SAAS,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,CAAC;IAC1C,QAAA,IAAM,KAAK,GAAG,WAAW,GAAG,IAAIN,oBAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;YAE7F,IAAM,YAAY,GAAG,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YAClH,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,GAAI,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;SACrE,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,IAAY,EAAE,IAAY,EAAE,OAA8B,EAAA;YAA5E,IAiBP,KAAA,GAAA,IAAA,CAAA;IAhBC,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;IACtB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,SAAA;IAED,QAAA,IAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAE9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;IAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,aAAP,OAAO,KAAA,KAAA,CAAA,GAAP,OAAO,GAAI,IAAIA,oBAAe,CAAM,SAAS,CAAC,CAAC;IAC1E,SAAA;YAED,IAAI,OAAO,IAAI,oBAAoB,EAAE;;gBAEnC,UAAU,CAAC,cAAM,OAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;IAC/D,SAAA;YAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;SAChC,CAAA;;;yIAhDU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAAF,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6IAAjB,iBAAiB,EAAA,CAAA,CAAA;sHAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;sBAD7BC,aAAU;;;ACHX,QAAA,gBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,gBAAA,GAAA;IAEU,QAAA,IAAS,CAAA,SAAA,GAAiC,EAAE,CAAC;SAStD;IAPQ,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAY,EAAE,WAA6B,EAAA;IACzD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;SACpC,CAAA;QAEM,gBAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,IAAY,EAAA;IACrB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC7B,CAAA;;;wIATU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAD,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4IAAhB,gBAAgB,EAAA,CAAA,CAAA;sHAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAD5BC,aAAU;;;ICKX,IAAA,QAAA,kBAAA,YAAA;IACE,IAAA,SAAA,QAAA,CAAmB,IAAsB,EAAA;YAAzC,IA4BC,KAAA,GAAA,IAAA,CAAA;;IA5BkB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;IACvC,QAAA,IAAM,eAAe,GAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClF,QAAA,IAAM,aAAa,GAAsB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnF,QAAA,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,eAAe,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;IAC5D,QAAA,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,eAAe,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;IAE9D,QAAA,MAAM,CAAC,OAAO,CAAC,UAAC,EAAW,EAAA;IAAX,YAAA,IAAA,EAAA,GAAA,aAAW,EAAV,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;IACxB,YAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,mBAAiB,GAAG,GAAA,4BAA4B,CAAC,CAAC;IACjE,aAAA;IAED,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,eAAe,CAAC,OAAO,0CAAG,GAAG,CAAC,MAAK,SAAS,EAAE;IAChD,gBAAA,OAAO,CAAC,IAAI,CACV,MAAI,GAAG,GAAA,iGAAiG,CACzG,CAAC;IACH,aAAA;IAEA,YAAA,KAAI,CAAC,IAAY,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9E,SAAC,CAAC,CAAC;IAEH,QAAA,OAAO,CAAC,OAAO,CAAC,UAAC,EAAW,EAAA;IAAX,YAAA,IAAA,EAAA,GAAA,aAAW,EAAV,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;IACzB,YAAA,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,mBAAiB,GAAG,GAAA,6BAA6B,CAAC,CAAC;IAClE,aAAA;IAEA,YAAA,KAAI,CAAC,IAAY,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9E,SAAC,CAAC,CAAC;SACJ;;;gIA7BU,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAAH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAR,QAAQ,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;sBADpBI,YAAS;;;ICEV,IAAM,gBAAgB,GAAG,UAAC,MAAc,EAAA;QACtC,IAAM,MAAM,GAAG,IAAI,MAAM,CACvB,+KAA2K,EAC3K,GAAG,CACJ,CAAC;QACF,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAK,EAAA,OAAA,QAAS,GAAA,EAAE,GAAc,aAAA,GAAA,GAAG,GAAK,KAAA,CAAA,EAAA,CAAC,CAAC;IACjG,IAAA,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAGF,IAAA,YAAA,kBAAA,YAAA;IAIE,IAAA,SAAA,YAAA,CAAmB,IAAsB,EAAA;IAAtB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAkB;IACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAACC,WAAQ,CAAC,CAAC;IACjD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpD,QAAA,IAAM,eAAe,GAAoB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAClF,QAAA,IAAM,qBAAqB,GAAgC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAE3G,QAAA,IAAI,qBAAqB,KAArB,IAAA,IAAA,qBAAqB,uBAArB,qBAAqB,CAAE,MAAM,EAAE;IACjC,YAAA,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9C,SAAA;YAED,IAAI,eAAe,CAAC,MAAM,EAAE;IAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACxC,SAAA;SACF;QAEO,YAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,SAAiB,EAAA;YACjC,IAAM,EAAE,GAAG,IAAI,CAACC,SAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAEhC,QAAA,IAAI,aAAa,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEhD,IAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5D,IAAM,SAAS,GAAG,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAG,CAAC,CAAC,CAAC;IAElC,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO;IACR,SAAA;IAED,QAAA,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAS,GAAA,SAAW,CAAC,CAAC;YAE3E,MAAM,CAAC,IAAI,GAAG,MAAO,GAAA,EAAE,6BAAwB,aAAa,GAAA,mBAAA,GAC/C,SAAS,GAAA,MAAM,CAAC;YAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAM,WAAW,GAAI,MAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,WAAW,YAAY,MAAM,EAAE;IACjC,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,SAAA;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACxC,CAAA;;;oIA/CU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAAH,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;sBADxBI,YAAS;;;ICbV;;IAEG;IAEI,IAAM,MAAM,GAA6C;IAC9D,IAAA,MAAM,EAAE;IACN,QAAA,SAAS,EAAEV,wBAAgB;IAC3B,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IAClC,KAAA;IACD,IAAA,SAAS,EAAE;IACT,QAAA,SAAS,EAAEA,wBAAgB;IAC3B,QAAA,eAAe,EAAE,uCAAuC;YACxD,OAAO,EAAE,CAAC,YAAY,CAAC;IACxB,KAAA;IACD,IAAA,OAAO,EAAE;IACP,QAAA,SAAS,EAAEA,wBAAgB;IAC3B,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IACjC,QAAA,gBAAgB,EAAE,IAAI;IACtB,QAAA,cAAc,EAAE,IAAI;IACrB,KAAA;IACD,IAAA,SAAS,EAAE;IACT,QAAA,SAAS,EAAEA,wBAAgB;IAC3B,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IACjC,QAAA,gBAAgB,EAAE,IAAI;IACvB,KAAA;KACF;;IC1BD,IAAM,oBAAoB,GAAG,oBAAoB,CAAC;IAClD,IAAM,wBAAwB,GAAG,qDAAqD,CAAC;AAE1E,QAAA,iBAAiB,GAAG,UAAC,EAAa,EAAE,UAAmB,EAAA;;IAClE,IAAA,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACnD,IAAA,IAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAA,IAAM,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAA,IAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,CAAA,EAAA,GAAA,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,CAAC,CAAC,CAAC;QAEjF,IAAI,CAAC,iBAAiB,EAAE;IACtB,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACvD,KAAA;QAED,IAAM,eAAe,GAAG,sBAAsB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7D,IAAA,IAAM,IAAI,GAAG,CAAC,UAAU,GAAG,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzE,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,eAAe,CAClB,EAAA,EAAA,IAAI,EAAA,IAAA,EACJ,MAAM,EAAE,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,wBAAwB,EAAE,cAAc,CAAC,EACjE,QAAQ,EAAA,QAAA,EACR,MAAM,EAAA,MAAA,EACN,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAA9B,EAA8B,CAAC,EAClE,CAAA,CAAA;IACJ,EAAE;AAEK,QAAM,iBAAiB,GAAG,UAAC,QAAyB,EAAA;IACzD,IAAA,IAAM,UAAU,GAAsB;YACpC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,EAAQ,EAAA;IAAN,YAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;IAAO,YAAA,OAAA,IAAI,CAAA;IAAJ,SAAI,CAAC;SACpD,CAAC;IACF,IAAA,IAAM,oBAAoB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAElE,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,GAAA,GAAI,QAAQ,CAAC,IAAI,GAA8C,8CAAA,CAAC,CAAC;IAClF,KAAA;IAED,IAAA,IAAM,MAAM,GACV,QAAQ,CAAC,MAAM;IACf,QAAA,MAAM,CAAC,IAAI,CACT,QAAQ,CAAC,MAAM,CAAC,OAAO,CACrB,oBAAoB,EACpB,qBAAA,GAAsB,wBAAwB,CAAC,oBAAoB,CAAC,GAAwB,wBAAA,CAC7F,CACF,CAAC;IACJ,IAAA,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAA,IAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE/D,OAAO;IACL,QAAA,MAAM,EAAA,MAAA;IACN,QAAA,QAAQ,EAAA,QAAA;IACR,QAAA,MAAM,EAAA,MAAA;IACN,QAAA,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,iBAAiB,CAAC,IAAI,CAAC,CAAA,EAAA,CAAC;SACjE,CAAC;IACJ,EAAE;AAEK,QAAM,wBAAwB,GAAG,UAAC,eAAkC,EAAA;;QACzE,IAAM,QAAQ,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,eAAe,CAAE,CAAC;;IAGlC,IAAA,IAAA,EAAqB,GAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAvC,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,IAAI,UAAyB,CAAC;QAChD,IAAM,KAAK,GAA+B,QAAQ,GAAG,EAAE,QAAQ,EAAA,QAAA,EAAE,GAAG,IAAI,GAAG,EAAE,IAAI,EAAA,IAAA,EAAE,GAAG,SAAS,CAAC;IAChG,IAAA,IAAI,KAAK,EAAE;IACT,QAAA,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,KAAA;IAAM,SAAA;YACL,OAAO,QAAQ,CAAC,KAAK,CAAC;IACvB,KAAA;;IAGD,IAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,KAAA;;IAGD,IAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvB,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC3B,KAAA;;IAGD,IAAA,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAY,EAAA;;IAAZ,QAAA,IAAA,EAAA,GAAA,aAAY,EAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;YAC3E,OAAY,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,aAAE,GAAC,GAAG,CAAA,GAAG,KAAK,IAAI,IAAI,MAAG,CAAA;SACzC,EAAE,EAAE,CAAC,CAAC;IACP,IAAA,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IAC5C,QAAA,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,KAAA;IAAM,SAAA;YACL,OAAO,QAAQ,CAAC,MAAM,CAAC;IACxB,KAAA;;IAGD,IAAA,IAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAY,EAAA;;IAAZ,QAAA,IAAA,EAAA,GAAA,aAAY,EAAX,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;YAC7E,OAAY,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,aAAE,GAAC,GAAG,CAAA,GAAG,KAAK,IAAI,IAAI,MAAG,CAAA;SACzC,EAAE,EAAE,CAAC,CAAC;IACP,IAAA,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IAC9C,QAAA,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,KAAA;IAAM,SAAA;YACL,OAAO,QAAQ,CAAC,OAAO,CAAC;IACzB,KAAA;;IAGD,IAAA,IAAI,EAAC,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;YAC9B,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC1B,KAAA;;IAGD,IAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACtB,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC1B,KAAA;IAED,IAAA,OAAO,QAAQ,CAAC;IAClB,EAAE;AAEK,QAAM,sBAAsB,GAAG,UAAC,MAAc,EAAA;;IACnD,IAAA,IAAM,cAAc,GAAG,CAAC,CAAA,EAAA,GAAA,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;IAGxE,IAAA,wBAAwB,CAAC,SAAS,GAAG,CAAC,CAAC;IAEvC,IAAA,OAAO,IAAI,CAAC,GAAA,GAAI,cAAc,GAAA,GAAG,CAAC,CAAC;IACrC,EAAE;AAEW,QAAA,qBAAqB,GAAG,UAAC,MAAc,EAAE,MAAkC,EAAA;;IACtF,IAAA,IAAM,cAAc,GAAG,CAAC,CAAA,EAAA,GAAA,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAI,EAAE,EAAE,CAAC,CAAC,CAAC;;IAGxE,IAAA,wBAAwB,CAAC,SAAS,GAAG,CAAC,CAAC;QAEvC,IAAI,CAAC,cAAc,EAAE;IACnB,QAAA,OAAO,MAAM,CAAC;IACf,KAAA;QAED,IAAM,OAAO,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAI,cAAc,GAAA,GAAG,CAAC,CAAA,EAAK,MAAM,CAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,EAAE;AAEK,QAAM,gBAAgB,GAAG,UAAC,IAAkB,EAAA;IACjD,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,EAAE;AAEK,QAAM,oBAAoB,GAAG,UAAC,IAAkB,EAAA;;QACrD,OAAO,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,KAAK,CAAC;IACrE,EAAE;IAEI,SAAU,wBAAwB,CAAC,eAAkC,EAAA;IACzE,IAAA,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEzD,IAAA,OAAO,OAAO,CAAC,OAAO,CAAC,8BAA8B,EAAE,UAAU,KAAK,EAAA;YACpE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjC,KAAC,CAAC,CAAC;IACL;;IC5JA,IAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;6IAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAM,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iJAArB,qBAAqB,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBADjCC,aAAU;;;ACCJ,QAAM,cAAc,GAAG,UAAC,IAAY,EAAA;;QACzC,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,2EAA2E,EAAE,GAAG,CAAC,CAAC;IAC5G,IAAA,IAAM,MAAM,GACV,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAG,CAAC,UAAA,KAAK,EAAA;YACrB,IAAA,EAAA,GAAA,OAAyBM,cAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAA,CAAA,CAAA,EAAjD,IAAI,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,IAAI,GAAA,EAAA,CAAA,CAAA,CAA6B,CAAC;YACzD,OAAO,EAAE,IAAI,EAAA,IAAA,EAAE,QAAQ,UAAA,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC;IAClC,KAAC,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;IAEX,IAAA,OAAO,MAAM,CAAC;IAChB,EAAE;AAEW,QAAA,YAAY,GAAG,UAAC,EAAU,EAAE,SAAqB,EAAA;IAC5D,IAAA,OAAOC,eAAU,CAAC,yBAAyB,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAChF,EAAE;QAEW,cAAc,GAAG,UAAC,QAAkB,EAAE,QAAgB,EAAE,QAAkB,EAAA;IACrF,IAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,EAAE,KAAK,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC9D,OACK,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAQ,CACX,EAAA,EAAA,SAAS,EACJ,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,UAAU,CACV,CAAA,EAAA,MAAA,CAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;gBAC1B,OAAO,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,SAAC,CAAC,CAAA,CACH,EACD,CAAA,CAAA;IACJ,EAAE;AAEW,QAAA,cAAc,GAAG,UAAC,QAAkB,EAAE,UAAkB,EAAA;IACnE,IAAA,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,QAAQ,CACX,EAAA,EAAA,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC1B,GAAG,CAAC,UAAA,EAAE,EAAA;IACL,YAAA,IAAI,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE;oBACxB,OAAO;IACR,aAAA;IAAM,iBAAA,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;IAC9B,gBAAA,OAAO,cAAc,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACvC,aAAA;IACD,YAAA,OAAO,EAAE,CAAC;IACZ,SAAC,CAAC;IACD,aAAA,MAAM,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,CAAC,CAAH,EAAG,CAAe,EACjC,CAAA,CAAA;IACJ,EAAE;AAEW,QAAA,eAAe,GAAG,UAAC,QAAkB,EAAE,SAAmB,EAAA;IACrE,IAAA,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE;YAChC,OAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAY,SAAS,CAAG,CAAA;IACzB,KAAA;QAED,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACK,QAAQ,CAAA,EAAA,EACX,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA;IAClC,YAAA,IAAI,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,EAAE;IAC1B,gBAAA,OAAO,SAAS,CAAC;IAClB,aAAA;IAAM,iBAAA,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE;IAC9B,gBAAA,OAAO,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACvC,aAAA;IACD,YAAA,OAAO,EAAE,CAAC;aACX,CAAC,EACF,CAAA,CAAA;IACJ,EAAE;AAEK,QAAM,aAAa,GAAG,UAAC,UAAuB,EAAA;IACnD,IAAA,OAAO,UAAU,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAe,EAAA;;gBAAb,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAAO,QAAA,QAAM,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CAAE,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,IAAI,CAAG,GAAA,KAAK,MAAG,EAAA;SAAA,EAAE,EAAE,CAAC,CAAC;IACtF,EAAE;AAEW,QAAA,aAAa,GAAG,UAAC,UAAuB,EAAE,KAAoB,EAAA;IAApB,IAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAoB,GAAA,EAAA,CAAA,EAAA;IACzE,IAAA,IAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,EAAQ,EAAA;IAAN,QAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;IAAO,QAAA,OAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAApB,KAAoB,CAAC,CAAC;IACvE,IAAA,OAAOC,aAAM,CAAC,QAAQ,EAAE,CAAC,UAAC,EAAQ,EAAA;IAAN,YAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;IAAO,YAAA,OAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;aAAA,CAAC,CAAC,CAAC;IAC/D,EAAE;AAEW,QAAA,gBAAgB,GAAG,UAC9B,kBAA+B,EAC/B,kBAAkD,EAAA;IAElD,IAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAe,EAAA;gBAAb,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAC5C,QAAA,IAAA,EAAA,GAAA,MAAA,CAAa,aAAa,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAA,CAAA,CAAA,EAAtC,QAAQ,QAA8B,CAAC;IAC9C,QAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CACK,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA,EAAA,CAAC,CAAA,CAAA,EAAA;IACpC,YAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAC,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAR,QAAQ,GAAI,EAAE,IAAI,EAAA,IAAA,EAAE,EAAG,EAAA,EAAA,SAAS,EAAE,MAAmB,EAAE,KAAK,EAAA,KAAA,EAAA,CAAA;IAClE,SAAA,CAAA,CAAA;SACH,EAAE,kBAAkB,CAAC,CAAC;IACzB,EAAE;QAEW,eAAe,GAAG,UAAC,YAAsB,EAAE,EAAU,EAAE,KAAqC,EAAA;QACvG,IAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,EAAE;IACb,QAAA,OAAO,YAAY,CAAC;IACrB,KAAA;QAED,IAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,eAAe,CAAC,YAAY,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,QAAQ,CAAE,EAAA,EAAA,UAAU,EAAA,UAAA,IAAG,CAAC;IACpE,EAAE;AAEW,QAAA,iBAAiB,GAAG,UAAC,UAAuB,EAAE,IAAY,EACrE,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,UAAU,CAAC,IAAI,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,IAAI,KAAK,IAAI,CAAlB,EAAkB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAA,GAAC;AAE9C,QAAM,gBAAgB,GAAG,UAC9B,IAAY,EACZ,IAAY,EACZ,QAAgB,EAChB,UAA+C,EAC/C,SAA0B,EAAA;IAD1B,IAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAA+C,GAAA,EAAA,CAAA,EAAA;IAC/C,IAAA,IAAA,SAAA,KAAA,KAAA,CAAA,EAAA,EAAA,SAA0B,GAAA,EAAA,CAAA,EAAA;QAE1B,OAAO;IACL,QAAA,IAAI,EAAA,IAAA;IACJ,QAAA,IAAI,EAAA,IAAA;IACJ,QAAA,UAAU,EAAE,KAAK;IACjB,QAAA,SAAS,EAAE,KAAK;IAChB,QAAA,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAC,EAAe,EAAA;oBAAb,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAAO,YAAA,QAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,EAAA,KAAA,EAAE,EAAC;IAApC,SAAoC,CAAC;IACrF,QAAA,SAAS,EAAA,SAAA;IACT,QAAA,QAAQ,EAAA,QAAA;IACR,QAAA,GAAG,EAAE,CAAC;SACK,CAAC;IAChB,EAAE;AAEW,QAAA,oBAAoB,GAAG,UAAC,UAAsB,EAAE,IAAY,EAAA;;QACvE,IAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,EAAQ,EAAA;IAAN,QAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;YAAO,OAAA,IAAI,KAAK,IAAI,CAAA;IAAb,KAAa,CAAC,CAAC;QAEtE,IAAA,EAAA,GAAA,OAAc,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAV,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAU,CAAE,iBAAiB,0CAC7C,MAAM,CAAC,UAAC,EAAgB,EAAA;IAAd,QAAA,IAAA,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;YAAO,OAAA,YAAY,KAAK,UAAU,CAAA;IAA3B,KAA2B,CACzD,CAAA,MAAM,CACL,UAAC,GAAG,EAAE,EAAE,EAAA;YACA,IAAA,EAAA,GAAA,MAAwB,CAAA,GAAG,EAAA,CAAA,CAAA,EAA1B,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,SAAS,GAAA,EAAA,CAAA,CAAA,CAAO,CAAC;IAClC,QAAA,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5D,KAAC,EACD,CAAC,CAAC,EAAE,CAAC,CAAC,CACP,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAA,CAAA,CAAA,EARN,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,IAAI,QAQH,CAAC;IAEd,IAAA,OAAO,EAAE,GAAG,EAAA,GAAA,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC;IACvB;;ACpIA,QAAA,cAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,cAAA,CAAY,GAAa,EAAA;YACvB,IAAI,CAAC,EAAE,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,GAAG,CAAE,CAAC;SACtB;IAEM,IAAA,cAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,QAAgB,EAAE,QAAkB,EAAA;IAChD,QAAA,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;SACxE,CAAA;QAEM,cAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,EAAU,EAAA;IACtB,QAAA,OAAO,IAAI,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SACxD,CAAA;QAEM,cAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,SAAmB,EAAA;IAChC,QAAA,OAAO,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;SAChE,CAAA;IAEM,IAAA,cAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,KAAqC,EAAE,EAAW,EAAA;IACtE,QAAA,OAAO,IAAI,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAF,IAAA,IAAA,EAAE,cAAF,EAAE,GAAI,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;SAC9E,CAAA;QACF,OAAA,cAAA,CAAA;IAAA,CAAA,EAAA;;;;;;;ACrBY,QAAA,kBAAkB,GAAG,UAAC,OAAuB,EAAE,sBAAyC,EAAA;;IACnG,IAAA,IAAM,EAAE,GAAGH,SAAI,CAAC,IAAI,EAAE,CAAC;QAEvB,IAAM,QAAQ,GAAa,MACzB,CAAA,MAAA,CAAA,EAAA,EAAE,EAAA,EAAA,EACF,IAAI,EAAE,CAAA,EAAA,GAAA,sBAAsB,CAAC,QAAQ,mCAAI,EAAE,EAC3C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,CAAC,EACN,WAAW,EAAE,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,KAAI,OAAO,CAAC,WAAW,EACnE,SAAS,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAC/B,GAAC,OAAO,CAAC,UAAU;IACpB,UAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,EAAE,EAAE;IAC1F,UAAE,EAAE,EACK,CAAC;IAEd,IAAA,OAAO,QAAQ,CAAC;IAClB;;ICTA,IAAA,qBAAA,kBAAA,YAAA;QACE,SAAoB,qBAAA,CAAA,uBAAgD,EAAU,cAA8B,EAAA;IAAxF,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;IAAU,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;SAAI;IAEhH,IAAA,qBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,SAAiB,EAAE,UAAmB,EAAA;YAAxD,IAwBC,KAAA,GAAA,IAAA,CAAA;IAvBC,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,IAAI,CACvFI,iBAAG,CAAC,UAAA,WAAW,EAAA;;gBACb,IAAM,YAAY,GAAG,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACvD,YAAA,IAAM,YAAY,GAAGC,iBAAY,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5E,IAAA,EAAA,GACJ,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,SAAS,KAAK,SAAS,CAAzB,EAAyB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EADjF,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAC0D,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,gBAAA,YAAY,EAAE,YAAY;IAC1B,gBAAA,YAAY,EAAE,YAAY;oBAC1B,WAAW,EAAEC,cAAW,CAAC,IAAI;IAC7B,gBAAA,SAAS,EAAE,SAAS;oBACpB,WAAW,EAAE,CAAA,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,WAAW,KAAI,WAAW;IACnD,gBAAA,UAAU,EAAE,UAAU;IACtB,gBAAA,WAAW,EAAE,CAAA,EAAA,GAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS;IAChD,gBAAA,UAAU,EAAE;IACV,oBAAA,cAAc,EAAE,CAAA,EAAA,GAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,cAAc;IACxD,oBAAA,WAAW,EAAE,CAAA,EAAA,GAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,uBAAZ,YAAY,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS;IACjD,iBAAA;iBACF,CAAC;aACH,CAAC,CACH,CAAC;SACH,CAAA;QAEO,qBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,WAAwB,EAAA;;IAC9C,QAAA,IAAI,gBAA0D,CAAC;YAC/D,IAAI;gBACF,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAChE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBACV,OAAO;IACR,SAAA;IAED,QAAA,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,UAAA,KAAK,EAAK,EAAA,OAAA,KAAsB,CAAC,OAAO,CAA9B,EAA8B,CAAmB,CAAC;IAC1G,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,aAAa,CAAC,IAAI,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAK,CAAC,OAAO,GAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YAEpF,IAAI,CAAC,YAAY,EAAE;gBACjB,IAAM,MAAM,GAAG,2BAA2B,CAAC;IAE3C,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;IACtB,gBAAA,QAAQ,EAAE,OAAO;IACjB,gBAAA,OAAO,EAAE,OAAO;IACjB,aAAA,CAAC,CAAC;IACH,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,SAAA;IAED,QAAA,OAAO,YAAY,CAAC;SACrB,CAAA;;;6IAnDU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAAd,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iJAArB,qBAAqB,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBADjCC,aAAU;;;ACGX,QAAA,2BAAA,kBAAA,YAAA;IAOE,IAAA,SAAA,2BAAA,CACU,UAAmC,EACnC,cAA8B,EAC9B,qBAA4C,EAAA;IAF5C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IACnC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IAC9B,QAAA,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;IAP9C,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IAExB,QAAA,IAAsB,CAAA,sBAAA,GAAsB,EAAE,CAAC;SAMlD;IAEG,IAAA,2BAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACL,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACjC,QAAA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IACzB,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;SAClC,CAAA;IAEM,IAAA,2BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,OAAe,EAAE,sBAAyC,EAAA;YAAvE,IA+BN,KAAA,GAAA,IAAA,CAAA;IA9BC,QAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAErD,QAAA,OAAOc,kBAAa,CAAC;IACnB,YAAA,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAEC,6BAAwB,CAAC,IAAI,CAAC;aACpE,CAAC,CAAC,IAAI,CACLC,mBAAK,EAAE,EACPC,iBAAG,CAAC,UAAC,EAAmC,EAAA;IAAnC,YAAA,IAAA,EAAA,GAAA,aAAmC,EAAlC,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,oBAAoB,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;gBACrC,KAAI,CAAC,eAAe,GAAG;IACrB,gBAAA,OAAO,EAAE,OAAO;IAChB,gBAAA,YAAY,EAAEP,iBAAY,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;oBAC1E,WAAW,EAAEC,cAAW,CAAC,IAAI;iBAC9B,CAAC;IAEF,YAAA,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC;oBACzB,WAAW,EAAE,sBAAsB,CAAC,SAAS;IAC7C,gBAAA,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACL,CAAA,EAAA,GAAA,KAAI,CAAC,cAAc,0CAAE,UAAU,CAAA,EAC/B,oBAAoB,CAAC,UAAU,CAAA,EAAA,EAClC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAEI,6BAAwB,CAAC,IAAI,EAC1C,cAAc,EAAE,MAAM,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAC7D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EACpD,WAAW,EAAE,sBAAsB,CAAC,SAAS,EAC9C,CAAA;IACF,aAAA,CAAC,CAAC;IAEH,YAAA,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC5B,CAAC,CACH,CAAC;SACH,CAAA;QAEM,2BAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,KAAiC,EAAA;YAAtC,IAsCN,KAAA,GAAA,IAAA,CAAA;IArCC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAE3D,IAAI,CAAC,oBAAoB,EAAE;gBACzB,OAAOG,OAAE,EAAE,CAAC;IACb,SAAA;YAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CACzFD,iBAAG,CAAC,UAAA,cAAc,EAAA;;gBAChB,KAAI,CAAC,sBAAsB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAc,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;IAE5E,YAAA,IAAM,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACb,cAAc,CAAA,EAAA,EACjB,UAAU,EACL,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAC,UAAU,CACzB,EAAA,oBAAoB,CAAC,UAAU,IAErC,CAAC;gBAEF,KAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACpD,YAAA,KAAI,CAAC,eAAe,GAAG,YAAY,CAAC;IAEpC,YAAA,IAAI,oBAAoB,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,cAAc,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAA,EAAE;IAC3E,gBAAA,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACzB,oBAAA,WAAW,EAAE,KAAI,CAAC,sBAAsB,CAAC,SAAS;wBAClD,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACL,cAAc,CAAC,UAAU,CAAA,EACzB,oBAAoB,CAAC,UAAU,CAAA,EAAA,EAClC,cAAc,EAAE,MAAM,CAAC,KAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAClE,WAAW,EAAE,KAAI,CAAC,sBAAsB,CAAC,SAAS,EACnD,CAAA;IACF,iBAAA,CAAC,CAAC;IACJ,aAAA;IAED,YAAA,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC5B,CAAC,CACH,CAAC;SACH,CAAA;IAEO,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,YAAoB,EAAE,MAAwB,EAAA;YAC7D,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;IACR,SAAA;IAED,QAAA,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;YAEnC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;gBACpD,MAAM,CAAC,YAAY,CAAC,GAAGE,sBAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACtE,SAAA;SACF,CAAA;QAEM,2BAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,QAAkB,EAAA;IAChC,QAAA,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,OAAO,CAAlE,EAAkE,CAAC,CAAC;SACnH,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,2BAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC;aAC5B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,2BAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAvB,QAAA,GAAA,EAAA,YAAA;;gBACE,OAAO,MAAA,IAAI,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,2BAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;IAAzB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;;;IAAA,KAAA,CAAA,CAAA;;;mJAvHU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,aAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAO,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAArB,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;uJAA3B,2BAA2B,EAAA,CAAA,CAAA;sHAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;sBADvCC,aAAU;;;ACSX,QAAA,oBAAA,kBAAA,YAAA;IAOE,IAAA,SAAA,oBAAA,CACU,cAA2C,EAC3C,cAA8B,EAC9B,uBAAgD,EAChD,cAA8B,EAAA;IAH9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAA6B;IAC3C,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IAC9B,QAAA,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAyB;IAChD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IAVhC,QAAA,IAAA,CAAA,IAAI,GAAGqB,sBAAiB,CAAC,MAAM,CAAC;IAChC,QAAA,IAAM,CAAA,MAAA,GAAgB,EAAE,CAAC;YAEzB,IAAA,CAAA,QAAQ,GAAG,IAAI3B,oBAAe,CAAuB,SAAS,CAAC,CAAC;YAChE,IAAA,CAAA,OAAO,GAAG,IAAIA,oBAAe,CAA8B,EAAE,CAAC,CAAC;SAOnE;IAEG,IAAA,oBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACL,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAE5B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvB,CAAA;QAEM,oBAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,QAAkB,EAAA;YAAxB,IAwBN,KAAA,GAAA,IAAA,CAAA;IAvBC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACxB,OAAO;IACR,SAAA;YAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC5F,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;IAC9C,cAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;kBAC1D,SAAS,CAAC;YAEd,IAAI,CAAC,SAAS,EAAE;IACb,aAAA,IAAI,CACH4B,wBAAU,CAAC,UAAA,KAAK,EAAA;IACd,YAAA,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC;IACtB,gBAAA,QAAQ,EAAE,OAAO;IACjB,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA,CAAC,CAAC;;IAGH,YAAA,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,QAAQ,CAAC,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAI,CAAC,QAAQ,CAAC,KAAK,IAAK,SAAS,CAAC,CAAC;gBACjF,OAAOJ,OAAE,EAAE,CAAC;IACd,SAAC,CAAC,CACH;IACA,aAAA,SAAS,EAAE,CAAC;SAChB,CAAA;QAEM,oBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAA4B,EAAA;YACrD,IAAI,CAAC,MAAM,GACN,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,MAAM,CAAA,EACX,MAAM,CACV,CAAC;SACH,CAAA;IAEM,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAG,GAAH,YAAA;IACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAACK,gBAAW,EAAE,CAAC,CAAC;SACzD,CAAA;IAEM,IAAA,oBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAE,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAK,SAAS,CAAC;SACrE,CAAA;IAEM,IAAA,oBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACL,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;SACzC,CAAA;IACM,IAAA,oBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACL,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;SAC3C,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAAnB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;aACpC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,oBAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IAA1B,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAEM,IAAA,oBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;YAAA,IAoCN,KAAA,GAAA,IAAA,CAAA;;IAnCC,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAChD,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC5C,QAAA,IAAI,CAAC,cAAc,IAAI,CAAC,YAAY,EAAE;IACpC,YAAA,OAAOL,OAAE,CAAC,SAAS,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,IAAM,sBAAsB,GACvB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,cAAc,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAC9C,GAAC,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EACrD,CAAC;IACF,QAAA,IAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,kBAAkB,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;YAC5G,IAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1D,oBAAoB,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;YAChE,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAE/C,QAAA,IAAI,QAA8B,CAAC;YACnC,IAAI,sBAAsB,CAAC,cAAc,EAAE;IACzC,YAAA,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC,IAAI,CACxGT,iBAAG,CAAC,UAAC,EAA8B,EAAA;IAA5B,gBAAA,IAAA,QAAQ,cAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,CAAA;IAC/B,gBAAA,IAAI,OAAO,EAAE;IACX,oBAAA,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAChE,iBAAA;oBACD,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,KAAA,CAAA,GAAA,OAAO,GAAI,EAAE,CAAC,CAAC;IAEjC,gBAAA,OAAO,QAAQ,CAAC;iBACjB,CAAC,CACH,CAAC;IACH,SAAA;IAAM,aAAA;gBACL,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;IAC/F,SAAA;IAED,QAAA,OAAO,QAAQ,CAAC,IAAI,CAClBQ,iBAAG,CAAC,UAAA,QAAQ,EAAA,EAAI,OAAA,QAAQ,IAAI,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAA,CAAC,EACzDK,wBAAU,CAAC,UAAA,KAAK,EAAA,EAAI,OAAAE,eAAU,CAAC,cAAM,IAAA,EAAA,CAAA,CAAA,OAAA,IAAI,KAAK,CAAC,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,KAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,CAAC,GAAA,CAAC,CACjH,CAAC;SACH,CAAA;QAEO,oBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,QAAkB,EAAA;YACtC,OAAO;IACL,YAAA,QAAQ,EAAA,QAAA;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAGC,cAAW,CAAC,KAAK,GAAGA,cAAW,CAAC,MAAM;IACnE,YAAA,mBAAmB,EAAE,KAAK;IAC1B,YAAA,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAA0B;aAC/D,CAAC;SACH,CAAA;;;4IA5HU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAAb,eAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,aAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA7B,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;gJAApB,oBAAoB,EAAA,CAAA,CAAA;sHAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;sBADhCC,aAAU;;;ICYX,IAAA,wBAAA,kBAAA,YAAA;IASE,IAAA,SAAA,wBAAA,CACsB,cAAwB,EACpC,oBAA0C,EAC1C,cAAqC,EACrC,iBAAoC,EACpC,oBAA0C,EAC1C,UAAsB,EACtB,GAAsB,EAAA;IANV,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAU;IACpC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;IAC1C,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;IACrC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;IACpC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;IAC1C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAVxB,QAAA,IAAI,CAAA,IAAA,GAA8C,EAAE,CAAC;IACrD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI6B,YAAO,EAAQ,CAAC;SAUnC;IAEJ,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IACzC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAExE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;IACN,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAElC,IAAI,CAAC,SAAS,EAAE;IACd,YAAA,IAAI,CAAC,IAAI,CAACxB,SAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,OAAO;IACR,SAAA;YAED,IAAI,SAAS,CAAC,QAAQ,EAAE;IACtB,YAAA,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7C,SAAA;iBAAM,IAAI,SAAS,CAAC,IAAI,EAAE;IACzB,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,SAAA;SACF,CAAA;QAEO,wBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAY,EAAA;YAA3B,IAUP,KAAA,GAAA,IAAA,CAAA;IATC,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5E,QAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,CAACyB,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAE,SAAS,CAAC,UAAA,QAAQ,EAAA;IACvD,YAAA,IAAI,CAACC,cAAO,CAAC,QAAQ,CAAC,EAAE;oBACtB,OAAO;IACR,aAAA;IAED,YAAA,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAC,CAAC,CAAC;SACJ,CAAA;QAEO,wBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAY,EAAA;YAA/B,IAoBP,KAAA,GAAA,IAAA,CAAA;;IAnBC,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YAC3E,IAAM,UAAU,GAAG,CAAA,EAAA,GAAA,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC;YAEpD,IAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,QAAA,IAAA,EAAqB,GAAA,CAAA,EAAA,GAAA,UAAU,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,EAAtC,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,IAAI,UAAwB,CAAC;IAC/C,QAAA,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEhC,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,IAAI,CACxDtB,QAAG,CAAC,UAAA,KAAK,EAAA;;IACP,YAAA,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE;oBACtE,OAAO,CAAA,EAAA,GAAA,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,EAAQ,EAAA;IAAN,oBAAA,IAAA,IAAI,GAAA,EAAA,CAAA,IAAA,CAAA;wBAAO,OAAA,IAAI,KAAK,IAAI,CAAA;IAAb,iBAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;IAClE,aAAA;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB,CAAC,CACH,CAAC;IAEF,QAAA,SAAS,CAAC,IAAI,CAACqB,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,QAAQ,EAAA;IACzD,YAAA,KAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAC,CAAC,CAAC;SACJ,CAAA;QAEO,wBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,QAAe,EAAA;YAA/B,IAiBP,KAAA,GAAA,IAAA,CAAA;YAhBC,IAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,EAAA;;;gBACrC,IAAM,GAAG,GAAG,MAAM,CAAC,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,EAAE,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAAzB,SAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,YAAA,IAAM,GAAG,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAE1F,OAAO,GAAG,GAAE,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,GAAG,CAAE,GAAA,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,GAAG,CAAA,GAAG,GAAG,EAAA,EAAA,EAAA,GAAK,GAAG,CAAC;aAC3C,EAAE,EAAmC,CAAC,CAAC;YAExC,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,IAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElC2B,WAAI,CAAA,KAAA,CAAA,KAAA,CAAA,EAAA,aAAA,CAAA,CAAC,YAAY,CAAK,EAAA,MAAA,CAAA,OAAO,IAAE,OAAO,CAAC,UAAA,GAAG,EAAA;IACxC,YAAA,KAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC7B,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC1B,CAAA;QAEO,wBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,UAA2C,EAAA;YAA9D,IASP,KAAA,GAAA,IAAA,CAAA;;YARC,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA,EAAA,GAAA,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,CAAC;IACzD,QAAA,IAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,UAAA,GAAG,EAAA,EACnC,IAAA,EAAA,CAAA,CAAA,OAAA,CAAC,EAAA,GAAA,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,QAAQ,CAAC,aAA6B,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA,EAAA,CACtF,CAAC;YAEF,IAAM,YAAY,GAAG,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,QAAQ,CAAC,MAAM,CAAC;YAEhD,OAAO,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,GAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;SACxD,CAAA;QAEO,wBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAU,EAAA;;IAChC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,OAAO;IACR,SAAA;IAED,QAAA,IAAM,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5D,QAAA,IAAI,YAAY,EAAE;IAChB,YAAA,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,YAAA,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,YAAA,CAAA,EAAA,GAAA,YAAY,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,SAAA;IAED,QAAA,OAAO,YAAY,CAAC;SACrB,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,GAAW,EAAE,IAAU,EAAA;YAC7C,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhC,QAAA,OAAO,GAAG,CAAC;SACZ,CAAA;QAEO,wBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,GAAW,EAAA;;IAClC,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,EAAE,CAAC;IAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvB,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;IACN,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,EAAA,EAAI,OAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,OAAO,EAAE,CAAd,EAAc,CAAC,CAAC;IACxD,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;SAChB,CAAA;;;gJA9IU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjC,aAAA,CAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAgC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAApC,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAxB,wBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4EAFxB,CAAC,qBAAqB,CAAC,EAGT,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,IAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,IAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAqC,mBAAgB,sDCjC3C,mCACA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,eAAA,EAAArC,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHD+Ba,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAPpCJ,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,yBAAyB;IACnC,oBAAA,WAAW,EAAE,mCAAmC;wBAChD,SAAS,EAAE,CAAC,mCAAmC,CAAC;wBAChD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;wBAC/C,SAAS,EAAE,CAAC,qBAAqB,CAAC;qBACnC,CAAA;;;kCAWIyC,WAAQ;;6BATgD,EAAE,EAAA,CAAA;0BAA5DC,YAAS;2BAAC,IAAI,EAAE,EAAE,IAAI,EAAEF,mBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;oBAEhD,IAAI,EAAA,CAAA;0BAAZG,QAAK;;;IExBR,IAAA,wBAAA,kBAAA,YAAA;IAGE,IAAA,SAAA,wBAAA,CAAoB,cAAqC,EAAA;IAArC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;YACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;SAC9C;;;gJALU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAAzC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAxB,wBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,mECXrC,gOAKA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA0C,wBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA1C,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHDMa,wBAAwB,EAAA,UAAA,EAAA,CAAA;sBAPpCJ,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,kBAAkB;IAC5B,oBAAA,WAAW,EAAE,iCAAiC;wBAC9C,SAAS,EAAE,CAAC,mCAAmC,CAAC;wBAChD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;;;IEGD,IAAM,SAAS,GAAwB,EAAE,CAAC;IAE1C,SAAS,eAAe,CAAC,WAAmB,EAAA;IAC1C,IAAA,OAAO,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM,EAAA;IACvC,QAAA,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;IAC1B,YAAA,OAAO,EAAE,CAAC;gBACV,OAAO;IACR,SAAA;YAED,IAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAA,MAAM,CAAC,GAAG,GAAG,WAAW,CAAC;IAEzB,QAAA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;YAExB,MAAM,CAAC,MAAM,GAAG,YAAA;IACd,YAAA,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;gBAC9B,OAAO,EAAE,CAAC;IACZ,SAAC,CAAC;IAEF,QAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,KAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAe,mBAAmB,CAAI,UAAkB,EAAE,aAAqB,EAAA;;;;;;;IAE7E,gBAAA,OAAA,CAAA,CAAA,YAAM,wBAAwB,CAAC,SAAS,CAAC,CAAA,CAAA;;;IAAzC,oBAAA,EAAA,CAAA,IAAA,EAAyC,CAAC;IACpC,oBAAA,SAAS,GAAI,MAAc,CAAC,UAAU,CAAc,CAAC;;wBAG3D,OAAM,CAAA,CAAA,YAAA,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA,CAAA;;;IAAtD,oBAAA,EAAA,CAAA,IAAA,EAAsD,CAAC;IACvC,oBAAA,OAAA,CAAA,CAAA,YAAM,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA,CAAA;;IAA5C,oBAAA,OAAO,GAAG,EAAkC,CAAA,IAAA,EAAA,CAAA;wBAC5C,MAAM,GAAG,OAAO,EAAE,CAAC;IACzB,oBAAA,OAAA,CAAA,CAAA,aAAO,MAAW,CAAC,CAAA;;;IACpB,KAAA,CAAA,CAAA;IAAA,CAAA;IAQK,SAAgB,gBAAgB,CAAC,OAAgC,EAAA;;;;IACrE,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA,CAAA;;IAA1C,oBAAA,EAAA,CAAA,IAAA,EAA0C,CAAC;wBAEpC,OAAM,CAAA,CAAA,YAAA,mBAAmB,CAAM,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA,CAAA;IAAhF,gBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,SAAyE,CAAC,CAAA;;;IAClF,KAAA,CAAA,CAAA;IAAA;;ICrCD,IAAK,gBAEJ,CAAA;IAFD,CAAA,UAAK,gBAAgB,EAAA;IACnB,IAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACf,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,GAEpB,EAAA,CAAA,CAAA,CAAA;IAyBD,IAAA,kBAAA,kBAAA,YAAA;IAgBE,IAAA,SAAA,kBAAA,CACU,QAAkB,EAClB,QAAkB,EAClB,MAAsB,EACtB,QAAmB,EAAA;IAHnB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IAClB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IAClB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAVX,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI8C,eAAY,EAA2B,CAAC;IAEjF,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;SAShB;IAEJ,IAAA,kBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IA2BC,KAAA,GAAA,IAAA,CAAA;IA1BC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBAChE,OAAO;IACR,SAAA;IAED,QAAA,gBAAgB,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;IAClC,SAAA,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA;IACf,YAAA,KAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAI,CAAC,aAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,aAAa,EAAA;;oBAC1F,IAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,gBAAA,IAAM,oBAAoB,GAAG,aAAa,CAAC,wBAAwB,CAAC,uBAAuB,CACzF,SAAS,CAAC,KAAI,CAAC,aAAuB,CAAC,CAAC,aAAa,CACtD,CAAC;oBACF,IAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrC,gBAAA,IAAA,KAAyB,oBAAoB,CAAC,MAAM,CAAC,KAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAA3E,QAAQ,cAAA,EAAE,QAAQ,cAAyD,CAAC;IAEpF,gBAAA,KAAI,CAAC,QAAQ,GAAG,QAAuC,CAAC;oBACxD,KAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAI,CAAC,IAAI,CAAC;oBAC/B,KAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC;oBACzC,KAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAI,CAAC,gBAAgB,CAAC;IAEvD,gBAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA,EAAA,GAAA,KAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,EAAE,IAAI,CAAC,CAAC;IACnE,gBAAA,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,aAAC,CAAC,CAAC;IACL,SAAC,CAAC,CAAC;SACJ,CAAA;QAED,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAChC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO;IACR,SAAA;IAED,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACpC,CAAA;;;0IA1DU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA3C,aAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAlB,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EACY,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAqC,mBAAgB,EAC/B,EAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAAO,cAAW,2JClDvC,2BACA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,eAAA,EAAA5C,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;sHD+Ca,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAP9BJ,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;;IAET,oBAAA,QAAQ,EAAE,uBAAuB;IACjC,oBAAA,WAAW,EAAE,4BAA4B;wBACzC,SAAS,EAAE,CAAC,4BAA4B,CAAC;wBACzC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD,CAAA;2NAE8D,kBAAkB,EAAA,CAAA;0BAA9E0C,YAAS;oBAAC,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,IAAI,EAAEF,mBAAgB,EAAE,CAAA;oBAClB,GAAG,EAAA,CAAA;0BAA3CE,YAAS;oBAAC,IAAA,EAAA,CAAA,KAAK,EAAE,EAAE,IAAI,EAAEK,cAAW,EAAE,CAAA;oBACK,aAAa,EAAA,CAAA;0BAAxDL,YAAS;oBAAC,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;oBAEjC,WAAW,EAAA,CAAA;0BAAnBC,QAAK;oBACG,UAAU,EAAA,CAAA;0BAAlBA,QAAK;oBACG,aAAa,EAAA,CAAA;0BAArBA,QAAK;oBACG,IAAI,EAAA,CAAA;0BAAZA,QAAK;oBACG,SAAS,EAAA,CAAA;0BAAjBA,QAAK;oBACY,gBAAgB,EAAA,CAAA;0BAAjCK,SAAM;;;IEnDT,IAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;uIAAa,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA7C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;wIAAf,eAAe,EAAA,YAAA,EAAA,CAHX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CACvB,kBAAkB,CAAA,EAAA,CAAA,CAAA;wIAEjB,eAAe,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAJ3B8C,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,kBAAkB,CAAC;wBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;qBAC9B,CAAA;;;ICHD;IAEA,IAAA,uBAAA,kBAAA,YAAA;QACE,SAAoB,uBAAA,CAAA,WAA6B,EAAU,gBAAkC,EAAA;IAAzE,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAAU,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;SAAI;IAIjG,IAAA,uBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACE,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxB,OAAO;IACR,SAAA;IAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACvE,CAAA;;;+IAXU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA9C,aAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA+C,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA/C,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wHAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;sBADnCI,YAAS;uBAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAA;6IAIhC,cAAc,EAAA,CAAA;0BAAtBoC,QAAK;;;ICKR,IAAA,mBAAA,kBAAA,YAAA;IAOE,IAAA,SAAA,mBAAA,CAAmB,IAA6C,EAAA;YAAhE,IAcC,KAAA,GAAA,IAAA,CAAA;;IAdkB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAyC;IALxD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIV,YAAO,EAAQ,CAAC;IAMrC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChE,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAEzE,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;IACxC,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAACC,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAI,EAAA,QAAC,KAAI,CAAC,aAAa,GAAG,KAAK,EAA3B,EAA4B,CAAC,CAAC;IAEjG,YAAA,IAAM,UAAU,GAAG,cAAc,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAC,CAAC;IAClE,YAAA,IAAA,KAA2B,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAhD,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,IAAI,UAA4B,CAAC;gBAEzD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAI,IAAI,CAAC;gBAEnC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,SAAA;SACF;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAa,EAAE,QAAiB,EAAE,IAAa,EAAA;YAC9D,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;IACR,SAAA;YAED,IAAI,CAAC,QAAQ,EAAE;gBACb,IAAI,CAAC,YAAY,EAAE,CAAC;IACrB,SAAA;IAAM,aAAA,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,EAAE;IACvC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACzB,SAAA;IAAM,aAAA,IAAI,QAAQ,KAAK,YAAY,IAAI,IAAI,EAAE;IAC5C,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;SACF,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IAUP,KAAA,GAAA,IAAA,CAAA;YATC,IAAM,MAAM,GAAG,UAAC,EAAU,EAAA;gBACxB,IAAM,YAAY,GAAG,KAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC7D,IAAI,CAAC,YAAY,EAAE;oBACjB,OAAO;IACR,aAAA;IACD,YAAA,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,SAAC,CAAC;IAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;SAC/B,CAAA;QAEO,mBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,IAAY,EAAA;YAAzB,IAkBP,KAAA,GAAA,IAAA,CAAA;IAjBC,QAAA,IAAM,GAAG,GAAG,UAAC,IAAY,EAAE,UAA+C,EAAA;IAA/C,YAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAA+C,GAAA,EAAA,CAAA,EAAA;IACxE,YAAA,IAAI,CAAC,KAAI,CAAC,aAAa,EAAE;oBACvB,OAAO;IACR,aAAA;gBAED,IAAM,UAAU,GAAG,KAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,EAAE;oBACf,OAAO;IACR,aAAA;IAED,YAAA,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC7F,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAC7B,IAAI,cAAc,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAI,CAAC,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CACnF,CAAC;IACJ,SAAC,CAAC;IAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,CAAC;SACjC,CAAA;QAEO,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,IAAY,EAAA;YAA9B,IAgBP,KAAA,GAAA,IAAA,CAAA;;IAfC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACrB,OAAO;IACR,SAAA;IAED,QAAA,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAACrB,QAAG,CAAC,UAAA,KAAK,EAAA,EAAI,IAAA,EAAA,CAAA,CAAA,OAAA,iBAAiB,CAAC,MAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAL,KAAK,CAAE,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,IAAI,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC;YAEtG,IAAM,KAAK,GAAG,UAAC,KAAU,EAAA;IACvB,YAAA,IAAI,CAAC,KAAI,CAAC,aAAa,EAAE;oBACvB,OAAO;IACR,aAAA;IACD,YAAA,KAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,EAAA,KAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/G,SAAC,CAAC;IAEF,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IACnC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;SAClC,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,mBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAAzB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,IAA2C,CAAC;aACzD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,IAAsC,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAY,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;gBACE,OAAO,IAAI,CAAC,IAAsC,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;;;2IAtGU,mBAAmB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAAV,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAD/BI,YAAS;;;ICRH,IAAM,eAAe,GAAmD;QAC7E,aAAa,EAAE,CAAC,mBAAmB,CAAC;IACpC,IAAA,OAAO,EAAE,EAAE;KACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICMM,IAAM,SAAS,GAAoB;IACxC,IAAA,iBAAiB,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACZ,YAAY,CAAA,EACZ,UAAU,CAAA,EACV,kBAAkB,CAClB,EAAA,iBAAiB,CACpB,EAAA,EAAA,gBAAgB,EAAA,gBAAA,EACjB,CAAA;IACD,IAAA,aAAa,EAAE;IACb,QAAA,oBAAoB,EAAA4C,uBAAA;IACpB,QAAA,eAAe,EAAAC,kBAAA;IAChB,KAAA;IACD,IAAA,eAAe,EAAEC,aAAW;IAC5B,IAAA,gBAAgB,EAAEC,uBAAY;IAC9B,IAAA,IAAI,EAAEC,eAAI;IACV,IAAA,gBAAgB,EAAEC,wBAAa;IAC/B,IAAA,MAAM,EAAEC,iBAAM;KACf;;ICdD,IAAA,gBAAA,kBAAA,YAAA;QAME,SAAoB,gBAAA,CAAA,KAA2B,EAAE,QAA2B,EAAA;;IAAxD,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAsB;IAHvC,QAAA,IAAkB,CAAA,kBAAA,GAAsB,EAAE,CAAC;IAC3C,QAAA,IAAc,CAAA,cAAA,GAAsB,EAAE,CAAC;YAG7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEhD,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;IAEzD,YAAA,KAAiB,IAAA,cAAA,GAAA,QAAA,CAAA,YAAY,CAAA,0CAAA,EAAE,CAAA,gBAAA,CAAA,IAAA,EAAA,gBAAA,GAAA,cAAA,CAAA,IAAA,EAAA,EAAA;IAA1B,gBAAA,IAAM,EAAE,GAAA,gBAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;IAC5B,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,iBAAA;IAAM,qBAAA;IACL,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,iBAAA;IACF,aAAA;;;;;;;;;SACF;QAEO,gBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,EAAmB,EAAA;;IACnC,QAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;gBACd,OAAO;IACR,SAAA;IAED,QAAA,IAAM,WAAW,GAAGC,oBAAS,CAAC,EAAE,CAAC,MAAM,EAAE;IACvC,YAAA,QAAQ,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK;gBACzB,OAAO,EAAE,CAAC,YAAY,CAAC;IACvB,YAAA,UAAU,EAAE,QAAQ;IACrB,SAAA,CAAC,CAAC;YAEH,OAAO,MAAA,WAAW,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,SAAS,CAAC;SACtC,CAAA;QAEO,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,QAA2B,EAAA;YAA5C,IAMP,KAAA,GAAA,IAAA,CAAA;YALC,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAA,EAAE,EAAA,EAAI,QAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACrB,EAAE,CAAA,EAAA,EACL,MAAM,EAAE,KAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAC1B,QAAQ,EAAE,KAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAA,CAAA,EAC5C,EAAA,CAAC,CAAC;SACL,CAAA;QAEO,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,QAA2B,EAAA;YAA3C,IAEP,KAAA,GAAA,IAAA,CAAA;YADC,OAAOC,cAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,EAAE,EAAI,EAAA,OAAA,aAAA,CAAA,CAAC,EAAE,CAAA,EAAA,MAAA,CAAK,KAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAzC,CAAA,CAAA,EAA0C,CAAC,CAAC,CAAC;SAChF,CAAA;QAEO,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,EAAmB,EAAA;IACzC,QAAA,OAAO,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC;SACxD,CAAA;QAEO,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,OAAwB,EAAA;IAC/C,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE;gBAChC,OAAO;IACR,SAAA;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAA,EAAE,EAAI,EAAA,OAAA,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAA7B,EAA6B,CAAC,CAAC;SACtE,CAAA;QAEO,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,OAAwB,EAAA;YACrD,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAA,IAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IAElE,QAAA,OAAO,QAAQ,IAAI,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;SACjD,CAAA;QAEO,gBAAoB,CAAA,SAAA,CAAA,oBAAA,GAApB,UAAqB,OAAwB,EAAA;;YACnD,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,QAAA,OAAO,CAAC,MAAM,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,OAAO,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,GAAG,EAAE,CAAC;SAC3D,CAAA;QAEO,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,aAA8B,EAAA;;YAC3D,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC3D,QAAA,IAAI,YAA6B,CAAC;IAElC,QAAA,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE;gBACtC,IAAI,CAAC,aAAa,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,mBAAA,GAAmB,aAAa,CAAC,SAAS,GAAa,cAAA,CAAC,CAAC;oBACtE,OAAO;IACR,aAAA;IAED,YAAA,YAAY,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACP,aAAa,CAAA,EAAA,EAChB,IAAI,EAAE,aAAa,CAAC,IAAI,EACxB,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAChC,MAAM,EAAE,CAAC,CAAA,EAAA,GAAA,aAAa,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,IAAI,IAAI,IAAI,CAAA,EAAA,GAAA,aAAa,CAAC,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC,EAC1E,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACD,aAAa,CAAC,MAAM,CAAA,EACpB,aAAa,CAAC,MAAM,CAAA,EAEzB,OAAO,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACF,aAAa,CAAC,OAAO,CAAA,EACrB,aAAa,CAAC,OAAO,CAAA,EAAA,CAE3B,CAAC;IACH,SAAA;IAAM,aAAA;gBACL,YAAY,GAAG,aAAa,CAAC;IAC9B,SAAA;YAED,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YAClE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAE9D,QAAA,OAAO,YAAY,CAAC;SACrB,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,aAA8B,EAAA;YACnD,IAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO;IACR,SAAA;YAED,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAM,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAExD,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,IAAI,CAAC,yBAAA,GAAyB,OAAO,CAAC,IAAI,GAAG,IAAA,CAAC,CAAC;gBACvD,OAAO;IACR,SAAA;YAED,IAAM,SAAS,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EACb,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAA,GACtB,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAC,EAAA,EACvD,SAAS,EAAE;IACT,gBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,cAAc,EAAE;oBAC5D,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE;IACzD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;IAChD,gBAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE;IACpF,gBAAA,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE;IAC7C,gBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE;IAC7C,aAAA,EAAA,CACF,CAAC;IAEF,QAAA,IAAM,GAAG,GAAG5D,YAAS,CAAC,SAAS,CAAC,gBAAA,UAAA,MAAA,EAAA;gBAAiB,SAAgB,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAhC,YAAA,SAAA,CAAA,GAAA;;iBAAmC;gBAAA,OAAA,CAAA,CAAA;IAAA,SAAA,CAAnB,MAAM,CAAC,SAAS,GAAI,CAAC;YAEtE6D,UAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,QAAA,OAAO,GAAG,CAAC;SACZ,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAEN,KAAA,GAAA,IAAA,CAAA;YADC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAA,EAAE,EAAI,EAAA,OAAA,KAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAgB,CAAC;SAClG,CAAA;QACF,OAAA,gBAAA,CAAA;IAAA,CAAA,EAAA,CAAA;;AChJD,QAAA,eAAA,kBAAA,YAAA;QAIE,SAAoB,eAAA,CAAA,QAAkB,EAAU,oBAA0C,EAAA;IAAtE,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;IAAU,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;SAAI;IAEvF,IAAA,eAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UACL,QAA2B,EAC3B,MAA4B,EAAA;YAFvB,IAWN,KAAA,GAAA,IAAA,CAAA;YAPC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAA,OAAOC,SAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAC7ExC,QAAG,CAAC,UAAA,CAAC,EAAA;gBACH,KAAI,CAAC,oBAAoB,CAAC,kBAAkB,GAAG,CAAC,CAAC,kBAAkB,CAAC;IACpE,YAAA,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC;aACzB,CAAC,CACH,CAAC;SACH,CAAA;IAEM,IAAA,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACL,IAAI,IAAI,CAAC,cAAc,EAAE;IACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAClC,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IACjC,SAAA;YAED,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,SAAA;SACF,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,QAA2B,EAAE,KAA2B,EAAA;YACxE,IAAM,gBAAgB,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;YACvG,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,CAAC,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC;IAOnE,QAAA,IAAM,aAAa,kBAAA,YAAA;IAAnB,YAAA,SAAA,aAAA,GAAA;iBAAsB;uBAAA,aAAA,CAAA;aAAtB,GAAsB,CAAA;YAAhB,aAAa,GAAA,UAAA,CAAA;IALlB,YAAA4B,WAAQ,CAAC;IACR,gBAAA,OAAO,EAAE,CAACa,eAAY,EAAEC,gCAAmB,EAAE,eAAe,CAAC;IAC7D,gBAAA,YAAY,yCAAM,gBAAgB,CAAA,CAAA,EAAA,MAAA,CAAK,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAA;IAC1E,gBAAA,GAAG,EAAE,IAAI;iBACV,CAAC;aACI,EAAA,aAAa,CAAG,CAAA;IAEtB,QAAA,OAAO,aAAa,CAAC;SACtB,CAAA;;;uIA5CU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA5D,aAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAAF,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2IAAf,eAAe,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAD3BC,aAAU;;;ACaX,QAAA,gBAAA,kBAAA,YAAA;IASE,IAAA,SAAA,gBAAA,CACU,eAAgC,EAChC,oBAA0C,EAC1C,cAA8B,EAC9B,cAA2C,EAAA;IAH3C,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;IAChC,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;IAC1C,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;IAC9B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAA6B;IAT9C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIN,oBAAe,CAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,QAAA,IAAQ,CAAA,QAAA,GAAsB,EAAE,CAAC;IAEhC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAImC,YAAO,EAAQ,CAAC;SAOnC;IAEJ,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACE,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAEzB,QAAA,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;SACnC,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;;IAfC,QAAA,IAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC/D,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,eAAe,IAAI,oBAAoB,EAAE;IAC5F,YAAA,OAAOX,OAAE,CAAC,EAAE,CAAC,CAAC;IACf,SAAA;IAED,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,6CAA8C,GAAA,IAAI,CAAC,YAAY,CAAC,IAAI,GAAQ,QAAA,CAAC,CAAC;IAC3F,YAAA,OAAOA,OAAE,CAAC,EAAE,CAAC,CAAC;IACf,SAAA;;YAGD,IAAM,iBAAiB,GAAsB,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,CAAC,UAAU,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,cAAc;IACvB,aAAA,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAC7C,aAAA,IAAI,CAAC0C,cAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAA,EAAA,CAAC,CAAC,CAAC;SACjE,CAAA;QAEO,gBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,QAAqB,EAAA;YACjD,IAAI;IACF,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAA,OAAO,EAAA,EAAI,OAAA,iBAAiB,CAAC,OAAO,CAAC,CAA1B,EAA0B,CAAC,CAAC;IAC5D,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;IACV,YAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,YAAA,OAAO,EAAE,CAAC;IACX,SAAA;SACF,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IAwBP,KAAA,GAAA,IAAA,CAAA;IAvBC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,OAAO;IACR,SAAA;YAED,IAAM,EAAoC,GAAA,IAAI,CAAC,YAAY,EAAnD,QAAQ,GAAA,EAA2C,CAAA,QAA3C,EAAK,gBAAgB,GAA/B,MAAA,CAAA,EAAA,EAAA,CAAA,UAAA,CAAiC,CAAoB,CAAC;YAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAErD,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAEzFC,aAAQ,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACtD,aAAA,IAAI,CACH5C,QAAG,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA,EAAA,CAAC,EAC/DK,eAAU,CAAC,UAAA,KAAK,EAAA;IACd,YAAA,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC;IACtB,gBAAA,QAAQ,EAAE,OAAO;IACjB,gBAAA,OAAO,EAAE,KAAK;IACf,aAAA,CAAC,CAAC;IACH,YAAA,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAOJ,OAAE,EAAE,CAAC;aACb,CAAC,EACFY,cAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CACzB;IACA,aAAA,SAAS,EAAE,CAAC;SAChB,CAAA;;;wIA/EU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAgC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAApC,aAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAqC,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAAjE,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;IAAhB,gBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,uGAJhB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,qCCtBlD,sXASA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAkE,aAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,eAAA,EAAApE,aAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAAA,aAAA,CAAA,iBAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHDiBa,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAT5BJ,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACT,oBAAA,QAAQ,EAAE,gBAAgB;IAC1B,oBAAA,WAAW,EAAE,0BAA0B;wBACvC,SAAS,EAAE,CAAC,0BAA0B,CAAC;wBACvC,eAAe,EAAEC,0BAAuB,CAAC,MAAM;IAC/C,oBAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;;wBAEhD,aAAa,EAAEwE,oBAAiB,CAAC,SAAS;qBAC3C,CAAA;sNAEU,OAAO,EAAA,CAAA;0BAAf7B,QAAK;oBACG,YAAY,EAAA,CAAA;0BAApBA,QAAK;;;IErBR,IAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;6IAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAxC,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8IAArB,qBAAqB,EAAA,YAAA,EAAA,CAHjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAC7B,wBAAwB,CAAA,EAAA,CAAA,CAAA;8IAEvB,qBAAqB,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAJjC8C,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;wBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;qBACpC,CAAA;;;ICGD,IAAA,qBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,qBAAA,GAAA;;;;6IAAa,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA9C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAArB,qBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,qBAAqB,EAJjB,YAAA,EAAA,CAAA,wBAAwB,CAC7B,EAAA,OAAA,EAAA,CAAA,qBAAqB,aACrB,wBAAwB,CAAA,EAAA,CAAA,CAAA;8IAEvB,qBAAqB,EAAA,OAAA,EAAA,CAHvB,CAAC,qBAAqB,CAAC,CAAA,EAAA,CAAA,CAAA;sHAGrB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBALjC8C,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,wBAAwB,CAAC;wBACxC,OAAO,EAAE,CAAC,qBAAqB,CAAC;wBAChC,OAAO,EAAE,CAAC,wBAAwB,CAAC;qBACpC,CAAA;;;ACID,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;qIAAa,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA9C,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;sIAAb,aAAa,EAAA,YAAA,EAAA,CAJT,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB2D,eAAY,EAAEW,eAAY,EAAE,qBAAqB,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACxE,gBAAgB,CAAA,EAAA,CAAA,CAAA;sIAEf,aAAa,EAAA,OAAA,EAAA,CAHf,CAACX,eAAY,EAAEW,eAAY,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAA,EAAA,CAAA,CAAA;sHAGxE,aAAa,EAAA,UAAA,EAAA,CAAA;sBALzBxB,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;wBACR,YAAY,EAAE,CAAC,gBAAgB,CAAC;wBAChC,OAAO,EAAE,CAACa,eAAY,EAAEW,eAAY,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;wBACnF,OAAO,EAAE,CAAC,gBAAgB,CAAC;qBAC5B,CAAA;;;ICTK,SAAU,iBAAiB,CAAC,UAA6B,EAAA;IAC7D,IAAA,OAAO,UAAU,WAAgB,EAAA;IAC/B,QAAA,OAAO,WAAW,CAAC;IACrB,KAAC,CAAC;IACJ;;ICYA,IAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;;;2IAAa,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAtE,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;4IAAnB,mBAAmB,EAAA,CAAA,CAAA;IAAnB,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,mBAAmB,EAVnB,SAAA,EAAA;YACTuE,iBAAc;YACdC,oBAAiB;YACjBC,yBAAsB;YACtBC,0BAAuB;YACvB,2BAA2B;YAC3B,qBAAqB;YACrB,oBAAoB;IACrB,KAAA,EAAA,CAAA,CAAA;sHAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;sBAX/B5B,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,SAAS,EAAE;4BACTyB,iBAAc;4BACdC,oBAAiB;4BACjBC,yBAAsB;4BACtBC,0BAAuB;4BACvB,2BAA2B;4BAC3B,qBAAqB;4BACrB,oBAAoB;IACrB,qBAAA;qBACF,CAAA;;;ACLD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;sIAAa,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA1E,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;IAAd,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,cAAc,EAHf,OAAA,EAAA,CAAA2D,eAAY,EAAEgB,eAAU,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;IAG5C,cAAA,CAAA,IAAA,GAAA3E,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,cAAc,aAFd,CAAC,eAAe,EAAE,oBAAoB,EAAEgD,uBAAoB,EAAEC,kBAAe,CAAC,YADhF,CAACU,eAAY,EAAEgB,eAAU,EAAE,mBAAmB,CAAC,CAAA,EAAA,CAAA,CAAA;sHAG7C,cAAc,EAAA,UAAA,EAAA,CAAA;sBAJ1B7B,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACR,oBAAA,OAAO,EAAE,CAACa,eAAY,EAAEgB,eAAU,EAAE,mBAAmB,CAAC;wBACxD,SAAS,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE3B,uBAAoB,EAAEC,kBAAe,CAAC;qBAC1F,CAAA;;;ICXD;;IAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"veloce-sdk-cms.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../libs/sdk/cms/injection-tokens.ts","../../../../libs/sdk/cms/engine/models/entity.ts","../../../../libs/sdk/cms/components/element.component.ts","../../../../libs/sdk/cms/utils/path.utils.ts","../../../../libs/sdk/cms/services/dynamic-module.service.ts","../../../../libs/sdk/cms/services/io-provider.service.ts","../../../../libs/sdk/cms/services/templates.service.ts","../../../../libs/sdk/cms/plugins/io.plugin.ts","../../../../libs/sdk/cms/plugins/script.plugin.ts","../../../../libs/sdk/cms/cms.elements.ts","../../../../libs/sdk/cms/utils/element.utils.ts","../../../../libs/sdk/cms/services/element-context.service.ts","../../../../libs/sdk/cms/utils/line-item.utils.ts","../../../../libs/sdk/cms/types/line-item.types.ts","../../../../libs/sdk/cms/modules/configuration/helpers.ts","../../../../libs/sdk/cms/modules/configuration/services/runtime-context.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration-runtime.service.ts","../../../../libs/sdk/cms/modules/configuration/services/configuration.service.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.ts","../../../../libs/sdk/cms/components/element-renderer/element-renderer.component.html","../../../../libs/sdk/cms/components/element-children/element-children.component.ts","../../../../libs/sdk/cms/components/element-children/element-children.component.html","../../../../libs/sdk/cms/utils/federated.util.ts","../../../../libs/sdk/cms/components/federated/federated.component.ts","../../../../libs/sdk/cms/components/federated/federated.component.html","../../../../libs/sdk/cms/components/federated/federated.module.ts","../../../../libs/sdk/cms/directives/custom-template.directive.ts","../../../../libs/sdk/cms/plugins/configuration.plugin.ts","../../../../libs/sdk/cms/cms.default.ts","../../../../libs/sdk/cms/vendor-map.ts","../../../../libs/sdk/cms/utils/elements-resolver.ts","../../../../libs/sdk/cms/services/launcher.service.ts","../../../../libs/sdk/cms/components/preview/preview.component.ts","../../../../libs/sdk/cms/components/preview/preview.component.html","../../../../libs/sdk/cms/components/element-renderer/element-renderer.module.ts","../../../../libs/sdk/cms/components/element-children/element-children.module.ts","../../../../libs/sdk/cms/components/preview/preview.module.ts","../../../../libs/sdk/cms/decorators/element.decorator.ts","../../../../libs/sdk/cms/modules/configuration/configuration.module.ts","../../../../libs/sdk/cms/launcher.module.ts","../../../../libs/sdk/cms/veloce-sdk-cms.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\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);\r\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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { Plugin } from './engine/models/plugin';\nimport { ElementConfig, ElementMetadata } from './types/common.types';\nimport { UIDefinitionMetadata } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS_TOKEN = new InjectionToken<typeof Plugin[]>('DEFAULT_PLUGINS_TOKEN');\n\nexport const UI_DEFINITION_METADATA = new InjectionToken<UIDefinitionMetadata>('UI_DEFINITION_METADATA_TOKEN');\nexport const ELEMENT_METADATA = new InjectionToken<ElementMetadata>('ELEMENT_METADATA_TOKEN');\nexport const SHARED_ELEMENT_METADATA = new InjectionToken<ElementMetadata>('SHARED_ELEMENT_METADATA_TOKEN');\nexport const ELEMENT_CONFIG = new InjectionToken<ElementConfig>('ELEMENT_CONFIG_TOKEN');\nexport const VENDOR_MAP = new InjectionToken<Dictionary<any>>('VENDOR_MAP');\n","import { Injector } from '@angular/core';\nimport { DEFAULT_PLUGINS_TOKEN, ELEMENT_CONFIG } from '../../injection-tokens';\nimport { ElementConfig } from '../../types/common.types';\nimport { Plugin } from './plugin';\n\nexport class Entity {\n protected readonly plugins: Plugin[] = [];\n\n private config: ElementConfig;\n private defaultPlugins: typeof Plugin[];\n\n constructor(public injector: Injector) {\n this.config = this.injector.get(ELEMENT_CONFIG);\n this.defaultPlugins = this.injector.get(DEFAULT_PLUGINS_TOKEN);\n }\n\n public initPlugins() {\n this.defaultPlugins.forEach(plugin => this.registerPlugin(new plugin(this)));\n this.config.plugins?.forEach(plugin => this.registerPlugin(new plugin(this)));\n }\n\n public registerPlugin(plugin: Plugin) {\n this.plugins.push(plugin);\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, Inject, Injector, OnDestroy, OnInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Entity } from '../engine/models/entity';\nimport { IPluginComponent } from './plugin.component';\n\n@Component({\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n jit: true,\n})\nexport class ElementComponent extends Entity implements OnInit, AfterViewInit, OnDestroy {\n public readonly model$ = new BehaviorSubject<any | undefined>(undefined);\n public readonly plugins!: IPluginComponent[];\n\n constructor(@Inject(Injector) public injector: Injector) {\n super(injector);\n\n super.initPlugins();\n }\n\n ngOnInit(): void {\n this.plugins.forEach(plugin => plugin.ngOnInit?.());\n }\n\n ngAfterViewInit() {\n this.plugins.forEach(plugin => plugin.ngAfterViewInit?.());\n }\n\n ngOnDestroy(): void {\n this.plugins.forEach(plugin => plugin.ngOnDestroy?.());\n }\n}\n","import { ElementMetadata, ElementPath } from '../types';\n\nexport const parsePath = (path: string): ElementPath => {\n const segments = path.split('/');\n let module: string | undefined;\n let variable: string | undefined;\n\n if (segments[0]?.startsWith('@')) {\n module = segments.shift()?.substring(1);\n }\n\n if (segments[segments.length - 1]?.[0] === ':') {\n variable = segments.pop()?.substring(1);\n }\n\n const isAbsolute = !segments[0];\n const nonEmptySegments = segments.filter(Boolean);\n\n if (!isAbsolute && nonEmptySegments[0] === '.') {\n nonEmptySegments.shift();\n }\n\n return {\n isAbsolute,\n segments: nonEmptySegments,\n module,\n variable,\n };\n};\n\nexport const findElementByModule = (\n elements: ElementMetadata[],\n module: string,\n elementName: string,\n): ElementMetadata | undefined => {\n for (const el of elements) {\n if (el.module === module && el.name === elementName) {\n return el;\n }\n\n const child = findElementByModule(el.children, module, elementName);\n if (child) {\n return child;\n }\n }\n\n return;\n};\n\nexport const getAbsolutePath = (\n elements: ElementMetadata[],\n subject: ElementMetadata,\n path: ElementPath,\n): string | undefined => {\n if (path.module) {\n return findElementByModule(elements, path.module, path.segments[0])?.path;\n }\n\n const subjectSegments = subject.path?.split('/') ?? [];\n const segments = [...path.segments];\n\n if (path.isAbsolute) {\n return segments.join('/');\n }\n\n while (segments.length) {\n const segment = segments.shift();\n\n if (segment === '..') {\n subjectSegments.pop();\n } else if (segment) {\n subjectSegments.push(segment);\n }\n }\n\n return subjectSegments.join('/');\n};\n","import { ComponentFactory, Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class DynamicModuleService {\n private _elementsTree: ElementMetadata[] = [];\n private _componentFactories: ComponentFactory<any>[] = [];\n\n set componentFactories(data: ComponentFactory<any>[]) {\n this._componentFactories = data;\n }\n\n get componentFactories(): ComponentFactory<any>[] {\n return this._componentFactories;\n }\n\n getComponentFactory(element: ElementMetadata): ComponentFactory<any> | undefined {\n return this.componentFactories.find(f => (f.componentType as any).path === element.path);\n }\n\n get elementsTree(): ElementMetadata[] {\n return this._elementsTree;\n }\n\n set elementsTree(tree: ElementMetadata[]) {\n this._elementsTree = tree;\n }\n\n clear() {\n this._elementsTree = [];\n this.componentFactories = [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Dictionary } from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ElementMetadata } from '../types/common.types';\nimport { getAbsolutePath, parsePath } from '../utils/path.utils';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class IOProviderService {\n private inputs: Dictionary<Dictionary<BehaviorSubject<any>>> = {};\n\n constructor(private dynamicModuleService: DynamicModuleService) {}\n\n public connect(el: ElementMetadata, name: string, target?: string | null): Observable<any> | undefined {\n return this.resolveTarget(el, name, target)?.asObservable();\n }\n\n public provide(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n return this.resolveTarget(el, name, target);\n }\n\n private resolveTarget(el: ElementMetadata, name: string, target?: string | null): BehaviorSubject<any> | undefined {\n const isHost = !target;\n\n if (isHost) {\n return this.createSubjectSafe(el.path ?? '', name);\n }\n\n const elPath = parsePath(target as string);\n const pathIsValue =\n elPath.segments.length === 1 && elPath.segments[0].startsWith('\"') && elPath.segments[0].endsWith('\"');\n\n const finalName = elPath.variable ?? name;\n const value = pathIsValue ? new BehaviorSubject(elPath.segments[0].slice(1, -1)) : undefined;\n\n const absolutePath = !pathIsValue ? getAbsolutePath(this.dynamicModuleService.elementsTree, el, elPath) : el.path;\n return this.createSubjectSafe(absolutePath ?? '', finalName, value);\n }\n\n private createSubjectSafe(path: string, name: string, subject?: BehaviorSubject<any>): BehaviorSubject<any> {\n if (!this.inputs[path]) {\n this.inputs[path] = {};\n }\n\n const subjectAlreadyExists = Boolean(this.inputs[path][name]);\n\n if (!this.inputs[path][name]) {\n this.inputs[path][name] = subject ?? new BehaviorSubject<any>(undefined);\n }\n\n if (subject && subjectAlreadyExists) {\n // push delayed value to workaround 'changed after it was checked' issue\n setTimeout(() => this.inputs[path][name].next(subject.value));\n }\n\n return this.inputs[path][name];\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { Dictionary } from 'lodash';\n\n@Injectable()\nexport class TemplatesService {\n private templates: Dictionary<TemplateRef<any>> = {};\n\n public register(name: string, templateRef: TemplateRef<any>) {\n this.templates[name] = templateRef;\n }\n\n public get(name: string): TemplateRef<any> | undefined {\n return this.templates[name];\n }\n}\n","import { Directive } from '@angular/core';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { IOProviderService } from '../services/io-provider.service';\nimport { ElementMetadata } from '../types/common.types';\n\n@Directive()\nexport class IOPlugin implements PluginComponent {\n constructor(public host: ElementComponent) {\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const inputProvider: IOProviderService = this.host.injector.get(IOProviderService);\n\n const inputs = Object.entries(elementMetadata.inputs ?? {});\n const outputs = Object.entries(elementMetadata.outputs ?? {});\n\n inputs.forEach(([key, path]) => {\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' input should be a string`);\n }\n\n if (elementMetadata.outputs?.[key] !== undefined) {\n console.warn(\n `'${key}' appears both in inputs and outputs. To prevent inconsistent behavior please keep them unique `,\n );\n }\n\n (this.host as any)[key] = inputProvider.connect(elementMetadata, key, path);\n });\n\n outputs.forEach(([key, path]) => {\n if (path && typeof path !== 'string') {\n console.error(`The value of '${key}' output should be a string`);\n }\n\n (this.host as any)[key] = inputProvider.provide(elementMetadata, key, path);\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive } from '@angular/core';\nimport { UUID } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA, SHARED_ELEMENT_METADATA, VENDOR_MAP } from '../injection-tokens';\nimport { ElementMetadata } from '../types/common.types';\n\nconst normalizeImports = (script: string) => {\n const regexp = new RegExp(\n `import([ \\\\n\\\\t]*(?:[^ \\\\n\\\\t\\\\{\\\\}]+[ \\\\n\\\\t]*,?)?(?:[ \\\\n\\\\t]*\\\\{(?:[ \\\\n\\\\t]*[^ \\\\n\\\\t\"'\\\\{\\\\}]+[ \\\\n\\\\t]*,?)+\\\\})?[ \\\\n\\\\t]*)from[ \\\\n\\\\t]*(['\"])([^'\"\\\\n]+)(?:['\"]);`,\n 'g',\n );\n const result = script.replace(regexp, (match, g1, g2, src) => `const ${g1} = vendor['${src}'];`);\n return result;\n};\n\n@Directive()\nexport class ScriptPlugin implements PluginComponent {\n private document: Document;\n private vendorMap: Dictionary<any>;\n\n constructor(public host: ElementComponent) {\n this.document = this.host.injector.get(DOCUMENT);\n this.vendorMap = this.host.injector.get(VENDOR_MAP);\n const elementMetadata: ElementMetadata = this.host.injector.get(ELEMENT_METADATA);\n const sharedElementMetadata: ElementMetadata | undefined = this.host.injector.get(SHARED_ELEMENT_METADATA);\n\n if (sharedElementMetadata?.script) {\n this.addScript(sharedElementMetadata.script);\n }\n\n if (elementMetadata.script) {\n this.addScript(elementMetadata.script);\n }\n }\n\n private addScript(scriptStr: string) {\n const id = btoa(UUID.UUID());\n const script = this.document.createElement('script');\n script.type = `text/javascript`;\n\n let scriptContent = normalizeImports(scriptStr);\n\n const classMatch = /export class (\\S+)/.exec(scriptContent);\n const className = classMatch?.[1];\n\n if (!classMatch || !className) {\n console.error(\"Script doesn't have exported class\");\n return;\n }\n\n scriptContent = scriptContent.replace(classMatch[0], `class ${className}`);\n\n script.text = `var ${id} = function(vendor) {${scriptContent}\n return ${className}; };`;\n\n this.document.body.appendChild(script);\n\n const ScriptClass = (window as any)[id](this.vendorMap);\n if (ScriptClass instanceof Object) {\n this.host.registerPlugin(new ScriptClass(this.host));\n }\n\n this.document.body.removeChild(script);\n }\n}\n","import { ElementComponent } from './components/element.component';\nimport { IOPlugin } from './plugins/io.plugin';\nimport { ScriptPlugin } from './plugins/script.plugin';\nimport { ElementConfig, ELEMENT_TYPE } from './types/common.types';\n\n/*\n * ScriptPlugin must always be the last plugin in the list to make sure user code is running after all pre-initializers.\n */\n\nexport const CONFIG: { [key in ELEMENT_TYPE]: ElementConfig } = {\n CUSTOM: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n },\n CONTAINER: {\n component: ElementComponent,\n defaultTemplate: '<element-children></element-children>',\n plugins: [ScriptPlugin],\n },\n SERVICE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n suppressStyles: true,\n },\n REFERENCE: {\n component: ElementComponent,\n plugins: [IOPlugin, ScriptPlugin],\n suppressTemplate: true,\n },\n};\n","import { CONFIG } from '../cms.elements';\nimport { IOPlugin } from '../plugins/io.plugin';\nimport { ElementConfig, ElementMetadata, ELEMENT_TYPE, UIElement, UIElementMetadata, UIElementModel } from '../types';\n\nconst EXPORTED_CLASS_REGEX = /export class (\\S+)/;\nconst METADATA_DECORATOR_REGEX = /@ElementDefinition\\(([\\s\\S]+)\\)(\\n|.)*export class/g;\n\nexport const elementToMetadata = (el: UIElement, parentPath?: string): ElementMetadata => {\n const script = el.script && window.atob(el.script);\n const template = el.template && window.atob(el.template);\n const styles = el.styles && window.atob(el.styles);\n\n const exportedClassName = script && (EXPORTED_CLASS_REGEX.exec(script) ?? [])[1];\n\n if (!exportedClassName) {\n throw new Error(\"Script doesn't have exported class\");\n }\n\n const elementMetadata = extractElementMetadata(script || '');\n const path = (parentPath ? parentPath + '/' : '') + elementMetadata.name;\n\n return {\n ...elementMetadata,\n path,\n script: script?.replace(METADATA_DECORATOR_REGEX, 'export class'),\n template,\n styles,\n children: el.children.map(child => elementToMetadata(child, path)),\n };\n};\n\nexport const metadataToElement = (metadata: ElementMetadata): UIElement => {\n const elMetadata: UIElementMetadata = {\n name: metadata.name,\n isShared: metadata.isShared,\n type: metadata.type,\n model: metadata.model,\n module: metadata.module,\n reference: metadata.reference,\n inputs: metadata.inputs,\n outputs: metadata.outputs,\n children: metadata.children.map(({ name }) => name),\n };\n const normalizedElMetadata = normalizeElementMetadata(elMetadata);\n\n if (!metadata.script || !EXPORTED_CLASS_REGEX.test(metadata.script)) {\n throw new Error(`'${metadata.name}' element script doesn't have exported class`);\n }\n\n const script =\n metadata.script &&\n window.btoa(\n metadata.script.replace(\n EXPORTED_CLASS_REGEX,\n `@ElementDefinition(${stringifyElementMetadata(normalizedElMetadata)})\\nexport class Script`,\n ),\n );\n const template = metadata.template && window.btoa(metadata.template);\n const styles = metadata.styles && window.btoa(metadata.styles);\n\n return {\n script,\n template,\n styles,\n children: metadata.children.map(meta => metadataToElement(meta)),\n };\n};\n\nexport const normalizeElementMetadata = (elementMetadata: UIElementMetadata): UIElementMetadata => {\n const metadata = { ...elementMetadata };\n\n // model\n const { lineItem, path } = metadata.model ?? {};\n const model: UIElementModel | undefined = lineItem ? { lineItem } : path ? { path } : undefined;\n if (model) {\n metadata.model = model;\n } else {\n delete metadata.model;\n }\n\n // module\n if (!metadata.module) {\n delete metadata.module;\n }\n\n // reference\n if (!metadata.reference) {\n delete metadata.reference;\n }\n\n // inputs\n const inputs = Object.entries(metadata.inputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (inputs && Object.keys(inputs).length > 0) {\n metadata.inputs = inputs;\n } else {\n delete metadata.inputs;\n }\n\n // outputs\n const outputs = Object.entries(metadata.outputs ?? {}).reduce((acc, [key, value]) => {\n return { ...acc, [key]: value || null };\n }, {});\n if (outputs && Object.keys(outputs).length > 0) {\n metadata.outputs = outputs;\n } else {\n delete metadata.outputs;\n }\n\n // children\n if (!metadata.children?.length) {\n delete metadata.children;\n }\n\n // isShared\n if (!metadata.isShared) {\n delete metadata.isShared;\n }\n\n return metadata;\n};\n\nexport const extractElementMetadata = (script: string): UIElementMetadata => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n return eval(`(${metadataString})`);\n};\n\nexport const extendElementMetadata = (script: string, extend: Partial<UIElementMetadata>): string => {\n const metadataString = (METADATA_DECORATOR_REGEX.exec(script) ?? [])[1];\n\n // need to reset regex last index to prevent null result for next execution\n METADATA_DECORATOR_REGEX.lastIndex = 0;\n\n if (!metadataString) {\n return script;\n }\n\n const updated = { ...eval(`(${metadataString})`), ...extend };\n return script.replace(metadataString, stringifyElementMetadata(updated));\n};\n\nexport const getElementConfig = (type: ELEMENT_TYPE): ElementConfig => {\n return CONFIG[type];\n};\n\nexport const doesElementSupportIO = (type: ELEMENT_TYPE): boolean => {\n return getElementConfig(type).plugins?.includes(IOPlugin) ?? false;\n};\n\nexport function stringifyElementMetadata(elementMetadata: UIElementMetadata) {\n const cleaned = JSON.stringify(elementMetadata, null, 2);\n\n return cleaned.replace(/^[\\t ]*\"[^:\\n\\r]+(?<!\\\\)\":/gm, function (match) {\n return match.replace(/\"/g, '');\n });\n}\n","import { Injectable } from '@angular/core';\nimport { ElementMetadata } from '../types/common.types';\n\n@Injectable()\nexport class ElementContextService {\n metadata?: ElementMetadata;\n parentModelId?: string;\n}\n","import { Attribute, CfgStatus, EntityUtil, LineItem, PortDomain } from '@veloce/core';\nimport { compact, Dictionary, sortBy } from 'lodash';\nimport { PathBlock } from '../types/configuration.types';\n\nexport const parseBoundPath = (path: string): PathBlock[] => {\n const regexp = new RegExp(`(?:\\\\/)(?:\\\\w+)(?:\\\\/)(?:ports|attributes)(?:\\\\/)(?:\\\\w+)|(?:\\\\/)(?:\\\\w+)`, 'g');\n const blocks: PathBlock[] =\n path.match(regexp)?.map(match => {\n const [type, property, name] = compact(match.split('/'));\n return { type, property, name };\n }) ?? [];\n\n return blocks;\n};\n\nexport const findLineItem = (id: string, lineItems: LineItem[]): LineItem | undefined => {\n return EntityUtil.findByFieldHierarchically('id', id, lineItems, 'lineItems');\n};\n\nexport const insertLineItem = (lineItem: LineItem, parentId: string, toInsert: LineItem): LineItem => {\n const insertData = lineItem.id === parentId ? [toInsert] : [];\n return {\n ...lineItem,\n lineItems: [\n ...insertData,\n ...lineItem.lineItems.map(li => {\n return insertLineItem(li, parentId, toInsert);\n }),\n ],\n };\n};\n\nexport const removeLineItem = (lineItem: LineItem, idToRemove: string): LineItem => {\n return {\n ...lineItem,\n lineItems: lineItem.lineItems\n .map(li => {\n if (li.id === idToRemove) {\n return;\n } else if (li.lineItems.length) {\n return removeLineItem(li, idToRemove);\n }\n return li;\n })\n .filter(r => !!r) as LineItem[],\n };\n};\n\nexport const replaceLineItem = (lineItem: LineItem, replaceTo: LineItem): LineItem => {\n if (lineItem.id === replaceTo.id) {\n return { ...replaceTo };\n }\n\n return {\n ...lineItem,\n lineItems: lineItem.lineItems.map(li => {\n if (li.id === replaceTo.id) {\n return replaceTo;\n } else if (li.lineItems.length) {\n return replaceLineItem(li, replaceTo);\n }\n return li;\n }),\n };\n};\n\nexport const mapAttributes = (attributes: Attribute[]): Dictionary<any> => {\n return attributes.reduce((acc, { name, value }) => ({ ...acc, [name]: value }), {});\n};\n\nexport const getAttributes = (attributes: Attribute[], names: string[] = []) => {\n const filtered = attributes.filter(({ name }) => names.includes(name));\n return sortBy(filtered, [({ name }) => names.indexOf(name)]);\n};\n\nexport const upsertAttributes = (\n originalAttributes: Attribute[],\n attributesToUpsert: { name: string; value: any }[],\n) => {\n return attributesToUpsert.reduce((acc, { name, value }) => {\n const [origAttr] = getAttributes(acc, [name]);\n return [\n ...acc.filter(attr => attr.name !== name),\n { ...(origAttr ?? { name }), cfgStatus: 'User' as CfgStatus, value },\n ];\n }, originalAttributes);\n};\n\nexport const patchAttributes = (rootLineItem: LineItem, id: string, attrs: { name: string; value: any }[]) => {\n const lineItem = findLineItem(id, [rootLineItem]);\n\n if (!lineItem) {\n return rootLineItem;\n }\n\n const attributes = upsertAttributes(lineItem.attributes, attrs);\n return replaceLineItem(rootLineItem, { ...lineItem, attributes });\n};\n\nexport const getAttributeValue = (attributes: Attribute[], name: string): any =>\n attributes.find(attr => attr.name === name)?.value;\n\nexport const generateLineItem = (\n port: string,\n type: string,\n parentId: string,\n attributes: { name: string; value: any }[] = [],\n lineItems: LineItem[] = [],\n): LineItem => {\n return {\n port,\n type,\n actionCode: 'ADD',\n cfgStatus: 'New',\n attributes: attributes.map(({ name, value }) => ({ cfgStatus: 'User', name, value })),\n lineItems,\n parentId,\n qty: 1,\n } as LineItem;\n};\n\nexport const getRecommendedPrices = (portDomain: PortDomain, type: string): { net: number; list: number } => {\n const domainType = portDomain.domainTypes.find(({ name }) => name === type);\n\n const [net, list] = domainType?.recommendedPrices\n ?.filter(({ chargeMethod }) => chargeMethod === 'ONE_TIME')\n .reduce(\n (acc, rp) => {\n const [netPrice, listPrice] = acc;\n return [netPrice + rp.netPrice, listPrice + rp.listPrice];\n },\n [0, 0],\n ) ?? [0, 0];\n\n return { net, list };\n};\n","import { LineItem } from '@veloce/core';\nimport { insertLineItem, patchAttributes, removeLineItem, replaceLineItem } from '../utils/line-item.utils';\n\nexport class LineItemWorker {\n public li: LineItem;\n\n constructor(src: LineItem) {\n this.li = { ...src };\n }\n\n public insert(parentId: string, toInsert: LineItem): LineItemWorker {\n return new LineItemWorker(insertLineItem(this.li, parentId, toInsert));\n }\n\n public remove(id: string): LineItemWorker {\n return new LineItemWorker(removeLineItem(this.li, id));\n }\n\n public replace(toReplace: LineItem): LineItemWorker {\n return new LineItemWorker(replaceLineItem(this.li, toReplace));\n }\n\n public patchAttribute(attrs: { name: string; value: any }[], id?: string): LineItemWorker {\n return new LineItemWorker(patchAttributes(this.li, id ?? this.li.id, attrs));\n }\n}\n","import { LineItem, UUID } from '@veloce/core';\nimport { UIDefinitionProps } from '../../types/ui-definition.types';\nimport { RuntimeContext } from './types/configuration.types';\n\nexport const getDefaultLineItem = (context: RuntimeContext, uiDefinitionProperties: UIDefinitionProps): LineItem => {\n const id = UUID.UUID();\n\n const lineItem: LineItem = {\n id,\n type: uiDefinitionProperties.rootType ?? '',\n cfgStatus: 'Default',\n qty: 1,\n productName: context.properties?.displayName || context.productName,\n productId: context.productId ?? '',\n ...(context.offeringId\n ? { offeringId: context.offeringId, offeringInstanceId: context.offeringInstanceId || id }\n : {}),\n } as LineItem;\n\n return lineItem;\n};\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { RuntimeData, RuntimeModel, UIDefinition as LegacyUiDefinition } from '@veloce/core';\nimport { RuntimeMode } from '@veloce/sdk/runtime';\nimport { MessageService } from 'primeng/api';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UIDefinition } from '../../../types';\nimport { RuntimeContext } from '../types/configuration.types';\n\n@Injectable()\nexport class RuntimeContextService {\n constructor(private configurationApiService: ConfigurationApiService, private messageService: MessageService) {}\n\n getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext> {\n return this.configurationApiService.getRuntimeDataByProductId(productId, offeringId).pipe(\n map(runtimeData => {\n const uiDefinition = this.getUIDefinition(runtimeData);\n const runtimeModel = RuntimeModel.create(runtimeData.types, runtimeData.products);\n const { productName, properties } =\n Array.from(runtimeModel.components.values()).find(c => c.productId === productId) ?? {};\n\n return {\n modelId: runtimeData.modelId,\n uiDefinition: uiDefinition,\n runtimeModel: runtimeModel,\n runtimeMode: RuntimeMode.PROD,\n productId: productId,\n productType: properties?.displayName || productName,\n offeringId: offeringId,\n priceListId: uiDefinition?.properties?.priceList,\n properties: {\n PricingEnabled: uiDefinition?.properties?.pricingEnabled,\n PriceListId: uiDefinition?.properties?.priceList,\n },\n };\n }),\n );\n }\n\n private getUIDefinition(runtimeData: RuntimeData): UIDefinition | undefined {\n let rawUiDefinitions: Array<UIDefinition | LegacyUiDefinition>;\n try {\n rawUiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n } catch (e) {\n return;\n }\n\n const uiDefinitions = rawUiDefinitions.filter(uiDef => (uiDef as UIDefinition).version) as UIDefinition[];\n const uiDefinition = uiDefinitions.find(uiDef => uiDef.primary) ?? uiDefinitions[0];\n\n if (!uiDefinition) {\n const errMsg = `Unable to find Default UI`;\n\n this.messageService.add({\n severity: 'error',\n summary: 'ERROR',\n });\n throw new Error(errMsg);\n }\n\n return uiDefinition;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport { ConfigurationContextMode, LineItem, RuntimeModel, SalesforceIdUtils } from '@veloce/core';\nimport { ContextService, RuntimeMode } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\nimport { UIDefinitionProps } from '../../../types/ui-definition.types';\nimport { RuntimeInitializationProps } from '../types/configuration-runtime.types';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { RuntimeContextService } from './runtime-context.service';\n\n@Injectable()\nexport class ConfigurationRuntimeService {\n private _runtimeContext?: RuntimeContext;\n private _assets?: LineItem[];\n private _isInitialized = false;\n\n public uiDefinitionProperties: UIDefinitionProps = {};\n\n constructor(\n private apiService: ConfigurationApiService,\n private contextService: ContextService,\n private runtimeContextService: RuntimeContextService,\n ) {}\n\n public reset() {\n this._isInitialized = false;\n this._runtimeContext = undefined;\n this._assets = undefined;\n this.uiDefinitionProperties = {};\n }\n\n public initTestMode(modelId: string, uiDefinitionProperties: UIDefinitionProps) {\n this.uiDefinitionProperties = uiDefinitionProperties;\n\n return combineLatest([\n this.apiService.getRuntimeDataByModelId(modelId),\n this.contextService.create('TestId', ConfigurationContextMode.TEST),\n ]).pipe(\n first(),\n tap(([runtimeData, configurationContext]) => {\n this._runtimeContext = {\n modelId: modelId,\n runtimeModel: RuntimeModel.create(runtimeData.types, runtimeData.products),\n runtimeMode: RuntimeMode.TEST,\n };\n\n this.contextService.update({\n priceListId: uiDefinitionProperties.priceList,\n properties: {\n ...this.runtimeContext?.properties,\n ...configurationContext.properties,\n ModelId: modelId,\n RuntimeMode: ConfigurationContextMode.TEST,\n PricingEnabled: String(uiDefinitionProperties.pricingEnabled),\n StartDate: new Date().toISOString().substring(0, 10),\n PriceListId: uiDefinitionProperties.priceList,\n },\n });\n\n this._isInitialized = true;\n }),\n );\n }\n\n public init(props: RuntimeInitializationProps): Observable<RuntimeContext | undefined> {\n this._assets = props.assets;\n const configurationContext = this.contextService.resolve();\n\n if (!configurationContext) {\n return of();\n }\n\n return this.runtimeContextService.getRuntimeContext(props.productId, props.offeringId).pipe(\n tap(runtimeContext => {\n this.uiDefinitionProperties = runtimeContext.uiDefinition?.properties ?? {};\n\n const mergeContext: RuntimeContext = {\n ...runtimeContext,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n },\n };\n\n this.id15to18('AccountId', mergeContext.properties);\n this._runtimeContext = mergeContext;\n\n if (configurationContext.properties && runtimeContext.properties?.StartDate) {\n this.contextService.update({\n priceListId: this.uiDefinitionProperties.priceList,\n properties: {\n ...runtimeContext.properties,\n ...configurationContext.properties,\n PricingEnabled: String(this.uiDefinitionProperties.pricingEnabled),\n PriceListId: this.uiDefinitionProperties.priceList,\n },\n });\n }\n\n this._isInitialized = true;\n }),\n );\n }\n\n private id15to18(propertyName: string, source?: Dictionary<any>) {\n if (!source) {\n return;\n }\n\n const value = source[propertyName];\n\n if (typeof value === 'string' && value.length === 15) {\n source[propertyName] = SalesforceIdUtils.generateId18FromId15(value);\n }\n }\n\n public getAsset(lineItem: LineItem): LineItem | undefined {\n return this._assets && this._assets.find(a => a.id === lineItem.openOrderLineItemId || a.id === lineItem.assetId);\n }\n\n public get isInitialized() {\n return this._isInitialized;\n }\n\n public get runtimeModel() {\n return this.runtimeContext?.runtimeModel;\n }\n\n public get runtimeContext() {\n return this._runtimeContext;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigurationApiService } from '@veloce/api';\nimport {\n ConfigurationContext,\n ConfigurationMode,\n ConfigurationRequest,\n LineItem,\n PricePlanCharge,\n RuntimeModel,\n} from '@veloce/core';\nimport { ContextService, QuoteStates, RuntimeStep } from '@veloce/sdk/runtime';\nimport { Dictionary } from 'lodash';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, Observable, of, shareReplay, throwError } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { LineItemWorker } from '../../../types/line-item.types';\nimport { getDefaultLineItem } from '../helpers';\nimport { RuntimeContext } from '../types/configuration.types';\nimport { ConfigurationRuntimeService } from './configuration-runtime.service';\n\n@Injectable()\nexport class ConfigurationService {\n private mode = ConfigurationMode.SEARCH;\n private states: QuoteStates = {};\n\n private lineItem = new BehaviorSubject<LineItem | undefined>(undefined);\n private charges = new BehaviorSubject<Dictionary<PricePlanCharge>>({});\n\n constructor(\n private runtimeService: ConfigurationRuntimeService,\n private contextService: ContextService,\n private configurationApiService: ConfigurationApiService,\n private messageService: MessageService,\n ) {}\n\n public reset() {\n this.runtimeService.reset();\n\n this.states = {};\n this.lineItem.next(undefined);\n this.charges.next({});\n }\n\n public patch(lineItem: LineItem): void {\n if (!this.lineItem.value) {\n return;\n }\n\n this.states.configurableRamp = new LineItemWorker(this.lineItem.value).replace(lineItem).li;\n this.states.asset = this.states.configurableRamp\n ? this.runtimeService.getAsset(this.states.configurableRamp)\n : undefined;\n\n this.configure()\n .pipe(\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n\n // bounce back if configuration call has failed\n this.lineItem.next(this.lineItem.value ? { ...this.lineItem.value } : undefined);\n return of();\n }),\n )\n .subscribe();\n }\n\n public updateCurrentStates(update: Partial<QuoteStates>) {\n this.states = {\n ...this.states,\n ...update,\n };\n }\n\n public get(): Observable<LineItem | undefined> {\n return this.lineItem.asObservable().pipe(shareReplay());\n }\n\n public getSnapshot(): LineItem | undefined {\n return this.lineItem.value ? { ...this.lineItem.value } : undefined;\n }\n\n public getRuntimeModel(): RuntimeModel | undefined {\n return this.runtimeService.runtimeModel;\n }\n public getRuntimeContext(): RuntimeContext | undefined {\n return this.runtimeService.runtimeContext;\n }\n\n public get charges$(): Observable<Dictionary<PricePlanCharge>> {\n return this.charges.asObservable();\n }\n\n public get chargesSnapshot(): Dictionary<PricePlanCharge> {\n return this.charges.value;\n }\n\n public configure(): Observable<LineItem | undefined> {\n const runtimeContext = this.getRuntimeContext();\n const runtimeModel = this.getRuntimeModel();\n if (!runtimeContext || !runtimeModel) {\n return of(undefined);\n }\n\n const uiDefinitionProperties = {\n ...(runtimeContext.uiDefinition?.properties ?? {}),\n ...(this.runtimeService.uiDefinitionProperties ?? {}),\n };\n const lineItem = this.states.configurableRamp ?? getDefaultLineItem(runtimeContext, uiDefinitionProperties);\n const configurationRequest = this.createRequest(lineItem);\n configurationRequest.lineItems = this.states.currentState || [];\n configurationRequest.asset = this.states.asset;\n\n let request$: Observable<LineItem>;\n if (uiDefinitionProperties.pricingEnabled) {\n request$ = this.configurationApiService.configureAndPriceLineItem(configurationRequest, runtimeModel).pipe(\n map(({ lineItem, context, charges }) => {\n if (context) {\n this.contextService.update({ properties: context.properties });\n }\n this.charges.next(charges ?? {});\n\n return lineItem;\n }),\n );\n } else {\n request$ = this.configurationApiService.configureLineItem(configurationRequest, runtimeModel);\n }\n\n return request$.pipe(\n tap(lineItem => lineItem && this.lineItem.next(lineItem)),\n catchError(error => throwError(() => new Error(error.error?.message || error.message || JSON.stringify(error)))),\n );\n }\n\n private createRequest(lineItem: LineItem): ConfigurationRequest {\n return {\n lineItem,\n mode: this.mode,\n step: !this.lineItem.value ? RuntimeStep.START : RuntimeStep.UPDATE,\n attributeDomainMode: 'ALL',\n context: this.contextService.resolve() as ConfigurationContext,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n SkipSelf,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { LineItem, UUID } from '@veloce/core';\nimport { Dictionary, isArray, pull } from 'lodash';\nimport { map, Observable, Subject, takeUntil } from 'rxjs';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { DynamicModuleService } from '../../services/dynamic-module.service';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { parseBoundPath } from '../../utils/line-item.utils';\n\n@Component({\n selector: 'vl-cms-element-renderer',\n templateUrl: './element-renderer.component.html',\n styleUrls: ['./element-renderer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ElementContextService],\n})\nexport class ElementRendererComponent implements OnInit, OnDestroy {\n @ViewChild('el', { read: ViewContainerRef, static: true }) el?: ViewContainerRef;\n\n @Input() meta!: ElementMetadata;\n\n private factory?: ComponentFactory<any>;\n private refs: Dictionary<ComponentRef<any> | undefined> = {};\n private destroy$ = new Subject<void>();\n\n constructor(\n @SkipSelf() private parentInjector: Injector,\n private dynamicModuleService: DynamicModuleService,\n private elementContext: ElementContextService,\n private ioProviderService: IOProviderService,\n private configurationService: ConfigurationService,\n private elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.elementContext.metadata = this.meta;\n this.factory = this.dynamicModuleService.getComponentFactory(this.meta);\n\n this.createComponents();\n }\n\n ngOnDestroy(): void {\n this.destroyComponents();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private createComponents(): void {\n const modelMeta = this.meta.model;\n\n if (!modelMeta) {\n this.refs[UUID.UUID()] = this.createComponent();\n return;\n }\n\n if (modelMeta.lineItem) {\n this.createFromLineItem(modelMeta.lineItem);\n } else if (modelMeta.path) {\n this.createFromPath(modelMeta.path);\n }\n }\n\n private createFromPath(path: string): void {\n const array$ = this.ioProviderService.connect(this.meta, 'children$', path);\n\n array$?.pipe(takeUntil(this.destroy$)).subscribe(children => {\n if (!isArray(children)) {\n return;\n }\n\n this.processChildren(children);\n });\n }\n\n private createFromLineItem(path: string): void {\n const parentComp = this.parentInjector.get(ElementRendererComponent, null);\n const parentPath = parentComp?.meta.model?.lineItem;\n\n const pathBlocks = parseBoundPath(path).reverse();\n const { property, name } = pathBlocks[1] ?? {};\n const finalPath = pathBlocks[0];\n\n const children$ = this.getParentLineItem$(parentComp).pipe(\n map(model => {\n if (property === 'ports' && !finalPath.property && parentPath !== path) {\n return model.lineItems.filter(({ port }) => port === name) ?? [];\n }\n return [model];\n }),\n );\n\n children$.pipe(takeUntil(this.destroy$)).subscribe(children => {\n this.processChildren(children);\n });\n }\n\n private processChildren(children: any[]): void {\n const refs = children.reduce((acc, data) => {\n const key = String(data?.id ?? UUID.UUID());\n const ref = this.refs[key] ? this.updateComponent(key, data) : this.createComponent(data);\n\n return ref ? { ...acc, [key]: ref } : acc;\n }, {} as Dictionary<ComponentRef<any>>);\n\n const existingKeys = Object.keys(this.refs);\n const newKeys = Object.keys(refs);\n\n pull(existingKeys, ...newKeys).forEach(key => {\n this.destroyComponent(key);\n });\n\n this.refs = refs;\n this.cdr.detectChanges();\n }\n\n private getParentLineItem$(parentComp: ElementRendererComponent | null): Observable<LineItem> {\n const parentRefs = Object.values(parentComp?.refs ?? {});\n const parentRef = parentRefs.find(ref =>\n (ref?.location.nativeElement as HTMLElement)?.contains(this.elementRef.nativeElement),\n );\n\n const parentModel$ = parentRef?.instance.model$;\n\n return parentModel$ ?? this.configurationService.get();\n }\n\n private createComponent(data?: any): ComponentRef<any> | undefined {\n if (!this.factory) {\n return;\n }\n\n const componentRef = this.el?.createComponent(this.factory);\n\n if (componentRef) {\n componentRef.location.nativeElement.setAttribute('name', this.meta.name);\n componentRef.location.nativeElement.setAttribute('path', this.meta.path);\n componentRef.instance?.model$.next(data);\n }\n\n return componentRef;\n }\n\n private updateComponent(key: string, data?: any): ComponentRef<any> | undefined {\n const ref = this.refs[key];\n ref?.instance.model$.next(data);\n\n return ref;\n }\n\n private destroyComponent(key: string) {\n this.refs[key]?.destroy();\n delete this.refs[key];\n }\n\n private destroyComponents(): void {\n Object.values(this.refs).forEach(ref => ref?.destroy());\n this.refs = {};\n }\n}\n","<ng-template #el></ng-template>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ElementContextService } from '../../services/element-context.service';\nimport { ElementMetadata } from '../../types/common.types';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'element-children',\n templateUrl: 'element-children.component.html',\n styleUrls: ['./element-children.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ElementChildrenComponent {\n public metadata?: ElementMetadata;\n\n constructor(private elementContext: ElementContextService) {\n this.metadata = this.elementContext.metadata;\n }\n}\n","<ng-container *ngIf=\"metadata?.children.length\">\n <ng-container *ngFor=\"let child of metadata.children\">\n <vl-cms-element-renderer [meta]=\"child\"></vl-cms-element-renderer>\n </ng-container>\n</ng-container>\n","import { Dictionary } from 'lodash';\n\ntype Scope = unknown;\ntype Factory = () => any;\n\ntype Container = {\n init(shareScope: Scope): void;\n get(module: string): Factory;\n};\n\ndeclare const __webpack_init_sharing__: (shareScope: string) => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: Scope };\n\nconst moduleMap: Dictionary<boolean> = {};\n\nfunction loadRemoteEntry(remoteEntry: string): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (moduleMap[remoteEntry]) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = remoteEntry;\n\n script.onerror = reject;\n\n script.onload = () => {\n moduleMap[remoteEntry] = true;\n resolve(); // window is the global namespace\n };\n\n document.body.append(script);\n });\n}\n\nasync function lookupExposedModule<T>(remoteName: string, exposedModule: string): Promise<T> {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__('default');\n const container = (window as any)[remoteName] as Container; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(exposedModule);\n const Module = factory();\n return Module as T;\n}\n\nexport type LoadRemoteModuleOptions = {\n remoteEntry: string;\n remoteName: string;\n exposedModule: string;\n};\n\nexport async function loadRemoteModule(options: LoadRemoteModuleOptions): Promise<any> {\n await loadRemoteEntry(options.remoteEntry);\n\n return await lookupExposedModule<any>(options.remoteName, options.exposedModule);\n}\n","import {\n AfterViewInit,\n ApplicationRef,\n ChangeDetectionStrategy,\n Compiler,\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { loadRemoteModule } from '../../utils/federated.util';\nimport { LineItem } from '@veloce/core';\n\nenum IntegrationEvent {\n Init = 'Init',\n}\n\ninterface InputData {\n rootLineItem: LineItem;\n}\n\ninterface IntegrationEventPayload {\n type: IntegrationEvent;\n payload?: unknown;\n}\n\ninterface InegrationComponentInstance extends OnChanges {\n integrationEvent: EventEmitter<IntegrationEventPayload>;\n integrationAppRef: ApplicationRef;\n data?: InputData;\n eventData?: IntegrationEventPayload;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'veloce-host-federated',\n templateUrl: './federated.component.html',\n styleUrls: ['./federated.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FederatedComponent implements AfterViewInit, OnChanges {\n @ViewChild('federatedComponent', { read: ViewContainerRef }) federatedComponent?: ViewContainerRef;\n @ViewChild('foo', { read: TemplateRef }) foo?: TemplateRef<unknown>;\n @ViewChild('moduleHost', { static: false }) moduleHostRef?: ElementRef;\n\n @Input() remoteEntry?: string;\n @Input() remoteName?: string;\n @Input() exposedModule?: string;\n @Input() data?: InputData;\n @Input() eventData?: IntegrationEventPayload;\n @Output() private integrationEvent = new EventEmitter<IntegrationEventPayload>();\n\n moduleReady = false;\n\n private instance?: InegrationComponentInstance;\n\n constructor(\n private injector: Injector,\n private compiler: Compiler,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.remoteEntry || !this.remoteName || !this.exposedModule) {\n return;\n }\n\n loadRemoteModule({\n remoteEntry: this.remoteEntry,\n remoteName: this.remoteName,\n exposedModule: this.exposedModule,\n }).then(federated => {\n this.compiler.compileModuleAsync(federated[this.exposedModule as string]).then(moduleFactory => {\n const rootModuleRef = moduleFactory.create(this.injector);\n const rootComponentFactory = rootModuleRef.componentFactoryResolver.resolveComponentFactory(\n federated[this.exposedModule as string].rootComponent,\n );\n const node = document.createElement('div');\n const { instance, hostView } = rootComponentFactory.create(this.injector, [], node);\n\n this.instance = instance as InegrationComponentInstance;\n this.instance.data = this.data;\n this.instance.eventData = this.eventData;\n this.instance.integrationEvent = this.integrationEvent;\n\n this.renderer.appendChild(this.moduleHostRef?.nativeElement, node);\n this.appRef.attachView(hostView);\n });\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.instance) {\n return;\n }\n\n this.instance.ngOnChanges(changes);\n }\n}\n","<div #moduleHost></div>\n","import { NgModule } from '@angular/core';\nimport { FederatedComponent } from './federated.component';\n\n@NgModule({\n declarations: [FederatedComponent],\n exports: [FederatedComponent],\n})\nexport class FederatedModule {}\n","import { AfterViewInit, Directive, Input, TemplateRef } from '@angular/core';\nimport { TemplatesService } from '../services/templates.service';\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: '[customTemplate]' })\nexport class CustomTemplateDirective implements AfterViewInit {\n constructor(private templateRef: TemplateRef<any>, private templatesService: TemplatesService) {}\n\n @Input() customTemplate: string | undefined;\n\n ngAfterViewInit(): void {\n if (!this.customTemplate) {\n return;\n }\n\n this.templatesService.register(this.customTemplate, this.templateRef);\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { LineItem } from '@veloce/core';\nimport { map, Subject, takeUntil } from 'rxjs';\nimport { ElementComponent } from '../components/element.component';\nimport { PluginComponent } from '../components/plugin.component';\nimport { ELEMENT_METADATA } from '../injection-tokens';\nimport { ConfigurationService } from '../modules/configuration/services/configuration.service';\nimport { AttributeElement, ConfigurationElement, PortElement, TypeElement } from '../types';\nimport { ElementMetadata } from '../types/common.types';\nimport { LineItemWorker } from '../types/line-item.types';\nimport { generateLineItem, getAttributeValue, parseBoundPath } from '../utils/line-item.utils';\n\n@Directive()\nexport class ConfigurationPlugin implements PluginComponent, OnDestroy {\n private modelSnapshot?: LineItem;\n private destroy$ = new Subject<void>();\n\n private elementMetadata: ElementMetadata;\n private configurationService: ConfigurationService;\n\n constructor(public host: ElementComponent & ConfigurationElement) {\n this.elementMetadata = this.host.injector.get(ELEMENT_METADATA);\n this.configurationService = this.host.injector.get(ConfigurationService);\n\n if (this.elementMetadata.model?.lineItem) {\n this.host.model$.pipe(takeUntil(this.destroy$)).subscribe(model => (this.modelSnapshot = model));\n\n const pathBlocks = parseBoundPath(this.elementMetadata.model?.lineItem);\n const { type, property, name } = pathBlocks.reverse()[0];\n\n this.host.boundName = name ?? type;\n\n this.register(type, property, name);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private register(type?: string, property?: string, name?: string) {\n if (!type) {\n return;\n }\n\n if (!property) {\n this.registerType();\n } else if (property === 'ports' && name) {\n this.registerPort(name);\n } else if (property === 'attributes' && name) {\n this.registerAttribute(name);\n }\n }\n\n private registerType(): void {\n const remove = (id: string): void => {\n const rootLineItem = this.configurationService.getSnapshot();\n if (!rootLineItem) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(rootLineItem).remove(id).li);\n };\n\n this.typeHost.remove = remove;\n }\n\n private registerPort(name: string): void {\n const add = (type: string, attributes: { name: string; value: any }[] = []): void => {\n if (!this.modelSnapshot) {\n return;\n }\n\n const portDomain = this.modelSnapshot.portDomains[name];\n if (!portDomain) {\n return;\n }\n\n const generated = generateLineItem(portDomain.name, type, this.modelSnapshot.id, attributes);\n this.configurationService.patch(\n new LineItemWorker(this.modelSnapshot).insert(this.modelSnapshot.id, generated).li,\n );\n };\n\n this.portHost.addPortItem = add;\n }\n\n private registerAttribute(name: string): void {\n if (!this.host.model$) {\n return;\n }\n\n const value$ = this.host.model$?.pipe(map(model => getAttributeValue(model?.attributes ?? [], name)));\n\n const patch = (value: any) => {\n if (!this.modelSnapshot) {\n return;\n }\n this.configurationService.patch(new LineItemWorker(this.modelSnapshot).patchAttribute([{ name, value }]).li);\n };\n\n this.attributeHost.value$ = value$;\n this.attributeHost.patch = patch;\n }\n\n private get attributeHost() {\n return this.host as ElementComponent & AttributeElement;\n }\n\n private get typeHost() {\n return this.host as ElementComponent & TypeElement;\n }\n\n private get portHost() {\n return this.host as ElementComponent & PortElement;\n }\n}\n","import { Plugin } from './engine/models/plugin';\nimport { ConfigurationPlugin } from './plugins/configuration.plugin';\nimport { UIDefinitionType } from './types/ui-definition.types';\n\nexport const DEFAULT_PLUGINS: { [key in UIDefinitionType]: typeof Plugin[] } = {\n CONFIGURATION: [ConfigurationPlugin],\n DEFAULT: [],\n};\n","import * as angularCore from '@angular/core';\nimport * as angularForms from '@angular/forms';\nimport {\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n QuoteApiService,\n SalesforceApiService,\n} from '@veloce/api';\nimport * as lodash from 'lodash';\nimport { Dictionary } from 'lodash';\nimport * as rxjs from 'rxjs';\nimport * as rxjsOperators from 'rxjs/operators';\nimport * as vlInjectionTokens from './injection-tokens';\nimport * as vlCmsModules from './modules';\nimport { TemplatesService } from './services/templates.service';\nimport * as vlCmsLineItemTypes from './types/line-item.types';\nimport * as vlCmsUtils from './utils';\n\nexport const vendorMap: Dictionary<any> = {\n '@veloce/sdk/cms': {\n ...vlCmsModules,\n ...vlCmsUtils,\n ...vlCmsLineItemTypes,\n ...vlInjectionTokens,\n TemplatesService,\n },\n '@veloce/api': {\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n },\n '@angular/core': angularCore,\n '@angular/forms': angularForms,\n rxjs: rxjs,\n 'rxjs/operators': rxjsOperators,\n lodash: lodash,\n};\n","import { Component, Type } from '@angular/core';\nimport { transform } from '@babel/standalone';\nimport { flatten, set } from 'lodash';\nimport { DEFAULT_PLUGINS } from '../cms.default';\nimport { CONFIG } from '../cms.elements';\nimport {\n DEFAULT_PLUGINS_TOKEN,\n ELEMENT_CONFIG,\n ELEMENT_METADATA,\n SHARED_ELEMENT_METADATA,\n UI_DEFINITION_METADATA,\n VENDOR_MAP,\n} from '../injection-tokens';\nimport { ElementMetadata, UIDefinitionMetadata } from '../types';\nimport { vendorMap } from '../vendor-map';\n\nexport class ElementsResolver {\n public readonly elements: ElementMetadata[];\n\n private renderableElements: ElementMetadata[] = [];\n private sharedElements: ElementMetadata[] = [];\n\n constructor(private uiDef: UIDefinitionMetadata, elements: ElementMetadata[]) {\n this.elements = this.transpileScripts(elements);\n\n const flatElements = this.flattenElements(this.elements);\n\n for (const el of flatElements) {\n if (this.isSharedElement(el)) {\n this.sharedElements.push(el);\n } else {\n this.renderableElements.push(el);\n }\n }\n }\n\n private transpile(el: ElementMetadata): string | undefined {\n if (!el.script) {\n return;\n }\n\n const transformed = transform(el.script, {\n filename: el.name + '.ts',\n presets: ['typescript'],\n sourceMaps: 'inline',\n });\n\n return transformed.code ?? undefined;\n }\n\n private transpileScripts(elements: ElementMetadata[]): ElementMetadata[] {\n return elements.map(el => ({\n ...el,\n script: this.transpile(el),\n children: this.transpileScripts(el.children),\n }));\n }\n\n private flattenElements(elements: ElementMetadata[]): ElementMetadata[] {\n return flatten(elements.map(el => [el, ...this.flattenElements(el.children)]));\n }\n\n private isSharedElement(el: ElementMetadata): boolean {\n return Boolean(el.isShared) && el.type !== 'REFERENCE';\n }\n\n private getSharedElement(element: ElementMetadata): ElementMetadata | undefined {\n if (element.type !== 'REFERENCE') {\n return;\n }\n\n return this.sharedElements.find(el => element.reference === el.name);\n }\n\n private resolveElementTemplate(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n const template = !config.suppressTemplate ? element.template : '';\n\n return template || config.defaultTemplate || '';\n }\n\n private resolveElementStyles(element: ElementMetadata): string {\n const config = CONFIG[element.type];\n return !config.suppressStyles ? element.styles ?? '' : '';\n }\n\n private processElementMetadata(sourceElement: ElementMetadata): ElementMetadata | undefined {\n const sharedElement = this.getSharedElement(sourceElement);\n let finalElement: ElementMetadata;\n\n if (sourceElement.type === 'REFERENCE') {\n if (!sharedElement) {\n console.warn(`Shared element \"${sourceElement.reference}\" not found`);\n return;\n }\n\n finalElement = {\n ...sourceElement,\n type: sharedElement.type,\n template: sharedElement.template,\n styles: (sharedElement.styles ?? '') + '\\n' + (sourceElement.styles ?? ''),\n inputs: {\n ...sharedElement.inputs,\n ...sourceElement.inputs,\n },\n outputs: {\n ...sharedElement.outputs,\n ...sourceElement.outputs,\n },\n };\n } else {\n finalElement = sourceElement;\n }\n\n finalElement.template = this.resolveElementTemplate(finalElement);\n finalElement.styles = this.resolveElementStyles(finalElement);\n\n return finalElement;\n }\n\n private resolveElement(sourceElement: ElementMetadata): Type<any> | undefined {\n const element = this.processElementMetadata(sourceElement);\n if (!element) {\n return;\n }\n\n const config = CONFIG[element.type];\n const defaultPlugins = DEFAULT_PLUGINS[this.uiDef.type];\n\n if (!config) {\n console.warn(`Unknown element type \"${element.type}\"`);\n return;\n }\n\n const component: Component = {\n selector: 'vl-element',\n template: element.template,\n ...(element.styles ? { styles: [element.styles] } : {}),\n providers: [\n { provide: DEFAULT_PLUGINS_TOKEN, useValue: defaultPlugins },\n { provide: UI_DEFINITION_METADATA, useValue: this.uiDef },\n { provide: ELEMENT_METADATA, useValue: element },\n { provide: SHARED_ELEMENT_METADATA, useValue: this.getSharedElement(sourceElement) },\n { provide: ELEMENT_CONFIG, useValue: config },\n { provide: VENDOR_MAP, useValue: vendorMap },\n ],\n };\n\n const cmp = Component(component)(class C extends config.component {});\n\n set(cmp, 'path', element.path);\n\n return cmp;\n }\n\n public getNgComponents(): Type<any>[] {\n return this.renderableElements.map(el => this.resolveElement(el)).filter(Boolean) as Type<any>[];\n }\n}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Compiler, Injectable, ModuleWithComponentFactories, NgModule, Type } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { from, Observable, tap } from 'rxjs';\nimport { ElementChildrenComponent } from '../components/element-children/element-children.component';\nimport { ElementRendererComponent } from '../components/element-renderer/element-renderer.component';\nimport { FederatedModule } from '../components/federated/federated.module';\nimport { CustomTemplateDirective } from '../directives/custom-template.directive';\nimport { ElementMetadata } from '../types';\nimport { UIDefinitionMetadata } from '../types/ui-definition.types';\nimport { ElementsResolver } from '../utils/elements-resolver';\nimport { DynamicModuleService } from './dynamic-module.service';\n\n@Injectable()\nexport class LauncherService {\n private module?: Type<NgModule>;\n private moduleInstance?: ModuleWithComponentFactories<NgModule>;\n\n constructor(private compiler: Compiler, private dynamicModuleService: DynamicModuleService) {}\n\n public compileModule(\n elements: ElementMetadata[],\n uiDefs: UIDefinitionMetadata,\n ): Observable<ModuleWithComponentFactories<NgModule>> {\n this.module = this.getModule(elements, uiDefs);\n return from(this.compiler.compileModuleAndAllComponentsAsync(this.module)).pipe(\n tap(m => {\n this.dynamicModuleService.componentFactories = m.componentFactories;\n this.moduleInstance = m;\n }),\n );\n }\n\n public destroy() {\n if (this.moduleInstance) {\n this.dynamicModuleService.clear();\n this.moduleInstance = undefined;\n }\n\n if (this.module) {\n this.compiler.clearCacheFor(this.module);\n this.module = undefined;\n }\n }\n\n private getModule(elements: ElementMetadata[], uiDef: UIDefinitionMetadata): Type<NgModule> {\n const staticComponents = [ElementChildrenComponent, ElementRendererComponent, CustomTemplateDirective];\n const elementsResolver = new ElementsResolver(uiDef, elements);\n this.dynamicModuleService.elementsTree = elementsResolver.elements;\n\n @NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, FederatedModule, DragDropModule],\n declarations: [...staticComponents, ...elementsResolver.getNgComponents()],\n jit: true,\n })\n class DynamicModule {}\n\n return DynamicModule;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, catchError, forkJoin, Observable, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { ConfigurationRuntimeService } from '../../modules/configuration/services/configuration-runtime.service';\nimport { ConfigurationService } from '../../modules/configuration/services/configuration.service';\nimport { IOProviderService } from '../../services/io-provider.service';\nimport { LauncherService } from '../../services/launcher.service';\nimport { TemplatesService } from '../../services/templates.service';\nimport { ElementMetadata } from '../../types/common.types';\nimport { UIDefinition, UIDefinitionProps, UIElement } from '../../types/ui-definition.types';\nimport { elementToMetadata } from '../../utils/element.utils';\n\ninterface State {\n loading: boolean;\n failure: boolean;\n}\n\n@Component({\n selector: 'vl-cms-preview',\n templateUrl: './preview.component.html',\n styleUrls: ['./preview.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IOProviderService, TemplatesService],\n // use shadow DOM to prevent UI from being affected by global styles\n encapsulation: ViewEncapsulation.ShadowDom,\n})\nexport class PreviewComponent implements OnInit, OnDestroy {\n @Input() modelId?: string;\n @Input() uiDefinition?: UIDefinition;\n\n public state$ = new BehaviorSubject<State>({ loading: true, failure: false });\n public elements: ElementMetadata[] = [];\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private launcherService: LauncherService,\n private configurationService: ConfigurationService,\n private messageService: MessageService,\n private runtimeService: ConfigurationRuntimeService,\n ) {}\n\n ngOnInit() {\n this.startPreview();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n\n this.configurationService.reset();\n }\n\n private initializeConfiguration$(): Observable<any> {\n const isAlreadyInitialized = this.runtimeService.isInitialized;\n if (!this.uiDefinition || this.uiDefinition.type !== 'CONFIGURATION' || isAlreadyInitialized) {\n return of({});\n }\n\n if (!this.modelId) {\n console.warn(`No modelId is given for uiDefinition with '${this.uiDefinition.type}' type`);\n return of({});\n }\n\n // If still not initialized - init configuration in Test mode\n const uiDefinitionProps: UIDefinitionProps = this.uiDefinition.properties ?? {};\n return this.runtimeService\n .initTestMode(this.modelId, uiDefinitionProps)\n .pipe(switchMap(() => this.configurationService.configure()));\n }\n\n private elementToMetadataSafe(elements: UIElement[]): ElementMetadata[] {\n try {\n return elements.map(element => elementToMetadata(element));\n } catch (e) {\n console.error(e);\n this.messageService.add({ severity: 'error', summary: String(e) });\n return [];\n }\n }\n\n private startPreview() {\n if (!this.uiDefinition) {\n return;\n }\n\n const { children, ...uiDefinitionMeta } = this.uiDefinition;\n this.elements = this.elementToMetadataSafe(children);\n\n const compilation$ = this.launcherService.compileModule(this.elements, uiDefinitionMeta);\n\n forkJoin([compilation$, this.initializeConfiguration$()])\n .pipe(\n tap(() => this.state$.next({ loading: false, failure: false })),\n catchError(error => {\n this.messageService.add({\n severity: 'error',\n summary: error,\n });\n this.state$.next({ loading: false, failure: true });\n return of();\n }),\n takeUntil(this.destroy$),\n )\n .subscribe();\n }\n}\n","<ng-container *ngIf=\"state$ | async as state\">\n <vl-loader *ngIf=\"state.loading; else content\" [label]=\"'Loading UI'\"></vl-loader>\n\n <ng-template #content>\n <ng-container *ngIf=\"!state.failure\">\n <vl-cms-element-renderer *ngFor=\"let el of elements\" [meta]=\"el\"></vl-cms-element-renderer>\n </ng-container>\n </ng-template>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { ElementRendererComponent } from './element-renderer.component';\n\n@NgModule({\n declarations: [ElementRendererComponent],\n exports: [ElementRendererComponent],\n})\nexport class ElementRendererModule {}\n","import { NgModule } from '@angular/core';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { ElementChildrenComponent } from './element-children.component';\n\n@NgModule({\n declarations: [ElementChildrenComponent],\n imports: [ElementRendererModule],\n exports: [ElementChildrenComponent],\n})\nexport class ElementChildrenModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LoaderModule } from '@veloce/components';\nimport { ElementChildrenModule } from '../element-children/element-children.module';\nimport { ElementRendererModule } from '../element-renderer/element-renderer.module';\nimport { PreviewComponent } from './preview.component';\n\n@NgModule({\n declarations: [PreviewComponent],\n imports: [CommonModule, LoaderModule, ElementRendererModule, ElementChildrenModule],\n exports: [PreviewComponent],\n})\nexport class PreviewModule {}\n","import { UIElementMetadata } from '../types';\n\nexport function ElementDefinition(definition: UIElementMetadata) {\n return function (constructor: any) {\n return constructor;\n };\n}\n","import { NgModule } from '@angular/core';\nimport { ConfigurationApiService, ContextApiService, ProductModelApiService } from '@veloce/api';\nimport { ContextService } from '@veloce/sdk/runtime';\nimport { ConfigurationRuntimeService } from './services/configuration-runtime.service';\nimport { ConfigurationService } from './services/configuration.service';\nimport { RuntimeContextService } from './services/runtime-context.service';\n\n@NgModule({\n providers: [\n ContextService,\n ContextApiService,\n ProductModelApiService,\n ConfigurationApiService,\n ConfigurationRuntimeService,\n RuntimeContextService,\n ConfigurationService,\n ],\n})\nexport class ConfigurationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n DocumentAttachmentApiService,\n DocumentTemplatesApiService,\n QuoteApiService,\n SalesforceApiService,\n} from '@veloce/api';\nimport { CoreModule } from '@veloce/core';\nimport { ConfigurationModule } from './modules/configuration/configuration.module';\nimport { DynamicModuleService } from './services/dynamic-module.service';\nimport { LauncherService } from './services/launcher.service';\n\n@NgModule({\n imports: [CommonModule, CoreModule, ConfigurationModule],\n providers: [\n LauncherService,\n DynamicModuleService,\n SalesforceApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n DocumentAttachmentApiService,\n ],\n})\nexport class LauncherModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["InjectionToken","ElementComponent","BehaviorSubject","Component","ChangeDetectionStrategy","Inject","Injector","Injectable","Directive","DOCUMENT","UUID","compact","EntityUtil","sortBy","map","RuntimeModel","RuntimeMode","combineLatest","ConfigurationContextMode","first","tap","of","SalesforceIdUtils","ConfigurationMode","catchError","shareReplay","throwError","RuntimeStep","Subject","takeUntil","isArray","pull","ViewContainerRef","SkipSelf","ViewChild","Input","EventEmitter","TemplateRef","Output","NgModule","angularCore","angularForms","rxjs","rxjsOperators","lodash","transform","flatten","set","from","CommonModule","FormsModule","ReactiveFormsModule","DragDropModule","switchMap","forkJoin","ViewEncapsulation","LoaderModule","ContextService","ContextApiService","ProductModelApiService","ConfigurationApiService","CoreModule","SalesforceApiService","QuoteApiService","DocumentTemplatesApiService","DocumentAttachmentApiService"],"mappings":"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"}