@siemens/maps-ng 49.8.0 → 49.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-maps-ng.mjs","sources":["../../../../projects/maps-ng/src/components/si-map/models/constants.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-tooltip/si-map-tooltip.component.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-tooltip/si-map-tooltip.component.html","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover-cluster-template.directive.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover-template.directive.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover.component.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover.component.html","../../../../projects/maps-ng/src/components/si-map/components/index.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/element.ts","../../../../projects/maps-ng/src/components/si-map/models/grouping.model.ts","../../../../projects/maps-ng/src/components/si-map/models/index.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/marker.ts","../../../../projects/maps-ng/src/components/si-map/services/map.service.ts","../../../../projects/maps-ng/src/components/si-map/services/SelectCluster.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/style.ts","../../../../projects/maps-ng/src/components/si-map/si-map.component.ts","../../../../projects/maps-ng/src/components/si-map/si-map.component.html","../../../../projects/maps-ng/src/components/si-map/si-map.module.ts","../../../../projects/maps-ng/src/components/si-map/index.ts","../../../../projects/maps-ng/src/public-api.module.ts","../../../../projects/maps-ng/src/public-api.ts","../../../../projects/maps-ng/src/siemens-maps-ng.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const DEFAULT_STROKE_WEIGHT = 2;\nexport const DEFAULT_CLUSTER_TYPE = 'donut';\nexport const DEFAULT_DONUT_RATIO = 0.6;\nexport const ANIMATION_DURATION = 500;\nexport const DEFAULT_ICON = 'assets/default-marker-icon.svg';\nexport const DEFAULT_ICON_SCALE = 1;\nexport const SIEMENS_FONT = 'bold 13px \"SiemensSans Pro\", sans-serif';\nexport const SIEMENS_FONT_LABELS = '600 14px \"SiemensSans Pro\", sans-serif';\nexport const DEFAULT_OFFSET = 14;\nexport const DEFAULT_FEATURE_SELECT_ZOOM = 10;\nexport const DEFAULT_FEATURE_CLICK_ZOOM = 15;\nexport const DEFAULT_CLUSTER_CLICK_ZOOM = 15;\nexport const DEFAULT_GLOBAL_ZOOM = 5;\nexport const DEFAULT_CLUSTER_DISTANCE = 40;\n/** @deprecated will be removed in favour of individual inputs. */\nexport const DEFAULT_FIT_PADDING = [20, 20, 20, 20];\n\n/** Updates the amount of buildings to be shown in a cluster tooltip after hovering over it */\nexport const TOOLTIP_FEATURES_TO_DISPLAY = 4;\n/** Specifies the maximum amount of buildings allowed to be displayed as a number in a cluster */\nexport const MAX_CLUSTER_BUILDINGS = 99;\n/** Defines the cluster radius size, so all the clusters are of the same size */\nexport const CLUSTER_RADIUS_SIZE = 20;\n/** Chart inside the cluster is internally divided into 20 fragments */\nexport const CLUSTER_CHARTS_FRAGMENTS = 20;\nexport const GEOJSON_LAYER = 'geojson-layer';\nexport const POINTS_LAYER = 'points-layer';\nexport const LAYER_NAME = 'layerName';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, ElementRef, inject, input, signal, viewChild } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { TOOLTIP_FEATURES_TO_DISPLAY } from '../../models/constants';\n\n@Component({\n selector: 'si-map-tooltip',\n\n imports: [SiTranslatePipe],\n templateUrl: './si-map-tooltip.component.html',\n styleUrl: './si-map-tooltip.component.scss'\n})\nexport class SiMapTooltipComponent {\n protected readonly content = viewChild.required<ElementRef>('content');\n\n /**\n * Cutoff text for tooltips, when cluster combines more than 4 features\n *\n * @defaultValue\n * ```\n * t(() =>$localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n * ```\n */\n readonly moreText = input(\n t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n );\n\n /**\n * Adds the maximum length of a string thats allowed in a tooltip and if its longer it cuts off the rest and adds 3 dots at the end.\n * If set to -1, it will not cut off the string.\n * @defaultValue 50\n */\n readonly maxLabelLength = input(50);\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n protected readonly hiddenEntries = signal(0);\n private readonly elementRef = inject(ElementRef);\n\n /**\n * Method sets tooltip content. If parameter is of type\n * string, it will directly set it as tooltip content.\n * If it is array of string, it will render it as list of those strings.\n *\n * @param labels - array of strings or string itself\n */\n setTooltip(labels: string[] | string): void {\n if (typeof labels === 'string') {\n this.setContent(this.getLabelSnippet(labels));\n this.hiddenEntries.set(0);\n return;\n }\n\n const list: string[] = [];\n\n if (labels.length > 1) {\n const toDisplay = [...labels];\n const rest = toDisplay.splice(\n TOOLTIP_FEATURES_TO_DISPLAY,\n toDisplay.length - TOOLTIP_FEATURES_TO_DISPLAY\n );\n\n toDisplay.forEach(feat => list.push(this.getLabelSnippet(feat)));\n this.hiddenEntries.set(rest.length ?? 0);\n }\n\n this.setContent(list.join(''));\n }\n\n private getLabelSnippet(label: string): string {\n if (this.maxLabelLength() != -1 && label.length > this.maxLabelLength()) {\n return `<div>${label.substring(0, this.maxLabelLength())}...</div>`;\n } else {\n return `<div>${label}</div>`;\n }\n }\n\n private setContent(tooltip: string): void {\n this.content().nativeElement.innerHTML = tooltip;\n }\n}\n","<div class=\"si-map-tooltip\">\n <div #content></div>\n @if (hiddenEntries()) {\n <div>{{ moreText() | translate: { length: hiddenEntries() } }}</div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { MapPointMetaData } from '../../models';\n\n@Directive({\n selector: `[siMapPopoverClusterTemplate]`\n})\nexport class SiMapPopoverClusterTemplateDirective {\n static ngTemplateContextGuard(\n directive: SiMapPopoverClusterTemplateDirective,\n context: unknown\n ): context is { mapPoints: MapPointMetaData[] } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { MapPointMetaData } from '../../models';\n\n@Directive({\n selector: `[siMapPopoverTemplate]`\n})\nexport class SiMapPopoverTemplateDirective {\n static ngTemplateContextGuard(\n directive: SiMapPopoverTemplateDirective,\n context: unknown\n ): context is { mapPoint: MapPointMetaData } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n Component,\n ElementRef,\n signal,\n TemplateRef,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport Map from 'ol/Map';\n\nimport { MapPointMetaData } from '../../models/map-point.interface';\nimport { SiMapPopoverClusterTemplateDirective } from './si-map-popover-cluster-template.directive';\nimport { SiMapPopoverTemplateDirective } from './si-map-popover-template.directive';\nexport interface RenderOptions {\n component?: Type<any>;\n mapPoints: MapPointMetaData | MapPointMetaData[];\n map?: Map;\n}\n\n@Component({\n selector: 'si-map-popover',\n imports: [SiMapPopoverTemplateDirective, SiMapPopoverClusterTemplateDirective],\n templateUrl: './si-map-popover.component.html',\n styleUrl: './si-map-popover.component.scss'\n})\nexport class SiMapPopoverComponent {\n private readonly elementRef = viewChild.required<ElementRef>('popover');\n protected readonly maxHeight = signal<number | null>(null);\n\n protected readonly contentContainer = viewChild.required<ElementRef, ViewContainerRef>(\n 'contentContainer',\n {\n read: ViewContainerRef\n }\n );\n\n protected readonly defaultContent = viewChild.required<ElementRef, TemplateRef<any>>(\n 'defaultContent',\n {\n read: TemplateRef\n }\n );\n\n protected readonly defaultCluster = viewChild.required<ElementRef, TemplateRef<any>>(\n 'defaultCluster',\n {\n read: TemplateRef\n }\n );\n\n public render({ component, mapPoints, map }: RenderOptions): void {\n this.contentContainer().clear();\n\n if (component) {\n this.renderCustomComponent(component, mapPoints);\n } else {\n this.renderDefault(mapPoints);\n }\n\n if (map) {\n const mapHeight = map.getTargetElement().getBoundingClientRect().height;\n const contentY = this.elementRef().nativeElement.getBoundingClientRect().top;\n const maxheight = mapHeight - contentY - 20;\n this.maxHeight.set(maxheight);\n }\n }\n\n private renderCustomComponent(\n component: Type<any>,\n mapPoints: MapPointMetaData | MapPointMetaData[]\n ): void {\n const componentRef = this.contentContainer().createComponent(component);\n\n // Assign map point meta data to component instance input\n componentRef.setInput(Array.isArray(mapPoints) ? 'mapPoints' : 'mapPoint', mapPoints);\n componentRef.changeDetectorRef.detectChanges();\n }\n\n private renderDefault(mapPoints: MapPointMetaData | MapPointMetaData[]): void {\n // Create an embedded view with the default content template\n const context = Array.isArray(mapPoints) ? { mapPoints } : { mapPoint: mapPoints };\n const template = Array.isArray(mapPoints) ? this.defaultCluster() : this.defaultContent();\n this.contentContainer().createEmbeddedView(template, context).detectChanges();\n }\n}\n","<div #popover class=\"si-map-popover\">\n <div class=\"si-map-popover-arrow\"></div>\n\n <div class=\"si-map-popover-content\">\n <div class=\"overflow-auto px-5\">\n <div #contentContainer></div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultContent let-mapPoint=\"mapPoint\" siMapPopoverTemplate>\n <div>{{ mapPoint?.name }}</div>\n <div [innerHTML]=\"mapPoint?.description\"></div>\n</ng-template>\n<ng-template #defaultCluster let-mapPoints=\"mapPoints\" siMapPopoverClusterTemplate>\n <div [style.max-block-size.px]=\"maxHeight()\">\n <div class=\"si-map-popover-list\">\n @for (point of mapPoints; track $index) {\n <div class=\"si-map-popover-item\">\n <div class=\"si-map-popover-item-title\">{{ point.name }}</div>\n <div class=\"si-map-popover-item-description\" [innerHTML]=\"point.description\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-map-tooltip/si-map-tooltip.component';\nexport * from './si-map-popover/si-map-popover.component';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ColorPalettes } from '../../models/color-palette.type';\nimport { MarkerStatusType } from '../../models/map-point.interface';\n\nconst getProp = (style: CSSStyleDeclaration, prop: string): string => {\n const val = style.getPropertyValue(prop).replace(/\\s/g, ''); // trim all whitespaces\n return val ? val : '';\n};\n\nexport const themeElement = {\n style: () => {\n const style = window.getComputedStyle(document.documentElement);\n const status: Record<MarkerStatusType, string> = {\n info: getProp(style, '--element-status-information'), // $element-status-information / $siemens-blue-500\n success: getProp(style, '--element-status-success'), // $element-status-success / $siemens-green-700\n warning: getProp(style, '--element-status-warning'), // $element-status-warning / $siemens-orange-700\n danger: getProp(style, '--element-status-danger'), // $element-status-danger / $siemens-red-500\n caution: getProp(style, '--element-status-caution'), // $element-status-caution / $siemens-yellow-500\n critical: getProp(style, '--element-status-critical'), // $element-status-critical / $siemens-red-900\n default: getProp(style, '--element-ui-0'), // $element-ui-0 / $siemens-interactive-blue-500\n unknown: getProp(style, '--element-ui-3') // $element-ui-3 / $siemens-deep-blue-400\n };\n\n return {\n fillColor: getProp(style, '--element-base-1'), // $element-base-1 / $siemens-white\n strokeColor: getProp(style, '--element-base-1'), // $element-base-1 / $siemens-white\n textColor: getProp(style, '--element-text-primary'), // $element-text-primary / $siemens-deep-blue-900\n defaultMarkerColor: getProp(style, '--element-text-primary'), // $element-text-primary / $siemens-deep-blue-900\n status,\n colorPalette: {\n status: [status.info, status.success, status.warning, status.danger],\n element: [\n getProp(style, '--element-data-red-2'), // $siemens-red-500\n getProp(style, '--element-data-orange-4'), // $siemens-orange-700\n getProp(style, '--element-status-caution'), // $siemens-yellow-300\n getProp(style, '--element-data-green-2'), // $siemens-green-500\n getProp(style, '--element-status-information'), // $siemens-blue-500\n getProp(style, '--element-petrol'), // $element-petrol\n getProp(style, '--element-data-17') // $siemens-deep-blue-500\n ]\n } as ColorPalettes\n };\n }\n};\n\nexport type ThemeType = ReturnType<typeof themeElement.style>;\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { themeElement } from '../shared/themes/element';\nimport { ColorPalette } from './color-palette.type';\n\n/**\n * Class for grouping functionality\n */\nexport class Grouping {\n private readonly _colors: string[];\n private readonly _palette?: ColorPalette;\n\n constructor(groupColors: Record<number, string> | ColorPalette = 'status') {\n this._colors = [];\n\n if (typeof groupColors === 'string') {\n const colorPalette = groupColors;\n this._colors = [colorPalette];\n\n if (colorPalette === 'element') {\n this._palette = colorPalette as ColorPalette;\n this._colors = themeElement.style().colorPalette.element;\n } else {\n this._palette = 'status';\n this._colors = themeElement.style().colorPalette.status;\n }\n } else {\n Object.keys(groupColors).forEach((key: string) => {\n const numKey = Number(key);\n if (numKey <= 0) {\n throw new Error('Key is out of range: keys should start from 1 and do not repeat');\n }\n this._colors[Number(key) - 1] = groupColors[numKey];\n });\n }\n }\n\n get colors(): string[] {\n return Object.values(this._colors);\n }\n\n get palette(): string | undefined {\n return this._palette;\n }\n\n get length(): number {\n return this._colors.length;\n }\n\n getColor(groupId: number): string {\n // Group has higher index than available colors,\n // cycle trough them.\n if (groupId > this._colors.length) {\n const index = groupId % this._colors.length;\n return this._colors[index];\n } else {\n return this._colors[groupId - 1];\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './constants';\nexport * from './color-palette.type';\nexport * from './grouping.model';\nexport * from './overlay-native-properties.interface';\nexport * from './map-point.interface';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { MarkerStatusType } from '../../models/map-point.interface';\nimport { ThemeType } from './element';\n\nconst markers: Record<MarkerStatusType, string> = {\n default: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n`,\n success: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m241.55,225.45c-2.47,0-4.93-.94-6.82-2.82l-24.09-24.09c-3.77-3.77-3.77-9.86,0-13.63,3.77-3.77,9.87-3.77,13.63,0l17.28,17.28,46.19-46.19c3.77-3.77,9.87-3.77,13.63,0,3.77,3.77,3.77,9.86,0,13.63l-53.01,53.01c-1.88,1.88-4.35,2.82-6.82,2.82h.02Z\" />\n `,\n info: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <rect class=\"middle\"\n x=\"177.74\" y=\"110.96\" width=\"156.52\" height=\"156.52\" rx=\"11.74\" ry=\"11.74\" />\n <path class=\"symbol\"\n d=\"m255.91,134.43h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,179.94c5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61s-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61Z\" />\n `,\n warning: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m243.78,104.22l-76.92,134.35c-5.38,9.39,1.4,21.09,12.22,21.09h153.85c10.82,0,17.6-11.7,12.22-21.09l-76.92-134.35c-5.41-9.45-19.04-9.45-24.45,0Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n danger: `\n <path class=\"icon\"\n d=\"m256,64c-69.05,0-125.21,56.17-125.21,125.21,0,1.43.04,2.94.12,4.6.46,12.81,2.85,25.34,7.07,37.27,24.64,80.64,105.26,184.13,108.68,188.43,2.27,2.85,5.7,4.5,9.35,4.5s7.08-1.66,9.35-4.5c3.42-4.3,84.05-107.77,108.69-188.43,4.23-11.93,6.61-24.46,7.07-37.24.08-1.5.12-3.06.12-4.62,0-69.05-56.18-125.21-125.22-125.21h0Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n caution: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <rect class=\"middle\"\n x=\"190.26\" y=\"123.48\" width=\"131.47\" height=\"131.47\" rx=\"11.74\" ry=\"11.74\"\n transform=\"translate(208.78 -125.6) rotate(45)\" />\n <path class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n critical: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m285.78,105.57h-59.57c-3.11,0-6.1,1.24-8.3,3.44l-42.12,42.12c-2.2,2.2-3.44,5.19-3.44,8.3v59.57c0,3.11,1.24,6.1,3.44,8.3l42.12,42.12c2.2,2.2,5.19,3.44,8.3,3.44h59.57c3.11,0,6.1-1.24,8.3-3.44l42.12-42.12c2.2-2.2,3.44-5.19,3.44-8.3v-59.57c0-3.11-1.24-6.1-3.44-8.3l-42.12-42.12c-2.2-2.2-5.19-3.44-8.3-3.44Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n unknown: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m256.04,207.64h0c-5.25,0-9.5-4.25-9.5-9.5v-9.95c0-3.59,1.8-7,4.87-8.86.59-.36,1.07-.56,1.58-.73,5.75-1.99,17.59-8.4,17.59-15.59,0-6.46-4.07-12.24-10.16-14.38-7.91-2.78-16.6,1.39-19.38,9.29-1.74,4.95-7.16,7.55-12.11,5.81-4.95-1.74-7.55-7.17-5.81-12.11,6.26-17.79,25.82-27.17,43.61-20.91,13.69,4.82,22.87,17.8,22.85,32.31,0,16.73-14.98,26.5-24.04,30.88v4.23c0,5.25-4.25,9.5-9.5,9.5h0Z\" />\n <path class=\"symbol\"\n d=\"m256.09,247h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n `\n};\n\nexport const getMarker = (status: MarkerStatusType, theme: ThemeType): string => {\n return `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"64\" height=\"64\">\n <defs>\n <style>\n .middle{fill:${theme.fillColor};}\n .symbol{fill:${theme.textColor};}\n .icon{fill:${theme.status[status]};}\n </style>\n </defs>\n ${markers[status]}\n</svg>\n`;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/// <reference types=\"./ol-ext.d.ts\" />\nimport { Injectable } from '@angular/core';\nimport AnimatedCluster from 'ol-ext/layer/AnimatedCluster';\nimport Chart from 'ol-ext/style/Chart';\nimport Feature from 'ol/Feature';\nimport Point from 'ol/geom/Point';\nimport Layer from 'ol/layer/Layer';\nimport VectorLayer from 'ol/layer/Vector';\nimport { fromLonLat } from 'ol/proj';\nimport Cluster from 'ol/source/Cluster';\nimport VectorSource from 'ol/source/Vector';\nimport { Circle, Fill, Icon, Stroke, Style, Text } from 'ol/style';\nimport { Options as IconOptions } from 'ol/style/Icon';\nimport ImageStyle from 'ol/style/Image';\n\nimport { ColorPalette } from '../models/color-palette.type';\nimport {\n ANIMATION_DURATION,\n CLUSTER_CHARTS_FRAGMENTS,\n CLUSTER_RADIUS_SIZE,\n DEFAULT_CLUSTER_TYPE,\n DEFAULT_DONUT_RATIO,\n DEFAULT_ICON,\n DEFAULT_ICON_SCALE,\n DEFAULT_OFFSET,\n DEFAULT_STROKE_WEIGHT,\n MAX_CLUSTER_BUILDINGS,\n SIEMENS_FONT,\n SIEMENS_FONT_LABELS\n} from '../models/constants';\nimport { Grouping } from '../models/grouping.model';\nimport {\n IconMarkerOptions,\n LabelOptions,\n MapPoint,\n MarkerOptions\n} from '../models/map-point.interface';\nimport { themeElement, ThemeType } from '../shared/themes/element';\nimport { getMarker } from '../shared/themes/marker';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MapService {\n private styleCache: Record<string, Style[]> = {};\n private clusterStyleCache: Record<string, Style[]> = {};\n private labelStyleCache: Record<string, Style[]> = {};\n private grouping?: Grouping;\n\n private _theme?: ThemeType;\n\n private wrappedTextCache: Record<string, string> = {};\n private labelTextStyleCache: Record<string, Text[]> = {};\n\n resetCaches(): void {\n this.styleCache = {};\n this.clusterStyleCache = {};\n this.labelStyleCache = {};\n this.wrappedTextCache = {};\n this.labelTextStyleCache = {};\n }\n\n private wrapLabelText(labelText: string, maxLength: number, maxLines: number): string {\n const cacheKey = `${labelText}_${maxLength}_${maxLines}`;\n if (this.wrappedTextCache[cacheKey]) {\n return this.wrappedTextCache[cacheKey];\n }\n\n let wrappedText = '';\n let currentLine = '';\n let lineCount = 0;\n const words = labelText.split(/[ \\n]/g);\n if (maxLength > 0) {\n for (const word of words) {\n const strippedWord =\n word.length > maxLength ? word.substring(0, maxLength - 3) + '...' : word;\n if ((currentLine.length || -1) + 1 + strippedWord.length > maxLength) {\n if (lineCount + 1 >= maxLines) {\n const wrappedLine = currentLine.endsWith('...')\n ? currentLine\n : (currentLine.length > maxLength\n ? currentLine.substring(0, maxLength - 3)\n : currentLine) + '...';\n wrappedText += (wrappedText ? '\\n' : '') + wrappedLine;\n return (this.wrappedTextCache[cacheKey] = wrappedText);\n } else {\n wrappedText += (wrappedText ? '\\n' : '') + currentLine;\n }\n currentLine = '';\n lineCount++;\n }\n currentLine += (currentLine ? ' ' : '') + strippedWord;\n }\n if (currentLine) {\n wrappedText += (wrappedText ? '\\n' : '') + currentLine;\n }\n } else {\n wrappedText = labelText;\n }\n\n return (this.wrappedTextCache[cacheKey] = wrappedText);\n }\n\n private getLabelTextStyle(\n text: string = '',\n maxLength: number,\n maxLines: number,\n markerSizes: [number, number],\n markerOffset: [number, number]\n ): Text[] {\n const cacheKey = `${text}_${maxLength}_${SIEMENS_FONT_LABELS}_${markerSizes[0]}_${markerSizes[1]}_${markerOffset[0]}_${markerOffset[1]}`;\n if (this.labelTextStyleCache[cacheKey]) {\n return this.labelTextStyleCache[cacheKey];\n }\n\n const wrappedText = this.wrapLabelText(text, maxLength, maxLines);\n const margin = 6;\n const extraPadding = 1;\n const halfWidth = markerSizes[0] / 2;\n const halfHeight = markerSizes[1] / 2;\n const placementOffsets = [\n {\n offsetX: markerOffset[0],\n offsetY: margin + markerOffset[1],\n align: { h: 'center', v: 'top' }\n },\n {\n offsetX: markerOffset[0],\n offsetY: -margin - markerSizes[1] + markerOffset[1],\n align: { h: 'center', v: 'bottom' }\n },\n {\n offsetX: -margin - halfWidth + markerOffset[0],\n offsetY: markerOffset[1] - halfHeight,\n align: { h: 'right', v: 'middle' }\n },\n {\n offsetX: margin + halfWidth - markerOffset[0],\n offsetY: markerOffset[1] - halfHeight,\n align: { h: 'left', v: 'middle' }\n }\n ] as const;\n\n return (this.labelTextStyleCache[cacheKey] = placementOffsets.map(\n offset =>\n new Text({\n text: wrappedText,\n font: SIEMENS_FONT_LABELS,\n fill: new Fill({ color: this.theme.textColor }),\n stroke: new Stroke({ color: this.theme.strokeColor, width: 4 }),\n offsetX: offset.offsetX,\n offsetY: offset.offsetY,\n padding: [\n offset.offsetY >= 0 ? offset.offsetY + extraPadding : 0,\n offset.offsetX < 0 ? -offset.offsetX - extraPadding : 0,\n offset.offsetY < 0 ? -offset.offsetY - extraPadding : 0,\n offset.offsetX >= 0 ? offset.offsetX + extraPadding : 0\n ],\n textAlign: offset.align.h,\n textBaseline: offset.align.v,\n overflow: true\n })\n ));\n }\n\n private zoomCallback: () => number | undefined = () => undefined;\n\n private getZoom(): number {\n return this.zoomCallback?.() ?? 3;\n }\n\n setZoomCallback(callback?: () => number | undefined): void {\n this.zoomCallback = callback ?? (() => undefined);\n }\n\n setTheme(groupColors: Record<number, string> | ColorPalette | undefined): void {\n this.resetCaches();\n this.grouping = new Grouping(groupColors);\n this._theme = undefined;\n }\n\n get theme(): ThemeType {\n this._theme ??= themeElement.style();\n return this._theme;\n }\n\n /**\n * Create feature with parameters\n * @param points - the list of points\n */\n createFeatures(points: MapPoint[], alwaysShowLabels = false): Feature[] {\n return points.map(\n point =>\n new Feature({\n geometry: new Point(fromLonLat([point.lon, point.lat])),\n // Append MapPointMetaData that will be available in getProperties()\n meta: point,\n name: point.name,\n description: point.description,\n marker: point.marker,\n label: alwaysShowLabels ? ({ text: point.name } as LabelOptions) : undefined,\n group: point.group,\n // TODO: Remove extraProps in v50\n // For backward compatibility, extraProps is still supported, but extraProperties should be used going forward\n extraProps: point.extraProperties,\n extraProperties: point.extraProperties,\n click: point.click\n })\n );\n }\n\n /**\n * Initialize animated cluster layer for points if clustering is enabled\n * @param features - for the source\n * @param markerAnimation - animation value for markers\n * @param clusterDistance - number distance between clusters\n * @param multiWorld - boolean if points should be repeated on multiple world maps\n */\n clusterLayer(\n features: Feature[],\n markerAnimation: boolean,\n clusterDistance: number,\n multiWorld: boolean\n ): Layer {\n return new AnimatedCluster({\n className: 'animated-cluster',\n zIndex: 1000,\n source: new Cluster({\n wrapX: multiWorld,\n distance: this.calculateClusteringDistance(clusterDistance, CLUSTER_RADIUS_SIZE),\n minDistance: CLUSTER_RADIUS_SIZE * 2,\n source: new VectorSource({\n features\n })\n }),\n animationDuration: markerAnimation ? ANIMATION_DURATION : 0,\n style: (feature: Feature) => this.getClusterStyle(feature)\n });\n }\n\n /**\n * Create vector layer when clustering is disabled\n * @param features - list of Features\n * @param multiWorld - boolean if points should be repeated on multiple world maps\n */\n vectorLayer(\n features: Feature[],\n multiWorld: boolean,\n defaultStyle: boolean = false\n ): VectorLayer<VectorSource> {\n return new VectorLayer({\n className: 'vector-layer',\n zIndex: 1000,\n source: new VectorSource({\n features,\n wrapX: multiWorld\n }),\n style: !defaultStyle\n ? feature => this.getFeatureStyle(feature as Feature, false, features)\n : undefined\n });\n }\n\n labelLayer(\n features: Feature[],\n multiWorld: boolean,\n maxLabelLength: number,\n maxLines: number,\n clusterLayer?: Layer\n ): VectorLayer<VectorSource> {\n const clusterSource = clusterLayer?.getSource() as Cluster<Feature<Point>>;\n return new VectorLayer({\n className: 'vector-layer',\n zIndex: 1200,\n source: new VectorSource({\n features,\n wrapX: multiWorld\n }),\n declutter: true,\n style: feature =>\n this.getLabelStyle(\n feature as Feature<Point>,\n features as Feature<Point>[],\n maxLabelLength,\n maxLines,\n clusterSource,\n false\n )\n });\n }\n\n /**\n * Cluster styling\n *\n * @param feature - Feature\n */\n getClusterStyle(feature: Feature): Style[] {\n const features = feature.getProperties().features;\n if (!features) {\n return this.getFeatureStyle(feature, true, features);\n }\n const uid = feature.getProperties().geometry.ol_uid;\n const size = features.length;\n\n if (size === 1) {\n return this.getFeatureStyle(feature, true, features);\n }\n\n let style: Style[] = this.clusterStyleCache[uid];\n\n if (!style) {\n style = [\n new Style({\n image: new Circle({\n radius: CLUSTER_RADIUS_SIZE,\n fill: new Fill({\n color: this.theme.fillColor\n }),\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: 6\n })\n })\n }),\n new Style({\n image: this.getClusterChart(features, this.grouping!),\n text: new Text({\n text: size > MAX_CLUSTER_BUILDINGS ? `${MAX_CLUSTER_BUILDINGS}+` : size.toString(),\n placement: 'point',\n textAlign: 'center',\n textBaseline: 'middle',\n fill: new Fill({ color: this.theme.textColor }),\n font: SIEMENS_FONT\n })\n })\n ];\n\n this.clusterStyleCache[uid] = style;\n }\n\n return style;\n }\n\n /**\n * Separate feature styling with icon\n * @param feature - to style\n * @param cluster - indication\n * @param features - list of features\n */\n getFeatureStyle(feature: Feature, cluster: boolean, features: Feature[], dummy = false): Style[] {\n const subFeatures = feature.getProperties()?.features;\n const feat = cluster && features ? subFeatures[0] : feature;\n const marker: MarkerOptions = feat.getProperties().marker;\n\n if (feat) {\n const uid = feat.getProperties().geometry.ol_uid + (dummy ? '~' : '');\n let style = this.styleCache[uid];\n\n if (!style) {\n style = [\n new Style(\n dummy\n ? {}\n : {\n image: this.getMarkerStyle(feat, this.grouping!, marker)\n }\n )\n ];\n\n this.styleCache[uid] = style;\n }\n\n return style;\n }\n\n return [\n new Style({\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: DEFAULT_STROKE_WEIGHT\n })\n })\n ];\n }\n\n getLabelStyle(\n feature: Feature<Point>,\n features: Feature<Point>[],\n maxLabelLength: number,\n maxLines: number,\n clusterSource?: Cluster<Feature<Point>>,\n dummy = false\n ): Style[] {\n const featureStyle = this.getFeatureStyle(feature, false, features, true);\n\n // const marker: MarkerOptions = feature.getProperties().marker;\n const label: LabelOptions = feature.getProperties().label;\n\n if (dummy || !label?.text) {\n return featureStyle;\n }\n\n // Determine if the feature is clustered\n let isClustered = !!clusterSource;\n\n if (clusterSource) {\n let clusterFeatures = [];\n\n // Here we iterate over all clusters and check if the feature is among them\n clusterSource.getFeatures().forEach(cluster => {\n clusterFeatures = cluster.get('features');\n if (clusterFeatures?.length === 1 && clusterFeatures[0] === feature) {\n isClustered = false;\n }\n });\n }\n\n // Only show labels for features that are not clustered\n if (!isClustered) {\n const uid = feature.getProperties().geometry.ol_uid + '~' + this.getZoom();\n let style = this.labelStyleCache[uid];\n\n if (!style) {\n const labelStyles = this.getLabelTextStyle(\n label?.text,\n maxLabelLength,\n maxLines,\n this.getMarkerSize(feature),\n this.getMarkerOffset(feature)\n );\n style = labelStyles.map(\n labelStyle =>\n new Style({\n text: labelStyle\n })\n );\n\n this.labelStyleCache[uid] = style;\n }\n\n return [...featureStyle, ...style];\n }\n\n return featureStyle;\n }\n\n getMarkerOffset(feature: Feature): [number, number] {\n const marker = feature.getProperties()?.marker;\n const markerType = marker?.type;\n const [, height] = this.getMarkerSize(feature);\n const offsetVertical = !markerType || markerType === 'status' ? 0 : height / 2;\n return [0, offsetVertical];\n }\n\n getMarkerSize(feature: Feature): [number, number] {\n const marker = feature.getProperties()?.marker;\n const markerType = marker?.type;\n const scale = (markerType === 'icon' ? marker?.icon?.scale : 1) ?? 1;\n const height =\n !markerType || markerType === 'status'\n ? 32\n : markerType === 'dot'\n ? 28\n : DEFAULT_OFFSET * 2 * scale;\n const width =\n !markerType || markerType === 'status'\n ? 22\n : markerType === 'dot'\n ? 28\n : DEFAULT_OFFSET * 2 * scale;\n return [width, height];\n }\n\n private getClusterChart(features: Feature[], grouping: Grouping): ImageStyle {\n const { data, colors } = this.getClusterChartData(features, grouping);\n\n const chart = new Chart({\n type: DEFAULT_CLUSTER_TYPE,\n radius: CLUSTER_RADIUS_SIZE,\n donutRatio: DEFAULT_DONUT_RATIO,\n colors,\n data,\n rotateWithView: true,\n snapToPixel: true,\n stroke: new Stroke({\n color: colors.length > 1 ? this.theme.strokeColor : 'rgba(0,0,0,0)',\n width: colors.length > 1 ? DEFAULT_STROKE_WEIGHT : 0\n }),\n overflow: true\n } as any); // types are wrong here and don't match the actual API\n\n return chart;\n }\n\n private getClusterChartData(\n features: Feature[],\n grouping: Grouping\n ): { data: number[]; colors: string[] } {\n const theme = this.theme;\n const groups: Record<number, number> = {};\n const ungrouped: number[] = [];\n const ungroupedColors: string[] = [];\n\n features.forEach(feat => {\n const props = feat.getProperties();\n const groupId = props.group;\n\n // Ungrouped features are considered as they have group on their own.\n if (groupId == null) {\n ungrouped.push(1);\n ungroupedColors.push(\n this.getStatusMarkerColor(theme, props.marker) ?? theme.defaultMarkerColor\n );\n return;\n }\n\n if (groups[groupId]) {\n groups[groupId] = groups[groupId] + 1;\n } else {\n groups[groupId] = 1;\n }\n });\n\n const data: number[] = [];\n this.transformChartData(data, Object.values(groups), features.length);\n this.transformChartData(data, ungrouped, features.length);\n\n // Corresponding colors of groups are based on matching index\n const colors = [\n ...Object.keys(groups).map(groupId => grouping.getColor(Number(groupId))),\n ...ungroupedColors\n ];\n\n return { data, colors };\n }\n\n /**\n * Calculates minimal safe distance for clustering to avoid overlapping of clusters\n */\n private calculateClusteringDistance(distance: number, clusterRadius: number): number {\n const safeDistance = clusterRadius * 2;\n return Math.max(safeDistance, distance);\n }\n\n private transformChartData(data: number[], series: number[], size: number): void {\n const fragmentSize = size / CLUSTER_CHARTS_FRAGMENTS;\n\n for (const value of series) {\n let fragment = value / fragmentSize;\n\n // Any fragment smaller than 1 must be represented at least as one fragment in the chart\n if (fragment > 0 && fragment < 1) {\n fragment = 1;\n }\n\n data.push(fragment);\n }\n }\n\n private getMarkerStyle(\n feature: Feature,\n grouping: Grouping,\n marker?: MarkerOptions\n ): Icon | Circle | undefined {\n if (!marker || marker.type === 'status') {\n return this.getStatusMarker(marker ?? { type: 'status', status: 'default' });\n }\n\n const color = this.getMarkerColor(feature, grouping, marker);\n\n if (marker.type === 'dot') {\n return this.getDotMarker(color);\n }\n\n if (marker.type === 'icon') {\n return this.getIconMarker(color, marker.icon);\n }\n\n return undefined;\n }\n\n /**\n * Decides what color should Marker be painted with.\n *\n * Markers are painted with group colors if group id is present. If marker color is specified,\n * it takes precedence over the group color.\n */\n private getMarkerColor(feature: Feature, grouping: Grouping, marker?: MarkerOptions): string {\n let color = this.theme.defaultMarkerColor;\n\n const groupId = feature.getProperties().group;\n if (groupId) {\n color = grouping.getColor(groupId);\n }\n\n if (marker?.color) {\n color = marker.color;\n }\n\n if (marker?.status) {\n color = this.theme.status[marker.status];\n }\n\n return color;\n }\n\n private getDotMarker(color: string): Circle {\n return new Circle({\n radius: 10,\n fill: new Fill({\n color\n }),\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: 6\n })\n });\n }\n\n private getIconMarker(color: string, iconConf?: IconMarkerOptions): Icon {\n const defaultIconStyle: IconOptions = {\n color,\n src: DEFAULT_ICON,\n scale: DEFAULT_ICON_SCALE\n };\n\n return new Icon({ ...defaultIconStyle, ...iconConf });\n }\n\n private getStatusMarkerColor(theme: ThemeType, marker?: MarkerOptions): string | undefined {\n if (!marker) {\n return theme.status.default;\n }\n if (marker.type === 'status') {\n return theme.status[marker.status!];\n }\n return marker.color;\n }\n\n private getStatusMarker(marker: MarkerOptions): Icon {\n marker.color = this.getStatusMarkerColor(this.theme, marker);\n\n const svg = getMarker(marker.status!, this.theme);\n const svgb64 = 'data:image/svg+xml;base64,' + btoa(svg);\n\n return new Icon({\n size: [64, 64],\n color: 'transparent', // Note: must be 'transparent' or '#fff' for OL to keep the colors\n width: 42,\n height: 42,\n displacement: [0, 16],\n src: svgb64\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { click } from 'ol/events/condition';\nimport { createEmpty as createEmptyExtent, extend } from 'ol/extent';\nimport Feature from 'ol/Feature';\nimport Select, { SelectEvent } from 'ol/interaction/Select';\nimport { StyleLike } from 'ol/style/Style';\n\nexport class SelectCluster extends Select {\n private zoomOnClick: () => boolean;\n private maxZoom: () => number;\n private fitClusterPadding: () => number[];\n\n constructor(options: {\n fitClusterPadding: () => number[];\n maxZoom: () => number;\n style?: StyleLike | null;\n zoomOnClick: () => boolean;\n }) {\n super({ ...options, condition: click });\n\n this.zoomOnClick = options.zoomOnClick;\n this.maxZoom = options.maxZoom;\n this.fitClusterPadding = options.fitClusterPadding;\n this.on('select', this.selectCluster.bind(this));\n }\n\n selectCluster(e: SelectEvent): void {\n const feature = e.selected.at(0);\n\n // Not a cluster (or just one feature)\n const cluster = feature?.get('features');\n if (!cluster || cluster.length === 1) {\n return;\n }\n\n if (this.zoomOnClick()) {\n this.zoomToCluster(cluster);\n }\n }\n\n zoomToCluster(cluster: Feature[]): void {\n const extent = createEmptyExtent();\n cluster.forEach(feature => {\n const geometry = feature.getGeometry();\n if (geometry) {\n extend(extent, geometry.getExtent());\n }\n });\n\n this.getMap()!.getView().fit(extent, {\n padding: this.fitClusterPadding(),\n maxZoom: this.maxZoom()\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\n// Fonts\n// TODO: This is a workaround to disable loading of google fonts.\nconst italicFonts = ['SiemensSans Pro', 'sans-serif'];\nconst regularFonts = ['SiemensSans Pro', 'sans-serif'];\nconst boldFonts = ['SiemensSans Pro', 'sans-serif'];\n\n// Colors\nconst deepBlue900 = 'rgba(32, 33, 50, 1)';\nconst green700 = (opacity: number): string => `rgba(28, 112, 63, ${opacity})`;\nconst green500 = (opacity: number): string => `rgba(40, 191, 102, ${opacity})`;\nconst green300 = (opacity: number): string => `rgba(114, 230, 163, ${opacity})`;\nconst blue700 = 'rgb(30, 82, 153)';\nconst blue100 = 'rgb(210, 226, 247)';\n\nexport const styleJson = (key: string, dark?: boolean): any => ({\n 'version': 8,\n 'name': 'siemens-brand',\n 'sources': {\n 'attribution': {\n 'attribution': '<a href=\"https://carto.com/\" target=\"_blank\">© CARTO</a>',\n 'type': 'vector'\n },\n 'openmaptiles': {\n 'url': `https://api.maptiler.com/tiles/v3/tiles.json?key=${key}`,\n 'type': 'vector'\n },\n 'maptiler_attribution': {\n 'attribution':\n '<a href=\"https://www.maptiler.com/copyright/\" target=\"_blank\">© MapTiler</a> <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">© OpenStreetMap contributors</a>',\n 'type': 'vector'\n }\n },\n 'layers': [\n {\n 'id': 'background',\n 'type': 'background',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'background-color': dark ? deepBlue900 : 'rgb(247, 247, 246)',\n 'background-opacity': 1\n }\n },\n {\n 'id': 'landcover',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landcover',\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green500(0.15) : green300(0.15)],\n [9, dark ? green500(0.15) : green300(0.2)],\n [11, dark ? green500(0.2) : green300(0.3)],\n [13, dark ? green500(0.1) : green300(0.35)],\n [15, dark ? green500(0.15) : green300(0.5)]\n ]\n },\n 'fill-opacity': 1\n },\n 'filter': [\n 'any',\n ['==', 'class', 'wood'],\n ['==', 'class', 'grass'],\n ['==', 'subclass', 'recreation_ground']\n ]\n },\n {\n 'id': 'park_national_park',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 6,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green700(0.2) : green300(0.2)],\n [9, dark ? green700(0.25) : green300(0.25)],\n [11, dark ? green700(0.35) : green300(0.35)],\n [13, dark ? green700(0.4) : green300(0.4)],\n [15, dark ? green700(0.6) : green300(0.6)]\n ]\n },\n 'fill-opacity': 1,\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'national_park']]\n },\n {\n 'id': 'park_nature_reserve',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 0,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green700(0.2) : green300(0.2)],\n [9, dark ? green700(0.25) : green300(0.25)],\n [11, dark ? green700(0.35) : green300(0.35)],\n [13, dark ? green700(0.4) : green300(0.4)],\n [15, dark ? green700(0.6) : green300(0.6)]\n ]\n },\n 'fill-opacity': {\n 'stops': [\n [6, 0.7],\n [9, 0.9]\n ]\n },\n 'fill-antialias': true\n },\n 'filter': ['all', ['==', 'class', 'nature_reserve']]\n },\n {\n 'id': 'landuse_residential',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landuse',\n 'minzoom': 6,\n 'paint': {\n 'fill-color': {\n 'stops': [\n [5, dark ? 'rgba(27, 28, 29, 0.5)' : 'rgba(222, 226, 232, 0.5)'],\n [8, dark ? 'rgba(27, 28, 29, 0.45)' : 'rgba(222, 226, 232, 0.45)'],\n [9, dark ? 'rgba(27, 28, 29, 0.4)' : 'rgba(222, 226, 232, 0.4)'],\n [11, dark ? 'rgba(27, 28, 29, 0.35)' : 'rgba(222, 226, 232, 0.35)'],\n [13, dark ? 'rgba(27, 28, 29, 0.3)' : 'rgba(222, 226, 232, 0.3)'],\n [15, dark ? 'rgba(27, 28, 29, 0.25)' : 'rgba(222, 226, 232, 0.25)'],\n [16, dark ? 'rgba(27, 28, 29, 0.15)' : 'rgba(222, 226, 232, 0.15)']\n ]\n },\n 'fill-opacity': {\n 'stops': [\n [6, 0.6],\n [9, 1]\n ]\n }\n },\n 'filter': ['any', ['==', 'class', 'residential']]\n },\n {\n 'id': 'landuse',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landuse',\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? 'rgba(0, 0, 0, 0.2)' : 'rgba(195, 189, 205, 0.2)'],\n [9, dark ? 'rgba(0, 0, 0, 0.25)' : 'rgba(195, 189, 205, 0.25)'],\n [11, dark ? 'rgba(0, 0, 0, 0.35)' : 'rgba(195, 189, 205, 0.35)'],\n [13, dark ? 'rgba(0, 0, 0, 0.4)' : 'rgba(195, 189, 205, 0.4)'],\n [15, dark ? 'rgb(20, 20, 20)' : 'rgb(218, 216, 222)']\n ]\n }\n },\n 'filter': ['any', ['==', 'class', 'cemetery'], ['==', 'class', 'stadium']]\n },\n {\n 'id': 'waterway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'waterway',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? blue700 : blue100,\n 'line-width': {\n 'stops': [\n [8, 0.5],\n [9, 1],\n [15, 2],\n [16, 3]\n ]\n }\n }\n },\n {\n 'id': 'boundary_county',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 9,\n 'maxzoom': 24,\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(110, 110, 110, 1)' : 'rgba(145, 145, 145, 0.6)'],\n [5, dark ? 'rgba(112, 112, 112, 1)' : 'rgba(145, 145, 145, 0.8)'],\n [6, dark ? 'rgba(189, 189, 189, 1)' : 'rgba(145, 145, 145, 0.9)']\n ]\n },\n 'line-width': {\n 'stops': [\n [4, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'admin_level', 6], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_state',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 4,\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(68, 73, 76, 1)' : '#d4d5d6'],\n [5, dark ? 'rgba(68, 73, 76, 1)' : '#d4d5d6'],\n [6, dark ? '#656A6E' : '#e1c5c7']\n ]\n },\n 'line-width': {\n 'stops': [\n [4, 0.5],\n [7, 1],\n [8, 1],\n [9, 1.2]\n ]\n }\n },\n 'filter': ['all', ['==', 'admin_level', 4], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'water',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'water',\n 'minzoom': 0,\n 'maxzoom': 24,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(175, 201, 241)',\n 'fill-opacity': 1,\n 'fill-antialias': true,\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', '$type', 'Polygon'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'water_shadow',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'water',\n 'minzoom': 0,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(74, 84, 113, 1)' : 'rgb(210, 226, 247)',\n 'fill-opacity': 1,\n 'fill-antialias': true,\n 'fill-translate': {\n 'stops': [\n [0, [0, 2]],\n [6, [0, 1]],\n [14, [0, 1]],\n [17, [0, 2]]\n ]\n },\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', '$type', 'Polygon'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'aeroway-runway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'aeroway',\n 'minzoom': 12,\n 'layout': {\n 'line-cap': 'square'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(97, 97, 97)' : 'rgb(227, 226, 226)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'runway']]\n },\n {\n 'id': 'aeroway-taxiway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'aeroway',\n 'minzoom': 13,\n 'paint': {\n 'line-color': dark ? 'rgb(97, 97, 97)' : 'rgb(227, 226, 226)',\n 'line-width': {\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 2],\n [16, 4]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'taxiway']]\n },\n {\n 'id': 'waterway_label',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'waterway',\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [9, 8],\n [10, 9]\n ]\n },\n 'text-field': '{name_en}',\n 'visibility': 'visible',\n 'text-offset': {\n 'stops': [\n [6, [0, -0.2]],\n [11, [0, -0.4]],\n [12, [0, -0.6]]\n ]\n },\n 'text-padding': 2,\n 'symbol-spacing': 300,\n 'symbol-placement': 'line',\n 'text-keep-upright': true,\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': 0,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(129, 173, 235, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', 'class', 'river']]\n },\n {\n 'id': 'tunnel_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_sec_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1],\n [13, 2],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_pri_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 8,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_trunk_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_mot_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'path'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_sec_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_pri_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_trunk_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_mot_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_rail',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(86, 86, 86)' : 'rgb(216, 215, 215)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 1],\n [16, 3],\n [21, 7]\n ]\n },\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_rail_dash',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(120, 120, 120)' : 'rgb(250, 249, 249)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [15, 0.5],\n [16, 1],\n [20, 5]\n ]\n },\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'road_area_pier',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? '#fbf8f3' : '#fbf8f3',\n 'fill-antialias': true\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'Polygon'], ['==', 'class', 'pier']]\n },\n {\n 'id': 'road_pier',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? '#fbf8f3' : '#fbf8f3',\n 'line-width': {\n 'base': 1.2,\n 'stops': [\n [15, 1],\n [17, 4]\n ]\n }\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'LineString'], ['in', 'class', 'pier']]\n },\n {\n 'id': 'road_area_bridge',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(246, 241, 229, 0.6)' : 'rgba(246, 241, 229, 0.6)',\n 'fill-antialias': true\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'Polygon'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'road_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 3],\n [16, 4.3],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_trunk_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_mot_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_sec_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1.5],\n [13, 3],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 7,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_trunk_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_mot_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.7],\n [8, 0.8],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'path', 'track'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgba(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_trunk_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'square',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_mot_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_sec_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 0.3],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_trunk_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_mot_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'rail',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(153, 153, 169)' : 'rgb(153, 153, 169)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 1],\n [16, 3],\n [21, 7]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'rail_dash',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(120, 120, 120)' : 'rgb(250, 249, 249)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [15, 0.5],\n [16, 1],\n [20, 5]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'bridge_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 3],\n [16, 4.3],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_sec_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1.5],\n [13, 3],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_pri_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 8,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_trunk_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_mot_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'path'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_sec_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_pri_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_trunk_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_mot_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'building',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'building',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [15, dark ? 'rgba(7, 72, 89, 1)' : 'rgba(255, 255, 255, 1)'],\n [16, dark ? 'rgba(7, 72, 89, 1)' : 'rgba(152, 145, 123, 0.18)']\n ]\n },\n 'fill-antialias': true\n }\n },\n {\n 'id': 'building-top',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'building',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(7, 72, 89, 1)' : 'rgba(164, 146, 127, 1)',\n 'fill-opacity': {\n 'base': 1,\n 'stops': [\n [13, 0],\n [16, 1]\n ]\n },\n 'fill-translate': {\n 'base': 1,\n 'stops': [\n [14, [0, 0]],\n [16, [-2, -2]]\n ]\n },\n 'fill-outline-color': 'rgba(255, 255, 255, 1)'\n }\n },\n {\n 'id': 'boundary_country_outline',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 6,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 0.7)',\n 'line-width': 4,\n 'line-offset': 0,\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_country_inner_z0-4',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 0,\n 'maxzoom': 5,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(68, 73, 76, 0.8)' : 'rgba(151, 151, 151, 0.3)'],\n [5, dark ? 'rgba(163, 168, 173, 0.6)' : 'rgba(151, 151, 151, 0.51)'],\n [6, dark ? 'rgba(163, 168, 173, 0.6)' : 'rgba(151, 151, 151, 0.5)']\n ]\n },\n 'line-width': {\n 'stops': [\n [3, 1],\n [6, 1.5]\n ]\n },\n 'line-offset': 0,\n 'line-opacity': 1\n },\n 'filter': [\n 'all',\n ['==', 'admin_level', 2],\n ['==', 'maritime', 0],\n ['!has', 'claimed_by'],\n ['==', 'disputed', 0]\n ]\n },\n {\n 'id': 'boundary_country_inner_z5-',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 5,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(101, 106, 110, 0.72)' : 'rgba(127, 127, 127, 0.5)'],\n [5, dark ? 'rgba(131, 136, 142, 0.6)' : 'rgba(127, 127, 127, 0.5)'],\n [6, dark ? 'rgba(163, 168, 174, 0.8)' : 'rgba(127, 127, 127, 0.71)']\n ]\n },\n 'line-width': {\n 'stops': [\n [3, 1],\n [6, 1.5]\n ]\n },\n 'line-offset': 0,\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_2_disputed',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 0.0,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(101, 106, 110, 0.72)' : 'rgba(127, 127, 127, 0.5)'],\n [5, dark ? 'rgba(131, 136, 142, 0.6)' : 'rgba(127, 127, 127, 0.5)'],\n [6, dark ? 'rgba(163, 168, 174, 0.8)' : 'rgba(127, 127, 127, 0.71)']\n ]\n },\n 'line-width': {\n 'base': 1,\n 'stops': [\n [3, 0.3],\n [5, 1.2],\n [12, 2]\n ]\n },\n 'line-opacity': 1,\n 'line-dasharray': [4, 3]\n },\n 'metadata': {},\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'disputed', 1], ['==', 'maritime', 0]]\n },\n {\n 'id': 'watername_ocean',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 0,\n 'maxzoom': 5,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [0, 13],\n [2, 14],\n [4, 18]\n ]\n },\n 'text-field': '{name}',\n 'text-padding': 2,\n 'text-max-width': 6,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgba(98, 143, 211, 1)',\n 'text-halo-blur': 0,\n 'text-halo-color': dark ? 'rgb(10, 21, 40)' : 'rgba(255, 255, 255, 0.47)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'ocean']]\n },\n {\n 'id': 'watername_sea',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 5,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': 12,\n 'text-field': '{name}',\n 'text-padding': 2,\n 'text-max-width': 6,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgba(96, 131, 180, 1)',\n 'text-halo-blur': 0,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'sea']]\n },\n {\n 'id': 'watername_lake',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 4,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [13, 9],\n [14, 10],\n [15, 11],\n [16, 12],\n [17, 13]\n ]\n },\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'text-padding': 2,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(210, 226, 247, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-blur': 1,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'lake']]\n },\n {\n 'id': 'watername_lake_line',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [13, 9],\n [14, 10],\n [15, 11],\n [16, 12],\n [17, 13]\n ]\n },\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'symbol-spacing': 350,\n 'symbol-placement': 'line',\n 'text-line-height': 1.2,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(129, 173, 235, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-blur': 1,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'LineString']]\n },\n {\n 'id': 'park-label',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 0,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'base': 1.2,\n 'stops': [\n [12, 10],\n [15, 14]\n ]\n },\n 'text-field': '{name:latin}\\n{name:nonlatin}',\n 'visibility': 'visible',\n 'text-max-width': 9,\n 'text-transform': 'none',\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-ignore-placement': false\n },\n 'paint': {\n 'text-color': dark ? 'rgba(40, 191, 102, 1)' : 'rgba(29, 176, 51, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 0.8)' : 'rgba(255,255,255,0.8)',\n 'text-halo-width': 1.2\n },\n 'metadata': {\n 'mapbox:group': '1444849242106.713'\n },\n 'filter': ['all', ['==', 'rank', 1], ['==', '$type', 'Point']]\n },\n {\n 'id': 'place_hamlet',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 12,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [13, 8],\n [14, 10],\n [16, 11]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [14, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': {\n 'stops': [\n [12, 'none'],\n [14, 'uppercase']\n ]\n },\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(211, 211, 211, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(32, 32, 32, 1)' : 'rgb(219, 225, 230)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['any', ['==', 'class', 'neighbourhood'], ['==', 'class', 'hamlet']]\n },\n {\n 'id': 'place_suburbs',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 12,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [12, 9],\n [13, 10],\n [14, 11],\n [15, 12],\n [16, 13]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': {\n 'stops': [\n [8, 'none'],\n [12, 'uppercase']\n ]\n },\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(218, 218, 218, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(53, 53, 53, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'suburb']]\n },\n {\n 'id': 'place_villages',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 10,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [10, 9],\n [12, 10],\n [13, 11],\n [14, 12],\n [16, 13]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'none',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(166, 166, 166, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(7, 7, 7, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'village']]\n },\n {\n 'id': 'place_town',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 14,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 10],\n [9, 10],\n [10, 11],\n [13, 14],\n [14, 15]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'none',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgba(191, 191, 191, 1)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(195, 195, 195, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(53, 53, 53, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'town']]\n },\n {\n 'id': 'place_country_2',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 3,\n 'maxzoom': 10,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [3, 10],\n [5, 11],\n [6, 12],\n [7, 13],\n [8, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': {\n 'stops': [\n [3, dark ? 'rgba(179, 179, 190, 1)' : 'rgb(101, 106, 110)'],\n [5, dark ? 'rgba(179, 179, 190, 1)' : 'rgb(127, 129, 131)'],\n [6, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(131, 131, 131, 1)']\n ]\n },\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'country'], ['>=', 'rank', 3], ['has', 'iso_a2']]\n },\n {\n 'id': 'place_country_1',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 2,\n 'maxzoom': 7,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [3, 11],\n [4, 12],\n [5, 13],\n [6, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-max-width': {\n 'stops': [\n [2, 6],\n [3, 6],\n [4, 9],\n [5, 12]\n ]\n },\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': {\n 'stops': [\n [3, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(114, 114, 114, 1)'],\n [5, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(116, 116, 116, 1)'],\n [6, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(116, 116, 116, 1)']\n ]\n },\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'country'], ['<=', 'rank', 2]]\n },\n {\n 'id': 'place_state',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 5,\n 'maxzoom': 10,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [5, 12],\n [7, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-max-width': 9,\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgb(116, 119, 122)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(216, 238, 215)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'state'], ['<=', 'rank', 4]]\n },\n {\n 'id': 'place_continent',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 0,\n 'maxzoom': 2,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': 14,\n 'text-field': '{name_en}',\n 'text-justify': 'center',\n 'text-max-width': 9,\n 'text-transform': 'uppercase',\n 'text-keep-upright': false,\n 'text-letter-spacing': 0.1\n },\n 'paint': {\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'continent']]\n },\n {\n 'id': 'place_city_r6',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 15,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 12],\n [9, 13],\n [10, 14],\n [13, 17],\n [14, 20]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(217, 217, 217, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(36, 36, 36, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['>=', 'rank', 6]]\n },\n {\n 'id': 'place_city_r5',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 15,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 14],\n [10, 16],\n [13, 19],\n [14, 22]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['>=', 'rank', 0], ['<=', 'rank', 5]]\n },\n {\n 'id': 'place_city_dot_r7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 6,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(193, 193, 193, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 7]]\n },\n {\n 'id': 'place_city_dot_r4',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 5,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(196, 200, 204, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 4]]\n },\n {\n 'id': 'place_city_dot_r2',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 4,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(196, 200, 204, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 2]]\n },\n {\n 'id': 'place_city_dot_z7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 7,\n 'maxzoom': 8,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(34, 34, 34, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['!has', 'capital'], ['!in', 'class', 'country', 'state']]\n },\n {\n 'id': 'place_capital_dot_z7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 7,\n 'maxzoom': 8,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(201, 201, 201, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(30, 30, 30, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['>', 'capital', 0]]\n },\n {\n 'id': 'poi_stadium',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'poi',\n 'minzoom': 15,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [15, 8],\n [17, 9],\n [18, 10]\n ]\n },\n 'text-field': '{name}',\n 'text-transform': 'uppercase'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(48, 48, 48)' : 'rgb(82, 82, 82)',\n 'text-halo-color': dark ? 'rgba(201, 201, 201, 0.15)' : 'rgba(234, 234, 234, 0.15)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'stadium', 'cemetery', 'attraction'], ['<=', 'rank', 3]]\n },\n {\n 'id': 'poi_park',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'poi',\n 'minzoom': 15,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [15, 8],\n [17, 9],\n [18, 10]\n ]\n },\n 'text-field': '{name}',\n 'text-transform': 'uppercase'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(193, 242, 214, 1)' : 'rgb(82, 82, 82)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 0.5)' : 'rgba(234, 234, 234, 0.15)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'park']]\n },\n {\n 'id': 'roadname_minor',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 16,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': 9,\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': 200,\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(255, 255, 255, 1)' : 'rgba(73, 73, 53, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'minor', 'service']]\n },\n {\n 'id': 'roadname_sec',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 15,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [15, 9],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': 200,\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(255, 255, 255, 1)' : 'rgba(90, 92, 71, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary']]\n },\n {\n 'id': 'roadname_pri',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 14,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [14, 10],\n [15, 10],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': {\n 'stops': [\n [6, 200],\n [16, 250]\n ]\n },\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': {\n 'stops': [\n [14, 0],\n [16, 0.2]\n ]\n },\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)',\n 'text-halo-color': dark ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'primary']]\n },\n {\n 'id': 'roadname_major',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 13,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [14, 10],\n [15, 10],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': {\n 'stops': [\n [6, 200],\n [16, 250]\n ]\n },\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': {\n 'stops': [\n [13, 0],\n [16, 0.2]\n ]\n },\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)',\n 'text-halo-color': dark ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'trunk', 'motorway']]\n },\n {\n 'id': 'housenumber',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'housenumber',\n 'minzoom': 17,\n 'maxzoom': 24,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [17, 9],\n [18, 11]\n ]\n },\n 'text-field': '{housenumber}'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(69, 158, 124)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-color': dark ? 'rgba(201, 201, 201, 0.15)' : 'rgba(0, 0, 0, 0.15)',\n 'text-halo-width': 0.75\n }\n }\n ],\n 'metadata': {\n 'maptiler:copyright':\n 'This style was generated on MapTiler Cloud. Usage outside of MapTiler Cloud or MapTiler Server requires valid MapTiler Data package: https://www.maptiler.com/data/ -- please contact us.'\n },\n 'glyphs': `https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key=${key}`,\n 'sprite': 'https://api.maptiler.com/maps/17edd8b7-a153-4528-b076-32743671d394/sprite',\n 'bearing': 0,\n 'pitch': 0,\n 'center': [8.611423932402658, 46.76324669153797],\n 'zoom': 6.680213932099212\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n model,\n NgZone,\n OnChanges,\n OnDestroy,\n output,\n SimpleChanges,\n Type,\n viewChild\n} from '@angular/core';\nimport {\n SiNoTranslateService,\n SiTranslateServiceBuilder,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { apply as applyMapboxStyle } from 'ol-mapbox-style';\nimport Control from 'ol/control/Control';\nimport { defaults as defaultControls } from 'ol/control/defaults';\nimport { Coordinate } from 'ol/coordinate';\nimport * as olExtent from 'ol/extent';\nimport Feature, { FeatureLike } from 'ol/Feature';\nimport GeoJSON from 'ol/format/GeoJSON';\nimport Geometry from 'ol/geom/Geometry';\nimport Point from 'ol/geom/Point';\nimport Layer from 'ol/layer/Layer';\nimport VectorLayer from 'ol/layer/Vector';\nimport Map from 'ol/Map';\nimport MapBrowserEvent from 'ol/MapBrowserEvent';\nimport Overlay, { Positioning } from 'ol/Overlay';\nimport RenderFeature from 'ol/render/Feature';\nimport Cluster from 'ol/source/Cluster';\nimport VectorSource from 'ol/source/Vector';\nimport { StyleLike } from 'ol/style/Style';\nimport View from 'ol/View';\n\nimport { SiMapPopoverComponent } from './components/si-map-popover/si-map-popover.component';\nimport { SiMapTooltipComponent } from './components/si-map-tooltip/si-map-tooltip.component';\nimport { ColorPalette } from './models/color-palette.type';\nimport {\n ANIMATION_DURATION,\n DEFAULT_CLUSTER_CLICK_ZOOM,\n DEFAULT_CLUSTER_DISTANCE,\n DEFAULT_FEATURE_CLICK_ZOOM,\n DEFAULT_FEATURE_SELECT_ZOOM,\n DEFAULT_GLOBAL_ZOOM,\n GEOJSON_LAYER,\n LAYER_NAME,\n POINTS_LAYER\n} from './models/constants';\nimport { MapPoint, MapPointMetaData } from './models/map-point.interface';\nimport { OverlayNativeProperties } from './models/overlay-native-properties.interface';\nimport { MapService } from './services/map.service';\nimport { SelectCluster } from './services/SelectCluster';\nimport { styleJson } from './shared/themes/style';\n\ninterface ClusterHolder {\n feature?: Feature;\n}\n\n@Component({\n selector: 'si-map',\n\n imports: [SiMapTooltipComponent, SiMapPopoverComponent],\n templateUrl: './si-map.component.html',\n styleUrl: './si-map.component.scss',\n providers: [MapService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiMapComponent implements AfterViewInit, OnChanges, OnDestroy, AfterViewChecked {\n /**\n * Points to be rendered on the map as features.\n */\n readonly points = model<MapPoint[]>();\n /**\n * Payload of a geo-JSON object.\n */\n readonly geoJson = input<any>();\n /**\n * Callback function to add custom styling to the drawn geo-JSON features.\n */\n readonly styleFunction = input<StyleLike>();\n /**\n * Projection format used to render the geo-JSON payload.\n *\n * @defaultValue 'EPSG:3857'\n */\n readonly geoJsonProjection = input('EPSG:3857');\n /**\n * Enable or disable animation of markers.\n *\n * @defaultValue false\n */\n readonly markerAnimation = input(false);\n /**\n * Enable or disable clustering of points on the map.\n *\n * @defaultValue false\n */\n readonly cluster = input(false);\n /**\n * Defines which colors should be used when points are grouped. Grouping means\n * that points are painted with their group color and they are displayed as\n * series in donut chart inside cluster.\n *\n * @defaultValue 'status'\n */\n readonly groupColors = input<Record<number, string> | ColorPalette>('status');\n /**\n * - **overlay**: Layer for popup element, an element to be displayed over the\n * map and attached to a single map location.\n * - **controls**: List of controls to activate for map, additional controls\n * like full screen, etc. can be added here.\n */\n readonly nativeProperties = input<OverlayNativeProperties>();\n /**\n * Type of background map, for example `'https://api.maptiler.com/maps/voyager/style.json?key=xxx'`\n * (Token key is required). The styleJson defines the tiler source and the\n * used styles for different layers, should only be used if the siemens\n * default styles by using `maptilerKey` isn't good enough.\n */\n readonly styleJson = input<any>();\n /**\n * Option to switch on/off the display of tooltip while hovering over single\n * point.\n *\n * @defaultValue false\n */\n readonly displayTooltipOnHover = input(false);\n /**\n * Option to switch on/off the display of popover when clicked.\n * Default set to true (on).\n *\n * @defaultValue true\n */\n readonly displayPopoverOnClick = input(true);\n\n /**\n * Option to switch on/off popover when hovered.\n * Default is set to false (off)\n *\n * @defaultValue false\n */\n readonly displayPopoverOnHover = input(false);\n\n /**\n * Provide your key for MapTiler, this will use the default siemens element\n * styles which can be used in both light and dark mode. Shouldn't be used\n * together with styleJson.\n */\n readonly maptilerKey = input<string>();\n /**\n * Option to switch on/off the display of tooltip while hovering over cluster.\n *\n * @defaultValue false\n */\n readonly displayTooltipOnClusterHover = input(false);\n /**\n * Defines range in which points are clustered. In pixels.\n *\n * @defaultValue DEFAULT_CLUSTER_DISTANCE\n */\n readonly clusterDistance = input<number>(DEFAULT_CLUSTER_DISTANCE);\n /**\n * Zoom level when calling the `select()` method on the component.\n * Defaults to 10.\n *\n * @defaultValue DEFAULT_FEATURE_SELECT_ZOOM\n */\n readonly featureSelectZoom = input<number>(DEFAULT_FEATURE_SELECT_ZOOM);\n /**\n * Max zoom level which is used when clicking on feature on the map.\n * Defaults to 15.\n *\n * @defaultValue DEFAULT_FEATURE_CLICK_ZOOM\n */\n readonly featureClickZoom = input<number>(DEFAULT_FEATURE_CLICK_ZOOM);\n /**\n * Max zoom level for clicking on a cluster on the map. Defaults to 15.\n *\n * @defaultValue DEFAULT_CLUSTER_CLICK_ZOOM\n */\n readonly clusterClickZoom = input<number>(DEFAULT_CLUSTER_CLICK_ZOOM);\n /**\n * Max zoom level on load or when clicking the reset button. Defaults to 5.\n *\n * @defaultValue DEFAULT_GLOBAL_ZOOM\n */\n readonly globalZoom = input<number>(DEFAULT_GLOBAL_ZOOM);\n /**\n * When enabled, features will be automatically zoom to on click.\n *\n * @defaultValue false\n */\n readonly autoZoomFeatureClick = input(false);\n /**\n * When disabled, clusters will no longer automatically be zoomed to on click.\n *\n * @defaultValue true\n */\n readonly autoZoomClusterClick = input(true);\n /**\n * Custom popover component\n */\n readonly popoverComponent = input<Type<any>>();\n\n /**\n * Custom popover component for clustering\n */\n readonly clusterPopoverComponent = input<Type<any>>();\n /**\n * Custom popover component\n */\n readonly popoverComponentProps = input<any>();\n /**\n * Close the popover on click\n *\n * @defaultValue true\n */\n readonly popoverCloseOnClick = input(true);\n\n /**\n * Padding (in pixels) applied to the map view when zooming to a cluster, preventing points from being clipped at the edges.\n * Specified as [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitClusterPadding = input<[number, number, number, number]>([20, 20, 20, 20]);\n /**\n * For Point geometry, padding (in pixels) to be cleared to fit the point inside the view after a click on it.\n * Values in the array are: [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitPointPadding = input<number[]>([20, 20, 20, 20]);\n /**\n * For GeoJson, padding (in pixels) to be cleared to fit the GeoJson inside the view after a click on it.\n * Values in the array are: [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitGeoJsonPadding = input<number[]>([20, 20, 20, 20]);\n /**\n * Cutoff text for tooltips, when cluster combines more than 4 features\n *\n * @deprecated Use `SiMapTooltipComponent` instead to set the `moreText` input e.g. `<si-map ...><si-map-tooltip [moreText]=\"'KEY_MORE'\" /></si-map>`.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n * ```\n */\n readonly moreText = input(\n t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n );\n /**\n * Show multiple worlds, including points that cross the 180th meridian.\n *\n * @defaultValue true\n */\n readonly multiWorld = input(true);\n /**\n * Show the label permanently next to the point.\n * Normally the label is shown on hover or click.\n * By enabling this it will always be visible next to the marker.\n *\n * @defaultValue false\n */\n readonly alwaysShowLabels = input(false);\n /**\n * Maximum number of characters per line for always displayed labels of a point.\n * If the label exceeds this limit, it will be wrapped or trimmed.\n * If set to 0, label trimming will be disabled.\n * This setting is effective only when {@link alwaysShowLabels} is enabled.\n * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.\n *\n * @defaultValue 20\n */\n readonly maxLabelLineLength = input(20);\n /**\n * Maximum number of lines for always displayed labels of a point.\n * If the label exceeds this limit, it will be trimmed.\n * This setting is effective only when {@link alwaysShowLabels} is enabled and {@link maxLabelLineLength} is not 0.\n * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.\n *\n * @defaultValue 3\n */\n readonly maxLabelLines = input(3);\n /**\n * Emitted when points on the map are selected or de-selected\n */\n readonly pointsSelected = output<MapPoint[]>();\n /**\n * Emitted when the points are available as features. So consumers can call methods like `zoomToPoints()` on the actual point list.\n */\n readonly pointsRefreshed = output<void>();\n\n protected readonly popover = viewChild.required(SiMapPopoverComponent);\n protected readonly popoverElement = viewChild.required<ElementRef, ElementRef>('popover', {\n read: ElementRef\n });\n protected readonly defaultTooltip = viewChild(SiMapTooltipComponent);\n protected readonly projectedTooltip = contentChild(SiMapTooltipComponent);\n protected readonly tooltip = computed(() => this.projectedTooltip() ?? this.defaultTooltip()!);\n protected readonly mapReference = viewChild.required<ElementRef<HTMLElement>>('map');\n /** OpenLayers map instance. */\n map?: Map;\n\n tooltipOverlay!: Overlay;\n popoverOverlay!: Overlay;\n /** @defaultValue false */\n isClicked = false;\n /** @defaultValue [] */\n features: Feature[] = [];\n selected?: Feature;\n targetFeature?: Feature;\n protected attributionsLabel = t(() => $localize`:@@SI_MAPS.ATTRIBUTIONS_BUTTON:Attributions`);\n protected zoomInLabel = t(() => $localize`:@@SI_MAPS.ZOOM_IN_BUTTON:Zoom in`);\n protected zoomOutLabel = t(() => $localize`:@@SI_MAPS.ZOOM_OUT_BUTTON:Zoom out`);\n protected zoomToDefaultLabel = t(\n () => $localize`:@@SI_MAPS.ZOOM_TO_DEFAULT_BUTTON:Zoom to default view`\n );\n protected clusterInteraction?: SelectCluster;\n private selectedCluster?: Feature;\n private darkTheme: boolean | undefined = undefined;\n\n private readonly mapService = inject(MapService);\n private readonly ngZone = inject(NgZone);\n // We cannot use new inject function, as it may not be available in older translate version.\n // Older version could potentially be used in mobile.\n private readonly translateService =\n inject(SiTranslateServiceBuilder, { optional: true })?.buildService(inject(Injector)) ??\n inject(SiNoTranslateService);\n\n constructor() {\n const translations = this.translateService.translateSync([\n this.attributionsLabel,\n this.zoomInLabel,\n this.zoomOutLabel,\n this.zoomToDefaultLabel\n ]);\n this.attributionsLabel = translations[this.attributionsLabel];\n this.zoomInLabel = translations[this.zoomInLabel];\n this.zoomOutLabel = translations[this.zoomOutLabel];\n this.zoomToDefaultLabel = translations[this.zoomToDefaultLabel];\n }\n // this is to filter out non-data layers for performance of `forEachFeatureAtPixel()`\n private layerFilter = (layer: Layer<any>): boolean => {\n const name = layer.get(LAYER_NAME);\n return name === POINTS_LAYER || name === GEOJSON_LAYER;\n };\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (!this.map) {\n return;\n }\n\n if (changes.groupColors) {\n this.mapService.setTheme(this.groupColors());\n // refresh the style of points-layer to reflect the color changes.\n this.refreshLayersStyle([POINTS_LAYER]);\n }\n\n if (changes.points) {\n this.refresh(this.points() ?? [], false);\n }\n\n if (changes.geoJson || changes.styleFunction) {\n const geojsonLayer = this.map\n .getLayers()\n .getArray()\n .find(layer => layer.get(LAYER_NAME) === GEOJSON_LAYER) as VectorLayer<VectorSource>;\n if (geojsonLayer) {\n if (changes.geoJson) {\n // If geojson-layer is already present and there is change in geojson,\n // update the features of geojson-layer with the latest geojson.\n const geoJson = this.geoJson();\n const features =\n geoJson && Object.keys(geoJson).length\n ? new GeoJSON({ featureProjection: this.geoJsonProjection() }).readFeatures(geoJson)\n : [];\n this.ngZone.runOutsideAngular(() =>\n geojsonLayer.setSource(new VectorSource({ features }))\n );\n }\n if (changes.styleFunction) {\n // If there is some change in styleFunction, update the style of geojson-layer.\n this.ngZone.runOutsideAngular(() => geojsonLayer.setStyle(this.styleFunction()));\n }\n } else {\n // If geojson-layer is not present, and change is detected in geojson or styleFunction,\n // create a new geojson-layer.\n this.ngZone.runOutsideAngular(() => this.setGeoJsonLayer());\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.init();\n this.map?.on('pointermove', event => this.onFeatureHover(event));\n this.map?.on('click', event => this.onClusterClick(event));\n });\n\n const dark = document.documentElement.classList.contains('app--dark');\n this.setTheme(dark, this.maptilerKey());\n\n setTimeout(() => this.fixCenter());\n }\n\n ngAfterViewChecked(): void {\n // making sure that if the map is not rendered updateSize() gets called\n // this is to make sure the map also gets rendered in ionic\n if (this.map && !this.map.isRendered()) {\n this.ngZone.runOutsideAngular(() => this.map!.updateSize());\n }\n }\n\n ngOnDestroy(): void {\n this.removePixelRatioListener();\n this.map?.setTarget(undefined);\n }\n\n @HostListener('window:theme-switch', ['$event'])\n onThemeSwitchInternal(event: Event): void {\n this.setTheme((event as CustomEvent).detail.dark, this.maptilerKey());\n }\n\n onThemeSwitch(dark: boolean): void {\n this.setTheme(dark, this.maptilerKey());\n }\n\n private removePixelRatioListener = (): void => {};\n\n private readonly updatePixelRatio = (): void => {\n // on browser zoom the pixel ratio changes. No other updates are needed as OL has a\n if (this.map && window.devicePixelRatio !== (this.map as any).pixelRatio_) {\n this.ngZone.runOutsideAngular(() => this.changeOpenLayerPixelRation());\n }\n\n this.removePixelRatioListener();\n const media = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);\n media.addEventListener('change', this.updatePixelRatio);\n this.removePixelRatioListener = () =>\n media.removeEventListener('change', this.updatePixelRatio);\n };\n\n /**\n * Changes the pixel ration in OL which is not supported directly by OL.\n */\n private changeOpenLayerPixelRation(): void {\n if (!this.map) {\n return;\n }\n\n // need to reset cached styles as they contain pre-rendered canvases\n this.mapService.resetCaches();\n\n // set private property\n (this.map as any).pixelRatio_ = devicePixelRatio;\n\n // force redraw of all layers\n this.map!.getLayers().forEach(layer => {\n if (layer instanceof Layer) {\n const source = layer.getSource();\n if (source?.tilePixelRatio_ !== undefined) {\n source.tilePixelRatio_ = devicePixelRatio;\n source.refresh();\n }\n if (source instanceof Cluster) {\n source.getSource()?.changed();\n } else {\n source?.changed();\n }\n layer.changed();\n }\n });\n this.map.updateSize();\n }\n\n /**\n * Initialize map and it's layers\n */\n init(): void {\n const tooltipContainer = this.tooltip().nativeElement;\n const popoverContainer = this.popoverElement().nativeElement;\n const mapContainer = this.mapReference().nativeElement;\n const initialView = {\n constrainResolution: true,\n showFullExtent: true,\n center: [0, 0],\n zoom: 2,\n minZoom: 2,\n maxZoom: 24\n };\n\n this.tooltipOverlay = this.createOverlay(\n tooltipContainer,\n 'top-center',\n this.nativeProperties(),\n true\n );\n this.popoverOverlay = this.createOverlay(\n popoverContainer,\n 'top-center',\n this.nativeProperties()\n );\n\n const controls = defaultControls({\n attributionOptions: {\n label: '',\n tipLabel: this.attributionsLabel,\n expandClassName: 'element-state-info',\n collapseLabel: '',\n collapseClassName: 'element-left-2 flip-rtl'\n },\n zoomOptions: {\n zoomInLabel: '',\n zoomInTipLabel: this.zoomInLabel,\n zoomInClassName: 'element-plus',\n zoomOutLabel: '',\n zoomOutTipLabel: this.zoomOutLabel,\n zoomOutClassName: 'element-minus'\n },\n rotateOptions: {\n label: '',\n compassClassName: 'element-compass-needle'\n }\n });\n\n class ResetZoomControl extends Control {\n constructor(options: { label: string; callback: () => void }) {\n const button = document.createElement('button');\n button.className = 'element-zoom-reset';\n button.title = options.label;\n\n const element = document.createElement('div');\n element.className = 'ol-zoom-extent ol-unselectable ol-control';\n element.appendChild(button);\n\n super({ element: element });\n\n button.addEventListener('click', options.callback, false);\n }\n }\n\n controls.push(\n new ResetZoomControl({\n label: this.zoomToDefaultLabel,\n callback: () => {\n if (this.features.length) {\n this.zoomToFeatures(this.features, this.globalZoom());\n } else {\n // reset to original view\n this.map?.setView(new View(initialView));\n }\n }\n })\n );\n\n const nativeProperties = this.nativeProperties();\n if (nativeProperties?.controls) {\n nativeProperties.controls.forEach(e => controls.push(e));\n }\n\n this.map = new Map({\n controls,\n target: mapContainer,\n overlays: [this.tooltipOverlay, this.popoverOverlay],\n view: new View(initialView)\n });\n\n this.mapService.setZoomCallback(() => this.map?.getView().getZoom());\n\n this.mapService.setTheme(this.groupColors()); // Set theme before adding layers.\n\n const styleJsonValue = this.styleJson();\n if (styleJsonValue) {\n this.setMapStyle(undefined, undefined, styleJsonValue);\n }\n\n this.setGeoJsonLayer();\n\n const points = this.points();\n if (points?.length) {\n this.features = this.mapService.createFeatures(points, this.alwaysShowLabels());\n }\n this.setLayers();\n this.zoomToFeatures(this.features, this.globalZoom(), false);\n\n this.updatePixelRatio();\n }\n\n private centerValid(): boolean {\n const center = this.map?.getView()?.getCenter();\n return !!center && !isNaN(center[0]);\n }\n\n // workaround for center not being applied sometimes\n private fixCenter(): void {\n if (!this.centerValid()) {\n this.ngZone.runOutsideAngular(() => this.map?.getView()?.setCenter([0, 0]));\n }\n }\n\n /**\n * Setting up the layers for the map (cluster/vector layer)\n */\n private setLayers(): void {\n let layer: Layer;\n let labelLayer: Layer | undefined;\n const showLabels = this.features.some(feature => feature.getProperties().label?.text);\n if (this.cluster()) {\n const clusterLayer = this.mapService.clusterLayer(\n this.features,\n this.markerAnimation(),\n this.clusterDistance(),\n this.multiWorld()\n );\n\n this.clusterInteraction = new SelectCluster({\n maxZoom: this.featureClickZoom,\n zoomOnClick: this.autoZoomClusterClick,\n fitClusterPadding: this.fitClusterPadding,\n // Style the selection\n style: (feature: FeatureLike) => this.mapService.getClusterStyle(feature as Feature)\n });\n this.map?.addInteraction(this.clusterInteraction);\n\n if (showLabels) {\n labelLayer = this.mapService.labelLayer(\n this.features,\n this.multiWorld(),\n this.maxLabelLineLength(),\n this.maxLabelLines(),\n clusterLayer\n );\n }\n layer = clusterLayer;\n } else {\n layer = this.mapService.vectorLayer(this.features, this.multiWorld());\n if (showLabels) {\n labelLayer = this.mapService.labelLayer(\n this.features,\n this.multiWorld(),\n this.maxLabelLineLength(),\n this.maxLabelLines()\n );\n }\n }\n layer.set(LAYER_NAME, POINTS_LAYER);\n\n this.map?.addLayer(layer);\n if (labelLayer) {\n this.map?.addLayer(labelLayer);\n }\n }\n\n /**\n * Setting up the geoJson layer\n */\n setGeoJsonLayer(): void {\n const geoJson = this.geoJson();\n if (this.map && geoJson && Object.keys(geoJson).length > 0) {\n const layer = this.mapService.vectorLayer(\n new GeoJSON({ featureProjection: this.geoJsonProjection() }).readFeatures(geoJson),\n this.multiWorld()\n );\n layer.setStyle(this.styleFunction());\n layer.set(LAYER_NAME, GEOJSON_LAYER);\n this.ngZone.runOutsideAngular(() => this.map!.addLayer(layer));\n }\n }\n\n private setTheme(dark: boolean, maptilerKey?: string): void {\n if (maptilerKey && (this.darkTheme === undefined || this.darkTheme !== dark)) {\n this.setMapStyle(dark, maptilerKey);\n this.darkTheme = dark;\n }\n this.mapService.setTheme(this.groupColors());\n // reload the style to reflect the theme changes.\n this.refreshLayersStyle([POINTS_LAYER, GEOJSON_LAYER]);\n }\n\n private refreshLayersStyle(layerNames: string[]): void {\n this.ngZone.runOutsideAngular(() =>\n this.map\n ?.getLayers()\n .getArray()\n .forEach(layer => {\n if (layerNames.includes(layer.get(LAYER_NAME))) {\n (layer as VectorLayer<VectorSource>).setStyle(\n (layer as VectorLayer<VectorSource>).getStyle()\n );\n }\n })\n );\n }\n\n /**\n * Set Map style\n * @param dark - boolean if dark theme should be active or not\n * @param key - the api key for the maptiler styleJSON\n * @param styleJSON - a preexisting styleJSON as url with key already provided\n */\n setMapStyle(dark?: boolean, key?: string, styleJSON?: string): void {\n if (!this.map) {\n return;\n }\n\n if (styleJSON) {\n this.ngZone.runOutsideAngular(() => applyMapboxStyle(this.map!, styleJSON));\n } else if (key) {\n const layers = this.map.getLayers().getArray() as Layer[];\n layers.forEach((layer: Layer) => {\n if (layer.get('mapbox-source')) {\n this.map!.removeLayer(layer);\n }\n });\n this.mapboxStyles(styleJson(key, dark));\n }\n }\n\n /**\n * Set mapbox styles\n * @param styleJSON - the styleJSON as a JSON object\n */\n mapboxStyles(styleJSON: any): void {\n if (!this.map) {\n return;\n }\n this.ngZone.runOutsideAngular(() =>\n applyMapboxStyle(this.map!, styleJSON).then(mapOrLayer => {\n const map = mapOrLayer as Map;\n const layers = map.getLayers().getArray() as Layer[];\n layers.forEach((layer: Layer) => {\n if (layer.get('mapbox-source')) {\n // any needs to be used here otherwise library doesn't allow it\n (layer.getSource() as any).wrapX_ = this.multiWorld();\n this.map = map;\n }\n });\n })\n );\n }\n\n /**\n * Create overlay for tooltip and popover\n * @param nativeProperties - native properties\n * @param container - to create overlay in\n * @param position - overlay positioning\n */\n createOverlay(\n container: HTMLElement,\n position: Positioning,\n nativeProperties?: OverlayNativeProperties,\n isTooltip?: boolean\n ): Overlay {\n return (\n nativeProperties?.overlay ??\n new Overlay({\n element: container,\n positioning: position,\n // Stop event bubbling which allow to scroll in the popover\n stopEvent: true,\n autoPan: isTooltip ? true : false\n })\n );\n }\n\n /**\n * On feature hovering show tooltip and change cursor style\n * @param event - A hovering event\n */\n onFeatureHover(event: MapBrowserEvent): void {\n if (!this.map) {\n return;\n }\n\n const clusterHolder: ClusterHolder = {};\n const features = this.map.forEachFeatureAtPixel(\n event.pixel,\n feat => this.featureCallback(feat, clusterHolder),\n {\n hitTolerance: 2,\n layerFilter: this.layerFilter\n }\n );\n\n const element = this.map.getTargetElement();\n if (element) {\n // The cursor will change to pointer if displayPopoverOnClick is true or if Cluster Features are hovered.\n element.style.cursor =\n features?.length && (this.displayPopoverOnClick() || features.length > 1) ? 'pointer' : '';\n // The popover will be shown only for individual points, not for cluster.\n if (this.displayPopoverOnHover() && !this.isClicked) {\n if (features?.length === 1) {\n this.setPopOver(features[0], false, event);\n } else {\n this.popoverOverlay.setPosition(undefined);\n }\n return;\n }\n }\n\n this.doShowTooltip(features, clusterHolder.feature);\n }\n\n /** Display tooltip on hovering over feature type of Feature. */\n displayTooltip(feats: FeatureLike[]): void {\n if (!this.displayTooltipOnHover() || this.isClicked) {\n return;\n }\n for (const feat of feats) {\n const features = this.featureCallback(feat);\n if (features?.length === 1) {\n this.showTooltipContent(features[0]);\n return;\n }\n }\n }\n\n private doShowTooltip(features?: Feature[], cluster?: Feature): void {\n let shown = false;\n if (!this.isClicked && features?.length) {\n if (this.displayTooltipOnHover() && features?.length === 1) {\n shown = this.showTooltipContent(features[0]);\n } else if (this.selectedCluster !== cluster && this.displayTooltipOnClusterHover()) {\n shown = this.showClusterTooltipContent(features, cluster);\n }\n }\n if (!shown) {\n this.tooltipOverlay.setPosition(undefined);\n }\n }\n\n /**\n * Clicking on cluster event\n * @param event - openlayers event\n */\n onClusterClick(event: MapBrowserEvent): void {\n if (!this.map) {\n return;\n }\n if (!this.popoverCloseOnClick() && this.popoverElement()) {\n const popoverLoc = (\n this.popoverElement().nativeElement as HTMLElement\n ).firstElementChild!.getBoundingClientRect();\n const mapLoc = (this.mapReference().nativeElement as HTMLElement).getBoundingClientRect();\n const left = popoverLoc.left - mapLoc.left;\n const top = popoverLoc.top - mapLoc.top;\n const right = popoverLoc.right - mapLoc.left;\n const bottom = popoverLoc.bottom - mapLoc.top;\n if (\n left <= event.pixel[0] &&\n event.pixel[0] <= right &&\n top <= event.pixel[1] &&\n event.pixel[1] <= bottom\n ) {\n return;\n }\n }\n const clusterHolder: ClusterHolder = {};\n const clusterFeatures = this.map.forEachFeatureAtPixel(\n event.pixel,\n feat => this.featureCallback(feat, clusterHolder),\n {\n layerFilter: this.layerFilter\n }\n );\n if (clusterFeatures) {\n if (clusterFeatures.length > 1) {\n this.tooltipOverlay.setPosition(undefined);\n this.showClusterPopover(clusterHolder.feature!);\n this.emitSelection(clusterFeatures);\n } else if (clusterFeatures.length === 1) {\n if (clusterFeatures[0] instanceof RenderFeature) {\n this.closePopup();\n this.emitSelection();\n } else if (this.displayPopoverOnClick()) {\n this.featureClick(clusterFeatures[0], event, this.autoZoomFeatureClick());\n this.emitSelection(clusterFeatures);\n }\n }\n } else {\n this.closePopup();\n this.emitSelection();\n }\n }\n\n private emitSelection(features?: Feature[]): void {\n const points: MapPoint[] = (features ?? []).map(f => {\n const props = f.getProperties();\n return props.meta ?? (props as MapPoint);\n });\n this.ngZone.run(() => this.pointsSelected.emit(points));\n }\n\n /**\n * Zoom to cluster features\n * @param clusterFeatures - features to zoom in\n */\n zoomCluster(clusterFeatures: Feature[]): void {\n this.clusterInteraction?.zoomToCluster(clusterFeatures);\n }\n\n /**\n * Close popup\n */\n closePopup(): boolean {\n this.selectedCluster = undefined;\n this.popoverOverlay.setPosition(undefined);\n this.isClicked = false;\n return false;\n }\n\n /**\n * Return features inside feature object in case of cluster enabled/disabled\n * @param feat - feature to get features from\n */\n featureCallback(feat: FeatureLike, clusterHolder?: ClusterHolder): Feature[] | undefined {\n if (feat instanceof Feature) {\n const propFeatures = feat.getProperties().features;\n if (this.cluster() && propFeatures) {\n if (clusterHolder) {\n clusterHolder.feature = feat;\n }\n return propFeatures;\n }\n return [feat];\n }\n return undefined;\n }\n\n /**\n * Zoom to features, gets coordinates of points and creates bounding extent\n * @param points - list of points to zoom in, if empty all points will be zoomed to, need to be the same reference as the input\n * @param zoomLevel - number for level to zoom in\n */\n zoomToPoints(points: MapPoint[], zoomLevel: number, shouldAnimate = true): void {\n if (!points.length) {\n this.zoomToFeatures([], zoomLevel, shouldAnimate);\n } else {\n const features = points\n .map(point => this.points()?.indexOf(point))\n .filter(index => index !== undefined)\n .map(index => this.features[index]);\n this.zoomToFeatures(features, zoomLevel, shouldAnimate);\n }\n }\n\n /**\n * Zoom to features, gets coordinates of features and creates bounding extent\n * @param features - list of features to zoom in, if empty all features will be zoomed to\n * @param zoomLevel - number for level to zoom in\n */\n zoomToFeatures(features: Feature[], zoomLevel: number, shouldAnimate = true): void {\n if (!features.length) {\n features = this.features;\n }\n const coordinates: Coordinate[] = [];\n for (const f of features) {\n const coordinate = this.getFeatureCoordinate(f);\n if (coordinate) {\n coordinates.push(coordinate);\n }\n }\n this.zoomToCoordinates(coordinates, zoomLevel, shouldAnimate, this.fitPointPadding());\n }\n\n /**\n * Zoom to GeoJson using coordinates of point of click\n * @param coordinate - coordinates of point of click\n * @param zoomLevel - number for level to zoom in\n */\n zoomToGeoJson(coordinate: Coordinate, zoomLevel: number, shouldAnimate = true): void {\n this.zoomToCoordinates([coordinate], zoomLevel, shouldAnimate, this.fitGeoJsonPadding());\n }\n\n private zoomToCoordinates(\n coordinates: Coordinate[],\n maxZoom: number,\n animate = true,\n padding?: number[]\n ): void {\n this.ngZone.runOutsideAngular(() => {\n if (this.map && coordinates.length) {\n const view = this.map.getView();\n view.fit(olExtent.boundingExtent(coordinates), {\n duration: animate && this.centerValid() ? ANIMATION_DURATION : undefined,\n maxZoom,\n padding\n });\n }\n });\n }\n\n /**\n * Refresh points with new set of points\n * @param points - to refresh with\n */\n refresh(points: MapPoint[], zoomToFeatures = true): void {\n this.points.set(points);\n this.ngZone.runOutsideAngular(() => this.doRefresh(points, zoomToFeatures));\n }\n\n private doRefresh(points: MapPoint[], zoomToFeatures: boolean): void {\n if (!this.map) {\n return;\n }\n\n this.mapService.resetCaches();\n\n this.isClicked = false;\n this.clear();\n\n const layers = this.map.getLayers().getArray() as Layer[];\n this.features = this.mapService.createFeatures(points, this.alwaysShowLabels());\n\n layers.forEach((layer: Layer) => {\n const source = layer.getSource();\n\n if (source instanceof Cluster && this.cluster()) {\n const vectorSource = source.getSource();\n vectorSource?.addFeatures(this.features);\n } else if (source instanceof VectorSource) {\n source.addFeatures(this.features);\n }\n });\n\n if (zoomToFeatures) {\n this.zoomToFeatures([], this.globalZoom());\n }\n // Emit change event to notify consumers that the actual features are available.\n // This is necessary to call methods like `zoomToPoints()`\n this.ngZone.run(() => this.pointsRefreshed.emit());\n }\n\n clear(): void {\n this.ngZone.runOutsideAngular(() => this.doClear());\n }\n\n private doClear(): void {\n if (!this.map) {\n return;\n }\n\n this.mapService.resetCaches();\n\n this.hideOverlays();\n const layers = this.map.getLayers().getArray() as Layer[];\n\n layers.forEach((layer: Layer) => {\n const source = layer.getSource();\n\n if (source instanceof Cluster && this.cluster()) {\n const vectorSource = source.getSource();\n vectorSource?.clear();\n }\n\n if (source instanceof VectorSource) {\n source.clear();\n }\n });\n }\n\n /**\n * Selecting the certain point on map with API\n * @param point - which select\n */\n select(point: MapPoint, maxZoomLevel?: number): void {\n this.ngZone.runOutsideAngular(() => this.doSelect(point, maxZoomLevel));\n }\n\n private doSelect(point: MapPoint, maxZoomLevel?: number): void {\n if (!this.map) {\n return;\n }\n\n const featPoint: Feature[] = this.mapService.createFeatures([point], this.alwaysShowLabels());\n const ext = featPoint[0]?.getGeometry()?.getExtent();\n\n if (ext) {\n const center = olExtent.getCenter(ext);\n this.map.setView(\n new View({\n center: [center[0], center[1]],\n zoom: maxZoomLevel ?? this.featureSelectZoom()\n })\n );\n this.featureClick(featPoint[0]);\n this.emitSelection(featPoint);\n }\n }\n\n /** API for feature clicking with extra properties. */\n featureClick(feature: Feature, event?: any, zoom?: boolean): void {\n this.targetFeature = feature;\n this.isClicked = true;\n this.tooltipOverlay.setPosition(undefined);\n\n this.setPopOver(feature, zoom, event);\n }\n\n private setPopOver(feature: Feature, zoom: boolean | undefined, event: any): void {\n const extraProperties = feature.getProperties().extraProps;\n const geometry = feature?.getGeometry();\n\n /*If a Point geometry is present on top of a GeoJson layer, and when clicked on the point,\n \"else if\" statement will prevent repetition of the popover render and zoom method.*/\n if (geometry && geometry instanceof Point) {\n if (zoom) {\n this.zoomToFeatures([feature], this.featureClickZoom());\n }\n const coordinates = geometry.getCoordinates();\n this.selected = feature;\n this.popoverOverlay.setPosition(coordinates);\n this.popoverOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.popover().render({\n component: this.popoverComponent(),\n mapPoints: feature.getProperties() as MapPointMetaData\n });\n if (extraProperties) {\n feature.getProperties().click?.(extraProperties);\n }\n } else if (this.geoJson()) {\n const coordinates = event.coordinate;\n this.popoverOverlay.setPosition(coordinates);\n this.popoverOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.popover().render({\n component: this.popoverComponent(),\n mapPoints: [feature.getProperties() as MapPointMetaData]\n });\n if (zoom) {\n this.zoomToGeoJson(coordinates, this.featureClickZoom());\n }\n }\n }\n\n /**\n * Show tooltip with content on hover over feature\n * @param feature - to show popup on\n */\n showTooltipContent(feature: Feature): boolean {\n const coordinates = this.getFeatureCoordinate(feature);\n if (coordinates) {\n this.tooltip().setTooltip(feature.getProperties().name as string);\n this.tooltipOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.tooltipOverlay.setPosition(coordinates);\n return true;\n }\n return false;\n }\n\n /** Sends data into cluster tooltip based on number of\n * @param features - in it\n * */\n showClusterTooltipContent(features: Feature[], cluster?: Feature): boolean {\n const coordinates =\n this.getFeatureCoordinate(cluster) ?? this.calculateClusterCoordinates(features);\n\n const labels = features.map(f => f.getProperties().name);\n this.tooltip().setTooltip(labels);\n\n this.tooltipOverlay.setOffset([0, 20]);\n this.tooltipOverlay.setPosition(coordinates);\n return true;\n }\n\n hideOverlays(): void {\n this.tooltipOverlay.setPosition(undefined);\n this.popoverOverlay.setPosition(undefined);\n }\n\n private getFeatureCoordinate(feature?: Feature): Coordinate | undefined {\n const geometry = feature?.getGeometry();\n if (geometry instanceof Point) {\n return geometry.getCoordinates();\n }\n return undefined;\n }\n\n /**\n * Calculates cluster center coordinates (lon, lat) for cluster tooltip positioning base on\n * @param features - (lon, lan)\n */\n private calculateClusterCoordinates(features: Feature[]): [number, number] {\n let lon = 0;\n let lat = 0;\n for (const feat of features) {\n const coordinates = this.getFeatureCoordinate(feat);\n if (coordinates) {\n lon += coordinates[0];\n lat += coordinates[1];\n }\n }\n return [lon / features.length, lat / features.length];\n }\n\n private showClusterPopover(cluster: Feature<Geometry>): void {\n if (!cluster) {\n this.popoverOverlay.setPosition(undefined);\n return;\n }\n // Only show cluster popover when auto zoom on cluster click is disabled or when the zoom level is sufficient.\n const zoom = this.map?.getView().getZoom();\n const show = !this.autoZoomClusterClick() || (zoom && zoom >= this.clusterClickZoom());\n if (!show) {\n return;\n }\n this.popoverOverlay.setOffset([0, 20]);\n this.popoverOverlay.setPosition(this.getFeatureCoordinate(cluster));\n const features = cluster.getProperties().features as Feature<Geometry>[];\n this.popover().render({\n component: this.clusterPopoverComponent(),\n mapPoints: features.map(f => f.getProperties() as MapPointMetaData),\n map: this.map\n });\n // Remember the selected cluster to avoid showing the a tooltip for cluster which has an open popover.\n this.selectedCluster = cluster;\n }\n}\n","<div #map class=\"map\"></div>\n<ng-content select=\"si-map-tooltip\">\n <si-map-tooltip [moreText]=\"moreText()\" />\n</ng-content>\n<si-map-popover #popover />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMapPopoverComponent } from './components/si-map-popover/si-map-popover.component';\nimport { SiMapTooltipComponent } from './components/si-map-tooltip/si-map-tooltip.component';\nimport { SiMapComponent } from './si-map.component';\n\n@NgModule({\n imports: [SiMapComponent, SiMapPopoverComponent, SiMapTooltipComponent],\n exports: [SiMapComponent]\n})\nexport class SiMapModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './components/index';\nexport * from './models/index';\nexport * from './services/map.service';\nexport * from './si-map.module';\nexport * from './si-map.component';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMapModule } from './components/si-map/index';\n\n@NgModule({\n exports: [SiMapModule]\n})\nexport class SiMapsNgModule {}\n\n/**\n * @deprecated Use {@link SiMapsNgModule} instead. The `Simpl` prefix is deprecated and will be removed in v51.\n */\nexport { SiMapsNgModule as SimplMapsNgModule };\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './components/si-map/index';\nexport * from '@siemens/maps-ng/translate';\nexport * from './public-api.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["createEmptyExtent","defaultControls","applyMapboxStyle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-maps-ng.mjs","sources":["../../../../projects/maps-ng/src/components/si-map/models/constants.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-tooltip/si-map-tooltip.component.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-tooltip/si-map-tooltip.component.html","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover-cluster-template.directive.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover-template.directive.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover.component.ts","../../../../projects/maps-ng/src/components/si-map/components/si-map-popover/si-map-popover.component.html","../../../../projects/maps-ng/src/components/si-map/components/index.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/element.ts","../../../../projects/maps-ng/src/components/si-map/models/grouping.model.ts","../../../../projects/maps-ng/src/components/si-map/models/index.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/marker.ts","../../../../projects/maps-ng/src/components/si-map/services/map.service.ts","../../../../projects/maps-ng/src/components/si-map/services/SelectCluster.ts","../../../../projects/maps-ng/src/components/si-map/shared/themes/style.ts","../../../../projects/maps-ng/src/components/si-map/si-map.component.ts","../../../../projects/maps-ng/src/components/si-map/si-map.component.html","../../../../projects/maps-ng/src/components/si-map/si-map.module.ts","../../../../projects/maps-ng/src/components/si-map/index.ts","../../../../projects/maps-ng/src/public-api.module.ts","../../../../projects/maps-ng/src/public-api.ts","../../../../projects/maps-ng/src/siemens-maps-ng.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const DEFAULT_STROKE_WEIGHT = 2;\nexport const DEFAULT_CLUSTER_TYPE = 'donut';\nexport const DEFAULT_DONUT_RATIO = 0.6;\nexport const ANIMATION_DURATION = 500;\nexport const DEFAULT_ICON = 'assets/default-marker-icon.svg';\nexport const DEFAULT_ICON_SCALE = 1;\nexport const SIEMENS_FONT = 'bold 13px \"SiemensSans Pro\", sans-serif';\nexport const SIEMENS_FONT_LABELS = '600 14px \"SiemensSans Pro\", sans-serif';\nexport const DEFAULT_OFFSET = 14;\nexport const DEFAULT_FEATURE_SELECT_ZOOM = 10;\nexport const DEFAULT_FEATURE_CLICK_ZOOM = 15;\nexport const DEFAULT_CLUSTER_CLICK_ZOOM = 15;\nexport const DEFAULT_GLOBAL_ZOOM = 5;\nexport const DEFAULT_CLUSTER_DISTANCE = 40;\n/** @deprecated will be removed in favour of individual inputs. */\nexport const DEFAULT_FIT_PADDING = [20, 20, 20, 20];\n\n/** Updates the amount of buildings to be shown in a cluster tooltip after hovering over it */\nexport const TOOLTIP_FEATURES_TO_DISPLAY = 4;\n/** Specifies the maximum amount of buildings allowed to be displayed as a number in a cluster */\nexport const MAX_CLUSTER_BUILDINGS = 99;\n/** Defines the cluster radius size, so all the clusters are of the same size */\nexport const CLUSTER_RADIUS_SIZE = 20;\n/** Chart inside the cluster is internally divided into 20 fragments */\nexport const CLUSTER_CHARTS_FRAGMENTS = 20;\nexport const GEOJSON_LAYER = 'geojson-layer';\nexport const POINTS_LAYER = 'points-layer';\nexport const LAYER_NAME = 'layerName';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, ElementRef, inject, input, signal, viewChild } from '@angular/core';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { TOOLTIP_FEATURES_TO_DISPLAY } from '../../models/constants';\n\n@Component({\n selector: 'si-map-tooltip',\n\n imports: [SiTranslatePipe],\n templateUrl: './si-map-tooltip.component.html',\n styleUrl: './si-map-tooltip.component.scss'\n})\nexport class SiMapTooltipComponent {\n protected readonly content = viewChild.required<ElementRef>('content');\n\n /**\n * Cutoff text for tooltips, when cluster combines more than 4 features\n *\n * @defaultValue\n * ```\n * t(() =>$localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n * ```\n */\n readonly moreText = input(\n t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n );\n\n /**\n * Adds the maximum length of a string thats allowed in a tooltip and if its longer it cuts off the rest and adds 3 dots at the end.\n * If set to -1, it will not cut off the string.\n * @defaultValue 50\n */\n readonly maxLabelLength = input(50);\n\n get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n protected readonly hiddenEntries = signal(0);\n private readonly elementRef = inject(ElementRef);\n\n /**\n * Method sets tooltip content. If parameter is of type\n * string, it will directly set it as tooltip content.\n * If it is array of string, it will render it as list of those strings.\n *\n * @param labels - array of strings or string itself\n */\n setTooltip(labels: string[] | string): void {\n if (typeof labels === 'string') {\n this.setContent(this.getLabelSnippet(labels));\n this.hiddenEntries.set(0);\n return;\n }\n\n const list: string[] = [];\n\n if (labels.length > 1) {\n const toDisplay = [...labels];\n const rest = toDisplay.splice(\n TOOLTIP_FEATURES_TO_DISPLAY,\n toDisplay.length - TOOLTIP_FEATURES_TO_DISPLAY\n );\n\n toDisplay.forEach(feat => list.push(this.getLabelSnippet(feat)));\n this.hiddenEntries.set(rest.length ?? 0);\n }\n\n this.setContent(list.join(''));\n }\n\n private getLabelSnippet(label: string): string {\n if (this.maxLabelLength() != -1 && label.length > this.maxLabelLength()) {\n return `<div>${label.substring(0, this.maxLabelLength())}...</div>`;\n } else {\n return `<div>${label}</div>`;\n }\n }\n\n private setContent(tooltip: string): void {\n this.content().nativeElement.innerHTML = tooltip;\n }\n}\n","<div class=\"si-map-tooltip\">\n <div #content></div>\n @if (hiddenEntries()) {\n <div>{{ moreText() | translate: { length: hiddenEntries() } }}</div>\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { MapPointMetaData } from '../../models';\n\n@Directive({\n selector: `[siMapPopoverClusterTemplate]`\n})\nexport class SiMapPopoverClusterTemplateDirective {\n static ngTemplateContextGuard(\n directive: SiMapPopoverClusterTemplateDirective,\n context: unknown\n ): context is { mapPoints: MapPointMetaData[] } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { MapPointMetaData } from '../../models';\n\n@Directive({\n selector: `[siMapPopoverTemplate]`\n})\nexport class SiMapPopoverTemplateDirective {\n static ngTemplateContextGuard(\n directive: SiMapPopoverTemplateDirective,\n context: unknown\n ): context is { mapPoint: MapPointMetaData } {\n return true;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n Component,\n ElementRef,\n signal,\n TemplateRef,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport Map from 'ol/Map';\n\nimport { MapPointMetaData } from '../../models/map-point.interface';\nimport { SiMapPopoverClusterTemplateDirective } from './si-map-popover-cluster-template.directive';\nimport { SiMapPopoverTemplateDirective } from './si-map-popover-template.directive';\nexport interface RenderOptions {\n component?: Type<any>;\n mapPoints: MapPointMetaData | MapPointMetaData[];\n map?: Map;\n}\n\n@Component({\n selector: 'si-map-popover',\n imports: [SiMapPopoverTemplateDirective, SiMapPopoverClusterTemplateDirective],\n templateUrl: './si-map-popover.component.html',\n styleUrl: './si-map-popover.component.scss'\n})\nexport class SiMapPopoverComponent {\n private readonly elementRef = viewChild.required<ElementRef>('popover');\n protected readonly maxHeight = signal<number | null>(null);\n\n protected readonly contentContainer = viewChild.required<ElementRef, ViewContainerRef>(\n 'contentContainer',\n {\n read: ViewContainerRef\n }\n );\n\n protected readonly defaultContent = viewChild.required<ElementRef, TemplateRef<any>>(\n 'defaultContent',\n {\n read: TemplateRef\n }\n );\n\n protected readonly defaultCluster = viewChild.required<ElementRef, TemplateRef<any>>(\n 'defaultCluster',\n {\n read: TemplateRef\n }\n );\n\n public render({ component, mapPoints, map }: RenderOptions): void {\n this.contentContainer().clear();\n\n if (component) {\n this.renderCustomComponent(component, mapPoints);\n } else {\n this.renderDefault(mapPoints);\n }\n\n if (map) {\n const mapHeight = map.getTargetElement().getBoundingClientRect().height;\n const contentY = this.elementRef().nativeElement.getBoundingClientRect().top;\n const maxheight = mapHeight - contentY - 20;\n this.maxHeight.set(maxheight);\n }\n }\n\n private renderCustomComponent(\n component: Type<any>,\n mapPoints: MapPointMetaData | MapPointMetaData[]\n ): void {\n const componentRef = this.contentContainer().createComponent(component);\n\n // Assign map point meta data to component instance input\n componentRef.setInput(Array.isArray(mapPoints) ? 'mapPoints' : 'mapPoint', mapPoints);\n componentRef.changeDetectorRef.detectChanges();\n }\n\n private renderDefault(mapPoints: MapPointMetaData | MapPointMetaData[]): void {\n // Create an embedded view with the default content template\n const context = Array.isArray(mapPoints) ? { mapPoints } : { mapPoint: mapPoints };\n const template = Array.isArray(mapPoints) ? this.defaultCluster() : this.defaultContent();\n this.contentContainer().createEmbeddedView(template, context).detectChanges();\n }\n}\n","<div #popover class=\"si-map-popover\">\n <div class=\"si-map-popover-arrow\"></div>\n\n <div class=\"si-map-popover-content\">\n <div class=\"overflow-auto px-5\">\n <div #contentContainer></div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultContent let-mapPoint=\"mapPoint\" siMapPopoverTemplate>\n <div>{{ mapPoint?.name }}</div>\n <div [innerHTML]=\"mapPoint?.description\"></div>\n</ng-template>\n<ng-template #defaultCluster let-mapPoints=\"mapPoints\" siMapPopoverClusterTemplate>\n <div [style.max-block-size.px]=\"maxHeight()\">\n <div class=\"si-map-popover-list\">\n @for (point of mapPoints; track $index) {\n <div class=\"si-map-popover-item\">\n <div class=\"si-map-popover-item-title\">{{ point.name }}</div>\n <div class=\"si-map-popover-item-description\" [innerHTML]=\"point.description\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-map-tooltip/si-map-tooltip.component';\nexport * from './si-map-popover/si-map-popover.component';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ColorPalettes } from '../../models/color-palette.type';\nimport { MarkerStatusType } from '../../models/map-point.interface';\n\nconst getProp = (style: CSSStyleDeclaration, prop: string): string => {\n const val = style.getPropertyValue(prop).replace(/\\s/g, ''); // trim all whitespaces\n return val ? val : '';\n};\n\nexport const themeElement = {\n style: () => {\n const style = window.getComputedStyle(document.documentElement);\n const status: Record<MarkerStatusType, string> = {\n info: getProp(style, '--element-status-information'), // $element-status-information / $siemens-blue-500\n success: getProp(style, '--element-status-success'), // $element-status-success / $siemens-green-700\n warning: getProp(style, '--element-status-warning'), // $element-status-warning / $siemens-orange-700\n danger: getProp(style, '--element-status-danger'), // $element-status-danger / $siemens-red-500\n caution: getProp(style, '--element-status-caution'), // $element-status-caution / $siemens-yellow-500\n critical: getProp(style, '--element-status-critical'), // $element-status-critical / $siemens-red-900\n default: getProp(style, '--element-ui-0'), // $element-ui-0 / $siemens-interactive-blue-500\n unknown: getProp(style, '--element-ui-3') // $element-ui-3 / $siemens-deep-blue-400\n };\n\n return {\n fillColor: getProp(style, '--element-base-1'), // $element-base-1 / $siemens-white\n strokeColor: getProp(style, '--element-base-1'), // $element-base-1 / $siemens-white\n textColor: getProp(style, '--element-text-primary'), // $element-text-primary / $siemens-deep-blue-900\n defaultMarkerColor: getProp(style, '--element-text-primary'), // $element-text-primary / $siemens-deep-blue-900\n status,\n colorPalette: {\n status: [status.info, status.success, status.warning, status.danger],\n element: [\n getProp(style, '--element-data-red-2'), // $siemens-red-500\n getProp(style, '--element-data-orange-4'), // $siemens-orange-700\n getProp(style, '--element-status-caution'), // $siemens-yellow-300\n getProp(style, '--element-data-green-2'), // $siemens-green-500\n getProp(style, '--element-status-information'), // $siemens-blue-500\n getProp(style, '--element-petrol'), // $element-petrol\n getProp(style, '--element-data-17') // $siemens-deep-blue-500\n ]\n } as ColorPalettes\n };\n }\n};\n\nexport type ThemeType = ReturnType<typeof themeElement.style>;\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { themeElement } from '../shared/themes/element';\nimport { ColorPalette } from './color-palette.type';\n\n/**\n * Class for grouping functionality\n */\nexport class Grouping {\n private readonly _colors: string[];\n private readonly _palette?: ColorPalette;\n\n constructor(groupColors: Record<number, string> | ColorPalette = 'status') {\n this._colors = [];\n\n if (typeof groupColors === 'string') {\n const colorPalette = groupColors;\n this._colors = [colorPalette];\n\n if (colorPalette === 'element') {\n this._palette = colorPalette as ColorPalette;\n this._colors = themeElement.style().colorPalette.element;\n } else {\n this._palette = 'status';\n this._colors = themeElement.style().colorPalette.status;\n }\n } else {\n Object.keys(groupColors).forEach((key: string) => {\n const numKey = Number(key);\n if (numKey <= 0) {\n throw new Error('Key is out of range: keys should start from 1 and do not repeat');\n }\n this._colors[Number(key) - 1] = groupColors[numKey];\n });\n }\n }\n\n get colors(): string[] {\n return Object.values(this._colors);\n }\n\n get palette(): string | undefined {\n return this._palette;\n }\n\n get length(): number {\n return this._colors.length;\n }\n\n getColor(groupId: number): string {\n // Group has higher index than available colors,\n // cycle trough them.\n if (groupId > this._colors.length) {\n const index = groupId % this._colors.length;\n return this._colors[index];\n } else {\n return this._colors[groupId - 1];\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './constants';\nexport * from './color-palette.type';\nexport * from './grouping.model';\nexport * from './overlay-native-properties.interface';\nexport * from './map-point.interface';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { MarkerStatusType } from '../../models/map-point.interface';\nimport { ThemeType } from './element';\n\nconst markers: Record<MarkerStatusType, string> = {\n default: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n`,\n success: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m241.55,225.45c-2.47,0-4.93-.94-6.82-2.82l-24.09-24.09c-3.77-3.77-3.77-9.86,0-13.63,3.77-3.77,9.87-3.77,13.63,0l17.28,17.28,46.19-46.19c3.77-3.77,9.87-3.77,13.63,0,3.77,3.77,3.77,9.86,0,13.63l-53.01,53.01c-1.88,1.88-4.35,2.82-6.82,2.82h.02Z\" />\n `,\n info: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <rect class=\"middle\"\n x=\"177.74\" y=\"110.96\" width=\"156.52\" height=\"156.52\" rx=\"11.74\" ry=\"11.74\" />\n <path class=\"symbol\"\n d=\"m255.91,134.43h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,179.94c5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61s-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61Z\" />\n `,\n warning: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m243.78,104.22l-76.92,134.35c-5.38,9.39,1.4,21.09,12.22,21.09h153.85c10.82,0,17.6-11.7,12.22-21.09l-76.92-134.35c-5.41-9.45-19.04-9.45-24.45,0Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n danger: `\n <path class=\"icon\"\n d=\"m256,64c-69.05,0-125.21,56.17-125.21,125.21,0,1.43.04,2.94.12,4.6.46,12.81,2.85,25.34,7.07,37.27,24.64,80.64,105.26,184.13,108.68,188.43,2.27,2.85,5.7,4.5,9.35,4.5s7.08-1.66,9.35-4.5c3.42-4.3,84.05-107.77,108.69-188.43,4.23-11.93,6.61-24.46,7.07-37.24.08-1.5.12-3.06.12-4.62,0-69.05-56.18-125.21-125.22-125.21h0Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244.09h-.18c-7.02,0-12.72-5.73-12.72-12.81s5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81s-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.59c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61s9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n caution: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <rect class=\"middle\"\n x=\"190.26\" y=\"123.48\" width=\"131.47\" height=\"131.47\" rx=\"11.74\" ry=\"11.74\"\n transform=\"translate(208.78 -125.6) rotate(45)\" />\n <path class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n critical: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Z\" />\n <path class=\"middle\"\n d=\"m285.78,105.57h-59.57c-3.11,0-6.1,1.24-8.3,3.44l-42.12,42.12c-2.2,2.2-3.44,5.19-3.44,8.3v59.57c0,3.11,1.24,6.1,3.44,8.3l42.12,42.12c2.2,2.2,5.19,3.44,8.3,3.44h59.57c3.11,0,6.1-1.24,8.3-3.44l42.12-42.12c2.2-2.2,3.44-5.19,3.44-8.3v-59.57c0-3.11-1.24-6.1-3.44-8.3l-42.12-42.12c-2.2-2.2-5.19-3.44-8.3-3.44Z\" />\n <path class=\"symbol\"\n d=\"m256.09,244h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n <path class=\"symbol\"\n d=\"m256,198.5c-5.31,0-9.61-4.3-9.61-9.61v-44.84c0-5.31,4.3-9.61,9.61-9.61,5.31,0,9.61,4.3,9.61,9.61v44.84c0,5.31-4.3,9.61-9.61,9.61Z\" />\n `,\n unknown: `\n <path class=\"icon\"\n d=\"m256,64c-69.37,0-125.8,56.43-125.8,125.8,0,1.44.04,2.95.12,4.62.46,12.87,2.86,25.46,7.1,37.44,24.76,81.02,105.75,183.3,109.19,187.62,2.28,2.86,5.73,4.52,9.39,4.52s7.11-1.67,9.39-4.52c3.44-4.32,84.44-106.59,109.2-187.62,4.25-11.99,6.64-24.57,7.1-37.41.08-1.51.12-3.07.12-4.64,0-69.37-56.44-125.8-125.81-125.8Zm0,213.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"middle\"\n d=\"m255.99,277.81c-48.59,0-87.99-39.4-87.99-88.01s39.4-87.99,87.99-87.99,88.01,39.41,88.01,87.99-39.39,88.01-88.01,88.01Z\" />\n <path class=\"symbol\"\n d=\"m256.04,207.64h0c-5.25,0-9.5-4.25-9.5-9.5v-9.95c0-3.59,1.8-7,4.87-8.86.59-.36,1.07-.56,1.58-.73,5.75-1.99,17.59-8.4,17.59-15.59,0-6.46-4.07-12.24-10.16-14.38-7.91-2.78-16.6,1.39-19.38,9.29-1.74,4.95-7.16,7.55-12.11,5.81-4.95-1.74-7.55-7.17-5.81-12.11,6.26-17.79,25.82-27.17,43.61-20.91,13.69,4.82,22.87,17.8,22.85,32.31,0,16.73-14.98,26.5-24.04,30.88v4.23c0,5.25-4.25,9.5-9.5,9.5h0Z\" />\n <path class=\"symbol\"\n d=\"m256.09,247h-.18c-7.02,0-12.72-5.73-12.72-12.81,0-7.08,5.69-12.81,12.72-12.81h.18c7.02,0,12.72,5.73,12.72,12.81,0,7.08-5.69,12.81-12.72,12.81Z\" />\n `\n};\n\nexport const getMarker = (status: MarkerStatusType, theme: ThemeType): string => {\n return `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"64\" height=\"64\">\n <defs>\n <style>\n .middle{fill:${theme.fillColor};}\n .symbol{fill:${theme.textColor};}\n .icon{fill:${theme.status[status]};}\n </style>\n </defs>\n ${markers[status]}\n</svg>\n`;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/// <reference types=\"./ol-ext.d.ts\" />\nimport { Injectable } from '@angular/core';\nimport AnimatedCluster from 'ol-ext/layer/AnimatedCluster';\nimport Chart from 'ol-ext/style/Chart';\nimport Feature from 'ol/Feature';\nimport Point from 'ol/geom/Point';\nimport Layer from 'ol/layer/Layer';\nimport VectorLayer from 'ol/layer/Vector';\nimport { fromLonLat } from 'ol/proj';\nimport Cluster from 'ol/source/Cluster';\nimport VectorSource from 'ol/source/Vector';\nimport { Circle, Fill, Icon, Stroke, Style, Text } from 'ol/style';\nimport { Options as IconOptions } from 'ol/style/Icon';\nimport ImageStyle from 'ol/style/Image';\n\nimport { ColorPalette } from '../models/color-palette.type';\nimport {\n ANIMATION_DURATION,\n CLUSTER_CHARTS_FRAGMENTS,\n CLUSTER_RADIUS_SIZE,\n DEFAULT_CLUSTER_TYPE,\n DEFAULT_DONUT_RATIO,\n DEFAULT_ICON,\n DEFAULT_ICON_SCALE,\n DEFAULT_OFFSET,\n DEFAULT_STROKE_WEIGHT,\n MAX_CLUSTER_BUILDINGS,\n SIEMENS_FONT,\n SIEMENS_FONT_LABELS\n} from '../models/constants';\nimport { Grouping } from '../models/grouping.model';\nimport {\n IconMarkerOptions,\n LabelOptions,\n MapPoint,\n MarkerOptions\n} from '../models/map-point.interface';\nimport { themeElement, ThemeType } from '../shared/themes/element';\nimport { getMarker } from '../shared/themes/marker';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MapService {\n private styleCache: Record<string, Style[]> = {};\n private clusterStyleCache: Record<string, Style[]> = {};\n private labelStyleCache: Record<string, Style[]> = {};\n private grouping?: Grouping;\n\n private _theme?: ThemeType;\n\n private wrappedTextCache: Record<string, string> = {};\n private labelTextStyleCache: Record<string, Text[]> = {};\n\n resetCaches(): void {\n this.styleCache = {};\n this.clusterStyleCache = {};\n this.labelStyleCache = {};\n this.wrappedTextCache = {};\n this.labelTextStyleCache = {};\n }\n\n private wrapLabelText(labelText: string, maxLength: number, maxLines: number): string {\n const cacheKey = `${labelText}_${maxLength}_${maxLines}`;\n if (this.wrappedTextCache[cacheKey]) {\n return this.wrappedTextCache[cacheKey];\n }\n\n let wrappedText = '';\n let currentLine = '';\n let lineCount = 0;\n const words = labelText.split(/[ \\n]/g);\n if (maxLength > 0) {\n for (const word of words) {\n const strippedWord =\n word.length > maxLength ? word.substring(0, maxLength - 3) + '...' : word;\n if ((currentLine.length || -1) + 1 + strippedWord.length > maxLength) {\n if (lineCount + 1 >= maxLines) {\n const wrappedLine = currentLine.endsWith('...')\n ? currentLine\n : (currentLine.length > maxLength\n ? currentLine.substring(0, maxLength - 3)\n : currentLine) + '...';\n wrappedText += (wrappedText ? '\\n' : '') + wrappedLine;\n return (this.wrappedTextCache[cacheKey] = wrappedText);\n } else {\n wrappedText += (wrappedText ? '\\n' : '') + currentLine;\n }\n currentLine = '';\n lineCount++;\n }\n currentLine += (currentLine ? ' ' : '') + strippedWord;\n }\n if (currentLine) {\n wrappedText += (wrappedText ? '\\n' : '') + currentLine;\n }\n } else {\n wrappedText = labelText;\n }\n\n return (this.wrappedTextCache[cacheKey] = wrappedText);\n }\n\n private getLabelTextStyle(\n text: string = '',\n maxLength: number,\n maxLines: number,\n markerSizes: [number, number],\n markerOffset: [number, number]\n ): Text[] {\n const cacheKey = `${text}_${maxLength}_${SIEMENS_FONT_LABELS}_${markerSizes[0]}_${markerSizes[1]}_${markerOffset[0]}_${markerOffset[1]}`;\n if (this.labelTextStyleCache[cacheKey]) {\n return this.labelTextStyleCache[cacheKey];\n }\n\n const wrappedText = this.wrapLabelText(text, maxLength, maxLines);\n const margin = 6;\n const extraPadding = 1;\n const halfWidth = markerSizes[0] / 2;\n const halfHeight = markerSizes[1] / 2;\n const placementOffsets = [\n {\n offsetX: markerOffset[0],\n offsetY: margin + markerOffset[1],\n align: { h: 'center', v: 'top' }\n },\n {\n offsetX: markerOffset[0],\n offsetY: -margin - markerSizes[1] + markerOffset[1],\n align: { h: 'center', v: 'bottom' }\n },\n {\n offsetX: -margin - halfWidth + markerOffset[0],\n offsetY: markerOffset[1] - halfHeight,\n align: { h: 'right', v: 'middle' }\n },\n {\n offsetX: margin + halfWidth - markerOffset[0],\n offsetY: markerOffset[1] - halfHeight,\n align: { h: 'left', v: 'middle' }\n }\n ] as const;\n\n return (this.labelTextStyleCache[cacheKey] = placementOffsets.map(\n offset =>\n new Text({\n text: wrappedText,\n font: SIEMENS_FONT_LABELS,\n fill: new Fill({ color: this.theme.textColor }),\n stroke: new Stroke({ color: this.theme.strokeColor, width: 4 }),\n offsetX: offset.offsetX,\n offsetY: offset.offsetY,\n padding: [\n offset.offsetY >= 0 ? offset.offsetY + extraPadding : 0,\n offset.offsetX < 0 ? -offset.offsetX - extraPadding : 0,\n offset.offsetY < 0 ? -offset.offsetY - extraPadding : 0,\n offset.offsetX >= 0 ? offset.offsetX + extraPadding : 0\n ],\n textAlign: offset.align.h,\n textBaseline: offset.align.v,\n overflow: true\n })\n ));\n }\n\n private zoomCallback: () => number | undefined = () => undefined;\n\n private getZoom(): number {\n return this.zoomCallback?.() ?? 3;\n }\n\n setZoomCallback(callback?: () => number | undefined): void {\n this.zoomCallback = callback ?? (() => undefined);\n }\n\n setTheme(groupColors: Record<number, string> | ColorPalette | undefined): void {\n this.resetCaches();\n this.grouping = new Grouping(groupColors);\n this._theme = undefined;\n }\n\n get theme(): ThemeType {\n this._theme ??= themeElement.style();\n return this._theme;\n }\n\n /**\n * Create feature with parameters\n * @param points - the list of points\n */\n createFeatures(points: MapPoint[], alwaysShowLabels = false): Feature[] {\n return points.map(\n point =>\n new Feature({\n geometry: new Point(fromLonLat([point.lon, point.lat])),\n // Append MapPointMetaData that will be available in getProperties()\n meta: point,\n name: point.name,\n description: point.description,\n marker: point.marker,\n label: alwaysShowLabels ? ({ text: point.name } as LabelOptions) : undefined,\n group: point.group,\n // TODO: Remove extraProps in v50\n // For backward compatibility, extraProps is still supported, but extraProperties should be used going forward\n extraProps: point.extraProperties,\n extraProperties: point.extraProperties,\n click: point.click\n })\n );\n }\n\n /**\n * Initialize animated cluster layer for points if clustering is enabled\n * @param features - for the source\n * @param markerAnimation - animation value for markers\n * @param clusterDistance - number distance between clusters\n * @param multiWorld - boolean if points should be repeated on multiple world maps\n */\n clusterLayer(\n features: Feature[],\n markerAnimation: boolean,\n clusterDistance: number,\n multiWorld: boolean\n ): Layer {\n return new AnimatedCluster({\n className: 'animated-cluster',\n zIndex: 1000,\n source: new Cluster({\n wrapX: multiWorld,\n distance: this.calculateClusteringDistance(clusterDistance, CLUSTER_RADIUS_SIZE),\n minDistance: CLUSTER_RADIUS_SIZE * 2,\n source: new VectorSource({\n features\n })\n }),\n animationDuration: markerAnimation ? ANIMATION_DURATION : 0,\n style: (feature: Feature) => this.getClusterStyle(feature)\n });\n }\n\n /**\n * Create vector layer when clustering is disabled\n * @param features - list of Features\n * @param multiWorld - boolean if points should be repeated on multiple world maps\n */\n vectorLayer(\n features: Feature[],\n multiWorld: boolean,\n defaultStyle: boolean = false\n ): VectorLayer<VectorSource> {\n return new VectorLayer({\n className: 'vector-layer',\n zIndex: 1000,\n source: new VectorSource({\n features,\n wrapX: multiWorld\n }),\n style: !defaultStyle\n ? feature => this.getFeatureStyle(feature as Feature, false, features)\n : undefined\n });\n }\n\n labelLayer(\n features: Feature[],\n multiWorld: boolean,\n maxLabelLength: number,\n maxLines: number,\n clusterLayer?: Layer\n ): VectorLayer<VectorSource> {\n const clusterSource = clusterLayer?.getSource() as Cluster<Feature<Point>>;\n return new VectorLayer({\n className: 'vector-layer',\n zIndex: 1200,\n source: new VectorSource({\n features,\n wrapX: multiWorld\n }),\n declutter: true,\n style: feature =>\n this.getLabelStyle(\n feature as Feature<Point>,\n features as Feature<Point>[],\n maxLabelLength,\n maxLines,\n clusterSource,\n false\n )\n });\n }\n\n /**\n * Cluster styling\n *\n * @param feature - Feature\n */\n getClusterStyle(feature: Feature): Style[] {\n const features = feature.getProperties().features;\n if (!features) {\n return this.getFeatureStyle(feature, true, features);\n }\n const uid = feature.getProperties().geometry.ol_uid;\n const size = features.length;\n\n if (size === 1) {\n return this.getFeatureStyle(feature, true, features);\n }\n\n let style: Style[] = this.clusterStyleCache[uid];\n\n if (!style) {\n style = [\n new Style({\n image: new Circle({\n radius: CLUSTER_RADIUS_SIZE,\n fill: new Fill({\n color: this.theme.fillColor\n }),\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: 6\n })\n })\n }),\n new Style({\n image: this.getClusterChart(features, this.grouping!),\n text: new Text({\n text: size > MAX_CLUSTER_BUILDINGS ? `${MAX_CLUSTER_BUILDINGS}+` : size.toString(),\n placement: 'point',\n textAlign: 'center',\n textBaseline: 'middle',\n fill: new Fill({ color: this.theme.textColor }),\n font: SIEMENS_FONT\n })\n })\n ];\n\n this.clusterStyleCache[uid] = style;\n }\n\n return style;\n }\n\n /**\n * Separate feature styling with icon\n * @param feature - to style\n * @param cluster - indication\n * @param features - list of features\n */\n getFeatureStyle(feature: Feature, cluster: boolean, features: Feature[], dummy = false): Style[] {\n const subFeatures = feature.getProperties()?.features;\n const feat = cluster && features ? subFeatures[0] : feature;\n const marker: MarkerOptions = feat.getProperties().marker;\n\n if (feat) {\n const uid = feat.getProperties().geometry.ol_uid + (dummy ? '~' : '');\n let style = this.styleCache[uid];\n\n if (!style) {\n style = [\n new Style(\n dummy\n ? {}\n : {\n image: this.getMarkerStyle(feat, this.grouping!, marker)\n }\n )\n ];\n\n this.styleCache[uid] = style;\n }\n\n return style;\n }\n\n return [\n new Style({\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: DEFAULT_STROKE_WEIGHT\n })\n })\n ];\n }\n\n getLabelStyle(\n feature: Feature<Point>,\n features: Feature<Point>[],\n maxLabelLength: number,\n maxLines: number,\n clusterSource?: Cluster<Feature<Point>>,\n dummy = false\n ): Style[] {\n const featureStyle = this.getFeatureStyle(feature, false, features, true);\n\n // const marker: MarkerOptions = feature.getProperties().marker;\n const label: LabelOptions = feature.getProperties().label;\n\n if (dummy || !label?.text) {\n return featureStyle;\n }\n\n // Determine if the feature is clustered\n let isClustered = !!clusterSource;\n\n if (clusterSource) {\n let clusterFeatures = [];\n\n // Here we iterate over all clusters and check if the feature is among them\n clusterSource.getFeatures().forEach(cluster => {\n clusterFeatures = cluster.get('features');\n if (clusterFeatures?.length === 1 && clusterFeatures[0] === feature) {\n isClustered = false;\n }\n });\n }\n\n // Only show labels for features that are not clustered\n if (!isClustered) {\n const uid = feature.getProperties().geometry.ol_uid + '~' + this.getZoom();\n let style = this.labelStyleCache[uid];\n\n if (!style) {\n const labelStyles = this.getLabelTextStyle(\n label?.text,\n maxLabelLength,\n maxLines,\n this.getMarkerSize(feature),\n this.getMarkerOffset(feature)\n );\n style = labelStyles.map(\n labelStyle =>\n new Style({\n text: labelStyle\n })\n );\n\n this.labelStyleCache[uid] = style;\n }\n\n return [...featureStyle, ...style];\n }\n\n return featureStyle;\n }\n\n getMarkerOffset(feature: Feature): [number, number] {\n const marker = feature.getProperties()?.marker;\n const markerType = marker?.type;\n const [, height] = this.getMarkerSize(feature);\n const offsetVertical = !markerType || markerType === 'status' ? 0 : height / 2;\n return [0, offsetVertical];\n }\n\n getMarkerSize(feature: Feature): [number, number] {\n const marker = feature.getProperties()?.marker;\n const markerType = marker?.type;\n const scale = (markerType === 'icon' ? marker?.icon?.scale : 1) ?? 1;\n const height =\n !markerType || markerType === 'status'\n ? 32\n : markerType === 'dot'\n ? 28\n : DEFAULT_OFFSET * 2 * scale;\n const width =\n !markerType || markerType === 'status'\n ? 22\n : markerType === 'dot'\n ? 28\n : DEFAULT_OFFSET * 2 * scale;\n return [width, height];\n }\n\n private getClusterChart(features: Feature[], grouping: Grouping): ImageStyle {\n const { data, colors } = this.getClusterChartData(features, grouping);\n\n const chart = new Chart({\n type: DEFAULT_CLUSTER_TYPE,\n radius: CLUSTER_RADIUS_SIZE,\n donutRatio: DEFAULT_DONUT_RATIO,\n colors,\n data,\n rotateWithView: true,\n snapToPixel: true,\n stroke: new Stroke({\n color: colors.length > 1 ? this.theme.strokeColor : 'rgba(0,0,0,0)',\n width: colors.length > 1 ? DEFAULT_STROKE_WEIGHT : 0\n }),\n overflow: true\n } as any); // types are wrong here and don't match the actual API\n\n return chart;\n }\n\n private getClusterChartData(\n features: Feature[],\n grouping: Grouping\n ): { data: number[]; colors: string[] } {\n const theme = this.theme;\n const groups: Record<number, number> = {};\n const ungrouped: number[] = [];\n const ungroupedColors: string[] = [];\n\n features.forEach(feat => {\n const props = feat.getProperties();\n const groupId = props.group;\n\n // Ungrouped features are considered as they have group on their own.\n if (groupId == null) {\n ungrouped.push(1);\n ungroupedColors.push(\n this.getStatusMarkerColor(theme, props.marker) ?? theme.defaultMarkerColor\n );\n return;\n }\n\n if (groups[groupId]) {\n groups[groupId] = groups[groupId] + 1;\n } else {\n groups[groupId] = 1;\n }\n });\n\n const data: number[] = [];\n this.transformChartData(data, Object.values(groups), features.length);\n this.transformChartData(data, ungrouped, features.length);\n\n // Corresponding colors of groups are based on matching index\n const colors = [\n ...Object.keys(groups).map(groupId => grouping.getColor(Number(groupId))),\n ...ungroupedColors\n ];\n\n return { data, colors };\n }\n\n /**\n * Calculates minimal safe distance for clustering to avoid overlapping of clusters\n */\n private calculateClusteringDistance(distance: number, clusterRadius: number): number {\n const safeDistance = clusterRadius * 2;\n return Math.max(safeDistance, distance);\n }\n\n private transformChartData(data: number[], series: number[], size: number): void {\n const fragmentSize = size / CLUSTER_CHARTS_FRAGMENTS;\n\n for (const value of series) {\n let fragment = value / fragmentSize;\n\n // Any fragment smaller than 1 must be represented at least as one fragment in the chart\n if (fragment > 0 && fragment < 1) {\n fragment = 1;\n }\n\n data.push(fragment);\n }\n }\n\n private getMarkerStyle(\n feature: Feature,\n grouping: Grouping,\n marker?: MarkerOptions\n ): Icon | Circle | undefined {\n if (!marker || marker.type === 'status') {\n return this.getStatusMarker(marker ?? { type: 'status', status: 'default' });\n }\n\n const color = this.getMarkerColor(feature, grouping, marker);\n\n if (marker.type === 'dot') {\n return this.getDotMarker(color);\n }\n\n if (marker.type === 'icon') {\n return this.getIconMarker(color, marker.icon);\n }\n\n return undefined;\n }\n\n /**\n * Decides what color should Marker be painted with.\n *\n * Markers are painted with group colors if group id is present. If marker color is specified,\n * it takes precedence over the group color.\n */\n private getMarkerColor(feature: Feature, grouping: Grouping, marker?: MarkerOptions): string {\n let color = this.theme.defaultMarkerColor;\n\n const groupId = feature.getProperties().group;\n if (groupId) {\n color = grouping.getColor(groupId);\n }\n\n if (marker?.color) {\n color = marker.color;\n }\n\n if (marker?.status) {\n color = this.theme.status[marker.status];\n }\n\n return color;\n }\n\n private getDotMarker(color: string): Circle {\n return new Circle({\n radius: 10,\n fill: new Fill({\n color\n }),\n stroke: new Stroke({\n color: this.theme.strokeColor,\n width: 6\n })\n });\n }\n\n private getIconMarker(color: string, iconConf?: IconMarkerOptions): Icon {\n const defaultIconStyle: IconOptions = {\n color,\n src: DEFAULT_ICON,\n scale: DEFAULT_ICON_SCALE\n };\n\n return new Icon({ ...defaultIconStyle, ...iconConf });\n }\n\n private getStatusMarkerColor(theme: ThemeType, marker?: MarkerOptions): string | undefined {\n if (!marker) {\n return theme.status.default;\n }\n if (marker.type === 'status') {\n return theme.status[marker.status!];\n }\n return marker.color;\n }\n\n private getStatusMarker(marker: MarkerOptions): Icon {\n marker.color = this.getStatusMarkerColor(this.theme, marker);\n\n const svg = getMarker(marker.status!, this.theme);\n const svgb64 = 'data:image/svg+xml;base64,' + btoa(svg);\n\n return new Icon({\n size: [64, 64],\n color: 'transparent', // Note: must be 'transparent' or '#fff' for OL to keep the colors\n width: 42,\n height: 42,\n displacement: [0, 16],\n src: svgb64\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { click } from 'ol/events/condition';\nimport { createEmpty as createEmptyExtent, extend } from 'ol/extent';\nimport Feature from 'ol/Feature';\nimport Select, { SelectEvent } from 'ol/interaction/Select';\nimport { StyleLike } from 'ol/style/Style';\n\nexport class SelectCluster extends Select {\n private zoomOnClick: () => boolean;\n private maxZoom: () => number;\n private fitClusterPadding: () => number[];\n\n constructor(options: {\n fitClusterPadding: () => number[];\n maxZoom: () => number;\n style?: StyleLike | null;\n zoomOnClick: () => boolean;\n }) {\n super({ ...options, condition: click });\n\n this.zoomOnClick = options.zoomOnClick;\n this.maxZoom = options.maxZoom;\n this.fitClusterPadding = options.fitClusterPadding;\n this.on('select', this.selectCluster.bind(this));\n }\n\n selectCluster(e: SelectEvent): void {\n const feature = e.selected.at(0);\n\n // Not a cluster (or just one feature)\n const cluster = feature?.get('features');\n if (!cluster || cluster.length === 1) {\n return;\n }\n\n if (this.zoomOnClick()) {\n this.zoomToCluster(cluster);\n }\n }\n\n zoomToCluster(cluster: Feature[]): void {\n const extent = createEmptyExtent();\n cluster.forEach(feature => {\n const geometry = feature.getGeometry();\n if (geometry) {\n extend(extent, geometry.getExtent());\n }\n });\n\n this.getMap()!.getView().fit(extent, {\n padding: this.fitClusterPadding(),\n maxZoom: this.maxZoom()\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\n// Fonts\n// TODO: This is a workaround to disable loading of google fonts.\nconst italicFonts = ['SiemensSans Pro', 'sans-serif'];\nconst regularFonts = ['SiemensSans Pro', 'sans-serif'];\nconst boldFonts = ['SiemensSans Pro', 'sans-serif'];\n\n// Colors\nconst deepBlue900 = 'rgba(32, 33, 50, 1)';\nconst green700 = (opacity: number): string => `rgba(28, 112, 63, ${opacity})`;\nconst green500 = (opacity: number): string => `rgba(40, 191, 102, ${opacity})`;\nconst green300 = (opacity: number): string => `rgba(114, 230, 163, ${opacity})`;\nconst blue700 = 'rgb(30, 82, 153)';\nconst blue100 = 'rgb(210, 226, 247)';\n\nexport const styleJson = (key: string, dark?: boolean): any => ({\n 'version': 8,\n 'name': 'siemens-brand',\n 'sources': {\n 'attribution': {\n 'attribution': '<a href=\"https://carto.com/\" target=\"_blank\">© CARTO</a>',\n 'type': 'vector'\n },\n 'openmaptiles': {\n 'url': `https://api.maptiler.com/tiles/v3/tiles.json?key=${key}`,\n 'type': 'vector'\n },\n 'maptiler_attribution': {\n 'attribution':\n '<a href=\"https://www.maptiler.com/copyright/\" target=\"_blank\">© MapTiler</a> <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">© OpenStreetMap contributors</a>',\n 'type': 'vector'\n }\n },\n 'layers': [\n {\n 'id': 'background',\n 'type': 'background',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'background-color': dark ? deepBlue900 : 'rgb(247, 247, 246)',\n 'background-opacity': 1\n }\n },\n {\n 'id': 'landcover',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landcover',\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green500(0.15) : green300(0.15)],\n [9, dark ? green500(0.15) : green300(0.2)],\n [11, dark ? green500(0.2) : green300(0.3)],\n [13, dark ? green500(0.1) : green300(0.35)],\n [15, dark ? green500(0.15) : green300(0.5)]\n ]\n },\n 'fill-opacity': 1\n },\n 'filter': [\n 'any',\n ['==', 'class', 'wood'],\n ['==', 'class', 'grass'],\n ['==', 'subclass', 'recreation_ground']\n ]\n },\n {\n 'id': 'park_national_park',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 6,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green700(0.2) : green300(0.2)],\n [9, dark ? green700(0.25) : green300(0.25)],\n [11, dark ? green700(0.35) : green300(0.35)],\n [13, dark ? green700(0.4) : green300(0.4)],\n [15, dark ? green700(0.6) : green300(0.6)]\n ]\n },\n 'fill-opacity': 1,\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'national_park']]\n },\n {\n 'id': 'park_nature_reserve',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 0,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? green700(0.2) : green300(0.2)],\n [9, dark ? green700(0.25) : green300(0.25)],\n [11, dark ? green700(0.35) : green300(0.35)],\n [13, dark ? green700(0.4) : green300(0.4)],\n [15, dark ? green700(0.6) : green300(0.6)]\n ]\n },\n 'fill-opacity': {\n 'stops': [\n [6, 0.7],\n [9, 0.9]\n ]\n },\n 'fill-antialias': true\n },\n 'filter': ['all', ['==', 'class', 'nature_reserve']]\n },\n {\n 'id': 'landuse_residential',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landuse',\n 'minzoom': 6,\n 'paint': {\n 'fill-color': {\n 'stops': [\n [5, dark ? 'rgba(27, 28, 29, 0.5)' : 'rgba(222, 226, 232, 0.5)'],\n [8, dark ? 'rgba(27, 28, 29, 0.45)' : 'rgba(222, 226, 232, 0.45)'],\n [9, dark ? 'rgba(27, 28, 29, 0.4)' : 'rgba(222, 226, 232, 0.4)'],\n [11, dark ? 'rgba(27, 28, 29, 0.35)' : 'rgba(222, 226, 232, 0.35)'],\n [13, dark ? 'rgba(27, 28, 29, 0.3)' : 'rgba(222, 226, 232, 0.3)'],\n [15, dark ? 'rgba(27, 28, 29, 0.25)' : 'rgba(222, 226, 232, 0.25)'],\n [16, dark ? 'rgba(27, 28, 29, 0.15)' : 'rgba(222, 226, 232, 0.15)']\n ]\n },\n 'fill-opacity': {\n 'stops': [\n [6, 0.6],\n [9, 1]\n ]\n }\n },\n 'filter': ['any', ['==', 'class', 'residential']]\n },\n {\n 'id': 'landuse',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'landuse',\n 'paint': {\n 'fill-color': {\n 'stops': [\n [8, dark ? 'rgba(0, 0, 0, 0.2)' : 'rgba(195, 189, 205, 0.2)'],\n [9, dark ? 'rgba(0, 0, 0, 0.25)' : 'rgba(195, 189, 205, 0.25)'],\n [11, dark ? 'rgba(0, 0, 0, 0.35)' : 'rgba(195, 189, 205, 0.35)'],\n [13, dark ? 'rgba(0, 0, 0, 0.4)' : 'rgba(195, 189, 205, 0.4)'],\n [15, dark ? 'rgb(20, 20, 20)' : 'rgb(218, 216, 222)']\n ]\n }\n },\n 'filter': ['any', ['==', 'class', 'cemetery'], ['==', 'class', 'stadium']]\n },\n {\n 'id': 'waterway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'waterway',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? blue700 : blue100,\n 'line-width': {\n 'stops': [\n [8, 0.5],\n [9, 1],\n [15, 2],\n [16, 3]\n ]\n }\n }\n },\n {\n 'id': 'boundary_county',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 9,\n 'maxzoom': 24,\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(110, 110, 110, 1)' : 'rgba(145, 145, 145, 0.6)'],\n [5, dark ? 'rgba(112, 112, 112, 1)' : 'rgba(145, 145, 145, 0.8)'],\n [6, dark ? 'rgba(189, 189, 189, 1)' : 'rgba(145, 145, 145, 0.9)']\n ]\n },\n 'line-width': {\n 'stops': [\n [4, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'admin_level', 6], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_state',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 4,\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(68, 73, 76, 1)' : '#d4d5d6'],\n [5, dark ? 'rgba(68, 73, 76, 1)' : '#d4d5d6'],\n [6, dark ? '#656A6E' : '#e1c5c7']\n ]\n },\n 'line-width': {\n 'stops': [\n [4, 0.5],\n [7, 1],\n [8, 1],\n [9, 1.2]\n ]\n }\n },\n 'filter': ['all', ['==', 'admin_level', 4], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'water',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'water',\n 'minzoom': 0,\n 'maxzoom': 24,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(175, 201, 241)',\n 'fill-opacity': 1,\n 'fill-antialias': true,\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', '$type', 'Polygon'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'water_shadow',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'water',\n 'minzoom': 0,\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(74, 84, 113, 1)' : 'rgb(210, 226, 247)',\n 'fill-opacity': 1,\n 'fill-antialias': true,\n 'fill-translate': {\n 'stops': [\n [0, [0, 2]],\n [6, [0, 1]],\n [14, [0, 1]],\n [17, [0, 2]]\n ]\n },\n 'fill-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', '$type', 'Polygon'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'aeroway-runway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'aeroway',\n 'minzoom': 12,\n 'layout': {\n 'line-cap': 'square'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(97, 97, 97)' : 'rgb(227, 226, 226)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'runway']]\n },\n {\n 'id': 'aeroway-taxiway',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'aeroway',\n 'minzoom': 13,\n 'paint': {\n 'line-color': dark ? 'rgb(97, 97, 97)' : 'rgb(227, 226, 226)',\n 'line-width': {\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 2],\n [16, 4]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'taxiway']]\n },\n {\n 'id': 'waterway_label',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'waterway',\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [9, 8],\n [10, 9]\n ]\n },\n 'text-field': '{name_en}',\n 'visibility': 'visible',\n 'text-offset': {\n 'stops': [\n [6, [0, -0.2]],\n [11, [0, -0.4]],\n [12, [0, -0.6]]\n ]\n },\n 'text-padding': 2,\n 'symbol-spacing': 300,\n 'symbol-placement': 'line',\n 'text-keep-upright': true,\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': 0,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(129, 173, 235, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', 'class', 'river']]\n },\n {\n 'id': 'tunnel_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_sec_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1],\n [13, 2],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_pri_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 8,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_trunk_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_mot_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'path'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_sec_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_pri_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_trunk_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_mot_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 0)' : 'rgb(163, 163, 152)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_rail',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(86, 86, 86)' : 'rgb(216, 215, 215)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 1],\n [16, 3],\n [21, 7]\n ]\n },\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'tunnel_rail_dash',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(120, 120, 120)' : 'rgb(250, 249, 249)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [15, 0.5],\n [16, 1],\n [20, 5]\n ]\n },\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['==', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'road_area_pier',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? '#fbf8f3' : '#fbf8f3',\n 'fill-antialias': true\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'Polygon'], ['==', 'class', 'pier']]\n },\n {\n 'id': 'road_pier',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? '#fbf8f3' : '#fbf8f3',\n 'line-width': {\n 'base': 1.2,\n 'stops': [\n [15, 1],\n [17, 4]\n ]\n }\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'LineString'], ['in', 'class', 'pier']]\n },\n {\n 'id': 'road_area_bridge',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(246, 241, 229, 0.6)' : 'rgba(246, 241, 229, 0.6)',\n 'fill-antialias': true\n },\n 'metadata': {},\n 'filter': ['all', ['==', '$type', 'Polygon'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'road_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 3],\n [16, 4.3],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_trunk_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_mot_case_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 2],\n [13, 3],\n [14, 4],\n [15, 5],\n [16, 8],\n [17, 10]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_sec_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1.5],\n [13, 3],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 7,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_trunk_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_mot_case_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.7],\n [8, 0.8],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'path', 'track'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgba(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_trunk_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'square',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_mot_fill_ramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 12,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [12, 1],\n [13, 1.5],\n [14, 2],\n [15, 3],\n [16, 6],\n [17, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['==', 'ramp', 1]]\n },\n {\n 'id': 'road_sec_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_pri_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 0.3],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_trunk_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'road_mot_fill_noramp',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['!has', 'brunnel']]\n },\n {\n 'id': 'rail',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(153, 153, 169)' : 'rgb(153, 153, 169)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [13, 0.5],\n [14, 1],\n [15, 1],\n [16, 3],\n [21, 7]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'rail_dash',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'layout': {\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(120, 120, 120)' : 'rgb(250, 249, 249)',\n 'line-width': {\n 'base': 1.3,\n 'stops': [\n [15, 0.5],\n [16, 1],\n [20, 5]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'rail'], ['!=', 'brunnel', 'tunnel']]\n },\n {\n 'id': 'bridge_service_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 1],\n [16, 3],\n [17, 6],\n [18, 8]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_minor_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 0.5],\n [14, 2],\n [15, 3],\n [16, 4.3],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_sec_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'miter'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 0.5],\n [12, 1.5],\n [13, 3],\n [14, 5],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_pri_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 8,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_trunk_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [13, 4],\n [14, 6],\n [15, 8],\n [16, 10],\n [17, 14],\n [18, 18]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [5, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_mot_case',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 5,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [6, 0.5],\n [7, 0.8],\n [8, 1],\n [11, 3],\n [12, 4],\n [13, 5],\n [14, 7],\n [15, 9],\n [16, 11],\n [17, 13],\n [18, 22]\n ]\n },\n 'line-opacity': {\n 'stops': [\n [6, 0.5],\n [7, 1]\n ]\n }\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_path',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(80, 80, 80)' : 'rgb(210, 209, 209)',\n 'line-width': {\n 'stops': [\n [15, 0.5],\n [16, 1],\n [18, 3]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'path'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_service_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 2],\n [16, 2],\n [17, 4],\n [18, 6]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'service'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_minor_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 15,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [15, 3],\n [16, 4],\n [17, 8],\n [18, 12]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'minor'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_sec_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 13,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 2],\n [13, 2],\n [14, 3],\n [15, 4],\n [16, 6],\n [17, 10],\n [18, 14]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary'], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_pri_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'primary'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_trunk_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 11,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [11, 1],\n [13, 2],\n [14, 4],\n [15, 6],\n [16, 8],\n [17, 12],\n [18, 16]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'trunk'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'bridge_mot_fill',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation',\n 'minzoom': 10,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'butt',\n 'line-join': 'round'\n },\n 'paint': {\n 'line-color': dark ? 'rgb(0, 0, 40)' : 'rgb(217, 217, 211)',\n 'line-width': {\n 'stops': [\n [10, 1],\n [12, 2],\n [13, 3],\n [14, 5],\n [15, 7],\n [16, 9],\n [17, 11],\n [18, 20]\n ]\n },\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'class', 'motorway'], ['!=', 'ramp', 1], ['==', 'brunnel', 'bridge']]\n },\n {\n 'id': 'building',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'building',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': {\n 'stops': [\n [15, dark ? 'rgba(7, 72, 89, 1)' : 'rgba(255, 255, 255, 1)'],\n [16, dark ? 'rgba(7, 72, 89, 1)' : 'rgba(152, 145, 123, 0.18)']\n ]\n },\n 'fill-antialias': true\n }\n },\n {\n 'id': 'building-top',\n 'type': 'fill',\n 'source': 'openmaptiles',\n 'source-layer': 'building',\n 'layout': {\n 'visibility': 'visible'\n },\n 'paint': {\n 'fill-color': dark ? 'rgba(7, 72, 89, 1)' : 'rgba(164, 146, 127, 1)',\n 'fill-opacity': {\n 'base': 1,\n 'stops': [\n [13, 0],\n [16, 1]\n ]\n },\n 'fill-translate': {\n 'base': 1,\n 'stops': [\n [14, [0, 0]],\n [16, [-2, -2]]\n ]\n },\n 'fill-outline-color': 'rgba(255, 255, 255, 1)'\n }\n },\n {\n 'id': 'boundary_country_outline',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 6,\n 'maxzoom': 24,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 0.7)',\n 'line-width': 4,\n 'line-offset': 0,\n 'line-opacity': 0.5\n },\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_country_inner_z0-4',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 0,\n 'maxzoom': 5,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(68, 73, 76, 0.8)' : 'rgba(151, 151, 151, 0.3)'],\n [5, dark ? 'rgba(163, 168, 173, 0.6)' : 'rgba(151, 151, 151, 0.51)'],\n [6, dark ? 'rgba(163, 168, 173, 0.6)' : 'rgba(151, 151, 151, 0.5)']\n ]\n },\n 'line-width': {\n 'stops': [\n [3, 1],\n [6, 1.5]\n ]\n },\n 'line-offset': 0,\n 'line-opacity': 1\n },\n 'filter': [\n 'all',\n ['==', 'admin_level', 2],\n ['==', 'maritime', 0],\n ['!has', 'claimed_by'],\n ['==', 'disputed', 0]\n ]\n },\n {\n 'id': 'boundary_country_inner_z5-',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 5,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(101, 106, 110, 0.72)' : 'rgba(127, 127, 127, 0.5)'],\n [5, dark ? 'rgba(131, 136, 142, 0.6)' : 'rgba(127, 127, 127, 0.5)'],\n [6, dark ? 'rgba(163, 168, 174, 0.8)' : 'rgba(127, 127, 127, 0.71)']\n ]\n },\n 'line-width': {\n 'stops': [\n [3, 1],\n [6, 1.5]\n ]\n },\n 'line-offset': 0,\n 'line-opacity': 1\n },\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'maritime', 0], ['==', 'disputed', 0]]\n },\n {\n 'id': 'boundary_2_disputed',\n 'type': 'line',\n 'source': 'openmaptiles',\n 'source-layer': 'boundary',\n 'minzoom': 0.0,\n 'layout': {\n 'line-cap': 'round',\n 'line-join': 'round',\n 'visibility': 'visible'\n },\n 'paint': {\n 'line-color': {\n 'stops': [\n [4, dark ? 'rgba(101, 106, 110, 0.72)' : 'rgba(127, 127, 127, 0.5)'],\n [5, dark ? 'rgba(131, 136, 142, 0.6)' : 'rgba(127, 127, 127, 0.5)'],\n [6, dark ? 'rgba(163, 168, 174, 0.8)' : 'rgba(127, 127, 127, 0.71)']\n ]\n },\n 'line-width': {\n 'base': 1,\n 'stops': [\n [3, 0.3],\n [5, 1.2],\n [12, 2]\n ]\n },\n 'line-opacity': 1,\n 'line-dasharray': [4, 3]\n },\n 'metadata': {},\n 'filter': ['all', ['==', 'admin_level', 2], ['==', 'disputed', 1], ['==', 'maritime', 0]]\n },\n {\n 'id': 'watername_ocean',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 0,\n 'maxzoom': 5,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [0, 13],\n [2, 14],\n [4, 18]\n ]\n },\n 'text-field': '{name}',\n 'text-padding': 2,\n 'text-max-width': 6,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgba(98, 143, 211, 1)',\n 'text-halo-blur': 0,\n 'text-halo-color': dark ? 'rgb(10, 21, 40)' : 'rgba(255, 255, 255, 0.47)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'ocean']]\n },\n {\n 'id': 'watername_sea',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 5,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': 12,\n 'text-field': '{name}',\n 'text-padding': 2,\n 'text-max-width': 6,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgba(96, 131, 180, 1)',\n 'text-halo-blur': 0,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'sea']]\n },\n {\n 'id': 'watername_lake',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'minzoom': 4,\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [13, 9],\n [14, 10],\n [15, 11],\n [16, 12],\n [17, 13]\n ]\n },\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'text-padding': 2,\n 'symbol-placement': 'point',\n 'text-line-height': 1.2,\n 'text-allow-overlap': false,\n 'text-pitch-alignment': 'auto',\n 'text-ignore-placement': false,\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(210, 226, 247, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-blur': 1,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'Point'], ['==', 'class', 'lake']]\n },\n {\n 'id': 'watername_lake_line',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'water_name',\n 'layout': {\n 'text-font': italicFonts,\n 'text-size': {\n 'stops': [\n [13, 9],\n [14, 10],\n [15, 11],\n [16, 12],\n [17, 13]\n ]\n },\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'symbol-spacing': 350,\n 'symbol-placement': 'line',\n 'text-line-height': 1.2,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(129, 173, 235, 1)' : 'rgb(45, 113, 218)',\n 'text-halo-blur': 1,\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(240, 245, 252)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['has', 'name'], ['==', '$type', 'LineString']]\n },\n {\n 'id': 'park-label',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'park',\n 'minzoom': 0,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'base': 1.2,\n 'stops': [\n [12, 10],\n [15, 14]\n ]\n },\n 'text-field': '{name:latin}\\n{name:nonlatin}',\n 'visibility': 'visible',\n 'text-max-width': 9,\n 'text-transform': 'none',\n 'text-allow-overlap': false,\n 'text-letter-spacing': 0.1,\n 'text-ignore-placement': false\n },\n 'paint': {\n 'text-color': dark ? 'rgba(40, 191, 102, 1)' : 'rgba(29, 176, 51, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 0.8)' : 'rgba(255,255,255,0.8)',\n 'text-halo-width': 1.2\n },\n 'metadata': {\n 'mapbox:group': '1444849242106.713'\n },\n 'filter': ['all', ['==', 'rank', 1], ['==', '$type', 'Point']]\n },\n {\n 'id': 'place_hamlet',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 12,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [13, 8],\n [14, 10],\n [16, 11]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [14, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': {\n 'stops': [\n [12, 'none'],\n [14, 'uppercase']\n ]\n },\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(211, 211, 211, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(32, 32, 32, 1)' : 'rgb(219, 225, 230)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['any', ['==', 'class', 'neighbourhood'], ['==', 'class', 'hamlet']]\n },\n {\n 'id': 'place_suburbs',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 12,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [12, 9],\n [13, 10],\n [14, 11],\n [15, 12],\n [16, 13]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': {\n 'stops': [\n [8, 'none'],\n [12, 'uppercase']\n ]\n },\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(218, 218, 218, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(53, 53, 53, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'suburb']]\n },\n {\n 'id': 'place_villages',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 10,\n 'maxzoom': 16,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [10, 9],\n [12, 10],\n [13, 11],\n [14, 12],\n [16, 13]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'none',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(166, 166, 166, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(7, 7, 7, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'village']]\n },\n {\n 'id': 'place_town',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 14,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 10],\n [9, 10],\n [10, 11],\n [13, 14],\n [14, 15]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'none',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgba(191, 191, 191, 1)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(195, 195, 195, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(53, 53, 53, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'town']]\n },\n {\n 'id': 'place_country_2',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 3,\n 'maxzoom': 10,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [3, 10],\n [5, 11],\n [6, 12],\n [7, 13],\n [8, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': {\n 'stops': [\n [3, dark ? 'rgba(179, 179, 190, 1)' : 'rgb(101, 106, 110)'],\n [5, dark ? 'rgba(179, 179, 190, 1)' : 'rgb(127, 129, 131)'],\n [6, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(131, 131, 131, 1)']\n ]\n },\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'country'], ['>=', 'rank', 3], ['has', 'iso_a2']]\n },\n {\n 'id': 'place_country_1',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 2,\n 'maxzoom': 7,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [3, 11],\n [4, 12],\n [5, 13],\n [6, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-max-width': {\n 'stops': [\n [2, 6],\n [3, 6],\n [4, 9],\n [5, 12]\n ]\n },\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': {\n 'stops': [\n [3, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(114, 114, 114, 1)'],\n [5, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(116, 116, 116, 1)'],\n [6, dark ? 'rgba(179, 179, 190, 1)' : 'rgba(116, 116, 116, 1)']\n ]\n },\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'country'], ['<=', 'rank', 2]]\n },\n {\n 'id': 'place_state',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 5,\n 'maxzoom': 10,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [5, 12],\n [7, 14]\n ]\n },\n 'text-field': '{name_en}',\n 'text-max-width': 9,\n 'text-transform': 'sentencecase'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(179, 179, 190, 1)' : 'rgb(116, 119, 122)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgb(216, 238, 215)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'state'], ['<=', 'rank', 4]]\n },\n {\n 'id': 'place_continent',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 0,\n 'maxzoom': 2,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': 14,\n 'text-field': '{name_en}',\n 'text-justify': 'center',\n 'text-max-width': 9,\n 'text-transform': 'uppercase',\n 'text-keep-upright': false,\n 'text-letter-spacing': 0.1\n },\n 'paint': {\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'continent']]\n },\n {\n 'id': 'place_city_r6',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 15,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 12],\n [9, 13],\n [10, 14],\n [13, 17],\n [14, 20]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(217, 217, 217, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(36, 36, 36, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['>=', 'rank', 6]]\n },\n {\n 'id': 'place_city_r5',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 8,\n 'maxzoom': 15,\n 'layout': {\n 'icon-size': 1,\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [8, 14],\n [10, 16],\n [13, 19],\n [14, 22]\n ]\n },\n 'icon-image': '',\n 'text-field': {\n 'stops': [\n [8, '{name_en}'],\n [13, '{name}']\n ]\n },\n 'icon-offset': [16, 0],\n 'text-anchor': 'center',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 10,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['>=', 'rank', 0], ['<=', 'rank', 5]]\n },\n {\n 'id': 'place_city_dot_r7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 6,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(193, 193, 193, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 7]]\n },\n {\n 'id': 'place_city_dot_r4',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 5,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(196, 200, 204, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 4]]\n },\n {\n 'id': 'place_city_dot_r2',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 4,\n 'maxzoom': 7,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(196, 200, 204, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['==', 'class', 'city'], ['<=', 'rank', 2]]\n },\n {\n 'id': 'place_city_dot_z7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 7,\n 'maxzoom': 8,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(209, 209, 209, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(34, 34, 34, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['!has', 'capital'], ['!in', 'class', 'country', 'state']]\n },\n {\n 'id': 'place_capital_dot_z7',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'place',\n 'minzoom': 7,\n 'maxzoom': 8,\n 'layout': {\n 'icon-size': 0.4,\n 'text-font': boldFonts,\n 'text-size': 12,\n 'icon-image': 'circle-11',\n 'text-field': '{name_en}',\n 'icon-offset': [16, 5],\n 'text-anchor': 'right',\n 'text-offset': [0.2, 0.2],\n 'text-max-width': 8,\n 'text-transform': 'uppercase',\n 'text-keep-upright': true\n },\n 'paint': {\n 'icon-color': dark ? 'rgb(30, 40, 46)' : 'rgb(57, 74, 86)',\n 'text-color': dark ? 'rgba(201, 201, 201, 1)' : 'rgb(57, 74, 86)',\n 'text-halo-color': dark ? 'rgba(30, 30, 30, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1,\n 'icon-translate-anchor': 'map'\n },\n 'filter': ['all', ['>', 'capital', 0]]\n },\n {\n 'id': 'poi_stadium',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'poi',\n 'minzoom': 15,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [15, 8],\n [17, 9],\n [18, 10]\n ]\n },\n 'text-field': '{name}',\n 'text-transform': 'uppercase'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(48, 48, 48)' : 'rgb(82, 82, 82)',\n 'text-halo-color': dark ? 'rgba(201, 201, 201, 0.15)' : 'rgba(234, 234, 234, 0.15)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'stadium', 'cemetery', 'attraction'], ['<=', 'rank', 3]]\n },\n {\n 'id': 'poi_park',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'poi',\n 'minzoom': 15,\n 'layout': {\n 'text-font': boldFonts,\n 'text-size': {\n 'stops': [\n [15, 8],\n [17, 9],\n [18, 10]\n ]\n },\n 'text-field': '{name}',\n 'text-transform': 'uppercase'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(193, 242, 214, 1)' : 'rgb(82, 82, 82)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 0.5)' : 'rgba(234, 234, 234, 0.15)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['==', 'class', 'park']]\n },\n {\n 'id': 'roadname_minor',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 16,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': 9,\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': 200,\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(255, 255, 255, 1)' : 'rgba(73, 73, 53, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'minor', 'service']]\n },\n {\n 'id': 'roadname_sec',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 15,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [15, 9],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': 200,\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgba(255, 255, 255, 1)' : 'rgba(90, 92, 71, 1)',\n 'text-halo-color': dark ? 'rgba(0, 0, 0, 1)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'secondary', 'tertiary']]\n },\n {\n 'id': 'roadname_pri',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 14,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [14, 10],\n [15, 10],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': {\n 'stops': [\n [6, 200],\n [16, 250]\n ]\n },\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': {\n 'stops': [\n [14, 0],\n [16, 0.2]\n ]\n },\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)',\n 'text-halo-color': dark ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'primary']]\n },\n {\n 'id': 'roadname_major',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'transportation_name',\n 'minzoom': 13,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [14, 10],\n [15, 10],\n [16, 11],\n [18, 12]\n ]\n },\n 'text-field': '{name}',\n 'text-justify': 'center',\n 'symbol-spacing': {\n 'stops': [\n [6, 200],\n [16, 250]\n ]\n },\n 'symbol-placement': 'line',\n 'symbol-avoid-edges': false,\n 'text-letter-spacing': {\n 'stops': [\n [13, 0],\n [16, 0.2]\n ]\n },\n 'text-pitch-alignment': 'auto',\n 'text-rotation-alignment': 'auto'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(255, 255, 255)' : 'rgb(0, 0, 0)',\n 'text-halo-color': dark ? 'rgb(0, 0, 0)' : 'rgb(255, 255, 255)',\n 'text-halo-width': 1\n },\n 'filter': ['all', ['in', 'class', 'trunk', 'motorway']]\n },\n {\n 'id': 'housenumber',\n 'type': 'symbol',\n 'source': 'openmaptiles',\n 'source-layer': 'housenumber',\n 'minzoom': 17,\n 'maxzoom': 24,\n 'layout': {\n 'text-font': regularFonts,\n 'text-size': {\n 'stops': [\n [17, 9],\n [18, 11]\n ]\n },\n 'text-field': '{housenumber}'\n },\n 'paint': {\n 'text-color': dark ? 'rgb(69, 158, 124)' : 'rgba(255, 255, 255, 1)',\n 'text-halo-color': dark ? 'rgba(201, 201, 201, 0.15)' : 'rgba(0, 0, 0, 0.15)',\n 'text-halo-width': 0.75\n }\n }\n ],\n 'metadata': {\n 'maptiler:copyright':\n 'This style was generated on MapTiler Cloud. Usage outside of MapTiler Cloud or MapTiler Server requires valid MapTiler Data package: https://www.maptiler.com/data/ -- please contact us.'\n },\n 'glyphs': `https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key=${key}`,\n 'sprite': 'https://api.maptiler.com/maps/17edd8b7-a153-4528-b076-32743671d394/sprite',\n 'bearing': 0,\n 'pitch': 0,\n 'center': [8.611423932402658, 46.76324669153797],\n 'zoom': 6.680213932099212\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewChecked,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n model,\n NgZone,\n OnChanges,\n OnDestroy,\n output,\n SimpleChanges,\n Type,\n viewChild\n} from '@angular/core';\nimport {\n SiNoTranslateService,\n SiTranslateServiceBuilder,\n t\n} from '@siemens/element-translate-ng/translate';\nimport { apply as applyMapboxStyle } from 'ol-mapbox-style';\nimport Control from 'ol/control/Control';\nimport { defaults as defaultControls } from 'ol/control/defaults';\nimport { Coordinate } from 'ol/coordinate';\nimport * as olExtent from 'ol/extent';\nimport Feature, { FeatureLike } from 'ol/Feature';\nimport GeoJSON from 'ol/format/GeoJSON';\nimport Geometry from 'ol/geom/Geometry';\nimport Point from 'ol/geom/Point';\nimport Layer from 'ol/layer/Layer';\nimport VectorLayer from 'ol/layer/Vector';\nimport Map from 'ol/Map';\nimport MapBrowserEvent from 'ol/MapBrowserEvent';\nimport Overlay, { Positioning } from 'ol/Overlay';\nimport RenderFeature from 'ol/render/Feature';\nimport Cluster from 'ol/source/Cluster';\nimport VectorSource from 'ol/source/Vector';\nimport { StyleLike } from 'ol/style/Style';\nimport View from 'ol/View';\n\nimport { SiMapPopoverComponent } from './components/si-map-popover/si-map-popover.component';\nimport { SiMapTooltipComponent } from './components/si-map-tooltip/si-map-tooltip.component';\nimport { ColorPalette } from './models/color-palette.type';\nimport {\n ANIMATION_DURATION,\n DEFAULT_CLUSTER_CLICK_ZOOM,\n DEFAULT_CLUSTER_DISTANCE,\n DEFAULT_FEATURE_CLICK_ZOOM,\n DEFAULT_FEATURE_SELECT_ZOOM,\n DEFAULT_GLOBAL_ZOOM,\n GEOJSON_LAYER,\n LAYER_NAME,\n POINTS_LAYER\n} from './models/constants';\nimport { MapPoint, MapPointMetaData } from './models/map-point.interface';\nimport { OverlayNativeProperties } from './models/overlay-native-properties.interface';\nimport { MapService } from './services/map.service';\nimport { SelectCluster } from './services/SelectCluster';\nimport { styleJson } from './shared/themes/style';\n\ninterface ClusterHolder {\n feature?: Feature;\n}\n\n@Component({\n selector: 'si-map',\n\n imports: [SiMapTooltipComponent, SiMapPopoverComponent],\n templateUrl: './si-map.component.html',\n styleUrl: './si-map.component.scss',\n providers: [MapService],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiMapComponent implements AfterViewInit, OnChanges, OnDestroy, AfterViewChecked {\n /**\n * Points to be rendered on the map as features.\n */\n readonly points = model<MapPoint[]>();\n /**\n * Payload of a geo-JSON object.\n */\n readonly geoJson = input<any>();\n /**\n * Callback function to add custom styling to the drawn geo-JSON features.\n */\n readonly styleFunction = input<StyleLike>();\n /**\n * Projection format used to render the geo-JSON payload.\n *\n * @defaultValue 'EPSG:3857'\n */\n readonly geoJsonProjection = input('EPSG:3857');\n /**\n * Enable or disable animation of markers.\n *\n * @defaultValue false\n */\n readonly markerAnimation = input(false);\n /**\n * Enable or disable clustering of points on the map.\n *\n * @defaultValue false\n */\n readonly cluster = input(false);\n /**\n * Defines which colors should be used when points are grouped. Grouping means\n * that points are painted with their group color and they are displayed as\n * series in donut chart inside cluster.\n *\n * @defaultValue 'status'\n */\n readonly groupColors = input<Record<number, string> | ColorPalette>('status');\n /**\n * - **overlay**: Layer for popup element, an element to be displayed over the\n * map and attached to a single map location.\n * - **controls**: List of controls to activate for map, additional controls\n * like full screen, etc. can be added here.\n */\n readonly nativeProperties = input<OverlayNativeProperties>();\n /**\n * Type of background map, for example `'https://api.maptiler.com/maps/voyager/style.json?key=xxx'`\n * (Token key is required). The styleJson defines the tiler source and the\n * used styles for different layers, should only be used if the siemens\n * default styles by using `maptilerKey` isn't good enough.\n */\n readonly styleJson = input<any>();\n /**\n * Option to switch on/off the display of tooltip while hovering over single\n * point.\n *\n * @defaultValue false\n */\n readonly displayTooltipOnHover = input(false);\n /**\n * Option to switch on/off the display of popover when clicked.\n * Default set to true (on).\n *\n * @defaultValue true\n */\n readonly displayPopoverOnClick = input(true);\n\n /**\n * Option to switch on/off popover when hovered.\n * Default is set to false (off)\n *\n * @defaultValue false\n */\n readonly displayPopoverOnHover = input(false);\n\n /**\n * Provide your key for MapTiler, this will use the default siemens element\n * styles which can be used in both light and dark mode. Shouldn't be used\n * together with styleJson.\n */\n readonly maptilerKey = input<string>();\n /**\n * Option to switch on/off the display of tooltip while hovering over cluster.\n *\n * @defaultValue false\n */\n readonly displayTooltipOnClusterHover = input(false);\n /**\n * Defines range in which points are clustered. In pixels.\n *\n * @defaultValue DEFAULT_CLUSTER_DISTANCE\n */\n readonly clusterDistance = input<number>(DEFAULT_CLUSTER_DISTANCE);\n /**\n * Zoom level when calling the `select()` method on the component.\n * Defaults to 10.\n *\n * @defaultValue DEFAULT_FEATURE_SELECT_ZOOM\n */\n readonly featureSelectZoom = input<number>(DEFAULT_FEATURE_SELECT_ZOOM);\n /**\n * Max zoom level which is used when clicking on feature on the map.\n * Defaults to 15.\n *\n * @defaultValue DEFAULT_FEATURE_CLICK_ZOOM\n */\n readonly featureClickZoom = input<number>(DEFAULT_FEATURE_CLICK_ZOOM);\n /**\n * Max zoom level for clicking on a cluster on the map. Defaults to 15.\n *\n * @defaultValue DEFAULT_CLUSTER_CLICK_ZOOM\n */\n readonly clusterClickZoom = input<number>(DEFAULT_CLUSTER_CLICK_ZOOM);\n /**\n * Max zoom level on load or when clicking the reset button. Defaults to 5.\n *\n * @defaultValue DEFAULT_GLOBAL_ZOOM\n */\n readonly globalZoom = input<number>(DEFAULT_GLOBAL_ZOOM);\n /**\n * When enabled, features will be automatically zoom to on click.\n *\n * @defaultValue false\n */\n readonly autoZoomFeatureClick = input(false);\n /**\n * When disabled, clusters will no longer automatically be zoomed to on click.\n *\n * @defaultValue true\n */\n readonly autoZoomClusterClick = input(true);\n /**\n * Custom popover component\n */\n readonly popoverComponent = input<Type<any>>();\n\n /**\n * Custom popover component for clustering\n */\n readonly clusterPopoverComponent = input<Type<any>>();\n /**\n * Custom popover component\n */\n readonly popoverComponentProps = input<any>();\n /**\n * Close the popover on click\n *\n * @defaultValue true\n */\n readonly popoverCloseOnClick = input(true);\n\n /**\n * Padding (in pixels) applied to the map view when zooming to a cluster, preventing points from being clipped at the edges.\n * Specified as [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitClusterPadding = input<[number, number, number, number]>([20, 20, 20, 20]);\n /**\n * For Point geometry, padding (in pixels) to be cleared to fit the point inside the view after a click on it.\n * Values in the array are: [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitPointPadding = input<number[]>([20, 20, 20, 20]);\n /**\n * For GeoJson, padding (in pixels) to be cleared to fit the GeoJson inside the view after a click on it.\n * Values in the array are: [top, right, bottom, left].\n *\n * @defaultValue [20, 20, 20, 20]\n */\n readonly fitGeoJsonPadding = input<number[]>([20, 20, 20, 20]);\n /**\n * Cutoff text for tooltips, when cluster combines more than 4 features\n *\n * @deprecated Use `SiMapTooltipComponent` instead to set the `moreText` input e.g. `<si-map ...><si-map-tooltip [moreText]=\"'KEY_MORE'\" /></si-map>`.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n * ```\n */\n readonly moreText = input(\n t(() => $localize`:@@SI_MAPS.TOOLTIP_MORE_TEXT:and {{length}} more...`)\n );\n /**\n * Show multiple worlds, including points that cross the 180th meridian.\n *\n * @defaultValue true\n */\n readonly multiWorld = input(true);\n /**\n * Show the label permanently next to the point.\n * Normally the label is shown on hover or click.\n * By enabling this it will always be visible next to the marker.\n *\n * @defaultValue false\n */\n readonly alwaysShowLabels = input(false);\n /**\n * Maximum number of characters per line for always displayed labels of a point.\n * If the label exceeds this limit, it will be wrapped or trimmed.\n * If set to 0, label trimming will be disabled.\n * This setting is effective only when {@link alwaysShowLabels} is enabled.\n * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.\n *\n * @defaultValue 20\n */\n readonly maxLabelLineLength = input(20);\n /**\n * Maximum number of lines for always displayed labels of a point.\n * If the label exceeds this limit, it will be trimmed.\n * This setting is effective only when {@link alwaysShowLabels} is enabled and {@link maxLabelLineLength} is not 0.\n * Important: Changing this is not recommended in most cases and may cause issues with positioning of the labels.\n *\n * @defaultValue 3\n */\n readonly maxLabelLines = input(3);\n /**\n * Emitted when points on the map are selected or de-selected\n */\n readonly pointsSelected = output<MapPoint[]>();\n /**\n * Emitted when the points are available as features. So consumers can call methods like `zoomToPoints()` on the actual point list.\n */\n readonly pointsRefreshed = output<void>();\n\n protected readonly popover = viewChild.required(SiMapPopoverComponent);\n protected readonly popoverElement = viewChild.required<ElementRef, ElementRef>('popover', {\n read: ElementRef\n });\n protected readonly defaultTooltip = viewChild(SiMapTooltipComponent);\n protected readonly projectedTooltip = contentChild(SiMapTooltipComponent);\n protected readonly tooltip = computed(() => this.projectedTooltip() ?? this.defaultTooltip()!);\n protected readonly mapReference = viewChild.required<ElementRef<HTMLElement>>('map');\n /** OpenLayers map instance. */\n map?: Map;\n\n tooltipOverlay!: Overlay;\n popoverOverlay!: Overlay;\n /** @defaultValue false */\n isClicked = false;\n /** @defaultValue [] */\n features: Feature[] = [];\n selected?: Feature;\n targetFeature?: Feature;\n protected attributionsLabel = t(() => $localize`:@@SI_MAPS.ATTRIBUTIONS_BUTTON:Attributions`);\n protected zoomInLabel = t(() => $localize`:@@SI_MAPS.ZOOM_IN_BUTTON:Zoom in`);\n protected zoomOutLabel = t(() => $localize`:@@SI_MAPS.ZOOM_OUT_BUTTON:Zoom out`);\n protected zoomToDefaultLabel = t(\n () => $localize`:@@SI_MAPS.ZOOM_TO_DEFAULT_BUTTON:Zoom to default view`\n );\n protected clusterInteraction?: SelectCluster;\n private selectedCluster?: Feature;\n private darkTheme: boolean | undefined = undefined;\n\n private readonly mapService = inject(MapService);\n private readonly ngZone = inject(NgZone);\n // We cannot use new inject function, as it may not be available in older translate version.\n // Older version could potentially be used in mobile.\n private readonly translateService =\n inject(SiTranslateServiceBuilder, { optional: true })?.buildService(inject(Injector)) ??\n inject(SiNoTranslateService);\n\n constructor() {\n const translations = this.translateService.translateSync([\n this.attributionsLabel,\n this.zoomInLabel,\n this.zoomOutLabel,\n this.zoomToDefaultLabel\n ]);\n this.attributionsLabel = translations[this.attributionsLabel];\n this.zoomInLabel = translations[this.zoomInLabel];\n this.zoomOutLabel = translations[this.zoomOutLabel];\n this.zoomToDefaultLabel = translations[this.zoomToDefaultLabel];\n }\n // this is to filter out non-data layers for performance of `forEachFeatureAtPixel()`\n private layerFilter = (layer: Layer<any>): boolean => {\n const name = layer.get(LAYER_NAME);\n return name === POINTS_LAYER || name === GEOJSON_LAYER;\n };\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (!this.map) {\n return;\n }\n\n if (changes.groupColors) {\n this.mapService.setTheme(this.groupColors());\n // refresh the style of points-layer to reflect the color changes.\n this.refreshLayersStyle([POINTS_LAYER]);\n }\n\n if (changes.points) {\n this.refresh(this.points() ?? [], false);\n }\n\n if (changes.geoJson || changes.styleFunction) {\n const geojsonLayer = this.map\n .getLayers()\n .getArray()\n .find(layer => layer.get(LAYER_NAME) === GEOJSON_LAYER) as VectorLayer<VectorSource>;\n if (geojsonLayer) {\n if (changes.geoJson) {\n // If geojson-layer is already present and there is change in geojson,\n // update the features of geojson-layer with the latest geojson.\n const geoJson = this.geoJson();\n const features =\n geoJson && Object.keys(geoJson).length\n ? new GeoJSON({ featureProjection: this.geoJsonProjection() }).readFeatures(geoJson)\n : [];\n this.ngZone.runOutsideAngular(() =>\n geojsonLayer.setSource(new VectorSource({ features }))\n );\n }\n if (changes.styleFunction) {\n // If there is some change in styleFunction, update the style of geojson-layer.\n this.ngZone.runOutsideAngular(() => geojsonLayer.setStyle(this.styleFunction()));\n }\n } else {\n // If geojson-layer is not present, and change is detected in geojson or styleFunction,\n // create a new geojson-layer.\n this.ngZone.runOutsideAngular(() => this.setGeoJsonLayer());\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.init();\n this.map?.on('pointermove', event => this.onFeatureHover(event));\n this.map?.on('click', event => this.onClusterClick(event));\n });\n\n const dark = document.documentElement.classList.contains('app--dark');\n this.setTheme(dark, this.maptilerKey());\n\n setTimeout(() => this.fixCenter());\n }\n\n ngAfterViewChecked(): void {\n // making sure that if the map is not rendered updateSize() gets called\n // this is to make sure the map also gets rendered in ionic\n if (this.map && !this.map.isRendered()) {\n this.ngZone.runOutsideAngular(() => this.map!.updateSize());\n }\n }\n\n ngOnDestroy(): void {\n this.removePixelRatioListener();\n this.map?.setTarget(undefined);\n }\n\n @HostListener('window:theme-switch', ['$event'])\n onThemeSwitchInternal(event: Event): void {\n this.setTheme((event as CustomEvent).detail.dark, this.maptilerKey());\n }\n\n onThemeSwitch(dark: boolean): void {\n this.setTheme(dark, this.maptilerKey());\n }\n\n private removePixelRatioListener = (): void => {};\n\n private readonly updatePixelRatio = (): void => {\n // on browser zoom the pixel ratio changes. No other updates are needed as OL has a\n if (this.map && window.devicePixelRatio !== (this.map as any).pixelRatio_) {\n this.ngZone.runOutsideAngular(() => this.changeOpenLayerPixelRation());\n }\n\n this.removePixelRatioListener();\n const media = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);\n media.addEventListener('change', this.updatePixelRatio);\n this.removePixelRatioListener = () =>\n media.removeEventListener('change', this.updatePixelRatio);\n };\n\n /**\n * Changes the pixel ration in OL which is not supported directly by OL.\n */\n private changeOpenLayerPixelRation(): void {\n if (!this.map) {\n return;\n }\n\n // need to reset cached styles as they contain pre-rendered canvases\n this.mapService.resetCaches();\n\n // set private property\n (this.map as any).pixelRatio_ = devicePixelRatio;\n\n // force redraw of all layers\n this.map!.getLayers().forEach(layer => {\n if (layer instanceof Layer) {\n const source = layer.getSource();\n if (source?.tilePixelRatio_ !== undefined) {\n source.tilePixelRatio_ = devicePixelRatio;\n source.refresh();\n }\n if (source instanceof Cluster) {\n source.getSource()?.changed();\n } else {\n source?.changed();\n }\n layer.changed();\n }\n });\n this.map.updateSize();\n }\n\n /**\n * Initialize map and it's layers\n */\n init(): void {\n const tooltipContainer = this.tooltip().nativeElement;\n const popoverContainer = this.popoverElement().nativeElement;\n const mapContainer = this.mapReference().nativeElement;\n const initialView = {\n constrainResolution: true,\n showFullExtent: true,\n center: [0, 0],\n zoom: 2,\n minZoom: 2,\n maxZoom: 24\n };\n\n this.tooltipOverlay = this.createOverlay(\n tooltipContainer,\n 'top-center',\n this.nativeProperties(),\n true\n );\n this.popoverOverlay = this.createOverlay(\n popoverContainer,\n 'top-center',\n this.nativeProperties()\n );\n\n const controls = defaultControls({\n attributionOptions: {\n label: '',\n tipLabel: this.attributionsLabel,\n expandClassName: 'element-state-info',\n collapseLabel: '',\n collapseClassName: 'element-left-2 flip-rtl'\n },\n zoomOptions: {\n zoomInLabel: '',\n zoomInTipLabel: this.zoomInLabel,\n zoomInClassName: 'element-plus',\n zoomOutLabel: '',\n zoomOutTipLabel: this.zoomOutLabel,\n zoomOutClassName: 'element-minus'\n },\n rotateOptions: {\n label: '',\n compassClassName: 'element-compass-needle'\n }\n });\n\n class ResetZoomControl extends Control {\n constructor(options: { label: string; callback: () => void }) {\n const button = document.createElement('button');\n button.className = 'element-zoom-reset';\n button.title = options.label;\n\n const element = document.createElement('div');\n element.className = 'ol-zoom-extent ol-unselectable ol-control';\n element.appendChild(button);\n\n super({ element: element });\n\n button.addEventListener('click', options.callback, false);\n }\n }\n\n controls.push(\n new ResetZoomControl({\n label: this.zoomToDefaultLabel,\n callback: () => {\n if (this.features.length) {\n this.zoomToFeatures(this.features, this.globalZoom());\n } else {\n // reset to original view\n this.map?.setView(new View(initialView));\n }\n }\n })\n );\n\n const nativeProperties = this.nativeProperties();\n if (nativeProperties?.controls) {\n nativeProperties.controls.forEach(e => controls.push(e));\n }\n\n this.map = new Map({\n controls,\n target: mapContainer,\n overlays: [this.tooltipOverlay, this.popoverOverlay],\n view: new View(initialView)\n });\n\n this.mapService.setZoomCallback(() => this.map?.getView().getZoom());\n\n this.mapService.setTheme(this.groupColors()); // Set theme before adding layers.\n\n const styleJsonValue = this.styleJson();\n if (styleJsonValue) {\n this.setMapStyle(undefined, undefined, styleJsonValue);\n }\n\n this.setGeoJsonLayer();\n\n const points = this.points();\n if (points?.length) {\n this.features = this.mapService.createFeatures(points, this.alwaysShowLabels());\n }\n this.setLayers();\n this.zoomToFeatures(this.features, this.globalZoom(), false);\n\n this.updatePixelRatio();\n }\n\n private centerValid(): boolean {\n const center = this.map?.getView()?.getCenter();\n return !!center && !isNaN(center[0]);\n }\n\n // workaround for center not being applied sometimes\n private fixCenter(): void {\n if (!this.centerValid()) {\n this.ngZone.runOutsideAngular(() => this.map?.getView()?.setCenter([0, 0]));\n }\n }\n\n /**\n * Setting up the layers for the map (cluster/vector layer)\n */\n private setLayers(): void {\n let layer: Layer;\n let labelLayer: Layer | undefined;\n const showLabels = this.features.some(feature => feature.getProperties().label?.text);\n if (this.cluster()) {\n const clusterLayer = this.mapService.clusterLayer(\n this.features,\n this.markerAnimation(),\n this.clusterDistance(),\n this.multiWorld()\n );\n\n this.clusterInteraction = new SelectCluster({\n maxZoom: this.featureClickZoom,\n zoomOnClick: this.autoZoomClusterClick,\n fitClusterPadding: this.fitClusterPadding,\n // Style the selection\n style: (feature: FeatureLike) => this.mapService.getClusterStyle(feature as Feature)\n });\n this.map?.addInteraction(this.clusterInteraction);\n\n if (showLabels) {\n labelLayer = this.mapService.labelLayer(\n this.features,\n this.multiWorld(),\n this.maxLabelLineLength(),\n this.maxLabelLines(),\n clusterLayer\n );\n }\n layer = clusterLayer;\n } else {\n layer = this.mapService.vectorLayer(this.features, this.multiWorld());\n if (showLabels) {\n labelLayer = this.mapService.labelLayer(\n this.features,\n this.multiWorld(),\n this.maxLabelLineLength(),\n this.maxLabelLines()\n );\n }\n }\n layer.set(LAYER_NAME, POINTS_LAYER);\n\n this.map?.addLayer(layer);\n if (labelLayer) {\n this.map?.addLayer(labelLayer);\n }\n }\n\n /**\n * Setting up the geoJson layer\n */\n setGeoJsonLayer(): void {\n const geoJson = this.geoJson();\n if (this.map && geoJson && Object.keys(geoJson).length > 0) {\n const layer = this.mapService.vectorLayer(\n new GeoJSON({ featureProjection: this.geoJsonProjection() }).readFeatures(geoJson),\n this.multiWorld()\n );\n layer.setStyle(this.styleFunction());\n layer.set(LAYER_NAME, GEOJSON_LAYER);\n this.ngZone.runOutsideAngular(() => this.map!.addLayer(layer));\n }\n }\n\n private setTheme(dark: boolean, maptilerKey?: string): void {\n if (maptilerKey && (this.darkTheme === undefined || this.darkTheme !== dark)) {\n this.setMapStyle(dark, maptilerKey);\n this.darkTheme = dark;\n }\n this.mapService.setTheme(this.groupColors());\n // reload the style to reflect the theme changes.\n this.refreshLayersStyle([POINTS_LAYER, GEOJSON_LAYER]);\n }\n\n private refreshLayersStyle(layerNames: string[]): void {\n this.ngZone.runOutsideAngular(() =>\n this.map\n ?.getLayers()\n .getArray()\n .forEach(layer => {\n if (layerNames.includes(layer.get(LAYER_NAME))) {\n (layer as VectorLayer<VectorSource>).setStyle(\n (layer as VectorLayer<VectorSource>).getStyle()\n );\n }\n })\n );\n }\n\n /**\n * Set Map style\n * @param dark - boolean if dark theme should be active or not\n * @param key - the api key for the maptiler styleJSON\n * @param styleJSON - a preexisting styleJSON as url with key already provided\n */\n setMapStyle(dark?: boolean, key?: string, styleJSON?: string): void {\n if (!this.map) {\n return;\n }\n\n if (styleJSON) {\n this.ngZone.runOutsideAngular(() => applyMapboxStyle(this.map!, styleJSON));\n } else if (key) {\n const layers = this.map.getLayers().getArray() as Layer[];\n layers.forEach((layer: Layer) => {\n if (layer.get('mapbox-source')) {\n this.map!.removeLayer(layer);\n }\n });\n this.mapboxStyles(styleJson(key, dark));\n }\n }\n\n /**\n * Set mapbox styles\n * @param styleJSON - the styleJSON as a JSON object\n */\n mapboxStyles(styleJSON: any): void {\n if (!this.map) {\n return;\n }\n this.ngZone.runOutsideAngular(() =>\n applyMapboxStyle(this.map!, styleJSON).then(mapOrLayer => {\n const map = mapOrLayer as Map;\n const layers = map.getLayers().getArray() as Layer[];\n layers.forEach((layer: Layer) => {\n if (layer.get('mapbox-source')) {\n // any needs to be used here otherwise library doesn't allow it\n (layer.getSource() as any).wrapX_ = this.multiWorld();\n this.map = map;\n }\n });\n })\n );\n }\n\n /**\n * Create overlay for tooltip and popover\n * @param nativeProperties - native properties\n * @param container - to create overlay in\n * @param position - overlay positioning\n */\n createOverlay(\n container: HTMLElement,\n position: Positioning,\n nativeProperties?: OverlayNativeProperties,\n isTooltip?: boolean\n ): Overlay {\n return (\n nativeProperties?.overlay ??\n new Overlay({\n element: container,\n positioning: position,\n // Stop event bubbling which allow to scroll in the popover\n stopEvent: true,\n autoPan: isTooltip ? true : false\n })\n );\n }\n\n /**\n * On feature hovering show tooltip and change cursor style\n * @param event - A hovering event\n */\n onFeatureHover(event: MapBrowserEvent): void {\n if (!this.map) {\n return;\n }\n\n const clusterHolder: ClusterHolder = {};\n const features = this.map.forEachFeatureAtPixel(\n event.pixel,\n feat => this.featureCallback(feat, clusterHolder),\n {\n hitTolerance: 2,\n layerFilter: this.layerFilter\n }\n );\n\n const element = this.map.getTargetElement();\n if (element) {\n // The cursor will change to pointer if displayPopoverOnClick is true or if Cluster Features are hovered.\n element.style.cursor =\n features?.length && (this.displayPopoverOnClick() || features.length > 1) ? 'pointer' : '';\n // The popover will be shown only for individual points, not for cluster.\n if (this.displayPopoverOnHover() && !this.isClicked) {\n if (features?.length === 1) {\n this.setPopOver(features[0], false, event);\n } else {\n this.popoverOverlay.setPosition(undefined);\n }\n return;\n }\n }\n\n this.doShowTooltip(features, clusterHolder.feature);\n }\n\n /** Display tooltip on hovering over feature type of Feature. */\n displayTooltip(feats: FeatureLike[]): void {\n if (!this.displayTooltipOnHover() || this.isClicked) {\n return;\n }\n for (const feat of feats) {\n const features = this.featureCallback(feat);\n if (features?.length === 1) {\n this.showTooltipContent(features[0]);\n return;\n }\n }\n }\n\n private doShowTooltip(features?: Feature[], cluster?: Feature): void {\n let shown = false;\n if (!this.isClicked && features?.length) {\n if (this.displayTooltipOnHover() && features?.length === 1) {\n shown = this.showTooltipContent(features[0]);\n } else if (this.selectedCluster !== cluster && this.displayTooltipOnClusterHover()) {\n shown = this.showClusterTooltipContent(features, cluster);\n }\n }\n if (!shown) {\n this.tooltipOverlay.setPosition(undefined);\n }\n }\n\n /**\n * Clicking on cluster event\n * @param event - openlayers event\n */\n onClusterClick(event: MapBrowserEvent): void {\n if (!this.map) {\n return;\n }\n if (!this.popoverCloseOnClick() && this.popoverElement()) {\n const popoverLoc = (\n this.popoverElement().nativeElement as HTMLElement\n ).firstElementChild!.getBoundingClientRect();\n const mapLoc = (this.mapReference().nativeElement as HTMLElement).getBoundingClientRect();\n const left = popoverLoc.left - mapLoc.left;\n const top = popoverLoc.top - mapLoc.top;\n const right = popoverLoc.right - mapLoc.left;\n const bottom = popoverLoc.bottom - mapLoc.top;\n if (\n left <= event.pixel[0] &&\n event.pixel[0] <= right &&\n top <= event.pixel[1] &&\n event.pixel[1] <= bottom\n ) {\n return;\n }\n }\n const clusterHolder: ClusterHolder = {};\n const clusterFeatures = this.map.forEachFeatureAtPixel(\n event.pixel,\n feat => this.featureCallback(feat, clusterHolder),\n {\n layerFilter: this.layerFilter\n }\n );\n if (clusterFeatures) {\n if (clusterFeatures.length > 1) {\n this.tooltipOverlay.setPosition(undefined);\n this.showClusterPopover(clusterHolder.feature!);\n this.emitSelection(clusterFeatures);\n } else if (clusterFeatures.length === 1) {\n if (clusterFeatures[0] instanceof RenderFeature) {\n this.closePopup();\n this.emitSelection();\n } else if (this.displayPopoverOnClick()) {\n this.featureClick(clusterFeatures[0], event, this.autoZoomFeatureClick());\n this.emitSelection(clusterFeatures);\n }\n }\n } else {\n this.closePopup();\n this.emitSelection();\n }\n }\n\n private emitSelection(features?: Feature[]): void {\n const points: MapPoint[] = (features ?? []).map(f => {\n const props = f.getProperties();\n return props.meta ?? (props as MapPoint);\n });\n this.ngZone.run(() => this.pointsSelected.emit(points));\n }\n\n /**\n * Zoom to cluster features\n * @param clusterFeatures - features to zoom in\n */\n zoomCluster(clusterFeatures: Feature[]): void {\n this.clusterInteraction?.zoomToCluster(clusterFeatures);\n }\n\n /**\n * Close popup\n */\n closePopup(): boolean {\n this.selectedCluster = undefined;\n this.popoverOverlay.setPosition(undefined);\n this.isClicked = false;\n return false;\n }\n\n /**\n * Return features inside feature object in case of cluster enabled/disabled\n * @param feat - feature to get features from\n */\n featureCallback(feat: FeatureLike, clusterHolder?: ClusterHolder): Feature[] | undefined {\n if (feat instanceof Feature) {\n const propFeatures = feat.getProperties().features;\n if (this.cluster() && propFeatures) {\n if (clusterHolder) {\n clusterHolder.feature = feat;\n }\n return propFeatures;\n }\n return [feat];\n }\n return undefined;\n }\n\n /**\n * Zoom to features, gets coordinates of points and creates bounding extent\n * @param points - list of points to zoom in, if empty all points will be zoomed to, need to be the same reference as the input\n * @param zoomLevel - number for level to zoom in\n */\n zoomToPoints(points: MapPoint[], zoomLevel: number, shouldAnimate = true): void {\n if (!points.length) {\n this.zoomToFeatures([], zoomLevel, shouldAnimate);\n } else {\n const features = points\n .map(point => this.points()?.indexOf(point))\n .filter(index => index !== undefined)\n .map(index => this.features[index]);\n this.zoomToFeatures(features, zoomLevel, shouldAnimate);\n }\n }\n\n /**\n * Zoom to features, gets coordinates of features and creates bounding extent\n * @param features - list of features to zoom in, if empty all features will be zoomed to\n * @param zoomLevel - number for level to zoom in\n */\n zoomToFeatures(features: Feature[], zoomLevel: number, shouldAnimate = true): void {\n if (!features.length) {\n features = this.features;\n }\n const coordinates: Coordinate[] = [];\n for (const f of features) {\n const coordinate = this.getFeatureCoordinate(f);\n if (coordinate) {\n coordinates.push(coordinate);\n }\n }\n this.zoomToCoordinates(coordinates, zoomLevel, shouldAnimate, this.fitPointPadding());\n }\n\n /**\n * Zoom to GeoJson using coordinates of point of click\n * @param coordinate - coordinates of point of click\n * @param zoomLevel - number for level to zoom in\n */\n zoomToGeoJson(coordinate: Coordinate, zoomLevel: number, shouldAnimate = true): void {\n this.zoomToCoordinates([coordinate], zoomLevel, shouldAnimate, this.fitGeoJsonPadding());\n }\n\n private zoomToCoordinates(\n coordinates: Coordinate[],\n maxZoom: number,\n animate = true,\n padding?: number[]\n ): void {\n this.ngZone.runOutsideAngular(() => {\n if (this.map && coordinates.length) {\n const view = this.map.getView();\n view.fit(olExtent.boundingExtent(coordinates), {\n duration: animate && this.centerValid() ? ANIMATION_DURATION : undefined,\n maxZoom,\n padding\n });\n }\n });\n }\n\n /**\n * Refresh points with new set of points\n * @param points - to refresh with\n */\n refresh(points: MapPoint[], zoomToFeatures = true): void {\n this.points.set(points);\n this.ngZone.runOutsideAngular(() => this.doRefresh(points, zoomToFeatures));\n }\n\n private doRefresh(points: MapPoint[], zoomToFeatures: boolean): void {\n if (!this.map) {\n return;\n }\n\n this.mapService.resetCaches();\n\n this.isClicked = false;\n this.clear();\n\n const layers = this.map.getLayers().getArray() as Layer[];\n this.features = this.mapService.createFeatures(points, this.alwaysShowLabels());\n\n layers.forEach((layer: Layer) => {\n const source = layer.getSource();\n\n if (source instanceof Cluster && this.cluster()) {\n const vectorSource = source.getSource();\n vectorSource?.addFeatures(this.features);\n } else if (source instanceof VectorSource) {\n source.addFeatures(this.features);\n }\n });\n\n if (zoomToFeatures) {\n this.zoomToFeatures([], this.globalZoom());\n }\n // Emit change event to notify consumers that the actual features are available.\n // This is necessary to call methods like `zoomToPoints()`\n this.ngZone.run(() => this.pointsRefreshed.emit());\n }\n\n clear(): void {\n this.ngZone.runOutsideAngular(() => this.doClear());\n }\n\n private doClear(): void {\n if (!this.map) {\n return;\n }\n\n this.mapService.resetCaches();\n\n this.hideOverlays();\n const layers = this.map.getLayers().getArray() as Layer[];\n\n layers.forEach((layer: Layer) => {\n const source = layer.getSource();\n\n if (source instanceof Cluster && this.cluster()) {\n const vectorSource = source.getSource();\n vectorSource?.clear();\n }\n\n if (source instanceof VectorSource) {\n source.clear();\n }\n });\n }\n\n /**\n * Selecting the certain point on map with API\n * @param point - which select\n */\n select(point: MapPoint, maxZoomLevel?: number): void {\n this.ngZone.runOutsideAngular(() => this.doSelect(point, maxZoomLevel));\n }\n\n private doSelect(point: MapPoint, maxZoomLevel?: number): void {\n if (!this.map) {\n return;\n }\n\n const featPoint: Feature[] = this.mapService.createFeatures([point], this.alwaysShowLabels());\n const ext = featPoint[0]?.getGeometry()?.getExtent();\n\n if (ext) {\n const center = olExtent.getCenter(ext);\n this.map.setView(\n new View({\n center: [center[0], center[1]],\n zoom: maxZoomLevel ?? this.featureSelectZoom()\n })\n );\n this.featureClick(featPoint[0]);\n this.emitSelection(featPoint);\n }\n }\n\n /** API for feature clicking with extra properties. */\n featureClick(feature: Feature, event?: any, zoom?: boolean): void {\n this.targetFeature = feature;\n this.isClicked = true;\n this.tooltipOverlay.setPosition(undefined);\n\n this.setPopOver(feature, zoom, event);\n }\n\n private setPopOver(feature: Feature, zoom: boolean | undefined, event: any): void {\n const extraProperties = feature.getProperties().extraProps;\n const geometry = feature?.getGeometry();\n\n /*If a Point geometry is present on top of a GeoJson layer, and when clicked on the point,\n \"else if\" statement will prevent repetition of the popover render and zoom method.*/\n if (geometry && geometry instanceof Point) {\n if (zoom) {\n this.zoomToFeatures([feature], this.featureClickZoom());\n }\n const coordinates = geometry.getCoordinates();\n this.selected = feature;\n this.popoverOverlay.setPosition(coordinates);\n this.popoverOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.popover().render({\n component: this.popoverComponent(),\n mapPoints: feature.getProperties() as MapPointMetaData\n });\n if (extraProperties) {\n feature.getProperties().click?.(extraProperties);\n }\n } else if (this.geoJson()) {\n const coordinates = event.coordinate;\n this.popoverOverlay.setPosition(coordinates);\n this.popoverOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.popover().render({\n component: this.popoverComponent(),\n mapPoints: [feature.getProperties() as MapPointMetaData]\n });\n if (zoom) {\n this.zoomToGeoJson(coordinates, this.featureClickZoom());\n }\n }\n }\n\n /**\n * Show tooltip with content on hover over feature\n * @param feature - to show popup on\n */\n showTooltipContent(feature: Feature): boolean {\n const coordinates = this.getFeatureCoordinate(feature);\n if (coordinates) {\n this.tooltip().setTooltip(feature.getProperties().name as string);\n this.tooltipOverlay.setOffset(this.mapService.getMarkerOffset(feature));\n this.tooltipOverlay.setPosition(coordinates);\n return true;\n }\n return false;\n }\n\n /** Sends data into cluster tooltip based on number of\n * @param features - in it\n * */\n showClusterTooltipContent(features: Feature[], cluster?: Feature): boolean {\n const coordinates =\n this.getFeatureCoordinate(cluster) ?? this.calculateClusterCoordinates(features);\n\n const labels = features.map(f => f.getProperties().name);\n this.tooltip().setTooltip(labels);\n\n this.tooltipOverlay.setOffset([0, 20]);\n this.tooltipOverlay.setPosition(coordinates);\n return true;\n }\n\n hideOverlays(): void {\n this.tooltipOverlay.setPosition(undefined);\n this.popoverOverlay.setPosition(undefined);\n }\n\n private getFeatureCoordinate(feature?: Feature): Coordinate | undefined {\n const geometry = feature?.getGeometry();\n if (geometry instanceof Point) {\n return geometry.getCoordinates();\n }\n return undefined;\n }\n\n /**\n * Calculates cluster center coordinates (lon, lat) for cluster tooltip positioning base on\n * @param features - (lon, lan)\n */\n private calculateClusterCoordinates(features: Feature[]): [number, number] {\n let lon = 0;\n let lat = 0;\n for (const feat of features) {\n const coordinates = this.getFeatureCoordinate(feat);\n if (coordinates) {\n lon += coordinates[0];\n lat += coordinates[1];\n }\n }\n return [lon / features.length, lat / features.length];\n }\n\n private showClusterPopover(cluster: Feature<Geometry>): void {\n if (!cluster) {\n this.popoverOverlay.setPosition(undefined);\n return;\n }\n // Only show cluster popover when auto zoom on cluster click is disabled or when the zoom level is sufficient.\n const zoom = this.map?.getView().getZoom();\n const show = !this.autoZoomClusterClick() || (zoom && zoom >= this.clusterClickZoom());\n if (!show) {\n return;\n }\n this.popoverOverlay.setOffset([0, 20]);\n this.popoverOverlay.setPosition(this.getFeatureCoordinate(cluster));\n const features = cluster.getProperties().features as Feature<Geometry>[];\n this.popover().render({\n component: this.clusterPopoverComponent(),\n mapPoints: features.map(f => f.getProperties() as MapPointMetaData),\n map: this.map\n });\n // Remember the selected cluster to avoid showing the a tooltip for cluster which has an open popover.\n this.selectedCluster = cluster;\n }\n}\n","<div #map class=\"map\"></div>\n<ng-content select=\"si-map-tooltip\">\n <si-map-tooltip [moreText]=\"moreText()\" />\n</ng-content>\n<si-map-popover #popover />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMapPopoverComponent } from './components/si-map-popover/si-map-popover.component';\nimport { SiMapTooltipComponent } from './components/si-map-tooltip/si-map-tooltip.component';\nimport { SiMapComponent } from './si-map.component';\n\n@NgModule({\n imports: [SiMapComponent, SiMapPopoverComponent, SiMapTooltipComponent],\n exports: [SiMapComponent]\n})\nexport class SiMapModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './components/index';\nexport * from './models/index';\nexport * from './services/map.service';\nexport * from './si-map.module';\nexport * from './si-map.component';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMapModule } from './components/si-map/index';\n\n@NgModule({\n exports: [SiMapModule]\n})\nexport class SiMapsNgModule {}\n\n/**\n * @deprecated Use {@link SiMapsNgModule} instead. The `Simpl` prefix is deprecated and will be removed in v51.\n */\nexport { SiMapsNgModule as SimplMapsNgModule };\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './components/si-map/index';\nexport * from '@siemens/maps-ng/translate';\nexport * from './public-api.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["createEmptyExtent","defaultControls","applyMapboxStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAGG;AACH;AACO,MAAM,qBAAqB,GAAG;AAC9B,MAAM,oBAAoB,GAAG;AAC7B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,kBAAkB,GAAG;AAC3B,MAAM,YAAY,GAAG;AACrB,MAAM,kBAAkB,GAAG;AAC3B,MAAM,YAAY,GAAG;AACrB,MAAM,mBAAmB,GAAG;AAC5B,MAAM,cAAc,GAAG;AACvB,MAAM,2BAA2B,GAAG;AACpC,MAAM,0BAA0B,GAAG;AACnC,MAAM,0BAA0B,GAAG;AACnC,MAAM,mBAAmB,GAAG;AAC5B,MAAM,wBAAwB,GAAG;AACxC;AACO,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAElD;AACO,MAAM,2BAA2B,GAAG;AAC3C;AACO,MAAM,qBAAqB,GAAG;AACrC;AACO,MAAM,mBAAmB,GAAG;AACnC;AACO,MAAM,wBAAwB,GAAG;AACjC,MAAM,aAAa,GAAG;AACtB,MAAM,YAAY,GAAG;AACrB,MAAM,UAAU,GAAG;;AChC1B;;;AAGG;MAaU,qBAAqB,CAAA;AACb,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;AAEtE;;;;;;;AAOG;AACM,IAAA,QAAQ,GAAG,KAAK,CACvB,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,mDAAA,CAAqD,CAAC,oDACxE;AAED;;;;AAIG;AACM,IAAA,cAAc,GAAG,KAAK,CAAC,EAAE,0DAAC;AAEnC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;AAEmB,IAAA,aAAa,GAAG,MAAM,CAAC,CAAC,yDAAC;AAC3B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhD;;;;;;AAMG;AACH,IAAA,UAAU,CAAC,MAAyB,EAAA;AAClC,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB;QACF;QAEA,MAAM,IAAI,GAAa,EAAE;AAEzB,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7B,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAC3B,2BAA2B,EAC3B,SAAS,CAAC,MAAM,GAAG,2BAA2B,CAC/C;AAED,YAAA,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC1C;QAEA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChC;AAEQ,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE;AACvE,YAAA,OAAO,CAAA,KAAA,EAAQ,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,WAAW;QACrE;aAAO;YACL,OAAO,CAAA,KAAA,EAAQ,KAAK,CAAA,MAAA,CAAQ;QAC9B;IACF;AAEQ,IAAA,UAAU,CAAC,OAAe,EAAA;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO;IAClD;uGArEW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBlC,4KAMA,EAAA,MAAA,EAAA,CAAA,0aAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDMY,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAId,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,gBAAgB,EAAA,OAAA,EAEjB,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,4KAAA,EAAA,MAAA,EAAA,CAAA,0aAAA,CAAA,EAAA;qEAKkC,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEjBvE;;;AAGG;MAQU,oCAAoC,CAAA;AAC/C,IAAA,OAAO,sBAAsB,CAC3B,SAA+C,EAC/C,OAAgB,EAAA;AAEhB,QAAA,OAAO,IAAI;IACb;uGANW,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,6BAAA;AACX,iBAAA;;;ACVD;;;AAGG;MAQU,6BAA6B,CAAA;AACxC,IAAA,OAAO,sBAAsB,CAC3B,SAAwC,EACxC,OAAgB,EAAA;AAEhB,QAAA,OAAO,IAAI;IACb;uGANW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA,sBAAA;AACX,iBAAA;;;ACVD;;;AAGG;MA2BU,qBAAqB,CAAA;AACf,IAAA,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAa,SAAS,CAAC;AACpD,IAAA,SAAS,GAAG,MAAM,CAAgB,IAAI,qDAAC;AAEvC,IAAA,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CACtD,kBAAkB,EAClB;AACE,QAAA,IAAI,EAAE;AACP,KAAA,CACF;AAEkB,IAAA,cAAc,GAAG,SAAS,CAAC,QAAQ,CACpD,gBAAgB,EAChB;AACE,QAAA,IAAI,EAAE;AACP,KAAA,CACF;AAEkB,IAAA,cAAc,GAAG,SAAS,CAAC,QAAQ,CACpD,gBAAgB,EAChB;AACE,QAAA,IAAI,EAAE;AACP,KAAA,CACF;AAEM,IAAA,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAiB,EAAA;AACxD,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE;QAE/B,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC;QAClD;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/B;QAEA,IAAI,GAAG,EAAE;YACP,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM;AACvE,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG;AAC5E,YAAA,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,EAAE;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;QAC/B;IACF;IAEQ,qBAAqB,CAC3B,SAAoB,EACpB,SAAgD,EAAA;QAEhD,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;;QAGvE,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,UAAU,EAAE,SAAS,CAAC;AACrF,QAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;IAChD;AAEQ,IAAA,aAAa,CAAC,SAAgD,EAAA;;QAEpE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE;QAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE;AACzF,QAAA,IAAI,CAAC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE;IAC/E;uGA1DW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAOtB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAOhB,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAOX,WAAW,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnDvB,s6BA0BA,EAAA,MAAA,EAAA,CAAA,yoCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAY,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oCAAoC,EAAA,QAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA;;2FAIlE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB,CAAC,6BAA6B,EAAE,oCAAoC,CAAC,EAAA,QAAA,EAAA,s6BAAA,EAAA,MAAA,EAAA,CAAA,yoCAAA,CAAA,EAAA;wEAKjB,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAIpE,kBAAkB,EAAA,EAAA,GAClB;AACE,4BAAA,IAAI,EAAE;AACP,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAID,gBAAgB,EAAA,EAAA,GAChB;AACE,4BAAA,IAAI,EAAE;AACP,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAID,gBAAgB,EAAA,EAAA,GAChB;AACE,4BAAA,IAAI,EAAE;AACP,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEpDL;;;AAGG;;ACIH,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAE,IAAY,KAAY;AACnE,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC5D,OAAO,GAAG,GAAG,GAAG,GAAG,EAAE;AACvB,CAAC;AAEM,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,MAAK;QACV,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC/D,QAAA,MAAM,MAAM,GAAqC;YAC/C,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,8BAA8B,CAAC;YACpD,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;YACnD,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;YACnD,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC;YACjD,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;YACnD,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC;YACrD,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACzC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC;SAC1C;QAED,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC;YAC7C,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC;YAC/C,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC;YACnD,kBAAkB,EAAE,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC;YAC5D,MAAM;AACN,YAAA,YAAY,EAAE;AACZ,gBAAA,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;AACpE,gBAAA,OAAO,EAAE;AACP,oBAAA,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC;AACtC,oBAAA,OAAO,CAAC,KAAK,EAAE,yBAAyB,CAAC;AACzC,oBAAA,OAAO,CAAC,KAAK,EAAE,0BAA0B,CAAC;AAC1C,oBAAA,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC;AACxC,oBAAA,OAAO,CAAC,KAAK,EAAE,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC;AAClC,oBAAA,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC;AACpC;AACe;SACnB;IACH;CACD;;AC9CD;;;AAGG;AAIH;;AAEG;MACU,QAAQ,CAAA;AACF,IAAA,OAAO;AACP,IAAA,QAAQ;AAEzB,IAAA,WAAA,CAAY,cAAqD,QAAQ,EAAA;AACvE,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,QAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;YACnC,MAAM,YAAY,GAAG,WAAW;AAChC,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,YAAY,CAAC;AAE7B,YAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAC9B,gBAAA,IAAI,CAAC,QAAQ,GAAG,YAA4B;gBAC5C,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,OAAO;YAC1D;iBAAO;AACL,gBAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;gBACxB,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,MAAM;YACzD;QACF;aAAO;YACL,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AAC/C,gBAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;AAC1B,gBAAA,IAAI,MAAM,IAAI,CAAC,EAAE;AACf,oBAAA,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC;gBACpF;AACA,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;AACrD,YAAA,CAAC,CAAC;QACJ;IACF;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IACpC;AAEA,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;IAC5B;AAEA,IAAA,QAAQ,CAAC,OAAe,EAAA;;;QAGtB,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACjC,MAAM,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAC3C,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B;aAAO;YACL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QAClC;IACF;AACD;;AC7DD;;;AAGG;;ACIH,MAAM,OAAO,GAAqC;AAChD,IAAA,OAAO,EAAE;;;;;AAKV,CAAA;AACC,IAAA,OAAO,EAAE;;;;;;;AAOR,EAAA,CAAA;AACD,IAAA,IAAI,EAAE;;;;;;;;;AASL,EAAA,CAAA;AACD,IAAA,OAAO,EAAE;;;;;;;;;AASR,EAAA,CAAA;AACD,IAAA,MAAM,EAAE;;;;;;;;;AASP,EAAA,CAAA;AACD,IAAA,OAAO,EAAE;;;;;;;;;;AAUR,EAAA,CAAA;AACD,IAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACD,IAAA,OAAO,EAAE;;;;;;;;;AAST,CAAA;CACD;AAEM,MAAM,SAAS,GAAG,CAAC,MAAwB,EAAE,KAAgB,KAAY;IAC9E,OAAO;;;;AAIY,mBAAA,EAAA,KAAK,CAAC,SAAS,CAAA;AACf,mBAAA,EAAA,KAAK,CAAC,SAAS,CAAA;AACjB,iBAAA,EAAA,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;;;IAGnC,OAAO,CAAC,MAAM,CAAC;;CAElB;AACD,CAAC;;AClGD;;;AAGG;AACH;MA2Ca,UAAU,CAAA;IACb,UAAU,GAA4B,EAAE;IACxC,iBAAiB,GAA4B,EAAE;IAC/C,eAAe,GAA4B,EAAE;AAC7C,IAAA,QAAQ;AAER,IAAA,MAAM;IAEN,gBAAgB,GAA2B,EAAE;IAC7C,mBAAmB,GAA2B,EAAE;IAExD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,mBAAmB,GAAG,EAAE;IAC/B;AAEQ,IAAA,aAAa,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAgB,EAAA;QAC1E,MAAM,QAAQ,GAAG,CAAA,EAAG,SAAS,IAAI,SAAS,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;AACxD,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;QACxC;QAEA,IAAI,WAAW,GAAG,EAAE;QACpB,IAAI,WAAW,GAAG,EAAE;QACpB,IAAI,SAAS,GAAG,CAAC;QACjB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;AACvC,QAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACjB,YAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,YAAY,GAChB,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AAC3E,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,SAAS,EAAE;AACpE,oBAAA,IAAI,SAAS,GAAG,CAAC,IAAI,QAAQ,EAAE;AAC7B,wBAAA,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK;AAC5C,8BAAE;AACF,8BAAE,CAAC,WAAW,CAAC,MAAM,GAAG;kCAClB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC;AACxC,kCAAE,WAAW,IAAI,KAAK;AAC5B,wBAAA,WAAW,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,IAAI,WAAW;wBACtD,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,WAAW;oBACvD;yBAAO;AACL,wBAAA,WAAW,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,IAAI,WAAW;oBACxD;oBACA,WAAW,GAAG,EAAE;AAChB,oBAAA,SAAS,EAAE;gBACb;AACA,gBAAA,WAAW,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,EAAE,IAAI,YAAY;YACxD;YACA,IAAI,WAAW,EAAE;AACf,gBAAA,WAAW,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,IAAI,WAAW;YACxD;QACF;aAAO;YACL,WAAW,GAAG,SAAS;QACzB;QAEA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,WAAW;IACvD;IAEQ,iBAAiB,CACvB,IAAA,GAAe,EAAE,EACjB,SAAiB,EACjB,QAAgB,EAChB,WAA6B,EAC7B,YAA8B,EAAA;AAE9B,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA,EAAI,mBAAmB,CAAA,CAAA,EAAI,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,EAAE;AACxI,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAC3C;AAEA,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC;QAChB,MAAM,YAAY,GAAG,CAAC;QACtB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,QAAA,MAAM,gBAAgB,GAAG;AACvB,YAAA;AACE,gBAAA,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACxB,gBAAA,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;gBACjC,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACxB,gBAAA,OAAO,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;gBACnD,KAAK,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ;AAClC,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;AAC9C,gBAAA,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU;gBACrC,KAAK,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ;AACjC,aAAA;AACD,YAAA;gBACE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC;AAC7C,gBAAA,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU;gBACrC,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ;AAChC;SACO;AAEV,QAAA,QAAQ,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAC/D,MAAM,IACJ,IAAI,IAAI,CAAC;AACP,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AAC/C,YAAA,MAAM,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC/D,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvB,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,CAAC;AACvD,gBAAA,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,CAAC;AACvD,gBAAA,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG,CAAC;AACvD,gBAAA,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,YAAY,GAAG;AACvD,aAAA;AACD,YAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,YAAA,QAAQ,EAAE;SACX,CAAC,CACL;IACH;AAEQ,IAAA,YAAY,GAA6B,MAAM,SAAS;IAExD,OAAO,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;IACnC;AAEA,IAAA,eAAe,CAAC,QAAmC,EAAA;QACjD,IAAI,CAAC,YAAY,GAAG,QAAQ,KAAK,MAAM,SAAS,CAAC;IACnD;AAEA,IAAA,QAAQ,CAAC,WAA8D,EAAA;QACrE,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;IACzB;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,KAAK,EAAE;QACpC,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,MAAkB,EAAE,gBAAgB,GAAG,KAAK,EAAA;QACzD,OAAO,MAAM,CAAC,GAAG,CACf,KAAK,IACH,IAAI,OAAO,CAAC;AACV,YAAA,QAAQ,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;AAEvD,YAAA,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;AACpB,YAAA,KAAK,EAAE,gBAAgB,GAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAmB,GAAG,SAAS;YAC5E,KAAK,EAAE,KAAK,CAAC,KAAK;;;YAGlB,UAAU,EAAE,KAAK,CAAC,eAAe;YACjC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,KAAK,EAAE,KAAK,CAAC;AACd,SAAA,CAAC,CACL;IACH;AAEA;;;;;;AAMG;AACH,IAAA,YAAY,CACV,QAAmB,EACnB,eAAwB,EACxB,eAAuB,EACvB,UAAmB,EAAA;QAEnB,OAAO,IAAI,eAAe,CAAC;AACzB,YAAA,SAAS,EAAE,kBAAkB;AAC7B,YAAA,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,OAAO,CAAC;AAClB,gBAAA,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,mBAAmB,CAAC;gBAChF,WAAW,EAAE,mBAAmB,GAAG,CAAC;gBACpC,MAAM,EAAE,IAAI,YAAY,CAAC;oBACvB;iBACD;aACF,CAAC;YACF,iBAAiB,EAAE,eAAe,GAAG,kBAAkB,GAAG,CAAC;YAC3D,KAAK,EAAE,CAAC,OAAgB,KAAK,IAAI,CAAC,eAAe,CAAC,OAAO;AAC1D,SAAA,CAAC;IACJ;AAEA;;;;AAIG;AACH,IAAA,WAAW,CACT,QAAmB,EACnB,UAAmB,EACnB,eAAwB,KAAK,EAAA;QAE7B,OAAO,IAAI,WAAW,CAAC;AACrB,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,YAAY,CAAC;gBACvB,QAAQ;AACR,gBAAA,KAAK,EAAE;aACR,CAAC;YACF,KAAK,EAAE,CAAC;AACN,kBAAE,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,OAAkB,EAAE,KAAK,EAAE,QAAQ;AACrE,kBAAE;AACL,SAAA,CAAC;IACJ;IAEA,UAAU,CACR,QAAmB,EACnB,UAAmB,EACnB,cAAsB,EACtB,QAAgB,EAChB,YAAoB,EAAA;AAEpB,QAAA,MAAM,aAAa,GAAG,YAAY,EAAE,SAAS,EAA6B;QAC1E,OAAO,IAAI,WAAW,CAAC;AACrB,YAAA,SAAS,EAAE,cAAc;AACzB,YAAA,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,IAAI,YAAY,CAAC;gBACvB,QAAQ;AACR,gBAAA,KAAK,EAAE;aACR,CAAC;AACF,YAAA,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,IACZ,IAAI,CAAC,aAAa,CAChB,OAAyB,EACzB,QAA4B,EAC5B,cAAc,EACd,QAAQ,EACR,aAAa,EACb,KAAK;AAEV,SAAA,CAAC;IACJ;AAEA;;;;AAIG;AACH,IAAA,eAAe,CAAC,OAAgB,EAAA;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ;QACjD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;QACtD;QACA,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM;AACnD,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;AAE5B,QAAA,IAAI,IAAI,KAAK,CAAC,EAAE;YACd,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;QACtD;QAEA,IAAI,KAAK,GAAY,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;QAEhD,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,KAAK,CAAC;oBACR,KAAK,EAAE,IAAI,MAAM,CAAC;AAChB,wBAAA,MAAM,EAAE,mBAAmB;wBAC3B,IAAI,EAAE,IAAI,IAAI,CAAC;AACb,4BAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;yBACnB,CAAC;wBACF,MAAM,EAAE,IAAI,MAAM,CAAC;AACjB,4BAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;AAC7B,4BAAA,KAAK,EAAE;yBACR;qBACF;iBACF,CAAC;AACF,gBAAA,IAAI,KAAK,CAAC;oBACR,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAS,CAAC;oBACrD,IAAI,EAAE,IAAI,IAAI,CAAC;AACb,wBAAA,IAAI,EAAE,IAAI,GAAG,qBAAqB,GAAG,CAAA,EAAG,qBAAqB,CAAA,CAAA,CAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAClF,wBAAA,SAAS,EAAE,OAAO;AAClB,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;AAC/C,wBAAA,IAAI,EAAE;qBACP;iBACF;aACF;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK;QACrC;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;;;AAKG;IACH,eAAe,CAAC,OAAgB,EAAE,OAAgB,EAAE,QAAmB,EAAE,KAAK,GAAG,KAAK,EAAA;QACpF,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,QAAQ;AACrD,QAAA,MAAM,IAAI,GAAG,OAAO,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;QAC3D,MAAM,MAAM,GAAkB,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM;QAEzD,IAAI,IAAI,EAAE;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;YACrE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAEhC,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,KAAK,GAAG;oBACN,IAAI,KAAK,CACP;AACE,0BAAE;AACF,0BAAE;AACE,4BAAA,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,QAAS,EAAE,MAAM;yBACxD;iBAER;AAED,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK;YAC9B;AAEA,YAAA,OAAO,KAAK;QACd;QAEA,OAAO;AACL,YAAA,IAAI,KAAK,CAAC;gBACR,MAAM,EAAE,IAAI,MAAM,CAAC;AACjB,oBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;AAC7B,oBAAA,KAAK,EAAE;iBACR;aACF;SACF;IACH;AAEA,IAAA,aAAa,CACX,OAAuB,EACvB,QAA0B,EAC1B,cAAsB,EACtB,QAAgB,EAChB,aAAuC,EACvC,KAAK,GAAG,KAAK,EAAA;AAEb,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;;QAGzE,MAAM,KAAK,GAAiB,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK;AAEzD,QAAA,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;AACzB,YAAA,OAAO,YAAY;QACrB;;AAGA,QAAA,IAAI,WAAW,GAAG,CAAC,CAAC,aAAa;QAEjC,IAAI,aAAa,EAAE;YACjB,IAAI,eAAe,GAAG,EAAE;;YAGxB,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,IAAG;AAC5C,gBAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACzC,gBAAA,IAAI,eAAe,EAAE,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;oBACnE,WAAW,GAAG,KAAK;gBACrB;AACF,YAAA,CAAC,CAAC;QACJ;;QAGA,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;YAC1E,IAAI,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;YAErC,IAAI,CAAC,KAAK,EAAE;AACV,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CACxC,KAAK,EAAE,IAAI,EACX,cAAc,EACd,QAAQ,EACR,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAC3B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAC9B;gBACD,KAAK,GAAG,WAAW,CAAC,GAAG,CACrB,UAAU,IACR,IAAI,KAAK,CAAC;AACR,oBAAA,IAAI,EAAE;AACP,iBAAA,CAAC,CACL;AAED,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK;YACnC;AAEA,YAAA,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;QACpC;AAEA,QAAA,OAAO,YAAY;IACrB;AAEA,IAAA,eAAe,CAAC,OAAgB,EAAA;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM;AAC9C,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI;QAC/B,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC9C,QAAA,MAAM,cAAc,GAAG,CAAC,UAAU,IAAI,UAAU,KAAK,QAAQ,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC;AAC9E,QAAA,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC;IAC5B;AAEA,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM;AAC9C,QAAA,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI;QAC/B,MAAM,KAAK,GAAG,CAAC,UAAU,KAAK,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC;AACpE,QAAA,MAAM,MAAM,GACV,CAAC,UAAU,IAAI,UAAU,KAAK;AAC5B,cAAE;cACA,UAAU,KAAK;AACf,kBAAE;AACF,kBAAE,cAAc,GAAG,CAAC,GAAG,KAAK;AAClC,QAAA,MAAM,KAAK,GACT,CAAC,UAAU,IAAI,UAAU,KAAK;AAC5B,cAAE;cACA,UAAU,KAAK;AACf,kBAAE;AACF,kBAAE,cAAc,GAAG,CAAC,GAAG,KAAK;AAClC,QAAA,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB;IAEQ,eAAe,CAAC,QAAmB,EAAE,QAAkB,EAAA;AAC7D,QAAA,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAErE,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;AACtB,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,mBAAmB;AAC3B,YAAA,UAAU,EAAE,mBAAmB;YAC/B,MAAM;YACN,IAAI;AACJ,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,IAAI,MAAM,CAAC;AACjB,gBAAA,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe;AACnE,gBAAA,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,qBAAqB,GAAG;aACpD,CAAC;AACF,YAAA,QAAQ,EAAE;SACJ,CAAC,CAAC;AAEV,QAAA,OAAO,KAAK;IACd;IAEQ,mBAAmB,CACzB,QAAmB,EACnB,QAAkB,EAAA;AAElB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,MAAM,MAAM,GAA2B,EAAE;QACzC,MAAM,SAAS,GAAa,EAAE;QAC9B,MAAM,eAAe,GAAa,EAAE;AAEpC,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AAClC,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK;;AAG3B,YAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,gBAAA,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,gBAAA,eAAe,CAAC,IAAI,CAClB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAC3E;gBACD;YACF;AAEA,YAAA,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;gBACnB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACvC;iBAAO;AACL,gBAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YACrB;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,IAAI,GAAa,EAAE;AACzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC;;AAGzD,QAAA,MAAM,MAAM,GAAG;YACb,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACzE,YAAA,GAAG;SACJ;AAED,QAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IACzB;AAEA;;AAEG;IACK,2BAA2B,CAAC,QAAgB,EAAE,aAAqB,EAAA;AACzE,QAAA,MAAM,YAAY,GAAG,aAAa,GAAG,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC;IACzC;AAEQ,IAAA,kBAAkB,CAAC,IAAc,EAAE,MAAgB,EAAE,IAAY,EAAA;AACvE,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,wBAAwB;AAEpD,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,QAAQ,GAAG,KAAK,GAAG,YAAY;;YAGnC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;gBAChC,QAAQ,GAAG,CAAC;YACd;AAEA,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACrB;IACF;AAEQ,IAAA,cAAc,CACpB,OAAgB,EAChB,QAAkB,EAClB,MAAsB,EAAA;QAEtB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;AACvC,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC9E;AAEA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;AAE5D,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QACjC;AAEA,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC1B,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;QAC/C;AAEA,QAAA,OAAO,SAAS;IAClB;AAEA;;;;;AAKG;AACK,IAAA,cAAc,CAAC,OAAgB,EAAE,QAAkB,EAAE,MAAsB,EAAA;AACjF,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB;QAEzC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK;QAC7C,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QACpC;AAEA,QAAA,IAAI,MAAM,EAAE,KAAK,EAAE;AACjB,YAAA,KAAK,GAAG,MAAM,CAAC,KAAK;QACtB;AAEA,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;YAClB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1C;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,YAAY,CAAC,KAAa,EAAA;QAChC,OAAO,IAAI,MAAM,CAAC;AAChB,YAAA,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,IAAI,IAAI,CAAC;gBACb;aACD,CAAC;YACF,MAAM,EAAE,IAAI,MAAM,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;AAC7B,gBAAA,KAAK,EAAE;aACR;AACF,SAAA,CAAC;IACJ;IAEQ,aAAa,CAAC,KAAa,EAAE,QAA4B,EAAA;AAC/D,QAAA,MAAM,gBAAgB,GAAgB;YACpC,KAAK;AACL,YAAA,GAAG,EAAE,YAAY;AACjB,YAAA,KAAK,EAAE;SACR;QAED,OAAO,IAAI,IAAI,CAAC,EAAE,GAAG,gBAAgB,EAAE,GAAG,QAAQ,EAAE,CAAC;IACvD;IAEQ,oBAAoB,CAAC,KAAgB,EAAE,MAAsB,EAAA;QACnE,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO;QAC7B;AACA,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC;QACrC;QACA,OAAO,MAAM,CAAC,KAAK;IACrB;AAEQ,IAAA,eAAe,CAAC,MAAqB,EAAA;AAC3C,QAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;AAE5D,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QACjD,MAAM,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC;QAEvD,OAAO,IAAI,IAAI,CAAC;AACd,YAAA,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YACd,KAAK,EAAE,aAAa;AACpB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACrB,YAAA,GAAG,EAAE;AACN,SAAA,CAAC;IACJ;uGAlmBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;AC9CD;;;AAGG;AAOG,MAAO,aAAc,SAAQ,MAAM,CAAA;AAC/B,IAAA,WAAW;AACX,IAAA,OAAO;AACP,IAAA,iBAAiB;AAEzB,IAAA,WAAA,CAAY,OAKX,EAAA;QACC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAEvC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;AAC9B,QAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB;AAClD,QAAA,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD;AAEA,IAAA,aAAa,CAAC,CAAc,EAAA;QAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;;QAGhC,MAAM,OAAO,GAAG,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7B;IACF;AAEA,IAAA,aAAa,CAAC,OAAkB,EAAA;AAC9B,QAAA,MAAM,MAAM,GAAGA,WAAiB,EAAE;AAClC,QAAA,OAAO,CAAC,OAAO,CAAC,OAAO,IAAG;AACxB,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;YACtC,IAAI,QAAQ,EAAE;gBACZ,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,EAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE;AACnC,YAAA,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE;AACjC,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,SAAA,CAAC;IACJ;AACD;;ACzDD;;;AAGG;AAEH;AACA;AACA,MAAM,WAAW,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC;AACrD,MAAM,YAAY,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC;AACtD,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC;AAEnD;AACA,MAAM,WAAW,GAAG,qBAAqB;AACzC,MAAM,QAAQ,GAAG,CAAC,OAAe,KAAa,CAAA,kBAAA,EAAqB,OAAO,CAAA,CAAA,CAAG;AAC7E,MAAM,QAAQ,GAAG,CAAC,OAAe,KAAa,CAAA,mBAAA,EAAsB,OAAO,CAAA,CAAA,CAAG;AAC9E,MAAM,QAAQ,GAAG,CAAC,OAAe,KAAa,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAA,CAAG;AAC/E,MAAM,OAAO,GAAG,kBAAkB;AAClC,MAAM,OAAO,GAAG,oBAAoB;AAE7B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc,MAAW;AAC9D,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,MAAM,EAAE,eAAe;AACvB,IAAA,SAAS,EAAE;AACT,QAAA,aAAa,EAAE;AACb,YAAA,aAAa,EAAE,+DAA+D;AAC9E,YAAA,MAAM,EAAE;AACT,SAAA;AACD,QAAA,cAAc,EAAE;YACd,KAAK,EAAE,CAAA,iDAAA,EAAoD,GAAG,CAAA,CAAE;AAChE,YAAA,MAAM,EAAE;AACT,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,aAAa,EACX,2LAA2L;AAC7L,YAAA,MAAM,EAAE;AACT;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,YAAY;AACpB,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,kBAAkB,EAAE,IAAI,GAAG,WAAW,GAAG,oBAAoB;AAC7D,gBAAA,oBAAoB,EAAE;AACvB;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;AACP,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC3C;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE;gBACR,KAAK;AACL,gBAAA,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AACvB,gBAAA,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AACxB,gBAAA,CAAC,IAAI,EAAE,UAAU,EAAE,mBAAmB;AACvC;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;AACP,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzC,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC1C;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC;AACnD,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;AACP,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzC,wBAAA,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC1C,wBAAA,CAAC,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;AAC1C;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG;AACR;AACF,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AACnB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACpD,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;wBAChE,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,2BAA2B,CAAC;wBAClE,CAAC,CAAC,EAAE,IAAI,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;wBAChE,CAAC,EAAE,EAAE,IAAI,GAAG,wBAAwB,GAAG,2BAA2B,CAAC;wBACnE,CAAC,EAAE,EAAE,IAAI,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;wBACjE,CAAC,EAAE,EAAE,IAAI,GAAG,wBAAwB,GAAG,2BAA2B,CAAC;wBACnE,CAAC,EAAE,EAAE,IAAI,GAAG,wBAAwB,GAAG,2BAA2B;AACnE;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;AACjD,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;wBAC7D,CAAC,CAAC,EAAE,IAAI,GAAG,qBAAqB,GAAG,2BAA2B,CAAC;wBAC/D,CAAC,EAAE,EAAE,IAAI,GAAG,qBAAqB,GAAG,2BAA2B,CAAC;wBAChE,CAAC,EAAE,EAAE,IAAI,GAAG,oBAAoB,GAAG,0BAA0B,CAAC;wBAC9D,CAAC,EAAE,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AACrD;AACF;AACF,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO;AACtC,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF;AACF;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;wBACjE,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;wBACjE,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,0BAA0B;AACjE;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,qBAAqB,GAAG,SAAS,CAAC;wBAC7C,CAAC,CAAC,EAAE,IAAI,GAAG,qBAAqB,GAAG,SAAS,CAAC;wBAC7C,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS;AACjC;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,GAAG;AACR;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,kBAAkB,GAAG,oBAAoB;AAC9D,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,sBAAsB,GAAG,oBAAoB;AAClE,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;AACP,wBAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,wBAAA,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACX,wBAAA,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACZ,wBAAA,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACZ;AACF,iBAAA;AACD,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE;AACb,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC5C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,SAAS;AACzB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;AAC7C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,aAAa,EAAE;AACb,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;wBACd,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;wBACf,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;AACf;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,mBAAmB,EAAE,IAAI;AACzB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE,CAAC;AACxB,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,mBAAmB;gBACnE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,oBAAoB;AACnE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC7F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC3F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC9F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC7F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC3F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC1D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC9F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,oBAAoB;AAChE,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS;AAC1C,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AACtE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,SAAS,GAAG,SAAS;AAC1C,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF;AACF,aAAA;AACD,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AACzE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,kBAAkB;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,0BAA0B,GAAG,0BAA0B;AAC5E,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAClE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACjE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAChF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACrF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACnF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACtF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACxE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,gBAAgB,GAAG,oBAAoB;AAC5D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAClE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACjE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AAChF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACrF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,wBAAwB;AAC9B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACnF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;AACtF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,oBAAoB;AAChE,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF;AACF,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,oBAAoB;AAChE,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF;AACF,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC7F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC3F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,CAAC;AACN;AACF;AACF,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC9F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,oBAAoB;AAC7D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,GAAG,CAAC;wBACT,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC1E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AACxF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC7F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC3F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,WAAW,EAAE;AACd,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,eAAe,GAAG,oBAAoB;AAC3D,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAC9F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,IAAI,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;wBAC5D,CAAC,EAAE,EAAE,IAAI,GAAG,oBAAoB,GAAG,2BAA2B;AAC/D;AACF,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AACnB;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,QAAQ,EAAE;AACR,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,wBAAwB;AACpE,gBAAA,cAAc,EAAE;AACd,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,OAAO,EAAE;AACP,wBAAA,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACZ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACd;AACF,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AACvB;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,0BAA0B;AAChC,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,kBAAkB,GAAG,0BAA0B;AACpE,gBAAA,YAAY,EAAE,CAAC;AACf,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,6BAA6B;AACnC,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;wBAChE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,2BAA2B,CAAC;wBACpE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,0BAA0B;AACnE;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,GAAG;AACR;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE;gBACR,KAAK;AACL,gBAAA,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AACxB,gBAAA,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrB,CAAC,MAAM,EAAE,YAAY,CAAC;AACtB,gBAAA,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;AACrB;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,4BAA4B;AAClC,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;wBACpE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;wBACnE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,2BAA2B;AACpE;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,GAAG;AACR;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,cAAc,EAAE;AACjB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,QAAQ,EAAE;AACR,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,2BAA2B,GAAG,0BAA0B,CAAC;wBACpE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;wBACnE,CAAC,CAAC,EAAE,IAAI,GAAG,0BAA0B,GAAG,2BAA2B;AACpE;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,CAAC;AACT,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,EAAE,EAAE,CAAC;AACP;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC;AACxB,aAAA;AACD,YAAA,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE;AACP;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,kBAAkB,EAAE,OAAO;AAC3B,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE,GAAG;AAC1B,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,uBAAuB,EAAE,KAAK;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,uBAAuB;AACvE,gBAAA,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,EAAE,IAAI,GAAG,iBAAiB,GAAG,2BAA2B;AACzE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AACtF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,kBAAkB,EAAE,OAAO;AAC3B,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE,GAAG;AAC1B,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,uBAAuB,EAAE,KAAK;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,uBAAuB;AACvE,gBAAA,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC;AACpF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE,CAAC;AACjB,gBAAA,kBAAkB,EAAE,OAAO;AAC3B,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,uBAAuB,EAAE,KAAK;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,mBAAmB;AACnE,gBAAA,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,oBAAoB;AACnE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AACrF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,qBAAqB;AAC3B,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,kBAAkB,EAAE,GAAG;AACvB,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,mBAAmB;AACnE,gBAAA,gBAAgB,EAAE,CAAC;gBACnB,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,oBAAoB;AACnE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC;AACjE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,MAAM,EAAE,GAAG;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,+BAA+B;AAC7C,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,gBAAgB,EAAE,MAAM;AACxB,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE,GAAG;AAC1B,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,uBAAuB,GAAG,sBAAsB;gBACrE,iBAAiB,EAAE,IAAI,GAAG,oBAAoB,GAAG,uBAAuB;AACxE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,UAAU,EAAE;AACV,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AAC9D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,MAAM,CAAC;wBACZ,CAAC,EAAE,EAAE,WAAW;AACjB;AACF,iBAAA;AACD,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,oBAAoB;AACtE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC9E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,MAAM,CAAC;wBACX,CAAC,EAAE,EAAE,WAAW;AACjB;AACF,iBAAA;AACD,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,wBAAwB;AAC1E,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC5C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE,MAAM;AACxB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;AAC7C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE,MAAM;AACxB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,wBAAwB;AAC1E,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AAC1C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE;AACP;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;wBAC3D,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,oBAAoB,CAAC;wBAC3D,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,wBAAwB;AAC/D;AACF,iBAAA;gBACD,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;AACnF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE;AACP;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,CAAC,CAAC;wBACN,CAAC,CAAC,EAAE,EAAE;AACP;AACF,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;wBAC/D,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,wBAAwB,CAAC;wBAC/D,CAAC,CAAC,EAAE,IAAI,GAAG,wBAAwB,GAAG,wBAAwB;AAC/D;AACF,iBAAA;gBACD,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAChE,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE;AACP;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,oBAAoB;gBACpE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,oBAAoB;AACnE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,gBAAgB,EAAE,WAAW;AAC7B,gBAAA,mBAAmB,EAAE,KAAK;AAC1B,gBAAA,qBAAqB,EAAE;AACxB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;AAC/C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE,WAAW;AAC7B,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,wBAAwB;AAC1E,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,EAAE,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,YAAY,EAAE;AACZ,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,WAAW,CAAC;wBAChB,CAAC,EAAE,EAAE,QAAQ;AACd;AACF,iBAAA;AACD,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,QAAQ;AACvB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,EAAE;AACpB,gBAAA,gBAAgB,EAAE,WAAW;AAC7B,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAChF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,wBAAwB;AAC1E,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;AAC5E,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,sBAAsB;AAC5B,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,GAAG;AAChB,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE,EAAE;AACf,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,YAAY,EAAE,WAAW;AACzB,gBAAA,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACtB,gBAAA,aAAa,EAAE,OAAO;AACtB,gBAAA,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACzB,gBAAA,gBAAgB,EAAE,CAAC;AACnB,gBAAA,gBAAgB,EAAE,WAAW;AAC7B,gBAAA,mBAAmB,EAAE;AACtB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,qBAAqB,GAAG,wBAAwB;AAC1E,gBAAA,iBAAiB,EAAE,CAAC;AACpB,gBAAA,uBAAuB,EAAE;AAC1B,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AACtC,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,iBAAiB,GAAG,iBAAiB;gBAC1D,iBAAiB,EAAE,IAAI,GAAG,2BAA2B,GAAG,2BAA2B;AACnF,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1F,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,iBAAiB;gBACjE,iBAAiB,EAAE,IAAI,GAAG,oBAAoB,GAAG,2BAA2B;AAC5E,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC;AAC1C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,qBAAqB;gBACrE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;AACtD,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,gBAAgB,EAAE,GAAG;AACrB,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,wBAAwB,GAAG,qBAAqB;gBACrE,iBAAiB,EAAE,IAAI,GAAG,kBAAkB,GAAG,wBAAwB;AACvE,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;AAC3D,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,EAAE,EAAE,GAAG;AACT;AACF,iBAAA;AACD,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE;AACrB,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG;AACT;AACF,iBAAA;AACD,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,cAAc;gBAC1D,iBAAiB,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC/D,gBAAA,iBAAiB,EAAE;AACpB,aAAA;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;AAC7C,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE,CAAC;wBACR,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE,QAAQ;AACtB,gBAAA,cAAc,EAAE,QAAQ;AACxB,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,CAAC,CAAC,EAAE,GAAG,CAAC;wBACR,CAAC,EAAE,EAAE,GAAG;AACT;AACF,iBAAA;AACD,gBAAA,kBAAkB,EAAE,MAAM;AAC1B,gBAAA,oBAAoB,EAAE,KAAK;AAC3B,gBAAA,qBAAqB,EAAE;AACrB,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,GAAG;AACT;AACF,iBAAA;AACD,gBAAA,sBAAsB,EAAE,MAAM;AAC9B,gBAAA,yBAAyB,EAAE;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,oBAAoB,GAAG,cAAc;gBAC1D,iBAAiB,EAAE,IAAI,GAAG,cAAc,GAAG,oBAAoB;AAC/D,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;AACvD,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,QAAQ,EAAE;AACR,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,WAAW,EAAE;AACX,oBAAA,OAAO,EAAE;wBACP,CAAC,EAAE,EAAE,CAAC,CAAC;wBACP,CAAC,EAAE,EAAE,EAAE;AACR;AACF,iBAAA;AACD,gBAAA,YAAY,EAAE;AACf,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,GAAG,mBAAmB,GAAG,wBAAwB;gBACnE,iBAAiB,EAAE,IAAI,GAAG,2BAA2B,GAAG,qBAAqB;AAC7E,gBAAA,iBAAiB,EAAE;AACpB;AACF;AACF,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,oBAAoB,EAClB;AACH,KAAA;IACD,QAAQ,EAAE,CAAA,2DAAA,EAA8D,GAAG,CAAA,CAAE;AAC7E,IAAA,QAAQ,EAAE,2EAA2E;AACrF,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,QAAQ,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAChD,IAAA,MAAM,EAAE;AACT,CAAA,CAAC;;ACr1FF;;;AAGG;MAgFU,cAAc,CAAA;AACzB;;AAEG;IACM,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAc;AACrC;;AAEG;IACM,OAAO,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;AAC/B;;AAEG;IACM,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAC3C;;;;AAIG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAC,WAAW,6DAAC;AAC/C;;;;AAIG;AACM,IAAA,eAAe,GAAG,KAAK,CAAC,KAAK,2DAAC;AACvC;;;;AAIG;AACM,IAAA,OAAO,GAAG,KAAK,CAAC,KAAK,mDAAC;AAC/B;;;;;;AAMG;AACM,IAAA,WAAW,GAAG,KAAK,CAAwC,QAAQ,uDAAC;AAC7E;;;;;AAKG;IACM,gBAAgB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAA2B;AAC5D;;;;;AAKG;IACM,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;AACjC;;;;;AAKG;AACM,IAAA,qBAAqB,GAAG,KAAK,CAAC,KAAK,iEAAC;AAC7C;;;;;AAKG;AACM,IAAA,qBAAqB,GAAG,KAAK,CAAC,IAAI,iEAAC;AAE5C;;;;;AAKG;AACM,IAAA,qBAAqB,GAAG,KAAK,CAAC,KAAK,iEAAC;AAE7C;;;;AAIG;IACM,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACtC;;;;AAIG;AACM,IAAA,4BAA4B,GAAG,KAAK,CAAC,KAAK,wEAAC;AACpD;;;;AAIG;AACM,IAAA,eAAe,GAAG,KAAK,CAAS,wBAAwB,2DAAC;AAClE;;;;;AAKG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAS,2BAA2B,6DAAC;AACvE;;;;;AAKG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAS,0BAA0B,4DAAC;AACrE;;;;AAIG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAS,0BAA0B,4DAAC;AACrE;;;;AAIG;AACM,IAAA,UAAU,GAAG,KAAK,CAAS,mBAAmB,sDAAC;AACxD;;;;AAIG;AACM,IAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK,gEAAC;AAC5C;;;;AAIG;AACM,IAAA,oBAAoB,GAAG,KAAK,CAAC,IAAI,gEAAC;AAC3C;;AAEG;IACM,gBAAgB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AAE9C;;AAEG;IACM,uBAAuB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAa;AACrD;;AAEG;IACM,qBAAqB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;AAC7C;;;;AAIG;AACM,IAAA,mBAAmB,GAAG,KAAK,CAAC,IAAI,+DAAC;AAE1C;;;;;AAKG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAmC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,6DAAC;AACtF;;;;;AAKG;AACM,IAAA,eAAe,GAAG,KAAK,CAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,2DAAC;AAC5D;;;;;AAKG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,6DAAC;AAC9D;;;;;;;;;AASG;AACM,IAAA,QAAQ,GAAG,KAAK,CACvB,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,mDAAA,CAAqD,CAAC,oDACxE;AACD;;;;AAIG;AACM,IAAA,UAAU,GAAG,KAAK,CAAC,IAAI,sDAAC;AACjC;;;;;;AAMG;AACM,IAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,4DAAC;AACxC;;;;;;;;AAQG;AACM,IAAA,kBAAkB,GAAG,KAAK,CAAC,EAAE,8DAAC;AACvC;;;;;;;AAOG;AACM,IAAA,aAAa,GAAG,KAAK,CAAC,CAAC,yDAAC;AACjC;;AAEG;IACM,cAAc,GAAG,MAAM,EAAc;AAC9C;;AAEG;IACM,eAAe,GAAG,MAAM,EAAQ;AAEtB,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AACnD,IAAA,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAyB,SAAS,EAAE;AACxF,QAAA,IAAI,EAAE;AACP,KAAA,CAAC;AACiB,IAAA,cAAc,GAAG,SAAS,CAAC,qBAAqB,0DAAC;AACjD,IAAA,gBAAgB,GAAG,YAAY,CAAC,qBAAqB,4DAAC;AACtD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAG,mDAAC;AAC3E,IAAA,YAAY,GAAG,SAAS,CAAC,QAAQ,CAA0B,KAAK,CAAC;;AAEpF,IAAA,GAAG;AAEH,IAAA,cAAc;AACd,IAAA,cAAc;;IAEd,SAAS,GAAG,KAAK;;IAEjB,QAAQ,GAAc,EAAE;AACxB,IAAA,QAAQ;AACR,IAAA,aAAa;IACH,iBAAiB,GAAG,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,2CAAA,CAA6C,CAAC;IACnF,WAAW,GAAG,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,iCAAA,CAAmC,CAAC;IACnE,YAAY,GAAG,CAAC,CAAC,MAAM,SAAS,CAAA,CAAA,mCAAA,CAAqC,CAAC;IACtE,kBAAkB,GAAG,CAAC,CAC9B,MAAM,SAAS,CAAA,CAAA,sDAAA,CAAwD,CACxE;AACS,IAAA,kBAAkB;AACpB,IAAA,eAAe;IACf,SAAS,GAAwB,SAAS;AAEjC,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;;AAGvB,IAAA,gBAAgB,GAC/B,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrF,MAAM,CAAC,oBAAoB,CAAC;AAE9B,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AACvD,YAAA,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,WAAW;AAChB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,IAAI,CAAC;AACN,SAAA,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;IACjE;;AAEQ,IAAA,WAAW,GAAG,CAAC,KAAiB,KAAa;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;AAClC,QAAA,OAAO,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa;AACxD,IAAA,CAAC;AAED,IAAA,WAAW,CAAC,OAA4B,EAAA;AACtC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;AAEA,QAAA,IAAI,OAAO,CAAC,WAAW,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;;AAE5C,YAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC;QACzC;AAEA,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC;QAC1C;QAEA,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE;AAC5C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,SAAS;AACT,iBAAA,QAAQ;AACR,iBAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,aAAa,CAA8B;YACtF,IAAI,YAAY,EAAE;AAChB,gBAAA,IAAI,OAAO,CAAC,OAAO,EAAE;;;AAGnB,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;oBAC9B,MAAM,QAAQ,GACZ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,0BAAE,IAAI,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO;0BACjF,EAAE;oBACR,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC5B,YAAY,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CACvD;gBACH;AACA,gBAAA,IAAI,OAAO,CAAC,aAAa,EAAE;;AAEzB,oBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAClF;YACF;iBAAO;;;AAGL,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7D;QACF;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YACjC,IAAI,CAAC,IAAI,EAAE;AACX,YAAA,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QAEvC,UAAU,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;IACpC;IAEA,kBAAkB,GAAA;;;AAGhB,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE;AACtC,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,GAAI,CAAC,UAAU,EAAE,CAAC;QAC7D;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC;IAChC;AAGA,IAAA,qBAAqB,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAE,KAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACvE;AAEA,IAAA,aAAa,CAAC,IAAa,EAAA;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC;AAEQ,IAAA,wBAAwB,GAAG,MAAW,EAAE,CAAC;IAEhC,gBAAgB,GAAG,MAAW;;AAE7C,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,KAAM,IAAI,CAAC,GAAW,CAAC,WAAW,EAAE;AACzE,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACxE;QAEA,IAAI,CAAC,wBAAwB,EAAE;QAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,CAAA,aAAA,EAAgB,MAAM,CAAC,gBAAgB,CAAA,KAAA,CAAO,CAAC;QACxE,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACvD,QAAA,IAAI,CAAC,wBAAwB,GAAG,MAC9B,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC;AAC9D,IAAA,CAAC;AAED;;AAEG;IACK,0BAA0B,GAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;;AAGA,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;;AAG5B,QAAA,IAAI,CAAC,GAAW,CAAC,WAAW,GAAG,gBAAgB;;QAGhD,IAAI,CAAC,GAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,IAAG;AACpC,YAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;AAChC,gBAAA,IAAI,MAAM,EAAE,eAAe,KAAK,SAAS,EAAE;AACzC,oBAAA,MAAM,CAAC,eAAe,GAAG,gBAAgB;oBACzC,MAAM,CAAC,OAAO,EAAE;gBAClB;AACA,gBAAA,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7B,oBAAA,MAAM,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE;gBAC/B;qBAAO;oBACL,MAAM,EAAE,OAAO,EAAE;gBACnB;gBACA,KAAK,CAAC,OAAO,EAAE;YACjB;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;IACvB;AAEA;;AAEG;IACH,IAAI,GAAA;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa;QAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa;AACtD,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACd,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,OAAO,EAAE;SACV;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CACtC,gBAAgB,EAChB,YAAY,EACZ,IAAI,CAAC,gBAAgB,EAAE,EACvB,IAAI,CACL;AACD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CACtC,gBAAgB,EAChB,YAAY,EACZ,IAAI,CAAC,gBAAgB,EAAE,CACxB;QAED,MAAM,QAAQ,GAAGC,QAAe,CAAC;AAC/B,YAAA,kBAAkB,EAAE;AAClB,gBAAA,KAAK,EAAE,EAAE;gBACT,QAAQ,EAAE,IAAI,CAAC,iBAAiB;AAChC,gBAAA,eAAe,EAAE,oBAAoB;AACrC,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,iBAAiB,EAAE;AACpB,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,WAAW,EAAE,EAAE;gBACf,cAAc,EAAE,IAAI,CAAC,WAAW;AAChC,gBAAA,eAAe,EAAE,cAAc;AAC/B,gBAAA,YAAY,EAAE,EAAE;gBAChB,eAAe,EAAE,IAAI,CAAC,YAAY;AAClC,gBAAA,gBAAgB,EAAE;AACnB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,gBAAgB,EAAE;AACnB;AACF,SAAA,CAAC;QAEF,MAAM,gBAAiB,SAAQ,OAAO,CAAA;AACpC,YAAA,WAAA,CAAY,OAAgD,EAAA;gBAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,gBAAA,MAAM,CAAC,SAAS,GAAG,oBAAoB;AACvC,gBAAA,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;gBAE5B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,gBAAA,OAAO,CAAC,SAAS,GAAG,2CAA2C;AAC/D,gBAAA,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAE3B,gBAAA,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;gBAE3B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;YAC3D;AACD;AAED,QAAA,QAAQ,CAAC,IAAI,CACX,IAAI,gBAAgB,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,kBAAkB;YAC9B,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACxB,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvD;qBAAO;;oBAEL,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C;YACF;AACD,SAAA,CAAC,CACH;AAED,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAChD,QAAA,IAAI,gBAAgB,EAAE,QAAQ,EAAE;AAC9B,YAAA,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D;AAEA,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC;YACjB,QAAQ;AACR,YAAA,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC;AACpD,YAAA,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW;AAC3B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AAEpE,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAE7C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE;QACvC,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC;QACxD;QAEA,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACjF;QACA,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC;QAE5D,IAAI,CAAC,gBAAgB,EAAE;IACzB;IAEQ,WAAW,GAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE;AAC/C,QAAA,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC;;IAGQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E;IACF;AAEA;;AAEG;IACK,SAAS,GAAA;AACf,QAAA,IAAI,KAAY;AAChB,QAAA,IAAI,UAA6B;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AACrF,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAClB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAC/C,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,CAAC,UAAU,EAAE,CAClB;AAED,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC;gBAC1C,OAAO,EAAE,IAAI,CAAC,gBAAgB;gBAC9B,WAAW,EAAE,IAAI,CAAC,oBAAoB;gBACtC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;;AAEzC,gBAAA,KAAK,EAAE,CAAC,OAAoB,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAkB;AACpF,aAAA,CAAC;YACF,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAEjD,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CACrC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,kBAAkB,EAAE,EACzB,IAAI,CAAC,aAAa,EAAE,EACpB,YAAY,CACb;YACH;YACA,KAAK,GAAG,YAAY;QACtB;aAAO;AACL,YAAA,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACrE,IAAI,UAAU,EAAE;gBACd,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CACrC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,kBAAkB,EAAE,EACzB,IAAI,CAAC,aAAa,EAAE,CACrB;YACH;QACF;AACA,QAAA,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC;AAEnC,QAAA,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC;QACzB,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC;QAChC;IACF;AAEA;;AAEG;IACH,eAAe,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1D,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CACvC,IAAI,OAAO,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,EAClF,IAAI,CAAC,UAAU,EAAE,CAClB;YACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACpC,YAAA,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC;AACpC,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,GAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChE;IACF;IAEQ,QAAQ,CAAC,IAAa,EAAE,WAAoB,EAAA;AAClD,QAAA,IAAI,WAAW,KAAK,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE;AAC5E,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACvB;QACA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;;QAE5C,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACxD;AAEQ,IAAA,kBAAkB,CAAC,UAAoB,EAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC5B,IAAI,CAAC;AACH,cAAE,SAAS;AACV,aAAA,QAAQ;aACR,OAAO,CAAC,KAAK,IAAG;AACf,YAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE;gBAC7C,KAAmC,CAAC,QAAQ,CAC1C,KAAmC,CAAC,QAAQ,EAAE,CAChD;YACH;QACF,CAAC,CAAC,CACL;IACH;AAEA;;;;;AAKG;AACH,IAAA,WAAW,CAAC,IAAc,EAAE,GAAY,EAAE,SAAkB,EAAA;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;QAEA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAMC,KAAgB,CAAC,IAAI,CAAC,GAAI,EAAE,SAAS,CAAC,CAAC;QAC7E;aAAO,IAAI,GAAG,EAAE;YACd,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAa;AACzD,YAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,KAAI;AAC9B,gBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,GAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC9B;AACF,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACzC;IACF;AAEA;;;AAGG;AACH,IAAA,YAAY,CAAC,SAAc,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;QACA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAC5BA,KAAgB,CAAC,IAAI,CAAC,GAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,IAAG;YACvD,MAAM,GAAG,GAAG,UAAiB;YAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAa;AACpD,YAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,KAAI;AAC9B,gBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;;oBAE7B,KAAK,CAAC,SAAS,EAAU,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE;AACrD,oBAAA,IAAI,CAAC,GAAG,GAAG,GAAG;gBAChB;AACF,YAAA,CAAC,CAAC;QACJ,CAAC,CAAC,CACH;IACH;AAEA;;;;;AAKG;AACH,IAAA,aAAa,CACX,SAAsB,EACtB,QAAqB,EACrB,gBAA0C,EAC1C,SAAmB,EAAA;QAEnB,QACE,gBAAgB,EAAE,OAAO;AACzB,YAAA,IAAI,OAAO,CAAC;AACV,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,WAAW,EAAE,QAAQ;;AAErB,gBAAA,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG;AAC7B,aAAA,CAAC;IAEN;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;QAEA,MAAM,aAAa,GAAkB,EAAE;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAC7C,KAAK,CAAC,KAAK,EACX,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,EACjD;AACE,YAAA,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,IAAI,CAAC;AACnB,SAAA,CACF;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;QAC3C,IAAI,OAAO,EAAE;;YAEX,OAAO,CAAC,KAAK,CAAC,MAAM;gBAClB,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,qBAAqB,EAAE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,EAAE;;YAE5F,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnD,gBAAA,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;gBAC5C;qBAAO;AACL,oBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC5C;gBACA;YACF;QACF;QAEA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC;IACrD;;AAGA,IAAA,cAAc,CAAC,KAAoB,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;YACnD;QACF;AACA,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC3C,YAAA,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE;gBAC1B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpC;YACF;QACF;IACF;IAEQ,aAAa,CAAC,QAAoB,EAAE,OAAiB,EAAA;QAC3D,IAAI,KAAK,GAAG,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,MAAM,EAAE;YACvC,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE;gBAC1D,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9C;iBAAO,IAAI,IAAI,CAAC,eAAe,KAAK,OAAO,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE;gBAClF,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC;YAC3D;QACF;QACA,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;QAC5C;IACF;AAEA;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;QACA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;AACxD,YAAA,MAAM,UAAU,GACd,IAAI,CAAC,cAAc,EAAE,CAAC,aACvB,CAAC,iBAAkB,CAAC,qBAAqB,EAAE;YAC5C,MAAM,MAAM,GAAI,IAAI,CAAC,YAAY,EAAE,CAAC,aAA6B,CAAC,qBAAqB,EAAE;YACzF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;YAC1C,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG;YACvC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG;AAC7C,YAAA,IACE,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,gBAAA,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK;AACvB,gBAAA,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,EACxB;gBACA;YACF;QACF;QACA,MAAM,aAAa,GAAkB,EAAE;QACvC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CACpD,KAAK,CAAC,KAAK,EACX,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,aAAa,CAAC,EACjD;YACE,WAAW,EAAE,IAAI,CAAC;AACnB,SAAA,CACF;QACD,IAAI,eAAe,EAAE;AACnB,YAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;AAC1C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAQ,CAAC;AAC/C,gBAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;YACrC;AAAO,iBAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,gBAAA,IAAI,eAAe,CAAC,CAAC,CAAC,YAAY,aAAa,EAAE;oBAC/C,IAAI,CAAC,UAAU,EAAE;oBACjB,IAAI,CAAC,aAAa,EAAE;gBACtB;AAAO,qBAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AACvC,oBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACzE,oBAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;gBACrC;YACF;QACF;aAAO;YACL,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,aAAa,EAAE;QACtB;IACF;AAEQ,IAAA,aAAa,CAAC,QAAoB,EAAA;AACxC,QAAA,MAAM,MAAM,GAAe,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAG;AAClD,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,aAAa,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC,IAAI,IAAK,KAAkB;AAC1C,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD;AAEA;;;AAGG;AACH,IAAA,WAAW,CAAC,eAA0B,EAAA;AACpC,QAAA,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,eAAe,CAAC;IACzD;AAEA;;AAEG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,OAAO,KAAK;IACd;AAEA;;;AAGG;IACH,eAAe,CAAC,IAAiB,EAAE,aAA6B,EAAA;AAC9D,QAAA,IAAI,IAAI,YAAY,OAAO,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ;AAClD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,YAAY,EAAE;gBAClC,IAAI,aAAa,EAAE;AACjB,oBAAA,aAAa,CAAC,OAAO,GAAG,IAAI;gBAC9B;AACA,gBAAA,OAAO,YAAY;YACrB;YACA,OAAO,CAAC,IAAI,CAAC;QACf;AACA,QAAA,OAAO,SAAS;IAClB;AAEA;;;;AAIG;AACH,IAAA,YAAY,CAAC,MAAkB,EAAE,SAAiB,EAAE,aAAa,GAAG,IAAI,EAAA;AACtE,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;QACnD;aAAO;YACL,MAAM,QAAQ,GAAG;AACd,iBAAA,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;iBAC1C,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;AACnC,iBAAA,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC;QACzD;IACF;AAEA;;;;AAIG;AACH,IAAA,cAAc,CAAC,QAAmB,EAAE,SAAiB,EAAE,aAAa,GAAG,IAAI,EAAA;AACzE,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,YAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC1B;QACA,MAAM,WAAW,GAAiB,EAAE;AACpC,QAAA,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC/C,IAAI,UAAU,EAAE;AACd,gBAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9B;QACF;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;IACvF;AAEA;;;;AAIG;AACH,IAAA,aAAa,CAAC,UAAsB,EAAE,SAAiB,EAAE,aAAa,GAAG,IAAI,EAAA;AAC3E,QAAA,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1F;IAEQ,iBAAiB,CACvB,WAAyB,EACzB,OAAe,EACf,OAAO,GAAG,IAAI,EACd,OAAkB,EAAA;AAElB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;YACjC,IAAI,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AAC7C,oBAAA,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,kBAAkB,GAAG,SAAS;oBACxE,OAAO;oBACP;AACD,iBAAA,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,OAAO,CAAC,MAAkB,EAAE,cAAc,GAAG,IAAI,EAAA;AAC/C,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7E;IAEQ,SAAS,CAAC,MAAkB,EAAE,cAAuB,EAAA;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AAE7B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACtB,IAAI,CAAC,KAAK,EAAE;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAa;AACzD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE/E,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,KAAI;AAC9B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;YAEhC,IAAI,MAAM,YAAY,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC/C,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE;AACvC,gBAAA,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1C;AAAO,iBAAA,IAAI,MAAM,YAAY,YAAY,EAAE;AACzC,gBAAA,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;YACnC;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C;;;AAGA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACpD;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACrD;IAEQ,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;QAE7B,IAAI,CAAC,YAAY,EAAE;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAa;AAEzD,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,KAAY,KAAI;AAC9B,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE;YAEhC,IAAI,MAAM,YAAY,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC/C,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE;gBACvC,YAAY,EAAE,KAAK,EAAE;YACvB;AAEA,YAAA,IAAI,MAAM,YAAY,YAAY,EAAE;gBAClC,MAAM,CAAC,KAAK,EAAE;YAChB;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,MAAM,CAAC,KAAe,EAAE,YAAqB,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzE;IAEQ,QAAQ,CAAC,KAAe,EAAE,YAAqB,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb;QACF;AAEA,QAAA,MAAM,SAAS,GAAc,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC7F,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE;QAEpD,IAAI,GAAG,EAAE;YACP,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;AACtC,YAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CACd,IAAI,IAAI,CAAC;gBACP,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,gBAAA,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,iBAAiB;AAC7C,aAAA,CAAC,CACH;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/B;IACF;;AAGA,IAAA,YAAY,CAAC,OAAgB,EAAE,KAAW,EAAE,IAAc,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;QAE1C,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC;IACvC;AAEQ,IAAA,UAAU,CAAC,OAAgB,EAAE,IAAyB,EAAE,KAAU,EAAA;QACxE,MAAM,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,UAAU;AAC1D,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,WAAW,EAAE;AAEvC;AACoF;AACpF,QAAA,IAAI,QAAQ,IAAI,QAAQ,YAAY,KAAK,EAAE;YACzC,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzD;AACA,YAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;AACpB,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAClC,gBAAA,SAAS,EAAE,OAAO,CAAC,aAAa;AACjC,aAAA,CAAC;YACF,IAAI,eAAe,EAAE;gBACnB,OAAO,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC;YAClD;QACF;AAAO,aAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AACzB,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;AACpB,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAClC,gBAAA,SAAS,EAAE,CAAC,OAAO,CAAC,aAAa,EAAsB;AACxD,aAAA,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1D;QACF;IACF;AAEA;;;AAGG;AACH,IAAA,kBAAkB,CAAC,OAAgB,EAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;QACtD,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAc,CAAC;AACjE,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACvE,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5C,YAAA,OAAO,IAAI;QACb;AACA,QAAA,OAAO,KAAK;IACd;AAEA;;AAEK;IACL,yBAAyB,CAAC,QAAmB,EAAE,OAAiB,EAAA;AAC9D,QAAA,MAAM,WAAW,GACf,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC;AAElF,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAEjC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC;AAC5C,QAAA,OAAO,IAAI;IACb;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;IAC5C;AAEQ,IAAA,oBAAoB,CAAC,OAAiB,EAAA;AAC5C,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,WAAW,EAAE;AACvC,QAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,cAAc,EAAE;QAClC;AACA,QAAA,OAAO,SAAS;IAClB;AAEA;;;AAGG;AACK,IAAA,2BAA2B,CAAC,QAAmB,EAAA;QACrD,IAAI,GAAG,GAAG,CAAC;QACX,IAAI,GAAG,GAAG,CAAC;AACX,QAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACnD,IAAI,WAAW,EAAE;AACf,gBAAA,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;AACrB,gBAAA,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC;YACvB;QACF;AACA,QAAA,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;IACvD;AAEQ,IAAA,kBAAkB,CAAC,OAA0B,EAAA;QACnD,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;YAC1C;QACF;;QAEA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE;AAC1C,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtF,IAAI,CAAC,IAAI,EAAE;YACT;QACF;QACA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,QAA+B;AACxE,QAAA,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC;AACpB,YAAA,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE;AACzC,YAAA,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAsB,CAAC;YACnE,GAAG,EAAE,IAAI,CAAC;AACX,SAAA,CAAC;;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO;IAChC;uGA/nCW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,goKAHd,CAAC,UAAU,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4O4B,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EALxB,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAE7D,UAAU,8EAE4B,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3TrE,sKAKA,EAAA,MAAA,EAAA,CAAA,4/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDwEY,qBAAqB,mGAAE,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAM3C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAT1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAQ,EAAA,OAAA,EAET,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,EAAA,SAAA,EAG5C,CAAC,UAAU,CAAC,EAAA,eAAA,EACN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sKAAA,EAAA,MAAA,EAAA,CAAA,4/CAAA,CAAA,EAAA;g3HAsOC,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACU,SAAS,EAAA,EAAA,GAAE;AACxF,4BAAA,IAAI,EAAE;AACP,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAC6C,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAChB,qBAAqB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAEM,KAAK,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA;sBAuHlF,YAAY;uBAAC,qBAAqB,EAAE,CAAC,QAAQ,CAAC;;;AErbjD;;;AAGG;MAWU,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAHZ,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,aAC5D,cAAc,CAAA,EAAA,CAAA;wGAEb,WAAW,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;oBACvE,OAAO,EAAE,CAAC,cAAc;AACzB,iBAAA;;;ACbD;;;AAGG;;ACHH;;;AAGG;MAQU,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,WAAW,CAAA,EAAA,CAAA;AAEV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAFf,WAAW,CAAA,EAAA,CAAA;;2FAEV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,WAAW;AACtB,iBAAA;;;ACVD;;;AAGG;;ACHH;;AAEG;;;;"}
|