{"version":3,"file":"valtimo-plugin-management.mjs","sources":["../../../../projects/valtimo/plugin-management/src/lib/models/plugin-modal.model.ts","../../../../projects/valtimo/plugin-management/src/lib/models/index.ts","../../../../projects/valtimo/plugin-management/src/lib/services/plugin-management-state.service.ts","../../../../projects/valtimo/plugin-management/src/lib/services/index.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-select/plugin-add-select.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-configure/plugin-configure.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-add-modal/plugin-add-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit/plugin-edit.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-edit-modal/plugin-edit-modal.component.html","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.ts","../../../../projects/valtimo/plugin-management/src/lib/components/plugin-management/plugin-management.component.html","../../../../projects/valtimo/plugin-management/src/lib/plugin-management-routing.ts","../../../../projects/valtimo/plugin-management/src/lib/plugin-management.module.ts","../../../../projects/valtimo/plugin-management/src/public-api.ts","../../../../projects/valtimo/plugin-management/src/valtimo-plugin-management.ts"],"sourcesContent":["/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype PluginModal = 'add' | 'edit';\n\nexport {PluginModal};\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './plugin-modal.model';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, combineLatest, Observable, Subject} from 'rxjs';\nimport {map, take} from 'rxjs/operators';\nimport {PluginModal} from '../models';\nimport {\n  PluginService,\n  PluginSpecification,\n  PluginConfiguration,\n  PluginDefinition,\n  PluginDefinitionWithLogo,\n} from '@valtimo/plugin';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PluginManagementStateService {\n  private readonly _showModal$ = new Subject<PluginModal>();\n  private readonly _hideModal$ = new Subject();\n  private readonly _inputDisabled$ = new BehaviorSubject<boolean>(false);\n  private readonly _refresh$ = new BehaviorSubject<null>(null);\n  private readonly _save$ = new Subject<null>();\n  private readonly _saveEdit$ = new Subject<null>();\n  private readonly _delete$ = new Subject<null>();\n  private readonly _hideModalSaveButton$ = new BehaviorSubject<boolean>(false);\n  private readonly _pluginDefinitions$ = new BehaviorSubject<Array<PluginDefinition> | undefined>(\n    undefined\n  );\n  private readonly _pluginDefinitionsWithLogos$: Observable<\n    Array<PluginDefinitionWithLogo> | undefined\n  > = combineLatest([\n    this._pluginDefinitions$,\n    this.pluginService.pluginSpecifications$,\n    this.pluginService.availablePluginIds$,\n  ]).pipe(\n    map(([pluginDefinitions, pluginSpecifications, availablePluginIds]) =>\n      pluginDefinitions\n        ?.filter(pluginDefinition => availablePluginIds.includes(pluginDefinition.key))\n        .map(pluginDefinition => {\n          const pluginSpecification = pluginSpecifications.find(\n            specification => specification.pluginId === pluginDefinition.key\n          );\n\n          return {\n            ...pluginDefinition,\n            ...(pluginSpecification?.pluginLogoBase64 && {\n              pluginLogoBase64: this.sanitizer.bypassSecurityTrustResourceUrl(\n                pluginSpecification?.pluginLogoBase64\n              ),\n            }),\n          };\n        })\n    )\n  );\n  private readonly _selectedPluginDefinition$ = new BehaviorSubject<PluginDefinition | undefined>(\n    undefined\n  );\n\n  private readonly _selectedPluginConfiguration$ = new BehaviorSubject<\n    PluginConfiguration | undefined\n  >(undefined);\n\n  constructor(\n    private readonly pluginService: PluginService,\n    private readonly sanitizer: DomSanitizer\n  ) {}\n\n  get showModal$(): Observable<PluginModal> {\n    return this._showModal$.asObservable();\n  }\n\n  get hideModal$(): Observable<any> {\n    return this._hideModal$.asObservable();\n  }\n\n  get inputDisabled$(): Observable<boolean> {\n    return this._inputDisabled$.asObservable();\n  }\n\n  get refresh$(): Observable<any> {\n    return this._refresh$.asObservable();\n  }\n\n  get pluginDefinitions$(): Observable<Array<PluginDefinition> | undefined> {\n    return this._pluginDefinitions$.asObservable();\n  }\n\n  get pluginDefinitionsWithLogos$(): Observable<Array<PluginDefinitionWithLogo> | undefined> {\n    return this._pluginDefinitionsWithLogos$;\n  }\n\n  get selectedPluginDefinition$(): Observable<PluginDefinition | undefined> {\n    return this._selectedPluginDefinition$.asObservable();\n  }\n\n  get selectedPluginConfiguration$(): Observable<PluginConfiguration | undefined> {\n    return this._selectedPluginConfiguration$.asObservable();\n  }\n\n  get save$(): Observable<any> {\n    return this._save$.asObservable();\n  }\n\n  get saveEdit$(): Observable<any> {\n    return this._saveEdit$.asObservable();\n  }\n\n  get delete$(): Observable<any> {\n    return this._delete$.asObservable();\n  }\n\n  get hideModalSaveButton$(): Observable<boolean> {\n    return this._hideModalSaveButton$.asObservable();\n  }\n\n  showModal(modalType: PluginModal): void {\n    this._showModal$.next(modalType);\n  }\n\n  hideModal(): void {\n    this._hideModal$.next(null);\n  }\n\n  disableInput(): void {\n    this._inputDisabled$.next(true);\n  }\n\n  enableInput(): void {\n    this._inputDisabled$.next(false);\n  }\n\n  refresh(): void {\n    this._refresh$.next(null);\n  }\n\n  setPluginDefinitions(definitions: Array<PluginDefinition>): void {\n    this._pluginDefinitions$.next(definitions);\n  }\n\n  selectPluginDefinition(definition: PluginDefinition): void {\n    this._selectedPluginDefinition$.next(definition);\n  }\n\n  selectPluginConfiguration(configuration: PluginConfiguration): void {\n    this._selectedPluginConfiguration$.next(configuration);\n  }\n\n  clearSelectedPluginDefinition(): void {\n    this._selectedPluginDefinition$.next(undefined);\n  }\n\n  clearSelectedPluginConfiguration(): void {\n    this._selectedPluginConfiguration$.next(undefined);\n  }\n\n  save(): void {\n    this._save$.next(null);\n  }\n\n  saveEdit(): void {\n    this._saveEdit$.next(null);\n  }\n\n  delete(): void {\n    this._delete$.next(null);\n  }\n\n  hideModalSaveButton(): void {\n    this._hideModalSaveButton$.next(true);\n  }\n\n  showModalSaveButton(): void {\n    this._hideModalSaveButton$.next(false);\n  }\n\n  clear(): void {\n    this.clearSelectedPluginDefinition();\n    this.clearSelectedPluginConfiguration();\n  }\n}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './plugin-management-state.service';\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginDefinition, PluginManagementService, PLUGIN_CATALOG_TEST_IDS} from '@valtimo/plugin';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-add-select',\n  templateUrl: './plugin-add-select.component.html',\n  styleUrls: ['./plugin-add-select.component.scss'],\n})\nexport class PluginAddSelectComponent implements OnInit, OnDestroy {\n  public readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n  public readonly disabled$ = this.stateService.inputDisabled$;\n  public readonly pluginDefinitionsWithLogos$ = this.stateService.pluginDefinitionsWithLogos$;\n  public readonly testIds = PLUGIN_CATALOG_TEST_IDS;\n\n  private refreshSubscription!: Subscription;\n\n  constructor(\n    private readonly pluginManagementService: PluginManagementService,\n    private readonly stateService: PluginManagementStateService\n  ) {}\n\n  public ngOnInit(): void {\n    this.openRefreshSubscription();\n    this.getPluginDefinitions();\n  }\n\n  public ngOnDestroy(): void {\n    this.refreshSubscription?.unsubscribe();\n  }\n\n  public selectPluginDefinition(event: {value: PluginDefinition}): void {\n    this.stateService.selectPluginDefinition(event.value);\n  }\n\n  public deselectPluginDefinition(): void {\n    this.stateService.clearSelectedPluginDefinition();\n  }\n\n  private getPluginDefinitions(): void {\n    this.pluginManagementService.getPluginDefinitions().subscribe(pluginDefinitions => {\n      this.stateService.setPluginDefinitions(pluginDefinitions);\n    });\n  }\n\n  private openRefreshSubscription(): void {\n    this.refreshSubscription = combineLatest([\n      this.stateService.showModal$,\n      this.stateService.refresh$,\n    ]).subscribe(() => {\n      this.stateService.clearSelectedPluginDefinition();\n    });\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<ng-container *ngIf=\"pluginDefinitionsWithLogos$ | async as pluginDefinitions; else loading\">\n  <div class=\"plugin-definition__grid\" [attr.data-test-id]=\"testIds.tileGrid\">\n    <ng-container\n      *ngTemplateOutlet=\"pluginDefinitionsTemplate; context: {pluginDefinitions: pluginDefinitions}\"\n    ></ng-container>\n    <ng-container\n      *ngTemplateOutlet=\"\n        noPluginDefinitionsTemplate;\n        context: {pluginDefinitions: pluginDefinitions}\n      \"\n    ></ng-container>\n  </div>\n</ng-container>\n\n<ng-template #noPluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\n  <div *ngIf=\"pluginDefinitions?.length === 0\" class=\"plugin-definition__no-results\">\n    <v-paragraph [center]=\"true\" [fullWidth]=\"true\">{{\n      'pluginManagement.noDefinitions' | translate\n    }}</v-paragraph>\n  </div>\n</ng-template>\n\n<ng-template #pluginDefinitionsTemplate let-pluginDefinitions=\"pluginDefinitions\">\n  <cds-tile-group [multiple]=\"false\" (selected)=\"selectPluginDefinition($event)\" [cdsLayer]=\"1\">\n    <cds-selection-tile\n      *ngFor=\"let pluginDefinition of pluginDefinitions\"\n      [value]=\"pluginDefinition\"\n      [selected]=\"(selectedPluginDefinition$ | async)?.key === pluginDefinition.key\"\n    >\n      <img\n        class=\"plugin-definition-logo\"\n        [title]=\"'title' | pluginTranslate: pluginDefinition.key | async\"\n        [src]=\"pluginDefinition.pluginLogoBase64\"\n        [attr.data-test-id]=\"testIds.tileLogo\"\n      />\n\n      <h5 [attr.data-test-id]=\"testIds.tileTitle\">\n        {{ 'title' | pluginTranslate: pluginDefinition.key | async }}\n      </h5>\n\n      <p [attr.data-test-id]=\"testIds.tileDescription\">\n        {{ 'description' | pluginTranslate: pluginDefinition.key | async }}\n      </p>\n    </cds-selection-tile>\n  </cds-tile-group>\n</ng-template>\n\n<ng-template #loading>\n  <div class=\"plugin-definition__grid\">\n    <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n    <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n    <ng-container *ngTemplateOutlet=\"loadingCard\"></ng-container>\n  </div>\n</ng-template>\n\n<ng-template #loadingCard>\n  <div class=\"plugin-definition__item\">\n    <cds-loading size=\"sm\"></cds-loading>\n  </div>\n</ng-template>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\nimport {of} from 'rxjs';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-configure',\n  templateUrl: './plugin-configure.component.html',\n  styleUrls: ['./plugin-configure.component.scss'],\n})\nexport class PluginConfigureComponent {\n  @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n  @Output() configuration: EventEmitter<PluginConfigurationData> =\n    new EventEmitter<PluginConfigurationData>();\n\n  public readonly save$ = this.stateService.save$;\n\n  public readonly pluginDefinitionKey$ = this.stateService.selectedPluginDefinition$.pipe(\n    map(definition => definition?.key)\n  );\n\n  public readonly prefillConfiguration$ = of(undefined);\n\n  public readonly disabled$ = this.stateService.inputDisabled$;\n\n  constructor(private readonly stateService: PluginManagementStateService) {}\n\n  public onValid(valid: boolean): void {\n    this.valid.emit(valid);\n  }\n\n  public onFunctionConfiguration(configuration: PluginConfigurationData): void{\n    this.configuration.emit(configuration);\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<valtimo-plugin-configuration-container\n  *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n  [cdsLayer]=\"1\"\n  [pluginDefinitionKey]=\"pluginDefinitionKey\"\n  [prefillConfiguration$]=\"prefillConfiguration$\"\n  [save$]=\"save$\"\n  [disabled$]=\"disabled$\"\n  (valid)=\"onValid($event)\"\n  (configuration)=\"onFunctionConfiguration($event)\"\n  type=\"configuration\"\n></valtimo-plugin-configuration-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {PluginConfigurationData, PluginManagementService} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\nimport {CARBON_CONSTANTS} from '@valtimo/components';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-add-modal',\n  templateUrl: './plugin-add-modal.component.html',\n  styleUrls: ['./plugin-add-modal.component.scss'],\n})\nexport class PluginAddModalComponent {\n  @Input() open = false;\n\n  @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n  public readonly inputDisabled$ = this.stateService.inputDisabled$;\n  public readonly selectedPluginDefinition$ = this.stateService.selectedPluginDefinition$;\n  public readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n  public readonly returnToFirstStepSubject$ = new Subject<boolean>();\n\n  constructor(\n    private readonly stateService: PluginManagementStateService,\n    private readonly pluginManagementService: PluginManagementService,\n    private readonly logger: NGXLogger\n  ) {}\n\n  public complete(): void {\n    this.stateService.save();\n  }\n\n  public hide(): void {\n    this.closeModal.emit();\n\n    setTimeout(() => {\n      this.returnToFirstStep();\n      this.stateService.enableInput();\n      this.stateService.clear();\n    }, CARBON_CONSTANTS.modalAnimationMs);\n  }\n\n  public onValid(valid: boolean): void {\n    this.configurationValid$.next(valid);\n  }\n\n  public onConfiguration(configuration: PluginConfigurationData): void {\n    const pluginConfiguration = {...configuration};\n    delete pluginConfiguration['configurationId'];\n    delete pluginConfiguration['configurationTitle'];\n\n    this.stateService.disableInput();\n\n    this.stateService.selectedPluginDefinition$.pipe(take(1)).subscribe(selectedDefinition => {\n      this.pluginManagementService\n        .savePluginConfiguration({\n          id: configuration.configurationId,\n          definitionKey: selectedDefinition.key,\n          title: configuration.configurationTitle,\n          properties: pluginConfiguration,\n        })\n        .subscribe({\n          next: () => {\n            this.stateService.refresh();\n            this.hide();\n          },\n          error: () => {\n            this.logger.error('Something went wrong with saving the plugin configuration.');\n            this.stateService.enableInput();\n          },\n        });\n    });\n  }\n\n  private returnToFirstStep(): void {\n    this.returnToFirstStepSubject$.next(true);\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<v-stepper-container\n  (completeEvent)=\"complete()\"\n  (cancelClickEvent)=\"hide()\"\n  [disabled]=\"inputDisabled$ | async\"\n  [returnToFirstStepSubject$]=\"returnToFirstStepSubject$\"\n>\n  <cds-modal valtimoCdsModal #pluginAddModal [open]=\"open\" (close)=\"hide()\">\n    <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n      <v-stepper-header></v-stepper-header>\n    </cds-modal-header>\n    <section cdsModalContent>\n      <v-stepper-content>\n        <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step0\">\n          <valtimo-plugin-add-select></valtimo-plugin-add-select>\n        </v-stepper-step>\n        <v-stepper-step titleTranslationKey=\"pluginManagement.addSteps.step1\">\n          <valtimo-plugin-configure\n            (valid)=\"onValid($event)\"\n            (configuration)=\"onConfiguration($event)\"\n          ></valtimo-plugin-configure>\n        </v-stepper-step>\n      </v-stepper-content>\n    </section>\n    <cds-modal-footer>\n      <v-stepper-footer class=\"stepper-footer\">\n        <v-stepper-footer-step\n          nextButtonTranslationKey=\"pluginManagement.addSteps.step1\"\n          [nextButtonEnabled]=\"selectedPluginDefinition$ | async\"\n        ></v-stepper-footer-step>\n        <v-stepper-footer-step\n          completeButtonTranslationKey=\"pluginManagement.addSteps.complete\"\n          [completeButtonEnabled]=\"configurationValid$ | async\"\n        ></v-stepper-footer-step>\n      </v-stepper-footer>\n    </cds-modal-footer>\n  </cds-modal>\n</v-stepper-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {map, switchMap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {PluginConfigurationData} from '@valtimo/plugin';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-edit',\n  templateUrl: './plugin-edit.component.html',\n  styleUrls: ['./plugin-edit.component.scss'],\n})\nexport class PluginEditComponent {\n  @Output() valid: EventEmitter<boolean> = new EventEmitter<boolean>();\n  @Output() configuration: EventEmitter<PluginConfigurationData> =\n    new EventEmitter<PluginConfigurationData>();\n\n  public readonly saveEdit$ = this.stateService.saveEdit$;\n\n  public readonly pluginDefinitionKey$ = this.stateService.selectedPluginConfiguration$.pipe(\n    map(configuration => configuration?.pluginDefinition?.key)\n  );\n\n  public readonly prefillConfiguration$ = this.stateService.selectedPluginConfiguration$.pipe(\n    map(configuration =>\n      configuration\n        ? {\n            ...configuration.properties,\n            configurationId: configuration.id,\n            configurationTitle: configuration.title,\n          }\n        : undefined\n    )\n  );\n\n  public readonly disabled$ = this.stateService.inputDisabled$;\n\n  constructor(private readonly stateService: PluginManagementStateService) {}\n\n  public onValid(valid: boolean): void {\n    this.valid.emit(valid);\n  }\n\n  public onFunctionConfiguration(configuration: PluginConfigurationData): void {\n    this.configuration.emit(configuration);\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<valtimo-plugin-configuration-container\n  *ngIf=\"pluginDefinitionKey$ | async as pluginDefinitionKey\"\n  [cdsLayer]=\"1\"\n  [pluginDefinitionKey]=\"pluginDefinitionKey\"\n  [prefillConfiguration$]=\"prefillConfiguration$\"\n  [save$]=\"saveEdit$\"\n  [disabled$]=\"disabled$\"\n  (valid)=\"onValid($event)\"\n  (configuration)=\"onFunctionConfiguration($event)\"\n  type=\"configuration\"\n></valtimo-plugin-configuration-container>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, EventEmitter, Input, Output} from '@angular/core';\nimport {PluginManagementStateService} from '../../services';\nimport {take} from 'rxjs/operators';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {\n  PluginConfiguration,\n  PluginConfigurationData,\n  PluginManagementService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-edit-modal',\n  templateUrl: './plugin-edit-modal.component.html',\n  styleUrls: ['./plugin-edit-modal.component.scss'],\n})\nexport class PluginEditModalComponent {\n  @Input() public readonly open = false;\n  @Input() public readonly saveNewConfiguration = false;\n\n  @Output() closeModal: EventEmitter<boolean> = new EventEmitter();\n\n  public readonly inputDisabled$ = this.stateService.inputDisabled$;\n  public readonly selectedPluginConfiguration$: Observable<PluginConfiguration> =\n    this.stateService.selectedPluginConfiguration$;\n  public readonly configurationValid$ = new BehaviorSubject<boolean>(false);\n\n  constructor(\n    private readonly stateService: PluginManagementStateService,\n    private readonly pluginManagementService: PluginManagementService,\n    private readonly logger: NGXLogger\n  ) {}\n\n  public save(): void {\n    this.stateService.saveEdit();\n  }\n\n  public delete(): void {\n    this.stateService.delete();\n    this.stateService.disableInput();\n\n    this.stateService.selectedPluginConfiguration$\n      .pipe(take(1))\n      .subscribe(selectedPluginConfiguration => {\n        this.pluginManagementService\n          .deletePluginConfiguration(selectedPluginConfiguration.id)\n          .subscribe(\n            () => {\n              this.stateService.refresh();\n              this.hide();\n            },\n            () => {\n              this.logger.error('Something went wrong with deleting the plugin configuration.');\n              this.stateService.enableInput();\n            }\n          );\n      });\n  }\n\n  public hide(): void {\n    this.closeModal.emit();\n    this.stateService.enableInput();\n  }\n\n  public onPluginValid(valid: boolean): void {\n    this.configurationValid$.next(valid);\n  }\n\n  public onPluginConfiguration(configuration: PluginConfigurationData): void {\n    this.stateService.disableInput();\n\n    if (this.saveNewConfiguration) {\n      this.saveNewPluginConfiguration(configuration);\n      return;\n    }\n\n    this.stateService.selectedPluginConfiguration$\n      .pipe(take(1))\n      .subscribe(selectedPluginConfiguration => {\n        const configurationId = configuration.configurationId;\n        const configurationTitle = configuration.configurationTitle;\n        const configurationData = {...configuration};\n        delete configurationData['configurationTitle'];\n\n        this.pluginManagementService\n          .updatePluginConfiguration(\n            selectedPluginConfiguration.id,\n            configurationId,\n            configurationTitle,\n            configurationData\n          )\n          .subscribe({\n            next: () => {\n              this.stateService.refresh();\n              this.hide();\n            },\n            error: () => {\n              this.logger.error('Something went wrong with updating the plugin configuration.');\n              this.stateService.enableInput();\n            },\n          });\n      });\n  }\n\n  private saveNewPluginConfiguration(configuration: PluginConfigurationData): void {\n    this.stateService.selectedPluginConfiguration$\n      .pipe(take(1))\n      .subscribe(selectedPluginConfiguration => {\n        const duplicatedConfiguration = {...selectedPluginConfiguration, properties: configuration};\n\n        duplicatedConfiguration.title = duplicatedConfiguration.properties.configurationTitle;\n\n        delete duplicatedConfiguration.properties.configurationTitle;\n        delete duplicatedConfiguration.properties.configurationId;\n\n        this.pluginManagementService.savePluginConfiguration(duplicatedConfiguration).subscribe({\n          next: () => {\n            this.stateService.refresh();\n            this.hide();\n          },\n          error: () => {\n            this.logger.error(\n              'Something went wrong with saving the duplicated plugin configuration.'\n            );\n            this.stateService.enableInput();\n          },\n        });\n      });\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n\n<cds-modal\n  #pluginEditModal\n  valtimoCdsModal\n  [open]=\"open\"\n  (close)=\"hide()\"\n  *ngIf=\"{selectedConfiguration: selectedPluginConfiguration$ | async} as obs\"\n>\n  <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"hide()\">\n    {{\n      obs.selectedConfiguration?.title +\n        ' - ' +\n        ('title' | pluginTranslate: obs.selectedConfiguration?.pluginDefinition?.key | async)\n    }}\n  </cds-modal-header>\n  <section cdsModalContent>\n    <valtimo-plugin-edit\n      (valid)=\"onPluginValid($event)\"\n      (configuration)=\"onPluginConfiguration($event)\"\n    ></valtimo-plugin-edit>\n  </section>\n  <cds-modal-footer>\n    <button cdsButton=\"danger\" (click)=\"delete()\" [disabled]=\"inputDisabled$ | async\">\n      {{ 'pluginManagement.remove' | translate }}\n    </button>\n    <button\n      cdsButton=\"primary\"\n      [disabled]=\"(configurationValid$ | async) === false || (inputDisabled$ | async)\"\n      (click)=\"save()\"\n    >\n      {{ 'pluginManagement.save' | translate }}\n    </button>\n  </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component} from '@angular/core';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActionItem, ColumnConfig, ViewType} from '@valtimo/components';\nimport {\n  PluginConfiguration,\n  PluginManagementService,\n  PluginTranslationService,\n} from '@valtimo/plugin';\nimport {NGXLogger} from 'ngx-logger';\nimport {BehaviorSubject, combineLatest, Observable} from 'rxjs';\nimport {map, switchMap, take, tap} from 'rxjs/operators';\nimport {PluginManagementStateService} from '../../services';\nimport {cloneDeep} from 'lodash';\nimport {v4 as uuidv4} from 'uuid';\n\n@Component({\n  standalone: false,\n  selector: 'valtimo-plugin-management',\n  templateUrl: './plugin-management.component.html',\n  styleUrls: ['./plugin-management.component.scss'],\n})\nexport class PluginManagementComponent {\n  public readonly fields: ColumnConfig[] = [\n    {\n      key: 'title',\n      label: 'pluginManagement.labels.configurationName',\n      viewType: ViewType.TEXT,\n    },\n    {\n      key: 'pluginName',\n      label: 'pluginManagement.labels.pluginName',\n      viewType: ViewType.TEXT,\n    },\n    {\n      key: 'definitionKey',\n      label: 'pluginManagement.labels.identifier',\n      viewType: ViewType.TEXT,\n    },\n  ];\n  public readonly actionItems: ActionItem[] = [\n    {\n      callback: this.editConfiguration.bind(this),\n      label: 'interface.edit',\n    },\n    {\n      label: 'interface.duplicate',\n      callback: this.duplicateConfiguration.bind(this),\n    },\n    {\n      callback: this.deleteConfiguration.bind(this),\n      label: 'interface.delete',\n      type: 'danger',\n    },\n  ];\n\n  public readonly loading$ = new BehaviorSubject<boolean>(true);\n  public readonly showEditModal$ = new BehaviorSubject<boolean>(false);\n  public readonly showAddModal$ = new BehaviorSubject<boolean>(false);\n  public readonly pluginConfigurations$: Observable<PluginConfiguration[]> =\n    this.stateService.refresh$.pipe(\n      switchMap(() =>\n        combineLatest([\n          this.pluginManagementService.getAllPluginConfigurations(),\n          this.translateService.stream('key'),\n        ]).pipe(\n          map(([pluginConfigurations]) =>\n            pluginConfigurations.map(configuration => ({\n              ...configuration,\n              pluginName: this.pluginTranslationService.instant(\n                'title',\n                configuration.pluginDefinition?.key ?? ''\n              ),\n              definitionKey: configuration.pluginDefinition?.key ?? '',\n            }))\n          ),\n          tap(() => {\n            this.loading$.next(false);\n          })\n        )\n      )\n    );\n\n  public readonly saveNewConfiguration$ = new BehaviorSubject<boolean>(false);\n\n  constructor(\n    private readonly logger: NGXLogger,\n    private readonly pluginManagementService: PluginManagementService,\n    private readonly pluginTranslationService: PluginTranslationService,\n    private readonly stateService: PluginManagementStateService,\n    private readonly translateService: TranslateService\n  ) {}\n\n  public showAddModal(): void {\n    this.showAddModal$.next(true);\n  }\n\n  public editConfiguration(configuration: PluginConfiguration): void {\n    this.showEditModal$.next(true);\n    this.saveNewConfiguration$.next(false);\n    this.stateService.selectPluginConfiguration(configuration);\n  }\n\n  public deleteConfiguration(configuration: PluginConfiguration): void {\n    if (!configuration.id) {\n      return;\n    }\n\n    this.pluginManagementService\n      .deletePluginConfiguration(configuration.id)\n      .pipe(take(1))\n      .subscribe({\n        next: () => {\n          this.stateService.refresh();\n        },\n        error: () => {\n          this.logger.error('Something went wrong with deleting the plugin configuration.');\n        },\n      });\n  }\n\n  public closeEditModal(): void {\n    this.showEditModal$.next(false);\n  }\n\n  public closeAddModal(): void {\n    this.showAddModal$.next(false);\n  }\n\n  public duplicateConfiguration(configuration: PluginConfiguration): void {\n    const configurationClone = cloneDeep(configuration);\n    configurationClone.id = uuidv4();\n    this.showEditModal$.next(true);\n    this.saveNewConfiguration$.next(true);\n    this.stateService.selectPluginConfiguration(configurationClone);\n  }\n}\n","<!--\n  ~ Copyright 2015-2025 Ritense BV, the Netherlands.\n  ~\n  ~ Licensed under EUPL, Version 1.2 (the \"License\");\n  ~ you may not use this file except in compliance with the License.\n  ~ You may obtain a copy of the License at\n  ~\n  ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n  ~\n  ~ Unless required by applicable law or agreed to in writing, software\n  ~ distributed under the License is distributed on an \"AS IS\" basis,\n  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n  ~ See the License for the specific language governing permissions and\n  ~ limitations under the License.\n  -->\n<ng-container\n  *ngIf=\"{\n    pluginConfigurations: pluginConfigurations$ | async,\n    loading: loading$ | async,\n  } as obs\"\n>\n  <valtimo-carbon-list\n    [actionItems]=\"actionItems\"\n    [loading]=\"obs.loading\"\n    [items]=\"obs.pluginConfigurations\"\n    [fields]=\"fields\"\n    [header]=\"false\"\n    (rowClicked)=\"editConfiguration($event)\"\n  >\n    <ng-container carbonToolbarContent [ngTemplateOutlet]=\"configurePluginButton\"></ng-container>\n\n    <valtimo-no-results\n      [action]=\"configurePluginButton\"\n      [title]=\"'pages.plugins.noResults' | translate\"\n    ></valtimo-no-results>\n  </valtimo-carbon-list>\n\n  <ng-template #configurePluginButton>\n    <button cdsButton=\"primary\" [disabled]=\"obs.loading\" (click)=\"showAddModal()\">\n      {{ 'pluginManagement.add' | translate }}\n\n      <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n    </button>\n  </ng-template>\n</ng-container>\n\n<valtimo-plugin-add-modal\n  [open]=\"showAddModal$ | async\"\n  (closeModal)=\"closeAddModal()\"\n></valtimo-plugin-add-modal>\n\n<valtimo-plugin-edit-modal\n  [open]=\"showEditModal$ | async\"\n  [saveNewConfiguration]=\"saveNewConfiguration$ | async\"\n  (closeModal)=\"closeEditModal()\"\n></valtimo-plugin-edit-modal>\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_ADMIN} from '@valtimo/shared';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\n\nconst routes: Routes = [\n  {\n    path: 'plugins',\n    component: PluginManagementComponent,\n    canActivate: [AuthGuardService],\n    data: {title: 'Plugins', roles: [ROLE_ADMIN]},\n  },\n];\n\n@NgModule({\n  declarations: [],\n  imports: [CommonModule, RouterModule.forChild(routes)],\n  exports: [RouterModule],\n})\nexport class PluginManagementRoutingModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {PluginManagementRoutingModule} from './plugin-management-routing';\nimport {CommonModule} from '@angular/common';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {PluginManagementComponent} from './components/plugin-management/plugin-management.component';\nimport {PluginAddModalComponent} from './components/plugin-add-modal/plugin-add-modal.component';\nimport {PluginManagementStateService} from './services';\nimport {PluginAddSelectComponent} from './components/plugin-add-select/plugin-add-select.component';\nimport {PluginConfigureComponent} from './components/plugin-configure/plugin-configure.component';\nimport {PluginConfigurationContainerModule, PluginTranslatePipeModule} from '@valtimo/plugin';\nimport {PluginEditModalComponent} from './components/plugin-edit-modal/plugin-edit-modal.component';\nimport {PluginEditComponent} from './components/plugin-edit/plugin-edit.component';\nimport {\n  CarbonListModule,\n  ParagraphModule,\n  StepperModule,\n  TableModule,\n  ValtimoCdsModalDirective,\n  VModalModule,\n} from '@valtimo/components';\nimport {\n  ButtonModule as CarbonButtonModule,\n  IconModule,\n  LayerModule,\n  LoadingModule,\n  ModalModule as CarbonModalModule,\n  TilesModule,\n} from 'carbon-components-angular';\n\n@NgModule({\n  providers: [PluginManagementStateService],\n  declarations: [\n    PluginManagementComponent,\n    PluginAddModalComponent,\n    PluginAddSelectComponent,\n    PluginConfigureComponent,\n    PluginEditModalComponent,\n    PluginEditComponent,\n  ],\n  imports: [\n    CommonModule,\n    PluginManagementRoutingModule,\n    TranslateModule,\n    ParagraphModule,\n    TableModule,\n    StepperModule,\n    VModalModule,\n    PluginTranslatePipeModule,\n    PluginConfigurationContainerModule,\n    CarbonButtonModule,\n    CarbonListModule,\n    CarbonModalModule,\n    IconModule,\n    ValtimoCdsModalDirective,\n    LayerModule,\n    TilesModule,\n    LoadingModule,\n  ],\n  exports: [\n    PluginManagementComponent,\n    PluginAddModalComponent,\n    PluginAddSelectComponent,\n    PluginConfigureComponent,\n    PluginEditModalComponent,\n    PluginEditComponent,\n  ],\n})\nexport class PluginManagementModule {}\n","/*\n * Copyright 2015-2025 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of plugin-management\n */\n\nexport * from './lib/models';\nexport * from './lib/services';\nexport * from './lib/plugin-management.module';\nexport * from './lib/components/plugin-management/plugin-management.component';\nexport * from './lib/components/plugin-add-modal/plugin-add-modal.component';\nexport * from './lib/components/plugin-add-select/plugin-add-select.component';\nexport * from './lib/components/plugin-configure/plugin-configure.component';\nexport * from './lib/components/plugin-edit-modal/plugin-edit-modal.component';\nexport * from './lib/components/plugin-edit/plugin-edit.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i2.PluginManagementStateService","i6","i1.PluginManagementStateService","i3","i4","i6.PluginAddSelectComponent","i7.PluginConfigureComponent","i8","i7.PluginEditComponent","uuidv4","i3.PluginManagementStateService","i5","i7","i8.PluginAddModalComponent","i9.PluginEditModalComponent","CarbonButtonModule","CarbonModalModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAkBU,4BAA4B,CAAA;IA8CvC,WACmB,CAAA,aAA4B,EAC5B,SAAuB,EAAA;QADvB,IAAa,CAAA,aAAA,GAAb,aAAa;QACb,IAAS,CAAA,SAAA,GAAT,SAAS;AA/CX,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAe;AACxC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAE;AAC3B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACrD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC;AAC3C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAQ;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ;AAChC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAC3D,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CACxD,SAAS,CACV;QACgB,IAA4B,CAAA,4BAAA,GAEzC,aAAa,CAAC;AAChB,YAAA,IAAI,CAAC,mBAAmB;YACxB,IAAI,CAAC,aAAa,CAAC,qBAAqB;YACxC,IAAI,CAAC,aAAa,CAAC,mBAAmB;AACvC,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,KAChE;AACE,cAAE,MAAM,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC;aAC7E,GAAG,CAAC,gBAAgB,IAAG;AACtB,YAAA,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,aAAa,IAAI,aAAa,CAAC,QAAQ,KAAK,gBAAgB,CAAC,GAAG,CACjE;YAED,OAAO;AACL,gBAAA,GAAG,gBAAgB;AACnB,gBAAA,IAAI,mBAAmB,EAAE,gBAAgB,IAAI;oBAC3C,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAC7D,mBAAmB,EAAE,gBAAgB,CACtC;iBACF,CAAC;aACH;SACF,CAAC,CACL,CACF;AACgB,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAC/D,SAAS,CACV;AAEgB,QAAA,IAAA,CAAA,6BAA6B,GAAG,IAAI,eAAe,CAElE,SAAS,CAAC;;AAOZ,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;;AAGxC,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;;AAGxC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;AAG5C,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;;AAGtC,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;;AAGhD,IAAA,IAAI,2BAA2B,GAAA;QAC7B,OAAO,IAAI,CAAC,4BAA4B;;AAG1C,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE;;AAGvD,IAAA,IAAI,4BAA4B,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,YAAY,EAAE;;AAG1D,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;;AAGnC,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;;AAGvC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;;AAGrC,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE;;AAGlD,IAAA,SAAS,CAAC,SAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGlC,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG7B,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGjC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGlC,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG3B,IAAA,oBAAoB,CAAC,WAAoC,EAAA;AACvD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;;AAG5C,IAAA,sBAAsB,CAAC,UAA4B,EAAA;AACjD,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;;AAGlD,IAAA,yBAAyB,CAAC,aAAkC,EAAA;AAC1D,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC;;IAGxD,6BAA6B,GAAA;AAC3B,QAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGjD,gCAAgC,GAAA;AAC9B,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC;;IAGpD,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGxB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG5B,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG1B,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGvC,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;;IAGxC,KAAK,GAAA;QACH,IAAI,CAAC,6BAA6B,EAAE;QACpC,IAAI,CAAC,gCAAgC,EAAE;;+GAjK9B,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;AC/BD;;;;;;;;;;;;;;AAcG;;ACdH;;;;;;;;;;;;;;AAcG;MAaU,wBAAwB,CAAA;IAQnC,WACmB,CAAA,uBAAgD,EAChD,YAA0C,EAAA;QAD1C,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY;AATf,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,YAAY,CAAC,yBAAyB;AACvE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;AAC5C,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,CAAC,YAAY,CAAC,2BAA2B;QAC3E,IAAO,CAAA,OAAA,GAAG,uBAAuB;;IAS1C,QAAQ,GAAA;QACb,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,oBAAoB,EAAE;;IAGtB,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE;;AAGlC,IAAA,sBAAsB,CAAC,KAAgC,EAAA;QAC5D,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC;;IAGhD,wBAAwB,GAAA;AAC7B,QAAA,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE;;IAG3C,oBAAoB,GAAA;QAC1B,IAAI,CAAC,uBAAuB,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,iBAAiB,IAAG;AAChF,YAAA,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;AAC3D,SAAC,CAAC;;IAGI,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,mBAAmB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,UAAU;YAC5B,IAAI,CAAC,YAAY,CAAC,QAAQ;AAC3B,SAAA,CAAC,CAAC,SAAS,CAAC,MAAK;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE;AACnD,SAAC,CAAC;;+GA1CO,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,sFC3BrC,k6FA4EA,EAAA,MAAA,EAAA,CAAA,g/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDjDa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,2BAA2B,EAAA,QAAA,EAAA,k6FAAA,EAAA,MAAA,EAAA,CAAA,g/CAAA,CAAA,EAAA;;;AEvBvC;;;;;;;;;;;;;;AAcG;MAcU,wBAAwB,CAAA;AAenC,IAAA,WAAA,CAA6B,YAA0C,EAAA;QAA1C,IAAY,CAAA,YAAA,GAAZ,YAAY;AAd/B,QAAA,IAAA,CAAA,KAAK,GAA0B,IAAI,YAAY,EAAW;AAC1D,QAAA,IAAA,CAAA,aAAa,GACrB,IAAI,YAAY,EAA2B;AAE7B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;QAE/B,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,CACrF,GAAG,CAAC,UAAU,IAAI,UAAU,EAAE,GAAG,CAAC,CACnC;AAEe,QAAA,IAAA,CAAA,qBAAqB,GAAG,EAAE,CAAC,SAAS,CAAC;AAErC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;;AAIrD,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGjB,IAAA,uBAAuB,CAAC,aAAsC,EAAA;AACnE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;;+GAtB7B,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,kJC5BrC,okCA2BA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDCa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,0BAA0B,EAAA,QAAA,EAAA,okCAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;8FAK1B,KAAK,EAAA,CAAA;sBAAd;gBACS,aAAa,EAAA,CAAA;sBAAtB;;;AE9BH;;;;;;;;;;;;;;AAcG;MAgBU,uBAAuB,CAAA;AAUlC,IAAA,WAAA,CACmB,YAA0C,EAC1C,uBAAgD,EAChD,MAAiB,EAAA;QAFjB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM;QAZhB,IAAI,CAAA,IAAA,GAAG,KAAK;AAEX,QAAA,IAAA,CAAA,UAAU,GAA0B,IAAI,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;AACjD,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,CAAC,YAAY,CAAC,yBAAyB;AACvE,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACzD,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,OAAO,EAAW;;IAQ3D,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;IAGnB,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;QAEtB,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AAC3B,SAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;;AAGhC,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG/B,IAAA,eAAe,CAAC,aAAsC,EAAA;AAC3D,QAAA,MAAM,mBAAmB,GAAG,EAAC,GAAG,aAAa,EAAC;AAC9C,QAAA,OAAO,mBAAmB,CAAC,iBAAiB,CAAC;AAC7C,QAAA,OAAO,mBAAmB,CAAC,oBAAoB,CAAC;AAEhD,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAEhC,QAAA,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,IAAG;AACvF,YAAA,IAAI,CAAC;AACF,iBAAA,uBAAuB,CAAC;gBACvB,EAAE,EAAE,aAAa,CAAC,eAAe;gBACjC,aAAa,EAAE,kBAAkB,CAAC,GAAG;gBACrC,KAAK,EAAE,aAAa,CAAC,kBAAkB;AACvC,gBAAA,UAAU,EAAE,mBAAmB;aAChC;AACA,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,MAAK;AACT,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC3B,IAAI,CAAC,IAAI,EAAE;iBACZ;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC;AAC/E,oBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;iBAChC;AACF,aAAA,CAAC;AACN,SAAC,CAAC;;IAGI,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;;+GA/DhC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,sJC9BpC,srEAqDA,EAAA,MAAA,EAAA,CAAA,6pBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,wBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDvBa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,0BAA0B,EAAA,QAAA,EAAA,srEAAA,EAAA,MAAA,EAAA,CAAA,6pBAAA,CAAA,EAAA;8JAK3B,IAAI,EAAA,CAAA;sBAAZ;gBAES,UAAU,EAAA,CAAA;sBAAnB;;;AEjCH;;;;;;;;;;;;;;AAcG;MAaU,mBAAmB,CAAA;AAyB9B,IAAA,WAAA,CAA6B,YAA0C,EAAA;QAA1C,IAAY,CAAA,YAAA,GAAZ,YAAY;AAxB/B,QAAA,IAAA,CAAA,KAAK,GAA0B,IAAI,YAAY,EAAW;AAC1D,QAAA,IAAA,CAAA,aAAa,GACrB,IAAI,YAAY,EAA2B;AAE7B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS;QAEvC,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,IAAI,CACxF,GAAG,CAAC,aAAa,IAAI,aAAa,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAC3D;AAEe,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,IAAI,CACzF,GAAG,CAAC,aAAa,IACf;AACE,cAAE;gBACE,GAAG,aAAa,CAAC,UAAU;gBAC3B,eAAe,EAAE,aAAa,CAAC,EAAE;gBACjC,kBAAkB,EAAE,aAAa,CAAC,KAAK;AACxC;AACH,cAAE,SAAS,CACd,CACF;AAEe,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;;AAIrD,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGjB,IAAA,uBAAuB,CAAC,aAAsC,EAAA;AACnE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;;+GAhC7B,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,6IC3BhC,wkCA2BA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,qCAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDAa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,qBAAqB,EAAA,QAAA,EAAA,wkCAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;8FAKrB,KAAK,EAAA,CAAA;sBAAd;gBACS,aAAa,EAAA,CAAA;sBAAtB;;;AE7BH;;;;;;;;;;;;;;AAcG;MAmBU,wBAAwB,CAAA;AAWnC,IAAA,WAAA,CACmB,YAA0C,EAC1C,uBAAgD,EAChD,MAAiB,EAAA;QAFjB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM;QAbA,IAAI,CAAA,IAAA,GAAG,KAAK;QACZ,IAAoB,CAAA,oBAAA,GAAG,KAAK;AAE3C,QAAA,IAAA,CAAA,UAAU,GAA0B,IAAI,YAAY,EAAE;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc;AACjD,QAAA,IAAA,CAAA,4BAA4B,GAC1C,IAAI,CAAC,YAAY,CAAC,4BAA4B;AAChC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;;IAQlE,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;;IAGvB,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;QAEhC,IAAI,CAAC,YAAY,CAAC;AACf,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,2BAA2B,IAAG;AACvC,YAAA,IAAI,CAAC;AACF,iBAAA,yBAAyB,CAAC,2BAA2B,CAAC,EAAE;iBACxD,SAAS,CACR,MAAK;AACH,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;gBAC3B,IAAI,CAAC,IAAI,EAAE;aACZ,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;AACjF,gBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AACjC,aAAC,CACF;AACL,SAAC,CAAC;;IAGC,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;;AAG1B,IAAA,aAAa,CAAC,KAAc,EAAA;AACjC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG/B,IAAA,qBAAqB,CAAC,aAAsC,EAAA;AACjE,QAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAEhC,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC;YAC9C;;QAGF,IAAI,CAAC,YAAY,CAAC;AACf,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,2BAA2B,IAAG;AACvC,YAAA,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe;AACrD,YAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,kBAAkB;AAC3D,YAAA,MAAM,iBAAiB,GAAG,EAAC,GAAG,aAAa,EAAC;AAC5C,YAAA,OAAO,iBAAiB,CAAC,oBAAoB,CAAC;AAE9C,YAAA,IAAI,CAAC;iBACF,yBAAyB,CACxB,2BAA2B,CAAC,EAAE,EAC9B,eAAe,EACf,kBAAkB,EAClB,iBAAiB;AAElB,iBAAA,SAAS,CAAC;gBACT,IAAI,EAAE,MAAK;AACT,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC3B,IAAI,CAAC,IAAI,EAAE;iBACZ;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;AACjF,oBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;iBAChC;AACF,aAAA,CAAC;AACN,SAAC,CAAC;;AAGE,IAAA,0BAA0B,CAAC,aAAsC,EAAA;QACvE,IAAI,CAAC,YAAY,CAAC;AACf,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACZ,SAAS,CAAC,2BAA2B,IAAG;YACvC,MAAM,uBAAuB,GAAG,EAAC,GAAG,2BAA2B,EAAE,UAAU,EAAE,aAAa,EAAC;YAE3F,uBAAuB,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC,kBAAkB;AAErF,YAAA,OAAO,uBAAuB,CAAC,UAAU,CAAC,kBAAkB;AAC5D,YAAA,OAAO,uBAAuB,CAAC,UAAU,CAAC,eAAe;YAEzD,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC;gBACtF,IAAI,EAAE,MAAK;AACT,oBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC3B,IAAI,CAAC,IAAI,EAAE;iBACZ;gBACD,KAAK,EAAE,MAAK;AACV,oBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,uEAAuE,CACxE;AACD,oBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;iBAChC;AACF,aAAA,CAAC;AACJ,SAAC,CAAC;;+GA/GK,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,qMCjCrC,ktDAiDA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDhBa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,2BAA2B,EAAA,QAAA,EAAA,ktDAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;8JAKZ,IAAI,EAAA,CAAA;sBAA5B;gBACwB,oBAAoB,EAAA,CAAA;sBAA5C;gBAES,UAAU,EAAA,CAAA;sBAAnB;;;AErCH;;;;;;;;;;;;;;AAcG;MAsBU,yBAAyB,CAAA;IA+DpC,WACmB,CAAA,MAAiB,EACjB,uBAAgD,EAChD,wBAAkD,EAClD,YAA0C,EAC1C,gBAAkC,EAAA;QAJlC,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB;QACvB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;AAnEnB,QAAA,IAAA,CAAA,MAAM,GAAmB;AACvC,YAAA;AACE,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,KAAK,EAAE,2CAA2C;gBAClD,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,oCAAoC;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,KAAK,EAAE,oCAAoC;gBAC3C,QAAQ,EAAE,QAAQ,CAAC,IAAI;AACxB,aAAA;SACF;AACe,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1C,YAAA;gBACE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,gBAAA,KAAK,EAAE,gBAAgB;AACxB,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;AACjD,aAAA;AACD,YAAA;gBACE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7C,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,IAAI,EAAE,QAAQ;AACf,aAAA;SACF;AAEe,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;AAC7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACpD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACnD,QAAA,IAAA,CAAA,qBAAqB,GACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAC7B,SAAS,CAAC,MACR,aAAa,CAAC;AACZ,YAAA,IAAI,CAAC,uBAAuB,CAAC,0BAA0B,EAAE;AACzD,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,KACzB,oBAAoB,CAAC,GAAG,CAAC,aAAa,KAAK;AACzC,YAAA,GAAG,aAAa;AAChB,YAAA,UAAU,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAC/C,OAAO,EACP,aAAa,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAC1C;AACD,YAAA,aAAa,EAAE,aAAa,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE;AACzD,SAAA,CAAC,CAAC,CACJ,EACD,GAAG,CAAC,MAAK;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,SAAC,CAAC,CACH,CACF,CACF;AAEa,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;;IAUpE,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGxB,IAAA,iBAAiB,CAAC,aAAkC,EAAA;AACzD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,aAAa,CAAC;;AAGrD,IAAA,mBAAmB,CAAC,aAAkC,EAAA;AAC3D,QAAA,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE;YACrB;;AAGF,QAAA,IAAI,CAAC;AACF,aAAA,yBAAyB,CAAC,aAAa,CAAC,EAAE;AAC1C,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,aAAA,SAAS,CAAC;YACT,IAAI,EAAE,MAAK;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;aAC5B;YACD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC;aAClF;AACF,SAAA,CAAC;;IAGC,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG1B,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGzB,IAAA,sBAAsB,CAAC,aAAkC,EAAA;AAC9D,QAAA,MAAM,kBAAkB,GAAG,SAAS,CAAC,aAAa,CAAC;AACnD,QAAA,kBAAkB,CAAC,EAAE,GAAGE,EAAM,EAAE;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,QAAA,IAAI,CAAC,YAAY,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;;+GAhHtD,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAX,IAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAY,4BAAA,EAAA,EAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,sFCpCtC,g5DAwDA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,uBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDpBa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,KAAK,YACP,2BAA2B,EAAA,QAAA,EAAA,g5DAAA,EAAA,MAAA,EAAA,CAAA,goBAAA,CAAA,EAAA;;;AEhCvC;;;;;;;;;;;;;;AAcG;AASH,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,yBAAyB;QACpC,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,IAAI,EAAE,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAC;AAC9C,KAAA;CACF;MAOY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAA7B,6BAA6B,EAAA,OAAA,EAAA,CAH9B,YAAY,EAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CACZ,YAAY,CAAA,EAAA,CAAA,CAAA;gHAEX,6BAA6B,EAAA,OAAA,EAAA,CAH9B,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC3C,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;oBAChB,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACtD,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACpCD;;;;;;;;;;;;;;AAcG;MAqEU,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAnC/B,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,wBAAwB;AACxB,YAAA,mBAAmB,aAGnB,YAAY;YACZ,6BAA6B;YAC7B,eAAe;YACf,eAAe;YACf,WAAW;YACX,aAAa;YACb,YAAY;YACZ,yBAAyB;YACzB,kCAAkC;YAClCW,YAAkB;YAClB,gBAAgB;YAChBC,WAAiB;YACjB,UAAU;YACV,wBAAwB;YACxB,WAAW;YACX,WAAW;AACX,YAAA,aAAa,aAGb,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,wBAAwB;YACxB,wBAAwB;YACxB,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAGV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EArCtB,SAAA,EAAA,CAAC,4BAA4B,CAAC,YAUvC,YAAY;YACZ,6BAA6B;YAC7B,eAAe;YACf,eAAe;YACf,WAAW;YACX,aAAa;YACb,YAAY;YACZ,yBAAyB;YACzB,kCAAkC;YAClCD,YAAkB;YAClB,gBAAgB;YAChBC,WAAiB;YACjB,UAAU;YAEV,WAAW;YACX,WAAW;YACX,aAAa,CAAA,EAAA,CAAA,CAAA;;4FAWJ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAtClC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,4BAA4B,CAAC;AACzC,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;wBACzB,uBAAuB;wBACvB,wBAAwB;wBACxB,wBAAwB;wBACxB,wBAAwB;wBACxB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,6BAA6B;wBAC7B,eAAe;wBACf,eAAe;wBACf,WAAW;wBACX,aAAa;wBACb,YAAY;wBACZ,yBAAyB;wBACzB,kCAAkC;wBAClCD,YAAkB;wBAClB,gBAAgB;wBAChBC,WAAiB;wBACjB,UAAU;wBACV,wBAAwB;wBACxB,WAAW;wBACX,WAAW;wBACX,aAAa;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,yBAAyB;wBACzB,uBAAuB;wBACvB,wBAAwB;wBACxB,wBAAwB;wBACxB,wBAAwB;wBACxB,mBAAmB;AACpB,qBAAA;AACF,iBAAA;;;AClFD;;;;;;;;;;;;;;AAcG;AAEH;;AAEG;;AClBH;;AAEG;;;;"}