@datarailsshared/datarailsshared 1.5.492 → 1.5.494
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.
- package/datarailsshared-datarailsshared-1.5.494.tgz +0 -0
- package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +3 -1
- package/fesm2022/datarailsshared-datarailsshared.mjs +2 -0
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.5.492.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datarailsshared-datarailsshared.mjs","sources":["../../../projects/datarailsshared/src/lib/date-tags/any-tag.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.html","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.html","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.service.ts","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.html","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.html","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.html","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.html","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.html","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.html","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.html","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.html","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/code-editor-hint-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/dr-codemirror.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.html","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/tags-constructor.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.html","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/utils/decorators.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.html","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.html","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.html","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.html","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/models/toastr.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.html","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.ts","../../../projects/datarailsshared/src/lib/utils/data-analytics.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/interfaces/tooltip-component-context.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/models/code-editor-hint.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.html","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.types.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper-canvas.service.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.module.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.module.ts","../../../projects/datarailsshared/src/lib/dr-chip/dr-chip.component.html","../../../projects/datarailsshared/src/lib/dr-chip/dr-chip.component.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n template: ``,\n selector: 'any-tag',\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n constructor() {}\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n initDate() {}\n initName() {}\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy',\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY',\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT,\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n","import moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\nimport { Observable } from 'rxjs';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string): any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n\n public static fromResizeObserver = (target: Element): Observable<ResizeObserverEntry[]> =>\n new Observable((observer) => {\n const resizeObserver = new ResizeObserver((entries) => observer.next(entries));\n\n resizeObserver.observe(target);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n public static normalizeLineEndings = (str: string): string => {\n return str ? str.replace(/\\r\\n|\\r/g, '\\n') : str;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n private readonly _timeframe$: BehaviorSubject<TTimeframeOption> = new BehaviorSubject(TimeframeOption.DAY);\n public readonly timeframe$ = this._timeframe$.asObservable();\n\n public get timeframe(): TTimeframeOption {\n return this._timeframe$.getValue();\n }\n\n public set timeframe(value: TTimeframeOption) {\n this._timeframe$.next(value);\n }\n\n // TODO: here we can have inconsistency between format and timeframe\n // we need to get rid of a separate subject and use pipe from timeframe$ for it\n // making @Input() format in component just setting the timeframe\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<DateTags>('' as DateTags);\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR,\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT,\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n public fiscalYearBack = false;\n public datepickerFilter: (moment: Moment) => boolean;\n\n private readonly _innerValue$ = new BehaviorSubject<Moment>(null);\n public readonly innerValue$ = this._innerValue$.asObservable();\n\n public set innerValue(value: Moment) {\n this._innerValue$.next(value);\n }\n public get innerValue(): Moment {\n return this._innerValue$.getValue();\n }\n\n getDisplayPrefix() {\n const formatCached = this.getConfiguredFormat(this.timeframe);\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date.subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date.subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n private applyFiscalYearShiftForYear(momentDate: Moment, isSubtract: boolean = false): Moment | undefined {\n if (this.fiscalYearBack || !this.fiscalYearMonthsModifier) return;\n return momentDate[isSubtract ? 'subtract' : 'add'](1, 'year');\n }\n\n public addFiscalYearShiftForYear(momentDate: Moment): Moment | undefined {\n return this.applyFiscalYearShiftForYear(momentDate);\n }\n\n public subtractFiscalYearShiftForYear(momentDate: Moment): Moment | undefined {\n return this.applyFiscalYearShiftForYear(momentDate, true);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: DateTags, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8,\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8,\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7,\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8,\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8,\n },\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [style({ opacity: 0 }), animate(150, style({ opacity: 1 }))]),\n transition(':leave', [animate(150, style({ opacity: 0 }))]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string; label: string }> = [\n { key: DateTags.TODAY, label: 'Today' },\n { key: DateTags.YESTERDAY, label: 'Yesterday' },\n { key: DateTags.THIS_MONTH, label: 'This month' },\n { key: DateTags.PREV_MONTH, label: 'Prev month' },\n];\n","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { TooltipTheme } from '../../enums/tooltip-theme.enum';\n\n@Component({\n selector: 'dr-tooltip-default',\n template: '<span class=\"content\" [innerHTML]=\"content\"></span><ng-content></ng-content>',\n styleUrls: ['./tooltip-default.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipDefaultComponent {\n @Input() content: string;\n\n @Input()\n @HostBinding('class')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n constructor() {}\n}\n","<div [class]=\"position + ' ' + class + ' ' + theme\" [ngClass]=\"{ 'dr-tooltip': !options?.withoutContainerStyles }\">\n <div *ngIf=\"!options?.withoutArrow\" class=\"dr-tooltip-arrow\"></div>\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\n </ng-container>\n <ng-template #defaultContent>\n <dr-tooltip-default [content]=\"content\" [theme]=\"theme\"></dr-tooltip-default>\n </ng-template>\n</div>\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [trigger('tooltip', POPUP_ANIMATION)],\n})\nexport class TooltipComponent implements OnInit {\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {}\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]',\n})\nexport class DrTooltipDirective implements OnDestroy {\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n @Input() drTooltipMouseEnterTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n @Input('drTooltipHide')\n set hideTooltip(value: boolean) {\n if (value) {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private mouseenterTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n ) {}\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n if (this.drTooltipMouseEnterTimeout) {\n this.clearMouseEnterTimeout();\n\n this.mouseenterTimer = setTimeout(() => {\n this.renderTooltip();\n }, this.drTooltipMouseEnterTimeout);\n } else {\n this.renderTooltip();\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.clearMouseEnterTimeout();\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$\n .pipe(skip(1))\n .subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n private clearMouseEnterTimeout() {\n if (this.mouseenterTimer) {\n clearTimeout(this.mouseenterTimer);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSpinnerComponent {\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","<div [class]=\"'spinner-wrapper spinner-wrapper--' + (options?.spinnerType || 'logo')\">\n <div class=\"shadow\" [class.shadow--none]=\"options.noOverlay\"></div>\n <div [class]=\"'spinner spinner--' + (options?.spinnerSize || 'medium')\"></div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]',\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = 'medium';\n @Input() drSpinnerType: SpinnerType = 'logo';\n @Input() drSpinnerNoOverlay = false;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({\n ...options,\n spinnerSize: this.drSpinnerSize,\n spinnerType: this.drSpinnerType,\n noOverlay: this.drSpinnerNoOverlay,\n });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> =\n this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","<ng-select\n [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"(type !== 'search-input' || !!selectComponent.searchTerm?.length) && isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n [selectOnTab]=\"selectOnTabKeyPress\"\n (keydown.tab)=\"onTabKeypress($event)\"\n (change)=\"onValueSelected(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"onClose($event)\"\n class=\"dr-select\"\n [class.ng-select--no-value-padding]=\"noValuePadding\"\n [class.ng-select--multiple-height-increased]=\"multipleHeightIncreased\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"multiLabelTemplate\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{ item: item, item$: item$ }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\">{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"optionFooterTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div\n *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\"></div>\n </ng-template>\n</ng-select>\n<i *ngIf=\"type === 'search-input'\" class=\"search-icon dr-icon-search\"></i>\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { ItemsList } from '@ng-select/ng-select/lib/items-list';\n\nconst SELECT_HOST_ATTRIBUTES = ['no-left-border', 'no-left-border-radius', 'no-right-border', 'no-right-border-radius'];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n writeValue: (value: any) => void;\n blur: () => void;\n itemsList: ItemsList;\n searchTerm: string;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true,\n },\n ],\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input()\n @HostBinding('class')\n type: 'select' | 'search-input' = 'select';\n\n @Input() clearInputTextAfterSelection = false;\n @Input() className: string;\n @Input() items: Array<any> | Readonly<Array<any>> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() multipleHeightIncreased?: boolean;\n @Input() hideSelected: boolean;\n @Input() maxSelectedItems: number;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Input() noValuePadding = false;\n @Input() selectOnTabKeyPress = false;\n\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('multiLabelTemplate') multiLabelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n backdropElement: HTMLElement | null = null;\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n ) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n this.getHostElement().classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n\n if (this.type === 'search-input' && !this.selectedItem && this.ngSelect) {\n this.ngSelect.searchTerm = null;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n setTimeout(() => {\n this.createBackdrop();\n const classesToAdd = [];\n if (this.asTextView) {\n classesToAdd.push('textView');\n }\n if (typeof this.dropdownClass === 'string') {\n classesToAdd.push(...this.dropdownClass.split(' '));\n }\n const dropdown = document.querySelector('.ng-dropdown-panel');\n if (dropdown) {\n dropdown.classList.add(...classesToAdd);\n }\n }, 0);\n }\n\n onValueSelected(selectedItem: any) {\n if (this.clearInputTextAfterSelection && this.ngSelect) {\n this.ngSelect.searchTerm = null;\n }\n\n this.onChange(selectedItem);\n this.change.emit(selectedItem);\n }\n\n onTabKeypress(e) {\n if (this.selectOnTabKeyPress && this.ngSelect) {\n e.preventDefault();\n }\n }\n\n onClose(event: any) {\n this.closeUp.emit(event);\n this.removeBackdrop();\n if (this.type === 'search-input' && this.ngSelect.itemsList?.lastSelectedItem?.label) {\n this.ngSelect.searchTerm = this.ngSelect.itemsList.lastSelectedItem.label;\n this.ngSelect.itemsList.filter(this.ngSelect.searchTerm);\n }\n }\n\n createBackdrop(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.addClass(this.backdropElement, 'custom-backdrop');\n this.renderer.appendChild(document.body, this.backdropElement);\n }\n\n removeBackdrop(): void {\n if (this.backdropElement) {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.renderer.removeChild(document.body, this.backdropElement);\n this.backdropElement = null;\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some((attribute) => this.getHostElement().hasAttribute(attribute));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption, ITimeframeOption } from '../../models/datePicker';\n\n@Pipe({\n name: 'drShowTimeframePipe',\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter((item) => showOptions.includes(item.timeframe));\n }\n}\n","<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div\n *ngFor=\"let tag of presetTagList\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, ITimeframeOption, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [\n {\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () =>\n this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase(),\n },\n {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () =>\n this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase(),\n },\n {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year()),\n },\n {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () =>\n String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year()),\n },\n {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate))\n .utc()\n .year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n },\n },\n ];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward),\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n }\n\n public readonly calendarView = CalendarView;\n\n constructor(\n private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService,\n ) {\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe((value) => {\n const timeframe = this.datePickerService.getTimeframe(value);\n this.selectedTimeframe = this.timeframeOptions.filter((option) => option.timeframe === timeframe)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe((date) => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n this.goToCurrentDateInViewByFY();\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter((option) => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel = fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter((option) => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(\n this._calendar.currentView as CalendarView,\n );\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n\n if (\n this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe) &&\n !this.datePickerService.fiscalYearBack &&\n this.datePickerService.fiscalYearMonthsModifier\n ) {\n multuYearView._todayYear = moment.utc().year() + 1;\n (multuYearView as any)._changeDetectorRef.markForCheck();\n }\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n\n goToCurrentDateInViewByFY() {\n const isNeedMoveToDate =\n !this.datePickerService.innerValue &&\n [TimeframeOption.QUARTER, TimeframeOption.YEAR].includes(this.datePickerService.timeframe);\n\n if (isNeedMoveToDate) {\n const momentWithShift = this.datePickerService.addFiscalYearShiftForYear(moment.utc());\n if (momentWithShift) {\n this.datePickerService.calendarInstance._goToDateInView(\n momentWithShift,\n this.datePickerService.calendarInstance.currentView,\n );\n }\n }\n }\n\n isQuarterDisabled(quarterNumber: number): boolean {\n if (this._calendar.activeDate) {\n const endOfQuarter = this._calendar.activeDate.clone();\n this.datePickerService.setEndOfQuarter(endOfQuarter, quarterNumber);\n this.datePickerService.subtractFiscalYearShiftForYear(endOfQuarter);\n return !this.datePickerService.datepickerFilter(endOfQuarter);\n }\n return false;\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat,\n },\n ],\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(this.configDateParse, this.configDateDisplay);\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl,\n ) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport moment from 'moment';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\nconst noop = () => {};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService,\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n @Input()\n format: string;\n\n @Input() set min(minDate: number) {\n this._min = minDate ? moment.unix(minDate).utc() : null;\n }\n\n @Input() set max(maxDate: number) {\n this._max = maxDate ? moment.unix(maxDate).utc() : null;\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() fiscalYearBack = false;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n protected destroyed$ = new Subject<void>();\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n protected get innerValue(): Moment {\n return this.datePickerService.innerValue;\n }\n protected set innerValue(value: Moment) {\n this.datePickerService.innerValue = value;\n }\n\n public displayValue$ = combineLatest([\n this.datePickerService.innerValue$.pipe(distinctUntilChanged()),\n this.datePickerService.timeframe$.pipe(distinctUntilChanged()),\n ]).pipe(\n startWith([null, null]),\n map(([value, timeframe]: [Moment, TimeframeOption]) => {\n const valueToReturn = value?.clone();\n if (valueToReturn && this.datePickerService.isTimeframeDependingOnFY(timeframe)) {\n this.datePickerService.addFiscalYearShiftForYear(valueToReturn);\n }\n return valueToReturn;\n }),\n tap((value: Moment) => {\n if (value && this.datePickerService.calendarInstance) {\n this.datePickerService.calendarInstance.activeDate = value;\n this.datePickerService.calendarInstance.selected = value;\n }\n }),\n shareReplay(1),\n takeUntil(this.destroyed$),\n );\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.valueChangedInCalendar(value);\n });\n\n const dateFormatFn = this.dateAdapter.format;\n this.dateAdapter.format = (date: Moment, displayFormat: string) => {\n let dateToFormat = date.clone();\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n dateToFormat = this.datePickerService.subtractFiscalYearMonthsFromDate(dateToFormat);\n }\n return dateFormatFn.call(this.dateAdapter, dateToFormat, displayFormat);\n };\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.fiscalYearBack = this.fiscalYearBack;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePickerService.datepickerFilter = this.dateFilter;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n let timeframe;\n let format = this.datePickerService.getConfiguredFormat(this.format as TimeframeOption);\n if (format) {\n timeframe = this.format as TimeframeOption;\n } else {\n format = this.datePickerService.normalizeValue(this.format);\n timeframe = this.datePickerService.getTimeframe(format);\n }\n this.datePickerService.timeframe = timeframe;\n this.datePickerService.format$.next(format);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n const normalizedValue = this.innerValue.clone();\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(normalizedValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(normalizedValue, 1);\n } else {\n normalizedValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(normalizedValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(normalizedValue, 4);\n } else {\n normalizedValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = normalizedValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(normalizedValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = normalizedValue.clone();\n this.datePickerService.setStartOfQuarter(normalizedValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n normalizedValue.startOf(timeframe);\n endOfPeriod = normalizedValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(normalizedValue, 'seconds');\n normalizedValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n normalizedValue.startOf(timeframe);\n break;\n }\n this.datePickerService.innerValue = normalizedValue;\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.valueChangedInCalendar(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : null;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n };\n\n public valueChangedInCalendar(val: Moment) {\n if (val !== this.innerValue) {\n const valueToSet = val?.clone();\n if (valueToSet && this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n this.datePickerService.subtractFiscalYearShiftForYear(valueToSet);\n }\n this.setValueFromMoment(valueToSet);\n }\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n @HostBinding('class.active')\n private active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n if (this.innerValue) {\n const nonNormalizedTimestamp = this.innerValue.unix();\n this.writeValue(nonNormalizedTimestamp);\n const normalizedValue = this.innerValue.unix();\n if (normalizedValue !== nonNormalizedTimestamp) {\n this.onChangeCallback(normalizedValue);\n }\n }\n this.active = false;\n }\n}\n","<i class=\"dr-icon-date\"></i>\n<input\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n<mat-datepicker\n #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport moment from 'moment';\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"day\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix();\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${moment.week()} ${moment.year()}`;\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"week\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport moment from 'moment';\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate),\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"month\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value))) : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter),\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i;\n let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: i === 0,\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor(date.getMonth() / 3 + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n }\n}\n","<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { find as _find, cloneDeep as _cloneDeep } from 'lodash';\nimport moment from 'moment';\n\n/* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n ],\n})\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n\n forecastValue: number | undefined = undefined;\n isDateEventHappened = false;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false },\n ];\n\n private initDateValue = null;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n\n this.updateYear(dateVal.year(), this.forecastValue);\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = _cloneDeep(this.dateObj.date);\n }\n }\n\n updateYear(fiscalYear?: number, month?: number) {\n const DATE_TIME = '12:00:00';\n const MONTH_DIFF = 1;\n\n this.dateObj.date = fiscalYear\n ? moment.utc(`${month + MONTH_DIFF || '01'}/01/${fiscalYear} ${DATE_TIME}`, 'MM/DD/YYYY hh:mm:ss').unix()\n : moment.utc().unix();\n }\n\n updateLockedDate() {\n const year = moment.unix(this.dateObj.date).year();\n\n this.forecastTags = this.forecastTags.map((forecastTag) => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n\n if (!fiscal_year_back) {\n if (dateObj.month() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.month() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.initDateValue = _cloneDeep(this.dateObj.date);\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.dateObj.date).year();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n this.updateYear(year, date.getMonth());\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const calculatedDate = moment\n .unix(this.dateObj.date)\n .year(this.getFiscalYearFromDate(moment.unix(this.dateObj.date), fiscal_year_starts_from, fiscal_year_back));\n\n const resultTag: IDateTag = {\n name: this.name,\n value: this.dateObj.date,\n calculatedValue: calculatedDate.unix(),\n label: `${_find(this.forecastTags, { value: this.forecastValue })?.label} (${year})`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date)),\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n }\n}\n","<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n","<div>\n <year-tag\n *ngIf=\"dateTypeChosen === 'year'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></year-tag>\n <quarter-tag\n *ngIf=\"dateTypeChosen === 'quarter'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></quarter-tag>\n <month-tag\n *ngIf=\"dateTypeChosen === 'month'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></month-tag>\n <week-tag\n *ngIf=\"dateTypeChosen === 'week'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></week-tag>\n <day-tag\n *ngIf=\"dateTypeChosen === 'day'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></day-tag>\n <forecast-tag\n *ngIf=\"dateTypeChosen === 'forecast_new'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></forecast-tag>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { indexOf as _indexOf } from 'lodash';\n\ninterface IForecastByMonth {\n [monthIndex: number]: string;\n}\n\n@Injectable()\nexport class ForecastTagService {\n private static readonly MONTH_DIFF = 1;\n private static forecastByMonth: IForecastByMonth = {\n 0: '0+12',\n 1: '1+11',\n 2: '2+10',\n 3: '3+9',\n 4: '4+8',\n 5: '5+7',\n 6: '6+6',\n 7: '7+5',\n 8: '8+4',\n 9: '9+3',\n 10: '10+2',\n 11: '11+1',\n };\n\n public static getFiscalMonthFromDate(date: moment.Moment, fiscalYearStartsFrom: number): number {\n const all_months = [];\n\n for (let i = fiscalYearStartsFrom; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscalYearStartsFrom; i++) {\n all_months.push(i);\n }\n\n return _indexOf(all_months, date.month() + ForecastTagService.MONTH_DIFF) + ForecastTagService.MONTH_DIFF;\n }\n\n public static getFiscalYearFromDate(date: moment.Moment, fiscalYearStartsFrom: number, fiscalYearBack: boolean): number {\n const month = date.month();\n let fiscal_year = date.year();\n\n if (!fiscalYearBack) {\n if (month + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (month + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n public static getForecastLabel(month: number): string {\n return ForecastTagService.forecastByMonth[month - ForecastTagService.MONTH_DIFF];\n }\n\n public static getCalendarDateFromMonthAndFiscalYear(\n chosenMoment: moment.Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n const yearWithMonth = ForecastTagService.addMonthsWithoutYearChange(chosenMoment, monthLabel, fiscalYearStartsFrom);\n return ForecastTagService.transformYearFromFiscal(yearWithMonth, fiscalYearStartsFrom, fiscalYearBack);\n }\n\n public static addMonthsWithoutYearChange(\n date: moment.Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n ): moment.Moment {\n if (!monthLabel || !date) return;\n\n const dateToTransform = date.clone();\n\n const labelsIndex: number = +Object.keys(ForecastTagService.forecastByMonth).find(\n (key: string) => ForecastTagService.forecastByMonth[key] === monthLabel,\n );\n const monthsWithFiscalDifference = labelsIndex + fiscalYearStartsFrom - 1;\n const monthsToAdd = monthsWithFiscalDifference >= 12 ? monthsWithFiscalDifference - 12 : monthsWithFiscalDifference;\n\n return dateToTransform.utc().startOf('year').add(monthsToAdd, 'M');\n }\n\n public static transformYearFromFiscal(\n fiscalYearWithMonth: moment.Moment,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n if (!fiscalYearWithMonth) return;\n\n let fiscalYearStartMoment = fiscalYearWithMonth.clone();\n if (fiscalYearBack) {\n if (fiscalYearStartMoment.month() + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.add(1, 'year');\n }\n } else {\n if (fiscalYearStartMoment.month() + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.subtract(1, 'year');\n }\n }\n return fiscalYearStartMoment.unix();\n }\n}\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE',\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n FORECAST_CYCLE = 'forecast cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status',\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n calculatedValue?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n calculatedValue?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","<div class=\"toggle-container\" [class.disabled]=\"_disabled\" [attr.mode]=\"mode\">\n <ng-container *ngFor=\"let item of items\">\n <div\n *ngIf=\"item && !item[bindHidden]\"\n class=\"toggle-container__item\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n [class.disabled]=\"item.disabled\"\n (click)=\"setValue(item)\">\n {{ item[bindLabel] || item.name || item }}\n </div>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: any | string;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const isItemObject = item instanceof Object;\n const nextValue = this.bindValue && isItemObject ? item[this.bindValue] : item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","<div>\n <div *ngIf=\"values.length > 2\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select placeholder=\"Select\" [(ngModel)]=\"defaultValue\" [items]=\"values\" (ngModelChange)=\"chosenTagHandler($event)\">\n </dr-select>\n </div>\n <div *ngIf=\"values.length < 3\" class=\"tag__toggle-button\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-toggle-button\n bindValue=\"value\"\n bindLabel=\"name\"\n [(ngModel)]=\"defaultValue\"\n (ngModelChange)=\"chosenTagHandler($event)\"\n [items]=\"values\"\n style=\"display: flex\"></dr-toggle-button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {}\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value,\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, filter, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]',\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n private previousValue = null;\n\n @Input() debounce = 500;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {}\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges\n .pipe(\n skip(1),\n debounceTime(this.debounce),\n filter((value) => value !== this.previousValue),\n distinctUntilChanged(),\n )\n .subscribe((value) => {\n this.previousValue = value;\n this.ngModelDebounceChange.emit(value);\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","<ng-content select=\"[prefixIcon]\"></ng-content>\n\n<ng-container *ngIf=\"!mask; else maskedInput\">\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [step]=\"step\" />\n</ng-container>\n<ng-template #maskedInput>\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [step]=\"step\" />\n</ng-template>\n<span *ngIf=\"value\" class=\"clear-icon\" (click)=\"onClear($event)\"></span>\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked()\"></span>\n<ng-content select=\"[suffixIcon]\"></ng-content>\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\" (click)=\"onButtonClicked($event)\">\n {{ _buttonOptions.text }}\n</button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\ntype ButtonOptions = {\n show?: boolean;\n showOnFocus?: boolean;\n focusSet?: boolean;\n checkFocusOut?: (target: any, element: any) => boolean;\n text?: string;\n};\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input()\n set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input()\n set buttonOptions(value: ButtonOptions) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', (event) => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input()\n set type(val) {\n this._type = val;\n if (this._type === 'search') {\n this._elementClass.push('search-type');\n if (!this._placeholder) {\n this._placeholder = 'Search...';\n }\n }\n }\n get type(): string {\n return this._type;\n }\n\n @Input()\n set placeholder(val: string) {\n this._placeholder = val;\n }\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input()\n set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter((item) => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input()\n name: string;\n\n @Input()\n readonly = false;\n\n @Input()\n min: number | string;\n\n @Input()\n max: number | string;\n\n @Input()\n maxlength: number;\n\n @Input()\n minlength: number;\n\n @Input()\n pattern: string | RegExp;\n\n @Input()\n step: string | number;\n\n @Input()\n @HostBinding('class.search-type-mini')\n searchMini: boolean;\n\n @Output()\n blur = new EventEmitter();\n\n @Output('focus')\n focused = new EventEmitter<FocusEvent>();\n\n @Output()\n modelDebounceChange = new EventEmitter();\n\n @Output()\n searchHandler = new EventEmitter<any>();\n\n @Output()\n clearHandler = new EventEmitter<any>();\n\n @Output()\n buttonHandler = new EventEmitter<any>();\n\n @Input() mask: string;\n @Input() suffix = '';\n @Input() prefix = '';\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled: boolean | null = null;\n _elementClass: string[] = [];\n _buttonOptions: ButtonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save',\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n private _placeholder = '';\n private _type = 'string';\n private _clearable = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter((item) => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked() {\n this.searchHandler.emit(this.value);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","<button [disabled]=\"disabled\">\n <i *ngIf=\"icon\" class=\"dr-button__icon\" [class]=\"icon\" [style.font-size]=\"iconSize\" [style.color]=\"iconColor || 'inherit'\">\n </i>\n <ng-content></ng-content>\n <div *ngIf=\"isLoading\" class=\"dr-button__spinner\">\n <i [style.font-size]=\"iconSize\" class=\"dr-icon-load\"></i>\n </div>\n <i\n *ngIf=\"iconAfter\"\n class=\"dr-button__icon dr-button__icon--after\"\n [class]=\"iconAfter\"\n [style.font-size]=\"iconAfterSize\"\n [style.color]=\"iconAfterColor || 'inherit'\">\n </i>\n</button>\n","import { Component, HostBinding, Input } from '@angular/core';\n\nexport type ButtonType =\n | 'primary'\n | 'split-primary-first'\n | 'split-primary-last'\n | 'secondary'\n | 'split-secondary-first'\n | 'split-secondary-last'\n | 'icon'\n | 'icon-primary'\n | 'icon-secondary'\n | 'ghost'\n | 'selection'\n | 'highlight'\n | 'danger'\n | 'help'\n | 'ai-primary'\n | 'ai-secondary';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DrButtonComponent {\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string | string[];\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string | string[];\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n}\n","<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\"\n class=\"dynamic-add__field__alert\">{{ alertMsg }}</p>\n <dr-input\n #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button\n *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\" icon=\"dr-icon-exit\" iconSize=\"18px\" (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Input() public alertMsg: string;\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(\n this.values,\n (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n },\n [],\n )\n : this.values;\n }\n}\n","<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select\n [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item\n bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div\n class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport { IDynamicTag, ITag, ITagForServer, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss'],\n})\nexport class DrDynamicTagComponent implements OnChanges {\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event),\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, this.tryToParseParentValue).join('__');\n }\n\n private tryToParseParentValue(connectedTags: ITagForServer) {\n if (_isNumber(connectedTags.value)) {\n const momentData = moment.unix(connectedTags.value);\n const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format\n\n if (momentData.isValid() && convertedParentValue) {\n return convertedParentValue;\n }\n }\n\n return connectedTags.value;\n }\n}\n","<div [class.dynamic-tag]=\"currentTagDynamic\"\n [class.dynamic-tag-multiple-line]=\"isDynamicTagMultipleLine\">\n <date-tag\n *ngIf=\"dateTag.type === tagTypes.DATE && !currentTagConnectedToDynamic\"\n [dateTypeChosen]=\"dateTag.sub_type\"\n [defaultValue]=\"dateTag.value\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (selectedDate)=\"onDateHandler($event)\"></date-tag>\n\n <list-tag\n *ngIf=\"listTag.type === tagTypes.LIST && !currentTagConnectedToDynamic && !tagConfig.options?.is_custom\"\n (tagChange)=\"onListHandler($event)\"\n [name]=\"listTag.name\"\n [values]=\"listTag.values\"\n [disabled]=\"disabled\"\n [defaultValue]=\"listTag?.value || defaultValue\"></list-tag>\n\n <dr-dynamic-tag\n *ngIf=\"currentTagDynamic\"\n [lockedTags]=\"lockedDate\"\n [connectedTags]=\"connectedTags\"\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"selectedTag\"\n [isDynamicTagAddEnabled]=\"isDynamicTagAddEnabled\"\n [values]=\"dynamicTagValues\"\n [disabled]=\"disabled\"\n (tagChange)=\"onDynamicTagChange($event)\"\n (tagAdd)=\"dynamicTagAdd.emit($event)\"></dr-dynamic-tag>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport {\n IDateTag,\n IListTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TagTypes,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input() public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private readonly connectableTags = [TagsConfigSubType.FORECAST_NEW, TagsConfigSubType.YEAR];\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n public get isDynamicTagMultipleLine(): boolean {\n return this.currentTagDynamic && this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: '',\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n calculatedValue: event.calculatedValue,\n label: event.label,\n locked: event.locked,\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, (tag) => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value,\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n if (!this.connectableTags.includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(\n this.tagsConfig,\n (tagConfig) => tagConfig.options.is_custom && this.connectableTags.includes(this.tagConfig.options.sub_type),\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges) => {};\n onTouched: any = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n [disabled]=\"disabled\"\n (click)=\"toggleChange($event)\" />\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: ` <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {}\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {};\n protected onTouched = () => {};\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes\n .pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => (radio.disabled = this.disabled));\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange))\n .pipe(takeUntil(merge(this.radios.changes, this.destroy$)))\n .subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin')\n .pipe(\n filter((event) => hostElement.contains(event.target as Node)),\n switchMap(() => merge(fromEvent<Event>(this.document, 'focusin'), fromEvent<Event>(this.document, 'click'))),\n filter((event) => !hostElement.contains(event.target as Node)),\n takeUntil(merge(this.radios.changes, this.destroy$)),\n )\n .subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, AfterViewInit {\n public tooltip: string;\n @Input() checkedStatus: boolean;\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n @HostBinding('class')\n theme: 'medium' | 'small' = 'medium';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n @Input()\n @HostBinding('class.text-nowrap')\n textNowrap: boolean;\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n @ViewChild('checkboxContent') checkboxContent: ElementRef;\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n const element = this.checkboxContent.nativeElement;\n if (this.textNowrap && element.scrollWidth > element.clientWidth) {\n this.tooltip = element.innerText;\n }\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setValue(event) {\n const input = event.target as HTMLInputElement;\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","<label>\n <input\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'checked' : 'unchecked'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"disabled\"\n (change)=\"setValue($event)\"\n (click)=\"$event.stopPropagation()\" />\n <span #checkboxContent [class]=\"icon\" [class.indeterminate]=\"indeterminate\" [drTooltip]=\"tooltip\">\n <ng-content></ng-content>\n </span>\n</label>\n","import { Component, Input } from '@angular/core';\n\nexport enum LinkTheme {\n DEFAULT = 'DEFAULT',\n DEFAULT_UNDERLINE = 'DEFAULT_UNDERLINE',\n GRAY_UNDERLINE = 'GRAY_UNDERLINE',\n}\n\nexport const DEFAULT_LINK_FONT_SIZE = '14px' as const;\nexport const DEFAULT_LINK_FONT_WEIGHT = 400 as const;\n\n@Component({\n selector: 'dr-link',\n templateUrl: './dr-link.component.html',\n styleUrls: ['./dr-link.component.scss'],\n})\nexport class DrLinkComponent {\n @Input({ required: true }) link: string;\n @Input() fontSize: string = DEFAULT_LINK_FONT_SIZE;\n @Input() fontWeight: number = DEFAULT_LINK_FONT_WEIGHT;\n @Input() theme: LinkTheme = LinkTheme.DEFAULT;\n}\n","<a class=\"dr-link\" [class]=\"theme\" [href]=\"link\" [style.font-weight]=\"fontWeight\" [style.font-size]=\"fontSize\">\n <ng-content></ng-content>\n</a>\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","<dr-button\n [disabled]=\"isPrevDateDisabled\"\n *ngIf=\"!disabled\"\n theme=\"icon\"\n icon=\"dr-icon-arrow-left\"\n (click)=\"pagingClicked(false)\"></dr-button>\n<div\n [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <ng-container\n [ngTemplateOutlet]=\"formattedValueTmpl\"\n [ngTemplateOutletContext]=\"{\n formattedValue: displayedFormattedValue$ | async\n }\">\n </ng-container>\n <ng-template #formattedValueTmpl let-value=\"formattedValue\">\n <span>\n {{\n datePickerService.isUsingDateTagPresets && !!presetTagSelected\n ? presetTagSelected + ' (' + value + ')'\n : value\n }}\n </span>\n </ng-template>\n </div>\n <input\n #datepickerInput\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n</div>\n<dr-button\n [disabled]=\"isNextDateDisabled\"\n *ngIf=\"!disabled\"\n theme=\"icon\"\n icon=\"dr-icon-arrow-right\"\n (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker\n #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\">\n</mat-datepicker>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateTags, IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, map, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport { TooltipPosition } from '../../../dr-tooltip/enums/tooltip-position.enum';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService },\n ],\n})\nexport class DrDatePickerWithTimeframeComponent\n extends DrDatePickerComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges\n{\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n }\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag as DateTags);\n }\n\n @Input() datepickerTooltip: TemplateRef<any> | null;\n @Input() datepickerTooltipPosition: string = TooltipPosition.TOP;\n @Input() datepickerTooltipTimeout: number = 0;\n\n @Input() isOpen: boolean = false;\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<DateTags>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward),\n };\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n public displayedFormattedValue$ = this.displayValue$.pipe(\n takeUntil(this.destroyed$),\n map((value: Moment) => {\n if (!value) return this.placeholder;\n return (\n this.datePickerService.getDisplayPrefix() +\n this.dateAdapter.format(value, this.datePickerService.getConfiguredFormat(this.datePickerService.timeframe))\n );\n }),\n );\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.isOpen) {\n this.datePicker.open();\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n this.writeValue(newValue.unix());\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","<div class=\"date-picker-range__from\">\n <span *ngIf=\"labelFrom\" class=\"date-picker-range__from__label\">{{ labelFrom }}</span>\n <dr-date-picker\n [(ngModel)]=\"valueFrom\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionFrom\"\n [placeholder]=\"placeholderFrom\"\n [max]=\"valueTo\"\n [disabled]=\"_disabled || disabledFrom\">\n </dr-date-picker>\n</div>\n<div class=\"date-picker-range__to\">\n <span *ngIf=\"labelTo\" class=\"date-picker-range__to__label\">{{ labelTo }}</span>\n <dr-date-picker\n [(ngModel)]=\"valueTo\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionTo\"\n [placeholder]=\"placeholderTo\"\n [min]=\"valueFrom\"\n [disabled]=\"_disabled || disabledTo\">\n </dr-date-picker>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerPeriodPosition } from '../../../models/datePicker';\nimport { IDatePickerRange } from '../../../models/datePickerRange';\n\nconst noop = () => {};\n\n@Component({\n selector: 'dr-date-picker-range',\n templateUrl: './dr-date-picker-range.component.html',\n styleUrls: ['./dr-date-picker-range.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerRangeComponent, multi: true }],\n})\nexport class DrDatePickerRangeComponent implements ControlValueAccessor {\n private get defaultValue(): IDatePickerRange {\n return {\n from: null,\n to: null,\n };\n }\n\n public _disabled: boolean;\n\n @Input() format: string;\n\n @Input() periodPositionFrom: DatePickerPeriodPosition = DatePickerPeriodPosition.START_OF_PERIOD;\n @Input() periodPositionTo: DatePickerPeriodPosition = DatePickerPeriodPosition.END_OF_PERIOD;\n\n @Input() labelFrom = 'From';\n @Input() labelTo = 'To';\n\n @Input() placeholderFrom = 'Select...';\n @Input() placeholderTo = 'Select...';\n\n @Input() set disabled(val: boolean) {\n this.setDisabledState(val);\n }\n @Input() disabledFrom: boolean;\n @Input() disabledTo: boolean;\n\n @HostBinding('class.column') @Input() column: boolean;\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n private innerValue: IDatePickerRange = this.defaultValue;\n\n private innerValueFrom: number = null;\n\n public get valueFrom(): number {\n return this.innerValueFrom;\n }\n\n public set valueFrom(v: number) {\n if (v !== this.innerValueFrom) {\n this.innerValueFrom = v;\n this.innerValue.from = this.innerValueFrom;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n private innerValueTo: number = null;\n\n public get valueTo(): number {\n return this.innerValueTo;\n }\n\n public set valueTo(v: number) {\n if (v !== this.innerValueTo) {\n this.innerValueTo = v;\n this.innerValue.to = this.innerValueTo;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: IDatePickerRange): void {\n if (!value) {\n this.innerValue = this.defaultValue;\n this.innerValueFrom = this.innerValue.from;\n this.innerValueTo = this.innerValue.to;\n this.cdr.markForCheck();\n } else if (value.from !== this.innerValue.from || value.to !== this.innerValue.to) {\n this.innerValueFrom = value.from || null;\n this.innerValueTo = value.to || null;\n this.innerValue = {\n from: this.innerValueFrom,\n to: this.innerValueTo,\n };\n this.cdr.markForCheck();\n }\n }\n\n public setDisabledState(val: boolean) {\n this._disabled = val;\n this.cdr.markForCheck();\n }\n}\n","<div class=\"tooltip-info\" [style.min-width]=\"data?.minWidth\" [style.max-width]=\"data?.maxWidth\">\n <div *ngIf=\"!data?.hideIcon\" class=\"tooltip-info__icon\" [ngClass]=\"data?.iconTheme\">\n <i [ngClass]=\"data?.icon || 'dr-icon-noty-notification'\"></i>\n </div>\n <div class=\"tooltip-info__content\">\n <div *ngIf=\"data?.title\" class=\"tooltip-info__content__header\">\n <span>{{ data.title }}</span>\n </div>\n <div *ngIf=\"data?.title && data?.description && !data?.hideDivider\" class=\"tooltip-info__content__divider\"></div>\n <div *ngIf=\"data?.description\" class=\"tooltip-info__content__description\">\n <span *ngIf=\"!data.useDescriptionAsHTML\">{{ data.description }}</span>\n <div *ngIf=\"data.useDescriptionAsHTML\" [innerHTML]=\"data.description\"></div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipInfoComponent {\n @Input() data: TooltipInfoContext;\n\n constructor() {}\n}\n","<div class=\"scroll-section\" *ngIf=\"stepper?.scrollLeft !== 0\" (click)=\"scrollLeft()\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n<div #stepper class=\"stepper\" [class.stepper--disabled]=\"disabled\" [class.stepper--mini]=\"mini\">\n <ng-container *ngFor=\"let step of steps; let index = index; last as isLast; first as isFirst\">\n <div *ngIf=\"!step.hide\" class=\"step\" (click)=\"selectStep(step)\" [class.step-setup]=\"inlineLabels\">\n <div\n class=\"step-wrapper\"\n [drTooltip]=\"step.description && tooltip\"\n [drTooltipContext]=\"{ step: step }\"\n [drTooltipPosition]=\"'bottom'\">\n <div\n data-test=\"step_point\"\n class=\"step-point\"\n [class.active]=\"currentStep === step\"\n [class.completed]=\"step.completed\">\n <div *ngIf=\"step === currentStep\" class=\"ellipse\"></div>\n <ng-container [ngSwitch]=\"step.completed\">\n <ng-template [ngSwitchCase]=\"true\">\n <div class=\"pointer blue\">\n <i class=\"dr-icon-approve\"></i>\n </div>\n </ng-template>\n <ng-template [ngSwitchCase]=\"false\">\n <div\n class=\"pointer\"\n [class.gray]=\"step !== currentStep\"\n [ngClass]=\"{ 'blue with-ellipse': step === currentStep }\">\n <div [hidden]=\"step === currentStep || hiddenIndex\" class=\"text\">{{ index + 1 }}</div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div\n data-test=\"step_label_name\"\n class=\"step-label\"\n [class.active]=\"currentStep === step\"\n [ngClass]=\"step.completed ? 'completed' : 'uncompleted'\">\n <span [hidden]=\"hiddenNames\">{{ step.name }}</span>\n </div>\n <ng-container\n *ngIf=\"inlineLabels\"\n [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n <span *ngIf=\"step.showProgress\" data-test=\"step_progress\" class=\"step-progress\">\n {{ (step.requiredTasks ? step.completedTasks : step.requiredTasks) + '/' + step.requiredTasks }}\n </span>\n </div>\n <ng-container\n *ngIf=\"!inlineLabels\"\n [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n </div>\n <div *ngIf=\"mini\" class=\"stepper--mini-connector\"></div>\n </ng-container>\n</div>\n<div\n (click)=\"scrollRight()\"\n class=\"scroll-section\"\n *ngIf=\"\n stepper?.scrollWidth > stepper?.clientWidth &&\n roundWidth(stepper?.scrollLeft + stepper?.clientWidth) < stepper?.scrollWidth\n \">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n\n<ng-template #tooltip let-step=\"step\">\n <div class=\"step-tooltip\">\n <div class=\"step-tooltip_name\">{{ step.name }}</div>\n <div class=\"step-tooltip_description\">{{ step.description }}</div>\n </div>\n</ng-template>\n\n<ng-template #connector let-step=\"step\" let-isLast=\"isLast\" let-index=\"index\">\n <div\n class=\"step-connector\"\n [class.only-one-step]=\"steps.length === 1\"\n [class]=\"'step-connector--' + (!inlineLabels ? 'absolute' : 'inline')\"\n *ngIf=\"steps.length === 1 || !isLast\"\n [style.visibility]=\"withoutConnectors || steps[step.index + 1]?.hide ? 'hidden' : 'unset'\"\n [class.connector-grand]=\"!inlineLabels && (index === 0 || index === steps.length - 2)\">\n <div class=\"progress\" [style.width]=\"getWidth(step)\"></div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class StepperComponent<T extends Step> {\n @Input() steps: T[];\n @Input() currentStep: T;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Input() mini = false;\n @Output() stepChange: EventEmitter<T> = new EventEmitter<T>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<HTMLElement>;\n\n selectStep(step: T): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: T): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed)\n return `${(step?.completedTasks / step?.requiredTasks) * 100 || 0}%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { IFeedback } from './feedback';\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string;\n seq: number;\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE;\n role: ChatRole;\n body: string;\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage, IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n this.avatarUrl = obj?.avatarUrl || null;\n this.user = obj?.user;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n constructor() {}\n}\n","<div class=\"dot-flashing\"></div>\n","<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i\n *ngIf=\"!waitForReply\"\n [style]=\"getSendButtonPosition(textAreaElement)\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() showDisabledButtonInsteadOfDotFlashing = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected domSanitizer: DomSanitizer,\n ) {}\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${res.src})`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage($event) {\n if (!$event || !$event.shiftKey) {\n $event && $event.preventDefault();\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n if (this._textareaInitialHeight) {\n textAreaElement.style.height = '45px';\n } else {\n textAreaElement.style.height = 'auto';\n textAreaElement.style.height = textAreaElement.scrollHeight + 'px';\n }\n\n return `${textAreaElement.style.height}`;\n }\n\n getSendButtonPosition(textAreaElement: HTMLTextAreaElement) {\n return `top: calc(${this.getTextAreaHeight(textAreaElement)} - var(--send-button-offset));`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","export class DrAvatarService {\n public static readonly avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AvatarUser } from './types';\n\n@Pipe({\n name: 'drAvatar',\n})\nexport class DrAvatarPipe implements PipeTransform {\n transform<T extends AvatarUser>(item: T, type: 'full' | 'initials' = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? item.first_name[0] + item.last_name[0] : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? item.first_name + ' ' + item.last_name : item.email;\n }\n}\n","<div class=\"users-section\" [class.compact]=\"compact\">\n <div *ngIf=\"!parsedUsers.length\" class=\"users-section__default\"></div>\n\n <div\n *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"user.status\"\n [style.width]=\"drAvatarSize || null\"\n [style.height]=\"drAvatarSize || null\"\n [style.background-color]=\"getAvatarColor(user)\"\n [ngClass]=\"{\n 'users-section__default': showUnassigned && !user.email,\n 'users-section__user--clickable': drAvatarIsClickable\n }\"\n [drTooltip]=\"user | drAvatar\"\n [drTooltipClass]=\"drAvatarTooltipClass\"\n [drTooltipPosition]=\"drAvatarTooltipPosition\"\n (click)=\"drAvatarIsClickable && userClicked.emit()\">\n {{ user | drAvatar: 'initials' }}\n </div>\n\n <div\n *ngIf=\"parsedUsers.length > USERS_TO_SHOW\"\n class=\"users-section__user users-section__user-more icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n +{{ getLastUsers().length }}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div\n class=\"users-section__user\"\n [style.background-color]=\"getAvatarColor(user)\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{ user | drAvatar: 'initials' }}\n </div>\n <span class=\"username\">\n {{ user | drAvatar }}\n </span>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\nimport { AvatarUser } from './types';\nimport { ElPosition } from '../models/dropdown';\n\nconst USERS_TO_SHOW = 2;\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAvatarComponent<T extends AvatarUser = AvatarUser> {\n @Input()\n set users(users: T[] | T) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition: ElPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n @Input() compact = false;\n\n @Output() userClicked = new EventEmitter<void>();\n parsedUsers: T[] = [];\n\n readonly USERS_TO_SHOW = USERS_TO_SHOW;\n\n getFirstUsers(): T[] {\n return this.parsedUsers.slice(0, USERS_TO_SHOW);\n }\n\n getLastUsers(): T[] {\n if (this.parsedUsers.length > USERS_TO_SHOW) {\n return this.parsedUsers.slice(USERS_TO_SHOW, this.parsedUsers.length);\n }\n return [];\n }\n\n public getAvatarColor(user: T): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","<div class=\"text\" *ngIf=\"message\">{{ message.text }}</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","<div class=\"message-content-group\">\n <a *ngFor=\"let file of readyFiles\" [href]=\"file.url\" target=\"_blank\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle && file.icon\"></i>\n <div *ngIf=\"file.urlStyle\" [style.background-image]=\"file.urlStyle\"></div>\n </a>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES,\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${file.url})`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(\n protected cd: ChangeDetectorRef,\n protected domSanitizer: DomSanitizer,\n ) {}\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","<ng-container *ngIf=\"message.avatarUrl; else userAvatar\">\n <div class=\"avatar\" [style.background-image]=\"'url(' + message.avatarUrl + ')'\"></div>\n</ng-container>\n<ng-template #userAvatar>\n <dr-avatar *ngIf=\"message.user\" [users]=\"message.user\"></dr-avatar>\n\n <div *ngIf=\"!message.user\" class=\"genius-avatar\">\n <i class=\"dr-icon-genius-sparks\"></i>\n </div>\n</ng-template>\n<div class=\"message\" [class.message--custom]=\"customMessage\" [ngClass]=\"applyMessageGroupClass(message)\">\n <ng-container [ngSwitch]=\"message.kind\">\n <dr-chat-message-text *ngSwitchCase=\"MESSAGE_TYPE.TEXT\" [message]=\"message\"></dr-chat-message-text>\n <dr-chat-message-file *ngSwitchCase=\"MESSAGE_TYPE.DOWNLOAD_FILE\" [message]=\"message\"></dr-chat-message-file>\n <ng-container *ngSwitchDefault>\n <ng-container [ngTemplateOutlet]=\"getTemplate()\" [ngTemplateOutletContext]=\"getTemplateContext()\"></ng-container>\n </ng-container>\n </ng-container>\n <div class=\"message__actions\" *ngIf=\"drChatMessageActions\">\n <ng-container [ngTemplateOutlet]=\"drChatMessageActions\"></ng-container>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {}\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${type}'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${type}'.`,\n );\n }\n\n return customMessageDirective;\n }\n\n applyMessageGroupClass(message: IChatMessage) {\n return message.role === 'assistant' && message.kind === 'text' ? 'messageGroup' : '';\n }\n}\n","<div\n class=\"chat-suggestions\"\n #suggestionsContainer\n [ngClass]=\"{\n 'chat-suggestions--three-cols': colsCount === 3,\n 'chat-suggestions--two-cols': colsCount === 2,\n 'chat-suggestions--one-col': colsCount === 1,\n 'chat-suggestions--button-mode': buttonMode\n }\">\n <ng-container *ngIf=\"buttonMode; else suggestionCards\">\n <div\n class=\"chat-suggestions__container\"\n [class.chat-suggestions__container--opened]=\"isSuggestedMenuOpen\"\n *ngIf=\"visibleValues.length\">\n <dr-button theme=\"secondary\" class=\"chat-suggestions__container__button\" (click)=\"toggleSuggestedMenu()\">\n Suggested chats\n </dr-button>\n <ng-container *ngTemplateOutlet=\"suggestionCards\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #suggestionCards>\n <div\n class=\"chat-suggestions__items\"\n [ngClass]=\"{\n 'chat-suggestions__items--three-cols': colsCount === 3,\n 'chat-suggestions__items--two-cols': colsCount === 2,\n 'chat-suggestions__items--one-col': colsCount === 1\n }\">\n <div *ngFor=\"let item of visibleValues\" class=\"chat-suggestions__items__item\" (click)=\"onItemClick(item)\">\n {{ item }}\n </div>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport * as _ from 'lodash';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit, OnDestroy, AfterViewInit {\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n colsCount = 1;\n private destroy$ = new Subject<void>();\n\n @Input() values: string[] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('suggestionsContainer', { static: false }) suggestionContainer: ElementRef;\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n onResize$: Observable<ResizeObserverEntry[]>;\n\n colWidth = 300;\n colGap = 28;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.filterValues();\n }\n\n ngAfterViewInit() {\n this.onResize$ = DrSharedUtils.fromResizeObserver(this.suggestionContainer?.nativeElement);\n this.onResize$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.recalculateColsCount();\n });\n this.recalculateColsCount();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, (val) => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 3;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n recalculateColsCount() {\n if (this.suggestionContainer?.nativeElement?.offsetWidth >= this.colWidth * 3 + this.colGap * 2) {\n this.colsCount = 3;\n } else if (this.suggestionContainer?.nativeElement?.offsetWidth > this.colWidth * 2 + this.colGap) {\n this.colsCount = 2;\n } else {\n this.colsCount = 1;\n }\n this.cdr.markForCheck();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div\n #messagesContainer\n class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n </div>\n </div>\n\n <dr-chat-suggestions\n *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService],\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n }\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @ContentChild('drChatHeader') chatHeader: TemplateRef<unknown>;\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return (\n this.messagesContainer &&\n this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight\n );\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n this.messages.changes.subscribe((messages) => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n clearHiddenSuggestions() {\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions?.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(\n public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService,\n ) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-chat-alert',\n templateUrl: './dr-chat-alert.component.html',\n styleUrls: ['./dr-chat-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatAlertComponent {\n @Input() iconClass = 'dr-icon-info';\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n}\n","<i [class]=\"iconClass\"></i>\n<ng-content></ng-content>\n<dr-button (click)=\"close.emit()\" theme=\"icon\" icon=\"dr-icon-exit\" class=\"chat-alert-close-btn\" drTooltip=\"Close\"> </dr-button>\n","<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{ toggleTitle }}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\" />\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{ toggleTitle }}</span>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","<div class=\"badge-status\" [drTooltip]=\"tooltip\" [drTooltipClass]=\"tooltipClass\" [ngClass]=\"'badge-status--' + theme\">\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i>\n <span *ngIf=\"label\">{{ label }}</span>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DrBadgeStatusComponent {\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n @Input() tooltipClass: string;\n}\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n}\n","<div class=\"dr-alert__content-wrapper\">\n <i [class]=\"'dr-alert__icon ' + themeIconClass\"></i>\n <span *ngIf=\"!contentRef.innerHTML.trim()\" class=\"dr-alert__text\">{{ text }}</span>\n <div class=\"dr-alert__custom-content\" #contentRef>\n <ng-content></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${this.theme}`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-code-editor-hint-wrapper',\n template: ` <span [innerHTML]=\"content\" [drTooltip]=\"tooltip\"></span> `,\n})\nexport class CodeEditorHintWrapperComponent {\n content: string;\n tooltip: string;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n NgZone,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Editor, EditorChange, EditorFromTextArea, ScrollInfo } from 'codemirror';\nimport * as CodeMirror from 'codemirror';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\n\n@Component({\n selector: 'dr-codemirror',\n template: `\n <textarea\n [name]=\"name\"\n class=\"dr-codemirror {{ className }}\"\n [class.dr-codemirror--focused]=\"isFocused\"\n autocomplete=\"off\"\n [autofocus]=\"autoFocus\"\n #ref>\n </textarea>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrCodemirrorComponent),\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrCodemirrorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor, DoCheck {\n @Input() className = '';\n @Input() name = 'codemirror';\n @Input() autoFocus = false;\n\n @Input()\n set options(value: { [key: string]: any }) {\n this._options = value;\n if (!this._differ && value) {\n this._differ = this._differs.find(value).create();\n }\n }\n @Input() preserveScrollPosition = false;\n @Output() cursorActivity = new EventEmitter<Editor>();\n @Output() focusChange = new EventEmitter<boolean>();\n @Output() scroll = new EventEmitter<ScrollInfo>();\n @Output() drop = new EventEmitter<[Editor, DragEvent]>();\n @Output() codeMirrorLoaded = new EventEmitter<DrCodemirrorComponent>();\n @ViewChild('ref') ref!: ElementRef<HTMLTextAreaElement>;\n value = '';\n disabled = false;\n isFocused = false;\n codeMirror?: EditorFromTextArea;\n\n private _codeMirror: any;\n private _differ?: KeyValueDiffer<string, any>;\n private _options: any;\n\n constructor(\n private _differs: KeyValueDiffers,\n private _ngZone: NgZone,\n ) {}\n\n get codeMirrorGlobal(): any {\n if (this._codeMirror) {\n return this._codeMirror;\n }\n\n this._codeMirror = CodeMirror;\n return this._codeMirror;\n }\n\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(async () => {\n const codeMirrorObj = await this.codeMirrorGlobal;\n const codeMirror = codeMirrorObj?.default ? codeMirrorObj.default : codeMirrorObj;\n this.codeMirror = codeMirror.fromTextArea(this.ref.nativeElement, this._options) as EditorFromTextArea;\n this.codeMirror.on('cursorActivity', (cm) => this._ngZone.run(() => this.cursorActive(cm)));\n this.codeMirror.on('scroll', this.scrollChanged.bind(this));\n this.codeMirror.on('blur', () => this._ngZone.run(() => this.focusChanged(false)));\n this.codeMirror.on('focus', () => this._ngZone.run(() => this.focusChanged(true)));\n this.codeMirror.on('change', (cm, change) => this._ngZone.run(() => this.codemirrorValueChanged(cm, change)));\n this.codeMirror.on('drop', (cm, e) => {\n this._ngZone.run(() => this.dropFiles(cm, e));\n });\n this.codeMirror.setValue(this.value);\n this.codeMirrorLoaded.emit(this);\n });\n }\n\n ngDoCheck() {\n if (!this._differ) {\n return;\n }\n // check options have not changed\n const changes = this._differ.diff(this._options);\n if (changes) {\n changes.forEachChangedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachAddedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachRemovedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n }\n }\n\n ngOnDestroy() {\n // is there a lighter-weight way to remove the cm instance?\n if (this.codeMirror) {\n this.codeMirror.toTextArea();\n }\n }\n\n codemirrorValueChanged(cm: Editor, change: EditorChange) {\n const cmVal = cm.getValue();\n if (this.value !== cmVal) {\n this.value = cmVal;\n this.onChange(this.value);\n }\n }\n\n setOptionIfChanged(optionName: string, newValue: any) {\n if (!this.codeMirror) {\n return;\n }\n\n // cast to any to handle strictly typed option names\n // could possibly import settings strings available in the future\n this.codeMirror.setOption(optionName as any, newValue);\n }\n\n focusChanged(focused: boolean) {\n this.onTouched();\n this.isFocused = focused;\n this.focusChange.emit(focused);\n }\n\n scrollChanged(cm: Editor) {\n this.scroll.emit(cm.getScrollInfo());\n }\n\n cursorActive(cm: Editor) {\n this.cursorActivity.emit(cm);\n }\n\n dropFiles(cm: Editor, e: DragEvent) {\n this.drop.emit([cm, e]);\n }\n\n writeValue(value: string) {\n if (value === null || value === undefined) {\n return;\n }\n if (!this.codeMirror) {\n this.value = value;\n return;\n }\n const cur = this.codeMirror.getValue();\n if (value !== cur && DrSharedUtils.normalizeLineEndings(cur) !== DrSharedUtils.normalizeLineEndings(value)) {\n this.value = value;\n if (this.preserveScrollPosition) {\n const prevScrollPosition = this.codeMirror.getScrollInfo();\n this.codeMirror.setValue(this.value);\n this.codeMirror.scrollTo(prevScrollPosition.left, prevScrollPosition.top);\n } else {\n this.codeMirror.setValue(this.value);\n }\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.setOptionIfChanged('readOnly', this.disabled);\n }\n\n private onChange = (_: any) => {};\n\n private onTouched = () => {};\n}\n","<div\n *ngIf=\"error$ | async as error\"\n [drTooltip]=\"displayAsLabel ? null : error\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"warning$ | async\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ error }}</span>\n</div>\n","import { Component, HostBinding, Input, Optional } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgModel } from '@angular/forms';\nimport { asyncScheduler, BehaviorSubject, filter, map, observeOn, switchMap, withLatestFrom } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(@Optional() private formGroupDirective: FormGroupDirective) {}\n\n @Input() set control(value: AbstractControl | NgModel) {\n if (value) {\n this.controlChange$.next(value);\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as AbstractControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n errorString(control: AbstractControl | NgModel) {\n if (control.hasError('required')) {\n return 'Field is required!';\n }\n\n return control.errors?.errorString || null;\n }\n\n readonly controlChange$ = new BehaviorSubject<AbstractControl | NgModel>(null);\n readonly controlErrorStatus$ = this.controlChange$.pipe(\n filter(Boolean),\n switchMap((control) => control.statusChanges.pipe().pipe(map(() => control))),\n map((control) => control.status === 'INVALID' && !control.pristine),\n );\n readonly error$ = this.controlErrorStatus$.pipe(\n observeOn(asyncScheduler),\n withLatestFrom(this.controlChange$),\n map(([show, control]) => [show, this.displayAsLabel ? this.errorString(control) : this.label]),\n map(([show, label]) => (show ? label : null)),\n );\n readonly warning$ = this.controlChange$.pipe(map((control) => !!control.errors?.isWarning));\n}\n","<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n forwardRef,\n Injector,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as CodeMirror from 'codemirror';\nimport { Hint, Hints } from 'codemirror';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { ICodeEditorHint, ICodeEditorMarker } from './models/code-editor-hint';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\nconst noop = () => {};\n\n@Component({\n selector: 'dr-code-editor',\n templateUrl: './dr-code-editor.component.html',\n styleUrls: ['./dr-code-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrCodeEditorComponent), multi: true }],\n})\nexport class DrCodeEditorComponent implements ControlValueAccessor {\n constructor(\n private cdr: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver,\n private injector: Injector,\n ) {}\n\n public innerValue: any = '';\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n private existMarkers: any[];\n private highlightedHints: any[];\n private parenthesesMarkers = [];\n private parenthesisColors: string[] = [\n '#2F3E48',\n '#1f68cc',\n '#9480CD',\n '#4D9944',\n '#B03E84',\n '#B64900',\n '#267392',\n '#326AC7',\n ];\n private parenthesesMap = {\n '}': '{',\n ']': '[',\n ')': '(',\n '{': '}',\n '[': ']',\n '(': ')',\n };\n private doc: any;\n private _hints: ICodeEditorHint[] = [];\n\n private hintRefsStack = [];\n\n public codeMirrorOptions: any = {\n lineWrapping: true,\n matchBrackets: true,\n autoRefresh: true,\n lineNumbers: false,\n mode: 'javascript',\n extraKeys: { 'Ctrl-Space': 'autocomplete' },\n autoCloseBrackets: true,\n hintOptions: {\n container: window.document.body,\n completeSingle: false,\n },\n };\n public isFocused: boolean;\n @Input() public markers: ICodeEditorMarker[];\n @Input() public highlightHints = false;\n\n @Input() set hints(values: ICodeEditorHint[]) {\n if (values?.length) {\n this._hints = values;\n this.registerHints(values);\n }\n }\n\n @Input() control: FormControl | any;\n @Input() placeholder: string = 'Start typing your formula here. We support (+,-,*,/).\\nFor Example: [Feb-22] - [Jan-22]';\n @ViewChild('codeEditor') private codeEditor: DrCodemirrorComponent;\n\n public get value(): string {\n return this.innerValue;\n }\n\n public set value(v: string) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n this.highlightCustomFunctionsInEditor();\n this.colorizeParentheses();\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n }\n }\n\n public writeValue(value: string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n focusChanged(bool): void {\n this.isFocused = bool;\n }\n public afterCodeMirrorLoaded(): void {\n this.doc = this.codeEditor.codeMirror.getDoc();\n\n this.codeEditor.codeMirror.on('keyup', (cm, event) => {\n if (!this._hints.length) return;\n\n if (\n (!event.ctrlKey && event.keyCode >= 65 && event.keyCode <= 90) ||\n (event.keyCode >= 97 && event.keyCode <= 122) ||\n (event.keyCode >= 46 && event.keyCode <= 57) ||\n event.keyCode === 32\n ) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n });\n this.codeEditor.codeMirror.on('focus', (cm, event) => {\n if (!this._hints.length) return;\n\n setTimeout(() => {\n if (this.isFocused) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n }, 200);\n });\n\n setTimeout(() => {\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n });\n }\n\n private isClosedParenthesis(parenthesis: string): boolean {\n return ['}', ')', ']'].some((value: string) => value === parenthesis);\n }\n\n private colorizeParentheses(): void {\n const string = this.doc.getValue();\n const stack = [];\n const result = [];\n let line = 0;\n let ch = 0;\n this.parenthesesMarkers.forEach((marker) => marker.clear());\n this.parenthesesMarkers = [];\n\n for (let index = 0; index < string.length; index++) {\n const char = string.charAt(index);\n if (char === '\\n') {\n line++;\n ch = 0;\n continue;\n }\n if (this.parenthesesMap[char]) {\n const peek = stack ? stack[stack.length - 1] : null;\n\n if (!this.isClosedParenthesis(char)) {\n let colorIndex = peek?.colorIndex + 1 || 0;\n colorIndex = colorIndex > this.parenthesisColors.length - 1 ? 0 : colorIndex;\n\n stack.push({ value: char, color: this.parenthesisColors[colorIndex], colorIndex });\n result[index] = { value: char, color: this.parenthesisColors[colorIndex], colorIndex };\n }\n if (stack?.length && peek?.value === this.parenthesesMap[char]) {\n result[index] = { value: char, color: peek.color, colorIndex: peek.colorIndex };\n stack.pop();\n }\n }\n\n if (result[index]) {\n this.parenthesesMarkers.push(\n this.doc.markText(\n {\n line,\n ch,\n },\n {\n line,\n ch: ch + 1,\n },\n {\n css: `color: ${result[index].color}`,\n },\n ),\n );\n }\n ch++;\n }\n }\n\n private highlightCustomFunctionsInEditor(): void {\n const markers = this.markers || [];\n const existMarkers = this.existMarkers || [];\n\n existMarkers.forEach((m) => m.clear());\n this.doc.eachLine((line) => {\n markers.forEach((marker) => {\n const searchStr = marker.name + '\\\\(';\n const matches = line.text.matchAll(new RegExp(searchStr, 'g'));\n for (const match of matches) {\n existMarkers.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index,\n },\n {\n line: line.lineNo(),\n ch: match.index + marker.name.length,\n },\n {\n className: 'marker',\n title: marker.title,\n },\n ),\n );\n }\n });\n });\n }\n\n public pasteText(text: string, goCharLeft?: boolean): void {\n this.doc.replaceSelection(text);\n this.doc.cm.focus();\n if (goCharLeft) {\n this.doc.cm.execCommand('goCharLeft');\n }\n }\n\n private registerHints(dictionary: ICodeEditorHint[] = []) {\n const hintRegexp = /[\\w$]|[ &'\"#%$@]/;\n CodeMirror.registerHelper('hint', 'dictionaryHint', (editor) => {\n const cursor = editor.getCursor();\n const currentLine = editor.getLine(cursor.line);\n\n let start = cursor.ch;\n let end = cursor.ch;\n while (end < currentLine.length && hintRegexp.test(currentLine.charAt(end))) ++end;\n while (start && hintRegexp.test(currentLine.charAt(start - 1))) --start;\n\n const currentWord = (start !== end && currentLine.slice(start, end)) || '';\n\n const filteredDictionary =\n (!currentWord\n ? dictionary\n : dictionary.filter((item) => item.value.toLowerCase().includes(currentWord.toLowerCase()))\n ).sort() || [];\n\n const hintsList: Hint[] = filteredDictionary.map((item: ICodeEditorHint) => {\n const displayText = item.value;\n let text = item.value;\n\n if (currentLine[start - 1] !== '[') {\n text = '[' + text;\n }\n if (currentLine[end] !== ']') {\n text += ']';\n }\n\n return {\n text,\n displayText,\n render: (element: HTMLLIElement, data: Hints, current: Hint) => {\n const startIndex = current.displayText.toLowerCase().indexOf(currentWord.toLowerCase());\n const stringToReplace = current.displayText.slice(startIndex, startIndex + currentWord.length);\n const hintHTML =\n `${item.icon} ` + current.displayText.replace(stringToReplace, `<b>${stringToReplace}</b>`);\n\n const componentFactory = this.cfr.resolveComponentFactory(CodeEditorHintWrapperComponent);\n const componentRef = componentFactory.create(this.injector);\n componentRef.instance.content = hintHTML;\n componentRef.instance.tooltip = item.hint;\n componentRef.changeDetectorRef.detectChanges();\n element.appendChild(componentRef.location.nativeElement);\n\n this.hintRefsStack.push(componentRef);\n },\n };\n });\n\n return {\n list: hintsList,\n from: CodeMirror.Pos(cursor.line, start),\n to: CodeMirror.Pos(cursor.line, end),\n };\n });\n\n // @ts-ignore\n CodeMirror.commands.autocomplete = (cm) => {\n this.destroyHints();\n\n // @ts-ignore\n CodeMirror.showHint(cm, CodeMirror.hint.dictionaryHint);\n };\n }\n\n private destroyHints() {\n this.hintRefsStack.forEach((ref) => ref.destroy());\n this.hintRefsStack = [];\n }\n\n private updateHighlightHints() {\n const hints = this._hints || [];\n const highlightedHints = this.highlightedHints || [];\n\n highlightedHints.forEach((m) => m.clear());\n\n this.doc.eachLine((line) => {\n const matches = line.text.matchAll(/(?:\\[).+?(?=\\])/gm);\n for (const match of matches) {\n const hint = hints.find((h) => h.value === match[0].replace('[', ''));\n if (hint) {\n highlightedHints.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index + 1,\n },\n {\n line: line.lineNo(),\n ch: match.index + 1 + hint.value.length,\n },\n {\n className: 'hint-variable',\n title: hint.value,\n },\n ),\n );\n }\n }\n });\n\n this.cdr.markForCheck();\n }\n}\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","<div class=\"scenario-tag-configuration\" *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(\n tags,\n (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n },\n {},\n );\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n },\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean, isForecastMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: 'Date',\n },\n [TagsConfigSubType.FORECAST_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],\n hidden: !isForecastMultipleDimension,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some,\n map as _map,\n includes as _includes,\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n private isForecastMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => (scenario === Scenario.NONE ? 1 : 0));\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean, isForecastMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n this.isForecastMultipleDimension = isForecastMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(\n scenarioTags,\n (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type,\n ),\n );\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi =\n tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(\n scenarioTagsUi,\n (tag) => tag.toggle && !!tag.acceptableSubTags?.length,\n );\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [\n TagsConfigSubType.DAY,\n TagsConfigSubType.WEEK,\n TagsConfigSubType.MONTH,\n TagsConfigSubType.QUARTER,\n TagsConfigSubType.YEAR,\n ];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi =\n tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(\n scenarioTagsConfig: IScenarioTag[],\n scenarioTag: IScenarioTag,\n scenario: Scenario,\n isDateTag: boolean,\n ): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle = false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options\n ?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () =>\n _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () =>\n _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options\n ?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n };\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(\n tagsConfig,\n (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n const scenarioTagConfig: IScenario =\n scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n },\n [],\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../models/serverTags';\nimport { find as _find, reduce as _reduce, some as _some } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\n\n@Injectable()\nexport class TagsConstructorService {\n private readonly tagsNotSupportingDatesTag = [TagsConfigSubType.PLAN];\n private readonly tagsAcceptableSubTags = {\n [TagsConfigSubType.BUDGET_CYCLE]: [TagsConfigSubType.YEAR],\n };\n\n public buildTags(tagsConfigToDisplay: ITag[], selectedTagsConfig: ITag[]): IScenarioTagUi[] {\n return _reduce(\n tagsConfigToDisplay,\n (acc, tagConfig: ITag) => {\n const isTagWithSubTags = tagConfig.type === TagTypes.DATE && tagConfig.options.sub_type !== TagsConfigSubType.FORECAST_NEW;\n const tagWithSubTags = isTagWithSubTags && _find(acc, { type: tagConfig.type });\n\n const tag = tagWithSubTags || this.prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateSubTags(tag, tagConfig, selectedTagsConfig);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return acc;\n\n acc.push(tag);\n return acc;\n },\n [],\n );\n }\n\n private updateSubTags(tag: IScenarioTagUi, tagConfig: ITag, selectedTagsConfig: ITag[]): void {\n const tagSubType = tagConfig.options.sub_type;\n if (tagSubType === TagsConfigSubType.FORECAST_NEW) return;\n\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n tag.name = 'Date';\n\n const enabledTagSubType = _find(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === tagSubType)?.options\n ?.sub_type;\n tag.toggle = !!enabledTagSubType || tag.toggle;\n\n if (tag.toggle && enabledTagSubType) {\n tag.selectedTagSubType = tagSubType;\n }\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagConfig.name,\n });\n }\n\n private prepareTag(tagConfig: ITag, selectedTagsConfig: ITag[], isTagWithSubTags: boolean): IScenarioTagUi {\n const selectedTagSubType = isTagWithSubTags ? TagsConfigSubType.MONTH : tagConfig.options.sub_type;\n const toggleStatus = _some(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === selectedTagSubType);\n\n const tag: IScenarioTagUi = {\n toggle: toggleStatus,\n name: tagConfig.name,\n description: tagConfig.description,\n type: tagConfig.type,\n selectedTagSubType,\n };\n\n if (this.tagsNotSupportingDatesTag.includes(selectedTagSubType)) {\n tag.turnOffDateTags = true;\n }\n\n if (this.tagsAcceptableSubTags[selectedTagSubType]) {\n tag.acceptableSubTags = this.tagsAcceptableSubTags[selectedTagSubType];\n }\n\n return tag;\n }\n}\n","<div class=\"tags-constructor\">\n <p class=\"tags-constructor__title--extra tags-constructor__tags__title\">Tags</p>\n <div class=\"tags-constructor__tag\" *ngFor=\"let tag of currentTags\">\n <div class=\"tags-constructor__tag__header\">\n <p class=\"tags-constructor__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\" (ngModelChange)=\"onTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"tags-constructor__tag__description\">\n <p class=\"tags-constructor__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"tags-constructor__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"tags-constructor__sub-tag\">\n <dr-toggle-button\n [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onSubTagChange(tag)\"></dr-toggle-button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\nimport { ToggleButtonMode } from '../dr-inputs/dr-toggle-button/toggle-button-mode';\nimport { ITag } from '../models/serverTags';\nimport { reduce as _reduce, some as _some, filter as _filter, forEach as _forEach } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@Component({\n selector: 'dr-tags-constructor',\n templateUrl: './dr-tags-constructor.component.html',\n styleUrls: ['./dr-tags-constructor.component.scss'],\n})\nexport class DrTagsConstructorComponent implements OnInit {\n public readonly toggleButtonMode = ToggleButtonMode;\n\n public get currentTags(): IScenarioTagUi[] {\n return this.scenarioTagsConfig || this.tagsUi;\n }\n\n public get isScenarioFlow(): boolean {\n return !!this.scenarioTagsConfig;\n }\n\n /*\n * Used only for scenario flow (dr-scenario-configuration tag)\n * (only this input necessary for scenario flow)\n * */\n @Input() scenarioTagsConfig: IScenarioTagUi[];\n\n /*\n * Used for display provided tagsConfig\n * (for scenario flow, use this input to get tagsConfig data on stateChange emit)\n * */\n @Input() tagsConfigToDisplay: ITag[] = [];\n\n /*\n * Used for toggle on provided tagsConfig\n * (not related to scenario flow)\n * */\n @Input() selectedTagsConfig: ITag[] = [];\n\n @Output() tagChange: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() tagToggle: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() stateChange: EventEmitter<ITag[]> = new EventEmitter<ITag[]>();\n\n private tagsUi = [];\n\n private get tagsWithSubTags(): IScenarioTagUi[] {\n return _reduce(\n this.tagsUi,\n (acc, curr: IScenarioTagUi) => {\n if (curr?.subTags?.length) {\n acc.push(curr);\n }\n\n return acc;\n },\n [],\n );\n }\n\n private get tagsNotSupportingDateTag(): IScenarioTagUi[] {\n return _reduce(\n this.tagsUi,\n (acc, curr: IScenarioTagUi) => {\n if (curr?.turnOffDateTags) {\n acc.push(curr);\n }\n\n return acc;\n },\n [],\n );\n }\n\n constructor(\n private scenarioService: ScenarioService,\n private tagsConstructor: TagsConstructorService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.isScenarioFlow) {\n this.buildTags();\n }\n }\n\n public onSubTagChange(tag: IScenarioTagUi): void {\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagChange.emit(tagToEmit);\n }\n\n public onTagToggle(tag: IScenarioTagUi): void {\n if (!this.isScenarioFlow) {\n this.updateTagsState(tag);\n }\n\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagToggle.emit(tagToEmit);\n }\n\n public onStateChange(): void {\n const tagsConfig = this.getTagsConfig(this.currentTags);\n this.stateChange.emit(tagsConfig);\n }\n\n private buildTags(): void {\n this.tagsUi = this.tagsConstructor.buildTags(this.tagsConfigToDisplay, this.selectedTagsConfig);\n }\n\n private getTagsConfig(currentTags: IScenarioTagUi[]): ITag[] {\n return _filter(this.tagsConfigToDisplay, (tagConfig) =>\n _some(currentTags, (tag) => tag.toggle && tag.selectedTagSubType === tagConfig.options.sub_type),\n );\n }\n\n private updateTagsState(tag: IScenarioTagUi): void {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagAcceptableSubTagsHandler(tag, tagWithSubTag));\n\n _forEach(this.tagsNotSupportingDateTag, (tagNotSupportingDate) => {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) =>\n this.scenarioService.tagNotSupportingDatesHandler(tag, tagNotSupportingDate, tagWithSubTag),\n );\n });\n }\n}\n","<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select\n [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor\n [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($any($event))\"></dr-tags-constructor>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find } from 'lodash';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService],\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n @Input() public isForecastMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {}\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.scenarioService.tagNotSupportingDatesHandler<IScenarioTagUi>(tag, this.tagNotSupportingDates, this.dateTag);\n this.scenarioService.tagAcceptableSubTagsHandler<IScenarioTagUi>(tag, this.dateTag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n get instance(): T {\n return this.componentRef.instance.componentRef.instance;\n }\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef, StaticProvider } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel<C = any> {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: Partial<C>;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n positionOffsetY?: number;\n positionOffsetX?: number;\n providers?: StaticProvider[];\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","<div class=\"dr-popover\" [class]=\"class\" #popoverContainer>\n <ng-container *ngIf=\"isContentTemplate\">\n <ng-container *ngTemplateOutlet=\"_contentAsTemplate; context: contentContext\"></ng-container>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [trigger('popover', POPUP_ANIMATION)],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n _contentAsType: Type<T>;\n _contentAsTemplate: TemplateRef<any>;\n @Input() set content(value: TemplateRef<any> | Type<T>) {\n this.isContentTemplate = value instanceof TemplateRef;\n if (this.isContentTemplate) {\n this._contentAsTemplate = value as TemplateRef<any>;\n } else {\n this._contentAsType = value as Type<T>;\n }\n }\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost =\n this.hostRef instanceof ElementRef &&\n (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (\n !isTargetHost &&\n !isTargetInPopover &&\n !isTargetInDatepicker &&\n !isTargetInSelect &&\n !isTargetInDatepickerContent &&\n !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {}\n\n ngOnInit(): void {\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this._contentAsType);\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${newContainer.scrollTop + position.top - newContainerPosition.top}px`;\n element.style.left = `${newContainerPosition.left + position.left}px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension, IDrPopoverComponentModel, Point } from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {}\n\n open<T>(\n content: Type<T> | TemplateRef<unknown> | ComponentType<T>,\n popoverModel: IDrPopoverComponentModel<T>,\n ): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<unknown>,\n {\n contentContext,\n position,\n class: elementClass,\n manualClosing,\n hostRef,\n alignment,\n freezeToContainerSelector,\n overlayConfig,\n }: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>,\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(\n DrPopoverComponent,\n null,\n this.createInjector(popoverRef, overlayConfig.providers),\n );\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position])\n throw new Error(`DrPopover does not support the '${popoverModel?.position}' position!`);\n\n const position: any = { ...POPUP_POSITIONS[popoverModel.position] };\n const positionOffsetY = popoverModel.overlayConfig.positionOffsetY;\n const positionOffsetX = popoverModel.overlayConfig.positionOffsetX;\n\n if (positionOffsetY || positionOffsetX) {\n if (position.offsetY) {\n position.offsetY = position.offsetY < 0 ? positionOffsetY : positionOffsetY;\n position.offsetX = positionOffsetX;\n }\n if (position.offsetX) {\n position.offsetX = position.offsetX < 0 ? -positionOffsetX : positionOffsetX;\n position.offsetY = positionOffsetY;\n }\n }\n\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...(popoverModel.overlayConfig || {}) };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>, tokens: StaticProvider[]): Injector {\n const injectionTokens: StaticProvider[] = [...(tokens || []), { provide: DrPopoverRef, useValue: popoverRef }];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(\n popoverModel: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>,\n ): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((host) =>\n overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }),\n );\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, TemplateRef, Type } from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, DrPopoverConfig, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]',\n exportAs: 'drPopoverInstance',\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n @Input('drPopover') content: TemplateRef<T> | Type<T>;\n\n @Input('drPopoverContext') contentContext: Partial<T> = {} as Partial<T>;\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: DrPopoverConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(\n private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {}\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = (this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector,\n }));\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","export function Debounce(ms: number): MethodDecorator {\n return function (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n let timeout = null;\n\n descriptor.value = function (...args: any[]) {\n clearTimeout(timeout);\n timeout = setTimeout(() => originalMethod.apply(this, args), ms);\n };\n\n return descriptor;\n };\n}\n","<div #menuContainer [class]=\"containerClass\" class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\" (mouseenter)=\"onMouseenter()\" (mouseleave)=\"onMouseleave()\" tabindex=\"-1\" role=\"listbox\">\n <ng-content select=\"dr-dropdown-item\"></ng-content>\n\n <dr-dropdown-item\n *ngFor=\"let act of list | drDropdownItemShowPipe; let index = index\"\n (mousedown)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"'left'\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n [drDropdown]=\"hasChildren(act) && act.children\"\n [drDropdownClass]=\"act.childOptions?.class\"\n [drDropdownInHover]=\"true\"\n [drDropdownPosition]=\"act.childOptions?.position\"\n drDropdownChild\n [disabled]=\"disabled(act)\"\n [selected]=\"selected(act)\"\n [divider]=\"act.separateLine\"\n [attr.data-analytics]=\"getDataAnalyticsTag(act, index)\"\n role=\"option\"\n tabindex=\"0\">\n <ng-container dropdownItemContent *ngIf=\"!act.templateRef\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\" class=\"dr-dropdown__icon\"></i>\n <span class=\"dr-dropdown__text\">{{ act.title }}</span>\n </ng-container>\n\n <ng-container dropdownItemActions *ngIf=\"!act.templateRef\">\n <i\n *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (mousedown)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"hasChildren(act)\" class=\"dr-icon-arrow-right\"></i>\n </ng-container>\n\n <ng-container\n *ngIf=\"act.templateRef\"\n dropdownItemContent\n [ngTemplateOutlet]=\"act.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: act }\">\n </ng-container>\n </dr-dropdown-item>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { IDropdown, IDropdownAction, IDropdownActionIcon, IDropdownItem } from '../models/dropdown';\nimport { DrPopoverRef } from '../models/popover';\nimport { first, merge, Subject, takeUntil } from 'rxjs';\nimport { DropdownInstanceRef, DropdownInstanceService } from './dr-dropdown.service';\nimport { Debounce } from '../utils/decorators';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDropdownComponent implements DropdownInstanceRef {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly popoverRef = inject(DrPopoverRef, { optional: true });\n private readonly dropdownInstanceService = inject(DropdownInstanceService, { optional: true });\n\n private readonly destroy$ = new Subject<void>();\n\n private _active = true;\n\n @ViewChild('menuContainer', { static: true })\n menuContainer: ElementRef<HTMLDivElement>;\n\n drDropdownInHover: boolean;\n private readonly drDropdownInHoverChange$ = new Subject<void>();\n list: IDropdownItem<unknown>[] = [];\n containerClass: string;\n wasHovered = false;\n asChild = false;\n dataAnalytics: string;\n\n @Input()\n set options(data: IDropdown<IDropdownItem<unknown>>) {\n if (data) {\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.dataAnalytics = data.dataAnalytics;\n this.list = data.list || [];\n this.list.forEach((item) => {\n if (item.children?.length) {\n item.childOptions = {\n class: item?.childOptions?.class || '',\n position: item?.childOptions?.position || 'left-top',\n };\n }\n });\n this.cdr.markForCheck();\n\n if (this.drDropdownInHover) {\n this.dropdownInstanceService\n .inactive(this)\n .pipe(first(), takeUntil(merge(this.destroy$, this.drDropdownInHoverChange$)))\n .subscribe(() => {\n this.popoverRef.close();\n });\n }\n }\n }\n\n @Output('action')\n onAction = new EventEmitter<IDropdownAction<unknown>>();\n\n constructor() {\n if (!this.dropdownInstanceService) return;\n\n this.dropdownInstanceService.register(this);\n inject(DestroyRef).onDestroy(() => {\n this.dropdownInstanceService.unregister(this);\n this.destroy$.next();\n this.destroy$.next();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes?.drDropdownInHover?.isFirstChange()) {\n this.drDropdownInHoverChange$.next();\n }\n }\n\n disabled(act: IDropdownItem<unknown>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n action(act: IDropdownItem<unknown>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n const event = { event: act.event || act.title || 'default', data: act.data };\n this.onAction.emit(event);\n }\n }\n }\n\n onActionIconClick($event: MouseEvent, actionIcon: IDropdownActionIcon<unknown>, data: unknown) {\n $event.stopPropagation();\n actionIcon.action(data);\n }\n\n hasChildren(item: IDropdownItem<unknown>): boolean {\n return !!item.children?.length;\n }\n\n onMouseenter(): void {\n this.wasHovered = true;\n this._active = true;\n }\n\n @Debounce(200)\n onMouseleave(): void {\n this._active = false;\n }\n\n active(): boolean {\n return this._active;\n }\n\n getDataAnalyticsTag(act: IDropdownItem<unknown>, index: number): string {\n return act.dataAnalytics\n ? act.dataAnalytics\n : this.dataAnalytics\n ? this.dataAnalytics + '_' + (act.title?.replace(/ /g, '-') || index)\n : null;\n }\n}\n","import { DestroyRef, EventEmitter, inject, Injectable, Injector, StaticProvider } from '@angular/core';\nimport { BehaviorSubject, filter, interval, map, Subject, switchMap, takeUntil } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdown, IDropdownAction, IDropdownItem } from '../models/dropdown';\nimport { DrPopoverService } from '../dr-popover/dr-popover.service';\nimport { IDrPopoverComponentModel } from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrDropdownService {\n private readonly popoverService = inject(DrPopoverService);\n\n open({\n hostRef,\n options,\n position = 'left-top',\n asChild,\n providers,\n action$ = new EventEmitter(),\n }: Pick<IDrPopoverComponentModel, 'hostRef' | 'position'> & {\n options: IDropdown<IDropdownItem<unknown>>;\n asChild?: boolean;\n providers?: StaticProvider[];\n action$?: EventEmitter<IDropdownAction<unknown>>;\n }) {\n return this.popoverService.open(DrDropdownComponent, {\n hostRef,\n position,\n contentContext: {\n options,\n asChild,\n onAction: action$,\n },\n overlayConfig: {\n positionOffsetX: 2,\n positionOffsetY: asChild ? -8 : null,\n providers,\n },\n });\n }\n}\n\nexport interface DropdownInstanceRef {\n active(): boolean;\n}\n\nexport class DropdownInstanceService {\n private readonly instances$ = new BehaviorSubject<DropdownInstanceRef[]>([]);\n private get instances() {\n return this.instances$.getValue();\n }\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(injector: Injector) {\n injector.get(DestroyRef).onDestroy(() => {\n this.destroy$.next();\n this.destroy$.complete();\n });\n }\n\n register(ref: DropdownInstanceRef): void {\n this.instances.push(ref);\n this.instances$.next(this.instances);\n }\n\n unregister(ref: DropdownInstanceRef): void {\n this.instances.splice(this.instances.indexOf(ref), 1);\n this.instances$.next(this.instances);\n }\n\n getSequence(ref: DropdownInstanceRef): DropdownInstanceRef[] {\n return this.instances.slice(this.instances.indexOf(ref));\n }\n\n inactive(ref: DropdownInstanceRef) {\n return this.instances$.pipe(\n map(() => this.getSequence(ref)),\n filter((value) => !!value.length),\n switchMap((value) => interval(200).pipe(map(() => value))),\n filter((emissions) => emissions.every((value) => !value.active())),\n takeUntil(this.destroy$),\n );\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, inject, Injector, Input, OnDestroy, Output } from '@angular/core';\nimport { ElPosition, IDropdownAction, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService, DropdownInstanceService } from './dr-dropdown.service';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrPopoverRef } from '../models/popover';\n\n@Directive({\n selector: '[drDropdown]',\n providers: [\n {\n provide: DropdownInstanceService,\n useFactory: (injector: Injector) => {\n const service = injector.get(DropdownInstanceService, null, { skipSelf: true });\n return service ?? new DropdownInstanceService(injector);\n },\n deps: [Injector],\n },\n ],\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly service = inject(DrDropdownService);\n private readonly child = inject(DrDropdownChildDirective, { optional: true, self: true });\n private readonly dropdownInstanceService = inject(DropdownInstanceService);\n\n @Input({ required: true })\n drDropdown: IDropdownItem<T>[];\n @Input()\n drDropdownPosition: ElPosition = 'left-top';\n @Input()\n drDropdownClass: string;\n @Input()\n drDropdownInHover: boolean;\n @Input({ alias: 'data-analytics' })\n dataAnalytics: string;\n\n @Output()\n drDropdownAction = new EventEmitter<IDropdownAction<T>>();\n\n private ref: DrPopoverRef<DrDropdownComponent>;\n\n private readonly mouseleaveTimeout = 200;\n\n @HostListener('mouseenter')\n elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click')\n elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave')\n leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(() => {\n if (this.ref && !this.ref.instance.wasHovered) {\n this.close();\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup')\n documentClick() {\n this.close();\n }\n\n private openDropdown(): void {\n if (!this.drDropdown?.length) {\n return;\n }\n\n if (this.ref) {\n this.close();\n return;\n }\n\n this.ref = this.service.open({\n hostRef: this.elementRef,\n position: this.drDropdownPosition,\n asChild: !!this.child,\n providers: [{ provide: DropdownInstanceService, useValue: this.dropdownInstanceService }],\n action$: this.drDropdownAction,\n options: {\n drDropdownInHover: this.drDropdownInHover,\n position: this.drDropdownPosition,\n list: this.drDropdown,\n class: this.drDropdownClass,\n dataAnalytics: this.dataAnalytics,\n },\n });\n }\n\n private close(): void {\n if (this.ref) {\n this.ref.close();\n this.ref = null;\n }\n }\n\n public ngOnDestroy(): void {\n this.close();\n }\n}\n\n@Directive({\n selector: '[drDropdownChild]',\n})\nexport class DrDropdownChildDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-dropdown-item',\n templateUrl: './dr-dropdown-item.component.html',\n styleUrls: ['./dr-dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDropdownItemComponent {\n @Input()\n selected: boolean;\n\n @Input()\n disabled: boolean;\n\n @Input()\n divider: boolean;\n}\n","<div class=\"dr-dropdown-item\" [class.item-disabled]=\"disabled\" [class.item-selected]=\"selected\" [class.divider]=\"divider\">\n <span class=\"dr-dropdown-text\">\n <ng-content select=\"[dropdownItemContent]\"></ng-content>\n </span>\n <div class=\"dr-dropdown-actions\">\n <ng-content select=\"[dropdownItemActions]\"></ng-content>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe',\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter((item) => (item.show ? item.show(item.data) : true));\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n})\nexport class DrTabComponent implements OnInit {\n @Input() id: number;\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @Input() customLabelTemplate: TemplateRef<any>;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<mat-tab-group\n disableRipple\n [ngClass]=\"theme\"\n [selectedIndex]=\"_selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange($event)\"\n [class.with-radio]=\"withRadio\"\n [class.vertical]=\"vertical\"\n [class.no-tab-labels-padding]=\"noTabLabelsPadding\"\n [class.no-label-padding]=\"noLabelPadding\"\n [class.no-body-padding]=\"noBodyPadding\"\n [class.no-tabs]=\"hideTabs\"\n [class.no-header-border]=\"noHeaderBorder\"\n [class.no-label-borders]=\"noLabelBorders\"\n [class.no-fixed-tab-height]=\"noFixedTabHeight\"\n [animationDuration]=\"disableAnimation || vertical || _disableAnimationTemp ? '0ms' : '500ms'\">\n <mat-tab *ngFor=\"let tab of tabsContentList; let index = index\" label=\"{{ tab.label }}\" [disabled]=\"tab.disabled\">\n <ng-container *ngIf=\"!tab.customLabelTemplate; else customLabel\">\n <ng-container *ngIf=\"withRadio\">\n <ng-template mat-tab-label>\n <dr-radio-button [value]=\"index\" [(ngModel)]=\"_selectedIndex\"> </dr-radio-button>\n {{ tab.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tab.tooltip && !withRadio && !withIcon\">\n <ng-template mat-tab-label>\n <label class=\"cursor-pointer\" [drTooltip]=\"tab.tooltip\">{{ tab.label }}</label>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #customLabel>\n <ng-template mat-tab-label>\n <ng-container *ngTemplateOutlet=\"tab.customLabelTemplate\"></ng-container>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\nimport { isNil } from 'lodash';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent implements AfterViewInit {\n _disableAnimationTemp = true;\n _selectedIndex = 0;\n _selectedIndexById = undefined;\n\n @Input() theme: string = 'primary';\n @Input() disableAnimation = false;\n\n @Input() set selectedTab(value) {\n this._selectedIndex = value || 0;\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (!this.disableAnimation && this._selectedIndex) {\n this._disableAnimationTemp = true;\n setTimeout(() => {\n this._disableAnimationTemp = false;\n });\n }\n }\n\n @Input() set selectedTabId(value: number) {\n this._selectedIndexById = value || 0;\n this._selectedIndex = this.getTabIndexById(this._selectedIndexById);\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (!this.disableAnimation && this._selectedIndexById) {\n this._disableAnimationTemp = true;\n setTimeout(() => {\n this._disableAnimationTemp = false;\n });\n }\n }\n\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() hideTabs = false;\n @Input() noHeaderBorder = false;\n @Input() noLabelBorders = false;\n @Input() noTabLabelsPadding = false;\n @Input() noLabelPadding = false;\n @Input() noFixedTabHeight = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() selectedTabIdChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n const selectedTabIdx = this.getTabIndexById(this._selectedIndexById);\n if (~selectedTabIdx && !isNil(this._selectedIndexById)) {\n this._selectedIndex = selectedTabIdx;\n }\n }\n\n selectedIndexChange($event) {\n this._selectedIndex = $event;\n this.selectedTabChange.emit($event);\n\n if (this.tabsContentList) {\n const tabId = this.tabsContentList.get($event).id;\n this.selectedTabIdChange.emit(tabId);\n }\n }\n\n private getTabIndexById(tabId: number): number {\n if (!this.tabsContentList) return 0;\n\n const currentTabIdx = this.tabsContentList.reduce((acc, drTab, idx) => {\n if (drTab.id === tabId) {\n acc = idx;\n }\n\n return acc;\n }, -1);\n\n return ~currentTabIdx ? currentTabIdx : 0;\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type TDrAccordionTheme = 'regular' | 'borderless';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n @Input()\n @HostBinding('class')\n theme: TDrAccordionTheme = 'regular';\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(\n @Host() public accordion: DrAccordionComponent,\n private cd: ChangeDetectorRef,\n ) {}\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe((collapsed) => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","<i\n *ngIf=\"icon\"\n [class]=\"'dr-accordion-item-header-icon ' + icon\"\n [class.dr-accordion-item-header-icon--additional-padding]=\"chevronPosition === 'left'\"></i>\n<i\n [class]=\"chevronIconClass\"\n [@expansionIndicator]=\"{ value: state, params: { rotationDegree: chevronRotationDegree } }\"\n (click)=\"toggleOnChevronClick && accordionItem.toggle()\"\n *ngIf=\"!disabled\"></i>\n<ng-content select=\"dr-accordion-item-title\"></ng-content>\n<ng-content select=\"dr-accordion-item-description\"></ng-content>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { TDrAccordionTheme } from './accordion.component';\n\nexport type TDrAccordionChevronPosition = 'right' | 'left';\nexport type TDrAccordionChevronOrientation = 'vertical' | 'horizontal';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n templateUrl: './accordion-item-header.component.html',\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate({{ rotationDegree }}deg)',\n }),\n { params: { rotationDegree: '180' } },\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() chevronOrientation: TDrAccordionChevronOrientation = 'vertical';\n @Input() chevronPosition: TDrAccordionChevronPosition = 'right';\n @Input() icon: string;\n @Input() toggleOnChevronClick = false;\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostBinding('class')\n private theme: TDrAccordionTheme;\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n if (this.toggleOnChevronClick) return;\n\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n public chevronIconClass: string;\n public chevronRotationDegree: number;\n\n constructor(\n @Host() public accordionItem: DrAccordionItemComponent,\n private cd: ChangeDetectorRef,\n ) {\n this.theme = accordionItem?.accordion?.theme || 'regular';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n this.chevronIconClass = this.getChevronIconClass();\n this.chevronRotationDegree = this.chevronOrientation === 'vertical' ? 180 : 90;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getChevronIconClass(): string {\n return (\n 'expansion-indicator ' +\n (this.chevronOrientation === 'vertical' ? 'dr-icon-arrow-down' : 'dr-icon-arrow-right') +\n ` expansion-indicator--${this.chevronPosition}`\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(\n @Host() private accordionItem: DrAccordionItemComponent,\n private cd: ChangeDetectorRef,\n ) {}\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {}\n}\n","<div class=\"dr-layout\">\n <ng-content select=\"dr-layout-header\"></ng-content>\n <div class=\"dr-layout__container\">\n <div class=\"content\">\n <div class=\"columns\">\n <ng-content select=\"dr-layout-body\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {}\n}\n","<div class=\"details\">\n <div class=\"details__header\" (click)=\"collapse = !collapse\">\n <i [class.dr-icon-arrow-right]=\"collapse\" [class.dr-icon-arrow-down]=\"!collapse\"> </i>\n {{ title }}\n </div>\n <ul class=\"details__list\" [@expansionIndicatorList]=\"{ value: state }\">\n <li *ngFor=\"let item of list\">{{ item }}</li>\n </ul>\n</div>\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class DrDetailsListComponent implements OnDestroy {\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n }\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"dialog-wrapper\" [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\" data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\" *ngIf=\"dialogData.subtitle\">\n {{ dialogData.subtitle }}\n </h1>\n </div>\n <div\n class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list\n *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\"\n [collapse]=\"dialogData.details.collapse\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span\n *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button\n (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button\n (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\"\n >{{ dialogData.cancelButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button\n (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class')\n get elementClass(): SizeModal {\n return this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n }\n\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(\n public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {}\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(\n this.dialogData.child,\n );\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData\n .confirmFn()\n .pipe(\n takeUntil(this.destroy$),\n catchError((error) => {\n this.saving$.next(false);\n return throwError(() => error);\n }),\n )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog';\nimport { ButtonType } from '../../dr-inputs/button/button.component';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n collapse?: boolean;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'small-modal-max-height'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal'\n | 'xl-medium-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: ButtonType;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n SMALL_MAX_HEIGHT = 'small-modal-max-height',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n X_MEDIUM = 'xl-medium-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i\n *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\" data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div\n *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label\n *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\"\n >{{ field.label }}</label\n >\n <div\n class=\"input-group p-0\"\n [ngClass]=\"{\n 'col-md-10': field.label && !field.isLabelFullWidth,\n 'col-md-12': !field.label || field.isLabelFullWidth\n }\">\n <dr-select\n *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close()\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\" class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}\n </button>\n </ng-template>\n </dr-select>\n <dr-input\n *ngIf=\"field.type === dialogFieldType.INPUT\"\n data-test=\"modalInput\"\n class=\"form-control\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker\n *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label\n class=\"form-field-error-alert\"\n *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button\n (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\" [theme]=\"'secondary'\">{{\n dialogData.cancelButton.label\n }}</dr-button>\n <dr-button\n *ngIf=\"dialogData.acceptButton\"\n data-test=\"modalAddBtn\"\n (click)=\"onAccept()\"\n [theme]=\"'primary'\"\n [isLoading]=\"isLoading\"\n [disabled]=\"form.invalid\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </div>\n</div>\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n readonly destroy$ = new Subject<void>();\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {}\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(\n currentValue.default || null,\n currentValue.validators || [],\n );\n return Object.assign(accumulator, currentFormControl);\n }, {}),\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData\n .confirmFn(this.form.value)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n this.saving$.next(false);\n return throwError(() => err);\n }),\n )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(private dialog: MatDialog) {}\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = DialogWrapperComponent as any;\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n /**\n * @deprecated\n */\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(\n componentType: ComponentType<WrapperType>,\n dialogData: DialogData<D>,\n ): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection,\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(\n items: TreeviewItem[],\n checked: TreeviewItem[],\n unchecked: TreeviewItem[],\n): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems,\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n hidden?: boolean;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map((child) => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => (child.disabled = value));\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach((child) => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems,\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean;\n hasFilter?: boolean;\n hasCollapseExpand?: boolean;\n decoupleChildFromParent?: boolean;\n maxHeight?: number;\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map((item) => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach((item) => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent,\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach((child) => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [\n {\n item,\n parent,\n },\n ];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach((downline) => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","<div *ngIf=\"item\" class=\"treeview-item\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ item: item, onCollapseExpand: onCollapseExpand, onCheckedChange: onCheckedChange }\">\n </ng-template>\n <div *ngIf=\"!item.collapsed\">\n <ngx-treeview-item\n [config]=\"config\"\n *ngFor=\"let child of item.children\"\n [item]=\"child\"\n [template]=\"template\"\n (checkedChange)=\"onChildCheckedChange(child, $event)\">\n </ngx-treeview-item>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss'],\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(private defaultConfig: TreeviewConfig) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n };\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach((child) => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n };\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","<ng-template #defaultItemTemplate let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\" let-onCheckedChange=\"onCheckedChange\">\n <div class=\"form-inline row-item\">\n <i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg\n *ngSwitchCase=\"true\"\n width=\"0.8rem\"\n height=\"0.8rem\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-caret-right-fill\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\" />\n </svg>\n <svg\n *ngSwitchCase=\"false\"\n width=\"0.8rem\"\n height=\"0.8rem\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-caret-down-fill\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg>\n </i>\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [(ngModel)]=\"item.checked\"\n (ngModelChange)=\"onCheckedChange()\"\n [disabled]=\"item.disabled\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{ item.text }}\n </label>\n </div>\n </div>\n</ng-template>\n<ng-template\n #defaultHeaderTemplate\n let-config=\"config\"\n let-item=\"item\"\n let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\"\n let-onFilterTextChange=\"onFilterTextChange\">\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\n <div class=\"col-12\">\n <input\n class=\"form-control\"\n type=\"text\"\n [placeholder]=\"i18n.getFilterPlaceholder()\"\n [(ngModel)]=\"filterText\"\n (ngModelChange)=\"onFilterTextChange($event)\" />\n </div>\n </div>\n <div *ngIf=\"hasFilterItems\">\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row row-all\">\n <div class=\"col-12\">\n <div class=\"form-check form-check-inline\" *ngIf=\"config.hasAllCheckBox\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [(ngModel)]=\"item.checked\"\n (ngModelChange)=\"onCheckedChange()\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{ i18n.getAllCheckboxText() }}\n </label>\n </div>\n <label *ngIf=\"config.hasCollapseExpand\" class=\"float-right form-check-label\" (click)=\"onCollapseExpand()\">\n <i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg\n *ngSwitchCase=\"true\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-arrows-angle-expand\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n d=\"M1.5 10.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M6.354 9.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm8.5-8.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M10.036 1.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n <svg\n *ngSwitchCase=\"false\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-arrows-angle-contract\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n d=\"M9.5 2.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M14.354 1.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 1 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm-7.5 7.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M2.036 9.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V10h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n </i>\n </label>\n </div>\n </div>\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\n </div>\n</ng-template>\n<div class=\"treeview-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate || defaultHeaderTemplate\" [ngTemplateOutletContext]=\"headerTemplateContext\">\n </ng-template>\n</div>\n<div [ngSwitch]=\"hasFilterItems\">\n <div *ngSwitchCase=\"true\" class=\"treeview-container\" [style.max-height.px]=\"maxHeight\">\n <ngx-treeview-item\n *ngFor=\"let item of filterItems\"\n [config]=\"config\"\n [item]=\"item\"\n [template]=\"itemTemplate || defaultItemTemplate\"\n (checkedChange)=\"onItemCheckedChange(item, $event)\">\n </ngx-treeview-item>\n </div>\n <div *ngSwitchCase=\"false\" class=\"treeview-text\">\n {{ i18n.getFilterNoItemsFoundText() }}\n </div>\n</div>\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children,\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach((child) => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss'],\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser,\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach((item) => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach((item) => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text),\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems,\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach((item) => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach((child) => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview',\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map((object) => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum ToastrStatus {\n INFO = 'status-info',\n ERROR = 'status-danger',\n SUCCESS = 'status-success',\n WARNING = 'status-warning',\n}\n\nexport const ToastrStatusIcon = {\n [ToastrStatus.INFO]: 'dr-icon-noty-notification',\n [ToastrStatus.ERROR]: 'dr-icon-noty-error',\n [ToastrStatus.SUCCESS]: 'dr-icon-noty-success',\n [ToastrStatus.WARNING]: 'dr-icon-noty-warning',\n};\n\nexport type DefaultToastrData = {\n title: string;\n message: string;\n status: ToastrStatus;\n isHtmlBody: boolean;\n};\n","<div class=\"icon-container\">\n <i class=\"toastr-icon\" [ngClass]=\"icon\"></i>\n</div>\n\n<div class=\"content-container\">\n <span class=\"title\">\n {{ data.title }}\n </span>\n\n <div class=\"message\" *ngIf=\"!data.isHtmlBody; else htmlBody\">\n {{ data.message }}\n </div>\n\n <ng-template #htmlBody>\n <div class=\"message\" [innerHTML]=\"data.message\"></div>\n </ng-template>\n</div>\n\n<div class=\"icon-container\">\n <i class=\"dr-icon-exit\"></i>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\nimport { DefaultToastrData, ToastrStatus, ToastrStatusIcon } from '../../models/toastr';\n\n@Component({\n selector: 'dr-default-toastr',\n templateUrl: './default-toastr.component.html',\n styleUrls: ['./default-toastr.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultToastrComponent extends Toast implements OnInit {\n data: DefaultToastrData = {\n title: '',\n message: '',\n status: ToastrStatus.SUCCESS,\n isHtmlBody: false,\n };\n icon = ToastrStatusIcon[this.data.status];\n\n @HostBinding('class') class = this.data.status;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n ) {\n super(toastrService, toastPackage);\n }\n\n ngOnInit(): void {\n this.class = this.data.status;\n this.icon = ToastrStatusIcon[this.data.status];\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataAnalyticsService {\n heap: any;\n\n constructor() {\n this.heap = (window as any).heap;\n }\n\n track(event: string, payload: any = {}) {\n if (this.heap) {\n this.heap.track(event, payload);\n }\n }\n}\n","export type TooltipInfoContext = {\n title?: string;\n description?: string;\n useDescriptionAsHTML?: boolean;\n icon?: string;\n iconTheme?: TooltipInfoIconTheme;\n hideIcon?: boolean;\n hideDivider?: boolean;\n minWidth?: TooltipInfoWidth | string;\n maxWidth?: TooltipInfoWidth | string;\n};\n\nexport enum TooltipInfoWidth {\n LARGE = '510px',\n MEDIUM = '320px',\n SMALL = '280px',\n}\n\nexport enum TooltipInfoIconTheme {\n INFO = 'info',\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnDestroy, OnChanges {\n @Input() attachOutsideOnClick: boolean = false;\n @Input() exclude: string = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n private _nodesExcluded: Array<HTMLElement> = [];\n\n constructor(\n @Inject(DOCUMENT) private _document /*: HTMLDocument*/,\n private _el: ElementRef,\n ) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n }\n\n ngOnInit() {\n this._init();\n }\n\n ngOnDestroy() {\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.removeEventListener('click', this._initOnClickBody);\n }\n\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['attachOutsideOnClick'] || changes['exclude']) {\n this._init();\n }\n }\n\n private _init() {\n if (this.exclude) {\n this.exclude.split(',').forEach((selector) => {\n if (selector) {\n try {\n const node = this._document.querySelector(selector.trim());\n if (node) {\n this._nodesExcluded.push(node);\n }\n } catch (err) {\n if (window.console) {\n window.console.error('[ng2-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n });\n }\n\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.addEventListener('click', this._initOnClickBody);\n } else {\n this._initOnClickBody();\n }\n }\n\n /** @internal */\n private _initOnClickBody() {\n this._document.body.addEventListener('click', this._onClickBody);\n }\n\n /** @internal */\n private _onClickBody(e: Event) {\n if (!this._el.nativeElement.contains(e.target) && !this._shouldExclude(e.target)) {\n this.clickOutside.emit(e);\n\n if (this.attachOutsideOnClick) {\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n }\n }\n\n /** @internal */\n private _shouldExclude(target): boolean {\n for (let i = 0; i < this._nodesExcluded.length; i++) {\n if (this._nodesExcluded[i].contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport interface IFeedback {\n subjectId: string;\n sentiment: FeedbackSentiment;\n text?: string;\n tags?: Array<string>;\n}\n","export interface ICodeEditorHint {\n icon: ICodeEditorHintIcon;\n value: string;\n type?: string;\n hint?: string;\n}\n\nexport enum ICodeEditorHintIcon {\n VALUE = '#',\n CALCULATED_VALUE = '=',\n}\n\nexport interface ICodeEditorMarker {\n name: string;\n title: string;\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\nimport { ToastrStatus } from '../models/toastr';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrToastrService {\n constructor(private toastr: ToastrService) {}\n\n info(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.INFO, isHtmlBody, timeOut);\n }\n\n danger(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.ERROR, isHtmlBody, timeOut);\n }\n\n success(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.SUCCESS, isHtmlBody, timeOut);\n }\n\n warning(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.WARNING, isHtmlBody, timeOut);\n }\n\n private showToastr(\n message: string | SafeHtml,\n title: string,\n status: ToastrStatus,\n isHtmlBody?: boolean,\n timeOut: number = 5000,\n ): void {\n const toastr = this.toastr.show('', '', {\n positionClass: 'toastr-bottom-left',\n tapToDismiss: true,\n timeOut,\n });\n\n toastr.portal.instance.data = {\n title,\n message,\n status,\n isHtmlBody,\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipDefaultComponent } from './components/tooltip-default/tooltip-default.component';\n\nconst TOOLTIP_COMPONENTS = [TooltipDefaultComponent, TooltipInfoComponent];\n\n@NgModule({\n imports: [CommonModule],\n exports: [TooltipComponent, DrTooltipDirective, ...TOOLTIP_COMPONENTS],\n providers: [],\n declarations: [TooltipComponent, DrTooltipDirective, ...TOOLTIP_COMPONENTS],\n})\nexport class DrTooltipModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components, ...directives],\n declarations: [...components, ...directives],\n})\nexport class DrSpinnerModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\nimport { DrDatePickerRangeComponent } from './date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nimport { DrLinkComponent } from './dr-link/dr-link.component';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function () {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrDatePickerRangeComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent,\n DrLinkComponent,\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n providers: [provideNgxMask()],\n imports: [\n NgxMaskDirective,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n})\nexport class DrInputsModule {}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent } from './any-tag.component';\nimport { DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [\n DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent,\n];\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrInputsModule, NgSelectModule],\n exports: components,\n declarations: components,\n})\nexport class DateTagModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrInputsModule],\n exports: [ListTagComponent],\n providers: [],\n declarations: [ListTagComponent],\n})\nexport class ListTagModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n exports: [DrDynamicTagComponent],\n})\nexport class DrDynamicTagModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n@NgModule({\n imports: [CommonModule, DateTagModule, ListTagModule, DrDynamicTagModule],\n exports: [DrTagComponent],\n providers: [],\n declarations: [DrTagComponent],\n})\nexport class DrTagModule {}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [DrAvatarComponent, DrAvatarPipe],\n exports: [DrAvatarComponent, DrAvatarPipe],\n imports: [DrTooltipModule, CommonModule],\n})\nexport class DrAvatarModule {}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrPopoverDirective, DrPopoverComponent],\n declarations: [DrPopoverDirective, DrPopoverComponent],\n})\nexport class DrPopoverModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-slider',\n templateUrl: './dr-slider.component.html',\n styleUrls: ['./dr-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrSliderComponent, multi: true }],\n standalone: true,\n})\nexport class DrSliderComponent implements ControlValueAccessor {\n @Input() disabled: boolean;\n @Input() max: number = 100;\n @Input() min: number = 1;\n @Input() step: number = 1;\n @Input() rangeValue: number = 1;\n\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: number): void {\n this.rangeValue = value;\n }\n\n setValue(event): void {\n this.writeValue(event.target.value);\n this.onChange(this.rangeValue);\n this.onTouched();\n }\n}\n","<input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [value]=\"rangeValue\"\n (change)=\"setValue($event)\" />\n","export enum CROP_IMAGE_MODES {\n SQUARE = 'square',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ICropImageData {\n file: File;\n coordinates: string;\n cropMode: CROP_IMAGE_MODES;\n}\n","import { Injectable } from '@angular/core';\nimport { CROP_IMAGE_MODES } from './dr-image-cropper.types';\n\n@Injectable()\nexport class DrImageCropperCanvasService {\n ctx: CanvasRenderingContext2D;\n\n private readonly ALPHA_FOR_SHADOW = 0.2;\n // this param means that a side of a white square is half of a side of a canvas\n private readonly CROP_AREA_PROPORTION = 2;\n private readonly RECTANGULAR_SHADOW_WIDTH = 30;\n private readonly RECTANGULAR_SHADOW_HEIGHT = 70;\n\n drawShape(canvasSize: number, cropMode: CROP_IMAGE_MODES, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n this.clearCanvas(canvasSize);\n this.drawImageByZoom(canvasSize, zoomLevel, htmlImageElement);\n this.drawShadow(cropMode, canvasSize);\n }\n\n getCoordinates(cropMode: CROP_IMAGE_MODES, canvasSize: number): string {\n return cropMode === CROP_IMAGE_MODES.SQUARE\n ? this.getCoordinatesForSquare(canvasSize)\n : this.getCoordinatesForRectangle(canvasSize);\n }\n\n private getCoordinatesForSquare(canvasSize: number): string {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n const bottomPosition = canvasSize - shadowLength;\n return [shadowLength, shadowLength, bottomPosition, bottomPosition].join(',');\n }\n\n private getCoordinatesForRectangle(canvasSize: number): string {\n return [\n this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n ].join(',');\n }\n\n private drawShadow(cropMode: CROP_IMAGE_MODES, canvasSize: number): void {\n this.ctx.globalAlpha = this.ALPHA_FOR_SHADOW;\n this.ctx.fillStyle = 'black';\n if (cropMode === CROP_IMAGE_MODES.SQUARE) {\n this.drawSquareShadow(canvasSize);\n } else if (cropMode === CROP_IMAGE_MODES.RECTANGLE) {\n this.drawRectangularShadow(canvasSize);\n }\n this.ctx.globalAlpha = 1;\n }\n\n private drawSquareShadow(canvasSize: number): void {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n this.ctx.fillRect(0, 0, shadowLength, canvasSize);\n this.ctx.fillRect(canvasSize - shadowLength, 0, shadowLength, canvasSize);\n this.ctx.fillRect(shadowLength, 0, 2 * shadowLength, shadowLength);\n this.ctx.fillRect(shadowLength, canvasSize - shadowLength, 2 * shadowLength, shadowLength);\n }\n\n private drawRectangularShadow(canvasSize: number): void {\n this.ctx.fillRect(0, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(canvasSize - this.RECTANGULAR_SHADOW_WIDTH, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n 0,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n );\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n );\n }\n\n private drawImageByZoom(canvasSize: number, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n const maxImageDimension = Math.max(htmlImageElement.width, htmlImageElement.height);\n const proportion = canvasSize / (this.CROP_AREA_PROPORTION * maxImageDimension);\n const suitableWidth = htmlImageElement.width * proportion * zoomLevel;\n const suitableHeight = htmlImageElement.height * proportion * zoomLevel;\n\n const rectX = (canvasSize - suitableWidth) / 2;\n const rectY = (canvasSize - suitableHeight) / 2;\n\n this.ctx.drawImage(htmlImageElement, rectX, rectY, suitableWidth, suitableHeight);\n }\n\n private clearCanvas(canvasSize: number): void {\n this.ctx.fillStyle = 'white';\n this.ctx.fillRect(0, 0, canvasSize, canvasSize);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DrSliderComponent } from '../dr-inputs/dr-slider/dr-slider.component';\nimport { CROP_IMAGE_MODES, ICropImageData } from './dr-image-cropper.types';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrImageCropperCanvasService } from './dr-image-cropper-canvas.service';\n\n@Component({\n selector: 'dr-image-cropper',\n templateUrl: './dr-image-cropper.component.html',\n styleUrls: ['./dr-image-cropper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, DrSliderComponent, DrInputsModule],\n standalone: true,\n providers: [DrImageCropperCanvasService],\n})\nexport class DrImageCropperComponent implements OnChanges, AfterViewInit {\n @Input({ required: true }) cropperSize: number;\n @Input({ required: true }) imageFile: File;\n @Input() maxZoom: number = 10;\n @Input() minZoom: number = 0.5;\n @Input() zoomStep: number = 0.1;\n @Input() zoomLevel: number = 1;\n\n @Output() cropChanged = new EventEmitter<ICropImageData>();\n @Output() clearClicked = new EventEmitter<void>();\n\n @ViewChild('imageCanvas', { static: true }) canvasElement: ElementRef<HTMLCanvasElement>;\n\n htmlImageElement: HTMLImageElement;\n cropMode: CROP_IMAGE_MODES = CROP_IMAGE_MODES.SQUARE;\n readonly CROP_IMAGE_MODES = CROP_IMAGE_MODES;\n\n constructor(private readonly canvasService: DrImageCropperCanvasService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.imageFile && this.imageFile) {\n this.readImageFile();\n }\n }\n\n ngAfterViewInit(): void {\n this.canvasService.ctx = this.canvasElement.nativeElement.getContext('2d');\n }\n\n drawImage(newZoomEvent?): void {\n if (newZoomEvent !== undefined) {\n this.zoomLevel = newZoomEvent.target.value;\n }\n this.onCropModeUpdated();\n }\n\n onCropModeUpdated(cropMode?: CROP_IMAGE_MODES): void {\n if (cropMode) {\n this.cropMode = cropMode;\n }\n\n this.canvasService.drawShape(this.cropperSize, this.cropMode, this.zoomLevel, this.htmlImageElement);\n const coordinates = this.canvasService.getCoordinates(this.cropMode, this.cropperSize);\n this.canvasElement.nativeElement.toBlob((blob) => {\n const file = new File([blob], this.imageFile.name, { type: this.imageFile.type, lastModified: Date.now() });\n this.cropChanged.emit({ file, coordinates, cropMode: this.cropMode });\n }, this.imageFile.type);\n }\n\n private readImageFile(): void {\n const reader = new FileReader();\n reader.onload = () => {\n this.htmlImageElement = new Image();\n this.htmlImageElement.src = this.getImagesStringSrc(reader);\n this.htmlImageElement.onload = () => {\n this.canvasElement.nativeElement.width = this.canvasElement.nativeElement.height = this.cropperSize;\n this.drawImage();\n };\n };\n reader.readAsDataURL(this.imageFile);\n }\n\n private getImagesStringSrc(reader: FileReader): string {\n if (typeof reader.result === 'string') return reader.result;\n\n const decoder = new TextDecoder();\n return decoder.decode(reader.result);\n }\n}\n","<div class=\"crop-mode-btns-container\">\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.SQUARE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.SQUARE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__square-icon\"></div>\n Square\n </div>\n </dr-button>\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.RECTANGLE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.RECTANGLE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__rectangle-icon\"></div>\n Rectangle\n </div>\n </dr-button>\n</div>\n\n<div class=\"image-cropper\">\n <canvas #imageCanvas></canvas>\n</div>\n<dr-slider\n [(ngModel)]=\"zoomLevel\"\n [max]=\"maxZoom\"\n [min]=\"minZoom\"\n [step]=\"zoomStep\"\n [style.width]=\"cropperSize + 'px'\"\n class=\"image-crop-slider\"\n (input)=\"drawImage($event)\">\n</dr-slider>\n<dr-button [theme]=\"'ghost'\" (click)=\"clearClicked.emit()\" class=\"try-another-btn\"> Try another image </dr-button>\n","import { NgModule } from '@angular/core';\nimport { DrDropdownDirective, DrDropdownChildDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\nimport { DrDropdownItemComponent } from './dr-dropdown-item/dr-dropdown-item.component';\nimport { DrPopoverModule } from '../dr-popover/dr-popover.module';\n\n@NgModule({\n imports: [CommonModule, DrTooltipModule, DrPopoverModule],\n declarations: [\n DrDropdownDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n DrDropdownChildDirective,\n DrDropdownItemComponent,\n ],\n exports: [DrDropdownDirective, DrDropdownComponent, DrDropdownItemShowPipe, DrDropdownItemComponent],\n providers: [DrDropdownService],\n})\nexport class DrDropdownModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, MatTabsModule, FormsModule, ReactiveFormsModule, DrInputsModule, DrTooltipModule],\n exports: [DrTabsComponent, DrTabComponent],\n providers: [],\n declarations: [DrTabsComponent, DrTabComponent],\n})\nexport class DrTabsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [DrLayoutComponent, DrLayoutHeaderComponent, DrLayoutBodyComponent];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\nexport class DrLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DrTooltipModule],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [DrErrorComponent],\n})\nexport class DrErrorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [CommonModule, DrTooltipModule],\n exports: [StepperComponent],\n})\nexport class DrStepperModule {}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\nexport class DrDetailsListModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport {\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA,\n MatLegacyDialogModule as MatDialogModule,\n MatLegacyDialogRef as MatDialogRef,\n} from '@angular/material/legacy-dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [CommonModule, MatDialogModule, DrInputsModule, ReactiveFormsModule, DrTooltipModule, DrDetailsListModule],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [{ provide: MatDialogRef, useValue: {} }, { provide: MAT_DIALOG_DATA, useValue: {} }, DialogService],\n})\nexport class DrDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\nimport { DrChatAlertComponent } from './dr-chat-alert/dr-chat-alert.component';\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n DrChatAlertComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n@NgModule({\n imports: [FormsModule, ReactiveFormsModule, CommonModule, DrAvatarModule, DrInputsModule, DrTooltipModule],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrTagsConstructorComponent } from './dr-tags-constructor.component';\nimport { FormsModule } from '@angular/forms';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@NgModule({\n declarations: [DrTagsConstructorComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n providers: [ScenarioService, TagsConstructorService],\n exports: [DrTagsConstructorComponent],\n})\nexport class DrTagsConstructorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\nimport { DrTagsConstructorModule } from '../dr-tags-constructor/dr-tags-constructor.module';\n\nconst COMPONENTS = [DrScenarioConfigurationComponent, DrScenarioTagConfigurationComponent];\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [CommonModule, DrInputsModule, FormsModule, DrTagModule, DrTagsConstructorModule],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, DrTooltipModule],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [DrBadgeStatusComponent],\n})\nexport class DrBadgeStatusModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n@NgModule({\n imports: [FormsModule, CommonModule],\n declarations: [TreeviewComponent, TreeviewItemComponent, TreeviewPipe],\n exports: [TreeviewComponent, TreeviewPipe],\n providers: [],\n})\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [TreeviewConfig, { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }],\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n})\nexport class ClickOutsideModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [DrAlertComponent],\n})\nexport class DrAlertModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrToastrService } from './dr-toastr.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DefaultToastrComponent } from './default-toastr/default-toastr.component';\n\n@NgModule({\n declarations: [DefaultToastrComponent],\n imports: [\n CommonModule,\n ToastrModule.forRoot({\n toastComponent: DefaultToastrComponent,\n }),\n ],\n exports: [DefaultToastrComponent],\n providers: [DrToastrService],\n})\nexport class DrToastrModule {}\n","import 'codemirror/mode/javascript/javascript';\nimport 'codemirror/addon/edit/matchbrackets';\nimport 'codemirror/addon/hint/show-hint';\nimport '@codemirror/autocomplete';\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrCodeEditorComponent } from './dr-code-editor.component';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrErrorModule } from '../dr-error/dr-error.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule],\n exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n providers: [],\n declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n})\nexport class DrCodeEditorModule {}\n","<i *ngIf=\"icon\" [class]=\"icon\" class=\"chip__icon\"></i>\n<div class=\"chip__label\">\n <ng-container *ngIf=\"!label\">\n <ng-content></ng-content>\n </ng-container>\n {{ label }}\n</div>\n<i *ngIf=\"removable\" class=\"chip__remove dr-icon-exit\" (click)=\"remove.next(null)\"></i>\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dr-chip',\n templateUrl: './dr-chip.component.html',\n styleUrls: ['./dr-chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class DrChipComponent {\n @Input() label: string;\n\n @Input() icon: string;\n\n @Input() removable: boolean;\n\n @Output() remove = new EventEmitter<void>();\n}\n","/* components */\nexport * from './lib/date-tags/any-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.service';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-link/dr-link.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nexport * from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport * from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport * from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport * from './lib/dr-tooltip/components/tooltip-default/tooltip-default.component';\nexport * from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport * from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport * from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport * from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport * from './lib/dr-chat/dr-chat-alert/dr-chat-alert.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\nexport * from './lib/dr-badge-status/dr-badge-status.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-code-editor/dr-code-editor.component';\nexport * from './lib/dr-code-editor/components/dr-codemirror.component';\nexport * from './lib/dr-code-editor/components/code-editor-hint-wrapper.component';\n\nexport * from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport * from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport * from './lib/dr-tags-constructor/dr-tags-constructor.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\nexport * from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport * from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\n\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\nexport * from './lib/dr-toastr/default-toastr/default-toastr.component';\nexport * from './lib/utils/data-analytics.service';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport {\n TooltipInfoContext,\n TooltipInfoWidth,\n TooltipInfoIconTheme,\n} from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\nexport * from './lib/dr-avatar/types';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\nexport * from './lib/directives/click-outside/click-outside.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport {\n TAG_TYPES,\n ITag,\n IDateTag,\n IListTag,\n ITagForServer,\n IDynamicTag,\n TDynamicTagValue,\n TDynamicTag,\n TagTypes,\n TagsConfigSubType,\n TConnectedTags,\n} from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport { ElPosition, IDropdown, IDropdownItem, IDropdownActionIcon, IDropdownAction } from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\nexport * from './lib/models/toastr';\nexport * from './lib/models/datePickerRange';\nexport * from './lib/dr-code-editor/models/code-editor-hint';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { TagsConstructorService } from './lib/dr-tags-constructor/tags-constructor.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\nexport { DrToastrService } from './lib/dr-toastr/dr-toastr.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrSliderComponent } from './lib/dr-inputs/dr-slider/dr-slider.component';\nexport { DrImageCropperComponent } from './lib/image-cropper/dr-image-cropper.component';\nexport * from './lib/image-cropper/dr-image-cropper.types';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { ClickOutsideModule } from './lib/directives/click-outside/click-outside.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\nexport { DrTagsConstructorModule } from './lib/dr-tags-constructor/dr-tags-constructor.module';\nexport { DrToastrModule } from './lib/dr-toastr/dr-toastr.module';\nexport { DrCodeEditorModule } from './lib/dr-code-editor/dr-code-editor.module';\nexport { DrChipComponent } from './lib/dr-chip/dr-chip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i2.TooltipDefaultComponent","i1","_c1","i3.DrDatePickerService","noop","i2.DrDatePickerService","_cloneDeep","_find","_indexOf","_c4","_reduce","i1.DrSelectComponent","_isObject","_isNil","_map","_isNumber","_merge","_forEach","_some","merge","_c2","i1.DrChatCustomMessageService","i2","i3.DrAvatarComponent","i4.DrChatMessageTextComponent","i5.DrChatMessageFileComponent","_c3","filter","switchMap","map","_orderBy","_filter","_includes","i1.ScenarioService","i2.TagsConstructorService","i1.DrPopoverRef","i1.DrPopoverService","first","takeUntil","i1.DrAccordionComponent","i1.DrAccordionItemComponent","MAT_DIALOG_DATA","i1.TreeviewConfig","i1.TreeviewI18n","i2.TreeviewConfig","i3.TreeviewEventParser","components","i1.DrImageCropperCanvasService","i3.DrButtonComponent","MatDialogRef","MatDialogModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datarailsshared-datarailsshared.mjs","sources":["../../../projects/datarailsshared/src/lib/date-tags/any-tag.component.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.html","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.html","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.html","../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.service.ts","../../../projects/datarailsshared/src/lib/models/serverTags.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/toggle-button-mode.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.html","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.html","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.html","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-link/dr-link.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.html","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.html","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/services/dr-avatar.service.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.html","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.html","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.html","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.html","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/models/badgeStatus.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.html","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.component.ts","../../../projects/datarailsshared/src/lib/dr-alert/enums/dr-alert-theme.enum.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.html","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/code-editor-hint-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/components/dr-codemirror.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.html","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.html","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/interfaces/scenario.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/consts/scenario-tags-config.ts","../../../projects/datarailsshared/src/lib/dr-scenario/services/scenario.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/tags-constructor.service.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.html","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.component.ts","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.html","../../../projects/datarailsshared/src/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.html","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/utils/decorators.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.html","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.html","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.html","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.html","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.html","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-i18n.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-helper.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-item.ts","../../../projects/datarailsshared/src/lib/dr-treeview/models/treeview-config.ts","../../../projects/datarailsshared/src/lib/dr-treeview/helpers/treeview-event-parser.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview-item/treeview-item.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.html","../../../projects/datarailsshared/src/lib/dr-treeview/components/treeview/treeview.component.ts","../../../projects/datarailsshared/src/lib/dr-treeview/pipes/treeview.pipe.ts","../../../projects/datarailsshared/src/lib/models/toastr.ts","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.html","../../../projects/datarailsshared/src/lib/dr-toastr/default-toastr/default-toastr.component.ts","../../../projects/datarailsshared/src/lib/utils/data-analytics.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/interfaces/tooltip-component-context.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.directive.ts","../../../projects/datarailsshared/src/lib/models/feedback.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/models/code-editor-hint.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-dynamic-tag/dr-dynamic-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-slider/dr-slider.component.html","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.types.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper-canvas.service.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.ts","../../../projects/datarailsshared/src/lib/image-cropper/dr-image-cropper.component.html","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-details-list/dr-details-list.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/lib/dr-tags-constructor/dr-tags-constructor.module.ts","../../../projects/datarailsshared/src/lib/dr-scenario/dr-scenario.module.ts","../../../projects/datarailsshared/src/lib/dr-badge-status/dr-badge-status.module.ts","../../../projects/datarailsshared/src/lib/dr-treeview/dr-tree-view.module.ts","../../../projects/datarailsshared/src/lib/directives/click-outside/click-outside.module.ts","../../../projects/datarailsshared/src/lib/dr-alert/dr-alert.module.ts","../../../projects/datarailsshared/src/lib/dr-toastr/dr-toastr.module.ts","../../../projects/datarailsshared/src/lib/dr-code-editor/dr-code-editor.module.ts","../../../projects/datarailsshared/src/lib/dr-chip/dr-chip.component.html","../../../projects/datarailsshared/src/lib/dr-chip/dr-chip.component.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n template: ``,\n selector: 'any-tag',\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n @Input() disabled: boolean;\n dateObj = { date: undefined };\n constructor() {}\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n initDate() {}\n initName() {}\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'w/yyyy',\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY',\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT,\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport enum DateTags {\n TODAY = 'today',\n YESTERDAY = 'yesterday',\n THIS_MONTH = 'this_month',\n PREV_MONTH = 'prev_month',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n","import moment from 'moment';\nimport { DateTags, TimeframeOption } from '../models/datePicker';\nimport { Observable } from 'rxjs';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n\n public static getDateByTag(tag: string): any {\n const todayDate = moment().utc().endOf('day');\n switch (tag) {\n case DateTags.TODAY:\n return todayDate;\n case DateTags.YESTERDAY:\n todayDate.subtract(1, 'days');\n return todayDate;\n case DateTags.THIS_MONTH:\n todayDate.endOf('month');\n return todayDate;\n case DateTags.PREV_MONTH:\n todayDate.subtract(1, 'months').endOf('month');\n return todayDate;\n }\n }\n\n public static fromResizeObserver = (target: Element): Observable<ResizeObserverEntry[]> =>\n new Observable((observer) => {\n const resizeObserver = new ResizeObserver((entries) => observer.next(entries));\n\n resizeObserver.observe(target);\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n public static normalizeLineEndings = (str: string): string => {\n return str ? str.replace(/\\r\\n|\\r/g, '\\n') : str;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, DateTags, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n private readonly _timeframe$: BehaviorSubject<TTimeframeOption> = new BehaviorSubject(TimeframeOption.DAY);\n public readonly timeframe$ = this._timeframe$.asObservable();\n\n public get timeframe(): TTimeframeOption {\n return this._timeframe$.getValue();\n }\n\n public set timeframe(value: TTimeframeOption) {\n this._timeframe$.next(value);\n }\n\n // TODO: here we can have inconsistency between format and timeframe\n // we need to get rid of a separate subject and use pipe from timeframe$ for it\n // making @Input() format in component just setting the timeframe\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n\n updatedQuarter$ = new Subject<Moment>();\n updatedDateAndClose$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n isUsingDateTagPresets: boolean;\n presetTag$ = new BehaviorSubject<DateTags>('' as DateTags);\n onSameDaySelectedInCalendar$ = new Subject<Moment>();\n keepPresetTag = false;\n isValueUpdating = false;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR,\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT,\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n public fiscalYearBack = false;\n public datepickerFilter: (moment: Moment) => boolean;\n\n private readonly _innerValue$ = new BehaviorSubject<Moment>(null);\n public readonly innerValue$ = this._innerValue$.asObservable();\n\n public set innerValue(value: Moment) {\n this._innerValue$.next(value);\n }\n public get innerValue(): Moment {\n return this._innerValue$.getValue();\n }\n\n getDisplayPrefix() {\n const formatCached = this.getConfiguredFormat(this.timeframe);\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date.subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date.subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n private applyFiscalYearShiftForYear(momentDate: Moment, isSubtract: boolean = false): Moment | undefined {\n if (this.fiscalYearBack || !this.fiscalYearMonthsModifier) return;\n return momentDate[isSubtract ? 'subtract' : 'add'](1, 'year');\n }\n\n public addFiscalYearShiftForYear(momentDate: Moment): Moment | undefined {\n return this.applyFiscalYearShiftForYear(momentDate);\n }\n\n public subtractFiscalYearShiftForYear(momentDate: Moment): Moment | undefined {\n return this.applyFiscalYearShiftForYear(momentDate, true);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n\n public updateDatePickerByPreset(tag: DateTags, calender: any) {\n this.keepPresetTag = true;\n let date = null;\n if (tag) {\n date = DrSharedUtils.getDateByTag(tag);\n switch (tag) {\n case DateTags.TODAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.YESTERDAY:\n this.updateTimeframeAndFormat(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n break;\n case DateTags.THIS_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n case DateTags.PREV_MONTH:\n this.updateTimeframeAndFormat(DateFromats.MONTH_YEAR_FORMAT);\n this.selectDateInCalendarMonthView(date, calender);\n break;\n }\n }\n this.presetTag$.next(tag);\n this.updatedDateAndClose$.next(date);\n }\n\n public selectDateInCalendarMonthView(date: Moment, calender: any): void {\n setTimeout(() => {\n const monthView = calender.monthView as any;\n if (monthView) {\n monthView._activeDate = date;\n monthView._selected = date;\n monthView._init();\n }\n });\n }\n\n public resetPresetTag() {\n if (!this.keepPresetTag) {\n this.presetTag$.next(null);\n } else {\n this.keepPresetTag = false;\n }\n }\n}\n","import { animate, style, transition } from '@angular/animations';\nimport { DateTags } from './datePicker';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8,\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8,\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7,\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7,\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7,\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8,\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8,\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8,\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8,\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8,\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8,\n },\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [style({ opacity: 0 }), animate(150, style({ opacity: 1 }))]),\n transition(':leave', [animate(150, style({ opacity: 0 }))]),\n];\n\nexport const PRESET_TAGS_LIST: Array<{ key: string; label: string }> = [\n { key: DateTags.TODAY, label: 'Today' },\n { key: DateTags.YESTERDAY, label: 'Yesterday' },\n { key: DateTags.THIS_MONTH, label: 'This month' },\n { key: DateTags.PREV_MONTH, label: 'Prev month' },\n];\n","export enum TooltipTheme {\n LIGHT = 'light',\n DARK = 'dark',\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { TooltipTheme } from '../../enums/tooltip-theme.enum';\n\n@Component({\n selector: 'dr-tooltip-default',\n template: '<span class=\"content\" [innerHTML]=\"content\"></span><ng-content></ng-content>',\n styleUrls: ['./tooltip-default.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipDefaultComponent {\n @Input() content: string;\n\n @Input()\n @HostBinding('class')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n constructor() {}\n}\n","<div [class]=\"position + ' ' + class + ' ' + theme\" [ngClass]=\"{ 'dr-tooltip': !options?.withoutContainerStyles }\">\n <div *ngIf=\"!options?.withoutArrow\" class=\"dr-tooltip-arrow\"></div>\n <ng-container *ngIf=\"isContentTemplate; else defaultContent\">\n <ng-container *ngTemplateOutlet=\"content; context: contentContext\"></ng-container>\n </ng-container>\n <ng-template #defaultContent>\n <dr-tooltip-default [content]=\"content\" [theme]=\"theme\"></dr-tooltip-default>\n </ng-template>\n</div>\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [trigger('tooltip', POPUP_ANIMATION)],\n})\nexport class TooltipComponent implements OnInit {\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n @Input() theme: TooltipTheme;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {}\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { TooltipTheme } from './enums/tooltip-theme.enum';\n\nconst getOverlayPosition = (position) => ({ ...POPUP_POSITIONS[position] });\n\n@Directive({\n selector: '[drTooltip]',\n})\nexport class DrTooltipDirective implements OnDestroy {\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n private _position = 'top';\n @Input('drTooltipPosition')\n public get position() {\n return this._position;\n }\n public set position(value) {\n this._position = value;\n this.overlayPosition = getOverlayPosition(value);\n }\n @Input('drTooltipClass')\n class = '';\n\n @Input('drTooltipTheme')\n theme: TooltipTheme = TooltipTheme.LIGHT;\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n @Input() drTooltipMouseEnterTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = getOverlayPosition(this.position);\n if (position?.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position?.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n this.overlayPosition = position;\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n @Input('drTooltipHide')\n set hideTooltip(value: boolean) {\n if (value) {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n private mouseenterTimer: ReturnType<typeof setTimeout>;\n private overlayPosition = getOverlayPosition(this.position);\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n ) {}\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n if (this.drTooltipMouseEnterTimeout) {\n this.clearMouseEnterTimeout();\n\n this.mouseenterTimer = setTimeout(() => {\n this.renderTooltip();\n }, this.drTooltipMouseEnterTimeout);\n } else {\n this.renderTooltip();\n }\n }\n\n @HostListener('mouseleave')\n hide() {\n this.clearMouseEnterTimeout();\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions([this.overlayPosition]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n if (!this.content) return;\n if (!this.content.elementRef.nativeElement.isConnected) return;\n\n this.createOverlay();\n if (!this.overlayRef?.hasAttached()) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n this.tooltipRef.instance.theme = this.theme;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$\n .pipe(skip(1))\n .subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n private clearMouseEnterTimeout() {\n if (this.mouseenterTimer) {\n clearTimeout(this.mouseenterTimer);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSpinnerComponent {\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","<div [class]=\"'spinner-wrapper spinner-wrapper--' + (options?.spinnerType || 'logo')\">\n <div class=\"shadow\" [class.shadow--none]=\"options.noOverlay\"></div>\n <div [class]=\"'spinner spinner--' + (options?.spinnerSize || 'medium')\"></div>\n</div>\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]',\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = 'medium';\n @Input() drSpinnerType: SpinnerType = 'logo';\n @Input() drSpinnerNoOverlay = false;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n ) {}\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({\n ...options,\n spinnerSize: this.drSpinnerSize,\n spinnerType: this.drSpinnerType,\n noOverlay: this.drSpinnerNoOverlay,\n });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> =\n this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","<ng-select\n [(ngModel)]=\"selectedItem\"\n [items]=\"items\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [multiple]=\"multiple\"\n [addTag]=\"addTag\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n [hideSelected]=\"hideSelected\"\n [placeholder]=\"placeholder\"\n [loading]=\"loading\"\n [loadingText]=\"loadingText\"\n [readonly]=\"readonly\"\n [closeOnSelect]=\"closeOnSelect\"\n [disabled]=\"disabled\"\n [id]=\"id\"\n [maxSelectedItems]=\"maxSelectedItems\"\n [keyDownFn]=\"keyDownFn\"\n [searchFn]=\"searchFn\"\n [isOpen]=\"(type !== 'search-input' || !!selectComponent.searchTerm?.length) && isOpen\"\n [groupBy]=\"groupBy\"\n [attr.autofocus]=\"autofocus\"\n [selectOnTab]=\"selectOnTabKeyPress\"\n (keydown.tab)=\"onTabKeypress($event)\"\n (change)=\"onValueSelected(selectedItem)\"\n (open)=\"open.emit($event); onDropdownOpen()\"\n (close)=\"onClose($event)\"\n class=\"dr-select\"\n [class.ng-select--no-value-padding]=\"noValuePadding\"\n [class.ng-select--multiple-height-increased]=\"multipleHeightIncreased\"\n #selectComponent>\n <ng-template *ngIf=\"optionHeaderTemplate\" ng-header-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"optionHeaderTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"labelTemplate\" ng-label-tmp let-item=\"item\">\n <ng-container [ngTemplateOutlet]=\"labelTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"multiLabelTemplate\" ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <ng-container [ngTemplateOutlet]=\"multiLabelTemplate\" [ngTemplateOutletContext]=\"{ items: items, clear: clear }\">\n </ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" [ngTemplateOutletContext]=\"{ item: item, item$: item$ }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"optionWithDescription\" ng-option-tmp let-item=\"item\">\n <div class=\"dr-select__option-with-desc__wrapper\">\n <div>{{ item.name }}</div>\n <div class=\"dr-select__option-with-desc__description\">{{ item?.description }}</div>\n </div>\n </ng-template>\n <ng-template *ngIf=\"optionFooterTemplate\" ng-footer-tmp let-item=\"item\">\n <ng-container\n [ngTemplateOutlet]=\"optionFooterTemplate\"\n [ngTemplateOutletContext]=\"{ item: item, close: selectComponent.close.bind(selectComponent) }\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"groupBy\" ng-optgroup-tmp let-item=\"item\">\n {{ item[groupBy] }}\n </ng-template>\n <ng-template ng-loadingspinner-tmp>\n <div\n *ngIf=\"loading\"\n class=\"dr-select__loading\"\n [drSpinner]=\"loading\"\n [drSpinnerType]=\"'circle'\"\n [drSpinnerSize]=\"'small'\"\n [drSpinnerNoOverlay]=\"true\"></div>\n </ng-template>\n</ng-select>\n<i *ngIf=\"type === 'search-input'\" class=\"search-icon dr-icon-search\"></i>\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n Renderer2,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { ItemsList } from '@ng-select/ng-select/lib/items-list';\n\nconst SELECT_HOST_ATTRIBUTES = ['no-left-border', 'no-left-border-radius', 'no-right-border', 'no-right-border-radius'];\n\ninterface INgSelectComponentAccessor {\n close: () => void;\n writeValue: (value: any) => void;\n blur: () => void;\n itemsList: ItemsList;\n searchTerm: string;\n}\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true,\n },\n ],\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n @Input()\n @HostBinding('class')\n type: 'select' | 'search-input' = 'select';\n\n @Input() clearInputTextAfterSelection = false;\n @Input() className: string;\n @Input() items: Array<any> | Readonly<Array<any>> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() multipleHeightIncreased?: boolean;\n @Input() hideSelected: boolean;\n @Input() maxSelectedItems: number;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() loadingText: string = 'Loading...';\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n @Input() dropdownClass: string;\n @Input() closeOnSelect = true;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Input() noValuePadding = false;\n @Input() selectOnTabKeyPress = false;\n\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n @Output() closeUp: EventEmitter<any> = new EventEmitter<any>();\n @ViewChild(NgSelectComponent, { read: NgSelectComponent }) private readonly ngSelect: INgSelectComponentAccessor;\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('multiLabelTemplate') multiLabelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n backdropElement: HTMLElement | null = null;\n constructor(\n private elementRef: ElementRef<HTMLElement>,\n private renderer: Renderer2,\n ) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n this.getHostElement().classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n\n if (this.type === 'search-input' && !this.selectedItem && this.ngSelect) {\n this.ngSelect.searchTerm = null;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n close(): void {\n this.ngSelect.close();\n }\n\n onDropdownOpen(): void {\n setTimeout(() => {\n this.createBackdrop();\n const classesToAdd = [];\n if (this.asTextView) {\n classesToAdd.push('textView');\n }\n if (typeof this.dropdownClass === 'string') {\n classesToAdd.push(...this.dropdownClass.split(' '));\n }\n const dropdown = document.querySelector('.ng-dropdown-panel');\n if (dropdown) {\n dropdown.classList.add(...classesToAdd);\n }\n }, 0);\n }\n\n onValueSelected(selectedItem: any) {\n if (this.clearInputTextAfterSelection && this.ngSelect) {\n this.ngSelect.searchTerm = null;\n }\n\n this.onChange(selectedItem);\n this.change.emit(selectedItem);\n }\n\n onTabKeypress(e) {\n if (this.selectOnTabKeyPress && this.ngSelect) {\n e.preventDefault();\n }\n }\n\n onClose(event: any) {\n this.closeUp.emit(event);\n this.removeBackdrop();\n if (this.type === 'search-input' && this.ngSelect.itemsList?.lastSelectedItem?.label) {\n this.ngSelect.searchTerm = this.ngSelect.itemsList.lastSelectedItem.label;\n this.ngSelect.itemsList.filter(this.ngSelect.searchTerm);\n }\n }\n\n createBackdrop(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.addClass(this.backdropElement, 'custom-backdrop');\n this.renderer.appendChild(document.body, this.backdropElement);\n }\n\n removeBackdrop(): void {\n if (this.backdropElement) {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.renderer.removeChild(document.body, this.backdropElement);\n this.backdropElement = null;\n }\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some((attribute) => this.getHostElement().hasAttribute(attribute));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption, ITimeframeOption } from '../../models/datePicker';\n\n@Pipe({\n name: 'drShowTimeframePipe',\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter((item) => showOptions.includes(item.timeframe));\n }\n}\n","<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <div *ngIf=\"datePickerService.isUsingDateTagPresets\" class=\"dr-datepicker-preset-date\">\n <div class=\"dr-datepicker-preset-date__tags\">\n <div\n *ngFor=\"let tag of presetTagList\"\n id=\"preset_tag\"\n class=\"dr-datepicker-preset-date__tags__tag\"\n (click)=\"onSelectPresetTag(tag)\"\n [ngClass]=\"{ 'dr-datepicker-preset-date__tags__tag--selected': tag.key === selectedPresetTag }\"\n [drTooltip]=\"selectedPresetTag === tag.key ? 'Unselect preset' : ''\"\n [drTooltipPosition]=\"'top'\">\n {{ tag.label }}\n </div>\n </div>\n </div>\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [ngModel]=\"selectedTimeframe\"\n [items]=\"timeframeOptions | drShowTimeframePipe: datePickerService.availableTimeframes\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe($event)\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_MONTHS)\">{{ periodMonthLabel + ' ' }}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel(calendarView.FOR_YEARS)\">{{ periodYearLabel }}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\" (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div\n *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\"\n (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter === selectedQuarter ? 'selected' : ''\"\n [class.quarter-selector--disabled]=\"isQuarterDisabled(quarter)\">\n Q{{ quarter }}\n </div>\n</div>\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, ITimeframeOption, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [\n {\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () =>\n this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase(),\n },\n {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () =>\n this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase(),\n },\n {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year()),\n },\n {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () =>\n String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year()),\n },\n {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate))\n .utc()\n .year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n },\n },\n ];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward),\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n presetTagList = PRESET_TAGS_LIST;\n get selectedPresetTag() {\n return this.datePickerService.presetTag$.getValue();\n }\n\n public readonly calendarView = CalendarView;\n\n constructor(\n private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService,\n ) {\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe((value) => {\n const timeframe = this.datePickerService.getTimeframe(value);\n this.selectedTimeframe = this.timeframeOptions.filter((option) => option.timeframe === timeframe)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n _calendar._userSelection.subscribe((date) => {\n if (!this.datePickerService.isValueUpdating) {\n this.datePickerService.onSameDaySelectedInCalendar$.next(date.value);\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n this.goToCurrentDateInViewByFY();\n });\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter((option) => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.match(/[a-zA-Z]+/g).toString();\n this.periodYearLabel = fullPeriodLabel.match(/[0-9]+/g).toString();\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe(value) {\n if (value !== this.selectedTimeframe) {\n this.datePickerService.resetPresetTag();\n }\n this.selectedTimeframe = value;\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter((option) => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(\n this._calendar.currentView as CalendarView,\n );\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n\n if (\n this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe) &&\n !this.datePickerService.fiscalYearBack &&\n this.datePickerService.fiscalYearMonthsModifier\n ) {\n multuYearView._todayYear = moment.utc().year() + 1;\n (multuYearView as any)._changeDetectorRef.markForCheck();\n }\n }\n\n onSelectPresetTag(tag: any) {\n if (tag.key === this.selectedPresetTag) {\n this.datePickerService.presetTag$.next(null);\n } else {\n this.datePickerService.presetTag$.next(tag.key);\n }\n this.datePickerService.updateDatePickerByPreset(this.selectedPresetTag, this._calendar);\n }\n\n goToCurrentDateInViewByFY() {\n const isNeedMoveToDate =\n !this.datePickerService.innerValue &&\n [TimeframeOption.QUARTER, TimeframeOption.YEAR].includes(this.datePickerService.timeframe);\n\n if (isNeedMoveToDate) {\n const momentWithShift = this.datePickerService.addFiscalYearShiftForYear(moment.utc());\n if (momentWithShift) {\n this.datePickerService.calendarInstance._goToDateInView(\n momentWithShift,\n this.datePickerService.calendarInstance.currentView,\n );\n }\n }\n }\n\n isQuarterDisabled(quarterNumber: number): boolean {\n if (this._calendar.activeDate) {\n const endOfQuarter = this._calendar.activeDate.clone();\n this.datePickerService.setEndOfQuarter(endOfQuarter, quarterNumber);\n this.datePickerService.subtractFiscalYearShiftForYear(endOfQuarter);\n return !this.datePickerService.datepickerFilter(endOfQuarter);\n }\n return false;\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat,\n },\n ],\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(this.configDateParse, this.configDateDisplay);\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl,\n ) {}\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport moment from 'moment';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\n\nconst noop = () => {};\n\nexport class CustomDateAdapter extends MomentDateAdapter {\n getFirstDayOfWeek(): number {\n return 1;\n }\n}\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n DrDatePickerService,\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges {\n @Input()\n format: string;\n\n @Input() set min(minDate: number) {\n this._min = minDate ? moment.unix(minDate).utc() : null;\n }\n\n @Input() set max(maxDate: number) {\n this._max = maxDate ? moment.unix(maxDate).utc() : null;\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select...';\n\n @Input() @HostBinding('class.disabled') disabled: boolean;\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @Input() fiscalYearBack = false;\n\n @Input() datepickerFilter: (moment: Moment) => boolean;\n\n @ViewChild('datePicker') public datePicker: any;\n\n protected destroyed$ = new Subject<void>();\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n protected get innerValue(): Moment {\n return this.datePickerService.innerValue;\n }\n protected set innerValue(value: Moment) {\n this.datePickerService.innerValue = value;\n }\n\n public displayValue$ = combineLatest([\n this.datePickerService.innerValue$.pipe(distinctUntilChanged()),\n this.datePickerService.timeframe$.pipe(distinctUntilChanged()),\n ]).pipe(\n startWith([null, null]),\n map(([value, timeframe]: [Moment, TimeframeOption]) => {\n const valueToReturn = value?.clone();\n if (valueToReturn && this.datePickerService.isTimeframeDependingOnFY(timeframe)) {\n this.datePickerService.addFiscalYearShiftForYear(valueToReturn);\n }\n return valueToReturn;\n }),\n tap((value: Moment) => {\n if (value && this.datePickerService.calendarInstance) {\n this.datePickerService.calendarInstance.activeDate = value;\n this.datePickerService.calendarInstance.selected = value;\n }\n }),\n shareReplay(1),\n takeUntil(this.destroyed$),\n );\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.valueChangedInCalendar(value);\n });\n\n const dateFormatFn = this.dateAdapter.format;\n this.dateAdapter.format = (date: Moment, displayFormat: string) => {\n let dateToFormat = date.clone();\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n dateToFormat = this.datePickerService.subtractFiscalYearMonthsFromDate(dateToFormat);\n }\n return dateFormatFn.call(this.dateAdapter, dateToFormat, displayFormat);\n };\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.fiscalYearBack = this.fiscalYearBack;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePickerService.datepickerFilter = this.dateFilter;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n let timeframe;\n let format = this.datePickerService.getConfiguredFormat(this.format as TimeframeOption);\n if (format) {\n timeframe = this.format as TimeframeOption;\n } else {\n format = this.datePickerService.normalizeValue(this.format);\n timeframe = this.datePickerService.getTimeframe(format);\n }\n this.datePickerService.timeframe = timeframe;\n this.datePickerService.format$.next(format);\n }\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n const normalizedValue = this.innerValue.clone();\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(normalizedValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(normalizedValue, 1);\n } else {\n normalizedValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(normalizedValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(normalizedValue, 4);\n } else {\n normalizedValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = normalizedValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(normalizedValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = normalizedValue.clone();\n this.datePickerService.setStartOfQuarter(normalizedValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n normalizedValue.startOf(timeframe);\n endOfPeriod = normalizedValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(normalizedValue, 'seconds');\n normalizedValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n normalizedValue.startOf(timeframe);\n break;\n }\n this.datePickerService.innerValue = normalizedValue;\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.valueChangedInCalendar(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n /*\n * We need keep local timestamp for Electron Application\n * Issue in electron: when we select date, date select with -1 (if we're choosing 2023, output will be 2022)\n */\n const convertedValue = (document as any).is_electron ? moment.unix(value) : moment.unix(value).utc();\n this.innerValue = value ? convertedValue : null;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n // Should be as arrow function to avoid lose scope\n public dateFilter = (moment: Moment) => {\n if (this.datepickerFilter && moment) {\n return this.datepickerFilter(moment);\n }\n\n return true;\n };\n\n public valueChangedInCalendar(val: Moment) {\n if (val !== this.innerValue) {\n const valueToSet = val?.clone();\n if (valueToSet && this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n this.datePickerService.subtractFiscalYearShiftForYear(valueToSet);\n }\n this.setValueFromMoment(valueToSet);\n }\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n // isValueUpdating is required for manage clicks on same dates: if isValueUpdating - true then\n // days are different and subscription on calendar day click action won't trigger Accessor ngModel update\n // one more time\n this.datePickerService.isValueUpdating = true;\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n setTimeout(() => {\n this.datePickerService.isValueUpdating = false;\n });\n }\n @HostBinding('class.active')\n private active = false;\n onOpen() {\n this.active = true;\n }\n\n onCLose() {\n if (this.innerValue) {\n const nonNormalizedTimestamp = this.innerValue.unix();\n this.writeValue(nonNormalizedTimestamp);\n const normalizedValue = this.innerValue.unix();\n if (normalizedValue !== nonNormalizedTimestamp) {\n this.onChangeCallback(normalizedValue);\n }\n }\n this.active = false;\n }\n}\n","<i class=\"dr-icon-date\"></i>\n<input\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"dateFilter\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n<mat-datepicker\n #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\">\n</mat-datepicker>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport moment from 'moment';\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n styleUrls: ['./day-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\nexport class DayTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value: number) {\n const date = moment.unix(value);\n const resultTag: IDateTag = {\n name: this.name,\n value: date.unix(),\n label: date.format('MM/DD/YYYY'),\n locked: !this.dateFilter(date),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(momentData): boolean {\n const date = momentData.date();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.date() === date;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"day\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n styleUrls: ['./week-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n const timestamp = this.defaultValue || moment().unix();\n this.date = timestamp;\n this.dateObj.date = timestamp;\n this.chosenTagHandler(timestamp);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n dateFilter(date): boolean {\n const week = date.week();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.week() === week && lockDate.year() === year;\n });\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value).utc().weekday(1);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getWeekLabel(resultDate),\n locked: !this.dateFilter(resultDate),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(moment) {\n return `W${moment.week()} ${moment.year()}`;\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"week\"\n [(ngModel)]=\"date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n\nimport moment from 'moment';\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n styleUrls: ['./month-tag.component.scss'],\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\nexport class MonthTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(resultDate),\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n // Should be as arrow function to avoid lose scope\n dateFilter(date): boolean {\n const month = date.month();\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === year && lockDate.month() === month;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"month\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, HostBinding, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport moment from 'moment';\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n styleUrls: ['./quarter-tag.component.scss'],\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit, OnChanges {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.quarters ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value))) : false;\n }\n\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.initName();\n this.initTags();\n }\n }\n\n ngOnInit() {\n this.initName();\n this.initTags();\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n initTags() {\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n if (quarter.isSelected) {\n this.selectedValue = quarter;\n this.chosenTagHandler(quarter);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n chosenTagHandler(quarter) {\n const resultDate = moment.unix(quarter.value);\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(quarter),\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i;\n let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: i === 0,\n disabled: false,\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor(date.getMonth() / 3 + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter(quarter): boolean {\n const quarterDate = moment.unix(quarter.value);\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {\n quarter.disabled = true;\n return true;\n }\n\n return false;\n });\n }\n}\n","<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport moment from 'moment';\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n styleUrls: ['./year-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\nexport class YearTagComponent extends AnyTagComponent {\n @HostBinding('class.locked')\n get isLocked(): boolean {\n return this.date ? !this.dateFilter(moment.unix(this.date)) : false;\n }\n\n @Input() lockedDate: any[] = [];\n\n date;\n\n constructor() {\n super();\n }\n\n initDate() {\n this.date = this.defaultValue || moment().unix();\n this.dateObj.date = this.date;\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value: number) {\n const resultDate = moment.unix(value);\n resultDate.hour(12);\n\n const resultTag: IDateTag = {\n name: this.name,\n value: resultDate.unix(),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(resultDate),\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const calendarDateYear = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.year() === calendarDateYear;\n });\n }\n}\n","<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../any-tag.component';\nimport { MatLegacySelectChange as MatSelectChange } from '@angular/material/legacy-select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\nimport { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { find as _find, cloneDeep as _cloneDeep } from 'lodash';\nimport moment from 'moment';\n\n/* BEFORE MERGE INTO MASTER YOU MUST CONSULT WITH ARTEM LAZIUK !!!*/\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n styleUrls: ['./forecast-tag.component.scss'],\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n ],\n})\nexport class ForecastTagComponent extends AnyTagComponent implements OnChanges {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n\n forecastValue: number | undefined = undefined;\n isDateEventHappened = false;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12', disabled: false },\n { value: 1, label: '1+11', disabled: false },\n { value: 2, label: '2+10', disabled: false },\n { value: 3, label: '3+9', disabled: false },\n { value: 4, label: '4+8', disabled: false },\n { value: 5, label: '5+7', disabled: false },\n { value: 6, label: '6+6', disabled: false },\n { value: 7, label: '7+5', disabled: false },\n { value: 8, label: '8+4', disabled: false },\n { value: 9, label: '9+3', disabled: false },\n { value: 10, label: '10+2', disabled: false },\n { value: 11, label: '11+1', disabled: false },\n ];\n\n private initDateValue = null;\n\n constructor() {\n super();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.lockedDate) {\n this.updateLockedDate();\n }\n }\n\n initDate() {\n const dateVal = this.defaultValue ? moment.unix(this.defaultValue) : moment();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n\n this.updateYear(dateVal.year(), this.forecastValue);\n this.updateLockedDate();\n\n if (!this.initDateValue) {\n this.initDateValue = _cloneDeep(this.dateObj.date);\n }\n }\n\n updateYear(fiscalYear?: number, month?: number) {\n const DATE_TIME = '12:00:00';\n const MONTH_DIFF = 1;\n\n this.dateObj.date = fiscalYear\n ? moment.utc(`${month + MONTH_DIFF || '01'}/01/${fiscalYear} ${DATE_TIME}`, 'MM/DD/YYYY hh:mm:ss').unix()\n : moment.utc().unix();\n }\n\n updateLockedDate() {\n const year = moment.unix(this.dateObj.date).year();\n\n this.forecastTags = this.forecastTags.map((forecastTag) => {\n forecastTag.disabled = this.lockedDate.some((timestamp) => {\n const locked = moment.unix(timestamp);\n return locked.month() === forecastTag.value && +locked.year() === +year;\n });\n\n return forecastTag;\n });\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast (New)';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.month() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.year();\n\n if (!fiscal_year_back) {\n if (dateObj.month() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.month() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.initDateValue = _cloneDeep(this.dateObj.date);\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n if (this.isDateEventHappened) return;\n\n const month = this.forecastValue;\n const year = moment.unix(this.dateObj.date).year();\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back) {\n date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);\n } else {\n date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);\n }\n }\n\n this.updateYear(year, date.getMonth());\n\n this.isDateEventHappened = true;\n setTimeout(() => {\n this.isDateEventHappened = false;\n });\n }\n\n const calculatedDate = moment\n .unix(this.dateObj.date)\n .year(this.getFiscalYearFromDate(moment.unix(this.dateObj.date), fiscal_year_starts_from, fiscal_year_back));\n\n const resultTag: IDateTag = {\n name: this.name,\n value: this.dateObj.date,\n calculatedValue: calculatedDate.unix(),\n label: `${_find(this.forecastTags, { value: this.forecastValue })?.label} (${year})`,\n locked: !this.dateFilter(moment.unix(this.dateObj.date)),\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter(date): boolean {\n const month = this.forecastValue;\n const year = date.year();\n\n return !this.lockedDate.some((timestamp) => {\n const lockDate = moment.unix(timestamp);\n return lockDate.month() === month && lockDate.year() === year;\n });\n }\n}\n","<div class=\"forecast-tag__container\">\n <div class=\"forecast-tag__forecast\">\n <p class=\"tag__label\">Forecast</p>\n <dr-select\n placeholder=\"Select\"\n [(ngModel)]=\"forecastValue\"\n bindLabel=\"label\"\n bindValue=\"value\"\n [disabled]=\"disabled\"\n [items]=\"forecastTags\"\n (ngModelChange)=\"changeTagInputHandler($event)\"></dr-select>\n </div>\n <div class=\"forecast-tag__year\">\n <p class=\"tag__label\">Year</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"dateObj.date\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"changeYearInputHandler($event)\"></dr-date-picker>\n </div>\n</div>\n","<div>\n <year-tag\n *ngIf=\"dateTypeChosen === 'year'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></year-tag>\n <quarter-tag\n *ngIf=\"dateTypeChosen === 'quarter'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></quarter-tag>\n <month-tag\n *ngIf=\"dateTypeChosen === 'month'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></month-tag>\n <week-tag\n *ngIf=\"dateTypeChosen === 'week'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></week-tag>\n <day-tag\n *ngIf=\"dateTypeChosen === 'day'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></day-tag>\n <forecast-tag\n *ngIf=\"dateTypeChosen === 'forecast_new'\"\n [name]=\"name\"\n [defaultValue]=\"defaultValue\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (dateChange)=\"changeSelectedDate($event)\"></forecast-tag>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() disabled: boolean;\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n","import { Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { indexOf as _indexOf } from 'lodash';\n\ninterface IForecastByMonth {\n [monthIndex: number]: string;\n}\n\n@Injectable()\nexport class ForecastTagService {\n private static readonly MONTH_DIFF = 1;\n private static forecastByMonth: IForecastByMonth = {\n 0: '0+12',\n 1: '1+11',\n 2: '2+10',\n 3: '3+9',\n 4: '4+8',\n 5: '5+7',\n 6: '6+6',\n 7: '7+5',\n 8: '8+4',\n 9: '9+3',\n 10: '10+2',\n 11: '11+1',\n };\n\n public static getFiscalMonthFromDate(date: moment.Moment, fiscalYearStartsFrom: number): number {\n const all_months = [];\n\n for (let i = fiscalYearStartsFrom; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscalYearStartsFrom; i++) {\n all_months.push(i);\n }\n\n return _indexOf(all_months, date.month() + ForecastTagService.MONTH_DIFF) + ForecastTagService.MONTH_DIFF;\n }\n\n public static getFiscalYearFromDate(date: moment.Moment, fiscalYearStartsFrom: number, fiscalYearBack: boolean): number {\n const month = date.month();\n let fiscal_year = date.year();\n\n if (!fiscalYearBack) {\n if (month + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (month + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n public static getForecastLabel(month: number): string {\n return ForecastTagService.forecastByMonth[month - ForecastTagService.MONTH_DIFF];\n }\n\n public static getCalendarDateFromMonthAndFiscalYear(\n chosenMoment: moment.Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n const yearWithMonth = ForecastTagService.addMonthsWithoutYearChange(chosenMoment, monthLabel, fiscalYearStartsFrom);\n return ForecastTagService.transformYearFromFiscal(yearWithMonth, fiscalYearStartsFrom, fiscalYearBack);\n }\n\n public static addMonthsWithoutYearChange(\n date: moment.Moment,\n monthLabel: string,\n fiscalYearStartsFrom: number,\n ): moment.Moment {\n if (!monthLabel || !date) return;\n\n const dateToTransform = date.clone();\n\n const labelsIndex: number = +Object.keys(ForecastTagService.forecastByMonth).find(\n (key: string) => ForecastTagService.forecastByMonth[key] === monthLabel,\n );\n const monthsWithFiscalDifference = labelsIndex + fiscalYearStartsFrom - 1;\n const monthsToAdd = monthsWithFiscalDifference >= 12 ? monthsWithFiscalDifference - 12 : monthsWithFiscalDifference;\n\n return dateToTransform.utc().startOf('year').add(monthsToAdd, 'M');\n }\n\n public static transformYearFromFiscal(\n fiscalYearWithMonth: moment.Moment,\n fiscalYearStartsFrom: number,\n fiscalYearBack: boolean,\n ): number {\n if (!fiscalYearWithMonth) return;\n\n let fiscalYearStartMoment = fiscalYearWithMonth.clone();\n if (fiscalYearBack) {\n if (fiscalYearStartMoment.month() + 1 < fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.add(1, 'year');\n }\n } else {\n if (fiscalYearStartMoment.month() + 1 >= fiscalYearStartsFrom && fiscalYearStartsFrom !== 1) {\n fiscalYearStartMoment.subtract(1, 'year');\n }\n }\n return fiscalYearStartMoment.unix();\n }\n}\n","// instead of getting this from the server each time\n// this is not going to change much\nexport enum TagTypes {\n LIST = 'LIST',\n DATE = 'DATE',\n}\n\nexport enum TagsConfigSubType {\n YEAR = 'year',\n PLAN = 'plan',\n BUDGET_CYCLE = 'budget cycle',\n FORECAST_CYCLE = 'forecast cycle',\n MONTH = 'month',\n WEEK = 'week',\n DAY = 'day',\n FORECAST_NEW = 'forecast_new',\n QUARTER = 'quarter',\n FILE_STATUS = 'file_status',\n}\n\nexport interface ITag {\n id: number;\n name: string;\n type: TAG_TYPES;\n options: any;\n values: string[] | null;\n description: string;\n locked?: boolean;\n}\n\nexport interface ITagForServer {\n id: number;\n name: string;\n value?: number | string;\n calculatedValue?: number | string;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IDateTag {\n name: string;\n value?: number;\n calculatedValue?: number;\n label?: string;\n locked?: boolean;\n}\n\nexport interface IListTag {\n name: string;\n value?: number;\n label?: string;\n}\n\nexport interface IDynamicTag {\n value: string;\n is_favorite?: boolean;\n}\n\nexport type TDynamicTagValue = IDynamicTag | string | number;\nexport type TDynamicTag = { [parentValue: string]: TDynamicTagValue[] };\nexport type TConnectedTags = { [tagId: number]: ITagForServer[] };\nexport type TAG_TYPES = TagTypes;\n","export enum ToggleButtonMode {\n DEFAULT = 'default',\n DOTTED = 'dotted',\n}\n","<div class=\"toggle-container\" [class.disabled]=\"_disabled\" [attr.mode]=\"mode\">\n <ng-container *ngFor=\"let item of items\">\n <div\n *ngIf=\"item && !item[bindHidden]\"\n class=\"toggle-container__item\"\n [class.selected]=\"item[bindValue] === selectedValue || item === selectedValue\"\n [class.disabled]=\"item.disabled\"\n (click)=\"setValue(item)\">\n {{ item[bindLabel] || item.name || item }}\n </div>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ToggleButtonMode } from './toggle-button-mode';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() bindHidden: string | null = null;\n @Input() mode: ToggleButtonMode = ToggleButtonMode.DEFAULT;\n @Input() selectedValue: any | string;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n const isItemObject = item instanceof Object;\n const nextValue = this.bindValue && isItemObject ? item[this.bindValue] : item;\n if (this.selectedValue === nextValue) {\n return;\n }\n\n this.selectedValue = nextValue;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","<div>\n <div *ngIf=\"values.length > 2\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select placeholder=\"Select\" [(ngModel)]=\"defaultValue\" [items]=\"values\" (ngModelChange)=\"chosenTagHandler($event)\">\n </dr-select>\n </div>\n <div *ngIf=\"values.length < 3\" class=\"tag__toggle-button\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-toggle-button\n bindValue=\"value\"\n bindLabel=\"name\"\n [(ngModel)]=\"defaultValue\"\n (ngModelChange)=\"chosenTagHandler($event)\"\n [items]=\"values\"\n style=\"display: flex\"></dr-toggle-button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Input() disabled: boolean;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {}\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value,\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, filter, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]',\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n private previousValue = null;\n\n @Input() debounce = 500;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {}\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges\n .pipe(\n skip(1),\n debounceTime(this.debounce),\n filter((value) => value !== this.previousValue),\n distinctUntilChanged(),\n )\n .subscribe((value) => {\n this.previousValue = value;\n this.ngModelDebounceChange.emit(value);\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","<ng-content select=\"[prefixIcon]\"></ng-content>\n\n<ng-container *ngIf=\"!mask; else maskedInput\">\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [step]=\"step\" />\n</ng-container>\n<ng-template #maskedInput>\n <input\n #inputRef\n [(ngModel)]=\"value\"\n (ngModelChange)=\"updateChanges()\"\n (ngModelDebounceChange)=\"modelDebounceChange.emit($event)\"\n (blur)=\"blur.emit(value); onTouched()\"\n (focus)=\"focused.emit($event)\"\n [disabled]=\"_disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [placeholder]=\"placeholder\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n [minlength]=\"minlength\"\n [maxlength]=\"maxlength\"\n [mask]=\"mask\"\n [suffix]=\"suffix\"\n [prefix]=\"prefix\"\n [step]=\"step\" />\n</ng-template>\n<span *ngIf=\"value\" class=\"clear-icon\" (click)=\"onClear($event)\"></span>\n<span *ngIf=\"type === 'search'\" class=\"search-icon\" (click)=\"onSearchClicked()\"></span>\n<ng-content select=\"[suffixIcon]\"></ng-content>\n<button *ngIf=\"_buttonOptions.show || (_buttonOptions.showOnFocus && _buttonOptions.focusSet)\" (click)=\"onButtonClicked($event)\">\n {{ _buttonOptions.text }}\n</button>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\ntype ButtonOptions = {\n show?: boolean;\n showOnFocus?: boolean;\n focusSet?: boolean;\n checkFocusOut?: (target: any, element: any) => boolean;\n text?: string;\n};\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n @Input()\n set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input()\n set buttonOptions(value: ButtonOptions) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', (event) => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input()\n set type(val) {\n this._type = val;\n if (this._type === 'search') {\n this._elementClass.push('search-type');\n if (!this._placeholder) {\n this._placeholder = 'Search...';\n }\n }\n }\n get type(): string {\n return this._type;\n }\n\n @Input()\n set placeholder(val: string) {\n this._placeholder = val;\n }\n get placeholder(): string {\n return this._placeholder;\n }\n\n @Input()\n set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter((item) => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input()\n name: string;\n\n @Input()\n readonly = false;\n\n @Input()\n min: number | string;\n\n @Input()\n max: number | string;\n\n @Input()\n maxlength: number;\n\n @Input()\n minlength: number;\n\n @Input()\n pattern: string | RegExp;\n\n @Input()\n step: string | number;\n\n @Input()\n @HostBinding('class.search-type-mini')\n searchMini: boolean;\n\n @Output()\n blur = new EventEmitter();\n\n @Output('focus')\n focused = new EventEmitter<FocusEvent>();\n\n @Output()\n modelDebounceChange = new EventEmitter();\n\n @Output()\n searchHandler = new EventEmitter<any>();\n\n @Output()\n clearHandler = new EventEmitter<any>();\n\n @Output()\n buttonHandler = new EventEmitter<any>();\n\n @Input() mask: string;\n @Input() suffix = '';\n @Input() prefix = '';\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled: boolean | null = null;\n _elementClass: string[] = [];\n _buttonOptions: ButtonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save',\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n @ViewChild('inputRef') private readonly inputElement: ElementRef<HTMLInputElement>;\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n private _placeholder = '';\n private _type = 'string';\n private _clearable = false;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter((item) => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked() {\n this.searchHandler.emit(this.value);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n this.clearHandler.emit($event);\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n\n focus() {\n this.inputElement.nativeElement.focus();\n }\n}\n","<button [disabled]=\"disabled\">\n <i *ngIf=\"icon\" class=\"dr-button__icon\" [class]=\"icon\" [style.font-size]=\"iconSize\" [style.color]=\"iconColor || 'inherit'\">\n </i>\n <ng-content></ng-content>\n <div *ngIf=\"isLoading\" class=\"dr-button__spinner\">\n <i [style.font-size]=\"iconSize\" class=\"dr-icon-load\"></i>\n </div>\n <i\n *ngIf=\"iconAfter\"\n class=\"dr-button__icon dr-button__icon--after\"\n [class]=\"iconAfter\"\n [style.font-size]=\"iconAfterSize\"\n [style.color]=\"iconAfterColor || 'inherit'\">\n </i>\n</button>\n","import { Component, HostBinding, Input } from '@angular/core';\n\nexport type ButtonType =\n | 'primary'\n | 'split-primary-first'\n | 'split-primary-last'\n | 'secondary'\n | 'split-secondary-first'\n | 'split-secondary-last'\n | 'icon'\n | 'icon-primary'\n | 'icon-secondary'\n | 'ghost'\n | 'selection'\n | 'highlight'\n | 'danger'\n | 'help'\n | 'ai-primary'\n | 'ai-secondary';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class DrButtonComponent {\n @Input()\n @HostBinding('class')\n theme: ButtonType = 'primary';\n\n @Input()\n @HostBinding('class.with-icon')\n icon: string | string[];\n @Input() iconColor: string;\n @Input() iconSize = '24px';\n\n @Input()\n @HostBinding('class.with-icon-after')\n iconAfter: string | string[];\n @Input() iconAfterColor: string;\n @Input() iconAfterSize = '24px';\n\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n\n @Input()\n @HostBinding('class.loading')\n isLoading = false;\n\n @Input()\n @HostBinding('class.active')\n isActive = false;\n}\n","<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <p *ngIf=\"alertMsg && !isDynamicValueValid() && isDirty\"\n class=\"dynamic-add__field__alert\">{{ alertMsg }}</p>\n <dr-input\n #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button\n *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\" icon=\"dr-icon-exit\" iconSize=\"18px\" (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { DrSelectComponent } from '../dr-select/dr-select.component';\nimport { reduce as _reduce } from 'lodash';\nimport { DrInputComponent } from '../dr-input/dr-input.component';\n\n@Component({\n selector: 'dr-select-add-item',\n templateUrl: './dr-select-add-item.component.html',\n styleUrls: ['./dr-select-add-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrSelectAddItemComponent implements OnInit, OnChanges {\n public isDynamicAdding: boolean;\n public dynamicValue: string;\n public currentValues: any[] = [];\n public isDirty: boolean;\n\n @Input() public dynamicAddLabel = 'Add new';\n @Input() public bindValue: string;\n @Input() private values: any[] = [];\n @Input() public alertMsg: string;\n @Output() private dynamicValueAdded: EventEmitter<any> = new EventEmitter<any>();\n\n @ViewChild('dynamicInputRef') set inputRef(input: DrInputComponent) {\n if (!input) return;\n input.focus();\n }\n\n constructor(private drSelect: DrSelectComponent) {}\n\n public ngOnChanges(changes: SimpleChanges) {\n this.calculateCurrentValues();\n }\n\n public ngOnInit(): void {\n this.calculateCurrentValues();\n }\n\n public onDynamicAdding(): void {\n this.isDynamicAdding = true;\n }\n\n public onDynamicAddingClose(): void {\n this.isDynamicAdding = false;\n this.dynamicValue = '';\n }\n\n public isDynamicValueValid(): boolean {\n const trimmedValue = this.dynamicValue?.trim();\n if (!trimmedValue) return false;\n return !this.currentValues.includes(trimmedValue);\n }\n\n public onDynamicAdd(value: string, keydownEvent?: KeyboardEvent): void {\n this.isDirty = true;\n if (!this.isDynamicValueValid()) return;\n if (keydownEvent && keydownEvent.key !== 'Enter') return;\n\n this.onDynamicAddingClose();\n this.drSelect.close();\n this.dynamicValueAdded.emit(value?.trim());\n }\n\n private calculateCurrentValues(): void {\n this.currentValues = this.bindValue\n ? _reduce(\n this.values,\n (acc, curr) => {\n acc.push(curr[this.bindValue]);\n return acc;\n },\n [],\n )\n : this.values;\n }\n}\n","<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select\n [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item\n bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div\n class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';\nimport { IDynamicTag, ITag, ITagForServer, TDynamicTag, TDynamicTagValue } from '../models/serverTags';\nimport moment from 'moment';\n\n@Component({\n selector: 'dr-dynamic-tag',\n templateUrl: './dr-dynamic-tag.component.html',\n styleUrls: ['./dr-dynamic-tag.component.scss'],\n})\nexport class DrDynamicTagComponent implements OnChanges {\n @Input() public values: TDynamicTag;\n @Input() public tagConfig: ITag;\n @Input() public selectedTag: ITagForServer;\n\n @Input() public lockedTags: any[] = [];\n @Input() public connectedTags: ITagForServer[];\n @Input() public isDynamicTagAddEnabled: boolean;\n @Input() public disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n @Output() tagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public selectedDynamicTag: TDynamicTagValue;\n public currentValues: TDynamicTagValue[];\n public isLockedTagSelected: boolean;\n\n public get isPrimitiveDataSource(): boolean {\n const values = Object.values(this.values) || [];\n return !_isObject(values[0]);\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.updateDynamicTagValues();\n }\n\n public onTagChanged($event: string): void {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: $event,\n locked: this.lockedTags.includes($event),\n };\n\n if (!_isNil(this.selectedTag?.locked)) {\n resultEvent.locked = this.selectedTag.locked;\n }\n\n if (!_isNil(this.selectedTag?.label)) {\n resultEvent.label = this.selectedTag.label;\n }\n\n this.isLockedTagSelected = resultEvent.locked;\n this.tagChange.emit(resultEvent);\n }\n\n public onOptionClick($event: Event, tagValue: string | number): void {\n if (this.lockedTags.includes(tagValue)) {\n $event.stopImmediatePropagation();\n }\n }\n\n public onDynamicValueAdd($event: string) {\n const parentValueKey = this.getParentValueKey();\n const parentValues = this.values[parentValueKey] || [];\n\n if (this.isPrimitiveDataSource) {\n this.values[parentValueKey] = [$event, ...parentValues];\n } else {\n this.values[parentValueKey] = [{ value: $event }, ...parentValues];\n }\n\n this.selectedDynamicTag = $event;\n\n this.currentValues = this.values[parentValueKey];\n this.onTagChanged($event);\n this.tagAdd.emit($event);\n }\n\n private updateDynamicTagValues(): void {\n const parentValueKey = this.getParentValueKey();\n this.currentValues = this.values[parentValueKey];\n this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, this.selectedTag?.value);\n this.onTagChanged(this.selectedDynamicTag);\n }\n\n private getSelectedDynamicTag(currentValues: TDynamicTagValue[], selectedValue: string | number): string {\n if (!currentValues?.length) return null;\n\n if (_isObject(currentValues[0])) {\n const valueFromConfig = _find(currentValues, { value: selectedValue }) as IDynamicTag;\n const favoriteValue = _find(currentValues, { is_favorite: true }) as IDynamicTag;\n return (valueFromConfig || favoriteValue || currentValues[0]).value;\n }\n\n const valueFromConfig = _find(currentValues, (value) => value === selectedValue);\n return (valueFromConfig || currentValues[0]) as string;\n }\n\n private getParentValueKey(): string {\n return _map(this.connectedTags, this.tryToParseParentValue).join('__');\n }\n\n private tryToParseParentValue(connectedTags: ITagForServer) {\n if (_isNumber(connectedTags.value)) {\n const momentData = moment.unix(connectedTags.value);\n const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format\n\n if (momentData.isValid() && convertedParentValue) {\n return convertedParentValue;\n }\n }\n\n return connectedTags.value;\n }\n}\n","<div [class.dynamic-tag]=\"currentTagDynamic\"\n [class.dynamic-tag-multiple-line]=\"isDynamicTagMultipleLine\">\n <date-tag\n *ngIf=\"dateTag.type === tagTypes.DATE && !currentTagConnectedToDynamic\"\n [dateTypeChosen]=\"dateTag.sub_type\"\n [defaultValue]=\"dateTag.value\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [lockedDate]=\"lockedDate\"\n [disabled]=\"disabled\"\n (selectedDate)=\"onDateHandler($event)\"></date-tag>\n\n <list-tag\n *ngIf=\"listTag.type === tagTypes.LIST && !currentTagConnectedToDynamic && !tagConfig.options?.is_custom\"\n (tagChange)=\"onListHandler($event)\"\n [name]=\"listTag.name\"\n [values]=\"listTag.values\"\n [disabled]=\"disabled\"\n [defaultValue]=\"listTag?.value || defaultValue\"></list-tag>\n\n <dr-dynamic-tag\n *ngIf=\"currentTagDynamic\"\n [lockedTags]=\"lockedDate\"\n [connectedTags]=\"connectedTags\"\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"selectedTag\"\n [isDynamicTagAddEnabled]=\"isDynamicTagAddEnabled\"\n [values]=\"dynamicTagValues\"\n [disabled]=\"disabled\"\n (tagChange)=\"onDynamicTagChange($event)\"\n (tagAdd)=\"dynamicTagAdd.emit($event)\"></dr-dynamic-tag>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport {\n IDateTag,\n IListTag,\n ITag,\n ITagForServer,\n TagsConfigSubType,\n TagTypes,\n TDynamicTag,\n TDynamicTagValue\n} from '../models/serverTags';\nimport { find as _find, forEach as _forEach, map as _map, merge as _merge, some as _some } from 'lodash';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DrTagComponent implements OnInit, OnChanges {\n @Input() tagConfig: ITag;\n // selectedTagValue\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[] = [];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n\n @Input() tagsConfig: ITag[];\n @Input() dynamicTagValues: TDynamicTag = {};\n\n @Input() public set connectedTags(tags: ITagForServer[]) {\n this._connectedTags = tags || [];\n }\n\n @Input() isDynamicTagAddEnabled: boolean;\n\n @Input() disabled: boolean;\n\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>(); // Not emit value for dynamic tag\n @Output() dynamicTagChange: EventEmitter<ITagForServer[]> = new EventEmitter<ITagForServer[]>();\n @Output() dynamicTagAdd: EventEmitter<TDynamicTagValue> = new EventEmitter<TDynamicTagValue>();\n\n public defaultValue: string | undefined;\n public currentTagDynamic: boolean;\n public currentTagConnectedToDynamic = false;\n public tagTypes = TagTypes;\n\n public dateTag: any;\n public listTag: any;\n\n private readonly connectableTags = [TagsConfigSubType.FORECAST_NEW, TagsConfigSubType.YEAR];\n\n private connectedTagsValues: ITagForServer[] = [];\n private dynamicTagValue: ITagForServer;\n private _connectedTags: ITagForServer[] = [];\n\n public get connectedTags(): ITagForServer[] {\n return this._connectedTags;\n }\n\n public get isDynamicTagMultipleLine(): boolean {\n return this.currentTagDynamic && this.tagConfig.options.sub_type === TagsConfigSubType.FORECAST_CYCLE;\n }\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: '',\n };\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (simpleChanges.tagsConfig) {\n this.calculateDynamicTag();\n }\n }\n\n ngOnInit() {\n this.dateTag = {\n type: this.tagConfig.type,\n sub_type: this.tagConfig.options.sub_type,\n value: this.selectedTag?.value,\n };\n\n this.listTag = {\n name: this.tagConfig.name,\n type: this.tagConfig.type,\n values: this.tagConfig.values,\n value: this.selectedTag?.value,\n };\n\n if (this.tagsConfig && this.currentTagDynamic) {\n this.configureTagItems();\n }\n\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: event.name,\n value: event.value,\n calculatedValue: event.calculatedValue,\n label: event.label,\n locked: event.locked,\n };\n\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n if (this.currentTagDynamic) {\n this.onDynamicHandler(event);\n return;\n }\n\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onDynamicTagChange(tag?: ITagForServer) {\n if (tag) {\n this.dynamicTagValue = tag;\n }\n\n this.dynamicTagChange.emit([...this.connectedTagsValues, this.dynamicTagValue]);\n }\n\n private onDynamicHandler(event) {\n const connectedDateTagConfig = _find(this.tagsConfig, (tagConfig) => tagConfig.name === event.name);\n this.connectedTags = _map(this.connectedTags, (tag) => {\n if (tag.id === connectedDateTagConfig.id) {\n tag.value = event.value;\n tag.locked = event.locked;\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n tag.label = event.label;\n }\n }\n\n return tag;\n });\n\n const resultEvent: ITagForServer = {\n id: connectedDateTagConfig.id,\n name: connectedDateTagConfig.name,\n value: event.value,\n };\n\n if (connectedDateTagConfig.type === TagTypes.DATE) {\n resultEvent.label = event.label;\n resultEvent.locked = event.locked;\n }\n\n const savedTag = _find(this.connectedTagsValues, { id: resultEvent.id });\n\n if (savedTag) {\n _merge(savedTag, resultEvent);\n } else {\n this.connectedTagsValues.push(resultEvent);\n }\n\n this.onDynamicTagChange();\n }\n\n private configureTagItems() {\n _forEach(this.tagsConfig, (tagConfig) => {\n if (!this.connectableTags.includes(tagConfig.options.sub_type)) return;\n if (tagConfig.type === TagTypes.DATE) {\n this.dateTag = {\n type: tagConfig.type,\n sub_type: tagConfig.options.sub_type,\n value: (_find(this.connectedTags, { id: tagConfig.id }) || {}).value,\n };\n }\n\n if (tagConfig.type === TagTypes.LIST) {\n this.listTag = {\n name: tagConfig.name,\n type: tagConfig.type,\n values: tagConfig.values,\n value: tagConfig?.options?.default_value,\n };\n }\n\n if (!_find(this.connectedTags, { id: tagConfig.id })) {\n this.connectedTags.push({\n id: tagConfig.id,\n name: tagConfig.name,\n value: undefined,\n });\n }\n });\n }\n\n private calculateDynamicTag(): void {\n this.currentTagDynamic = this.tagConfig.options.is_custom;\n\n this.currentTagConnectedToDynamic = _some(\n this.tagsConfig,\n (tagConfig) => tagConfig.options.is_custom && this.connectableTags.includes(this.tagConfig.options.sub_type),\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges) => {};\n onTouched: any = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","<label>\n <input\n type=\"radio\"\n [name]=\"name\"\n [value]=\"value\"\n (change)=\"valueChanged(value)\"\n [(ngModel)]=\"modelValue\"\n [disabled]=\"disabled\"\n (click)=\"toggleChange($event)\" />\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: ` <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {}\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {};\n protected onTouched = () => {};\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes\n .pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n )\n .subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => (radio.disabled = this.disabled));\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange))\n .pipe(takeUntil(merge(this.radios.changes, this.destroy$)))\n .subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin')\n .pipe(\n filter((event) => hostElement.contains(event.target as Node)),\n switchMap(() => merge(fromEvent<Event>(this.document, 'focusin'), fromEvent<Event>(this.document, 'click'))),\n filter((event) => !hostElement.contains(event.target as Node)),\n takeUntil(merge(this.radios.changes, this.destroy$)),\n )\n .subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor, AfterViewInit {\n public tooltip: string;\n @Input() checkedStatus: boolean;\n @Input()\n @HostBinding('class.disabled')\n disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n @HostBinding('class')\n theme: 'medium' | 'small' = 'medium';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n @Input()\n @HostBinding('class.text-nowrap')\n textNowrap: boolean;\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n @ViewChild('checkboxContent') checkboxContent: ElementRef;\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n const element = this.checkboxContent.nativeElement;\n if (this.textNowrap && element.scrollWidth > element.clientWidth) {\n this.tooltip = element.innerText;\n }\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setValue(event) {\n const input = event.target as HTMLInputElement;\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","<label>\n <input\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'checked' : 'unchecked'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"disabled\"\n (change)=\"setValue($event)\"\n (click)=\"$event.stopPropagation()\" />\n <span #checkboxContent [class]=\"icon\" [class.indeterminate]=\"indeterminate\" [drTooltip]=\"tooltip\">\n <ng-content></ng-content>\n </span>\n</label>\n","import { Component, Input } from '@angular/core';\n\nexport enum LinkTheme {\n DEFAULT = 'DEFAULT',\n DEFAULT_UNDERLINE = 'DEFAULT_UNDERLINE',\n GRAY_UNDERLINE = 'GRAY_UNDERLINE',\n}\n\nexport const DEFAULT_LINK_FONT_SIZE = '14px' as const;\nexport const DEFAULT_LINK_FONT_WEIGHT = 400 as const;\n\n@Component({\n selector: 'dr-link',\n templateUrl: './dr-link.component.html',\n styleUrls: ['./dr-link.component.scss'],\n})\nexport class DrLinkComponent {\n @Input({ required: true }) link: string;\n @Input() fontSize: string = DEFAULT_LINK_FONT_SIZE;\n @Input() fontWeight: number = DEFAULT_LINK_FONT_WEIGHT;\n @Input() theme: LinkTheme = LinkTheme.DEFAULT;\n}\n","<a class=\"dr-link\" [class]=\"theme\" [href]=\"link\" [style.font-weight]=\"fontWeight\" [style.font-size]=\"fontSize\">\n <ng-content></ng-content>\n</a>\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","<dr-button\n [disabled]=\"isPrevDateDisabled\"\n *ngIf=\"!disabled\"\n theme=\"icon\"\n icon=\"dr-icon-arrow-left\"\n (click)=\"pagingClicked(false)\"></dr-button>\n<div\n [drTooltip]=\"datepickerTooltip\"\n [drTooltipPosition]=\"datepickerTooltipPosition\"\n [drTooltipMousleaveTimeout]=\"datepickerTooltipTimeout\"\n class=\"dr-datepicker-input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n\n <div class=\"dr-datepicker-input-container__formatted-value-display\" (click)=\"datepickerInput.click()\">\n <ng-container\n [ngTemplateOutlet]=\"formattedValueTmpl\"\n [ngTemplateOutletContext]=\"{\n formattedValue: displayedFormattedValue$ | async\n }\">\n </ng-container>\n <ng-template #formattedValueTmpl let-value=\"formattedValue\">\n <span>\n {{\n datePickerService.isUsingDateTagPresets && !!presetTagSelected\n ? presetTagSelected + ' (' + value + ')'\n : value\n }}\n </span>\n </ng-template>\n </div>\n <input\n #datepickerInput\n [ngModel]=\"displayValue$ | async\"\n (ngModelChange)=\"valueChangedInCalendar($event)\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\" />\n</div>\n<dr-button\n [disabled]=\"isNextDateDisabled\"\n *ngIf=\"!disabled\"\n theme=\"icon\"\n icon=\"dr-icon-arrow-right\"\n (click)=\"pagingClicked(true)\"></dr-button>\n<mat-datepicker\n #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, timeframeOption.YEAR)\"\n (monthSelected)=\"chosenPeriodHandler($event, timeframeOption.MONTH)\"\n (opened)=\"onOpen()\"\n (closed)=\"onCLose()\"\n [panelClass]=\"datePickerService.isUsingDateTagPresets ? 'date-picker-preset-tag' : 'dr-timeframe-datepicker'\">\n</mat-datepicker>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { CustomDateAdapter, DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DateTags, IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { debounceTime, map, takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { Moment } from 'moment';\nimport { PRESET_TAGS_LIST } from '../../../models/constants';\nimport { TooltipPosition } from '../../../dr-tooltip/enums/tooltip-position.enum';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DateAdapter, useClass: CustomDateAdapter },\n { provide: DrDatePickerService },\n ],\n})\nexport class DrDatePickerWithTimeframeComponent\n extends DrDatePickerComponent\n implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit, OnChanges\n{\n presetTagSelected: string;\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n }\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n @Input() paginationDebounce;\n\n @Input() set isUsingDateTagPresets(flag: boolean) {\n this.datePickerService.isUsingDateTagPresets = flag;\n }\n\n @Input() set presetTag(tag: string) {\n this.datePickerService.presetTag$.next(tag as DateTags);\n }\n\n @Input() datepickerTooltip: TemplateRef<any> | null;\n @Input() datepickerTooltipPosition: string = TooltipPosition.TOP;\n @Input() datepickerTooltipTimeout: number = 0;\n\n @Input() isOpen: boolean = false;\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n @Output() onChangePresetTag = new EventEmitter<DateTags>();\n\n private readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.getNextDate('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.getNextDate('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.getNextDate('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.getNextDate('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.getNextDate('addCalendarDays', 7, forward),\n };\n\n public isNextDateDisabled = false;\n public isPrevDateDisabled = false;\n\n private onChangeDebounced$: Subject<number> = new Subject<number>();\n\n public displayedFormattedValue$ = this.displayValue$.pipe(\n takeUntil(this.destroyed$),\n map((value: Moment) => {\n if (!value) return this.placeholder;\n return (\n this.datePickerService.getDisplayPrefix() +\n this.dateAdapter.format(value, this.datePickerService.getConfiguredFormat(this.datePickerService.timeframe))\n );\n }),\n );\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService,\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n\n datePickerService.presetTag$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n let tagObj = PRESET_TAGS_LIST.find((val) => val?.key === value);\n this.presetTagSelected = tagObj?.label;\n this.onChangePresetTag.emit(value);\n });\n\n this.datePickerService.onSameDaySelectedInCalendar$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n\n datePickerService.updatedDateAndClose$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n if (value) {\n this.setValueFromMoment(value);\n } else {\n this.onChangeCallback(this.innerValue.unix());\n }\n this.datePicker.close();\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n\n if (this.paginationDebounce) {\n this.onChangeDebounced$.pipe(takeUntil(this.destroyed$), debounceTime(this.paginationDebounce)).subscribe((value) => {\n this.onChangeCallback(value);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.format?.currentValue && changes.format.currentValue !== changes.format.previousValue) {\n this.datePickerService.updateTimeframeAndFormat(changes.format.currentValue);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.isOpen) {\n this.datePicker.open();\n }\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](forward);\n this.pagingDateChange(nextValue);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(newValue: Moment): void {\n if (this.paginationDebounce) {\n // this is required for not sending extra requests when user quickly clicking on pagination\n // here we do the same as in setValueFromMoment(newValue) with difference\n // that updating of ngModel/formControl is debounced\n this.datePickerService.resetPresetTag();\n this.writeValue(newValue.unix());\n this.onChangeDebounced$.next(this.innerValue.unix());\n } else {\n this.setValueFromMoment(newValue);\n }\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.datePickerService.resetPresetTag();\n super.setValue(timestamp);\n }\n public writeValue(value: number): void {\n super.writeValue(value);\n if (!value) return;\n this.restrictPagination();\n }\n\n private getNextDate(actionCall: string, amount: number, forward: boolean): Moment {\n return this.dateAdapter[actionCall]?.(this.innerValue, forward ? amount : -amount);\n }\n\n private restrictPagination(): void {\n if (!this._min && !this._max) return;\n const nextValue = this.pagingSetup[this.datePickerService.timeframe](true);\n const prevValue = this.pagingSetup[this.datePickerService.timeframe](false);\n this.isNextDateDisabled = this._max && nextValue && nextValue.unix() > this._max.unix();\n this.isPrevDateDisabled = this._min && prevValue && prevValue.unix() < this._min.unix();\n }\n}\n","<div class=\"date-picker-range__from\">\n <span *ngIf=\"labelFrom\" class=\"date-picker-range__from__label\">{{ labelFrom }}</span>\n <dr-date-picker\n [(ngModel)]=\"valueFrom\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionFrom\"\n [placeholder]=\"placeholderFrom\"\n [max]=\"valueTo\"\n [disabled]=\"_disabled || disabledFrom\">\n </dr-date-picker>\n</div>\n<div class=\"date-picker-range__to\">\n <span *ngIf=\"labelTo\" class=\"date-picker-range__to__label\">{{ labelTo }}</span>\n <dr-date-picker\n [(ngModel)]=\"valueTo\"\n [format]=\"format\"\n [periodPosition]=\"periodPositionTo\"\n [placeholder]=\"placeholderTo\"\n [min]=\"valueFrom\"\n [disabled]=\"_disabled || disabledTo\">\n </dr-date-picker>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerPeriodPosition } from '../../../models/datePicker';\nimport { IDatePickerRange } from '../../../models/datePickerRange';\n\nconst noop = () => {};\n\n@Component({\n selector: 'dr-date-picker-range',\n templateUrl: './dr-date-picker-range.component.html',\n styleUrls: ['./dr-date-picker-range.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerRangeComponent, multi: true }],\n})\nexport class DrDatePickerRangeComponent implements ControlValueAccessor {\n private get defaultValue(): IDatePickerRange {\n return {\n from: null,\n to: null,\n };\n }\n\n public _disabled: boolean;\n\n @Input() format: string;\n\n @Input() periodPositionFrom: DatePickerPeriodPosition = DatePickerPeriodPosition.START_OF_PERIOD;\n @Input() periodPositionTo: DatePickerPeriodPosition = DatePickerPeriodPosition.END_OF_PERIOD;\n\n @Input() labelFrom = 'From';\n @Input() labelTo = 'To';\n\n @Input() placeholderFrom = 'Select...';\n @Input() placeholderTo = 'Select...';\n\n @Input() set disabled(val: boolean) {\n this.setDisabledState(val);\n }\n @Input() disabledFrom: boolean;\n @Input() disabledTo: boolean;\n\n @HostBinding('class.column') @Input() column: boolean;\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n private innerValue: IDatePickerRange = this.defaultValue;\n\n private innerValueFrom: number = null;\n\n public get valueFrom(): number {\n return this.innerValueFrom;\n }\n\n public set valueFrom(v: number) {\n if (v !== this.innerValueFrom) {\n this.innerValueFrom = v;\n this.innerValue.from = this.innerValueFrom;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n private innerValueTo: number = null;\n\n public get valueTo(): number {\n return this.innerValueTo;\n }\n\n public set valueTo(v: number) {\n if (v !== this.innerValueTo) {\n this.innerValueTo = v;\n this.innerValue.to = this.innerValueTo;\n this.onChangeCallback(this.innerValue);\n this.cdr.markForCheck();\n }\n }\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: IDatePickerRange): void {\n if (!value) {\n this.innerValue = this.defaultValue;\n this.innerValueFrom = this.innerValue.from;\n this.innerValueTo = this.innerValue.to;\n this.cdr.markForCheck();\n } else if (value.from !== this.innerValue.from || value.to !== this.innerValue.to) {\n this.innerValueFrom = value.from || null;\n this.innerValueTo = value.to || null;\n this.innerValue = {\n from: this.innerValueFrom,\n to: this.innerValueTo,\n };\n this.cdr.markForCheck();\n }\n }\n\n public setDisabledState(val: boolean) {\n this._disabled = val;\n this.cdr.markForCheck();\n }\n}\n","<div class=\"tooltip-info\" [style.min-width]=\"data?.minWidth\" [style.max-width]=\"data?.maxWidth\">\n <div *ngIf=\"!data?.hideIcon\" class=\"tooltip-info__icon\" [ngClass]=\"data?.iconTheme\">\n <i [ngClass]=\"data?.icon || 'dr-icon-noty-notification'\"></i>\n </div>\n <div class=\"tooltip-info__content\">\n <div *ngIf=\"data?.title\" class=\"tooltip-info__content__header\">\n <span>{{ data.title }}</span>\n </div>\n <div *ngIf=\"data?.title && data?.description && !data?.hideDivider\" class=\"tooltip-info__content__divider\"></div>\n <div *ngIf=\"data?.description\" class=\"tooltip-info__content__description\">\n <span *ngIf=\"!data.useDescriptionAsHTML\">{{ data.description }}</span>\n <div *ngIf=\"data.useDescriptionAsHTML\" [innerHTML]=\"data.description\"></div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipInfoComponent {\n @Input() data: TooltipInfoContext;\n\n constructor() {}\n}\n","<div class=\"scroll-section\" *ngIf=\"stepper?.scrollLeft !== 0\" (click)=\"scrollLeft()\">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n<div #stepper class=\"stepper\" [class.stepper--disabled]=\"disabled\" [class.stepper--mini]=\"mini\">\n <ng-container *ngFor=\"let step of steps; let index = index; last as isLast; first as isFirst\">\n <div *ngIf=\"!step.hide\" class=\"step\" (click)=\"selectStep(step)\" [class.step-setup]=\"inlineLabels\">\n <div\n class=\"step-wrapper\"\n [drTooltip]=\"step.description && tooltip\"\n [drTooltipContext]=\"{ step: step }\"\n [drTooltipPosition]=\"'bottom'\">\n <div\n data-test=\"step_point\"\n class=\"step-point\"\n [class.active]=\"currentStep === step\"\n [class.completed]=\"step.completed\">\n <div *ngIf=\"step === currentStep\" class=\"ellipse\"></div>\n <ng-container [ngSwitch]=\"step.completed\">\n <ng-template [ngSwitchCase]=\"true\">\n <div class=\"pointer blue\">\n <i class=\"dr-icon-approve\"></i>\n </div>\n </ng-template>\n <ng-template [ngSwitchCase]=\"false\">\n <div\n class=\"pointer\"\n [class.gray]=\"step !== currentStep\"\n [ngClass]=\"{ 'blue with-ellipse': step === currentStep }\">\n <div [hidden]=\"step === currentStep || hiddenIndex\" class=\"text\">{{ index + 1 }}</div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n <div\n data-test=\"step_label_name\"\n class=\"step-label\"\n [class.active]=\"currentStep === step\"\n [ngClass]=\"step.completed ? 'completed' : 'uncompleted'\">\n <span [hidden]=\"hiddenNames\">{{ step.name }}</span>\n </div>\n <ng-container\n *ngIf=\"inlineLabels\"\n [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n <span *ngIf=\"step.showProgress\" data-test=\"step_progress\" class=\"step-progress\">\n {{ (step.requiredTasks ? step.completedTasks : step.requiredTasks) + '/' + step.requiredTasks }}\n </span>\n </div>\n <ng-container\n *ngIf=\"!inlineLabels\"\n [ngTemplateOutlet]=\"connector\"\n [ngTemplateOutletContext]=\"{ index, isLast, step }\">\n </ng-container>\n </div>\n <div *ngIf=\"mini\" class=\"stepper--mini-connector\"></div>\n </ng-container>\n</div>\n<div\n (click)=\"scrollRight()\"\n class=\"scroll-section\"\n *ngIf=\"\n stepper?.scrollWidth > stepper?.clientWidth &&\n roundWidth(stepper?.scrollLeft + stepper?.clientWidth) < stepper?.scrollWidth\n \">\n <i class=\"dr-icon-arrow-right\"></i>\n</div>\n\n<ng-template #tooltip let-step=\"step\">\n <div class=\"step-tooltip\">\n <div class=\"step-tooltip_name\">{{ step.name }}</div>\n <div class=\"step-tooltip_description\">{{ step.description }}</div>\n </div>\n</ng-template>\n\n<ng-template #connector let-step=\"step\" let-isLast=\"isLast\" let-index=\"index\">\n <div\n class=\"step-connector\"\n [class.only-one-step]=\"steps.length === 1\"\n [class]=\"'step-connector--' + (!inlineLabels ? 'absolute' : 'inline')\"\n *ngIf=\"steps.length === 1 || !isLast\"\n [style.visibility]=\"withoutConnectors || steps[step.index + 1]?.hide ? 'hidden' : 'unset'\"\n [class.connector-grand]=\"!inlineLabels && (index === 0 || index === steps.length - 2)\">\n <div class=\"progress\" [style.width]=\"getWidth(step)\"></div>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class StepperComponent<T extends Step> {\n @Input() steps: T[];\n @Input() currentStep: T;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Input() mini = false;\n @Output() stepChange: EventEmitter<T> = new EventEmitter<T>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<HTMLElement>;\n\n selectStep(step: T): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: T): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed)\n return `${(step?.completedTasks / step?.requiredTasks) * 100 || 0}%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { IFeedback } from './feedback';\n\nexport const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport enum ChatRole {\n USER = 'user',\n ASSISTANT = 'assistant',\n}\n\nexport interface IChatMessageRef {\n id: string;\n seq: number;\n}\n\ninterface IChatNewMessage {\n kind: CHAT_MESSAGE_TYPE;\n role: ChatRole;\n body: string;\n}\n\nexport interface IChatMessageBase extends IChatMessageRef {\n kind: string | CHAT_MESSAGE_TYPE;\n reply: boolean;\n role: ChatRole;\n avatarUrl?: string;\n user?: any;\n subjectId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatImageMessage & IChatDownloadFileMessage;\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatImageMessage, IChatDownloadFileMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n role: ChatRole;\n reply: boolean;\n text?: string;\n body?: any;\n url?: string;\n label?: string;\n parameters?: any;\n data?: any;\n avatarUrl?: string;\n user?: any;\n feedback?: IFeedback;\n subjectId?: string;\n\n constructor(obj: any) {\n this.id = obj?.id;\n this.subjectId = obj?.subjectId;\n this.feedback = obj?.feedback;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.role = obj?.role;\n this.reply = obj?.role !== ChatRole.USER;\n this.text = obj?.text || obj.body;\n this.url = obj?.url;\n this.label = obj?.label;\n this.body = obj?.body;\n this.parameters = obj?.parameters;\n this.avatarUrl = obj?.avatarUrl || null;\n this.user = obj?.user;\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'dr-dot-flashing',\n templateUrl: 'dr-dot-flashing.component.html',\n styleUrls: ['./dr-dot-flashing.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDotFlashingComponent {\n constructor() {}\n}\n","<div class=\"dot-flashing\"></div>\n","<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i\n *ngIf=\"!waitForReply\"\n [style]=\"getSendButtonPosition(textAreaElement)\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n _textareaInitialHeight = true;\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() showDisabledButtonInsteadOfDotFlashing = false;\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n @Output() abort = new EventEmitter<any>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected domSanitizer: DomSanitizer,\n ) {}\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${res.src})`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage($event) {\n if (!$event || !$event.shiftKey) {\n $event && $event.preventDefault();\n if (this.waitForReply) {\n return;\n }\n\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this._textareaInitialHeight = true;\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n }\n\n abortMessage() {\n this.abort.emit();\n }\n\n onModelChange(value: string): void {\n this._textareaInitialHeight = false;\n this.inputChange.emit(value);\n }\n\n getTextAreaHeight(textAreaElement: HTMLTextAreaElement) {\n if (this._textareaInitialHeight) {\n textAreaElement.style.height = '45px';\n } else {\n textAreaElement.style.height = 'auto';\n textAreaElement.style.height = textAreaElement.scrollHeight + 'px';\n }\n\n return `${textAreaElement.style.height}`;\n }\n\n getSendButtonPosition(textAreaElement: HTMLTextAreaElement) {\n return `top: calc(${this.getTextAreaHeight(textAreaElement)} - var(--send-button-offset));`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","export class DrAvatarService {\n public static readonly avatarColors = [\n '#0061FF',\n '#20A452',\n '#19194C',\n '#FF4E00',\n '#B14EF2',\n '#578AFF',\n '#F13FA4',\n '#8693A2',\n '#00867E',\n ];\n\n public static getAvatarColorNumber(index: number): number {\n return index % this.avatarColors.length;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AvatarUser } from './types';\n\n@Pipe({\n name: 'drAvatar',\n})\nexport class DrAvatarPipe implements PipeTransform {\n transform<T extends AvatarUser>(item: T, type: 'full' | 'initials' = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? item.first_name[0] + item.last_name[0] : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? item.first_name + ' ' + item.last_name : item.email;\n }\n}\n","<div class=\"users-section\" [class.compact]=\"compact\">\n <div *ngIf=\"!parsedUsers.length\" class=\"users-section__default\"></div>\n\n <div\n *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"user.status\"\n [style.width]=\"drAvatarSize || null\"\n [style.height]=\"drAvatarSize || null\"\n [style.background-color]=\"getAvatarColor(user)\"\n [ngClass]=\"{\n 'users-section__default': showUnassigned && !user.email,\n 'users-section__user--clickable': drAvatarIsClickable\n }\"\n [drTooltip]=\"user | drAvatar\"\n [drTooltipClass]=\"drAvatarTooltipClass\"\n [drTooltipPosition]=\"drAvatarTooltipPosition\"\n (click)=\"drAvatarIsClickable && userClicked.emit()\">\n {{ user | drAvatar: 'initials' }}\n </div>\n\n <div\n *ngIf=\"parsedUsers.length > USERS_TO_SHOW\"\n class=\"users-section__user users-section__user-more icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n +{{ getLastUsers().length }}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div\n class=\"users-section__user\"\n [style.background-color]=\"getAvatarColor(user)\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{ user | drAvatar: 'initials' }}\n </div>\n <span class=\"username\">\n {{ user | drAvatar }}\n </span>\n </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { DrAvatarService } from './services/dr-avatar.service';\nimport { AvatarUser } from './types';\nimport { ElPosition } from '../models/dropdown';\n\nconst USERS_TO_SHOW = 2;\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAvatarComponent<T extends AvatarUser = AvatarUser> {\n @Input()\n set users(users: T[] | T) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = DrAvatarService.getAvatarColorNumber(index);\n }\n });\n }\n }\n\n @Input() showUnassigned = false;\n @Input() drAvatarTooltipPosition: ElPosition = 'bottom';\n @Input() drAvatarTooltipClass: string;\n @Input() drAvatarSize: string;\n @Input() drAvatarIsClickable = true;\n @Input() compact = false;\n\n @Output() userClicked = new EventEmitter<void>();\n parsedUsers: T[] = [];\n\n readonly USERS_TO_SHOW = USERS_TO_SHOW;\n\n getFirstUsers(): T[] {\n return this.parsedUsers.slice(0, USERS_TO_SHOW);\n }\n\n getLastUsers(): T[] {\n if (this.parsedUsers.length > USERS_TO_SHOW) {\n return this.parsedUsers.slice(USERS_TO_SHOW, this.parsedUsers.length);\n }\n return [];\n }\n\n public getAvatarColor(user: T): string {\n return DrAvatarService.avatarColors[user.colorNumber] || DrAvatarService.avatarColors[0];\n }\n}\n","<div class=\"text\" *ngIf=\"message\">{{ message.text }}</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","<div class=\"message-content-group\">\n <a *ngFor=\"let file of readyFiles\" [href]=\"file.url\" target=\"_blank\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle && file.icon\"></i>\n <div *ngIf=\"file.urlStyle\" [style.background-image]=\"file.urlStyle\"></div>\n </a>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES,\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${file.url})`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(\n protected cd: ChangeDetectorRef,\n protected domSanitizer: DomSanitizer,\n ) {}\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","<ng-container *ngIf=\"message.avatarUrl; else userAvatar\">\n <div class=\"avatar\" [style.background-image]=\"'url(' + message.avatarUrl + ')'\"></div>\n</ng-container>\n<ng-template #userAvatar>\n <dr-avatar *ngIf=\"message.user\" [users]=\"message.user\"></dr-avatar>\n\n <div *ngIf=\"!message.user\" class=\"genius-avatar\">\n <i class=\"dr-icon-genius-sparks\"></i>\n </div>\n</ng-template>\n<div class=\"message\" [class.message--custom]=\"customMessage\" [ngClass]=\"applyMessageGroupClass(message)\">\n <ng-container [ngSwitch]=\"message.kind\">\n <dr-chat-message-text *ngSwitchCase=\"MESSAGE_TYPE.TEXT\" [message]=\"message\"></dr-chat-message-text>\n <dr-chat-message-file *ngSwitchCase=\"MESSAGE_TYPE.DOWNLOAD_FILE\" [message]=\"message\"></dr-chat-message-file>\n <ng-container *ngSwitchDefault>\n <ng-container [ngTemplateOutlet]=\"getTemplate()\" [ngTemplateOutletContext]=\"getTemplateContext()\"></ng-container>\n </ng-container>\n </ng-container>\n <div class=\"message__actions\" *ngIf=\"drChatMessageActions\">\n <ng-container [ngTemplateOutlet]=\"drChatMessageActions\"></ng-container>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * User info for avatar\n */\n @Input() user: any;\n\n @ContentChild('drChatMessageActions') drChatMessageActions: TemplateRef<any>;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {}\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${type}'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${type}'.`,\n );\n }\n\n return customMessageDirective;\n }\n\n applyMessageGroupClass(message: IChatMessage) {\n return message.role === 'assistant' && message.kind === 'text' ? 'messageGroup' : '';\n }\n}\n","<div\n class=\"chat-suggestions\"\n #suggestionsContainer\n [ngClass]=\"{\n 'chat-suggestions--three-cols': colsCount === 3,\n 'chat-suggestions--two-cols': colsCount === 2,\n 'chat-suggestions--one-col': colsCount === 1,\n 'chat-suggestions--button-mode': buttonMode\n }\">\n <ng-container *ngIf=\"buttonMode; else suggestionCards\">\n <div\n class=\"chat-suggestions__container\"\n [class.chat-suggestions__container--opened]=\"isSuggestedMenuOpen\"\n *ngIf=\"visibleValues.length\">\n <dr-button theme=\"secondary\" class=\"chat-suggestions__container__button\" (click)=\"toggleSuggestedMenu()\">\n Suggested chats\n </dr-button>\n <ng-container *ngTemplateOutlet=\"suggestionCards\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #suggestionCards>\n <div\n class=\"chat-suggestions__items\"\n [ngClass]=\"{\n 'chat-suggestions__items--three-cols': colsCount === 3,\n 'chat-suggestions__items--two-cols': colsCount === 2,\n 'chat-suggestions__items--one-col': colsCount === 1\n }\">\n <div *ngFor=\"let item of visibleValues\" class=\"chat-suggestions__items__item\" (click)=\"onItemClick(item)\">\n {{ item }}\n </div>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport * as _ from 'lodash';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-chat-suggestions',\n templateUrl: 'chat-suggestions.component.html',\n styleUrls: ['./chat-suggestions.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatSuggestionsComponent implements OnInit, OnDestroy, AfterViewInit {\n _nonHiddenValues: string[] = [];\n visibleValues: string[] = [];\n isSuggestedMenuOpen = false;\n colsCount = 1;\n private destroy$ = new Subject<void>();\n\n @Input() values: string[] = [];\n @Input() fullScreen: boolean = false;\n @Input() buttonMode: boolean = false;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n\n @ViewChild('suggestionsContainer', { static: false }) suggestionContainer: ElementRef;\n\n get hiddenValues(): string[] {\n return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];\n }\n set hiddenValues(values) {\n localStorage.setItem('aiChatSuggestions', JSON.stringify(values));\n }\n\n onResize$: Observable<ResizeObserverEntry[]>;\n\n colWidth = 300;\n colGap = 28;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n this.filterValues();\n }\n\n ngAfterViewInit() {\n this.onResize$ = DrSharedUtils.fromResizeObserver(this.suggestionContainer?.nativeElement);\n this.onResize$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.recalculateColsCount();\n });\n this.recalculateColsCount();\n }\n\n onItemClick(item: string) {\n if (this.waitForReply) {\n return;\n }\n this.isSuggestedMenuOpen = false;\n this.suggestionSelect.emit(item);\n this.hiddenValues = [...this.hiddenValues, item];\n this.filterValues();\n }\n\n filterValues() {\n const hiddenValues = this.hiddenValues;\n this._nonHiddenValues = _.filter(this.values, (val) => !hiddenValues.includes(val));\n this.fillVisibleValues();\n }\n\n fillVisibleValues() {\n const maxItemsCount = this.fullScreen ? 6 : 3;\n const nonHiddenValues = _.clone(this._nonHiddenValues);\n this.visibleValues.length = 0;\n for (let i = 0; i < maxItemsCount; i++) {\n if (!nonHiddenValues.length) {\n break;\n }\n const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);\n const item = nonHiddenValues.splice(randomIndex, 1)[0];\n this.visibleValues.push(item);\n }\n this.cdr.markForCheck();\n }\n\n clearHidden() {\n localStorage.setItem('aiChatSuggestions', null);\n this.filterValues();\n }\n\n recalculateColsCount() {\n if (this.suggestionContainer?.nativeElement?.offsetWidth >= this.colWidth * 3 + this.colGap * 2) {\n this.colsCount = 3;\n } else if (this.suggestionContainer?.nativeElement?.offsetWidth > this.colWidth * 2 + this.colGap) {\n this.colsCount = 2;\n } else {\n this.colsCount = 1;\n }\n this.cdr.markForCheck();\n }\n\n toggleSuggestedMenu(): void {\n this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;\n if (this.isSuggestedMenuOpen) {\n this.fillVisibleValues();\n }\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"chat\" [class.chat--in-full-screen]=\"fullScreen\">\n <div class=\"chat__sticky-top\">\n <ng-container *ngIf=\"chatHeader\" [ngTemplateOutlet]=\"chatHeader\"></ng-container>\n\n <div class=\"chat__alert\">\n <ng-content select=\"dr-chat-alert\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"!messages?.length\" class=\"chat__empty-state\">\n <span class=\"chat__empty-state__text\">{{ noMessagesPlaceholder }}</span>\n </div>\n\n <div *ngIf=\"messages?.length\" class=\"chat__messages\">\n <div\n #messagesContainer\n class=\"chat__messages__container\"\n [class.chat__messages__container--scroll]=\"messagesContainerWithScroll\">\n <ng-content select=\"dr-chat-message\"></ng-content>\n </div>\n </div>\n\n <dr-chat-suggestions\n *ngIf=\"suggestions?.length\"\n [values]=\"suggestions\"\n [fullScreen]=\"fullScreen\"\n [waitForReply]=\"waitForReply\"\n class=\"chat__suggestions\"\n [class.chat__suggestions--full-height]=\"fullScreen && !messages?.length\"\n [buttonMode]=\"!!messages?.length\"\n (suggestionSelect)=\"suggestionSelect.emit($event)\">\n </dr-chat-suggestions>\n\n <div class=\"form\">\n <ng-content select=\"dr-chat-form\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n TemplateRef,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService],\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() fullScreen: boolean;\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n }\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @Input() suggestions: string[] = [];\n @Input() reopen: boolean;\n\n /**\n * Parameter to check is send message function available\n *\n * @type {boolean}\n */\n @Input() waitForReply = false;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @ContentChild('drChatHeader') chatHeader: TemplateRef<unknown>;\n @Output() suggestionSelect: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild(DrChatSuggestionsComponent) _chatSuggestions: DrChatSuggestionsComponent;\n\n public get messagesContainerWithScroll(): boolean {\n return (\n this.messagesContainer &&\n this.messagesContainer.nativeElement.scrollHeight > this.messagesContainer.nativeElement.offsetHeight\n );\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n this.messages.changes.subscribe((messages) => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n if (this.messagesContainer) {\n const scrollToOptions: any = {\n top: this.messagesContainer.nativeElement.scrollHeight,\n };\n\n if (!this.reopen) {\n scrollToOptions.behavior = 'smooth';\n }\n\n this.messagesContainer.nativeElement.scrollTo(scrollToOptions);\n this.cdr.markForCheck();\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n clearHiddenSuggestions() {\n if (this._chatSuggestions) {\n this._chatSuggestions.clearHidden();\n }\n }\n\n hideSuggestions(): void {\n if (this._chatSuggestions?.isSuggestedMenuOpen) {\n this._chatSuggestions.toggleSuggestedMenu();\n }\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(\n public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService,\n ) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-chat-alert',\n templateUrl: './dr-chat-alert.component.html',\n styleUrls: ['./dr-chat-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatAlertComponent {\n @Input() iconClass = 'dr-icon-info';\n @Output() close: EventEmitter<void> = new EventEmitter<void>();\n}\n","<i [class]=\"iconClass\"></i>\n<ng-content></ng-content>\n<dr-button (click)=\"close.emit()\" theme=\"icon\" icon=\"dr-icon-exit\" class=\"chat-alert-close-btn\" drTooltip=\"Close\"> </dr-button>\n","<span class=\"toggle-title mr-3\" *ngIf=\"toggleTitle && !toggleTitleRight\">{{ toggleTitle }}</span>\n<label class=\"toggle-container\" [class.success]=\"successType\" [class.disabled]=\"_disabled\">\n <input\n type=\"checkbox\"\n [attr.data-test]=\"checkedStatus ? 'toggle-on' : 'toggle-off'\"\n [checked]=\"checkedStatus\"\n [disabled]=\"_disabled\"\n (click)=\"setValue()\" />\n <span class=\"toggle-body\">\n <i></i>\n </span>\n <ng-content></ng-content>\n</label>\n<span class=\"toggle-title ml-3\" *ngIf=\"toggleTitle && toggleTitleRight\">{{ toggleTitle }}</span>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","export enum BadgeStatus {\n INFO = 'info',\n ERROR = 'error',\n WARNING = 'warning',\n SUCCESS = 'success',\n REGULAR = 'regular',\n PROGRESS = 'progress',\n DOTTED = 'dotted',\n}\n","<div class=\"badge-status\" [drTooltip]=\"tooltip\" [drTooltipClass]=\"tooltipClass\" [ngClass]=\"'badge-status--' + theme\">\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i>\n <span *ngIf=\"label\">{{ label }}</span>\n</div>\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport { BadgeStatus } from '../models/badgeStatus';\n\n@Component({\n templateUrl: 'dr-badge-status.component.html',\n selector: 'dr-badge-status',\n styleUrls: ['dr-badge-status.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DrBadgeStatusComponent {\n @Input() theme: BadgeStatus = BadgeStatus.REGULAR;\n @Input() icon: string;\n @Input() label: string;\n @Input() tooltip: string;\n @Input() tooltipClass: string;\n}\n","export enum DrAlertTheme {\n SUCCESS = 'success',\n ERROR = 'error',\n BOLD_ERROR = 'bold-error',\n WARNING = 'warning',\n INFO = 'info',\n}\n","<div class=\"dr-alert__content-wrapper\">\n <i [class]=\"'dr-alert__icon ' + themeIconClass\"></i>\n <span *ngIf=\"!contentRef.innerHTML.trim()\" class=\"dr-alert__text\">{{ text }}</span>\n <div class=\"dr-alert__custom-content\" #contentRef>\n <ng-content></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { DrAlertTheme } from './enums/dr-alert-theme.enum';\n\nconst ALERT_THEME_ICONS = {\n [DrAlertTheme.SUCCESS]: 'dr-icon-uploaded-success',\n [DrAlertTheme.BOLD_ERROR]: 'dr-icon-error',\n [DrAlertTheme.ERROR]: 'dr-icon-error',\n [DrAlertTheme.WARNING]: 'dr-icon-warning',\n [DrAlertTheme.INFO]: 'dr-icon-info',\n};\n\n@Component({\n selector: 'dr-alert',\n templateUrl: './dr-alert.component.html',\n styleUrls: ['./dr-alert.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAlertComponent {\n @Input() theme: DrAlertTheme = DrAlertTheme.INFO;\n @Input() customIconClass: string;\n @Input() text: string;\n\n @HostBinding('class')\n get elementClass(): string {\n return `dr-alert dr-alert--${this.theme}`;\n }\n\n public get themeIconClass(): string {\n return this.customIconClass || ALERT_THEME_ICONS[this.theme];\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-code-editor-hint-wrapper',\n template: ` <span [innerHTML]=\"content\" [drTooltip]=\"tooltip\"></span> `,\n})\nexport class CodeEditorHintWrapperComponent {\n content: string;\n tooltip: string;\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n KeyValueDiffer,\n KeyValueDiffers,\n NgZone,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Editor, EditorChange, EditorFromTextArea, ScrollInfo } from 'codemirror';\nimport * as CodeMirror from 'codemirror';\nimport { DrSharedUtils } from '../../utils/dr-shared-utils';\n\n@Component({\n selector: 'dr-codemirror',\n template: `\n <textarea\n [name]=\"name\"\n class=\"dr-codemirror {{ className }}\"\n [class.dr-codemirror--focused]=\"isFocused\"\n autocomplete=\"off\"\n [autofocus]=\"autoFocus\"\n #ref>\n </textarea>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrCodemirrorComponent),\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrCodemirrorComponent implements AfterViewInit, OnDestroy, ControlValueAccessor, DoCheck {\n @Input() className = '';\n @Input() name = 'codemirror';\n @Input() autoFocus = false;\n\n @Input()\n set options(value: { [key: string]: any }) {\n this._options = value;\n if (!this._differ && value) {\n this._differ = this._differs.find(value).create();\n }\n }\n @Input() preserveScrollPosition = false;\n @Output() cursorActivity = new EventEmitter<Editor>();\n @Output() focusChange = new EventEmitter<boolean>();\n @Output() scroll = new EventEmitter<ScrollInfo>();\n @Output() drop = new EventEmitter<[Editor, DragEvent]>();\n @Output() codeMirrorLoaded = new EventEmitter<DrCodemirrorComponent>();\n @ViewChild('ref') ref!: ElementRef<HTMLTextAreaElement>;\n value = '';\n disabled = false;\n isFocused = false;\n codeMirror?: EditorFromTextArea;\n\n private _codeMirror: any;\n private _differ?: KeyValueDiffer<string, any>;\n private _options: any;\n\n constructor(\n private _differs: KeyValueDiffers,\n private _ngZone: NgZone,\n ) {}\n\n get codeMirrorGlobal(): any {\n if (this._codeMirror) {\n return this._codeMirror;\n }\n\n this._codeMirror = CodeMirror;\n return this._codeMirror;\n }\n\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(async () => {\n const codeMirrorObj = await this.codeMirrorGlobal;\n const codeMirror = codeMirrorObj?.default ? codeMirrorObj.default : codeMirrorObj;\n this.codeMirror = codeMirror.fromTextArea(this.ref.nativeElement, this._options) as EditorFromTextArea;\n this.codeMirror.on('cursorActivity', (cm) => this._ngZone.run(() => this.cursorActive(cm)));\n this.codeMirror.on('scroll', this.scrollChanged.bind(this));\n this.codeMirror.on('blur', () => this._ngZone.run(() => this.focusChanged(false)));\n this.codeMirror.on('focus', () => this._ngZone.run(() => this.focusChanged(true)));\n this.codeMirror.on('change', (cm, change) => this._ngZone.run(() => this.codemirrorValueChanged(cm, change)));\n this.codeMirror.on('drop', (cm, e) => {\n this._ngZone.run(() => this.dropFiles(cm, e));\n });\n this.codeMirror.setValue(this.value);\n this.codeMirrorLoaded.emit(this);\n });\n }\n\n ngDoCheck() {\n if (!this._differ) {\n return;\n }\n // check options have not changed\n const changes = this._differ.diff(this._options);\n if (changes) {\n changes.forEachChangedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachAddedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n changes.forEachRemovedItem((option) => this.setOptionIfChanged(option.key, option.currentValue));\n }\n }\n\n ngOnDestroy() {\n // is there a lighter-weight way to remove the cm instance?\n if (this.codeMirror) {\n this.codeMirror.toTextArea();\n }\n }\n\n codemirrorValueChanged(cm: Editor, change: EditorChange) {\n const cmVal = cm.getValue();\n if (this.value !== cmVal) {\n this.value = cmVal;\n this.onChange(this.value);\n }\n }\n\n setOptionIfChanged(optionName: string, newValue: any) {\n if (!this.codeMirror) {\n return;\n }\n\n // cast to any to handle strictly typed option names\n // could possibly import settings strings available in the future\n this.codeMirror.setOption(optionName as any, newValue);\n }\n\n focusChanged(focused: boolean) {\n this.onTouched();\n this.isFocused = focused;\n this.focusChange.emit(focused);\n }\n\n scrollChanged(cm: Editor) {\n this.scroll.emit(cm.getScrollInfo());\n }\n\n cursorActive(cm: Editor) {\n this.cursorActivity.emit(cm);\n }\n\n dropFiles(cm: Editor, e: DragEvent) {\n this.drop.emit([cm, e]);\n }\n\n writeValue(value: string) {\n if (value === null || value === undefined) {\n return;\n }\n if (!this.codeMirror) {\n this.value = value;\n return;\n }\n const cur = this.codeMirror.getValue();\n if (value !== cur && DrSharedUtils.normalizeLineEndings(cur) !== DrSharedUtils.normalizeLineEndings(value)) {\n this.value = value;\n if (this.preserveScrollPosition) {\n const prevScrollPosition = this.codeMirror.getScrollInfo();\n this.codeMirror.setValue(this.value);\n this.codeMirror.scrollTo(prevScrollPosition.left, prevScrollPosition.top);\n } else {\n this.codeMirror.setValue(this.value);\n }\n }\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.setOptionIfChanged('readOnly', this.disabled);\n }\n\n private onChange = (_: any) => {};\n\n private onTouched = () => {};\n}\n","<div\n *ngIf=\"error$ | async as error\"\n [drTooltip]=\"displayAsLabel ? null : error\"\n [drTooltipPosition]=\"errorTooltipPosition\"\n class=\"error-container\"\n [class.error-container--cursor-pointer]=\"!displayAsLabel\"\n [class.warning]=\"warning$ | async\">\n <i *ngIf=\"!noIcon\" class=\"dr-icon-status-error\"></i>\n <span>{{ error }}</span>\n</div>\n","import { Component, HostBinding, Input, Optional } from '@angular/core';\nimport { AbstractControl, FormGroupDirective, NgModel } from '@angular/forms';\nimport { asyncScheduler, BehaviorSubject, filter, map, observeOn, switchMap, withLatestFrom } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n})\nexport class DrErrorComponent {\n constructor(@Optional() private formGroupDirective: FormGroupDirective) {}\n\n @Input() set control(value: AbstractControl | NgModel) {\n if (value) {\n this.controlChange$.next(value);\n }\n }\n\n @Input() set controlName(value: string) {\n if (!value || typeof value !== 'string') return;\n\n if (!this.formGroupDirective) {\n throw new Error('You must provide a formGroupDirective to use this input');\n }\n\n this.control = this.formGroupDirective.control.get(value) as AbstractControl;\n }\n\n @Input() label = 'Field error';\n @Input() errorTooltipPosition = 'top';\n @Input() displayAsLabel = false;\n\n @Input() @HostBinding('class.no-icon') noIcon = false;\n\n errorString(control: AbstractControl | NgModel) {\n if (control.hasError('required')) {\n return 'Field is required!';\n }\n\n return control.errors?.errorString || null;\n }\n\n readonly controlChange$ = new BehaviorSubject<AbstractControl | NgModel>(null);\n readonly controlErrorStatus$ = this.controlChange$.pipe(\n filter(Boolean),\n switchMap((control) => control.statusChanges.pipe().pipe(map(() => control))),\n map((control) => control.status === 'INVALID' && !control.pristine),\n );\n readonly error$ = this.controlErrorStatus$.pipe(\n observeOn(asyncScheduler),\n withLatestFrom(this.controlChange$),\n map(([show, control]) => [show, this.displayAsLabel ? this.errorString(control) : this.label]),\n map(([show, label]) => (show ? label : null)),\n );\n readonly warning$ = this.controlChange$.pipe(map((control) => !!control.errors?.isWarning));\n}\n","<dr-codemirror\n #codeEditor\n [(ngModel)]=\"value\"\n [options]=\"codeMirrorOptions\"\n [class.mark-hints]=\"highlightHints\"\n [class.mirror-error]=\"control.status === 'INVALID' && !control.pristine\"\n (focusChange)=\"focusChanged($event)\"\n (codeMirrorLoaded)=\"afterCodeMirrorLoaded()\"></dr-codemirror>\n<span *ngIf=\"!isFocused && !innerValue\" class=\"codemirror-placeholder\">{{ placeholder }}</span>\n<dr-error [control]=\"control\" label=\"Formula error\"></dr-error>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n forwardRef,\n Injector,\n Input,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as CodeMirror from 'codemirror';\nimport { Hint, Hints } from 'codemirror';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { ICodeEditorHint, ICodeEditorMarker } from './models/code-editor-hint';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\nconst noop = () => {};\n\n@Component({\n selector: 'dr-code-editor',\n templateUrl: './dr-code-editor.component.html',\n styleUrls: ['./dr-code-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrCodeEditorComponent), multi: true }],\n})\nexport class DrCodeEditorComponent implements ControlValueAccessor {\n constructor(\n private cdr: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver,\n private injector: Injector,\n ) {}\n\n public innerValue: any = '';\n private onTouchedCallback: () => void = noop;\n private onChangeCallback: (_: any) => void = noop;\n private existMarkers: any[];\n private highlightedHints: any[];\n private parenthesesMarkers = [];\n private parenthesisColors: string[] = [\n '#2F3E48',\n '#1f68cc',\n '#9480CD',\n '#4D9944',\n '#B03E84',\n '#B64900',\n '#267392',\n '#326AC7',\n ];\n private parenthesesMap = {\n '}': '{',\n ']': '[',\n ')': '(',\n '{': '}',\n '[': ']',\n '(': ')',\n };\n private doc: any;\n private _hints: ICodeEditorHint[] = [];\n\n private hintRefsStack = [];\n\n public codeMirrorOptions: any = {\n lineWrapping: true,\n matchBrackets: true,\n autoRefresh: true,\n lineNumbers: false,\n mode: 'javascript',\n extraKeys: { 'Ctrl-Space': 'autocomplete' },\n autoCloseBrackets: true,\n hintOptions: {\n container: window.document.body,\n completeSingle: false,\n },\n };\n public isFocused: boolean;\n @Input() public markers: ICodeEditorMarker[];\n @Input() public highlightHints = false;\n\n @Input() set hints(values: ICodeEditorHint[]) {\n if (values?.length) {\n this._hints = values;\n this.registerHints(values);\n }\n }\n\n @Input() control: FormControl | any;\n @Input() placeholder: string = 'Start typing your formula here. We support (+,-,*,/).\\nFor Example: [Feb-22] - [Jan-22]';\n @ViewChild('codeEditor') private codeEditor: DrCodemirrorComponent;\n\n public get value(): string {\n return this.innerValue;\n }\n\n public set value(v: string) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n this.highlightCustomFunctionsInEditor();\n this.colorizeParentheses();\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n }\n }\n\n public writeValue(value: string): void {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n focusChanged(bool): void {\n this.isFocused = bool;\n }\n public afterCodeMirrorLoaded(): void {\n this.doc = this.codeEditor.codeMirror.getDoc();\n\n this.codeEditor.codeMirror.on('keyup', (cm, event) => {\n if (!this._hints.length) return;\n\n if (\n (!event.ctrlKey && event.keyCode >= 65 && event.keyCode <= 90) ||\n (event.keyCode >= 97 && event.keyCode <= 122) ||\n (event.keyCode >= 46 && event.keyCode <= 57) ||\n event.keyCode === 32\n ) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n });\n this.codeEditor.codeMirror.on('focus', (cm, event) => {\n if (!this._hints.length) return;\n\n setTimeout(() => {\n if (this.isFocused) {\n // @ts-ignore\n CodeMirror.commands.autocomplete(this.codeEditor.codeMirror);\n }\n }, 200);\n });\n\n setTimeout(() => {\n if (this.highlightHints) {\n this.updateHighlightHints();\n }\n });\n }\n\n private isClosedParenthesis(parenthesis: string): boolean {\n return ['}', ')', ']'].some((value: string) => value === parenthesis);\n }\n\n private colorizeParentheses(): void {\n const string = this.doc.getValue();\n const stack = [];\n const result = [];\n let line = 0;\n let ch = 0;\n this.parenthesesMarkers.forEach((marker) => marker.clear());\n this.parenthesesMarkers = [];\n\n for (let index = 0; index < string.length; index++) {\n const char = string.charAt(index);\n if (char === '\\n') {\n line++;\n ch = 0;\n continue;\n }\n if (this.parenthesesMap[char]) {\n const peek = stack ? stack[stack.length - 1] : null;\n\n if (!this.isClosedParenthesis(char)) {\n let colorIndex = peek?.colorIndex + 1 || 0;\n colorIndex = colorIndex > this.parenthesisColors.length - 1 ? 0 : colorIndex;\n\n stack.push({ value: char, color: this.parenthesisColors[colorIndex], colorIndex });\n result[index] = { value: char, color: this.parenthesisColors[colorIndex], colorIndex };\n }\n if (stack?.length && peek?.value === this.parenthesesMap[char]) {\n result[index] = { value: char, color: peek.color, colorIndex: peek.colorIndex };\n stack.pop();\n }\n }\n\n if (result[index]) {\n this.parenthesesMarkers.push(\n this.doc.markText(\n {\n line,\n ch,\n },\n {\n line,\n ch: ch + 1,\n },\n {\n css: `color: ${result[index].color}`,\n },\n ),\n );\n }\n ch++;\n }\n }\n\n private highlightCustomFunctionsInEditor(): void {\n const markers = this.markers || [];\n const existMarkers = this.existMarkers || [];\n\n existMarkers.forEach((m) => m.clear());\n this.doc.eachLine((line) => {\n markers.forEach((marker) => {\n const searchStr = marker.name + '\\\\(';\n const matches = line.text.matchAll(new RegExp(searchStr, 'g'));\n for (const match of matches) {\n existMarkers.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index,\n },\n {\n line: line.lineNo(),\n ch: match.index + marker.name.length,\n },\n {\n className: 'marker',\n title: marker.title,\n },\n ),\n );\n }\n });\n });\n }\n\n public pasteText(text: string, goCharLeft?: boolean): void {\n this.doc.replaceSelection(text);\n this.doc.cm.focus();\n if (goCharLeft) {\n this.doc.cm.execCommand('goCharLeft');\n }\n }\n\n private registerHints(dictionary: ICodeEditorHint[] = []) {\n const hintRegexp = /[\\w$]|[ &'\"#%$@]/;\n CodeMirror.registerHelper('hint', 'dictionaryHint', (editor) => {\n const cursor = editor.getCursor();\n const currentLine = editor.getLine(cursor.line);\n\n let start = cursor.ch;\n let end = cursor.ch;\n while (end < currentLine.length && hintRegexp.test(currentLine.charAt(end))) ++end;\n while (start && hintRegexp.test(currentLine.charAt(start - 1))) --start;\n\n const currentWord = (start !== end && currentLine.slice(start, end)) || '';\n\n const filteredDictionary =\n (!currentWord\n ? dictionary\n : dictionary.filter((item) => item.value.toLowerCase().includes(currentWord.toLowerCase()))\n ).sort() || [];\n\n const hintsList: Hint[] = filteredDictionary.map((item: ICodeEditorHint) => {\n const displayText = item.value;\n let text = item.value;\n\n if (currentLine[start - 1] !== '[') {\n text = '[' + text;\n }\n if (currentLine[end] !== ']') {\n text += ']';\n }\n\n return {\n text,\n displayText,\n render: (element: HTMLLIElement, data: Hints, current: Hint) => {\n const startIndex = current.displayText.toLowerCase().indexOf(currentWord.toLowerCase());\n const stringToReplace = current.displayText.slice(startIndex, startIndex + currentWord.length);\n const hintHTML =\n `${item.icon} ` + current.displayText.replace(stringToReplace, `<b>${stringToReplace}</b>`);\n\n const componentFactory = this.cfr.resolveComponentFactory(CodeEditorHintWrapperComponent);\n const componentRef = componentFactory.create(this.injector);\n componentRef.instance.content = hintHTML;\n componentRef.instance.tooltip = item.hint;\n componentRef.changeDetectorRef.detectChanges();\n element.appendChild(componentRef.location.nativeElement);\n\n this.hintRefsStack.push(componentRef);\n },\n };\n });\n\n return {\n list: hintsList,\n from: CodeMirror.Pos(cursor.line, start),\n to: CodeMirror.Pos(cursor.line, end),\n };\n });\n\n // @ts-ignore\n CodeMirror.commands.autocomplete = (cm) => {\n this.destroyHints();\n\n // @ts-ignore\n CodeMirror.showHint(cm, CodeMirror.hint.dictionaryHint);\n };\n }\n\n private destroyHints() {\n this.hintRefsStack.forEach((ref) => ref.destroy());\n this.hintRefsStack = [];\n }\n\n private updateHighlightHints() {\n const hints = this._hints || [];\n const highlightedHints = this.highlightedHints || [];\n\n highlightedHints.forEach((m) => m.clear());\n\n this.doc.eachLine((line) => {\n const matches = line.text.matchAll(/(?:\\[).+?(?=\\])/gm);\n for (const match of matches) {\n const hint = hints.find((h) => h.value === match[0].replace('[', ''));\n if (hint) {\n highlightedHints.push(\n this.doc.markText(\n {\n line: line.lineNo(),\n ch: match.index + 1,\n },\n {\n line: line.lineNo(),\n ch: match.index + 1 + hint.value.length,\n },\n {\n className: 'hint-variable',\n title: hint.value,\n },\n ),\n );\n }\n }\n });\n\n this.cdr.markForCheck();\n }\n}\n","import { ITag, ITagForServer, TagsConfigSubType, TagTypes } from '../../models/serverTags';\n\nexport enum Scenario {\n ACTUALS = 'Actuals',\n FORECAST = 'Forecast',\n BUDGET = 'Budget',\n NONE = 'None',\n}\n\nexport interface IScenarioTag extends ITag {\n scenarioData: IScenario;\n}\n\nexport interface IScenarioCommon {\n toggle: boolean;\n name: string;\n description: string;\n acceptableSubTags?: TagsConfigSubType[];\n turnOffDateTags?: boolean;\n}\n\nexport interface IScenario extends Omit<IScenarioCommon, 'name' | 'description'> {\n name?: string;\n description?: string;\n hidden?: boolean;\n}\n\nexport interface IScenarioTagUi extends IScenarioCommon {\n selectedTagSubType: TagsConfigSubType;\n type: TagTypes;\n subTags?: IScenarioSubTag[];\n}\n\nexport interface IScenarioSubTag {\n name: string;\n subType: TagsConfigSubType;\n hidden?: boolean;\n}\n\nexport type TScenarioTagConfigData = { [key in TagsConfigSubType]?: IScenario };\nexport type TScenarioTagData<T> = { [key in Scenario]?: T };\nexport type TScenarioDataChanged = { scenario: Scenario; tags?: ITagForServer[]; tagsConfig?: ITag[] };\n","<div class=\"scenario-tag-configuration\" *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ITag, ITagForServer, TConnectedTags, TDynamicTag } from '../../../models/serverTags';\nimport { reduce as _reduce, find as _find, merge as _merge } from 'lodash';\nimport { Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\n\n@Component({\n selector: 'dr-scenario-tag-configuration',\n templateUrl: './dr-scenario-tag-configuration.component.html',\n styleUrls: ['./dr-scenario-tag-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrScenarioTagConfigurationComponent implements OnChanges {\n @Input() public tagsConfig: ITag[];\n @Input() public set currentTags(tags: ITagForServer[]) {\n this._currentTags = tags;\n this.currentTagsMap = _reduce(\n tags,\n (acc, curr) => {\n const tagId = _find(this.tagsConfig, { name: curr.name })?.id;\n if (isNaN(tagId)) return acc;\n\n acc[tagId] = curr;\n return acc;\n },\n {},\n );\n }\n\n @Input() public scenario: Scenario;\n @Input() public connectedTags: TConnectedTags = {};\n @Input() public dynamicTagValues: TDynamicTag = {};\n\n @Input() public lockedDates: string[] | number[] = [];\n @Input() public fiscalYearStartsFrom: number;\n @Input() public fiscalYearBack: boolean;\n @Input() public isDynamicAddEnabled: boolean;\n\n @Output() public scenarioTagDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public currentTagsMap: { [tagId: number]: ITagForServer } = {};\n\n private _currentTags: ITagForServer[] = [];\n private dynamicTagsToSave: ITagForServer[] = [];\n private tagsToSave: ITagForServer[] = [];\n\n public get currentTags(): ITagForServer[] {\n return this._currentTags;\n }\n\n public ngOnChanges(simpleChanges: SimpleChanges): void {\n this.currentTags = this.currentTags;\n }\n\n public onTagChange($event: ITagForServer): void {\n const savedTag = _find(this.tagsToSave, { id: $event.id });\n\n if (savedTag) {\n _merge(savedTag, $event);\n } else {\n this.tagsToSave.push($event);\n }\n\n this.onScenarioTagDataChanged();\n }\n\n public onDynamicTagsChange($event: ITagForServer[]): void {\n this.dynamicTagsToSave = $event;\n this.onScenarioTagDataChanged();\n }\n\n public onScenarioTagDataChanged(): void {\n const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];\n this.scenarioTagDataChanged.emit({\n scenario: this.scenario,\n tagsConfig: this.tagsConfig,\n tags,\n });\n }\n}\n","import { TagsConfigSubType } from '../../models/serverTags';\nimport { Scenario, TScenarioTagConfigData, TScenarioTagData } from '../interfaces/scenario';\n\nexport const allDateTags = {\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.DAY]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.WEEK]: {\n name: 'Date',\n toggle: false,\n },\n};\n\nexport function getScenarioTagDataConfig(isMultipleDimension: boolean, isForecastMultipleDimension: boolean): TScenarioTagData<TScenarioTagConfigData> {\n return {\n [Scenario.ACTUALS]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.BUDGET]: {\n [TagsConfigSubType.BUDGET_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.YEAR],\n hidden: !isMultipleDimension,\n },\n [TagsConfigSubType.PLAN]: {\n toggle: false,\n turnOffDateTags: true,\n hidden: isMultipleDimension,\n },\n [TagsConfigSubType.YEAR]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.QUARTER]: {\n name: 'Date',\n toggle: false,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.FORECAST]: {\n [TagsConfigSubType.FORECAST_NEW]: {\n toggle: true,\n name: 'Date',\n },\n [TagsConfigSubType.FORECAST_CYCLE]: {\n toggle: true,\n acceptableSubTags: [TagsConfigSubType.FORECAST_NEW],\n hidden: !isForecastMultipleDimension,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: false,\n },\n },\n [Scenario.NONE]: {\n ...allDateTags,\n [TagsConfigSubType.MONTH]: {\n name: 'Date',\n toggle: true,\n },\n [TagsConfigSubType.FILE_STATUS]: {\n toggle: true,\n },\n },\n };\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../../models/serverTags';\nimport { IScenario, IScenarioSubTag, IScenarioTag, IScenarioTagUi, Scenario } from '../interfaces/scenario';\nimport {\n cloneDeep as _cloneDeep,\n filter as _filter,\n find as _find,\n forEach as _forEach,\n orderBy as _orderBy,\n indexOf as _indexOf,\n reduce as _reduce,\n some as _some,\n map as _map,\n includes as _includes,\n} from 'lodash';\nimport { getScenarioTagDataConfig } from '../consts/scenario-tags-config';\n\n@Injectable()\nexport class ScenarioService {\n private DEFAULT_FORECAST_DATE_TAG = 'Month';\n\n private wholeTagsConfig: ITag[];\n private currentTagsConfig: ITag[];\n private isMultipleDimension: boolean;\n private isForecastMultipleDimension: boolean;\n\n public get scenarios(): Scenario[] {\n return _orderBy(Object.values(Scenario), (scenario) => (scenario === Scenario.NONE ? 1 : 0));\n }\n\n private get areExistingTagsConfig(): boolean {\n return !!this.currentTagsConfig;\n }\n\n public initScenarioTags(wholeTagsConfig: ITag[], currentTagsConfig: ITag[], isMultipleDimension: boolean, isForecastMultipleDimension: boolean): void {\n if (!wholeTagsConfig?.length) return;\n\n this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);\n this.currentTagsConfig = currentTagsConfig;\n this.isMultipleDimension = isMultipleDimension;\n this.isForecastMultipleDimension = isForecastMultipleDimension;\n }\n\n public getTagsConfigByScenarioTags(scenarioTags: IScenarioTagUi[], tagsConfig: ITag[]): ITag[] {\n const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) =>\n _some(\n scenarioTags,\n (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type,\n ),\n );\n\n return this.sortScenarioTags(scenarioTagsConfig);\n }\n\n public getScenarioTagsByScenario(scenario: Scenario) {\n const scenarioTagsConfig: IScenarioTag[] = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);\n const scenarioTagsUi: IScenarioTagUi[] = [];\n\n _forEach(scenarioTagsConfig, (scenarioTag: IScenarioTag) => {\n const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;\n const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });\n\n const tag: IScenarioTagUi =\n tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateScenarioSubTags(tag, scenarioTag);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return;\n scenarioTagsUi.push(tag);\n });\n\n if (this.areExistingTagsConfig) {\n this.initExistingTagsConfig(scenario, scenarioTagsUi);\n }\n\n const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });\n if (isTagNotSupportingDates) {\n this.turnOffDateTag(scenarioTagsUi);\n }\n\n const tagWithSpecificDateTags: IScenarioTagUi = _find(\n scenarioTagsUi,\n (tag) => tag.toggle && !!tag.acceptableSubTags?.length,\n );\n if (tagWithSpecificDateTags) {\n this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);\n }\n\n return this.sortScenarioTags(scenarioTagsUi);\n }\n\n public tagNotSupportingDatesHandler<T extends IScenarioTagUi>(tag: T, tagNotSupportingDates: T, dateTag: T): void {\n if (!tagNotSupportingDates || !tag.toggle) return;\n\n if (tag.type === TagTypes.DATE) {\n tagNotSupportingDates.toggle = false;\n }\n\n if (tag === tagNotSupportingDates) {\n if (dateTag) {\n dateTag.toggle = false;\n }\n }\n }\n\n public tagAcceptableSubTagsHandler<T extends IScenarioTagUi>(tag: T, dateTag: T): void {\n if (!tag.acceptableSubTags?.length) return;\n\n if (!dateTag) return;\n\n dateTag.subTags = _map(dateTag.subTags, (subTag) => {\n subTag.hidden = tag.toggle && !_includes(tag.acceptableSubTags, subTag.subType);\n return subTag;\n });\n\n dateTag.selectedTagSubType = tag.acceptableSubTags[0];\n }\n\n public sortScenarioTags(scenarioTagsUi: any[]): any[] {\n return _orderBy(scenarioTagsUi, [(tag) => (tag.type === TagTypes.DATE ? 0 : 1), (tag) => tag.name === 'File Status']);\n }\n\n public static sortedSubTags(tag: IScenarioTagUi): IScenarioSubTag[] {\n const SUB_TAGS_ORDER = [\n TagsConfigSubType.DAY,\n TagsConfigSubType.WEEK,\n TagsConfigSubType.MONTH,\n TagsConfigSubType.QUARTER,\n TagsConfigSubType.YEAR,\n ];\n return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));\n }\n\n private initExistingTagsConfig(scenario: Scenario, scenarioTagsUi: IScenarioTagUi[]) {\n _forEach(this.currentTagsConfig, (tagConfig) => {\n const tagSubType = tagConfig?.options?.sub_type;\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {\n return;\n }\n\n const scenarioTagUi =\n tagConfig.type === TagTypes.DATE\n ? _find(scenarioTagsUi, { type: tagConfig.type })\n : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });\n\n if (scenarioTagUi) {\n scenarioTagUi.toggle = true;\n scenarioTagUi.selectedTagSubType = tagSubType;\n }\n });\n }\n\n private prepareScenarioTag(\n scenarioTagsConfig: IScenarioTag[],\n scenarioTag: IScenarioTag,\n scenario: Scenario,\n isDateTag: boolean,\n ): IScenarioTagUi {\n const toggleStatus = isDateTag\n ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)\n : scenarioTag.scenarioData.toggle;\n\n const selectedTagSubType = isDateTag\n ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)\n : scenarioTag.options.sub_type;\n\n const tag: IScenarioTagUi = {\n toggle: this.areExistingTagsConfig ? false : toggleStatus,\n name: scenarioTag.scenarioData.name || scenarioTag.name,\n description: scenarioTag.scenarioData.description || scenarioTag.description,\n type: scenarioTag.type,\n selectedTagSubType,\n };\n\n if (scenarioTag.scenarioData.turnOffDateTags) {\n tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;\n }\n\n if (scenarioTag.scenarioData.acceptableSubTags) {\n tag.acceptableSubTags = scenarioTag.scenarioData.acceptableSubTags;\n }\n\n return tag;\n }\n\n private updateScenarioSubTags(tag: IScenarioTagUi, scenarioTag: IScenarioTag): void {\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n const tagSubType = scenarioTag.options.sub_type;\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,\n });\n }\n\n private turnOffDateTag(scenarioTags: IScenarioTagUi[]): void {\n const dateTag = _find(scenarioTags, { type: TagTypes.DATE });\n\n if (!dateTag) return;\n dateTag.toggle = false;\n }\n\n private hideNotAvailableTags(tagWithSpecificDateTags: IScenarioTagUi, scenarioTags: IScenarioTagUi[]): void {\n const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;\n if (!subTags.length) return;\n\n _forEach(scenarioTags, (tag) => {\n if (!tag.acceptableSubTags?.length) return;\n if (tag !== tagWithSpecificDateTags) {\n tag.toggle = false;\n }\n });\n\n _forEach(subTags, (subTag) => {\n subTag.hidden = !tagWithSpecificDateTags.acceptableSubTags.includes(subTag.subType);\n });\n }\n\n private getScenarioSelectedDateTag(scenario: Scenario, dateTags: IScenarioTag[]): TagsConfigSubType {\n const monthSubType = _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options\n ?.sub_type;\n\n const scenarioSelectedDateTag = {\n [Scenario.ACTUALS]: () => monthSubType,\n [Scenario.BUDGET]: () =>\n _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,\n [Scenario.FORECAST]: () =>\n _find(dateTags, (tag: IScenarioTag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options\n ?.sub_type,\n [Scenario.NONE]: () => monthSubType,\n };\n\n if (!scenarioSelectedDateTag[scenario]) return;\n return scenarioSelectedDateTag[scenario]();\n }\n\n private getScenarioTagsConfig(scenario: Scenario, tagsConfig: ITag[]): IScenarioTag[] {\n return _reduce(\n tagsConfig,\n (acc: IScenarioTag[], tagConfig: ITag) => {\n const tagSubType = tagConfig?.options?.sub_type;\n\n const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension, this.isForecastMultipleDimension);\n const scenarioTagConfig: IScenario =\n scenarioTagDataConfig && scenarioTagDataConfig[scenario] ? scenarioTagDataConfig[scenario][tagSubType] : null;\n if (!scenarioTagConfig || scenarioTagConfig.hidden) return acc;\n\n const clonedTagConfig = _cloneDeep(tagConfig);\n const scenarioTag: IScenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };\n\n acc.push(scenarioTag);\n return acc;\n },\n [],\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ITag, TagsConfigSubType, TagTypes } from '../models/serverTags';\nimport { find as _find, reduce as _reduce, some as _some } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\n\n@Injectable()\nexport class TagsConstructorService {\n private readonly tagsNotSupportingDatesTag = [TagsConfigSubType.PLAN];\n private readonly tagsAcceptableSubTags = {\n [TagsConfigSubType.BUDGET_CYCLE]: [TagsConfigSubType.YEAR],\n };\n\n public buildTags(tagsConfigToDisplay: ITag[], selectedTagsConfig: ITag[]): IScenarioTagUi[] {\n return _reduce(\n tagsConfigToDisplay,\n (acc, tagConfig: ITag) => {\n const isTagWithSubTags = tagConfig.type === TagTypes.DATE && tagConfig.options.sub_type !== TagsConfigSubType.FORECAST_NEW;\n const tagWithSubTags = isTagWithSubTags && _find(acc, { type: tagConfig.type });\n\n const tag = tagWithSubTags || this.prepareTag(tagConfig, selectedTagsConfig, isTagWithSubTags);\n\n if (isTagWithSubTags) {\n this.updateSubTags(tag, tagConfig, selectedTagsConfig);\n tag.subTags = ScenarioService.sortedSubTags(tag);\n }\n\n if (tagWithSubTags) return acc;\n\n acc.push(tag);\n return acc;\n },\n [],\n );\n }\n\n private updateSubTags(tag: IScenarioTagUi, tagConfig: ITag, selectedTagsConfig: ITag[]): void {\n const tagSubType = tagConfig.options.sub_type;\n if (tagSubType === TagsConfigSubType.FORECAST_NEW) return;\n\n if (!tag.subTags) {\n tag.subTags = [];\n }\n\n tag.name = 'Date';\n\n const enabledTagSubType = _find(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === tagSubType)?.options\n ?.sub_type;\n tag.toggle = !!enabledTagSubType || tag.toggle;\n\n if (tag.toggle && enabledTagSubType) {\n tag.selectedTagSubType = tagSubType;\n }\n\n tag.subTags.push({\n subType: tagSubType,\n name: tagConfig.name,\n });\n }\n\n private prepareTag(tagConfig: ITag, selectedTagsConfig: ITag[], isTagWithSubTags: boolean): IScenarioTagUi {\n const selectedTagSubType = isTagWithSubTags ? TagsConfigSubType.MONTH : tagConfig.options.sub_type;\n const toggleStatus = _some(selectedTagsConfig, (_tagConfig) => _tagConfig.options.sub_type === selectedTagSubType);\n\n const tag: IScenarioTagUi = {\n toggle: toggleStatus,\n name: tagConfig.name,\n description: tagConfig.description,\n type: tagConfig.type,\n selectedTagSubType,\n };\n\n if (this.tagsNotSupportingDatesTag.includes(selectedTagSubType)) {\n tag.turnOffDateTags = true;\n }\n\n if (this.tagsAcceptableSubTags[selectedTagSubType]) {\n tag.acceptableSubTags = this.tagsAcceptableSubTags[selectedTagSubType];\n }\n\n return tag;\n }\n}\n","<div class=\"tags-constructor\">\n <p class=\"tags-constructor__title--extra tags-constructor__tags__title\">Tags</p>\n <div class=\"tags-constructor__tag\" *ngFor=\"let tag of currentTags\">\n <div class=\"tags-constructor__tag__header\">\n <p class=\"tags-constructor__title\">{{ tag.name }}</p>\n <dr-toggle [(ngModel)]=\"tag.toggle\" (ngModelChange)=\"onTagToggle(tag)\"></dr-toggle>\n </div>\n <div class=\"tags-constructor__tag__description\">\n <p class=\"tags-constructor__text\">{{ tag.description }}</p>\n </div>\n <div *ngIf=\"tag.toggle\" class=\"tags-constructor__tag__body\">\n <div *ngIf=\"tag.subTags?.length\" class=\"tags-constructor__sub-tag\">\n <dr-toggle-button\n [(ngModel)]=\"tag.selectedTagSubType\"\n bindHidden=\"hidden\"\n bindLabel=\"name\"\n bindValue=\"subType\"\n [items]=\"tag.subTags\"\n [mode]=\"toggleButtonMode.DOTTED\"\n (ngModelChange)=\"onSubTagChange(tag)\"></dr-toggle-button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi } from '../dr-scenario/interfaces/scenario';\nimport { ToggleButtonMode } from '../dr-inputs/dr-toggle-button/toggle-button-mode';\nimport { ITag } from '../models/serverTags';\nimport { reduce as _reduce, some as _some, filter as _filter, forEach as _forEach } from 'lodash';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@Component({\n selector: 'dr-tags-constructor',\n templateUrl: './dr-tags-constructor.component.html',\n styleUrls: ['./dr-tags-constructor.component.scss'],\n})\nexport class DrTagsConstructorComponent implements OnInit {\n public readonly toggleButtonMode = ToggleButtonMode;\n\n public get currentTags(): IScenarioTagUi[] {\n return this.scenarioTagsConfig || this.tagsUi;\n }\n\n public get isScenarioFlow(): boolean {\n return !!this.scenarioTagsConfig;\n }\n\n /*\n * Used only for scenario flow (dr-scenario-configuration tag)\n * (only this input necessary for scenario flow)\n * */\n @Input() scenarioTagsConfig: IScenarioTagUi[];\n\n /*\n * Used for display provided tagsConfig\n * (for scenario flow, use this input to get tagsConfig data on stateChange emit)\n * */\n @Input() tagsConfigToDisplay: ITag[] = [];\n\n /*\n * Used for toggle on provided tagsConfig\n * (not related to scenario flow)\n * */\n @Input() selectedTagsConfig: ITag[] = [];\n\n @Output() tagChange: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() tagToggle: EventEmitter<IScenarioTagUi | ITag> = new EventEmitter<IScenarioTagUi | ITag>();\n @Output() stateChange: EventEmitter<ITag[]> = new EventEmitter<ITag[]>();\n\n private tagsUi = [];\n\n private get tagsWithSubTags(): IScenarioTagUi[] {\n return _reduce(\n this.tagsUi,\n (acc, curr: IScenarioTagUi) => {\n if (curr?.subTags?.length) {\n acc.push(curr);\n }\n\n return acc;\n },\n [],\n );\n }\n\n private get tagsNotSupportingDateTag(): IScenarioTagUi[] {\n return _reduce(\n this.tagsUi,\n (acc, curr: IScenarioTagUi) => {\n if (curr?.turnOffDateTags) {\n acc.push(curr);\n }\n\n return acc;\n },\n [],\n );\n }\n\n constructor(\n private scenarioService: ScenarioService,\n private tagsConstructor: TagsConstructorService,\n ) {}\n\n public ngOnInit(): void {\n if (!this.isScenarioFlow) {\n this.buildTags();\n }\n }\n\n public onSubTagChange(tag: IScenarioTagUi): void {\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagChange.emit(tagToEmit);\n }\n\n public onTagToggle(tag: IScenarioTagUi): void {\n if (!this.isScenarioFlow) {\n this.updateTagsState(tag);\n }\n\n this.onStateChange();\n\n const tagToEmit: IScenarioTagUi | ITag = this.isScenarioFlow ? tag : this.getTagsConfig([tag])?.[0];\n this.tagToggle.emit(tagToEmit);\n }\n\n public onStateChange(): void {\n const tagsConfig = this.getTagsConfig(this.currentTags);\n this.stateChange.emit(tagsConfig);\n }\n\n private buildTags(): void {\n this.tagsUi = this.tagsConstructor.buildTags(this.tagsConfigToDisplay, this.selectedTagsConfig);\n }\n\n private getTagsConfig(currentTags: IScenarioTagUi[]): ITag[] {\n return _filter(this.tagsConfigToDisplay, (tagConfig) =>\n _some(currentTags, (tag) => tag.toggle && tag.selectedTagSubType === tagConfig.options.sub_type),\n );\n }\n\n private updateTagsState(tag: IScenarioTagUi): void {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) => this.scenarioService.tagAcceptableSubTagsHandler(tag, tagWithSubTag));\n\n _forEach(this.tagsNotSupportingDateTag, (tagNotSupportingDate) => {\n _forEach(this.tagsWithSubTags, (tagWithSubTag) =>\n this.scenarioService.tagNotSupportingDatesHandler(tag, tagNotSupportingDate, tagWithSubTag),\n );\n });\n }\n}\n","<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select\n [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor\n [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($any($event))\"></dr-tags-constructor>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { IScenarioTagUi, Scenario, TScenarioDataChanged } from '../../interfaces/scenario';\nimport { ScenarioService } from '../../services/scenario.service';\nimport { ITag, TagTypes } from '../../../models/serverTags';\nimport { find as _find } from 'lodash';\n\n@Component({\n selector: 'dr-scenario-configuration',\n templateUrl: './dr-scenario-configuration.component.html',\n styleUrls: ['./dr-scenario-configuration.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ScenarioService],\n})\nexport class DrScenarioConfigurationComponent implements OnInit {\n public scenarios: Scenario[];\n\n private _scenarioTags: IScenarioTagUi[] = [];\n private _selectedScenario: Scenario;\n private tagNotSupportingDates: IScenarioTagUi;\n\n @Input() public currentTagsConfig: ITag[];\n @Input() public wholeTagsConfig: ITag[] = [];\n @Input() public set selectedScenario(scenario: Scenario) {\n if (!Object.values(Scenario).includes(scenario)) {\n this._selectedScenario = Scenario.ACTUALS;\n return;\n }\n\n this._selectedScenario = scenario;\n }\n @Input() public isMultipleDimension: boolean = false;\n @Input() public isForecastMultipleDimension: boolean = false;\n\n @Output() public scenarioDataChanged: EventEmitter<TScenarioDataChanged> = new EventEmitter<TScenarioDataChanged>();\n\n public get selectedScenario(): Scenario {\n return this._selectedScenario || Scenario.ACTUALS;\n }\n\n public get scenarioTags(): IScenarioTagUi[] {\n return this._scenarioTags;\n }\n\n public set scenarioTags(tags: IScenarioTagUi[]) {\n this._scenarioTags = tags;\n this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });\n }\n\n public get dateTag(): IScenarioTagUi {\n return _find(this.scenarioTags, { type: TagTypes.DATE });\n }\n\n constructor(private scenarioService: ScenarioService) {}\n\n public ngOnInit(): void {\n this.scenarios = this.scenarioService.scenarios;\n this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);\n }\n\n public onScenarioChange(scenario: Scenario): void {\n this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);\n this.onScenarioDataChange();\n }\n\n public onScenarioTagToggle(tag: IScenarioTagUi): void {\n this.scenarioService.tagNotSupportingDatesHandler<IScenarioTagUi>(tag, this.tagNotSupportingDates, this.dateTag);\n this.scenarioService.tagAcceptableSubTagsHandler<IScenarioTagUi>(tag, this.dateTag);\n this.onScenarioDataChange();\n }\n\n public onScenarioDataChange(): void {\n this.scenarioDataChanged.emit({\n scenario: this.selectedScenario,\n tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),\n });\n }\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n get instance(): T {\n return this.componentRef.instance.componentRef.instance;\n }\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef, StaticProvider } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel<C = any> {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: Partial<C>;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n freezeToContainerSelector?: string;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n noPadding?: boolean;\n positionOffsetY?: number;\n positionOffsetX?: number;\n providers?: StaticProvider[];\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","<div class=\"dr-popover\" [class]=\"class\" #popoverContainer>\n <ng-container *ngIf=\"isContentTemplate\">\n <ng-container *ngTemplateOutlet=\"_contentAsTemplate; context: contentContext\"></ng-container>\n </ng-container>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [trigger('popover', POPUP_ANIMATION)],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n @Output() popoverOpened: EventEmitter<void> = new EventEmitter<void>();\n\n _contentAsType: Type<T>;\n _contentAsTemplate: TemplateRef<any>;\n @Input() set content(value: TemplateRef<any> | Type<T>) {\n this.isContentTemplate = value instanceof TemplateRef;\n if (this.isContentTemplate) {\n this._contentAsTemplate = value as TemplateRef<any>;\n } else {\n this._contentAsType = value as Type<T>;\n }\n }\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n @Input() freezeToContainerSelector: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost =\n this.hostRef instanceof ElementRef &&\n (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (\n !isTargetHost &&\n !isTargetInPopover &&\n !isTargetInDatepicker &&\n !isTargetInSelect &&\n !isTargetInDatepickerContent &&\n !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {}\n\n ngOnInit(): void {\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this._contentAsType);\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.popoverOpened.emit();\n this.repositionToNewContainerAndFreeze();\n this.cdr.detectChanges();\n }\n\n /**\n * Removing popover element from cdk-overlay and attach to provided container after element is positioned\n * is required for specific case of preserving popover at same position on document while scroll (not fixed)\n *\n * TODO: implement more neat, transparent and Angular way solution: i.e. create another service (or extend existiong one)\n * without attaching component to cdk Overlay and instead positioning it to element passed in directive input parameter\n */\n private repositionToNewContainerAndFreeze(): void {\n const newContainer = !!this.freezeToContainerSelector && document.querySelector(this.freezeToContainerSelector);\n if (newContainer) {\n // waiting until element is positioned on overlay\n setTimeout(() => {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (!element.closest('.cdk-overlay-container')) return;\n\n const position = element.getBoundingClientRect();\n const newContainerPosition = newContainer.getBoundingClientRect();\n\n element.style.position = 'absolute';\n element.style.top = `${newContainer.scrollTop + position.top - newContainerPosition.top}px`;\n element.style.left = `${newContainerPosition.left + position.left}px`;\n\n newContainer.appendChild(element);\n });\n }\n }\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension, IDrPopoverComponentModel, Point } from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {}\n\n open<T>(\n content: Type<T> | TemplateRef<unknown> | ComponentType<T>,\n popoverModel: IDrPopoverComponentModel<T>,\n ): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<unknown>,\n {\n contentContext,\n position,\n class: elementClass,\n manualClosing,\n hostRef,\n alignment,\n freezeToContainerSelector,\n overlayConfig,\n }: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>,\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(\n DrPopoverComponent,\n null,\n this.createInjector(popoverRef, overlayConfig.providers),\n );\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position])\n throw new Error(`DrPopover does not support the '${popoverModel?.position}' position!`);\n\n const position: any = { ...POPUP_POSITIONS[popoverModel.position] };\n const positionOffsetY = popoverModel.overlayConfig.positionOffsetY;\n const positionOffsetX = popoverModel.overlayConfig.positionOffsetX;\n\n if (positionOffsetY || positionOffsetX) {\n if (position.offsetY) {\n position.offsetY = position.offsetY < 0 ? positionOffsetY : positionOffsetY;\n position.offsetX = positionOffsetX;\n }\n if (position.offsetX) {\n position.offsetX = position.offsetX < 0 ? -positionOffsetX : positionOffsetX;\n position.offsetY = positionOffsetY;\n }\n }\n\n if (popoverModel.overlayConfig.noPadding) {\n position.offsetY = 0;\n position.offsetX = 0;\n }\n const config = { ...DEFAULT_CONFIG, ...(popoverModel.overlayConfig || {}) };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>, tokens: StaticProvider[]): Injector {\n const injectionTokens: StaticProvider[] = [...(tokens || []), { provide: DrPopoverRef, useValue: popoverRef }];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(\n popoverModel: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>,\n ): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver((entries) => {\n entries.forEach((host) =>\n overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }),\n );\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnDestroy, Output, TemplateRef, Type } from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, DrPopoverConfig, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]',\n exportAs: 'drPopoverInstance',\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n @Input('drPopover') content: TemplateRef<T> | Type<T>;\n\n @Input('drPopoverContext') contentContext: Partial<T> = {} as Partial<T>;\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: DrPopoverConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n @Input('drPopoverFreezeToContainerSelector') freezeToContainerSelector: string;\n\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n @Output('drPopoverOpened') popoverOpened = new EventEmitter<void>();\n\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(\n private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {}\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = (this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n freezeToContainerSelector: this.freezeToContainerSelector,\n }));\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n\n popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {\n this.popoverOpened.emit();\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","export function Debounce(ms: number): MethodDecorator {\n return function (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n let timeout = null;\n\n descriptor.value = function (...args: any[]) {\n clearTimeout(timeout);\n timeout = setTimeout(() => originalMethod.apply(this, args), ms);\n };\n\n return descriptor;\n };\n}\n","<div #menuContainer [class]=\"containerClass\" class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\" (mouseenter)=\"onMouseenter()\" (mouseleave)=\"onMouseleave()\" tabindex=\"-1\" role=\"listbox\">\n <ng-content select=\"dr-dropdown-item\"></ng-content>\n\n <dr-dropdown-item\n *ngFor=\"let act of list | drDropdownItemShowPipe; let index = index\"\n (mousedown)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"'left'\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n [drDropdown]=\"hasChildren(act) && act.children\"\n [drDropdownClass]=\"act.childOptions?.class\"\n [drDropdownInHover]=\"true\"\n [drDropdownPosition]=\"act.childOptions?.position\"\n drDropdownChild\n [disabled]=\"disabled(act)\"\n [selected]=\"selected(act)\"\n [divider]=\"act.separateLine\"\n [attr.data-analytics]=\"getDataAnalyticsTag(act, index)\"\n role=\"option\"\n tabindex=\"0\">\n <ng-container dropdownItemContent *ngIf=\"!act.templateRef\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\" class=\"dr-dropdown__icon\"></i>\n <span class=\"dr-dropdown__text\">{{ act.title }}</span>\n </ng-container>\n\n <ng-container dropdownItemActions *ngIf=\"!act.templateRef\">\n <i\n *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (mousedown)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"hasChildren(act)\" class=\"dr-icon-arrow-right\"></i>\n </ng-container>\n\n <ng-container\n *ngIf=\"act.templateRef\"\n dropdownItemContent\n [ngTemplateOutlet]=\"act.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: act }\">\n </ng-container>\n </dr-dropdown-item>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { IDropdown, IDropdownAction, IDropdownActionIcon, IDropdownItem } from '../models/dropdown';\nimport { DrPopoverRef } from '../models/popover';\nimport { first, merge, Subject, takeUntil } from 'rxjs';\nimport { DropdownInstanceRef, DropdownInstanceService } from './dr-dropdown.service';\nimport { Debounce } from '../utils/decorators';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDropdownComponent implements DropdownInstanceRef {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly popoverRef = inject(DrPopoverRef, { optional: true });\n private readonly dropdownInstanceService = inject(DropdownInstanceService, { optional: true });\n\n private readonly destroy$ = new Subject<void>();\n\n private _active = true;\n\n @ViewChild('menuContainer', { static: true })\n menuContainer: ElementRef<HTMLDivElement>;\n\n drDropdownInHover: boolean;\n private readonly drDropdownInHoverChange$ = new Subject<void>();\n list: IDropdownItem<unknown>[] = [];\n containerClass: string;\n wasHovered = false;\n asChild = false;\n dataAnalytics: string;\n\n @Input()\n set options(data: IDropdown<IDropdownItem<unknown>>) {\n if (data) {\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.dataAnalytics = data.dataAnalytics;\n this.list = data.list || [];\n this.list.forEach((item) => {\n if (item.children?.length) {\n item.childOptions = {\n class: item?.childOptions?.class || '',\n position: item?.childOptions?.position || 'left-top',\n };\n }\n });\n this.cdr.markForCheck();\n\n if (this.drDropdownInHover) {\n this.dropdownInstanceService\n .inactive(this)\n .pipe(first(), takeUntil(merge(this.destroy$, this.drDropdownInHoverChange$)))\n .subscribe(() => {\n this.popoverRef.close();\n });\n }\n }\n }\n\n @Output('action')\n onAction = new EventEmitter<IDropdownAction<unknown>>();\n\n constructor() {\n if (!this.dropdownInstanceService) return;\n\n this.dropdownInstanceService.register(this);\n inject(DestroyRef).onDestroy(() => {\n this.dropdownInstanceService.unregister(this);\n this.destroy$.next();\n this.destroy$.next();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes?.drDropdownInHover?.isFirstChange()) {\n this.drDropdownInHoverChange$.next();\n }\n }\n\n disabled(act: IDropdownItem<unknown>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;\n }\n\n action(act: IDropdownItem<unknown>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n const event = { event: act.event || act.title || 'default', data: act.data };\n this.onAction.emit(event);\n }\n }\n }\n\n onActionIconClick($event: MouseEvent, actionIcon: IDropdownActionIcon<unknown>, data: unknown) {\n $event.stopPropagation();\n actionIcon.action(data);\n }\n\n hasChildren(item: IDropdownItem<unknown>): boolean {\n return !!item.children?.length;\n }\n\n onMouseenter(): void {\n this.wasHovered = true;\n this._active = true;\n }\n\n @Debounce(200)\n onMouseleave(): void {\n this._active = false;\n }\n\n active(): boolean {\n return this._active;\n }\n\n getDataAnalyticsTag(act: IDropdownItem<unknown>, index: number): string {\n return act.dataAnalytics\n ? act.dataAnalytics\n : this.dataAnalytics\n ? this.dataAnalytics + '_' + (act.title?.replace(/ /g, '-') || index)\n : null;\n }\n}\n","import { DestroyRef, EventEmitter, inject, Injectable, Injector, StaticProvider } from '@angular/core';\nimport { BehaviorSubject, filter, interval, map, Subject, switchMap, takeUntil } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdown, IDropdownAction, IDropdownItem } from '../models/dropdown';\nimport { DrPopoverService } from '../dr-popover/dr-popover.service';\nimport { IDrPopoverComponentModel } from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrDropdownService {\n private readonly popoverService = inject(DrPopoverService);\n\n open({\n hostRef,\n options,\n position = 'left-top',\n asChild,\n providers,\n action$ = new EventEmitter(),\n }: Pick<IDrPopoverComponentModel, 'hostRef' | 'position'> & {\n options: IDropdown<IDropdownItem<unknown>>;\n asChild?: boolean;\n providers?: StaticProvider[];\n action$?: EventEmitter<IDropdownAction<unknown>>;\n }) {\n return this.popoverService.open(DrDropdownComponent, {\n hostRef,\n position,\n contentContext: {\n options,\n asChild,\n onAction: action$,\n },\n overlayConfig: {\n positionOffsetX: 2,\n positionOffsetY: asChild ? -8 : null,\n providers,\n },\n });\n }\n}\n\nexport interface DropdownInstanceRef {\n active(): boolean;\n}\n\nexport class DropdownInstanceService {\n private readonly instances$ = new BehaviorSubject<DropdownInstanceRef[]>([]);\n private get instances() {\n return this.instances$.getValue();\n }\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(injector: Injector) {\n injector.get(DestroyRef).onDestroy(() => {\n this.destroy$.next();\n this.destroy$.complete();\n });\n }\n\n register(ref: DropdownInstanceRef): void {\n this.instances.push(ref);\n this.instances$.next(this.instances);\n }\n\n unregister(ref: DropdownInstanceRef): void {\n this.instances.splice(this.instances.indexOf(ref), 1);\n this.instances$.next(this.instances);\n }\n\n getSequence(ref: DropdownInstanceRef): DropdownInstanceRef[] {\n return this.instances.slice(this.instances.indexOf(ref));\n }\n\n inactive(ref: DropdownInstanceRef) {\n return this.instances$.pipe(\n map(() => this.getSequence(ref)),\n filter((value) => !!value.length),\n switchMap((value) => interval(200).pipe(map(() => value))),\n filter((emissions) => emissions.every((value) => !value.active())),\n takeUntil(this.destroy$),\n );\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, inject, Injector, Input, OnDestroy, Output } from '@angular/core';\nimport { ElPosition, IDropdownAction, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService, DropdownInstanceService } from './dr-dropdown.service';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrPopoverRef } from '../models/popover';\n\n@Directive({\n selector: '[drDropdown]',\n providers: [\n {\n provide: DropdownInstanceService,\n useFactory: (injector: Injector) => {\n const service = injector.get(DropdownInstanceService, null, { skipSelf: true });\n return service ?? new DropdownInstanceService(injector);\n },\n deps: [Injector],\n },\n ],\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly service = inject(DrDropdownService);\n private readonly child = inject(DrDropdownChildDirective, { optional: true, self: true });\n private readonly dropdownInstanceService = inject(DropdownInstanceService);\n\n @Input({ required: true })\n drDropdown: IDropdownItem<T>[];\n @Input()\n drDropdownPosition: ElPosition = 'left-top';\n @Input()\n drDropdownClass: string;\n @Input()\n drDropdownInHover: boolean;\n @Input({ alias: 'data-analytics' })\n dataAnalytics: string;\n\n @Output()\n drDropdownAction = new EventEmitter<IDropdownAction<T>>();\n\n private ref: DrPopoverRef<DrDropdownComponent>;\n\n private readonly mouseleaveTimeout = 200;\n\n @HostListener('mouseenter')\n elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click')\n elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave')\n leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(() => {\n if (this.ref && !this.ref.instance.wasHovered) {\n this.close();\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup')\n documentClick() {\n this.close();\n }\n\n private openDropdown(): void {\n if (!this.drDropdown?.length) {\n return;\n }\n\n if (this.ref) {\n this.close();\n return;\n }\n\n this.ref = this.service.open({\n hostRef: this.elementRef,\n position: this.drDropdownPosition,\n asChild: !!this.child,\n providers: [{ provide: DropdownInstanceService, useValue: this.dropdownInstanceService }],\n action$: this.drDropdownAction,\n options: {\n drDropdownInHover: this.drDropdownInHover,\n position: this.drDropdownPosition,\n list: this.drDropdown,\n class: this.drDropdownClass,\n dataAnalytics: this.dataAnalytics,\n },\n });\n }\n\n private close(): void {\n if (this.ref) {\n this.ref.close();\n this.ref = null;\n }\n }\n\n public ngOnDestroy(): void {\n this.close();\n }\n}\n\n@Directive({\n selector: '[drDropdownChild]',\n})\nexport class DrDropdownChildDirective {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-dropdown-item',\n templateUrl: './dr-dropdown-item.component.html',\n styleUrls: ['./dr-dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrDropdownItemComponent {\n @Input()\n selected: boolean;\n\n @Input()\n disabled: boolean;\n\n @Input()\n divider: boolean;\n}\n","<div class=\"dr-dropdown-item\" [class.item-disabled]=\"disabled\" [class.item-selected]=\"selected\" [class.divider]=\"divider\">\n <span class=\"dr-dropdown-text\">\n <ng-content select=\"[dropdownItemContent]\"></ng-content>\n </span>\n <div class=\"dr-dropdown-actions\">\n <ng-content select=\"[dropdownItemActions]\"></ng-content>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe',\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter((item) => (item.show ? item.show(item.data) : true));\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n})\nexport class DrTabComponent implements OnInit {\n @Input() id: number;\n @Input() label: string;\n @Input() icon: string;\n @Input() disabled: boolean;\n @Input() tooltip: string;\n @Input() customLabelTemplate: TemplateRef<any>;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","<mat-tab-group\n disableRipple\n [ngClass]=\"theme\"\n [selectedIndex]=\"_selectedIndex\"\n (selectedIndexChange)=\"selectedIndexChange($event)\"\n [class.with-radio]=\"withRadio\"\n [class.vertical]=\"vertical\"\n [class.no-tab-labels-padding]=\"noTabLabelsPadding\"\n [class.no-label-padding]=\"noLabelPadding\"\n [class.no-body-padding]=\"noBodyPadding\"\n [class.no-tabs]=\"hideTabs\"\n [class.no-header-border]=\"noHeaderBorder\"\n [class.no-label-borders]=\"noLabelBorders\"\n [class.no-fixed-tab-height]=\"noFixedTabHeight\"\n [animationDuration]=\"disableAnimation || vertical || _disableAnimationTemp ? '0ms' : '500ms'\">\n <mat-tab *ngFor=\"let tab of tabsContentList; let index = index\" label=\"{{ tab.label }}\" [disabled]=\"tab.disabled\">\n <ng-container *ngIf=\"!tab.customLabelTemplate; else customLabel\">\n <ng-container *ngIf=\"withRadio\">\n <ng-template mat-tab-label>\n <dr-radio-button [value]=\"index\" [(ngModel)]=\"_selectedIndex\"> </dr-radio-button>\n {{ tab.label }}\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"tab.tooltip && !withRadio && !withIcon\">\n <ng-template mat-tab-label>\n <label class=\"cursor-pointer\" [drTooltip]=\"tab.tooltip\">{{ tab.label }}</label>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"withIcon\">\n <ng-template mat-tab-label>\n <span class=\"icon-tab__wrapper\">\n <i [ngClass]=\"tab.icon\" class=\"cursor-pointer\"></i>\n </span>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #customLabel>\n <ng-template mat-tab-label>\n <ng-container *ngTemplateOutlet=\"tab.customLabelTemplate\"></ng-container>\n </ng-template>\n </ng-template>\n <ng-container *ngTemplateOutlet=\"tab.contentTemplate\"></ng-container>\n </mat-tab>\n</mat-tab-group>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\nimport { isNil } from 'lodash';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent implements AfterViewInit {\n _disableAnimationTemp = true;\n _selectedIndex = 0;\n _selectedIndexById = undefined;\n\n @Input() theme: string = 'primary';\n @Input() disableAnimation = false;\n\n @Input() set selectedTab(value) {\n this._selectedIndex = value || 0;\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (!this.disableAnimation && this._selectedIndex) {\n this._disableAnimationTemp = true;\n setTimeout(() => {\n this._disableAnimationTemp = false;\n });\n }\n }\n\n @Input() set selectedTabId(value: number) {\n this._selectedIndexById = value || 0;\n this._selectedIndex = this.getTabIndexById(this._selectedIndexById);\n\n /**\n * Hack to disable animation calculation in case the pre-selected tab is not at index 0.\n * Otherwise, the animation of redirecting to the pre-selected tab will conflict\n * with the animation of the tab at index 0.\n */\n if (!this.disableAnimation && this._selectedIndexById) {\n this._disableAnimationTemp = true;\n setTimeout(() => {\n this._disableAnimationTemp = false;\n });\n }\n }\n\n @Input() withRadio: boolean;\n @Input() withIcon: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Input() hideTabs = false;\n @Input() noHeaderBorder = false;\n @Input() noLabelBorders = false;\n @Input() noTabLabelsPadding = false;\n @Input() noLabelPadding = false;\n @Input() noFixedTabHeight = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() selectedTabIdChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n const selectedTabIdx = this.getTabIndexById(this._selectedIndexById);\n if (~selectedTabIdx && !isNil(this._selectedIndexById)) {\n this._selectedIndex = selectedTabIdx;\n }\n }\n\n selectedIndexChange($event) {\n this._selectedIndex = $event;\n this.selectedTabChange.emit($event);\n\n if (this.tabsContentList) {\n const tabId = this.tabsContentList.get($event).id;\n this.selectedTabIdChange.emit(tabId);\n }\n }\n\n private getTabIndexById(tabId: number): number {\n if (!this.tabsContentList) return 0;\n\n const currentTabIdx = this.tabsContentList.reduce((acc, drTab, idx) => {\n if (drTab.id === tabId) {\n acc = idx;\n }\n\n return acc;\n }, -1);\n\n return ~currentTabIdx ? currentTabIdx : 0;\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport type TDrAccordionTheme = 'regular' | 'borderless';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n @Input()\n @HostBinding('class')\n theme: TDrAccordionTheme = 'regular';\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(\n @Host() public accordion: DrAccordionComponent,\n private cd: ChangeDetectorRef,\n ) {}\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe((collapsed) => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","<i\n *ngIf=\"icon\"\n [class]=\"'dr-accordion-item-header-icon ' + icon\"\n [class.dr-accordion-item-header-icon--additional-padding]=\"chevronPosition === 'left'\"></i>\n<i\n [class]=\"chevronIconClass\"\n [@expansionIndicator]=\"{ value: state, params: { rotationDegree: chevronRotationDegree } }\"\n (click)=\"toggleOnChevronClick && accordionItem.toggle()\"\n *ngIf=\"!disabled\"></i>\n<ng-content select=\"dr-accordion-item-title\"></ng-content>\n<ng-content select=\"dr-accordion-item-description\"></ng-content>\n<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { TDrAccordionTheme } from './accordion.component';\n\nexport type TDrAccordionChevronPosition = 'right' | 'left';\nexport type TDrAccordionChevronOrientation = 'vertical' | 'horizontal';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n templateUrl: './accordion-item-header.component.html',\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate({{ rotationDegree }}deg)',\n }),\n { params: { rotationDegree: '180' } },\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @Input() chevronOrientation: TDrAccordionChevronOrientation = 'vertical';\n @Input() chevronPosition: TDrAccordionChevronPosition = 'right';\n @Input() icon: string;\n @Input() toggleOnChevronClick = false;\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostBinding('class')\n private theme: TDrAccordionTheme;\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n if (this.toggleOnChevronClick) return;\n\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n public chevronIconClass: string;\n public chevronRotationDegree: number;\n\n constructor(\n @Host() public accordionItem: DrAccordionItemComponent,\n private cd: ChangeDetectorRef,\n ) {\n this.theme = accordionItem?.accordion?.theme || 'regular';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n this.chevronIconClass = this.getChevronIconClass();\n this.chevronRotationDegree = this.chevronOrientation === 'vertical' ? 180 : 90;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getChevronIconClass(): string {\n return (\n 'expansion-indicator ' +\n (this.chevronOrientation === 'vertical' ? 'dr-icon-arrow-down' : 'dr-icon-arrow-right') +\n ` expansion-indicator--${this.chevronPosition}`\n );\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(\n @Host() private accordionItem: DrAccordionItemComponent,\n private cd: ChangeDetectorRef,\n ) {}\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {}\n}\n","<div class=\"dr-layout\">\n <ng-content select=\"dr-layout-header\"></ng-content>\n <div class=\"dr-layout__container\">\n <div class=\"content\">\n <div class=\"columns\">\n <ng-content select=\"dr-layout-body\"></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {}\n}\n","<div class=\"details\">\n <div class=\"details__header\" (click)=\"collapse = !collapse\">\n <i [class.dr-icon-arrow-right]=\"collapse\" [class.dr-icon-arrow-down]=\"!collapse\"> </i>\n {{ title }}\n </div>\n <ul class=\"details__list\" [@expansionIndicatorList]=\"{ value: state }\">\n <li *ngFor=\"let item of list\">{{ item }}</li>\n </ul>\n</div>\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-details-list',\n templateUrl: './dr-details-list.component.html',\n styleUrls: ['./dr-details-list.component.scss'],\n animations: [\n trigger('expansionIndicatorList', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n})\nexport class DrDetailsListComponent implements OnDestroy {\n private destroy$ = new Subject<void>();\n public list: string[] = [];\n\n @Input() title = 'Show details';\n @Input() set items(val: string[] | Observable<string[]>) {\n if (!val) {\n return;\n }\n\n if (Array.isArray(val)) {\n this.list = val;\n } else {\n val.pipe(takeUntil(this.destroy$)).subscribe((res: string[]) => {\n this.list = res;\n });\n }\n }\n @Input() collapse = true;\n\n get state(): string {\n if (this.collapse) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor() {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","<div class=\"dialog-wrapper\" [class.dialog-wrapper--confirmation-no-title]=\"dialogData.theme?.isConfirmation && !dialogData.title\">\n <i class=\"dr-icon-exit\" data-test=\"close_btn\" (click)=\"closeDialog()\" *ngIf=\"!dialogData?.hideCloseBtn\"></i>\n\n <div header class=\"dialog-wrapper__header\" *ngIf=\"dialogData.title\">\n <h1 class=\"dialog-wrapper__header__title\" data-test=\"dialogTitle\">{{ dialogData.title }}</h1>\n <h1 class=\"dialog-wrapper__header__subtitle\" data-test=\"dialogSubtitle\" *ngIf=\"dialogData.subtitle\">\n {{ dialogData.subtitle }}\n </h1>\n </div>\n <div\n class=\"dialog-wrapper__content\"\n [class.dialog-wrapper__content--no-padding]=\"dialogData.theme?.contentNoPadding\"\n [ngClass]=\"{ 'flex-position': dialogData.contentIcon?.class && !childComponent }\">\n <span *ngIf=\"dialogData.contentIcon?.class\" class=\"dialog-wrapper__content__icon\">\n <i [ngClass]=\"dialogData.contentIcon.class\" [style.color]=\"dialogData.contentIcon?.color || 'inherit'\"></i>\n </span>\n <span class=\"dialog-content__wrapper\" [innerHTML]=\"dialogData.content\"></span>\n <span #content class=\"dialog-wrapper__content__anchor\"> </span>\n </div>\n <dr-details-list\n *ngIf=\"dialogData.details\"\n [title]=\"dialogData.details.title\"\n [items]=\"dialogData.details.items\"\n [collapse]=\"dialogData.details.collapse\">\n </dr-details-list>\n <div footer class=\"dialog-wrapper__footer\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <div class=\"dialog-wrapper__footer__buttons\">\n <span\n *ngIf=\"dialogData.customButton\"\n class=\"dialog-wrapper__footer__button-wrapper dialog-wrapper__footer__button-wrapper--custom\"\n [drTooltip]=\"dialogData.customButton.isDisabled && dialogData.tooltips?.customDisabled\">\n <dr-button\n (click)=\"onDecline()\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n [isLoading]=\"isLoading\"\n data-test=\"declineBtn\"\n [disabled]=\"dialogData.customButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.custom\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.cancelButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.cancelButton.isDisabled && dialogData.tooltips?.cancelDisabled\">\n <dr-button\n (click)=\"closeDialog()\"\n [theme]=\"dialogData.cancelButton?.theme || 'secondary'\"\n data-test=\"closeBtn\"\n [disabled]=\"dialogData.cancelButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.cancel\"\n >{{ dialogData.cancelButton.label }}</dr-button\n >\n </span>\n <span\n *ngIf=\"dialogData.acceptButton\"\n class=\"dialog-wrapper__footer__button-wrapper\"\n [drTooltip]=\"dialogData.acceptButton.isDisabled && dialogData.tooltips?.acceptDisabled\">\n <dr-button\n (click)=\"onAcceptDialog()\"\n [theme]=\"dialogData.acceptButton?.theme || 'primary'\"\n [isLoading]=\"isLoading\"\n data-test=\"acceptBtn\"\n [disabled]=\"dialogData.acceptButton.isDisabled\"\n [drTooltip]=\"dialogData.tooltips?.accept\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </span>\n </div>\n </div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class')\n get elementClass(): SizeModal {\n return this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n }\n\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(\n public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {}\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(\n this.dialogData.child,\n );\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n enableAcceptButton() {\n this.dialogData.acceptButton.isDisabled = false;\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData\n .confirmFn()\n .pipe(\n takeUntil(this.destroy$),\n catchError((error) => {\n this.saving$.next(false);\n return throwError(() => error);\n }),\n )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog';\nimport { ButtonType } from '../../dr-inputs/button/button.component';\n\ntype DialogConfig = Omit<MatDialogConfig, 'data'>;\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> extends DialogConfig {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n collapse?: boolean;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n };\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n details?: {\n title?: string;\n items?: string[] | Observable<string[]>;\n };\n theme?: {\n themeSize?: SizeModal;\n };\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n headerIconClass?: string;\n formWrapperClass?: string;\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: TDialogFieldType;\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n datePickerFormat?: TimeframeOption;\n formGroupClass?: string;\n}\n\nexport type SizeModal =\n | 'small-modal'\n | 'small-modal-max-height'\n | 'medium-small-modal'\n | 'medium-modal'\n | 'medium-modal-max-height'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal'\n | 'xl-medium-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n isDisabled?: boolean;\n loading?: any;\n theme?: ButtonType;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n SMALL_MAX_HEIGHT = 'small-modal-max-height',\n MEDIUM = 'medium-modal',\n MEDIUM_SMALL = 'medium-small-modal',\n MEDIUM_MAX_HEIGHT = 'medium-modal-max-height',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n X_MEDIUM = 'xl-medium-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n DATE_PICKER = 'date_picker',\n CHECKBOX = 'checkbox',\n}\n\nexport type TDialogFieldType = DIALOG_FIELD_TYPE;\n","<div header class=\"header-dialog\">\n <h1 class=\"title-dialog\" data-test=\"modalTitle\">\n <i\n *ngIf=\"dialogData.headerIconClass\"\n (click)=\"closeDialog()\"\n class=\"title-dialog__icon\"\n [class]=\"dialogData.headerIconClass\"\n data-test=\"dialogTitleIcon\"></i>\n <span class=\"title-dialog__text\">{{ dialogData.title }}</span>\n </h1>\n <i *ngIf=\"!dialogData.hideCloseBtn\" (click)=\"closeDialog()\" class=\"dr-icon-exit icon-close\" data-test=\"xBtn\"></i>\n</div>\n<div *ngIf=\"dialogData.content\" class=\"content-dialog\">\n <ng-container>{{ dialogData.content }}</ng-container>\n <span #content class=\"content-anchor\"></span>\n</div>\n<form *ngIf=\"dialogData.fields\" [formGroup]=\"form\" class=\"dr-smart-from\">\n <div [class]=\"dialogData.formWrapperClass || 'dr-smart-form_wrapper'\">\n <div\n *ngFor=\"let field of dialogData.fields\"\n class=\"dr-smart-form_group\"\n [class]=\"field.formGroupClass\"\n [ngStyle]=\"{ display: field.isLabelFullWidth ? 'block' : 'flex' }\">\n <label\n *ngIf=\"field.label && field.type !== dialogFieldType.CHECKBOX\"\n [ngClass]=\"field.isLabelFullWidth ? 'col-md-12 mb-2' : 'col-md-2'\"\n class=\"label p-0 d-flex align-items-center\"\n >{{ field.label }}</label\n >\n <div\n class=\"input-group p-0\"\n [ngClass]=\"{\n 'col-md-10': field.label && !field.isLabelFullWidth,\n 'col-md-12': !field.label || field.isLabelFullWidth\n }\">\n <dr-select\n *ngIf=\"field.type === dialogFieldType.SELECT\"\n [searchable]=\"dialogData.searchable\"\n [clearable]=\"dialogData.clearable\"\n [formControlName]=\"field.name\"\n [bindLabel]=\"field.bindLabel || null\"\n [bindValue]=\"field.bindValue || null\"\n [selectedItem]=\"field.default\"\n [items]=\"field.items || (field.items$ | async)\"\n [loading]=\"fieldsItemsLoading[field.name] | async\"\n [required]=\"true\"\n [placeholder]=\"field.placeholder\">\n <ng-template *ngIf=\"dialogData?.footerTemplateData\" #optionFooterTemplate let-item=\"item\" let-close=\"close\">\n <button (click)=\"footerAction(); close()\" class=\"dr-select-footer__btn\">\n <i *ngIf=\"dialogData.footerTemplateData.icon\" class=\"{{ dialogData.footerTemplateData.icon }}\"></i>\n {{ dialogData.footerTemplateData.label }}\n </button>\n </ng-template>\n </dr-select>\n <dr-input\n *ngIf=\"field.type === dialogFieldType.INPUT\"\n data-test=\"modalInput\"\n class=\"form-control\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"></dr-input>\n <dr-date-picker\n *ngIf=\"field.type === dialogFieldType.DATE_PICKER\"\n [formControlName]=\"field.name\"\n [format]=\"field.datePickerFormat\"\n [placeholder]=\"field.placeholder\"></dr-date-picker>\n <dr-checkbox *ngIf=\"field.type === dialogFieldType.CHECKBOX\" [formControlName]=\"field.name\">\n {{ field.label }}\n </dr-checkbox>\n <label\n class=\"form-field-error-alert\"\n *ngIf=\"form.invalid && form.controls[field.name]?.dirty && form.controls[field.name]?.errors\">\n {{ form.controls[field.name].errors.errorString }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"dialogData.errorMessage && !form.pristine && form.invalid\">\n {{ dialogData.errorMessage }}\n </label>\n <label class=\"form-error-alert\" *ngIf=\"form.valid && showServerErrorMessage && dialogData.serverErrorMessage\">\n {{ dialogData.serverErrorMessage }}\n </label>\n </div>\n </div>\n </div>\n</form>\n\n<div footer class=\"footer-dialog\">\n <div class=\"buttons-wrapper\" *ngIf=\"dialogData.cancelButton || dialogData.acceptButton\">\n <dr-button\n (click)=\"onDecline()\"\n *ngIf=\"dialogData.customButton\"\n [theme]=\"dialogData.customButton?.theme || 'secondary'\"\n class=\"buttons-wrapper--custom-btn\"\n data-test=\"declineBtn\"\n >{{ dialogData.customButton.label }}</dr-button\n >\n <dr-button *ngIf=\"dialogData.cancelButton\" data-test=\"modalCloseBtn\" (click)=\"closeDialog()\" [theme]=\"'secondary'\">{{\n dialogData.cancelButton.label\n }}</dr-button>\n <dr-button\n *ngIf=\"dialogData.acceptButton\"\n data-test=\"modalAddBtn\"\n (click)=\"onAccept()\"\n [theme]=\"'primary'\"\n [isLoading]=\"isLoading\"\n [disabled]=\"form.invalid\"\n >{{ dialogData.acceptButton.label }}</dr-button\n >\n </div>\n</div>\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { DataProp, DIALOG_FIELD_TYPE } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject, throwError } from 'rxjs';\nimport { catchError, finalize, takeUntil, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n readonly dialogFieldType = DIALOG_FIELD_TYPE;\n readonly destroy$ = new Subject<void>();\n\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n fieldsItemsLoading: Record<string, BehaviorSubject<boolean>> = {};\n\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {}\n\n ngOnInit(): void {\n if (!this.dialogData.fields) this.dialogData.fields = [];\n\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n if (currentValue.items$) {\n this.fieldsItemsLoading[currentValue.name] = new BehaviorSubject<boolean>(true);\n currentValue.items$ = (currentValue.items$ as any).pipe(\n catchError((err) => {\n this.fieldsItemsLoading[currentValue.name].next(false);\n return throwError(() => err);\n }),\n tap(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n finalize(() => this.fieldsItemsLoading[currentValue.name].next(false)),\n );\n }\n\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(\n currentValue.default || null,\n currentValue.validators || [],\n );\n return Object.assign(accumulator, currentFormControl);\n }, {}),\n );\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData\n .confirmFn(this.form.value)\n .pipe(\n finalize(() => {\n this.isLoading = false;\n this.saving$.next(false);\n }),\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n this.saving$.next(false);\n return throwError(() => err);\n }),\n )\n .subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(private dialog: MatDialog) {}\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = DialogWrapperComponent as any;\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n /**\n * @deprecated\n */\n enableAcceptButton(): void {\n this.wrapperComponent.componentInstance.enableAcceptButton();\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(\n componentType: ComponentType<WrapperType>,\n dialogData: DialogData<D>,\n ): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TreeviewSelection } from './treeview-item';\n\n@Injectable()\nexport abstract class TreeviewI18n {\n abstract getText(selection: TreeviewSelection): string;\n abstract getAllCheckboxText(): string;\n abstract getFilterPlaceholder(): string;\n abstract getFilterNoItemsFoundText(): string;\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\n}\n\n@Injectable()\nexport class DefaultTreeviewI18n extends TreeviewI18n {\n getText(selection: TreeviewSelection): string {\n if (selection.uncheckedItems.length === 0) {\n if (selection.checkedItems.length > 0) {\n return this.getAllCheckboxText();\n } else {\n return '';\n }\n }\n\n switch (selection.checkedItems.length) {\n case 0:\n return 'Select options';\n case 1:\n return selection.checkedItems[0].text;\n default:\n return `${selection.checkedItems.length} options selected`;\n }\n }\n\n getAllCheckboxText(): string {\n return 'All';\n }\n\n getFilterPlaceholder(): string {\n return 'Filter';\n }\n\n getFilterNoItemsFoundText(): string {\n return 'No items found';\n }\n\n getTooltipCollapseExpandText(isCollapse: boolean): string {\n return isCollapse ? 'Expand' : 'Collapse';\n }\n}\n","import { concat, isNil, pull } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\nexport const TreeviewHelper = {\n findItem,\n findItemInList,\n findParent,\n removeItem,\n concatSelection,\n};\n\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\n if (isNil(root)) {\n return undefined;\n }\n\n if (root.value === value) {\n return root;\n }\n\n if (root.children) {\n for (const child of root.children) {\n const foundItem = findItem(child, value);\n if (foundItem) {\n return foundItem;\n }\n }\n }\n\n return undefined;\n}\n\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\n if (isNil(list)) {\n return undefined;\n }\n\n for (const item of list) {\n const foundItem = findItem(item, value);\n if (foundItem) {\n return foundItem;\n }\n }\n\n return undefined;\n}\n\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\n if (isNil(root) || isNil(root.children)) {\n return undefined;\n }\n\n for (const child of root.children) {\n if (child === item) {\n return root;\n } else {\n const parent = findParent(child, item);\n if (parent) {\n return parent;\n }\n }\n }\n\n return undefined;\n}\n\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\n const parent = findParent(root, item);\n if (parent) {\n pull(parent.children, item);\n if (parent.children.length === 0) {\n parent.children = undefined;\n } else {\n parent.correctChecked();\n }\n return true;\n }\n\n return false;\n}\n\nfunction concatSelection(\n items: TreeviewItem[],\n checked: TreeviewItem[],\n unchecked: TreeviewItem[],\n): { [k: string]: TreeviewItem[] } {\n let checkedItems = [...checked];\n let uncheckedItems = [...unchecked];\n for (const item of items) {\n const selection = item.getSelection();\n checkedItems = concat(checkedItems, selection.checkedItems);\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\n }\n return {\n checked: checkedItems,\n unchecked: uncheckedItems,\n };\n}\n","import { isBoolean, isNil, isString } from 'lodash';\nimport { TreeviewHelper } from '../helpers/treeview-helper';\n\nexport interface TreeviewSelection {\n checkedItems: TreeviewItem[];\n uncheckedItems: TreeviewItem[];\n}\n\nexport interface TreeItem {\n text: string;\n value: any;\n disabled?: boolean;\n checked?: boolean;\n collapsed?: boolean;\n children?: TreeItem[];\n}\n\nexport class TreeviewItem {\n private internalDisabled = false;\n internalChecked = true;\n private internalCollapsed = false;\n private internalChildren: TreeviewItem[];\n text: string;\n value: any;\n hidden?: boolean;\n\n constructor(item: TreeItem, autoCorrectChecked = false) {\n if (isNil(item)) {\n throw new Error('Item must be defined');\n }\n if (isString(item.text)) {\n this.text = item.text;\n } else {\n throw new Error('A text of item must be string object');\n }\n this.value = item.value;\n if (isBoolean(item.checked)) {\n this.checked = item.checked;\n }\n if (isBoolean(item.collapsed)) {\n this.collapsed = item.collapsed;\n }\n if (isBoolean(item.disabled)) {\n this.disabled = item.disabled;\n }\n if (!isNil(item.children) && item.children.length > 0) {\n this.children = item.children.map((child) => {\n if (this.disabled === true) {\n child.disabled = true;\n }\n\n return new TreeviewItem(child);\n });\n }\n\n if (autoCorrectChecked) {\n this.correctChecked();\n }\n }\n\n get checked(): boolean {\n return this.internalChecked;\n }\n\n set checked(value: boolean) {\n if (!this.internalDisabled) {\n if (this.internalChecked !== value) {\n this.internalChecked = value;\n }\n }\n }\n\n get indeterminate(): boolean {\n return this.checked === undefined;\n }\n\n setCheckedRecursive(value: boolean): void {\n if (!this.internalDisabled) {\n this.internalChecked = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => child.setCheckedRecursive(value));\n }\n }\n }\n\n get disabled(): boolean {\n return this.internalDisabled;\n }\n\n set disabled(value: boolean) {\n if (this.internalDisabled !== value) {\n this.internalDisabled = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => (child.disabled = value));\n }\n }\n }\n\n get collapsed(): boolean {\n return this.internalCollapsed;\n }\n\n set collapsed(value: boolean) {\n if (this.internalCollapsed !== value) {\n this.internalCollapsed = value;\n }\n }\n\n setCollapsedRecursive(value: boolean): void {\n this.internalCollapsed = value;\n if (!isNil(this.internalChildren)) {\n this.internalChildren.forEach((child) => child.setCollapsedRecursive(value));\n }\n }\n\n get children(): TreeviewItem[] {\n return this.internalChildren;\n }\n\n set children(value: TreeviewItem[]) {\n if (this.internalChildren !== value) {\n if (!isNil(value) && value.length === 0) {\n throw new Error('Children must be not an empty array');\n }\n this.internalChildren = value;\n if (!isNil(this.internalChildren)) {\n let checked = null;\n this.internalChildren.forEach((child) => {\n if (checked === null) {\n checked = child.checked;\n } else {\n if (child.checked !== checked) {\n checked = undefined;\n return;\n }\n }\n });\n this.internalChecked = checked;\n }\n }\n }\n\n getSelection(): TreeviewSelection {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (isNil(this.internalChildren)) {\n if (this.internalChecked) {\n checkedItems.push(this);\n } else {\n uncheckedItems.push(this);\n }\n } else {\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n return {\n checkedItems,\n uncheckedItems,\n };\n }\n\n correctChecked(): void {\n this.internalChecked = this.getCorrectChecked();\n }\n\n private getCorrectChecked(): boolean {\n let checked: boolean = null;\n if (!isNil(this.internalChildren)) {\n for (const child of this.internalChildren) {\n child.internalChecked = child.getCorrectChecked();\n if (checked === null) {\n checked = child.internalChecked;\n } else if (checked !== child.internalChecked) {\n checked = undefined;\n break;\n }\n }\n } else {\n checked = this.checked;\n }\n\n return checked;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TreeviewConfig {\n hasAllCheckBox = true;\n hasFilter = false;\n hasCollapseExpand = false;\n decoupleChildFromParent = false;\n maxHeight = 500;\n\n get hasDivider(): boolean {\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\n }\n\n public static create(fields?: {\n hasAllCheckBox?: boolean;\n hasFilter?: boolean;\n hasCollapseExpand?: boolean;\n decoupleChildFromParent?: boolean;\n maxHeight?: number;\n }): TreeviewConfig {\n const config = new TreeviewConfig();\n Object.assign(config, fields);\n return config;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\nimport { TreeviewComponent } from '../components/treeview/treeview.component';\n\n@Injectable()\nexport abstract class TreeviewEventParser {\n abstract getSelectedChange(component: TreeviewComponent): any[];\n}\n\n@Injectable()\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const checkedItems = component.selection.checkedItems;\n if (!isNil(checkedItems)) {\n return checkedItems.map((item) => item.value);\n }\n\n return [];\n }\n}\n\nexport interface DownlineTreeviewItem {\n item: TreeviewItem;\n parent: DownlineTreeviewItem;\n}\n\n@Injectable()\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\n getSelectedChange(component: TreeviewComponent): any[] {\n const items = component.items;\n if (!isNil(items)) {\n let result: DownlineTreeviewItem[] = [];\n items.forEach((item) => {\n const links = this.getLinks(item, null);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n return [];\n }\n\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\n if (!isNil(item.children)) {\n const link = {\n item,\n parent,\n };\n let result: DownlineTreeviewItem[] = [];\n item.children.forEach((child) => {\n const links = this.getLinks(child, link);\n if (!isNil(links)) {\n result = result.concat(links);\n }\n });\n\n return result;\n }\n\n if (item.checked) {\n return [\n {\n item,\n parent,\n },\n ];\n }\n\n return null;\n }\n}\n\n@Injectable()\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\n private currentDownlines: DownlineTreeviewItem[] = [];\n private parser = new DownlineTreeviewEventParser();\n\n getSelectedChange(component: TreeviewComponent): any[] {\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\n if (this.currentDownlines.length === 0) {\n this.currentDownlines = newDownlines;\n } else {\n const intersectDownlines: DownlineTreeviewItem[] = [];\n this.currentDownlines.forEach((downline) => {\n let foundIndex = -1;\n const length = newDownlines.length;\n for (let i = 0; i < length; i++) {\n if (downline.item.value === newDownlines[i].item.value) {\n foundIndex = i;\n break;\n }\n }\n\n if (foundIndex !== -1) {\n intersectDownlines.push(newDownlines[foundIndex]);\n newDownlines.splice(foundIndex, 1);\n }\n });\n\n this.currentDownlines = intersectDownlines.concat(newDownlines);\n }\n\n return this.currentDownlines;\n }\n}\n","<div *ngIf=\"item\" class=\"treeview-item\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ item: item, onCollapseExpand: onCollapseExpand, onCheckedChange: onCheckedChange }\">\n </ng-template>\n <div *ngIf=\"!item.collapsed\">\n <ngx-treeview-item\n [config]=\"config\"\n *ngFor=\"let child of item.children\"\n [item]=\"child\"\n [template]=\"template\"\n (checkedChange)=\"onChildCheckedChange(child, $event)\">\n </ngx-treeview-item>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\n\n@Component({\n selector: 'ngx-treeview-item',\n templateUrl: './treeview-item.component.html',\n styleUrls: ['./treeview-item.component.scss'],\n})\nexport class TreeviewItemComponent {\n @Input() config: TreeviewConfig;\n @Input() template: TemplateRef<TreeviewItemTemplateContext>;\n @Input() item: TreeviewItem;\n @Output() checkedChange = new EventEmitter<boolean>();\n\n constructor(private defaultConfig: TreeviewConfig) {\n this.config = this.defaultConfig;\n }\n\n onCollapseExpand = () => {\n this.item.collapsed = !this.item.collapsed;\n };\n\n onCheckedChange = () => {\n const checked = this.item.checked;\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\n this.item.children.forEach((child) => child.setCheckedRecursive(checked));\n }\n this.checkedChange.emit(checked);\n };\n\n onChildCheckedChange(child: TreeviewItem, checked: boolean): void {\n if (!this.config.decoupleChildFromParent) {\n let itemChecked: boolean = null;\n for (const childItem of this.item.children) {\n if (itemChecked === null) {\n itemChecked = childItem.checked;\n } else if (itemChecked !== childItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n if (this.item.checked !== itemChecked) {\n this.item.checked = itemChecked;\n }\n }\n\n this.checkedChange.emit(checked);\n }\n}\n","<ng-template #defaultItemTemplate let-item=\"item\" let-onCollapseExpand=\"onCollapseExpand\" let-onCheckedChange=\"onCheckedChange\">\n <div class=\"form-inline row-item\">\n <i *ngIf=\"item.children\" (click)=\"onCollapseExpand()\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg\n *ngSwitchCase=\"true\"\n width=\"0.8rem\"\n height=\"0.8rem\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-caret-right-fill\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12.14 8.753l-5.482 4.796c-.646.566-1.658.106-1.658-.753V3.204a1 1 0 0 1 1.659-.753l5.48 4.796a1 1 0 0 1 0 1.506z\" />\n </svg>\n <svg\n *ngSwitchCase=\"false\"\n width=\"0.8rem\"\n height=\"0.8rem\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-caret-down-fill\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z\" />\n </svg>\n </i>\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [(ngModel)]=\"item.checked\"\n (ngModelChange)=\"onCheckedChange()\"\n [disabled]=\"item.disabled\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{ item.text }}\n </label>\n </div>\n </div>\n</ng-template>\n<ng-template\n #defaultHeaderTemplate\n let-config=\"config\"\n let-item=\"item\"\n let-onCollapseExpand=\"onCollapseExpand\"\n let-onCheckedChange=\"onCheckedChange\"\n let-onFilterTextChange=\"onFilterTextChange\">\n <div *ngIf=\"config.hasFilter\" class=\"row row-filter\">\n <div class=\"col-12\">\n <input\n class=\"form-control\"\n type=\"text\"\n [placeholder]=\"i18n.getFilterPlaceholder()\"\n [(ngModel)]=\"filterText\"\n (ngModelChange)=\"onFilterTextChange($event)\" />\n </div>\n </div>\n <div *ngIf=\"hasFilterItems\">\n <div *ngIf=\"config.hasAllCheckBox || config.hasCollapseExpand\" class=\"row row-all\">\n <div class=\"col-12\">\n <div class=\"form-check form-check-inline\" *ngIf=\"config.hasAllCheckBox\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n [(ngModel)]=\"item.checked\"\n (ngModelChange)=\"onCheckedChange()\"\n [indeterminate]=\"item.indeterminate\" />\n <label class=\"form-check-label\" (click)=\"item.checked = !item.checked; onCheckedChange()\">\n {{ i18n.getAllCheckboxText() }}\n </label>\n </div>\n <label *ngIf=\"config.hasCollapseExpand\" class=\"float-right form-check-label\" (click)=\"onCollapseExpand()\">\n <i [title]=\"i18n.getTooltipCollapseExpandText(item.collapsed)\" aria-hidden=\"true\" [ngSwitch]=\"item.collapsed\">\n <svg\n *ngSwitchCase=\"true\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-arrows-angle-expand\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n d=\"M1.5 10.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M6.354 9.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm8.5-8.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M10.036 1.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 1 1-1 0V2h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n <svg\n *ngSwitchCase=\"false\"\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n class=\"bi bi-arrows-angle-contract\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n d=\"M9.5 2.036a.5.5 0 0 1 .5.5v3.5h3.5a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M14.354 1.646a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 1 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0zm-7.5 7.5a.5.5 0 0 1 0 .708l-4.5 4.5a.5.5 0 0 1-.708-.708l4.5-4.5a.5.5 0 0 1 .708 0z\" />\n <path\n fill-rule=\"evenodd\"\n d=\"M2.036 9.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-1 0V10h-3.5a.5.5 0 0 1-.5-.5z\" />\n </svg>\n </i>\n </label>\n </div>\n </div>\n <div *ngIf=\"config.hasDivider\" class=\"dropdown-divider\"></div>\n </div>\n</ng-template>\n<div class=\"treeview-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate || defaultHeaderTemplate\" [ngTemplateOutletContext]=\"headerTemplateContext\">\n </ng-template>\n</div>\n<div [ngSwitch]=\"hasFilterItems\">\n <div *ngSwitchCase=\"true\" class=\"treeview-container\" [style.max-height.px]=\"maxHeight\">\n <ngx-treeview-item\n *ngFor=\"let item of filterItems\"\n [config]=\"config\"\n [item]=\"item\"\n [template]=\"itemTemplate || defaultItemTemplate\"\n (checkedChange)=\"onItemCheckedChange(item, $event)\">\n </ngx-treeview-item>\n </div>\n <div *ngSwitchCase=\"false\" class=\"treeview-text\">\n {{ i18n.getFilterNoItemsFoundText() }}\n </div>\n</div>\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef, OnInit } from '@angular/core';\nimport { isNil, includes } from 'lodash';\nimport { TreeviewI18n } from '../../models/treeview-i18n';\nimport { TreeviewItem, TreeviewSelection } from '../../models/treeview-item';\nimport { TreeviewConfig } from '../../models/treeview-config';\nimport { TreeviewHeaderTemplateContext } from '../../models/treeview-header-template-context';\nimport { TreeviewItemTemplateContext } from '../../models/treeview-item-template-context';\nimport { TreeviewHelper } from '../../helpers/treeview-helper';\nimport { TreeviewEventParser } from '../../helpers/treeview-event-parser';\n\nclass FilterTreeviewItem extends TreeviewItem {\n private readonly refItem: TreeviewItem;\n constructor(item: TreeviewItem) {\n super({\n text: item.text,\n value: item.value,\n disabled: item.disabled,\n checked: item.checked,\n collapsed: item.collapsed,\n children: item.children,\n });\n this.refItem = item;\n }\n\n updateRefChecked(): void {\n this.children.forEach((child) => {\n if (child instanceof FilterTreeviewItem) {\n child.updateRefChecked();\n }\n });\n\n let refChecked = this.checked;\n if (refChecked) {\n for (const refChild of this.refItem.children) {\n if (!refChild.checked) {\n refChecked = false;\n break;\n }\n }\n }\n this.refItem.checked = refChecked;\n }\n}\n\n@Component({\n selector: 'ngx-treeview',\n templateUrl: './treeview.component.html',\n styleUrls: ['./treeview.component.scss'],\n})\nexport class TreeviewComponent implements OnChanges, OnInit {\n @Input() headerTemplate: TemplateRef<TreeviewHeaderTemplateContext>;\n @Input() itemTemplate: TemplateRef<TreeviewItemTemplateContext>;\n @Input() items: TreeviewItem[];\n @Input() config: TreeviewConfig;\n @Output() selectedChange = new EventEmitter<any[]>();\n @Output() filterChange = new EventEmitter<string>();\n headerTemplateContext: TreeviewHeaderTemplateContext;\n allItem: TreeviewItem;\n filterText = '';\n filterItems: TreeviewItem[];\n selection: TreeviewSelection;\n\n constructor(\n public i18n: TreeviewI18n,\n private defaultConfig: TreeviewConfig,\n private eventParser: TreeviewEventParser,\n ) {\n this.config = this.defaultConfig;\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\n }\n\n get hasFilterItems(): boolean {\n return !isNil(this.filterItems) && this.filterItems.length > 0;\n }\n\n get maxHeight(): string {\n return `${this.config.maxHeight}`;\n }\n\n ngOnInit(): void {\n this.createHeaderTemplateContext();\n this.generateSelection();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const itemsSimpleChange = changes.items;\n if (!isNil(itemsSimpleChange) && !isNil(this.items)) {\n this.updateFilterItems();\n this.updateCollapsedOfAll();\n this.raiseSelectedChange();\n }\n }\n\n onAllCollapseExpand(): void {\n this.allItem.collapsed = !this.allItem.collapsed;\n this.filterItems.forEach((item) => item.setCollapsedRecursive(this.allItem.collapsed));\n }\n\n onFilterTextChange(text: string): void {\n this.filterText = text;\n this.filterChange.emit(text);\n this.updateFilterItems();\n }\n\n onAllCheckedChange(): void {\n const checked = this.allItem.checked;\n this.filterItems.forEach((item) => {\n item.setCheckedRecursive(checked);\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n });\n\n this.raiseSelectedChange();\n }\n\n onItemCheckedChange(item: TreeviewItem, checked: boolean): void {\n if (item instanceof FilterTreeviewItem) {\n item.updateRefChecked();\n }\n\n this.updateCheckedOfAll();\n this.raiseSelectedChange();\n }\n\n raiseSelectedChange(): void {\n this.generateSelection();\n const values = this.eventParser.getSelectedChange(this);\n setTimeout(() => {\n this.selectedChange.emit(values);\n });\n }\n\n private createHeaderTemplateContext(): void {\n this.headerTemplateContext = {\n config: this.config,\n item: this.allItem,\n onCheckedChange: () => this.onAllCheckedChange(),\n onCollapseExpand: () => this.onAllCollapseExpand(),\n onFilterTextChange: (text) => this.onFilterTextChange(text),\n };\n }\n\n private generateSelection(): void {\n let checkedItems: TreeviewItem[] = [];\n let uncheckedItems: TreeviewItem[] = [];\n if (!isNil(this.items)) {\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\n checkedItems = selection.checked;\n uncheckedItems = selection.unchecked;\n }\n\n this.selection = {\n checkedItems,\n uncheckedItems,\n };\n }\n\n private updateFilterItems(): void {\n if (this.filterText !== '') {\n const filterItems: TreeviewItem[] = [];\n const filterText = this.filterText.toLowerCase();\n this.items.forEach((item) => {\n const newItem = this.filterItem(item, filterText);\n if (!isNil(newItem)) {\n filterItems.push(newItem);\n }\n });\n this.filterItems = filterItems;\n } else {\n this.filterItems = this.items;\n }\n\n this.updateCheckedOfAll();\n }\n\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\n const isMatch = includes(item.text.toLowerCase(), filterText);\n if (isMatch) {\n return item;\n } else {\n if (!isNil(item.children)) {\n const children: TreeviewItem[] = [];\n item.children.forEach((child) => {\n const newChild = this.filterItem(child, filterText);\n if (!isNil(newChild)) {\n children.push(newChild);\n }\n });\n if (children.length > 0) {\n const newItem = new FilterTreeviewItem(item);\n newItem.collapsed = false;\n newItem.children = children;\n return newItem;\n }\n }\n }\n\n return undefined;\n }\n\n private updateCheckedOfAll(): void {\n let itemChecked: boolean = null;\n for (const filterItem of this.filterItems) {\n if (itemChecked === null) {\n itemChecked = filterItem.checked;\n } else if (itemChecked !== filterItem.checked) {\n itemChecked = undefined;\n break;\n }\n }\n\n if (itemChecked === null) {\n itemChecked = false;\n }\n\n this.allItem.checked = itemChecked;\n }\n\n private updateCollapsedOfAll(): void {\n let hasItemExpanded = false;\n for (const filterItem of this.filterItems) {\n if (!filterItem.collapsed) {\n hasItemExpanded = true;\n break;\n }\n }\n\n this.allItem.collapsed = !hasItemExpanded;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { isNil } from 'lodash';\nimport { TreeviewItem } from '../models/treeview-item';\n\n@Pipe({\n name: 'ngxTreeview',\n})\nexport class TreeviewPipe implements PipeTransform {\n transform(objects: any[], textField: string): TreeviewItem[] {\n if (isNil(objects)) {\n return undefined;\n }\n\n return objects.map((object) => new TreeviewItem({ text: object[textField], value: object }));\n }\n}\n","export enum ToastrStatus {\n INFO = 'status-info',\n ERROR = 'status-danger',\n SUCCESS = 'status-success',\n WARNING = 'status-warning',\n}\n\nexport const ToastrStatusIcon = {\n [ToastrStatus.INFO]: 'dr-icon-noty-notification',\n [ToastrStatus.ERROR]: 'dr-icon-noty-error',\n [ToastrStatus.SUCCESS]: 'dr-icon-noty-success',\n [ToastrStatus.WARNING]: 'dr-icon-noty-warning',\n};\n\nexport type DefaultToastrData = {\n title: string;\n message: string;\n status: ToastrStatus;\n isHtmlBody: boolean;\n};\n","<div class=\"icon-container\">\n <i class=\"toastr-icon\" [ngClass]=\"icon\"></i>\n</div>\n\n<div class=\"content-container\">\n <span class=\"title\">\n {{ data.title }}\n </span>\n\n <div class=\"message\" *ngIf=\"!data.isHtmlBody; else htmlBody\">\n {{ data.message }}\n </div>\n\n <ng-template #htmlBody>\n <div class=\"message\" [innerHTML]=\"data.message\"></div>\n </ng-template>\n</div>\n\n<div class=\"icon-container\">\n <i class=\"dr-icon-exit\"></i>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\nimport { Toast, ToastPackage, ToastrService } from 'ngx-toastr';\nimport { DefaultToastrData, ToastrStatus, ToastrStatusIcon } from '../../models/toastr';\n\n@Component({\n selector: 'dr-default-toastr',\n templateUrl: './default-toastr.component.html',\n styleUrls: ['./default-toastr.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DefaultToastrComponent extends Toast implements OnInit {\n data: DefaultToastrData = {\n title: '',\n message: '',\n status: ToastrStatus.SUCCESS,\n isHtmlBody: false,\n };\n icon = ToastrStatusIcon[this.data.status];\n\n @HostBinding('class') class = this.data.status;\n\n constructor(\n protected toastrService: ToastrService,\n public toastPackage: ToastPackage,\n ) {\n super(toastrService, toastPackage);\n }\n\n ngOnInit(): void {\n this.class = this.data.status;\n this.icon = ToastrStatusIcon[this.data.status];\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataAnalyticsService {\n heap: any;\n\n constructor() {\n this.heap = (window as any).heap;\n }\n\n track(event: string, payload: any = {}) {\n if (this.heap) {\n this.heap.track(event, payload);\n }\n }\n}\n","export type TooltipInfoContext = {\n title?: string;\n description?: string;\n useDescriptionAsHTML?: boolean;\n icon?: string;\n iconTheme?: TooltipInfoIconTheme;\n hideIcon?: boolean;\n hideDivider?: boolean;\n minWidth?: TooltipInfoWidth | string;\n maxWidth?: TooltipInfoWidth | string;\n};\n\nexport enum TooltipInfoWidth {\n LARGE = '510px',\n MEDIUM = '320px',\n SMALL = '280px',\n}\n\nexport enum TooltipInfoIconTheme {\n INFO = 'info',\n WARNING = 'warning',\n ERROR = 'error',\n SUCCESS = 'success',\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnDestroy, OnChanges {\n @Input() attachOutsideOnClick: boolean = false;\n @Input() exclude: string = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n private _nodesExcluded: Array<HTMLElement> = [];\n\n constructor(\n @Inject(DOCUMENT) private _document /*: HTMLDocument*/,\n private _el: ElementRef,\n ) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n }\n\n ngOnInit() {\n this._init();\n }\n\n ngOnDestroy() {\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.removeEventListener('click', this._initOnClickBody);\n }\n\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['attachOutsideOnClick'] || changes['exclude']) {\n this._init();\n }\n }\n\n private _init() {\n if (this.exclude) {\n this.exclude.split(',').forEach((selector) => {\n if (selector) {\n try {\n const node = this._document.querySelector(selector.trim());\n if (node) {\n this._nodesExcluded.push(node);\n }\n } catch (err) {\n if (window.console) {\n window.console.error('[ng2-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n });\n }\n\n if (this.attachOutsideOnClick) {\n this._el.nativeElement.addEventListener('click', this._initOnClickBody);\n } else {\n this._initOnClickBody();\n }\n }\n\n /** @internal */\n private _initOnClickBody() {\n this._document.body.addEventListener('click', this._onClickBody);\n }\n\n /** @internal */\n private _onClickBody(e: Event) {\n if (!this._el.nativeElement.contains(e.target) && !this._shouldExclude(e.target)) {\n this.clickOutside.emit(e);\n\n if (this.attachOutsideOnClick) {\n this._document.body.removeEventListener('click', this._onClickBody);\n }\n }\n }\n\n /** @internal */\n private _shouldExclude(target): boolean {\n for (let i = 0; i < this._nodesExcluded.length; i++) {\n if (this._nodesExcluded[i].contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n}\n","export enum FeedbackSentiment {\n POSITIVE = 'positive',\n NEGATIVE = 'negative',\n}\n\nexport interface IFeedback {\n subjectId: string;\n sentiment: FeedbackSentiment;\n text?: string;\n tags?: Array<string>;\n}\n","export interface ICodeEditorHint {\n icon: ICodeEditorHintIcon;\n value: string;\n type?: string;\n hint?: string;\n}\n\nexport enum ICodeEditorHintIcon {\n VALUE = '#',\n CALCULATED_VALUE = '=',\n}\n\nexport interface ICodeEditorMarker {\n name: string;\n title: string;\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { ToastrService } from 'ngx-toastr';\nimport { ToastrStatus } from '../models/toastr';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrToastrService {\n constructor(private toastr: ToastrService) {}\n\n info(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.INFO, isHtmlBody, timeOut);\n }\n\n danger(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.ERROR, isHtmlBody, timeOut);\n }\n\n success(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.SUCCESS, isHtmlBody, timeOut);\n }\n\n warning(message: string | SafeHtml, title?: string, isHtmlBody?: boolean, timeOut?: number): void {\n this.showToastr(message, title, ToastrStatus.WARNING, isHtmlBody, timeOut);\n }\n\n private showToastr(\n message: string | SafeHtml,\n title: string,\n status: ToastrStatus,\n isHtmlBody?: boolean,\n timeOut: number = 5000,\n ): void {\n const toastr = this.toastr.show('', '', {\n positionClass: 'toastr-bottom-left',\n tapToDismiss: true,\n timeOut,\n });\n\n toastr.portal.instance.data = {\n title,\n message,\n status,\n isHtmlBody,\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipDefaultComponent } from './components/tooltip-default/tooltip-default.component';\n\nconst TOOLTIP_COMPONENTS = [TooltipDefaultComponent, TooltipInfoComponent];\n\n@NgModule({\n imports: [CommonModule],\n exports: [TooltipComponent, DrTooltipDirective, ...TOOLTIP_COMPONENTS],\n providers: [],\n declarations: [TooltipComponent, DrTooltipDirective, ...TOOLTIP_COMPONENTS],\n})\nexport class DrTooltipModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components, ...directives],\n declarations: [...components, ...directives],\n})\nexport class DrSpinnerModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\nimport { DrSelectAddItemComponent } from './dr-select-add-item/dr-select-add-item.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { DrSpinnerModule } from '../dr-spinner/dr-spinner.module';\nimport { DrDatePickerRangeComponent } from './date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nimport { DrLinkComponent } from './dr-link/dr-link.component';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function () {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrDatePickerRangeComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe,\n DrSelectAddItemComponent,\n DrLinkComponent,\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n providers: [provideNgxMask()],\n imports: [\n NgxMaskDirective,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatNativeDateModule,\n MatDatepickerModule,\n DrTooltipModule,\n DrSpinnerModule,\n ],\n})\nexport class DrInputsModule {}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent } from './any-tag.component';\nimport { DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport const components = [\n DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent,\n];\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrInputsModule, NgSelectModule],\n exports: components,\n declarations: components,\n})\nexport class DateTagModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ListTagComponent } from './list-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrInputsModule],\n exports: [ListTagComponent],\n providers: [],\n declarations: [ListTagComponent],\n})\nexport class ListTagModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrDynamicTagComponent } from './dr-dynamic-tag.component';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n declarations: [DrDynamicTagComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n exports: [DrDynamicTagComponent],\n})\nexport class DrDynamicTagModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\nimport { DrDynamicTagModule } from '../dr-dynamic-tag/dr-dynamic-tag.module';\n\n@NgModule({\n imports: [CommonModule, DateTagModule, ListTagModule, DrDynamicTagModule],\n exports: [DrTagComponent],\n providers: [],\n declarations: [DrTagComponent],\n})\nexport class DrTagModule {}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [DrAvatarComponent, DrAvatarPipe],\n exports: [DrAvatarComponent, DrAvatarPipe],\n imports: [DrTooltipModule, CommonModule],\n})\nexport class DrAvatarModule {}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrPopoverDirective, DrPopoverComponent],\n declarations: [DrPopoverDirective, DrPopoverComponent],\n})\nexport class DrPopoverModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-slider',\n templateUrl: './dr-slider.component.html',\n styleUrls: ['./dr-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DrSliderComponent, multi: true }],\n standalone: true,\n})\nexport class DrSliderComponent implements ControlValueAccessor {\n @Input() disabled: boolean;\n @Input() max: number = 100;\n @Input() min: number = 1;\n @Input() step: number = 1;\n @Input() rangeValue: number = 1;\n\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n writeValue(value: number): void {\n this.rangeValue = value;\n }\n\n setValue(event): void {\n this.writeValue(event.target.value);\n this.onChange(this.rangeValue);\n this.onTouched();\n }\n}\n","<input\n type=\"range\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [value]=\"rangeValue\"\n (change)=\"setValue($event)\" />\n","export enum CROP_IMAGE_MODES {\n SQUARE = 'square',\n RECTANGLE = 'rectangle',\n}\n\nexport interface ICropImageData {\n file: File;\n coordinates: string;\n cropMode: CROP_IMAGE_MODES;\n}\n","import { Injectable } from '@angular/core';\nimport { CROP_IMAGE_MODES } from './dr-image-cropper.types';\n\n@Injectable()\nexport class DrImageCropperCanvasService {\n ctx: CanvasRenderingContext2D;\n\n private readonly ALPHA_FOR_SHADOW = 0.2;\n // this param means that a side of a white square is half of a side of a canvas\n private readonly CROP_AREA_PROPORTION = 2;\n private readonly RECTANGULAR_SHADOW_WIDTH = 30;\n private readonly RECTANGULAR_SHADOW_HEIGHT = 70;\n\n drawShape(canvasSize: number, cropMode: CROP_IMAGE_MODES, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n this.clearCanvas(canvasSize);\n this.drawImageByZoom(canvasSize, zoomLevel, htmlImageElement);\n this.drawShadow(cropMode, canvasSize);\n }\n\n getCoordinates(cropMode: CROP_IMAGE_MODES, canvasSize: number): string {\n return cropMode === CROP_IMAGE_MODES.SQUARE\n ? this.getCoordinatesForSquare(canvasSize)\n : this.getCoordinatesForRectangle(canvasSize);\n }\n\n private getCoordinatesForSquare(canvasSize: number): string {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n const bottomPosition = canvasSize - shadowLength;\n return [shadowLength, shadowLength, bottomPosition, bottomPosition].join(',');\n }\n\n private getCoordinatesForRectangle(canvasSize: number): string {\n return [\n this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n ].join(',');\n }\n\n private drawShadow(cropMode: CROP_IMAGE_MODES, canvasSize: number): void {\n this.ctx.globalAlpha = this.ALPHA_FOR_SHADOW;\n this.ctx.fillStyle = 'black';\n if (cropMode === CROP_IMAGE_MODES.SQUARE) {\n this.drawSquareShadow(canvasSize);\n } else if (cropMode === CROP_IMAGE_MODES.RECTANGLE) {\n this.drawRectangularShadow(canvasSize);\n }\n this.ctx.globalAlpha = 1;\n }\n\n private drawSquareShadow(canvasSize: number): void {\n const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);\n this.ctx.fillRect(0, 0, shadowLength, canvasSize);\n this.ctx.fillRect(canvasSize - shadowLength, 0, shadowLength, canvasSize);\n this.ctx.fillRect(shadowLength, 0, 2 * shadowLength, shadowLength);\n this.ctx.fillRect(shadowLength, canvasSize - shadowLength, 2 * shadowLength, shadowLength);\n }\n\n private drawRectangularShadow(canvasSize: number): void {\n this.ctx.fillRect(0, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(canvasSize - this.RECTANGULAR_SHADOW_WIDTH, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n 0,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n );\n this.ctx.fillRect(\n this.RECTANGULAR_SHADOW_WIDTH,\n canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,\n canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH,\n this.RECTANGULAR_SHADOW_HEIGHT,\n );\n }\n\n private drawImageByZoom(canvasSize: number, zoomLevel: number, htmlImageElement: HTMLImageElement): void {\n const maxImageDimension = Math.max(htmlImageElement.width, htmlImageElement.height);\n const proportion = canvasSize / (this.CROP_AREA_PROPORTION * maxImageDimension);\n const suitableWidth = htmlImageElement.width * proportion * zoomLevel;\n const suitableHeight = htmlImageElement.height * proportion * zoomLevel;\n\n const rectX = (canvasSize - suitableWidth) / 2;\n const rectY = (canvasSize - suitableHeight) / 2;\n\n this.ctx.drawImage(htmlImageElement, rectX, rectY, suitableWidth, suitableHeight);\n }\n\n private clearCanvas(canvasSize: number): void {\n this.ctx.fillStyle = 'white';\n this.ctx.fillRect(0, 0, canvasSize, canvasSize);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DrSliderComponent } from '../dr-inputs/dr-slider/dr-slider.component';\nimport { CROP_IMAGE_MODES, ICropImageData } from './dr-image-cropper.types';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrImageCropperCanvasService } from './dr-image-cropper-canvas.service';\n\n@Component({\n selector: 'dr-image-cropper',\n templateUrl: './dr-image-cropper.component.html',\n styleUrls: ['./dr-image-cropper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule, DrSliderComponent, DrInputsModule],\n standalone: true,\n providers: [DrImageCropperCanvasService],\n})\nexport class DrImageCropperComponent implements OnChanges, AfterViewInit {\n @Input({ required: true }) cropperSize: number;\n @Input({ required: true }) imageFile: File;\n @Input() maxZoom: number = 10;\n @Input() minZoom: number = 0.5;\n @Input() zoomStep: number = 0.1;\n @Input() zoomLevel: number = 1;\n\n @Output() cropChanged = new EventEmitter<ICropImageData>();\n @Output() clearClicked = new EventEmitter<void>();\n\n @ViewChild('imageCanvas', { static: true }) canvasElement: ElementRef<HTMLCanvasElement>;\n\n htmlImageElement: HTMLImageElement;\n cropMode: CROP_IMAGE_MODES = CROP_IMAGE_MODES.SQUARE;\n readonly CROP_IMAGE_MODES = CROP_IMAGE_MODES;\n\n constructor(private readonly canvasService: DrImageCropperCanvasService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.imageFile && this.imageFile) {\n this.readImageFile();\n }\n }\n\n ngAfterViewInit(): void {\n this.canvasService.ctx = this.canvasElement.nativeElement.getContext('2d');\n }\n\n drawImage(newZoomEvent?): void {\n if (newZoomEvent !== undefined) {\n this.zoomLevel = newZoomEvent.target.value;\n }\n this.onCropModeUpdated();\n }\n\n onCropModeUpdated(cropMode?: CROP_IMAGE_MODES): void {\n if (cropMode) {\n this.cropMode = cropMode;\n }\n\n this.canvasService.drawShape(this.cropperSize, this.cropMode, this.zoomLevel, this.htmlImageElement);\n const coordinates = this.canvasService.getCoordinates(this.cropMode, this.cropperSize);\n this.canvasElement.nativeElement.toBlob((blob) => {\n const file = new File([blob], this.imageFile.name, { type: this.imageFile.type, lastModified: Date.now() });\n this.cropChanged.emit({ file, coordinates, cropMode: this.cropMode });\n }, this.imageFile.type);\n }\n\n private readImageFile(): void {\n const reader = new FileReader();\n reader.onload = () => {\n this.htmlImageElement = new Image();\n this.htmlImageElement.src = this.getImagesStringSrc(reader);\n this.htmlImageElement.onload = () => {\n this.canvasElement.nativeElement.width = this.canvasElement.nativeElement.height = this.cropperSize;\n this.drawImage();\n };\n };\n reader.readAsDataURL(this.imageFile);\n }\n\n private getImagesStringSrc(reader: FileReader): string {\n if (typeof reader.result === 'string') return reader.result;\n\n const decoder = new TextDecoder();\n return decoder.decode(reader.result);\n }\n}\n","<div class=\"crop-mode-btns-container\">\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.SQUARE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.SQUARE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__square-icon\"></div>\n Square\n </div>\n </dr-button>\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.RECTANGLE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.RECTANGLE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__rectangle-icon\"></div>\n Rectangle\n </div>\n </dr-button>\n</div>\n\n<div class=\"image-cropper\">\n <canvas #imageCanvas></canvas>\n</div>\n<dr-slider\n [(ngModel)]=\"zoomLevel\"\n [max]=\"maxZoom\"\n [min]=\"minZoom\"\n [step]=\"zoomStep\"\n [style.width]=\"cropperSize + 'px'\"\n class=\"image-crop-slider\"\n (input)=\"drawImage($event)\">\n</dr-slider>\n<dr-button [theme]=\"'ghost'\" (click)=\"clearClicked.emit()\" class=\"try-another-btn\"> Try another image </dr-button>\n","import { NgModule } from '@angular/core';\nimport { DrDropdownDirective, DrDropdownChildDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\nimport { DrDropdownItemComponent } from './dr-dropdown-item/dr-dropdown-item.component';\nimport { DrPopoverModule } from '../dr-popover/dr-popover.module';\n\n@NgModule({\n imports: [CommonModule, DrTooltipModule, DrPopoverModule],\n declarations: [\n DrDropdownDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n DrDropdownChildDirective,\n DrDropdownItemComponent,\n ],\n exports: [DrDropdownDirective, DrDropdownComponent, DrDropdownItemShowPipe, DrDropdownItemComponent],\n providers: [DrDropdownService],\n})\nexport class DrDropdownModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, MatTabsModule, FormsModule, ReactiveFormsModule, DrInputsModule, DrTooltipModule],\n exports: [DrTabsComponent, DrTabComponent],\n providers: [],\n declarations: [DrTabsComponent, DrTabComponent],\n})\nexport class DrTabsModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [DrLayoutComponent, DrLayoutHeaderComponent, DrLayoutBodyComponent];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\nexport class DrLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DrTooltipModule],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [DrErrorComponent],\n})\nexport class DrErrorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [CommonModule, DrTooltipModule],\n exports: [StepperComponent],\n})\nexport class DrStepperModule {}\n","import { NgModule } from '@angular/core';\nimport { DrDetailsListComponent } from './dr-details-list.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrDetailsListComponent],\n providers: [],\n declarations: [DrDetailsListComponent],\n})\nexport class DrDetailsListModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport {\n MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA,\n MatLegacyDialogModule as MatDialogModule,\n MatLegacyDialogRef as MatDialogRef,\n} from '@angular/material/legacy-dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDetailsListModule } from '../dr-details-list/dr-details-list.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [CommonModule, MatDialogModule, DrInputsModule, ReactiveFormsModule, DrTooltipModule, DrDetailsListModule],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [{ provide: MatDialogRef, useValue: {} }, { provide: MAT_DIALOG_DATA, useValue: {} }, DialogService],\n})\nexport class DrDialogModule {}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';\nimport { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';\nimport { DrChatAlertComponent } from './dr-chat-alert/dr-chat-alert.component';\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatSuggestionsComponent,\n DrDotFlashingComponent,\n DrChatAlertComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n@NgModule({\n imports: [FormsModule, ReactiveFormsModule, CommonModule, DrAvatarModule, DrInputsModule, DrTooltipModule],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrTagsConstructorComponent } from './dr-tags-constructor.component';\nimport { FormsModule } from '@angular/forms';\nimport { ScenarioService } from '../dr-scenario/services/scenario.service';\nimport { TagsConstructorService } from './tags-constructor.service';\n\n@NgModule({\n declarations: [DrTagsConstructorComponent],\n imports: [CommonModule, DrInputsModule, FormsModule],\n providers: [ScenarioService, TagsConstructorService],\n exports: [DrTagsConstructorComponent],\n})\nexport class DrTagsConstructorModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScenarioService } from './services/scenario.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule } from '@angular/forms';\nimport { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';\nimport { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nimport { DrTagModule } from '../dr-tags/dr-tag.module';\nimport { DrTagsConstructorModule } from '../dr-tags-constructor/dr-tags-constructor.module';\n\nconst COMPONENTS = [DrScenarioConfigurationComponent, DrScenarioTagConfigurationComponent];\n\n@NgModule({\n declarations: [...COMPONENTS],\n providers: [ScenarioService],\n imports: [CommonModule, DrInputsModule, FormsModule, DrTagModule, DrTagsConstructorModule],\n exports: [...COMPONENTS],\n})\nexport class DrScenarioModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrBadgeStatusComponent } from './dr-badge-status.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [CommonModule, DrTooltipModule],\n exports: [DrBadgeStatusComponent],\n providers: [],\n declarations: [DrBadgeStatusComponent],\n})\nexport class DrBadgeStatusModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { TreeviewComponent } from './components/treeview/treeview.component';\nimport { TreeviewItemComponent } from './components/treeview-item/treeview-item.component';\nimport { TreeviewPipe } from './pipes/treeview.pipe';\nimport { TreeviewConfig } from './models/treeview-config';\nimport { DefaultTreeviewEventParser, TreeviewEventParser } from './helpers/treeview-event-parser';\n\n@NgModule({\n imports: [FormsModule, CommonModule],\n declarations: [TreeviewComponent, TreeviewItemComponent, TreeviewPipe],\n exports: [TreeviewComponent, TreeviewPipe],\n providers: [],\n})\nexport class TreeviewModule {\n static forRoot(): ModuleWithProviders<TreeviewModule> {\n return {\n ngModule: TreeviewModule,\n providers: [TreeviewConfig, { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }],\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [ClickOutsideDirective],\n exports: [ClickOutsideDirective],\n})\nexport class ClickOutsideModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAlertComponent } from './dr-alert.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [DrAlertComponent],\n providers: [],\n declarations: [DrAlertComponent],\n})\nexport class DrAlertModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrToastrService } from './dr-toastr.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { DefaultToastrComponent } from './default-toastr/default-toastr.component';\n\n@NgModule({\n declarations: [DefaultToastrComponent],\n imports: [\n CommonModule,\n ToastrModule.forRoot({\n toastComponent: DefaultToastrComponent,\n }),\n ],\n exports: [DefaultToastrComponent],\n providers: [DrToastrService],\n})\nexport class DrToastrModule {}\n","import 'codemirror/mode/javascript/javascript';\nimport 'codemirror/addon/edit/matchbrackets';\nimport 'codemirror/addon/hint/show-hint';\nimport '@codemirror/autocomplete';\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrCodeEditorComponent } from './dr-code-editor.component';\nimport { CodeEditorHintWrapperComponent } from './components/code-editor-hint-wrapper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrErrorModule } from '../dr-error/dr-error.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DrCodemirrorComponent } from './components/dr-codemirror.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, DrTooltipModule, DrErrorModule],\n exports: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n providers: [],\n declarations: [DrCodemirrorComponent, DrCodeEditorComponent, CodeEditorHintWrapperComponent],\n})\nexport class DrCodeEditorModule {}\n","<i *ngIf=\"icon\" [class]=\"icon\" class=\"chip__icon\"></i>\n<div class=\"chip__label\">\n <ng-container *ngIf=\"!label\">\n <ng-content></ng-content>\n </ng-container>\n {{ label }}\n</div>\n<i *ngIf=\"removable\" class=\"chip__remove dr-icon-exit\" (click)=\"remove.next(null)\"></i>\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'dr-chip',\n templateUrl: './dr-chip.component.html',\n styleUrls: ['./dr-chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule],\n})\nexport class DrChipComponent {\n @Input() label: string;\n\n @Input() icon: string;\n\n @Input() removable: boolean;\n\n @Output() remove = new EventEmitter<void>();\n}\n","/* components */\nexport * from './lib/date-tags/any-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.service';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-link/dr-link.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport * from './lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component';\nexport * from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport * from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport * from './lib/dr-inputs/dr-select-add-item/dr-select-add-item.component';\nexport * from './lib/dr-tooltip/components/tooltip-default/tooltip-default.component';\nexport * from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/dr-chat/chat.component';\nexport * from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport * from './lib/dr-chat/dr-chat-suggestions/chat-suggestions.component';\nexport * from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport * from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport * from './lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component';\nexport * from './lib/dr-chat/dr-chat-alert/dr-chat-alert.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\nexport * from './lib/dr-badge-status/dr-badge-status.component';\nexport * from './lib/dr-alert/dr-alert.component';\nexport * from './lib/dr-code-editor/dr-code-editor.component';\nexport * from './lib/dr-code-editor/components/dr-codemirror.component';\nexport * from './lib/dr-code-editor/components/code-editor-hint-wrapper.component';\n\nexport * from './lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';\nexport * from './lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component';\nexport * from './lib/dr-tags-constructor/dr-tags-constructor.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\nexport * from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport * from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\n\nexport * from './lib/dr-details-list/dr-details-list.component';\n\nexport * from './lib/dr-chat/chat.component';\n\nexport * from './lib/dr-treeview/components/treeview/treeview.component';\nexport * from './lib/dr-treeview/pipes/treeview.pipe';\nexport * from './lib/dr-treeview/models/treeview-item';\nexport * from './lib/dr-treeview/models/treeview-config';\nexport * from './lib/dr-treeview/models/treeview-i18n';\nexport * from './lib/dr-treeview/models/treeview-item-template-context';\nexport * from './lib/dr-treeview/helpers/treeview-event-parser';\nexport * from './lib/dr-treeview/helpers/treeview-helper';\n\nexport * from './lib/dr-toastr/default-toastr/default-toastr.component';\nexport * from './lib/utils/data-analytics.service';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\nexport { TooltipTheme } from './lib/dr-tooltip/enums/tooltip-theme.enum';\nexport { Scenario, TScenarioDataChanged } from './lib/dr-scenario/interfaces/scenario';\nexport { ToggleButtonMode } from './lib/dr-inputs/dr-toggle-button/toggle-button-mode';\nexport { DrAlertTheme } from './lib/dr-alert/enums/dr-alert-theme.enum';\n\n/* interfaces & types */\nexport {\n TooltipInfoContext,\n TooltipInfoWidth,\n TooltipInfoIconTheme,\n} from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\nexport * from './lib/dr-avatar/types';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\nexport * from './lib/directives/click-outside/click-outside.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport {\n TAG_TYPES,\n ITag,\n IDateTag,\n IListTag,\n ITagForServer,\n IDynamicTag,\n TDynamicTagValue,\n TDynamicTag,\n TagTypes,\n TagsConfigSubType,\n TConnectedTags,\n} from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport { ElPosition, IDropdown, IDropdownItem, IDropdownActionIcon, IDropdownAction } from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\nexport * from './lib/models/badgeStatus';\nexport * from './lib/models/feedback';\nexport * from './lib/models/toastr';\nexport * from './lib/models/datePickerRange';\nexport * from './lib/dr-code-editor/models/code-editor-hint';\n\n/* services */\nexport { ScenarioService } from './lib/dr-scenario/services/scenario.service';\nexport { TagsConstructorService } from './lib/dr-tags-constructor/tags-constructor.service';\nexport { DrAvatarService } from './lib/dr-avatar/services/dr-avatar.service';\nexport { DrToastrService } from './lib/dr-toastr/dr-toastr.service';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrSliderComponent } from './lib/dr-inputs/dr-slider/dr-slider.component';\nexport { DrImageCropperComponent } from './lib/image-cropper/dr-image-cropper.component';\nexport * from './lib/image-cropper/dr-image-cropper.types';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\nexport { DrDetailsListModule } from './lib/dr-details-list/dr-details-list.module';\nexport { DrScenarioModule } from './lib/dr-scenario/dr-scenario.module';\nexport { DrBadgeStatusModule } from './lib/dr-badge-status/dr-badge-status.module';\nexport { TreeviewModule } from './lib/dr-treeview/dr-tree-view.module';\nexport { ClickOutsideModule } from './lib/directives/click-outside/click-outside.module';\nexport { DrAlertModule } from './lib/dr-alert/dr-alert.module';\nexport { DrTagsConstructorModule } from './lib/dr-tags-constructor/dr-tags-constructor.module';\nexport { DrToastrModule } from './lib/dr-toastr/dr-toastr.module';\nexport { DrCodeEditorModule } from './lib/dr-code-editor/dr-code-editor.module';\nexport { DrChipComponent } from './lib/dr-chip/dr-chip.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i2.TooltipDefaultComponent","i1","_c1","i3.DrDatePickerService","noop","i2.DrDatePickerService","_cloneDeep","_find","_indexOf","_c4","_reduce","i1.DrSelectComponent","_isObject","_isNil","_map","_isNumber","_merge","_forEach","_some","merge","_c2","i1.DrChatCustomMessageService","i2","i3.DrAvatarComponent","i4.DrChatMessageTextComponent","i5.DrChatMessageFileComponent","_c3","filter","switchMap","map","_orderBy","_filter","_includes","i1.ScenarioService","i2.TagsConstructorService","i1.DrPopoverRef","i1.DrPopoverService","first","takeUntil","i1.DrAccordionComponent","i1.DrAccordionItemComponent","MAT_DIALOG_DATA","i1.TreeviewConfig","i1.TreeviewI18n","i2.TreeviewConfig","i3.TreeviewEventParser","components","i1.DrImageCropperCanvasService","i3.DrButtonComponent","MatDialogRef","MatDialogModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOa,eAAe,CAAA;AAMxB,IAAA,WAAA,GAAA;AALU,QAAA,IAAA,CAAA,UAAU,GAA2B,IAAI,YAAY,EAAY,CAAC;QACnE,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;QACrC,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;AAEtD,QAAA,IAAA,CAAA,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACd;IAChB,QAAQ,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5C;AACD,IAAA,QAAQ,MAAK;AACb,IAAA,QAAQ,MAAK;AACb,IAAA,kBAAkB,CAAC,KAAY,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAuC,KAAK,CAAC,MAAM,CAAC;AAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtC;AACD,IAAA,gBAAgB,CAAC,KAAK,EAAA;;KAErB;mGApBQ,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAAf,eAAe,EAAA,CAAA;cAJ3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,CAAE,CAAA;AACZ,gBAAA,QAAQ,EAAE,SAAS;AACtB,aAAA,CAAA;sCAEa,UAAU,EAAA,CAAA;kBAAnB,MAAM;YACE,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;;;ICXE,YAOX;AAPD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,YAAsC,CAAA;AACtC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,YAAgC,CAAA;AAChC,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;AACpB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,SAA6B,CAAA;AAC7B,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,QAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,QAAsB,CAAA;AAC1B,CAAC,EAPW,WAAW,KAAX,WAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;MAeY,gBAAgB,CAAA;AAA7B,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,MAAM,GAAc;YACxB,SAAS,EAAE,WAAW,CAAC,iBAAiB;SAC3C,CAAC;AACM,QAAA,IAAA,CAAA,QAAQ,GAAgB;YAC5B,SAAS,EAAE,WAAW,CAAC,iBAAiB;AACxC,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,kBAAkB,EAAE,UAAU;AAC9B,YAAA,gBAAgB,EAAE,QAAQ;AAC1B,YAAA,SAAS,EAAE,MAAM;SACpB,CAAC;KAyBL;IAvBG,IAAI,KAAK,CAAC,KAAgB,EAAA;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACvD;AAED,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IAAI,OAAO,CAAC,OAAoB,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC7D;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAED,gBAAgB,CAAC,KAAgB,EAAE,OAAqB,EAAA;AACpD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;AACnB,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;AACJ,CAAA;IAUW,yBAKX;AALD,CAAA,UAAY,wBAAwB,EAAA;AAChC,IAAA,wBAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;AAChB,IAAA,wBAAA,CAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;AACf,IAAA,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACX,CAAC,EALW,wBAAwB,KAAxB,wBAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;IAEW,gBAMX;AAND,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EANW,eAAe,KAAf,eAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;IAEW,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;AAClB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;AACrB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AAC5B,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;IAEW,SAKX;AALD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,QAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC7B,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA;;MC3FY,aAAa,CAAA;AACtB;;;;AAIG;IACI,OAAO,wBAAwB,CAAC,MAAc,EAAA;AACjD,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC;QAEzC,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,YAAY,CAAC;AACvB,SAAA;AAED,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AAC7C,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,OAAO,eAAe,CAAC,OAAO,CAAC;AACnC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,OAAO,eAAe,CAAC,GAAG,CAAC;AAC/B,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,OAAO,eAAe,CAAC,IAAI,CAAC;AAChC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,OAAO,eAAe,CAAC,KAAK,CAAC;AACjC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC9B,OAAO,eAAe,CAAC,IAAI,CAAC;AAChC,YAAA;AACI,gBAAA,OAAO,YAAY,CAAC;AAC3B,SAAA;KACJ;IAEM,OAAO,YAAY,CAAC,GAAW,EAAA;AAClC,QAAA,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,QAAQ,GAAG;YACP,KAAK,QAAQ,CAAC,KAAK;AACf,gBAAA,OAAO,SAAS,CAAC;YACrB,KAAK,QAAQ,CAAC,SAAS;AACnB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9B,gBAAA,OAAO,SAAS,CAAC;YACrB,KAAK,QAAQ,CAAC,UAAU;AACpB,gBAAA,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,gBAAA,OAAO,SAAS,CAAC;YACrB,KAAK,QAAQ,CAAC,UAAU;AACpB,gBAAA,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/C,gBAAA,OAAO,SAAS,CAAC;AACxB,SAAA;KACJ;AAEa,IAAA,SAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,MAAe,KAC/C,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/E,QAAA,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAE/B,QAAA,OAAO,MAAK;YACR,cAAc,CAAC,UAAU,EAAE,CAAC;AAChC,SAAC,CAAC;AACN,KAAC,CAAC,CAAC,EAAA;AAEO,IAAA,SAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,GAAW,KAAY;AACzD,QAAA,OAAO,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;AACrD,KAAC,CAAC,EAAA;;;MCvDO,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;QAEI,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;QACnB,IAAW,CAAA,WAAA,GAAsC,IAAI,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3F,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;;;;QAa7D,IAAO,CAAA,OAAA,GAAG,IAAI,eAAe,CAAS,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAE3E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAU,CAAC;AACxC,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAU,CAAC;AAG7C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAW,EAAc,CAAC,CAAC;AAC3D,QAAA,IAAA,CAAA,4BAA4B,GAAG,IAAI,OAAO,EAAU,CAAC;QACrD,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,mBAAmB,GAAG;AAClB,YAAA,eAAe,CAAC,GAAG;AACnB,YAAA,eAAe,CAAC,IAAI;AACpB,YAAA,eAAe,CAAC,KAAK;AACrB,YAAA,eAAe,CAAC,OAAO;AACvB,YAAA,eAAe,CAAC,IAAI;SACvB,CAAC;AAEK,QAAA,IAAA,CAAA,YAAY,GAA4B;YAC3C,GAAG,EAAE,WAAW,CAAC,uBAAuB;YACxC,KAAK,EAAE,WAAW,CAAC,iBAAiB;YACpC,IAAI,EAAE,WAAW,CAAC,WAAW;YAC7B,OAAO,EAAE,WAAW,CAAC,cAAc;YACnC,IAAI,EAAE,WAAW,CAAC,WAAW;SAChC,CAAC;QAGK,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAGb,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAS,IAAI,CAAC,CAAC;AAClD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;AA8LlE,KAAA;AAzOG,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KACtC;IAED,IAAW,SAAS,CAAC,KAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAuCD,IAAW,UAAU,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AACD,IAAA,IAAW,UAAU,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KACvC;IAED,gBAAgB,GAAA;QACZ,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9D,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5B,gBAAA,OAAO,GAAG,CAAC;AACf,YAAA,KAAK,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC;AAC5B,gBAAA,OAAO,GAAG,CAAC;AACf,YAAA;AACI,gBAAA,OAAO,EAAE,CAAC;AACjB,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACvB,QAAA,OAAO,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;KACzD;AAED,IAAA,mBAAmB,CAAC,SAA2B,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KACvC;AAED,IAAA,wBAAwB,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KAC/D;AAED,IAAA,cAAc,CAAC,KAAK,EAAA;QAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACnC;AAED;;;;AAIG;AACI,IAAA,+BAA+B,CAAC,IAAY,EAAA;AAC/C,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;AAChD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,SAAS,GAAG,WAAW,EAAE;YACzB,WAAW,IAAI,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;KAC3D;AAED;;;;;AAKG;IACI,eAAe,CAAC,IAAY,EAAE,aAAqB,EAAA;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;aAC5C,OAAO,CAAC,MAAM,CAAC;AACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;aAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;KACvB;AAED;;;;;AAKG;IACI,iBAAiB,CAAC,IAAY,EAAE,aAAqB,EAAA;QACxD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;aAC5C,OAAO,CAAC,MAAM,CAAC;AACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KAC1E;AAED;;;;AAIG;AACI,IAAA,sBAAsB,CAAC,IAAY,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1E;AAED;;;;AAIG;AACI,IAAA,wBAAwB,CAAC,IAAY,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;KAC5E;AAED;;;;AAIG;AACI,IAAA,wBAAwB,CAAC,SAA0B,EAAA;AACtD,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;KACjF;AAED;;;;AAIG;AACI,IAAA,gCAAgC,CAAC,IAAY,EAAA;QAChD,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACzD;AAED;;;;AAIG;AACI,IAAA,yBAAyB,CAAC,IAAY,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;KACnD;AAEO,IAAA,2BAA2B,CAAC,UAAkB,EAAE,UAAA,GAAsB,KAAK,EAAA;AAC/E,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,wBAAwB;YAAE,OAAO;AAClE,QAAA,OAAO,UAAU,CAAC,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;KACjE;AAEM,IAAA,yBAAyB,CAAC,UAAkB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;KACvD;AAEM,IAAA,8BAA8B,CAAC,UAAkB,EAAA;QACpD,OAAO,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KAC7D;AAED;;;;;AAKG;AACK,IAAA,6BAA6B,CAAC,IAAY,EAAE,UAAU,GAAG,KAAK,EAAA;AAClE,QAAA,OAAO,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;KACnH;IAEM,wBAAwB,CAAC,GAAa,EAAE,QAAa,EAAA;AACxD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,QAAA,IAAI,GAAG,EAAE;AACL,YAAA,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACvC,YAAA,QAAQ,GAAG;gBACP,KAAK,QAAQ,CAAC,KAAK;AACf,oBAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;oBACnE,MAAM;gBACV,KAAK,QAAQ,CAAC,SAAS;AACnB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;oBACnE,MAAM;gBACV,KAAK,QAAQ,CAAC,UAAU;AACpB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,QAAQ,CAAC,UAAU;AACpB,oBAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC7D,oBAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBACnD,MAAM;AACb,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxC;IAEM,6BAA6B,CAAC,IAAY,EAAE,QAAa,EAAA;QAC5D,UAAU,CAAC,MAAK;AACZ,YAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAgB,CAAC;AAC5C,YAAA,IAAI,SAAS,EAAE;AACX,gBAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AAC7B,gBAAA,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC3B,SAAS,CAAC,KAAK,EAAE,CAAC;AACrB,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC9B,SAAA;KACJ;uGA7OQ,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;AAAnB,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAnB,mBAAmB,EAAA,CAAA;cAD/B,UAAU;;;ACLJ,MAAM,eAAe,GAAG;AAC3B,IAAA,GAAG,EAAE;AACD,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,UAAU,EAAE;AACR,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACD,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACD,IAAA,cAAc,EAAE;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACD,IAAA,IAAI,EAAE;AACF,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,UAAU,EAAE;AACR,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,aAAa,EAAE;AACX,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,CAAC,CAAC;AACd,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACD,IAAA,WAAW,EAAE;AACT,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AACD,IAAA,cAAc,EAAE;AACZ,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;CACJ,CAAC;AAEK,MAAM,eAAe,GAAG;IAC3B,UAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAClF,IAAA,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEK,MAAM,gBAAgB,GAA0C;IACnE,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;IACvC,EAAE,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE;IAC/C,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;IACjD,EAAE,GAAG,EAAE,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE;CACpD;;ICpGW,aAGX;AAHD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;;MCMY,uBAAuB,CAAA;AAOhC,IAAA,WAAA,GAAA;AAFA,QAAA,IAAA,CAAA,KAAK,GAAiB,YAAY,CAAC,KAAK,CAAC;KAEzB;2GAPP,uBAAuB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;YAJrB,EAAmD,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAAA,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;YAAtD,EAAqB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;;uFAI7C,uBAAuB,EAAA,CAAA;cANnC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,8EAA8E,EAEvE,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,oUAAA,CAAA,EAAA,CAAA;sCAGtC,OAAO,EAAA,CAAA;kBAAf,KAAK;YAIN,KAAK,EAAA,CAAA;kBAFJ,KAAK;;kBACL,WAAW;mBAAC,OAAO,CAAA;;;;ICZpB,EAAmE,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;IAE/D,EAAkF,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;IADtF,EAA6D,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACzD,EAAkF,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACtF,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IADI,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA3B,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,OAAA,CAA2B,CAAA,yBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA;;;IAG1C,EAA6E,CAAA,SAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,CAAA;;;AAAzD,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,OAAA,CAAmB,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;MCWlC,gBAAgB,CAAA;AAWzB,IAAA,WAAA,GAAA;QAJA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAEnB,QAAA,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;KAElE;IAEhB,QAAQ,GAAA;QACJ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAY,WAAW,CAAC;KAChE;IAGD,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;oGAzBQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAhB,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,8CAAA,GAAA,EAAA,OAAA,GAAA,CAAA,UAAA,EAAY,sFAAZ,GAAc,CAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;YDjB3B,EAAmH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC/G,EAAmE,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACnE,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACf,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YAClB,EAAM,CAAA,YAAA,EAAA,CAAA;;;YARD,EAA8C,CAAA,UAAA,CAAA,GAAA,CAAA,QAAA,GAAA,GAAA,GAAA,GAAA,CAAA,KAAA,GAAA,GAAA,GAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YAAC,EAA8D,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,EAAA,GAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,CAAA;YACxG,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5B,EAA4B,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA,CAAA;YACnB,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzB,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAyB,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;ACa5B,SAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAAC,uBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,k7MAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,EAAA,EAAA,CAAA,CAAA,EAAA;;uFAExC,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BACI,YAAY,EAAA,UAAA,EAGV,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,EAAA,QAAA,EAAA,0hBAAA,EAAA,MAAA,EAAA,CAAA,osHAAA,CAAA,EAAA,CAAA;sCAGxC,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YAYN,UAAU,EAAA,CAAA;kBADT,YAAY;mBAAC,YAAY,CAAA;YAM1B,YAAY,EAAA,CAAA;kBADX,YAAY;mBAAC,YAAY,CAAA;;;AC9B9B,MAAM,kBAAkB,GAAG,CAAC,QAAQ,MAAM,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;MAK/D,kBAAkB,CAAA;AAM3B,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACpD;IAWD,IACI,gBAAgB,CAAC,OAAY,EAAA;QAC7B,IAAI,OAAO,EAAE,MAAM,EAAE;YACjB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,OAAO,EAAE;gBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9E,aAAA;YACD,IAAI,QAAQ,EAAE,OAAO,EAAE;gBACnB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAC9E,aAAA;AACD,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KAC1B;IAED,IACI,WAAW,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAA,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,IACI,WAAW,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;AAYD,IAAA,WAAA,CACY,OAAgB,EAChB,sBAA8C,EAC9C,UAAsB,EAAA;QAFtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QAC9C,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAjElC,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QACZ,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAU1B,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAGX,QAAA,IAAA,CAAA,KAAK,GAAiB,YAAY,CAAC,KAAK,CAAC;;QAGhC,IAAyB,CAAA,yBAAA,GAAG,CAAC,CAAC;QAC9B,IAA0B,CAAA,0BAAA,GAAG,CAAC,CAAC;AA0ChC,QAAA,IAAA,CAAA,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAMxD;IAEJ,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI,CAAC;AAElC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;AACf,SAAA;;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC7B,SAAA;QAED,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;AACjD,SAAA;KACJ;IAGD,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAEnD,IAAI,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;gBACnC,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,aAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,SAAA;KACJ;IAGD,IAAI,GAAA;QACA,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YAAE,OAAO;;;;QAKvG,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,aAAA;AAED,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;AACnC,gBAAA,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;oBACrE,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,iBAAA;AACL,aAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB;AAC/C,aAAA,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,aAAA,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KAC/D;IAEO,aAAa,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW;YAAE,OAAO;QAE/D,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAChD,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAE5C,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU;AAChE,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,SAAkB,KAAI;gBAC9B,IAAI,CAAC,SAAS,EAAE;oBACZ,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,iBAAA;AACL,aAAC,CAAC,CAAC;AACV,SAAA;KACJ;IAEO,cAAc,GAAA;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC7B,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;AACjD,SAAA;KACJ;IAEO,sBAAsB,GAAA;QAC1B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACtC,SAAA;KACJ;sGA9KQ,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAAC,IAAA,CAAA,OAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,gDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,IAAA,EAAM,wFAAN,GAAM,CAAA,IAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;;uFAAN,kBAAkB,EAAA,CAAA;cAH9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,aAAa;AAC1B,aAAA,CAAA;4HAGG,OAAO,EAAA,CAAA;kBADN,KAAK;mBAAC,WAAW,CAAA;YAGlB,cAAc,EAAA,CAAA;kBADb,KAAK;mBAAC,kBAAkB,CAAA;YAId,QAAQ,EAAA,CAAA;kBADlB,KAAK;mBAAC,mBAAmB,CAAA;YAS1B,KAAK,EAAA,CAAA;kBADJ,KAAK;mBAAC,gBAAgB,CAAA;YAIvB,KAAK,EAAA,CAAA;kBADJ,KAAK;mBAAC,gBAAgB,CAAA;YAId,yBAAyB,EAAA,CAAA;kBAAjC,KAAK;YACG,0BAA0B,EAAA,CAAA;kBAAlC,KAAK;YAGF,gBAAgB,EAAA,CAAA;kBADnB,KAAK;YAgBF,WAAW,EAAA,CAAA;kBADd,KAAK;mBAAC,eAAe,CAAA;YAWlB,WAAW,EAAA,CAAA;kBADd,KAAK;mBAAC,eAAe,CAAA;YAwCtB,IAAI,EAAA,CAAA;kBADH,YAAY;mBAAC,YAAY,CAAA;YAgB1B,IAAI,EAAA,CAAA;kBADH,YAAY;mBAAC,YAAY,CAAA;;;MC5GjB,kBAAkB,CAAA;IAG3B,IAAW,OAAO,CAAC,IAAqB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;KAC1B;AAED,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;sGATQ,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YCT/B,EAAsF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;AAClF,YAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmE,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;YAEvE,EAAM,CAAA,YAAA,EAAA,CAAA;;YAHD,EAAgF,CAAA,UAAA,CAAA,mCAAA,IAAA,CAAA,GAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,OAAA,CAAA,WAAA,KAAA,MAAA,CAAA,CAAA,CAAA;YAC7D,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxC,EAAwC,CAAA,WAAA,CAAA,cAAA,EAAA,GAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA;YACvD,EAAkE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlE,EAAkE,CAAA,UAAA,CAAA,mBAAA,IAAA,CAAA,GAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,OAAA,CAAA,WAAA,KAAA,QAAA,CAAA,CAAA,CAAA;;;uFDO9D,kBAAkB,EAAA,CAAA;cAN9B,SAAS;2BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uQAAA,EAAA,MAAA,EAAA,CAAA,22zHAAA,CAAA,EAAA,CAAA;;;MEYtC,kBAAkB,CAAA;AAO3B,IAAA,WAAA,CACY,wBAAkD,EAClD,gBAAkC,EAClC,EAAc,EACd,GAAc,EAAA;QAHd,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QACd,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;QARjB,IAAa,CAAA,aAAA,GAAgB,QAAQ,CAAC;QACtC,IAAa,CAAA,aAAA,GAAgB,MAAM,CAAC;QACpC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;KAOhC;AAEJ,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC7B,SAAA;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE;YACvB,IAAI,CAAC,WAAW,CAAC;AACb,gBAAA,GAAG,OAAO;gBACV,WAAW,EAAE,IAAI,CAAC,aAAa;gBAC/B,WAAW,EAAE,IAAI,CAAC,aAAa;gBAC/B,SAAS,EAAE,IAAI,CAAC,kBAAkB;AACrC,aAAA,CAAC,CAAC;AACN,SAAA;KACJ;IAEM,WAAW,GAAA;QACd,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AAChC,SAAA;KACJ;AAEO,IAAA,WAAW,CAAC,OAAO,EAAA;QACvB,MAAM,gBAAgB,GAClB,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;QAC9E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;KACjD;sGA1CQ,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAChB,YAAA,EAAA,CAAA,WAAA,CAAA,kBAAkB,KAAwB,gBAAgB,CAAA,CAAA;;;;;;uFAD5D,kBAAkB,EAAA,CAAA;cAH9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,aAAa;AAC1B,aAAA,CAAA;2JAE4E,aAAa,EAAA,CAAA;kBAArF,SAAS;mBAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;YAC9D,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;;;;;;;;;;ICUF,EAAkH,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;AAApG,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,oBAAA,CAAyC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,QAAA,CAAA,CAAA,CAAA;;;IAD3D,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;IAEV,EAA2G,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;AAA7F,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,aAAA,CAAkC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,QAAA,CAAA,CAAA,CAAA;;;IADpD,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;;IAEV,EACe,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;AADD,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,kBAAA,CAAuC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,SAAA,EAAA,SAAA,CAAA,CAAA,CAAA;;;IADzD,EAGc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;;IAEV,EAA0H,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;AAA5G,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,cAAA,CAAmC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA,SAAA,CAAA,CAAA,CAAA;;;IADrD,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;AAEV,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAkD,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;IACzC,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;IAC1B,EAAsD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAuB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAD9E,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;IACkC,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvB,EAAuB,CAAA,iBAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA,WAAA,CAAA,CAAA;;;IAHrF,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;;IAEV,EAEkH,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;;;AAD9G,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,oBAAA,CAAyC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA,GAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA;;;IAFjD,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;IAEV,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;;;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,QAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAFA,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;;;IAEV,EAMsC,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAHlC,EAAqB,CAAA,UAAA,CAAA,WAAA,EAAA,OAAA,CAAA,OAAA,CAAA,CAAA,eAAA,EAAA,QAAA,CAAA,0BAAA,CAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;;;IAHzB,EAMsC,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IALjC,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;IAQ1B,EAA0E,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;ACtD1E,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;MAsB3G,iBAAiB,CAAA;IAgC1B,IAAa,QAAQ,CAAC,GAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;KACzB;IAkBD,WACY,CAAA,UAAmC,EACnC,QAAmB,EAAA;QADnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACnC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAnD/B,IAAI,CAAA,IAAA,GAA8B,QAAQ,CAAC;QAElC,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;QAErC,IAAK,CAAA,KAAA,GAAsC,EAAE,CAAC;QAE9C,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAYlB,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;QAEnC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QACf,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;AAE9B,QAAA,IAAA,CAAA,SAAS,GAAuC,MAAM,IAAI,CAAC;QAG3D,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAQrB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAO,CAAC;AACpD,QAAA,IAAA,CAAA,IAAI,GAAsB,IAAI,YAAY,EAAO,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAO,CAAC;QAOhC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAClD,IAAe,CAAA,eAAA,GAAuB,IAAI,CAAC;AAY3C,QAAA,IAAA,CAAA,QAAQ,GAA6B,MAAK,GAAG,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;AAR7B,QAAA,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE;AACvC,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;gBAC9B,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,aAAA;AACJ,SAAA;KACJ;AAKD,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEjC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrE,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AAEnB,QAAA,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACpC,SAAA;KACJ;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;KACzB;IAED,cAAc,GAAA;QACV,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,aAAA;AACD,YAAA,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE;AACxC,gBAAA,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,aAAA;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AAC9D,YAAA,IAAI,QAAQ,EAAE;gBACV,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3C,aAAA;SACJ,EAAE,CAAC,CAAC,CAAC;KACT;AAED,IAAA,eAAe,CAAC,YAAiB,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAClC;AAED,IAAA,aAAa,CAAC,CAAC,EAAA;AACX,QAAA,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC3C,CAAC,CAAC,cAAc,EAAE,CAAC;AACtB,SAAA;KACJ;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE;AAClF,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1E,YAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5D,SAAA;KACJ;IAED,cAAc,GAAA;QACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KAClE;IAED,cAAc,GAAA;QACV,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC/B,SAAA;KACJ;IAEO,cAAc,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;KACxC;IAEO,iBAAiB,CAAC,GAAG,UAAoB,EAAA;AAC7C,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;KACxF;qGA7JQ,iBAAiB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;;;;;;;;AA4Cf,YAAA,EAAA,CAAA,WAAA,CAAA,iBAAiB,KAAU,iBAAiB,CAAA,CAAA;;;;;;;AApD5C,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,iBAAiB;AAC9B,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,aAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0CAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDpCL,EAgCqB,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AA/BjB,YAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,6DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,YAAA,GAAA,MAAA,CAAA,EAAA,CAA0B,CAwBX,aAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,aAAA,CAAA,MAAA,CAAqB,CAxBV,EAAA,CAAA,CAAA,QAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAyBhB,GAA6B,CAAA,eAAA,CAAA,GAAA,CAAA,YAAA,CAAA,CAAA,EAAA,CAzBb,CA0BlB,MAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,IAAA,CAAA,IAAA,CAAA,MAAA,CAAiB,CAAE,CAAA,OAAA,GAAA,CAAA,cAAA,EAAgB,CA1BjB,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,CAAA,MAAA,EAAA,EAAA,OA2BjB,mBAAe,CA3BE,EAAA,CAAA,CAAA;YAgC1B,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAGc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;YAClB,EAAY,CAAA,YAAA,EAAA,CAAA;YACZ,EAA0E,CAAA,UAAA,CAAA,EAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;AAxCtE,YAAA,EAAA,CAAA,WAAA,CAAA,6BAAA,EAAA,GAAA,CAAA,cAAA,CAAoD,CAAA,sCAAA,EAAA,GAAA,CAAA,uBAAA,CAAA,CAAA;YA7BpD,EAA0B,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,4BAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,sBAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,8BAAA,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,CAAA,wBAAA,CAAA,aAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,oCAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,IAAA,EAAA,GAAA,CAAA,EAAA,CAAA,0CAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,QAAA,EAAA,CAAA,GAAA,CAAA,IAAA,KAAA,cAAA,IAAA,CAAA,EAAA,GAAA,CAAA,UAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,GAAA,CAAA,MAAA,CAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,aAAA,EAAA,GAAA,CAAA,mBAAA,CAAA,CAAA;YAsB1B,EAA4B,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAUd,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,CAAA;YAG1B,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA;YAGnB,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxB,EAAwB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,kBAAA,CAAA,CAAA;YAIxB,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAApB,EAAoB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAA,CAAA;YAGpB,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA3B,EAA2B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,qBAAA,CAAA,CAAA;YAM3B,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,CAAA;YAK1B,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;YAa3B,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,KAAA,cAAA,CAAA,CAAA;;;uFChCpB,iBAAiB,EAAA,CAAA;cAZ7B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGV,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAmB,iBAAA;AAC9B,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;AACJ,iBAAA,EAAA,QAAA,EAAA,qwGAAA,EAAA,MAAA,EAAA,CAAA,8/TAAA,CAAA,EAAA,CAAA;qFAKD,IAAI,EAAA,CAAA;kBAFH,KAAK;;kBACL,WAAW;mBAAC,OAAO,CAAA;YAGX,4BAA4B,EAAA,CAAA;kBAApC,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,uBAAuB,EAAA,CAAA;kBAA/B,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,qBAAqB,EAAA,CAAA;kBAA7B,KAAK;YACG,EAAE,EAAA,CAAA;kBAAV,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YAEO,QAAQ,EAAA,CAAA;kBAApB,KAAK;YAIG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEI,MAAM,EAAA,CAAA;kBAAf,MAAM;YACG,IAAI,EAAA,CAAA;kBAAb,MAAM;YACG,OAAO,EAAA,CAAA;kBAAhB,MAAM;YACqE,QAAQ,EAAA,CAAA;kBAAnF,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;YAC1B,aAAa,EAAA,CAAA;kBAA3C,YAAY;mBAAC,eAAe,CAAA;YACO,kBAAkB,EAAA,CAAA;kBAArD,YAAY;mBAAC,oBAAoB,CAAA;YACF,cAAc,EAAA,CAAA;kBAA7C,YAAY;mBAAC,gBAAgB,CAAA;YACQ,oBAAoB,EAAA,CAAA;kBAAzD,YAAY;mBAAC,sBAAsB,CAAA;YACE,oBAAoB,EAAA,CAAA;kBAAzD,YAAY;mBAAC,sBAAsB,CAAA;YACL,UAAU,EAAA,CAAA;kBAAxC,WAAW;mBAAC,gBAAgB,CAAA;;;MClFpB,mBAAmB,CAAA;IAC5B,SAAS,CAAC,GAAuB,EAAE,WAA8B,EAAA;AAC7D,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACrE;uGAHQ,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;4HAAnB,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAnB,mBAAmB,EAAA,CAAA;cAH/B,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACF,gBAAA,IAAI,EAAE,qBAAqB;AAC9B,aAAA,CAAA;;;;;;;ICFW,EAOgC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAH5B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAsB,CAAA,iBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAIhC,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;;AAJF,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAC,KAAA,EAAA,MAAA,CAAA,GAAA,KAAA,MAAA,CAAA,iBAAA,CAAA,CAA+F,+EAAA,CAAA,mBAAA,EAAA,KAAA,CAAA,CAAA;IAG/F,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;;AAXR,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAuF,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAE/E,EASM,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AACV,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IATkB,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA;;;;IAJhD,EAA4G,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACxG,EAaM,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACN,EAM2C,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAAvC,EAAiB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;AAC1C,IAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;;;IArBN,EAA6C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7C,EAA6C,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,qBAAA,CAAA,CAAA;IAgB/C,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA7B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,iBAAA,CAA6B,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,mBAAA,CAAA,CAAA,CAAA;;;;IAqBjC,EAKoE,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAFhE,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,WAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAwB,CAAA,eAAA,CAAA,WAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAGlC,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IAHF,EAAuD,CAAA,UAAA,CAAA,WAAA,KAAA,OAAA,CAAA,eAAA,GAAA,UAAA,GAAA,EAAA,CAAA,CAAA;IACvD,EAA+D,CAAA,WAAA,CAAA,4BAAA,EAAA,OAAA,CAAA,iBAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IAC/D,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,IAAA,EAAA,WAAA,EAAA,GAAA,CAAA,CAAA;;;IARJ,EAAuF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IACnF,EAOM,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAPsB,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAX,EAAW,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;MCvB1B,iCAAiC,CAAA;AA+D1C,IAAA,IAAI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KACvD;IAID,WACY,CAAA,SAA2B,EAC3B,YAAiC,EACP,YAA8B,EACxD,GAAsB,EACvB,iBAAsC,EAAA;QAJrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;QACP,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;QACxD,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACvB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;AAzEzC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;QACzC,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;AACpB,QAAA,IAAA,CAAA,gBAAgB,GAAuB;AACnC,YAAA;gBACI,SAAS,EAAE,eAAe,CAAC,GAAG;AAC9B,gBAAA,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,YAAY,CAAC,QAAQ;AAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG;gBAC/C,WAAW,EAAE,MACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE;AACxH,aAAA;AACD,YAAA;gBACI,SAAS,EAAE,eAAe,CAAC,IAAI;AAC/B,gBAAA,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,YAAY,CAAC,QAAQ;AAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;gBAChD,WAAW,EAAE,MACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE;AACxH,aAAA;AACD,YAAA;gBACI,SAAS,EAAE,eAAe,CAAC,KAAK;AAChC,gBAAA,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE,YAAY,CAAC,UAAU;AAC9B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK;gBACjD,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAC5E,aAAA;AACD,YAAA;gBACI,SAAS,EAAE,eAAe,CAAC,OAAO;AAClC,gBAAA,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,YAAY,CAAC,YAAY;AAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO;gBACnD,WAAW,EAAE,MACT,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACtH,aAAA;AACD,YAAA;gBACI,SAAS,EAAE,eAAe,CAAC,IAAI;AAC/B,gBAAA,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,YAAY,CAAC,SAAS;AAC7B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;gBAChD,WAAW,EAAE,MAAK;AACd,oBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACzG,yBAAA,GAAG,EAAE;AACL,yBAAA,IAAI,EAAE,CAAC;AACZ,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;oBACtD,OAAO,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC;iBACjD;AACJ,aAAA;SACJ,CAAC;AAEF,QAAA,IAAA,CAAA,WAAW,GAAG;AACV,YAAA,CAAC,YAAY,CAAC,UAAU,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC;AAC7F,YAAA,CAAC,YAAY,CAAC,YAAY,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC;AAC/F,YAAA,CAAC,YAAY,CAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC;AAC5F,YAAA,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC;SAChG,CAAC;AAEF,QAAA,IAAA,CAAA,iBAAiB,GAAkB,YAAY,CAAC,QAAQ,CAAC;QACzD,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;QACtB,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAAa,CAAA,aAAA,GAAG,gBAAgB,CAAC;QAKjB,IAAY,CAAA,YAAA,GAAG,YAAY,CAAC;QASxC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3G,YAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAoC,CAAC;YAClE,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,YAAY,CAAC,YAAY,EAAE;AACtD,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC5G,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAClE,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,SAAS,CAAC,aAAa,EAAE;gBACzB,IAAI,CAAC,yCAAyC,EAAE,CAAC;AACpD,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACxC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;gBACzC,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,CAAC;KACvD;IAED,QAAQ,GAAA;QACJ,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE;gBAC9B,IAAI,CAAC,yCAAyC,EAAE,CAAC;AACpD,aAAA;YACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;IAED,eAAe,GAAA;QACX,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACxH,QAAA,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAE;AACtD,YAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtE,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAoC,CAAC;QACvE,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAE9E,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,YAAY,CAAC,YAAY,EAAE;AACtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC5G,SAAA;KACJ;AAED,IAAA,IAAI,oBAAoB,GAAA;QACpB,OAAO,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CACrF,IAAI,CAAC,SAAS,CAAC,WAA2B,CAC7C,CAAC;KACL;AAED,IAAA,8BAA8B,CAAC,IAAsD,EAAA;AACjF,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;KACrC;AAED,IAAA,eAAe,CAAC,aAAqB,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;AACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;KACrD;AAED,IAAA,aAAa,CAAC,OAAO,EAAA;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;AACzD,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;AACjE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QACjH,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,yCAAyC,GAAA;AACrC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAoB,CAAC;AAC1D,QAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/G,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/D,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtB,IACI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;AACjF,YAAA,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc;AACtC,YAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EACjD;AACE,YAAA,aAAa,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClD,YAAA,aAAqB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;AAC5D,SAAA;KACJ;AAED,IAAA,iBAAiB,CAAC,GAAQ,EAAA;AACtB,QAAA,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,EAAE;YACpC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KAC3F;IAED,yBAAyB,GAAA;AACrB,QAAA,MAAM,gBAAgB,GAClB,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU;AAClC,YAAA,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAE/F,QAAA,IAAI,gBAAgB,EAAE;AAClB,YAAA,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,YAAA,IAAI,eAAe,EAAE;AACjB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,eAAe,CACnD,eAAe,EACf,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,CACtD,CAAC;AACL,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,iBAAiB,CAAC,aAAqB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,YAAY,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACjE,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;AA9NQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,yCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,iCAAiC,uGAwE9B,gBAAgB,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAxEnB,iCAAiC,EAAA,SAAA,EAAA,CAAA,CAAA,8BAAA,EAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,KAAA,EAAAJ,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,qCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,qCAAA,CAAA,EAAA,CAAA,OAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0CAAA,CAAA,EAAA,CAAA,OAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iCAAA,CAAA,EAAA,CAAA,IAAA,EAAA,YAAA,EAAA,OAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDhB9C,EAuBM,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AAEN,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACqB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,OAAA,GAAA,CAAA,aAAA,CAAc,KAAK,CAAC,CAAC,EAAA,CAAA,CAAA;YACvE,EAAsE,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC1E,EAAM,CAAA,YAAA,EAAA,CAAA;AACN,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAmC,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AACzB,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,OAAS,+DAAuD,CAAC,EAAA,CAAA,CAAA;YAAC,EAA4B,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAO,CAAA,YAAA,EAAA,CAAA;YAC3G,EAAuE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AAAjE,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,OAAS,8DAAsD,CAAC,EAAA,CAAA,CAAA;YAAC,EAAqB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;YAEvG,EAA2E,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAA9B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,OAAA,GAAA,CAAA,aAAA,CAAc,IAAI,CAAC,CAAC,EAAA,CAAA,CAAA;YACtE,EAAuE,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AAC3E,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;YAEV,EASM,CAAA,UAAA,CAAA,EAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YA9CA,EAAmD,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,2BAAA,CAAA,CAAA;YA8BuB,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5B,EAA4B,CAAA,iBAAA,CAAA,GAAA,CAAA,gBAAA,GAAA,GAAA,CAAA,CAAA;YAC7B,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArB,EAAqB,CAAA,iBAAA,CAAA,GAAA,CAAA,eAAA,CAAA,CAAA;YAMzC,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,CAAA;;;uFCrBxE,iCAAiC,EAAA,CAAA;cAN7C,SAAS;2BACI,wCAAwC,EAAA,eAAA,EAGjC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8tEAAA,EAAA,MAAA,EAAA,CAAA,0oDAAA,CAAA,EAAA,CAAA;;sBA0E1C,MAAM;uBAAC,gBAAgB,CAAA;;;MC1EnB,2BAA2B,CAAA;IAIpC,IACI,gBAAgB,CAAC,MAAc,EAAA;QAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACrF,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;KACnD;IAED,WACqC,CAAA,aAA+B,EAC5C,SAAoB,EAAA;QADP,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC5C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KACxC;AAlBK,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,mCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,2BAA2B,uBAgBxB,gBAAgB,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,IAAA,CAAA,SAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAhBnB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,2BAA2B,EAPzB,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,CAAA,oBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAEQ,2BAA2B,EAAA,CAAA;cATvC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,sBAAsB;AAChC,gBAAA,SAAS,EAAE;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,gBAAgB;AACzB,wBAAA,QAAQ,EAAE,gBAAgB;AAC7B,qBAAA;AACJ,iBAAA;AACJ,aAAA,CAAA;;sBAiBQ,MAAM;uBAAC,gBAAgB,CAAA;;sBACvB,QAAQ;wBAhBG,eAAe,EAAA,CAAA;kBAA9B,KAAK;YACU,iBAAiB,EAAA,CAAA;kBAAhC,KAAK;YAGF,gBAAgB,EAAA,CAAA;kBADnB,KAAK;mBAAC,oBAAoB,CAAA;;;;ACM/B,MAAMG,MAAI,GAAG,MAAK,GAAG,CAAC;AAEhB,MAAO,iBAAkB,SAAQ,iBAAiB,CAAA;IACpD,iBAAiB,GAAA;AACb,QAAA,OAAO,CAAC,CAAC;KACZ;AACJ,CAAA;MAaY,qBAAqB,CAAA;IAI9B,IAAa,GAAG,CAAC,OAAe,EAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;KAC3D;IAED,IAAa,GAAG,CAAC,OAAe,EAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;KAC3D;AAgCD,IAAA,IAAc,UAAU,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC;KAC5C;IACD,IAAc,UAAU,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAC;KAC7C;AAwBD,IAAA,WAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;QAFnC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;;AA7DxC,QAAA,IAAA,CAAA,cAAc,GAA6B,wBAAwB,CAAC,OAAO,CAAC;QAE5E,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAI1B,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;QAE7B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAMtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ,CAAC;AAEpC,QAAA,IAAA,CAAA,6BAA6B,GAAQ;AACxC,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,OAAO;SACf,CAAC;QAEK,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;QACjD,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAGP,IAAe,CAAA,eAAA,GAAG,eAAe,CAAC;QAS3C,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SACjE,CAAC,CAAC,IAAI,CACH,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EACvB,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAA4B,KAAI;AAClD,YAAA,MAAM,aAAa,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;YACrC,IAAI,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE;AAC7E,gBAAA,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;AACnE,aAAA;AACD,YAAA,OAAO,aAAa,CAAC;AACzB,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,KAAa,KAAI;AAClB,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;gBAClD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC5D,aAAA;AACL,SAAC,CAAC,EACF,WAAW,CAAC,CAAC,CAAC,EACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAC7B,CAAC;QAkIK,IAAiB,CAAA,iBAAA,GAAeA,MAAI,CAAC;QACrC,IAAgB,CAAA,gBAAA,GAAqBA,MAAI,CAAC;;AAW1C,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,MAAc,KAAI;AACnC,YAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;AACjC,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACxC,aAAA;AAED,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC;QAsCM,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAnLnB,QAAA,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACnF,YAAA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAY,EAAE,aAAqB,KAAI;AAC9D,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;gBACnF,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;AACxF,aAAA;AACD,YAAA,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAC5E,SAAC,CAAC;KACL;IAED,eAAe,GAAA;QACX,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAChF,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC5D,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;KACpG;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;AAC9F,YAAA,IAAI,SAAS,CAAC;AACd,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAyB,CAAC,CAAC;AACxF,YAAA,IAAI,MAAM,EAAE;AACR,gBAAA,SAAS,GAAG,IAAI,CAAC,MAAyB,CAAC;AAC9C,aAAA;AAAM,iBAAA;gBACH,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5D,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC3D,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,SAAA;KACJ;AAED;;;AAGG;IACH,wBAAwB,GAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAChD,QAAQ,IAAI,CAAC,cAAc;YACvB,KAAK,wBAAwB,CAAC,eAAe;gBACzC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE;AAC9D,oBAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;AACpE,iBAAA;qBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,IAAI,EAAE;oBAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAChE,iBAAA;AAAM,qBAAA;AACH,oBAAA,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACtC,iBAAA;gBACD,MAAM;YACV,KAAK,wBAAwB,CAAC,aAAa;gBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE;AAC9D,oBAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;AAClE,iBAAA;qBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,IAAI,EAAE;oBAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;AAC9D,iBAAA;AAAM,qBAAA;AACH,oBAAA,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACpC,iBAAA;gBACD,MAAM;YACV,KAAK,wBAAwB,CAAC,gBAAgB;AAC1C,gBAAA,IAAI,WAAmB,CAAC;gBACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE;AAC9D,oBAAA,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;AACtC,oBAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;AACjE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;AAC9D,iBAAA;qBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,IAAI,EAAE;AAClE,oBAAA,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;oBACtC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;oBAC7D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1D,iBAAA;AAAM,qBAAA;AACH,oBAAA,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnC,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1D,iBAAA;gBACD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC1D,eAAe,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC7C,MAAM;AACV,YAAA;AACI,gBAAA,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM;AACb,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,eAAe,CAAC;KACvD;IAEM,mBAAmB,CAAC,UAAkB,EAAE,SAA0B,EAAA;AACrE,QAAA,IAAI,SAAS,KAAK,eAAe,CAAC,IAAI,EAAE;YACpC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;AAC7E,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,eAAe,CAAC,OAAO,IAAI,SAAS,KAAK,eAAe,CAAC,IAAI,EAAE;YACpG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,GAAG,YAAY,CAAC,YAA+B,CAAC;YACnG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;AAChE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC5B,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,SAAS,EAAE;AACvD,YAAA,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;AACxC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;KACJ;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,KAAa,EAAA;AAC3B;;;AAGG;QACH,MAAM,cAAc,GAAI,QAAgB,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AACrG,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC;QAChD,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAKM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC9B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;AAWM,IAAA,sBAAsB,CAAC,GAAW,EAAA;AACrC,QAAA,IAAI,GAAG,KAAK,IAAI,CAAC,UAAU,EAAE;AACzB,YAAA,MAAM,UAAU,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC;AAChC,YAAA,IAAI,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AACjG,gBAAA,IAAI,CAAC,iBAAiB,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACrE,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACvC,SAAA;KACJ;AAED;;;;AAIG;AACO,IAAA,kBAAkB,CAAC,UAAkB,EAAA;QAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;KACpC;AAED;;;;AAIG;AACO,IAAA,QAAQ,CAAC,SAAiB,EAAA;;;;AAIhC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,KAAK,CAAC;AACnD,SAAC,CAAC,CAAC;KACN;IAGD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACtB;IAED,OAAO,GAAA;QACH,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACtD,YAAA,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;YACxC,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,eAAe,KAAK,sBAAsB,EAAE;AAC5C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC1C,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACvB;yGA9QQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAH,IAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAI,mBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;AANnB,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC/E,gBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;gBACrD,mBAAmB;AACtB,aAAA,CAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCzCL,EAA4B,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC5B,EAWmB,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AATf,YAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,6DAAA,CAAA,MAAA,EAAA,EAAA,OAAiB,kCAA8B,CAAC,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OACvC,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,IAAA,EAAiB,CAAA,CADsB,EAAA,CAAA,CAAA;;;YAFpD,EAWmB,CAAA,YAAA,EAAA,CAAA;YACnB,EAMyB,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAHrB,EAAgB,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,mBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,eAAA,CAAA,IAAA,CAAiD,CAAC,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,OACjD,GAAkD,CAAA,mBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,eAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CADD,+FAExD,GAAQ,CAAA,MAAA,EAAA,CAAA,EAAA,CAFgD,CAGxD,QAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,OAAA,GAAA,CAAA,OAAA,EAAS,CAH+C,EAAA,CAAA,CAAA;YAItE,EAAiB,CAAA,YAAA,EAAA,CAAA;;;YAlBb,EAAiC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAjC,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAiC,sBAAA,CAAA,qBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,gCAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,iBAAA,CAAA,KAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAajC,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxC,EAAwC,CAAA,UAAA,CAAA,yBAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;;;uFD4B/B,qBAAqB,EAAA,CAAA;cAXjC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;oBACP,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC/E,oBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;oBACrD,mBAAmB;AACtB,iBAAA,EAAA,QAAA,EAAA,uvBAAA,EAAA,MAAA,EAAA,CAAA,ilHAAA,CAAA,EAAA,CAAA;+HAID,MAAM,EAAA,CAAA;kBADL,KAAK;YAGO,GAAG,EAAA,CAAA;kBAAf,KAAK;YAIO,GAAG,EAAA,CAAA;kBAAf,KAAK;YAKG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YAEG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YAEkC,QAAQ,EAAA,CAAA;kBAA/C,KAAK;;kBAAI,WAAW;mBAAC,gBAAgB,CAAA;YAE7B,wBAAwB,EAAA,CAAA;kBAAhC,KAAK;YAEG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YAEG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YAE0B,UAAU,EAAA,CAAA;kBAAzC,SAAS;mBAAC,YAAY,CAAA;YAsOf,MAAM,EAAA,CAAA;kBADb,WAAW;mBAAC,cAAc,CAAA;;;AElS/B,MAAM,WAAW,GAAG;AAChB,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,YAAY;AAC1B,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAClC,KAAA;CACJ,CAAC;AAeI,MAAO,eAAgB,SAAQ,eAAe,CAAA;AAChD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;KACvE;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QALH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;KAM/B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACjC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACrB,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE;AAClB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SACjC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;AAED,IAAA,UAAU,CAAC,UAAU,EAAA;AACjB,QAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAE/B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AACpC,SAAC,CAAC,CAAC;KACN;mGA5CQ,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AATb,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE;AACvD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC9BL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACC,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACpC,EAK+C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAH3C,EAAkB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,gEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,gEAAA,CAAA,MAAA,EAAA,EAAA,OAGD,4BAAwB,CAHvB,EAAA,CAAA,CAAA;AAGyB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;;YAN1C,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAG5B,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAkB,0BAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;uFD4Bb,eAAe,EAAA,CAAA;cAb3B,SAAS;AAEI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAER,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,QAAQ,EAAE,iBAAiB;AAC3B,wBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,qBAAA;AACD,oBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,EAAE;AACvD,iBAAA,EAAA,QAAA,EAAA,6TAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;sCAIG,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,cAAc,CAAA;YAKlB,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;AE/BV,MAAM,YAAY,GAAG;AACjB,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,SAAS;AACvB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,SAAS,EAAE,iBAAiB;AAC5B,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAClC,KAAA;CACJ,CAAC;AAeI,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AACjD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;KACvE;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QALH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;KAM/B;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;AAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;KACpC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACtB,SAAA;KACJ;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;AACX,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AAChE,SAAC,CAAC,CAAC;KACN;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC1B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvD,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;AACxB,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;AACpC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;SACvC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;AAEO,IAAA,YAAY,CAAC,MAAM,EAAA;QACvB,OAAO,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;KAC/C;oGApDQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AATd,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACxD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC9BL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACC,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACpC,EAI+C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAF3C,EAAkB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAED,4BAAwB,CAFvB,EAAA,CAAA,CAAA;AAEyB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;;YAL1C,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAG5B,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAkB,CAAA,kBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;uFD4Bb,gBAAgB,EAAA,CAAA;cAb5B,SAAS;AAEI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAET,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,QAAQ,EAAE,iBAAiB;AAC3B,wBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,qBAAA;AACD,oBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACxD,iBAAA,EAAA,QAAA,EAAA,6RAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;sCAIG,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,cAAc,CAAA;YAKlB,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;AE9BV,MAAM,aAAa,GAAG;AAClB,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,YAAY;AAC1B,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAClC,KAAA;CACJ,CAAC;AAeI,MAAO,iBAAkB,SAAQ,eAAe,CAAA;AAClD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;KACvE;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QALH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;KAM/B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACjC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACvB,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;AACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;AACrC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;SACvC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;;AAGD,IAAA,UAAU,CAAC,IAAI,EAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC;AAClE,SAAC,CAAC,CAAC;KACN;qGA/CQ,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AATf,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE;AACzD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC/BL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACC,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACpC,EAK+C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAH3C,EAAkB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,OAGD,4BAAwB,CAHvB,EAAA,CAAA,CAAA;AAGyB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;;YAN1C,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAG5B,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAkB,0BAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;uFD6Bb,iBAAiB,EAAA,CAAA;cAb7B,SAAS;AAGI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EACV,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,QAAQ,EAAE,iBAAiB;AAC3B,wBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,qBAAA;AACD,oBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE;AACzD,iBAAA,EAAA,QAAA,EAAA,+TAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;sCAIG,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,cAAc,CAAA;YAKlB,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;AE7BJ,MAAO,mBAAoB,SAAQ,eAAe,CAAA;AACpD,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KAChH;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QALH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;KAIpB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnB,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACzB,SAAA;KACJ;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzC,QAAA,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,OAAO,CAAC,UAAU,EAAE;AACpB,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;AAC7B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClC,aAAA;AAED,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,OAAO,EAAA;QACpB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9C,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;YACxB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAClD,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;SACpC,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,iBAAiB,GAAA;QACb,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,YAAY,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC3C,SAAA;AAED,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,kBAAkB,CAAC;QACtG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,SAAS,CAAC;QACd,MAAM,SAAS,GAAU,EAAE,CAAC;AAC5B,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE;AACtD,YAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;AAClC,YAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACrB,YAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,YAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC3C,SAAS,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,SAAS,GAAG,IAAI;AACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBACtC,UAAU,EAAE,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAQ,EAAE,KAAK;AAClB,aAAA,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAEO,IAAA,eAAe,CAAC,SAAS,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KAC/E;AAEO,IAAA,eAAe,CAAC,IAAI,EAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9D;AAED,IAAA,UAAU,CAAC,OAAO,EAAA;QACd,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,EAAE;AACxF,gBAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AAED,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,CAAC;KACN;uGA5GQ,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;ACVhC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqC,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACX,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACpC,EAQ+C,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAJ3C,EAA2B,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,+DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,aAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,+DAAA,CAAA,MAAA,EAAA,EAAA,OAIV,4BAAwB,CAJd,EAAA,CAAA,CAAA;AAIgB,YAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;;YATrC,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAK5B,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,CAA2B,0BAAA,CAAA,OAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;uFDItB,mBAAmB,EAAA,CAAA;cAL/B,SAAS;2BAGI,aAAa,EAAA,QAAA,EAAA,wbAAA,EAAA,MAAA,EAAA,CAAA,8JAAA,CAAA,EAAA,CAAA;sCAInB,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,cAAc,CAAA;YAKlB,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;AETV,MAAM,YAAY,GAAG;AACjB,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,MAAM;AACpB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,cAAc,EAAE,WAAW;AAC3B,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,kBAAkB,EAAE,WAAW;AAClC,KAAA;CACJ,CAAC;AAeI,MAAO,gBAAiB,SAAQ,eAAe,CAAA;AACjD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;KACvE;AAMD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QALH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;KAM/B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACjC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;AACtB,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEpB,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;AACxB,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;SACvC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;AACX,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAErC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,gBAAgB,CAAC;AAChD,SAAC,CAAC,CAAC;KACN;oGA9CQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AATd,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,iBAAA;AACD,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACxD,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AC9BL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACC,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACpC,EAK+C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAH3C,EAAkB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAGD,4BAAwB,CAHvB,EAAA,CAAA,CAAA;AAGyB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;;YAN1C,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,iBAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAG5B,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAkB,0BAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;uFD4Bb,gBAAgB,EAAA,CAAA;cAb5B,SAAS;AAEI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAET,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,QAAQ,EAAE,iBAAiB;AAC3B,wBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,qBAAA;AACD,oBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACxD,iBAAA,EAAA,QAAA,EAAA,8TAAA,EAAA,MAAA,EAAA,CAAA,iJAAA,CAAA,EAAA,CAAA;sCAIG,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,cAAc,CAAA;YAKlB,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;AE5BV;AAcM,MAAO,oBAAqB,SAAQ,eAAe,CAAA;AAyBrD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE,CAAC;QAvBH,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAEhC,IAAa,CAAA,aAAA,GAAuB,SAAS,CAAC;QAC9C,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;AAE5B,QAAA,IAAA,CAAA,YAAY,GAAU;YAClB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC5C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC3C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC7C,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;SAChD,CAAC;QAEM,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;KAI5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,EAAE,CAAC;AAC9E,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAEvF,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,IAAI,CAAC,aAAa,GAAGC,SAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACtD,SAAA;KACJ;IAED,UAAU,CAAC,UAAmB,EAAE,KAAc,EAAA;QAC1C,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,MAAM,UAAU,GAAG,CAAC,CAAC;AAErB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU;cACxB,MAAM,CAAC,GAAG,CAAC,CAAG,EAAA,KAAK,GAAG,UAAU,IAAI,IAAI,CAAO,IAAA,EAAA,UAAU,IAAI,SAAS,CAAA,CAAE,EAAE,qBAAqB,CAAC,CAAC,IAAI,EAAE;cACvG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;KAC7B;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAEnD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,KAAI;AACtD,YAAA,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;gBACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtC,gBAAA,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;AAC5E,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,WAAW,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;AAChC,SAAA;KACJ;IAED,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,EAAA;QACnD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,uBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;AAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA;AAED,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACtD;AAED,IAAA,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAA;AACpE,QAAA,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,gBAAgB,EAAE;AACnB,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;gBACjF,WAAW,IAAI,CAAC,CAAC;AACpB,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;gBAChF,WAAW,IAAI,CAAC,CAAC;AACpB,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAED,IAAA,qBAAqB,CAAC,KAA8C,EAAA;QAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;AAED,IAAA,sBAAsB,CAAC,KAAY,EAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAGA,SAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,mBAAmB;YAAE,OAAO;AAErC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;AAC/D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;AAEtD,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEnD,IAAI,uBAAuB,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,EAAE;AACnB,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,CAAC;AACjE,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;AAChE,iBAAA;AACJ,aAAA;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEvC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,aAAC,CAAC,CAAC;AACN,SAAA;QAED,MAAM,cAAc,GAAG,MAAM;AACxB,aAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;aACvB,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEjH,QAAA,MAAM,SAAS,GAAa;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AACxB,YAAA,eAAe,EAAE,cAAc,CAAC,IAAI,EAAE;YACtC,KAAK,EAAE,GAAGC,IAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,CAAA,EAAA,EAAK,IAAI,CAAG,CAAA,CAAA;AACpF,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC3D,CAAC;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACnC;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;AACX,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACjC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,KAAI;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;AAClE,SAAC,CAAC,CAAC;KACN;wGAtKQ,oBAAoB,GAAA,CAAA,EAAA,CAAA,EAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,oBAAoB,EARlB,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,WAAW;AACpB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,iBAAA;AACJ,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ACtBL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqC,aAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAEP,EAAQ,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YAClC,EAOoD,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YALhD,EAA2B,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,gEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,aAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,gEAAA,CAAA,MAAA,EAAA,EAAA,OAKV,iCAA6B,CALnB,EAAA,CAAA,CAAA;AAKqB,YAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;AAEpE,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgC,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAAI,CAAA,MAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YAC9B,EAKqD,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAHjD,EAA0B,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,OAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAGT,kCAA8B,CAHrB,EAAA,CAAA,CAAA;AAGuB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,EAAA,CAAA;;YAdlE,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA3B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,CAA2B,0BAAA,CAAA,OAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;YAW3B,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA1B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAA,IAAA,CAA0B,8CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;uFDQzB,oBAAoB,EAAA,CAAA;cAZhC,SAAS;AAEI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAEb,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,WAAW;AACpB,wBAAA,QAAQ,EAAE,iBAAiB;AAC3B,wBAAA,IAAI,EAAE,CAAC,eAAe,EAAE,+BAA+B,CAAC;AAC3D,qBAAA;AACJ,iBAAA,EAAA,QAAA,EAAA,o0BAAA,EAAA,MAAA,EAAA,CAAA,uOAAA,CAAA,EAAA,CAAA;sCAGQ,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;;;IE1BN,EAM8C,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAW,CAAA,YAAA,EAAA,CAAA;;;IAJrD,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,iCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAKjB,EAM8C,CAAA,cAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAc,CAAA,YAAA,EAAA,CAAA;;;IAJxD,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,iCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAKjB,EAM8C,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAY,CAAA,YAAA,EAAA,CAAA;;;IAJtD,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,iCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAKjB,EAM8C,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAW,CAAA,YAAA,EAAA,CAAA;;;IAJrD,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,iCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAKjB,EAM8C,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAU,CAAA,YAAA,EAAA,CAAA;;;IAJpD,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,iCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAKjB,EAQ8C,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IAA1C,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,2EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAe,CAAA,YAAA,EAAA,CAAA;;;AANzD,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAa,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;MC7BR,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;QAOa,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;QACrC,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QACvB,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;QAC7C,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;AAIxB,QAAA,IAAA,CAAA,YAAY,GAA2B,IAAI,YAAY,EAAY,CAAC;AAQjF,KAAA;AANG,IAAA,kBAAkB,CAAC,IAAI,EAAA;QACnB,UAAU,CAAC,MAAK;AACZ,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC,EAAE,GAAG,CAAC,CAAC;KACX;oGAfQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,cAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDT7B,EAAK,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;YACD,EAMyD,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;YACzD,EAM4D,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;YAC5D,EAM0D,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAC1D,EAMyD,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;YACzD,EAMwD,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;YACxD,EAQ6D,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACjE,EAAM,CAAA,YAAA,EAAA,CAAA;;YA3CG,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,MAAA,CAAA,CAAA;YAO/B,EAAkC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlC,EAAkC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,SAAA,CAAA,CAAA;YAOlC,EAAgC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhC,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,OAAA,CAAA,CAAA;YAOhC,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,MAAA,CAAA,CAAA;YAO/B,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,KAAA,CAAA,CAAA;YAO9B,EAAuC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvC,EAAuC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,KAAA,cAAA,CAAA,CAAA;;;uFC5BnC,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BAEI,UAAU,EAAA,aAAA,EAEL,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,8qDAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,EAAA,8qhFAAA,CAAA,EAAA,CAAA;gBAG5B,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACI,YAAY,EAAA,CAAA;kBAArB,MAAM;;;MCRE,kBAAkB,CAAA;aACH,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC,EAAA;AACxB,IAAA,SAAA,IAAA,CAAA,eAAe,GAAqB;AAC/C,QAAA,CAAC,EAAE,MAAM;AACT,QAAA,CAAC,EAAE,MAAM;AACT,QAAA,CAAC,EAAE,MAAM;AACT,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,CAAC,EAAE,KAAK;AACR,QAAA,EAAE,EAAE,MAAM;AACV,QAAA,EAAE,EAAE,MAAM;KACb,CAAC,EAAA;AAEK,IAAA,OAAO,sBAAsB,CAAC,IAAmB,EAAE,oBAA4B,EAAA;QAClF,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,SAAA;AAED,QAAA,OAAOC,OAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC;KAC7G;AAEM,IAAA,OAAO,qBAAqB,CAAC,IAAmB,EAAE,oBAA4B,EAAE,cAAuB,EAAA;AAC1G,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3B,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,cAAc,EAAE;YACjB,IAAI,KAAK,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;gBACjE,WAAW,IAAI,CAAC,CAAC;AACpB,aAAA;AACJ,SAAA;AAAM,aAAA;YACH,IAAI,KAAK,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;gBAChE,WAAW,IAAI,CAAC,CAAC;AACpB,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;IAEM,OAAO,gBAAgB,CAAC,KAAa,EAAA;QACxC,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;KACpF;IAEM,OAAO,qCAAqC,CAC/C,YAA2B,EAC3B,UAAkB,EAClB,oBAA4B,EAC5B,cAAuB,EAAA;AAEvB,QAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACpH,OAAO,kBAAkB,CAAC,uBAAuB,CAAC,aAAa,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;KAC1G;AAEM,IAAA,OAAO,0BAA0B,CACpC,IAAmB,EACnB,UAAkB,EAClB,oBAA4B,EAAA;AAE5B,QAAA,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;YAAE,OAAO;AAEjC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AAErC,QAAA,MAAM,WAAW,GAAW,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,IAAI,CAC7E,CAAC,GAAW,KAAK,kBAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,UAAU,CAC1E,CAAC;AACF,QAAA,MAAM,0BAA0B,GAAG,WAAW,GAAG,oBAAoB,GAAG,CAAC,CAAC;AAC1E,QAAA,MAAM,WAAW,GAAG,0BAA0B,IAAI,EAAE,GAAG,0BAA0B,GAAG,EAAE,GAAG,0BAA0B,CAAC;AAEpH,QAAA,OAAO,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;KACtE;AAEM,IAAA,OAAO,uBAAuB,CACjC,mBAAkC,EAClC,oBAA4B,EAC5B,cAAuB,EAAA;AAEvB,QAAA,IAAI,CAAC,mBAAmB;YAAE,OAAO;AAEjC,QAAA,IAAI,qBAAqB,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;AACxD,QAAA,IAAI,cAAc,EAAE;AAChB,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;AACxF,gBAAA,qBAAqB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACxC,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,oBAAoB,IAAI,oBAAoB,KAAK,CAAC,EAAE;AACzF,gBAAA,qBAAqB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7C,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;KACvC;sGAlGQ,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;AAAlB,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,kBAAkB,WAAlB,kBAAkB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAlB,kBAAkB,EAAA,CAAA;cAD9B,UAAU;;;ACRX;AACA;IACY,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;IAEW,kBAWX;AAXD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,iBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC/B,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,GAW5B,EAAA,CAAA,CAAA;;IClBW,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;;;;ICDO,EAK6B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAzB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAc,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACxB,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;;AAJF,IAAA,EAAA,CAAA,WAAA,CAAA,UAAA,EAAA,OAAA,CAAA,MAAA,CAAA,SAAA,CAAA,KAAA,MAAA,CAAA,aAAA,IAAA,OAAA,KAAA,MAAA,CAAA,aAAA,CAA8E,CAAA,UAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAG9E,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,MAAA,CAAA,SAAA,CAAA,IAAA,OAAA,CAAA,IAAA,IAAA,OAAA,EAAA,GAAA,CAAA,CAAA;;;IARJ,EAAyC,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACrC,EAOM,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IAPN,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;MCQ/B,uBAAuB,CAAA;IAUhC,IAAa,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAb1C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAGT,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAChC,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;QAChC,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;AACjC,QAAA,IAAA,CAAA,IAAI,GAAqB,gBAAgB,CAAC,OAAO,CAAC;AAS3D,QAAA,IAAA,CAAA,QAAQ,GAA6B,MAAK,GAAG,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAHa;AAK9C,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;KAC/B;AAED,IAAA,QAAQ,CAAC,IAAI,EAAA;AACT,QAAA,MAAM,YAAY,GAAG,IAAI,YAAY,MAAM,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAC/E,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YAClC,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;2GA/CQ,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAHrB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDRpH,EAA8E,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC1E,EASe,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAM,CAAA,YAAA,EAAA,CAAA;;YAXwB,EAA4B,CAAA,WAAA,CAAA,UAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAAC,EAAkB,CAAA,WAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAC1C,EAAQ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAR,EAAQ,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;;;uFCU9B,uBAAuB,EAAA,CAAA;cAPnC,SAAS;2BACI,kBAAkB,EAAA,SAAA,EAGjB,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAC,MAA6B,uBAAA,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,eAAA,EAC/F,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,khBAAA,EAAA,MAAA,EAAA,CAAA,otCAAA,CAAA,EAAA,CAAA;oEAKtC,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YAEO,QAAQ,EAAA,CAAA;kBAApB,KAAK;;;;;ACpBN,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA+B,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACL,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACpC,EAAuH,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAAvF,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAA0B,CAAmC,eAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAwB,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA,CAA3D,EAAA,CAAA,CAAA;AAC1D,IAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;;;IAFU,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAV,EAAU,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IACA,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAA0B,CAAA,OAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA;;;;AAG9D,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0D,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAChC,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACpC,EAM0B,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AAHtB,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAA0B,CACT,eAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAwB,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA,CADf,EAAA,CAAA,CAAA;AAGJ,IAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,CAAA;;;IAPvB,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAV,EAAU,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IAI5B,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAA0B,CAAA,OAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA;;MCFzB,gBAAgB,CAAA;AAOzB,IAAA,WAAA,GAAA;QALS,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAGjB,QAAA,IAAA,CAAA,SAAS,GAA2B,IAAI,YAAY,EAAY,CAAC;KAE3D;IAEhB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5C;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;AAClB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AACvB,YAAA,MAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK;aACR,CAAC;AACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,SAAA;KACJ;oGAtBQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDT7B,EAAK,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;YACD,EAIM,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EASM,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YAfI,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,MAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA;YAKvB,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,MAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA;;;uFCGpB,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BAEI,UAAU,EAAA,aAAA,EAEL,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4qBAAA,EAAA,MAAA,EAAA,CAAA,oJAAA,EAAA,8qhFAAA,CAAA,EAAA,CAAA;sCAG5B,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACI,SAAS,EAAA,CAAA;kBAAlB,MAAM;;;MCNE,8BAA8B,CAAA;AAOvC,IAAA,WAAA,CAAoB,OAAgB,EAAA;QAAhB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAL5B,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAEpB,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;AACd,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAO,CAAC;KAElB;IAExC,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY;AAChD,aAAA,IAAI,CACD,IAAI,CAAC,CAAC,CAAC,EACP,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3B,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,EAC/C,oBAAoB,EAAE,CACzB;AACA,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;KACV;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACnC;kHAzBQ,8BAA8B,EAAA,EAAA,CAAA,iBAAA,CAAAP,IAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;uFAA9B,8BAA8B,EAAA,CAAA;cAH1C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,yBAAyB;AACtC,aAAA,CAAA;4DAKY,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACI,qBAAqB,EAAA,CAAA;kBAA9B,MAAM;;;;;;;;ICXX,EAA8C,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC1C,EAgBoB,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;IAdhB,EAAmB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,uEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,KAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,uEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OACF,eAAA,MAAe,CAAA,aAAA,EAAA,CAAA,IADb,CAEM,uBAAA,EAAA,SAAA,+EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,wCAAgC,CAAA,CAAA,EAAA,CAFtC,gJAGX,OAAgB,CAAA,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA,OAAE,eAAA,OAAW,CAAA,SAAA,EAAA,CAAA,IAHlB,CAIV,OAAA,EAAA,SAAA,+DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAoB,CAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAJV,EAAA,CAAA,CAAA;IAFvB,EAgBoB,CAAA,YAAA,EAAA,CAAA;IACxB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAfP,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,SAAA,CAAA,6BAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,aAAA,EAAA,MAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;;IAiBvB,EAmBoB,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;IAjBhB,EAAmB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,KAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,sEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OACF,eAAA,OAAe,CAAA,aAAA,EAAA,CAAA,IADb,CAEM,uBAAA,EAAA,SAAA,8EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,wCAAgC,CAAA,CAAA,EAAA,CAFtC,gJAGX,OAAgB,CAAA,IAAA,CAAA,IAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,CAAA,OAAE,eAAA,OAAW,CAAA,SAAA,EAAA,CAAA,IAHlB,CAIV,OAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAoB,CAAA,OAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAJV,EAAA,CAAA,CAAA;IAFvB,EAmBoB,CAAA,YAAA,EAAA,CAAA;;;AAjBhB,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,CAAmB,CAAA,UAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,aAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;;IAmB3B,EAAiE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAA1B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAe,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IACxE,EAAgF,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAA5B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAiB,CAAA,eAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IAEvF,EAAiI,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAAlC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAuB,CAAA,eAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAC5H,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAS,CAAA,YAAA,EAAA,CAAA;;;IADL,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,cAAA,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;MCRa,gBAAgB,CAAA;IACzB,IACI,QAAQ,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAChC;IAED,IACI,aAAa,CAAC,KAAoB,EAAA;AAClC,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE;AAC/D,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;AACrF,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;gBACxE,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;AAC3D,oBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AAChF,wBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/B,qBAAA;AACJ,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,IACI,IAAI,CAAC,GAAG,EAAA;AACR,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,gBAAA,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;AACnC,aAAA;AACJ,SAAA;KACJ;AACD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IACI,WAAW,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;KAC3B;AACD,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IAED,IACI,SAAS,CAAC,GAAG,EAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,WAAW,CAAC,CAAC;AAClF,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAoDD,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;AAyBD,IAAA,GAAG,CAAC,GAAW,EAAA;QACX,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KACvC;AAED,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAED,IAAW,KAAK,CAAC,CAAkB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAClD,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAMD,IAAA,WAAA,CACY,UAAsB,EACtB,QAAmB,EACnB,GAAsB,EAAA;QAFtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAjGlC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAyBjB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;AAG1B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAc,CAAC;AAGzC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE,CAAC;AAGzC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;AAGxC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAGvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAO,CAAC;QAG/B,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAOrB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAS,CAAA,SAAA,GAAmB,IAAI,CAAC;QACjC,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,cAAc,GAAkB;AAC5B,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,QAAQ,EAAE,KAAK;YACf,aAAa,EAAE,CAAC,MAAW,EAAE,OAAY,KAAK,IAAI;AAClD,YAAA,IAAI,EAAE,MAAM;SACf,CAAC;QAQuB,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAqBG,MAAI,CAAC;QAC1C,IAAiB,CAAA,iBAAA,GAAeA,MAAI,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAyB,MAAK,GAAG,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;QAkBzB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAClB,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAMvB;IAEJ,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC9B;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;AAED,IAAA,UAAU,CAAC,KAAsB,EAAA;AAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,UAAU,EAAE;AACZ,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,UAAU,CAAC,CAAC;AACjF,SAAA;AACD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,eAAe,GAAA;QACX,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;AAED,IAAA,eAAe,CAAC,MAAW,EAAA;AACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;AAED,IAAA,OAAO,CAAC,MAAM,EAAA;AACV,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACrB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC3C;oGAxOQ,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;;;;;;;;;;AATd,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,gBAAgB,EAAC;AAC/C,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,kBAAA,EAAAK,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,KAAA,EAAA,KAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDrCL,EAA+C,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAE/C,EAkBe,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACf,EAqBc,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YACd,EAAwE,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACxE,EAAuF,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACvF,EAA+C,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAC/C,EAES,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;YA9CM,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAb,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,IAAA,CAAa,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;YAyCrB,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAX,EAAW,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YACX,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,KAAA,QAAA,CAAA,CAAA;YAErB,EAAoF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAApF,EAAoF,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,cAAA,CAAA,IAAA,IAAA,GAAA,CAAA,cAAA,CAAA,WAAA,IAAA,GAAA,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA;;;uFCNhF,gBAAgB,EAAA,CAAA;cAb5B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGT,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAE,UAAU,EAAC,sBAAsB,EAAC;AAC/C,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;iBACJ,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8vDAAA,EAAA,MAAA,EAAA,CAAA,uzIAAA,CAAA,EAAA,CAAA;qHAI3C,QAAQ,EAAA,CAAA;kBADX,KAAK;YAMF,aAAa,EAAA,CAAA;kBADhB,KAAK;YAyBF,IAAI,EAAA,CAAA;kBADP,KAAK;YAeF,WAAW,EAAA,CAAA;kBADd,KAAK;YASF,SAAS,EAAA,CAAA;kBADZ,KAAK;YAYN,IAAI,EAAA,CAAA;kBADH,KAAK;YAIN,QAAQ,EAAA,CAAA;kBADP,KAAK;YAIN,GAAG,EAAA,CAAA;kBADF,KAAK;YAIN,GAAG,EAAA,CAAA;kBADF,KAAK;YAIN,SAAS,EAAA,CAAA;kBADR,KAAK;YAIN,SAAS,EAAA,CAAA;kBADR,KAAK;YAIN,OAAO,EAAA,CAAA;kBADN,KAAK;YAIN,IAAI,EAAA,CAAA;kBADH,KAAK;YAKN,UAAU,EAAA,CAAA;kBAFT,KAAK;;kBACL,WAAW;mBAAC,wBAAwB,CAAA;YAIrC,IAAI,EAAA,CAAA;kBADH,MAAM;YAIP,OAAO,EAAA,CAAA;kBADN,MAAM;mBAAC,OAAO,CAAA;YAIf,mBAAmB,EAAA,CAAA;kBADlB,MAAM;YAIP,aAAa,EAAA,CAAA;kBADZ,MAAM;YAIP,YAAY,EAAA,CAAA;kBADX,MAAM;YAIP,aAAa,EAAA,CAAA;kBADZ,MAAM;YAGE,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAGF,YAAY,EAAA,CAAA;kBADf,WAAW;mBAAC,OAAO,CAAA;YAkBoB,YAAY,EAAA,CAAA;kBAAnD,SAAS;mBAAC,UAAU,CAAA;YACsB,UAAU,EAAA,CAAA;kBAApD,YAAY;AAAC,YAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YACE,UAAU,EAAA,CAAA;kBAApD,YAAY;AAAC,YAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAEhB,QAAQ,EAAA,CAAA;kBAAhC,WAAW;mBAAC,UAAU,CAAA;;;;IC9KvB,EACI,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IADoC,EAAc,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,QAAA,CAA4B,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,IAAA,SAAA,CAAA,CAAA;;;IAGnF,EAAkD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC9C,EAAyD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAC7D,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADC,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5B,EAA4B,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;IAEnC,EAMI,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IAHA,EAAmB,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA;AACnB,IAAA,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,MAAA,CAAA,aAAA,CAAiC,CAAA,OAAA,EAAA,MAAA,CAAA,cAAA,IAAA,SAAA,CAAA,CAAA;;;MCc5B,iBAAiB,CAAA;AAL9B,IAAA,WAAA,GAAA;QAQI,IAAK,CAAA,KAAA,GAAe,SAAS,CAAC;QAMrB,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;QAMlB,IAAa,CAAA,aAAA,GAAG,MAAM,CAAC;QAIhC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAIjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAIlB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACpB,KAAA;qGA5BY,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;YDzB9B,EAA8B,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;YAC1B,EACI,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACJ,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YACzB,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAMI,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACR,EAAS,CAAA,YAAA,EAAA,CAAA;;YAdD,EAAqB,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YACrB,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAGR,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAIhB,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;;uFCiBX,iBAAiB,EAAA,CAAA;cAL7B,SAAS;2BACI,WAAW,EAAA,QAAA,EAAA,+lBAAA,EAAA,MAAA,EAAA,CAAA,8hOAAA,CAAA,EAAA,CAAA;gBAOrB,KAAK,EAAA,CAAA;kBAFJ,KAAK;;kBACL,WAAW;mBAAC,OAAO,CAAA;YAKpB,IAAI,EAAA,CAAA;kBAFH,KAAK;;kBACL,WAAW;mBAAC,iBAAiB,CAAA;YAErB,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YAIN,SAAS,EAAA,CAAA;kBAFR,KAAK;;kBACL,WAAW;mBAAC,uBAAuB,CAAA;YAE3B,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YAIN,QAAQ,EAAA,CAAA;kBAFP,KAAK;;kBACL,WAAW;mBAAC,gBAAgB,CAAA;YAK7B,SAAS,EAAA,CAAA;kBAFR,KAAK;;kBACL,WAAW;mBAAC,eAAe,CAAA;YAK5B,QAAQ,EAAA,CAAA;kBAFP,KAAK;;kBACL,WAAW;mBAAC,cAAc,CAAA;;;;;IC7CvB,EACwC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAc,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAAlB,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,iBAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IASlD,EAKyC,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAArC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAA0B,CAAA,YAAA,CAAA,MAAA,CAAA,YAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAY,CAAA,YAAA,EAAA,CAAA;;;;IAhB7D,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACpD,EAC0D,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAC1D,EAM0B,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAFtB,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAA0B,CACf,SAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAkC,CAAA,YAAA,CAAA,MAAA,CAAA,YAAA,EAAA,MAAA,CAAA,CAAA,CADnB,EAAA,CAAA,CAAA;IAEJ,EAAW,CAAA,YAAA,EAAA,CAAA;IACrC,EAAyC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACrC,EAKqD,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IACrD,EAA6F,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAAjC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAsB,CAAA,oBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAY,EAAA,EAAA,CAAA;;;IAhBzG,EAAmD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnD,EAAmD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,IAAA,CAAA,MAAA,CAAA,mBAAA,EAAA,IAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAKnD,EAA4E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5E,EAA4E,CAAA,WAAA,CAAA,kCAAA,EAAA,CAAA,MAAA,CAAA,mBAAA,EAAA,IAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAC5E,EAA0B,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;IAKrB,EAA2C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3C,EAA2C,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,YAAA,IAAA,MAAA,CAAA,mBAAA,EAAA,CAAA,CAAA;;MCI/C,wBAAwB,CAAA;IAYjC,IAAkC,QAAQ,CAAC,KAAuB,EAAA;AAC9D,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;KACjB;AAED,IAAA,WAAA,CAAoB,QAA2B,EAAA;QAA3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAdxC,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAGjB,IAAe,CAAA,eAAA,GAAG,SAAS,CAAC;QAE3B,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;AAElB,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAO,CAAC;KAO9B;AAE5C,IAAA,WAAW,CAAC,OAAsB,EAAA;QACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;IAEM,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC/B;IAEM,oBAAoB,GAAA;AACvB,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KAC1B;IAEM,mBAAmB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KACrD;IAEM,YAAY,CAAC,KAAa,EAAE,YAA4B,EAAA;AAC3D,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAAE,OAAO;AACxC,QAAA,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,KAAK,OAAO;YAAE,OAAO;QAEzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9C;IAEO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS;AAC/B,cAAEC,MAAO,CACH,IAAI,CAAC,MAAM,EACX,CAAC,GAAG,EAAE,IAAI,KAAI;gBACV,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/B,gBAAA,OAAO,GAAG,CAAC;aACd,EACD,EAAE,CACL;AACH,cAAE,IAAI,CAAC,MAAM,CAAC;KACrB;4GA/DQ,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAAC,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;ADrBrC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AACT,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAS,qBAAiB,CAAC,EAAA,CAAA,CAAA;YAC1D,EAA2B,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC3B,EAAuC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAAA,EAAqB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAI,EAAA,CAAA;YAEpE,EAmBM,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YAtByC,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArB,EAAqB,CAAA,iBAAA,CAAA,GAAA,CAAA,eAAA,CAAA,CAAA;YAE1D,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,eAAA,CAAA,CAAA;;;uFCgBlB,wBAAwB,EAAA,CAAA;cANpC,SAAS;2BACI,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,owCAAA,EAAA,MAAA,EAAA,CAAA,srCAAA,CAAA,EAAA,CAAA;iEAQ/B,eAAe,EAAA,CAAA;kBAA9B,KAAK;YACU,SAAS,EAAA,CAAA;kBAAxB,KAAK;YACW,MAAM,EAAA,CAAA;kBAAtB,KAAK;YACU,QAAQ,EAAA,CAAA;kBAAvB,KAAK;YACY,iBAAiB,EAAA,CAAA;kBAAlC,MAAM;YAE2B,QAAQ,EAAA,CAAA;kBAAzC,SAAS;mBAAC,iBAAiB,CAAA;;;;;ICtBxB,EAIoD,CAAA,cAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,CAAA;IAAhD,EAAqB,CAAA,UAAA,CAAA,mBAAA,EAAA,SAAA,8FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAyB,CAAA,iBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAqB,CAAA,YAAA,EAAA,CAAA;;;AAFrE,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,aAAA,CAAwB,CAAA,iBAAA,EAAA,WAAA,GAAA,MAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA;;;IAHhC,EAMc,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;IAIN,EAAoF,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;AAFxF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAuC,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACC,EAAyB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACjE,EAAoF,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACxF,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAFkC,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,iBAAA,CAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,KAAA,KAAA,OAAA,CAAA,CAAA;IACzD,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,WAAA,CAAA,CAAA;;;IAS3B,EAAoF,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;IALxF,EAGyD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAArD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,IAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0C,CAAA,aAAA,CAAA,MAAA,EAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA,KAAA,KAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACpD,EAAoC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAyB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACjE,EAAoF,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACxF,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IAJF,EAA2D,CAAA,WAAA,CAAA,UAAA,EAAA,MAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA,KAAA,KAAA,QAAA,CAAA,CAAA,CAAA;IAEvB,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,iBAAA,CAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA,KAAA,KAAA,QAAA,CAAA,CAAA;IACzD,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,QAAA,CAAA,WAAA,CAAA,CAAA;;MCnB1B,qBAAqB,CAAA;AALlC,IAAA,WAAA,GAAA;QAUoB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;AAK7B,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAI,YAAY,EAAiB,CAAC;AAC3E,QAAA,IAAA,CAAA,MAAM,GAAmC,IAAI,YAAY,EAAoB,CAAC;AA8F3F,KAAA;AAxFG,IAAA,IAAW,qBAAqB,GAAA;AAC5B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,OAAO,CAACC,QAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAChC;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;QACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;AAEM,IAAA,YAAY,CAAC,MAAc,EAAA;AAC9B,QAAA,MAAM,WAAW,GAAkB;AAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACzB,YAAA,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC3C,CAAC;QAEF,IAAI,CAACC,KAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE;YACnC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,SAAA;QAED,IAAI,CAACA,KAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE;YAClC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC9C,SAAA;AAED,QAAA,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;IAEM,aAAa,CAAC,MAAa,EAAE,QAAyB,EAAA;QACzD,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACpC,MAAM,CAAC,wBAAwB,EAAE,CAAC;AACrC,SAAA;KACJ;AAEM,IAAA,iBAAiB,CAAC,MAAc,EAAA;AACnC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAEjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;IAEO,sBAAsB,GAAA;AAC1B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAClG,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KAC9C;IAEO,qBAAqB,CAAC,aAAiC,EAAE,aAA8B,EAAA;QAC3F,IAAI,CAAC,aAAa,EAAE,MAAM;AAAE,YAAA,OAAO,IAAI,CAAC;AAExC,QAAA,IAAID,QAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;AAC7B,YAAA,MAAM,eAAe,GAAGL,IAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAgB,CAAC;AACtF,YAAA,MAAM,aAAa,GAAGA,IAAK,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAgB,CAAC;AACjF,YAAA,OAAO,CAAC,eAAe,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACvE,SAAA;AAED,QAAA,MAAM,eAAe,GAAGA,IAAK,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,aAAa,CAAC,CAAC;QACjF,QAAQ,eAAe,IAAI,aAAa,CAAC,CAAC,CAAC,EAAY;KAC1D;IAEO,iBAAiB,GAAA;AACrB,QAAA,OAAOO,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1E;AAEO,IAAA,qBAAqB,CAAC,aAA4B,EAAA;AACtD,QAAA,IAAIC,QAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;YAChC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,oBAAoB,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEpD,YAAA,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,oBAAoB,EAAE;AAC9C,gBAAA,OAAO,oBAAoB,CAAC;AAC/B,aAAA;AACJ,SAAA;QAED,OAAO,aAAa,CAAC,KAAK,CAAC;KAC9B;yGAxGQ,qBAAqB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,eAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDVlC,EAA8B,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAAA,EAAoB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YACtD,EAQ2C,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAPvC,EAAgC,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,kBAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,OAOf,wBAAoB,CAPL,EAAA,CAAA,CAAA;YAQhC,EAMc,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YACd,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YAClB,EAAY,CAAA,YAAA,EAAA,CAAA;;YAhCkB,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAApB,EAAoB,CAAA,iBAAA,CAAA,GAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA;YAG9C,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAjD,EAAiD,CAAA,WAAA,CAAA,qBAAA,EAAA,GAAA,CAAA,mBAAA,CAAA,CAAA;AADjD,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,kBAAA,CAAgC,4BAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAQI,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5B,EAA4B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,sBAAA,CAAA,CAAA;;;uFCAvD,qBAAqB,EAAA,CAAA;cALjC,SAAS;2BACI,gBAAgB,EAAA,QAAA,EAAA,ygDAAA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA,CAAA;gBAKV,MAAM,EAAA,CAAA;kBAArB,KAAK;YACU,SAAS,EAAA,CAAA;kBAAxB,KAAK;YACU,WAAW,EAAA,CAAA;kBAA1B,KAAK;YAEU,UAAU,EAAA,CAAA;kBAAzB,KAAK;YACU,aAAa,EAAA,CAAA;kBAA5B,KAAK;YACU,sBAAsB,EAAA,CAAA;kBAArC,KAAK;YACU,QAAQ,EAAA,CAAA;kBAAvB,KAAK;YAEI,SAAS,EAAA,CAAA;kBAAlB,MAAM;YACG,MAAM,EAAA,CAAA;kBAAf,MAAM;;;;;ICnBP,EAQ2C,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAAvC,EAAgB,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAW,CAAA,YAAA,EAAA,CAAA;;;AANlD,IAAA,EAAA,CAAA,UAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,OAAA,CAAA,QAAA,CAAmC,CAAA,cAAA,EAAA,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;;IAQvC,EAMoD,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAJhD,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,gEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAIa,EAAW,CAAA,YAAA,EAAA,CAAA;;;IAH3D,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA,QAAA,EAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,6BAAA,CAAA,cAAA,EAAA,CAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,KAAA,KAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;;;IAKzB,EAU0C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;IADtC,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,iCAA0B,CAAA,CAAA,EAAA,CAAC,yKAC9B,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,aAAA,CAAA,IAAA,CAAA,MAAA,CAA0B,CAAA,CADI,EAAA,CAAA,CAAA;IACF,EAAiB,CAAA,YAAA,EAAA,CAAA;;;AARvD,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAyB,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,aAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,sBAAA,CAAA,mCAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;MCHpB,cAAc,CAAA;IAWvB,IAAoB,aAAa,CAAC,IAAqB,EAAA;AACnD,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC;KACpC;AAwBD,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AAED,IAAA,IAAW,wBAAwB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,cAAc,CAAC;KACzG;AAED,IAAA,WAAA,GAAA;QAzCS,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAKvB,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;AAUlC,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAI,YAAY,EAAiB,CAAC;AAC3E,QAAA,IAAA,CAAA,gBAAgB,GAAkC,IAAI,YAAY,EAAmB,CAAC;AACtF,QAAA,IAAA,CAAA,aAAa,GAAmC,IAAI,YAAY,EAAoB,CAAC;QAIxF,IAA4B,CAAA,4BAAA,GAAG,KAAK,CAAC;QACrC,IAAQ,CAAA,QAAA,GAAG,QAAQ,CAAC;QAKV,IAAe,CAAA,eAAA,GAAG,CAAC,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEpF,IAAmB,CAAA,mBAAA,GAAoB,EAAE,CAAC;QAE1C,IAAc,CAAA,cAAA,GAAoB,EAAE,CAAC;QAWzC,IAAI,CAAC,WAAW,GAAG;AACf,YAAA,EAAE,EAAE,CAAC;AACL,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,EAAE;SACX,CAAC;KACL;AAED,IAAA,WAAW,CAAC,aAA4B,EAAA;QACpC,IAAI,aAAa,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,OAAO,GAAG;AACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACzB,YAAA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ;AACzC,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK;SACjC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;AACX,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACzB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACzB,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;AAC7B,YAAA,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK;SACjC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;YAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;AAC5D,SAAA;KACJ;AAED,IAAA,aAAa,CAAC,KAAe,EAAA;QACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,MAAM,WAAW,GAAkB;AAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC;AAEF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;AAED,IAAA,aAAa,CAAC,KAAe,EAAA;QACzB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO;AACV,SAAA;AAED,QAAA,MAAM,WAAW,GAAkB;AAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;AACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YACzB,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;AAED,IAAA,kBAAkB,CAAC,GAAmB,EAAA;AAClC,QAAA,IAAI,GAAG,EAAE;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;KACnF;AAEO,IAAA,gBAAgB,CAAC,KAAK,EAAA;QAC1B,MAAM,sBAAsB,GAAGR,IAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;AACpG,QAAA,IAAI,CAAC,aAAa,GAAGO,KAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,KAAI;AAClD,YAAA,IAAI,GAAG,CAAC,EAAE,KAAK,sBAAsB,CAAC,EAAE,EAAE;AACtC,gBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAE1B,gBAAA,IAAI,sBAAsB,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC/C,oBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAC3B,iBAAA;AACJ,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;AACf,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,GAAkB;YAC/B,EAAE,EAAE,sBAAsB,CAAC,EAAE;YAC7B,IAAI,EAAE,sBAAsB,CAAC,IAAI;YACjC,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;AAEF,QAAA,IAAI,sBAAsB,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC/C,YAAA,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAChC,YAAA,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AACrC,SAAA;AAED,QAAA,MAAM,QAAQ,GAAGP,IAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;AAEzE,QAAA,IAAI,QAAQ,EAAE;AACV,YAAAS,KAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACjC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,SAAA;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,iBAAiB,GAAA;QACrBC,OAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,KAAI;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,OAAO;AACvE,YAAA,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;gBAClC,IAAI,CAAC,OAAO,GAAG;oBACX,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,oBAAA,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ;oBACpC,KAAK,EAAE,CAACV,IAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK;iBACvE,CAAC;AACL,aAAA;AAED,YAAA,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;gBAClC,IAAI,CAAC,OAAO,GAAG;oBACX,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;AACxB,oBAAA,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa;iBAC3C,CAAC;AACL,aAAA;AAED,YAAA,IAAI,CAACA,IAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE;AAClD,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;oBACpB,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;AACpB,oBAAA,KAAK,EAAE,SAAS;AACnB,iBAAA,CAAC,CAAC;AACN,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAEO,mBAAmB,GAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC;AAE1D,QAAA,IAAI,CAAC,4BAA4B,GAAGW,IAAK,CACrC,IAAI,CAAC,UAAU,EACf,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC/G,CAAC;KACL;kGAtMQ,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,QAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDnB3B,EACkE,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;YAC9D,EAQsD,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;YAEtD,EAM+D,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;YAE/D,EAU2D,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YAC/D,EAAM,CAAA,YAAA,EAAA,CAAA;;AA/BD,YAAA,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,GAAA,CAAA,iBAAA,CAAuC,CAAA,2BAAA,EAAA,GAAA,CAAA,wBAAA,CAAA,CAAA;YAGnC,EAAqE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArE,EAAqE,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,IAAA,KAAA,GAAA,CAAA,QAAA,CAAA,IAAA,IAAA,CAAA,GAAA,CAAA,4BAAA,CAAA,CAAA;YAUrE,EAAsG,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAtG,EAAsG,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,IAAA,KAAA,GAAA,CAAA,QAAA,CAAA,IAAA,IAAA,CAAA,GAAA,CAAA,4BAAA,IAAA,EAAA,GAAA,CAAA,SAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,SAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA;YAQtG,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,CAAA;;;uFCFnB,cAAc,EAAA,CAAA;cAN1B,SAAS;2BAEI,QAAQ,EAAA,aAAA,EAEH,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,y1CAAA,EAAA,MAAA,EAAA,CAAA,4xCAAA,EAAA,8qhFAAA,CAAA,EAAA,CAAA;sCAG5B,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YAEc,aAAa,EAAA,CAAA;kBAAhC,KAAK;YAIG,sBAAsB,EAAA,CAAA;kBAA9B,KAAK;YAEG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YAEI,SAAS,EAAA,CAAA;kBAAlB,MAAM;YACG,gBAAgB,EAAA,CAAA;kBAAzB,MAAM;YACG,aAAa,EAAA,CAAA;kBAAtB,MAAM;;;;MCxBE,oBAAoB,CAAA;AAK7B,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,QAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;AAMD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAKD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAtBhC,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;QAWtD,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAQ1B,QAAA,IAAA,CAAA,QAAQ,GAAQ,CAAC,SAAS,KAAI,GAAG,CAAC;AAClC,QAAA,IAAA,CAAA,SAAS,GAAQ,MAAK,GAAG,CAAC;KAEoB;AAE9C,IAAA,gBAAgB,CAAC,EAAE,EAAA;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAE,EAAA;AAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAChC,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;AAED,IAAA,QAAQ,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;wGA1DQ,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAApB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,oBAAoB,EATlB,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,oBAAoB;AACjC,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,kBAAA,EAAAnB,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;ACbL,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,CAAO,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAKC,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAU,GAAmB,CAAA,YAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAC,CAAA,eAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,UAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,OAGrB,wBAAoB,CAHC,EAAA,CAAA,CAAA;YAJlC,EAOqC,CAAA,YAAA,EAAA,CAAA;YACrC,EAAM,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;YACF,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,YAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;YARH,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,2BAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;;;uFDaR,oBAAoB,EAAA,CAAA;cAbhC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGhB,SAAA,EAAA;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAsB,oBAAA;AACjC,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;iBACJ,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,mwDAAA,CAAA,EAAA,CAAA;oEAGtC,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACU,MAAM,EAAA,CAAA;kBAArB,KAAK;mBAAC,OAAO,CAAA;YACJ,WAAW,EAAA,CAAA;kBAApB,MAAM;YAGH,QAAQ,EAAA,CAAA;kBADX,KAAK;;;;;MEYG,mBAAmB,CAAA;AAC5B,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IAAI,KAAK,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;AAED,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,IAAI,IAAI,CAAC,IAAY,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;AAED,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IAED,IAAI,QAAQ,CAAC,QAAiB,EAAA;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AAED,IAAA,WAAA,CACc,WAAoC,EACf,UAAU,EACb,QAAQ,EAAA;QAF1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;QACf,IAAU,CAAA,UAAA,GAAV,UAAU,CAAA;QACb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAA;AAG9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAO/B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG,CAAC;AAC9B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;KAX3B;IAaJ,kBAAkB,GAAA;;;;;;QAMd,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,MAAM,CAAC,OAAO;AACd,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;QAKtB,SAAS,CAAC,CAAC,MAAuC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EACrF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;KAC3D;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;IAES,0BAA0B,GAAA;QAChC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;IAES,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAA2B,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnF,SAAA;KACJ;IAES,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,2BAA2B,CAAC,CAAC,KAA2B,KAAI;AAC7D,YAAA,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;AAClC,SAAC,CAAC,CAAC;KACN;IAES,cAAc,GAAA;AACpB,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,2BAA2B,CAAC,CAAC,KAA2B,MAAM,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvG,SAAA;KACJ;IAES,4BAA4B,GAAA;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACrC,OAAO;AACV,SAAA;AAED,QAAAoB,OAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAA2B,KAAK,KAAK,CAAC,WAAW,CAAC,CAAC;AACxE,aAAA,IAAI,CAAC,SAAS,CAACA,OAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1D,aAAA,SAAS,CAAC,CAAC,KAAU,KAAI;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;KACV;AAES,IAAA,cAAc,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;IAES,qBAAqB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACxD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE;YACpD,OAAO;AACV,SAAA;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AACnD,QAAA,SAAS,CAAQ,WAAW,EAAE,SAAS,CAAC;AACnC,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC,EAC7D,SAAS,CAAC,MAAMA,OAAK,CAAC,SAAS,CAAQ,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,SAAS,CAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAC5G,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAC,EAC9D,SAAS,CAACA,OAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CACvD;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAC1C;AAES,IAAA,2BAA2B,CAAC,QAAwC,EAAA;QAC1E,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBAC1B,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,KAAK,CAAC,aAAa,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAES,4BAA4B,GAAA;AAClC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;AACnE,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;QACvE,IAAI,YAAY,IAAI,cAAc,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACrE,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AACnC,SAAA;KACJ;uGAvKQ,mBAAmB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAiChB,WAAW,CAAA,EAAA,EAAA,CAAA,iBAAA,CACX,QAAQ,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAlCX,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,kCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCA0CX,oBAAoB,EAAA,CAAA,CAAA,CAAA;;;;AAnD1B,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,mBAAmB,EAAC;AAClD,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,kBAAA,EAAAjB,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAPW,EAAkD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;uFAUrD,mBAAmB,EAAA,CAAA;cAZ/B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,gBAAgB;AAC1B,gBAAA,QAAQ,EAAE,CAAqD,mDAAA,CAAA;AAC/D,gBAAA,SAAS,EAAE;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAE,UAAU,EAAC,yBAAyB,EAAC;AAClD,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;AACJ,iBAAA;gBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,aAAA,CAAA;;sBAkCQ,MAAM;uBAAC,WAAW,CAAA;;sBAClB,MAAM;uBAAC,QAAQ,CAAA;wBAhChB,KAAK,EAAA,CAAA;kBADR,KAAK;YAWF,IAAI,EAAA,CAAA;kBADP,KAAK;YAWF,QAAQ,EAAA,CAAA;kBADX,KAAK;YAqBwD,MAAM,EAAA,CAAA;kBAAnE,eAAe;AAAC,YAAA,IAAA,EAAA,CAAA,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;YAElD,WAAW,EAAA,CAAA;kBAApB,MAAM;;;;;MCxDE,iBAAiB,CAAA;AAY1B,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAMD,IAAI,aAAa,CAAC,KAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AASD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QA5B1C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACR,IAAI,CAAA,IAAA,GAAiB,EAAE,CAAC;QAIjC,IAAK,CAAA,KAAA,GAAuB,QAAQ,CAAC;QAgB7B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAG7C,QAAA,IAAA,CAAA,QAAQ,GAA6B,MAAK,GAAG,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAEa;IAE9C,eAAe,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACnD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE;AAC9D,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;AACpC,SAAA;KACJ;AAED,IAAA,UAAU,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;AACV,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC/C,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;qGAnEQ,iBAAiB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;;AAHf,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AClB5F,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,CAAO,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAMC,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,OAAU,GAAgB,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAC,CAClB,OAAA,EAAA,SAAA,iDAAA,CAAA,MAAA,EAAA,EAAA,OAAA,MAAA,CAAA,eAAA,EAAwB,CADN,EAAA,CAAA,CAAA;YAL/B,EAMyC,CAAA,YAAA,EAAA,CAAA;YACzC,EAAkG,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAC9F,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,YAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;YANH,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,CAAyB,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YADzB,EAA0D,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,aAAA,GAAA,SAAA,GAAA,WAAA,CAAA,CAAA;YAKvC,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAd,EAAc,CAAA,UAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAAC,EAAqC,CAAA,WAAA,CAAA,eAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA;YAAC,EAAqB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;uFDaxF,iBAAiB,EAAA,CAAA;cAP7B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,aAGZ,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,iBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACvE,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8bAAA,EAAA,MAAA,EAAA,CAAA,woMAAA,CAAA,EAAA,CAAA;oEAItC,aAAa,EAAA,CAAA;kBAArB,KAAK;YAGN,QAAQ,EAAA,CAAA;kBAFP,KAAK;;kBACL,WAAW;mBAAC,gBAAgB,CAAA;YAEpB,IAAI,EAAA,CAAA;kBAAZ,KAAK;YAIN,KAAK,EAAA,CAAA;kBAFJ,KAAK;;kBACL,WAAW;mBAAC,OAAO,CAAA;YAIhB,aAAa,EAAA,CAAA;kBADhB,KAAK;YAON,UAAU,EAAA,CAAA;kBAFT,KAAK;;kBACL,WAAW;mBAAC,mBAAmB,CAAA;YAStB,aAAa,EAAA,CAAA;kBAAtB,MAAM;YACuB,eAAe,EAAA,CAAA;kBAA5C,SAAS;mBAAC,iBAAiB,CAAA;;;;IE/CpB,UAIX;AAJD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,mBAAA,CAAA,GAAA,mBAAuC,CAAA;AACvC,IAAA,SAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACrC,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,sBAAsB,GAAG,OAAgB;AAC/C,MAAM,wBAAwB,GAAG,IAAa;MAOxC,eAAe,CAAA;AAL5B,IAAA,WAAA,GAAA;QAOa,IAAQ,CAAA,QAAA,GAAW,sBAAsB,CAAC;QAC1C,IAAU,CAAA,UAAA,GAAW,wBAAwB,CAAC;AAC9C,QAAA,IAAA,CAAA,KAAK,GAAc,SAAS,CAAC,OAAO,CAAC;AACjD,KAAA;mGALY,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAAH,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YChB5B,EAA+G,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC3G,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC7B,EAAI,CAAA,YAAA,EAAA,CAAA;;YAFe,EAAe,CAAA,UAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA;AAAe,YAAA,EAAA,CAAA,WAAA,CAAA,aAAA,EAAA,GAAA,CAAA,UAAA,CAAgC,CAAA,WAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAA9C,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA,aAAA,CAAA,CAAA;;;uFDgBnC,eAAe,EAAA,CAAA;cAL3B,SAAS;2BACI,SAAS,EAAA,QAAA,EAAA,kKAAA,EAAA,MAAA,EAAA,CAAA,qTAAA,CAAA,EAAA,CAAA;gBAKQ,IAAI,EAAA,CAAA;kBAA9B,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAChB,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;;;IEpBE,gBAaX;AAbD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC/B,CAAC,EAbW,eAAe,KAAf,eAAe,GAa1B,EAAA,CAAA,CAAA;;;;ICbD,EAKmC,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAS,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,aAAA,CAAc,KAAK,CAAC,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAY,CAAA,YAAA,EAAA,CAAA;;;IAJ3C,EAA+B,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,kBAAA,CAAA,CAAA;;;IAU/B,EAA0D,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;IAUlD,EAAM,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IACF,EAKJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IALH,EAKJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IALI,EAKJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,qBAAA,IAAA,CAAA,CAAA,MAAA,CAAA,iBAAA,GAAA,MAAA,CAAA,iBAAA,GAAA,IAAA,GAAA,QAAA,GAAA,GAAA,GAAA,QAAA,EAAA,GAAA,CAAA,CAAA;;;;IAaZ,EAKkC,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAS,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,aAAA,CAAc,IAAI,CAAC,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAY,CAAA,YAAA,EAAA,CAAA;;;IAJ1C,EAA+B,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,kBAAA,CAAA,CAAA;;;ACH7B,MAAO,kCACT,SAAQ,qBAAqB,CAAA;AAK7B,IAAA,IAAsD,yBAAyB,GAAA;QAC3E,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;IAID,IAAa,gBAAgB,CAAC,KAA8B,EAAA;AACxD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3F,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;IAID,IAAa,mBAAmB,CAAC,KAAwB,EAAA;AACrD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACtD,SAAA;KACJ;IAGD,IAAa,qBAAqB,CAAC,IAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,GAAG,IAAI,CAAC;KACvD;IAED,IAAa,SAAS,CAAC,GAAW,EAAA;QAC9B,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAe,CAAC,CAAC;KAC3D;AAoCD,IAAA,WAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;AAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAJjC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;QA/DxC,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAS9B,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;AAkB1B,QAAA,IAAA,CAAA,yBAAyB,GAAW,eAAe,CAAC,GAAG,CAAC;QACxD,IAAwB,CAAA,wBAAA,GAAW,CAAC,CAAC;QAErC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;;AAGvB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAY,CAAC;AAE1C,QAAA,IAAA,CAAA,WAAW,GAAG;AAC3B,YAAA,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC;AACrF,YAAA,CAAC,eAAe,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC;AACzF,YAAA,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC;AACvF,YAAA,CAAC,eAAe,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC;AACnF,YAAA,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC;SACvF,CAAC;QAEK,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,kBAAkB,GAAoB,IAAI,OAAO,EAAU,CAAC;AAE7D,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACrD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAC1B,GAAG,CAAC,CAAC,KAAa,KAAI;AAClB,YAAA,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC;AACpC,YAAA,QACI,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;gBACzC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAC9G;SACL,CAAC,CACL,CAAC;AAQE,QAAA,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC;AAErD,QAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3E,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,SAAC,CAAC,CAAC;AAEH,QAAA,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC9E,YAAA,IAAI,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,EAAE,KAAK,CAAC;AACvC,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACrG,YAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,SAAC,CAAC,CAAC;AAEH,QAAA,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACxF,YAAA,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAClC,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,aAAA;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC;AAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;YAC9F,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAChF,SAAA;KACJ;IAED,eAAe,GAAA;QACX,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AAC1B,SAAA;KACJ;AAED,IAAA,aAAa,CAAC,OAAgB,EAAA;QAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;AACpD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9E,YAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;QAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE;;;;AAIzB,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACrC,SAAA;KACJ;AAED;;;;AAIG;AACO,IAAA,QAAQ,CAAC,SAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;AACxC,QAAA,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC7B;AACM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC3B,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;AAEO,IAAA,WAAW,CAAC,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;QACpE,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;KACtF;IAEO,kBAAkB,GAAA;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3E,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KAC3F;sHA5KQ,kCAAkC,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,IAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAI,mBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAlC,kCAAkC,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,+CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AANhC,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5F,gBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;gBACrD,EAAE,OAAO,EAAE,mBAAmB,EAAE;AACnC,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDpCL,EAK+C,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAC/C,EAI0C,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACtC,EAA0D,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAE1D,EAAsG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAAlC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,GAAuB,CAAA,KAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;YACjG,EAKe,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;YACf,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YAClB,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAQmB,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AALf,YAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,0EAAA,CAAA,MAAA,EAAA,EAAA,OAAiB,kCAA8B,CAAC,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA,CAAA,OACvC,EAAA,CAAA,WAAA,CAAA,GAAA,CAAA,IAAA,EAAiB,CAAA,CADsB,EAAA,CAAA,CAAA;;AAHpD,YAAA,EAAA,CAAA,YAAA,EAQmB,EAAA,CAAA;YAEvB,EAK8C,CAAA,UAAA,CAAA,EAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAC9C,EAQkH,CAAA,cAAA,CAAA,EAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA;YAJ9G,EAAgB,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,mBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,eAAA,CAAA,IAAA,CAAiD,CAAC,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,oFAAA,CAAA,MAAA,EAAA,EAAA,OACjD,GAAkD,CAAA,mBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,eAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CADD,6GAExD,GAAQ,CAAA,MAAA,EAAA,CAAA,EAAA,CAFgD,CAGxD,QAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,OAAA,GAAA,CAAA,OAAA,EAAS,CAH+C,EAAA,CAAA,CAAA;YAKtE,EAAiB,CAAA,YAAA,EAAA,CAAA;;;;YArDZ,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAKhB,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA/B,YAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,iBAAA,CAA+B,oDAAA,CAAA,2BAAA,EAAA,GAAA,CAAA,wBAAA,CAAA,CAAA;YAI3B,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA3B,EAA2B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,qBAAA,CAAA,CAAA;YAIvB,EAAuC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAvC,YAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAuC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAN,KAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,CAAA;YAiB3C,EAAiC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAjC,EAAiC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA,eAAA,EAAA,GAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAUpC,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAOhB,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAxC,YAAA,EAAA,CAAA,UAAA,CAAA,yBAAA,EAAA,GAAA,CAAA,YAAA,CAAwC,CAAA,YAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,qBAAA,GAAA,wBAAA,GAAA,yBAAA,CAAA,CAAA;;;uFCX/B,kCAAkC,EAAA,CAAA;cAX9C,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAGxB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;oBACP,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,oCAAoC,EAAE,KAAK,EAAE,IAAI,EAAE;AAC5F,oBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE;oBACrD,EAAE,OAAO,EAAE,mBAAmB,EAAE;AACnC,iBAAA,EAAA,QAAA,EAAA,mlEAAA,EAAA,MAAA,EAAA,CAAA,wlLAAA,CAAA,EAAA,CAAA;+HAQqD,yBAAyB,EAAA,CAAA;kBAA9E,WAAW;mBAAC,mCAAmC,CAAA;YAIvC,qBAAqB,EAAA,CAAA;kBAA7B,KAAK;YAEO,gBAAgB,EAAA,CAAA;kBAA5B,KAAK;YAOG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YAEO,mBAAmB,EAAA,CAAA;kBAA/B,KAAK;YAKG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YAEO,qBAAqB,EAAA,CAAA;kBAAjC,KAAK;YAIO,SAAS,EAAA,CAAA;kBAArB,KAAK;YAIG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YACG,yBAAyB,EAAA,CAAA;kBAAjC,KAAK;YACG,wBAAwB,EAAA,CAAA;kBAAhC,KAAK;YAEG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAGI,cAAc,EAAA,CAAA;kBAAvB,MAAM;YACG,iBAAiB,EAAA,CAAA;kBAA1B,MAAM;;;;ICjFP,EAA+D,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAtB,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,MAAA,CAAA,SAAA,CAAA,CAAA;;;IAW9E,EAA2D,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAa,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAApB,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAb,EAAa,CAAA,iBAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;ACP5E,MAAMK,MAAI,GAAG,MAAK,GAAG,CAAC;MAST,0BAA0B,CAAA;AACnC,IAAA,IAAY,YAAY,GAAA;QACpB,OAAO;AACH,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,EAAE,EAAE,IAAI;SACX,CAAC;KACL;IAeD,IAAa,QAAQ,CAAC,GAAY,EAAA;AAC9B,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC9B;AAYD,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,IAAW,SAAS,CAAC,CAAS,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;AAC3C,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;AAID,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IAED,IAAW,OAAO,CAAC,CAAS,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;AACvC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;AAED,IAAA,WAAA,CAAsB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAnDnC,QAAA,IAAA,CAAA,kBAAkB,GAA6B,wBAAwB,CAAC,eAAe,CAAC;AACxF,QAAA,IAAA,CAAA,gBAAgB,GAA6B,wBAAwB,CAAC,aAAa,CAAC;QAEpF,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;QAEf,IAAe,CAAA,eAAA,GAAG,WAAW,CAAC;QAC9B,IAAa,CAAA,aAAA,GAAG,WAAW,CAAC;QAU9B,IAAiB,CAAA,iBAAA,GAAeA,MAAI,CAAC;QACrC,IAAgB,CAAA,gBAAA,GAAqBA,MAAI,CAAC;AACzC,QAAA,IAAA,CAAA,UAAU,GAAqB,IAAI,CAAC,YAAY,CAAC;QAEjD,IAAc,CAAA,cAAA,GAAW,IAAI,CAAC;QAe9B,IAAY,CAAA,YAAA,GAAW,IAAI,CAAC;KAeY;AAEzC,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC9B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,KAAuB,EAAA;QACrC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAC/E,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;YACzC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG;gBACd,IAAI,EAAE,IAAI,CAAC,cAAc;gBACzB,EAAE,EAAE,IAAI,CAAC,YAAY;aACxB,CAAC;AACF,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;AAEM,IAAA,gBAAgB,CAAC,GAAY,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;8GAhGQ,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,uCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AAFxB,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,0BAA0B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,KAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,KAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,8BAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDZrG,EAAqC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACjC,EAAqF,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACrF,EAM2C,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YALvC,EAAuB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,2EAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAM3B,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;YAErB,EAAmC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC/B,EAA+E,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAC/E,EAMyC,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;YALrC,EAAqB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,2EAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,OAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAMzB,YAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;;YAnBV,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAElB,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAvB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAuB,CAAA,QAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,kBAAA,CAAA,CAAA,aAAA,EAAA,GAAA,CAAA,eAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,SAAA,IAAA,GAAA,CAAA,YAAA,CAAA,CAAA;YASpB,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;YAEhB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAqB,CAAA,QAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,aAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,SAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;uFCAhB,0BAA0B,EAAA,CAAA;cAPtC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,mBAGf,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAA4B,0BAAA,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAAA,g0BAAA,EAAA,MAAA,EAAA,CAAA,sZAAA,CAAA,EAAA,CAAA;oEAYxF,MAAM,EAAA,CAAA;kBAAd,KAAK;YAEG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YACG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YAEG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YAEG,eAAe,EAAA,CAAA;kBAAvB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YAEO,QAAQ,EAAA,CAAA;kBAApB,KAAK;YAGG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAEgC,MAAM,EAAA,CAAA;kBAA3C,WAAW;mBAAC,cAAc,CAAA;;kBAAG,KAAK;;;;ICxCnC,EAAoF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAChF,EAA6D,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACjE,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAFkD,EAA2B,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA;IAC5E,EAAqD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArD,EAAqD,CAAA,UAAA,CAAA,SAAA,EAAA,CAAA,MAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,KAAA,2BAAA,CAAA,CAAA;;;AAGxD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+D,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IACrD,EAAgB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;;IAAvB,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;;;IAE1B,EAAiH,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;IAE7G,EAAyC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAA,EAAsB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAA7B,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;;;IAC/D,EAA4E,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAArC,EAA8B,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,CAAA,WAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;;IAFzE,EAA0E,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACtE,EAAsE,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACtE,EAA4E,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAChF,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAFK,EAAgC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhC,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,IAAA,CAAA,oBAAA,CAAA,CAAA;IACjC,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,oBAAA,CAAA,CAAA;;MCFpC,oBAAoB,CAAA;AAG7B,IAAA,WAAA,GAAA,GAAgB;wGAHP,oBAAoB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDTjC,EAAgG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC5F,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAAmC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC/B,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAAiH,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACjH,EAGM,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AACV,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;AAbgB,YAAA,EAAA,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,QAAA,CAAkC,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;YAClD,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA,CAAA;YAIjB,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAjB,EAAiB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;YAGjB,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5D,EAA4D,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,KAAA,MAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA,CAAA;YAC5D,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,IAAA,CAAA,WAAA,CAAA,CAAA;;;uFCAxB,oBAAoB,EAAA,CAAA;cANhC,SAAS;2BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,i4BAAA,EAAA,MAAA,EAAA,CAAA,gyBAAA,CAAA,EAAA,CAAA;sCAGtC,IAAI,EAAA,CAAA;kBAAZ,KAAK;;;;;;ICVV,EAAqF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAvB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAY,CAAA,UAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAChF,EAAmC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACvC,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAcc,EAAwD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAGhD,EAA0B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACtB,EAA+B,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACnC,EAAM,CAAA,YAAA,EAAA,CAAA;;;;AAGN,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAG8D,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACO,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;;;;IAFtF,EAAmC,CAAA,WAAA,CAAA,MAAA,EAAA,QAAA,KAAA,OAAA,CAAA,WAAA,CAAA,CAAA;IACnC,EAAyD,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAF,KAAA,EAAA,QAAA,KAAA,OAAA,CAAA,WAAA,CAAA,CAAA,CAAA;IACpD,EAA8C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9C,EAA8C,CAAA,UAAA,CAAA,QAAA,EAAA,QAAA,KAAA,OAAA,CAAA,WAAA,IAAA,OAAA,CAAA,WAAA,CAAA,CAAA;IAAc,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,SAAA,GAAA,CAAA,CAAA,CAAA;;;;IAYhG,EAIe,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;AAFX,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAkB,KAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,CAAA,CAAA,CAAA;;;IAGlC,EAAgF,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5E,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IADH,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,aAAA,GAAA,QAAA,CAAA,cAAA,GAAA,QAAA,CAAA,aAAA,IAAA,GAAA,GAAA,QAAA,CAAA,aAAA,EAAA,GAAA,CAAA,CAAA;;;IAEJ,EAIe,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;AAFX,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAA8B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,CAAA,CAAA,CAAA;;;;;IA9CtC,EAAkG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAA7D,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAgB,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;AAC3D,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAImC,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAM3B,EAAwD,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACxD,EAA0C,CAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IACtC,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;IACd,EAOc,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;IAClB,EAAe,CAAA,qBAAA,EAAA,CAAA;IACnB,EAAM,CAAA,YAAA,EAAA,CAAA;AACN,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAI6D,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5B,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;IAEvD,EAIe,CAAA,UAAA,CAAA,EAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA;IACf,EAEO,CAAA,UAAA,CAAA,EAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACX,EAAM,CAAA,YAAA,EAAA,CAAA;IACN,EAIe,CAAA,UAAA,CAAA,EAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA;IACnB,EAAM,CAAA,YAAA,EAAA,CAAA;;;;;IAjD0D,EAAiC,CAAA,WAAA,CAAA,YAAA,EAAA,OAAA,CAAA,YAAA,CAAA,CAAA;IAGzF,EAAyC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzC,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,QAAA,CAAA,WAAA,IAAA,GAAA,CAAyC,6DAAA,CAAA,mBAAA,EAAA,QAAA,CAAA,CAAA;IAMrC,EAAqC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArC,IAAA,EAAA,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,WAAA,KAAA,QAAA,CAAqC,CAAA,WAAA,EAAA,QAAA,CAAA,SAAA,CAAA,CAAA;IAE/B,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,QAAA,KAAA,OAAA,CAAA,WAAA,CAAA,CAAA;IAClB,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3B,EAA2B,CAAA,UAAA,CAAA,UAAA,EAAA,QAAA,CAAA,SAAA,CAAA,CAAA;IACxB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArB,EAAqB,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAA,CAAA;IAKrB,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,cAAA,EAAA,KAAA,CAAA,CAAA;IAavC,EAAqC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArC,EAAqC,CAAA,WAAA,CAAA,QAAA,EAAA,OAAA,CAAA,WAAA,KAAA,QAAA,CAAA,CAAA;IACrC,EAAwD,CAAA,UAAA,CAAA,SAAA,EAAA,QAAA,CAAA,SAAA,GAAA,WAAA,GAAA,aAAA,CAAA,CAAA;IAClD,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,QAAA,EAAA,OAAA,CAAA,WAAA,CAAA,CAAA;IAAC,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;IAG3C,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,YAAA,CAAA,CAAA;IAIhB,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,QAAA,CAAA,YAAA,CAAA,CAAA;IAK7B,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA;;;IAK5B,EAAwD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAnD5D,EAA8F,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC1F,EAiDM,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACN,EAAwD,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC5D,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IAnDL,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;IAkDhB,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAV,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;;IAGxB,EAMM,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IALF,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAMvB,EAAmC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACvC,EAAM,CAAA,YAAA,EAAA,CAAA;;;AAGF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAA0B,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACS,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;IACpD,EAAsC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAsB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IADnC,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;IACR,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,iBAAA,CAAA,QAAA,CAAA,WAAA,CAAA,CAAA;;;IAKhE,EAM2F,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACvF,EAA2D,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAC/D,EAAM,CAAA,YAAA,EAAA,CAAA;;;;;;IALF,EAAsE,CAAA,UAAA,CAAA,kBAAA,IAAA,CAAA,OAAA,CAAA,YAAA,GAAA,UAAA,GAAA,QAAA,CAAA,CAAA,CAAA;IAEtE,EAA0F,CAAA,WAAA,CAAA,YAAA,EAAA,OAAA,CAAA,iBAAA,KAAA,OAAA,CAAA,KAAA,CAAA,QAAA,CAAA,KAAA,GAAA,CAAA,CAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,KAAA,CAAA,QAAA,CAAA,KAAA,GAAA,CAAA,CAAA,CAAA,IAAA,CAAA,GAAA,QAAA,GAAA,OAAA,CAAA,CAAA;AAH1F,IAAA,EAAA,CAAA,WAAA,CAAA,eAAA,EAAA,OAAA,CAAA,KAAA,CAAA,MAAA,KAAA,CAAA,CAA0C,CAAA,iBAAA,EAAA,CAAA,OAAA,CAAA,YAAA,KAAA,SAAA,KAAA,CAAA,IAAA,SAAA,KAAA,OAAA,CAAA,KAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA,CAAA;IAKpB,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9B,EAA8B,CAAA,WAAA,CAAA,OAAA,EAAA,OAAA,CAAA,QAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;;IAPxD,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;;IAJD,EAAmC,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,KAAA,CAAA,MAAA,KAAA,CAAA,IAAA,CAAA,UAAA,CAAA,CAAA;;MCvE/B,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;QASa,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACZ,QAAA,IAAA,CAAA,UAAU,GAAoB,IAAI,YAAY,EAAK,CAAC;AA4BjE,KAAA;AAzBG,IAAA,UAAU,CAAC,IAAO,EAAA;QACd,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;KACJ;AAED,IAAA,QAAQ,CAAC,IAAO,EAAA;QACZ,IAAI,IAAI,CAAC,iBAAiB;AAAE,YAAA,OAAO,IAAI,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,OAAO,MAAM,CAAC;AAClC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;AACxD,YAAA,OAAO,CAAG,EAAA,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,aAAa,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;AACzE,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,UAAU,GAAA;QACb,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;KAC/C;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;KAC/C;AAEM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5B;oGApCQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,sBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;qCAUK,UAAU,CAAA,CAAA;;;;;YDnB5C,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAAgG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAC5F,EAoDe,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEN,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YAEd,EAUc,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;YArFe,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,MAAA,CAAA,CAAA,CAAA;YAG9B,EAAoC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApC,YAAA,EAAA,CAAA,WAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,QAAA,CAAoC,CAAA,eAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAC/B,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YAyDxC,EAIJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAJI,EAIJ,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,WAAA,KAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,WAAA,CAAA,IAAA,GAAA,CAAA,UAAA,CAAA,CAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,KAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,WAAA,CAAA,CAAA,IAAA,GAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,WAAA,CAAA,CAAA,CAAA;;;uFCxDY,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,OAAO,EAAA,QAAA,EAAA,gqIAAA,EAAA,MAAA,EAAA,CAAA,y1KAAA,CAAA,EAAA,CAAA;gBAGvC,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACI,UAAU,EAAA,CAAA;kBAAnB,MAAM;YAC4C,OAAO,EAAA,CAAA;kBAAzD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;;;ACjBjC,MAAA,WAAW,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;IAExD,kBASX;AATD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,GAS5B,EAAA,CAAA,CAAA,CAAA;IAEW,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,QAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAC3B,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;MAoDY,WAAW,CAAA;AAiBpB,IAAA,WAAA,CAAY,GAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,SAAS,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,UAAU,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,CAAC;KACzB;AACJ;;MC/FY,sBAAsB,CAAA;AAC/B,IAAA,WAAA,GAAA,GAAgB;0GADP,sBAAsB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YCRnC,EAAgC,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;uFDQnB,sBAAsB,EAAA,CAAA;cANlC,SAAS;2BACI,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,6vBAAA,CAAA,EAAA,CAAA;;;;IEHvC,EAAmD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;AAF3D,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmE,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAE3D,EAAmD,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAAM,CAAA,YAAA,EAAA,CAAA;IACN,EAAuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;IAC5D,EAA+E,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAA3B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAgB,CAAA,UAAA,CAAA,OAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAI,EAAA,CAAA;;;IAJzC,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,WAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,QAAA,IAAA,MAAA,CAAA,CAAA;IAC/D,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAEV,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;;;IAL9D,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACpD,EAMM,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAPgD,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;;;IA0B7D,EAIuC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IADnC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACM,EAAI,CAAA,YAAA,EAAA,CAAA;;;;IAFvC,EAAgD,CAAA,UAAA,CAAA,MAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,CAAA;;;;IAGpD,EAGgD,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAD5C,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACe,EAAI,CAAA,YAAA,EAAA,CAAA;;;IACpD,EAEsD,CAAA,SAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA;;;;IACtD,EAA4F,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAA5D,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAc,CAAA,YAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAoC,EAAe,CAAA,MAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,CAAA;IAAA,EAAY,CAAA,YAAA,EAAA,CAAA;;;MCpBlH,mBAAmB,CAAA;IAkE5B,WACc,CAAA,GAAsB,EACtB,YAA0B,EAAA;QAD1B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAnExC,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AAEzB;;;;AAIG;QACM,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAEtB;;;;AAIG;QACM,IAAkB,CAAA,kBAAA,GAAG,gBAAgB,CAAC;AAE/C;;;;AAIG;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAE3B;;;;AAIG;QACM,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;AAEnD;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE9B;;;;AAIG;QACM,IAAsC,CAAA,sCAAA,GAAG,KAAK,CAAC;AAExD;;;AAGG;AACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAsC,CAAC;AAC9D,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAO,CAAC;AAE1C;;;;AAIG;AAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAEnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAK7C;AAGJ,IAAA,MAAM,CAAC,KAAU,EAAA;QACb,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AAExB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE;gBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;oBACzC,MAAM,GAAG,GAAG,IAAI,CAAC;oBAEjB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACjC,wBAAA,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;AAC5B,wBAAA,EAAE,CAAC,MAAM,GAAG,CAAC,CAAM,KAAI;4BACnB,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1B,4BAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,GAAG,CAAC,GAAG,CAAA,CAAA,CAAG,CAAC,CAAC;AAC7E,4BAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,yBAAC,CAAC;AAEF,wBAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1B,qBAAA;AACD,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/B,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,UAAU,CAAC,IAAI,EAAA;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,SAAA;KACJ;AAGD,IAAA,UAAU,CAAC,KAAgB,EAAA;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,SAAA;KACJ;AAGD,IAAA,WAAW,CAAC,KAAgB,EAAA;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACzB,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,MAAM,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC7B,YAAA,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO;AACV,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;AAChE,gBAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AACpE,gBAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,aAAA;AACJ,SAAA;KACJ;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACrB;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,iBAAiB,CAAC,eAAoC,EAAA;QAClD,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACzC,SAAA;AAAM,aAAA;AACH,YAAA,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YACtC,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;KAC5C;AAED,IAAA,qBAAqB,CAAC,eAAoC,EAAA;QACtD,OAAO,CAAA,UAAA,EAAa,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,gCAAgC,CAAC;KAC/F;uGAlKQ,mBAAmB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAnB,IAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wGAAnB,GAAc,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,UAAA,EAAA,SAAA,+CAAA,CAAA,MAAA,EAAA,EAAA,OAAd,GAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA,WAAA,EAAA,SAAA,gDAAA,CAAA,MAAA,EAAA,EAAA,OAAlB,GAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;;;YDnBhC,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AACN,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,aAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAMb,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,UAAA,GAAsB,IAAI,CAAC,EAAA,CAAA,CAAA,MAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,UAAA,GACN,KAAK,CAAA,EAAA,CADC,gHAEA,IAAI,CAAA,EAAA,CAFJ,CAGA,YAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,OAAA,GAAA,CAAA,UAAA,GAAA,KAAK,IAHL,CAAA,eAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,OAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,OAOV,yBAAqB,CAPX,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,8DAAA,CAAA,MAAA,EAAA,EAAA,OAUV,uBAAmB,CAVT,EAAA,CAAA,CAAA;YAW/B,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;YAAA,EAAW,CAAA,YAAA,EAAA,CAAA;YACX,EAI2C,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC3C,EAGoD,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACpD,EAEsD,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;YACtD,EAAuH,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAC3H,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;YAxCkB,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA;YAY9C,EAA0G,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1G,EAA0G,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAF,KAAA,EAAA,GAAA,CAAA,UAAA,EAAA,CAAA,EAAA,GAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAStG,EAA4C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5C,EAA4C,CAAA,UAAA,CAAA,GAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,CAAA;YAG5C,EAAuE,CAAA,qBAAA,CAAA,aAAA,EAAA,GAAA,CAAA,QAAA,GAAA,GAAA,CAAA,mBAAA,GAAA,GAAA,CAAA,kBAAA,CAAA,CAAA;AALvE,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAqB,CAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YASpB,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,YAAA,CAAA,CAAA;YAKnB,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5D,EAA4D,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,YAAA,IAAA,GAAA,CAAA,sCAAA,CAAA,CAAA;YAI5D,EAA6D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA7D,EAA6D,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,YAAA,IAAA,CAAA,GAAA,CAAA,sCAAA,CAAA,CAAA;YAEtD,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlB,EAAkB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;;;uFCpBzB,mBAAmB,EAAA,CAAA;cAN/B,SAAS;2BACI,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ygEAAA,EAAA,MAAA,EAAA,CAAA,66EAAA,CAAA,EAAA,CAAA;iGActC,OAAO,EAAA,CAAA;kBAAf,KAAK;YAOG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YAOG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAOG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAOG,YAAY,EAAA,CAAA;kBAApB,KAAK;YAOG,sCAAsC,EAAA,CAAA;kBAA9C,KAAK;YAMI,IAAI,EAAA,CAAA;kBAAb,MAAM;YACG,KAAK,EAAA,CAAA;kBAAd,MAAM;YAQG,WAAW,EAAA,CAAA;kBAApB,MAAM;YAEyB,QAAQ,EAAA,CAAA;kBAAvC,WAAW;mBAAC,iBAAiB,CAAA;YAQ9B,MAAM,EAAA,CAAA;kBADL,YAAY;mBAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAA;YAmChC,UAAU,EAAA,CAAA;kBADT,YAAY;mBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;YAUpC,WAAW,EAAA,CAAA;kBADV,YAAY;mBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACjIzC;;;AAGG;MAEU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;AAEuB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;AAavF,KAAA;IAXG,QAAQ,CAAC,IAAY,EAAE,QAAsC,EAAA;QACzD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KAC3C;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC3C;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACxC;8GAbQ,0BAA0B,GAAA,CAAA,EAAA,CAAA,EAAA;AAA1B,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,0BAA0B,WAA1B,0BAA0B,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAA1B,0BAA0B,EAAA,CAAA;cADtC,UAAU;;;MCRE,eAAe,CAAA;AACD,IAAA,SAAA,IAAA,CAAA,YAAY,GAAG;QAClC,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACZ,CAAC,EAAA;IAEK,OAAO,oBAAoB,CAAC,KAAa,EAAA;AAC5C,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;KAC3C;;;MCTQ,YAAY,CAAA;AACrB,IAAA,SAAS,CAAuB,IAAO,EAAE,IAAA,GAA4B,MAAM,EAAA;QACvE,IAAI,IAAI,KAAK,UAAU,EAAE;AACrB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9C,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;AAC7G,SAAA;QAED,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;KAClG;gGARQ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;iHAAZ,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAZ,YAAY,EAAA,CAAA;cAHxB,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACF,gBAAA,IAAI,EAAE,UAAU;AACnB,aAAA,CAAA;;;;ICJG,EAAsE,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAEtE,EAcwD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAApD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,mBAAA,IAAuB,MAAkB,CAAA,WAAA,CAAA,IAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IACnD,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IAbF,EAAqB,CAAA,UAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA;AACrB,IAAA,EAAA,CAAA,WAAA,CAAA,OAAA,EAAA,MAAA,CAAA,YAAA,IAAA,IAAA,CAAoC,uCAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAGpC,EAGE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAA,KAAA,EAAA,MAAA,CAAA,cAAA,IAAA,CAAA,OAAA,CAAA,KAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,WAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,CAAA,+CAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,uBAAA,CAAA,CAAA;IAKF,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAEA,EAImC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC/B,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;;AAHF,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAA2B,CAAA,mBAAA,EAAA,QAAA,CAAA,CAAA;IAE3B,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,IAAA,EAAA,MAAA,CAAA,YAAA,EAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;;AAIA,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoE,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAI5D,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAkB,CAAA,WAAA,CAAA,IAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAE5B,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;IACN,EAAuB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACnB,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;;;IALH,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA;IAFpB,EAA+C,CAAA,WAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,OAAA,CAAA,CAAA,CAAA;IAG/C,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,GAAA,CAAA,CAAA;IAEI,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAVJ,EAWM,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;IAXgB,EAAiB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,EAAA,CAAA,CAAA;;AC1B3C,MAAM,aAAa,GAAG,CAAC,CAAC;MAQX,iBAAiB,CAAA;AAN9B,IAAA,WAAA,GAAA;QAmBa,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAuB,CAAA,uBAAA,GAAe,QAAQ,CAAC;QAG/C,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAC3B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAEf,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ,CAAC;QACjD,IAAW,CAAA,WAAA,GAAQ,EAAE,CAAC;QAEb,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAgB1C,KAAA;IAtCG,IACI,KAAK,CAAC,KAAc,EAAA;AACpB,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACrC,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACnB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAcD,aAAa,GAAA;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;KACnD;IAED,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,aAAa,EAAE;AACzC,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzE,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAEM,IAAA,cAAc,CAAC,IAAO,EAAA;AACzB,QAAA,OAAO,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAC5F;qGAtCQ,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,CAAA,EAAA,WAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDb9B,EAAqD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACjD,EAAsE,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEtE,EAgBM,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEN,EAMM,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;YAEN,EAac,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;YA3Ca,EAAyB,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;YAC1C,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAzB,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA;YAGV,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlB,EAAkB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,EAAA,CAAA,CAAA;YAkBlC,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxC,EAAwC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,CAAA,MAAA,GAAA,GAAA,CAAA,aAAA,CAAA,CAAA;;;uFCTpC,iBAAiB,EAAA,CAAA;cAN7B,SAAS;2BACI,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,omDAAA,EAAA,MAAA,EAAA,CAAA,y3EAAA,CAAA,EAAA,CAAA;gBAI3C,KAAK,EAAA,CAAA;kBADR,KAAK;YAYG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,uBAAuB,EAAA,CAAA;kBAA/B,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YAEI,WAAW,EAAA,CAAA;kBAApB,MAAM;;;;ICjCX,EAAkC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAkB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAAxB,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,iBAAA,CAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;;ACGpD;;AAEG;MAOU,0BAA0B,CAAA;8GAA1B,0BAA0B,GAAA,CAAA,EAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDZvC,EAA0D,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAAvC,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;uFCYnB,0BAA0B,EAAA,CAAA;cANtC,SAAS;2BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,CAAA,2FAAA,CAAA,EAAA,CAAA;gBAQtC,OAAO,EAAA,CAAA;kBAAf,KAAK;;;;IChBF,EAAgE,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IAChE,EAA0E,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;;;IAA/C,EAAwC,CAAA,WAAA,CAAA,kBAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;IAFvE,EAAqE,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACjE,EAAgE,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAChE,EAA0E,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC9E,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAH+B,EAAiB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,CAAA;IACvB,EAAiC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjC,EAAiC,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,OAAA,CAAA,QAAA,IAAA,OAAA,CAAA,IAAA,CAAA,CAAA;IACpD,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;ACOjC;;AAEG;MAMU,0BAA0B,CAAA;AAUnC;;;;AAIG;IACH,IACI,KAAK,CAAC,KAAyB,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAS,KAAI;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO;AACH,gBAAA,GAAG,IAAI;AACP,gBAAA,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,GAAG,GAAG,CAAC;gBACnF,OAAO;aACV,CAAC;AACN,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAED,WACc,CAAA,EAAqB,EACrB,YAA0B,EAAA;QAD1B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;KACpC;AAEJ,IAAA,OAAO,CAAC,IAAsB,EAAA;AAC1B,QAAA,MAAM,IAAI,GAAI,IAAqC,CAAC,IAAI,CAAC;AACzD,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;8GAvCQ,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,IAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDlBvC,EAAmC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC/B,EAGI,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACR,EAAM,CAAA,YAAA,EAAA,CAAA;;YAJkB,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAb,EAAa,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;uFCiBxB,0BAA0B,EAAA,CAAA;cALtC,SAAS;2BACI,sBAAsB,EAAA,eAAA,EAEf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kTAAA,EAAA,CAAA;iGAUtC,OAAO,EAAA,CAAA;kBAAf,KAAK;YAQF,KAAK,EAAA,CAAA;kBADR,KAAK;;;;;ICjCV,EAAyD,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACrD,EAAsF,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC1F,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IADS,EAA2D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3D,EAA2D,CAAA,WAAA,CAAA,kBAAA,EAAA,MAAA,GAAA,MAAA,CAAA,OAAA,CAAA,SAAA,GAAA,GAAA,CAAA,CAAA;;;IAG/E,EAAmE,CAAA,SAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;;;IAAnC,EAAsB,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;;;IAEtD,EAAiD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAC7C,EAAqC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACzC,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAJN,EAAmE,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;IAEnE,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;IAJM,EAAkB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;IAExB,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;;;IAMrB,EAAmG,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,EAAA,CAAA,CAAA;;;IAA3C,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;IAC3E,EAA4G,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,EAAA,CAAA,CAAA;;;IAA3C,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;;;IACpF,EAA+B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC3B,EAAiH,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IACrH,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IADG,EAAkC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlC,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,WAAA,EAAA,CAAkC,CAAA,yBAAA,EAAA,MAAA,CAAA,kBAAA,EAAA,CAAA,CAAA;;;IAGxD,EAA2D,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAAuE,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAC3E,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADY,EAAyC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzC,EAAyC,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;;MCAlD,sBAAsB,CAAA;AAG/B,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;KACtB;AAED;;AAEG;AACH,IAAA,IAEI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IAED,IAAI,KAAK,CAAC,KAAc,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;KACzB;AA6BD,IAAA,WAAA,CAAoB,oBAAgD,EAAA;QAAhD,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;QApDpE,IAAY,CAAA,YAAA,GAAG,iBAAiB,CAAC;QAyBvB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KA2B+C;IAEjE,WAAW,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,WAAW,CAAC;KACpC;IAEM,kBAAkB,GAAA;AACrB,QAAA,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KACrE;AAES,IAAA,gBAAgB,CAAC,IAAY,EAAA;QACnC,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE3E,IAAI,CAAC,sBAAsB,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CACX,CAAA,8CAAA,EAAiD,IAAI,CAAK,GAAA,CAAA;gBACtD,CAAyE,sEAAA,EAAA,IAAI,CAAI,EAAA,CAAA,CACxF,CAAC;AACL,SAAA;AAED,QAAA,OAAO,sBAAsB,CAAC;KACjC;AAED,IAAA,sBAAsB,CAAC,OAAqB,EAAA;AACxC,QAAA,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,GAAG,cAAc,GAAG,EAAE,CAAC;KACxF;0GAhFQ,sBAAsB,EAAA,EAAA,CAAA,iBAAA,CAAAoB,0BAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;;;YDnBnC,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACf,EAMc,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YACd,EAAyG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACrG,EAAwC,CAAA,uBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACpC,EAAmG,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;YACnG,EAA4G,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;YAC5G,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAe,CAAA,qBAAA,EAAA,CAAA;YACf,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;AArBS,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,OAAA,CAAA,SAAA,CAAyB,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;YAUnB,EAAuC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvC,EAAuC,CAAA,WAAA,CAAA,iBAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA;YAAC,EAA2C,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA;YACtF,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAzB,EAAyB,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;YACZ,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,CAAA,IAAA,CAAA,CAAA;YAC/B,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxC,EAAwC,CAAA,UAAA,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,CAAA,aAAA,CAAA,CAAA;YAKpC,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,oBAAA,CAAA,CAAA;ACR7C,SAAA,EAAA,EAAA,YAAA,EAAA,CAAAC,EAAA,CAAA,OAAA,EAAAA,EAAA,CAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAAA,EAAA,CAAA,QAAA,EAAAA,EAAA,CAAA,YAAA,EAAAA,EAAA,CAAA,eAAA,EAAAC,iBAAA,EAAAC,0BAAA,EAAAC,0BAAA,CAAA,EAAA,MAAA,EAAA,CAAA,k9LAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;gBACR,OAAO,CAAC,UAAU,EAAE;oBAChB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAClD,oBAAA,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,oBAAA,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;iBACnF,CAAC;AACL,aAAA,EAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAGQ,sBAAsB,EAAA,CAAA;cAblC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA;oBACR,OAAO,CAAC,UAAU,EAAE;wBAChB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAClD,wBAAA,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,wBAAA,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;qBACnF,CAAC;iBACL,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,orCAAA,EAAA,MAAA,EAAA,CAAA,y2KAAA,CAAA,EAAA,CAAA;0EAM3C,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,WAAW,CAAA;YAMpB,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,iBAAiB,CAAA;YAU1B,KAAK,EAAA,CAAA;kBAFR,KAAK;;kBACL,WAAW;mBAAC,aAAa,CAAA;YAWjB,IAAI,EAAA,CAAA;kBAAZ,KAAK;YAOG,OAAO,EAAA,CAAA;kBAAf,KAAK;YAOG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YAKG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YAEgC,oBAAoB,EAAA,CAAA;kBAAzD,YAAY;mBAAC,sBAAsB,CAAA;;;;;ICnD5B,EAAiE,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;;AAPrE,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAGiC,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;IAC4C,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,mBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACpG,EACJ,CAAA,MAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,CAAA;IAAA,EAAY,CAAA,YAAA,EAAA,CAAA;IACZ,EAAiE,CAAA,UAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACrE,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IANF,EAAiE,CAAA,WAAA,CAAA,qCAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,CAAA;IAKlD,EAAiC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjC,EAAiC,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,CAAA;;;IARxD,EAAuD,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACnD,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IANN,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA;;;;IAiB/B,EAA0G,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAA5B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAiB,CAAA,WAAA,CAAA,OAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrG,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADF,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,GAAA,CAAA,CAAA;;;;IATJ,EAMO,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACH,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IARF,EAIE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAvB,KAAA,EAAA,MAAA,CAAA,SAAA,KAAA,CAAA,EAAA,MAAA,CAAA,SAAA,KAAA,CAAA,EAAA,MAAA,CAAA,SAAA,KAAA,CAAA,CAAA,CAAA,CAAA;IACoB,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA;;;MCJjC,0BAA0B,CAAA;AAsBnC,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;KACtE;IACD,IAAI,YAAY,CAAC,MAAM,EAAA;AACnB,QAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;KACrE;AAOD,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAjC1C,IAAgB,CAAA,gBAAA,GAAa,EAAE,CAAC;QAChC,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;AACN,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAE9B,IAAM,CAAA,MAAA,GAAa,EAAE,CAAC;QACtB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAErC;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI,YAAY,EAAU,CAAC;QAa9E,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;QACf,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;KAEkC;IAE9C,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;AAC3F,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACzD,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,IAAY,EAAA;QACpB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,YAAY,GAAA;AACR,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,iBAAiB,GAAA;AACb,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;AACpC,YAAA,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBACzB,MAAM;AACT,aAAA;AACD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;AACvE,YAAA,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7F,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AAC/F,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACtB,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;8GA1GQ,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;YD1BvC,EAQO,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACH,EAUe,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAM,CAAA,YAAA,EAAA,CAAA;YAEN,EAYc,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;YA/BV,EAKE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAkB,KAAA,EAAA,GAAA,CAAA,SAAA,KAAA,CAAA,EAAA,GAAA,CAAA,SAAA,KAAA,CAAA,EAAA,GAAA,CAAA,SAAA,KAAA,CAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;YACa,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAkB,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;;;uFCiBxB,0BAA0B,EAAA,CAAA;cANtC,SAAS;2BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,q3CAAA,EAAA,MAAA,EAAA,CAAA,ytEAAA,CAAA,EAAA,CAAA;oEAStC,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAOG,YAAY,EAAA,CAAA;kBAApB,KAAK;YAEI,gBAAgB,EAAA,CAAA;kBAAzB,MAAM;YAE+C,mBAAmB,EAAA,CAAA;kBAAxE,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,sBAAsB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;;;;IC5ChD,EAAgF,CAAA,kBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;IAA/C,EAA+B,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA;;;AAOpE,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyD,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACf,EAA2B,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;;IAAlC,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3B,EAA2B,CAAA,iBAAA,CAAA,MAAA,CAAA,qBAAA,CAAA,CAAA;;;AAGrE,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAqD,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IAK7C,EAAkD,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AACtD,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAFF,EAAuE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvE,EAAuE,CAAA,WAAA,CAAA,mCAAA,EAAA,MAAA,CAAA,2BAAA,CAAA,CAAA;;;;IAK/E,EAQuD,CAAA,cAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAAA,CAAA;IAAnD,EAAoB,CAAA,UAAA,CAAA,kBAAA,EAAA,SAAA,8FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAA6B,CAAA,gBAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACtD,EAAsB,CAAA,YAAA,EAAA,CAAA;;;IAHlB,EAAwE,CAAA,WAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,UAAA,IAAA,EAAA,MAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAJxE,EAAsB,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAA,qCAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;MCKjB,eAAe,CAAA;IAMxB,IAAa,oBAAoB,CAAC,KAAmB,EAAA;AACjD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;gBAChD,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;AAED;;AAEG;AACH,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAED,IAAI,YAAY,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;KAChC;AAqBD,IAAA,IAAW,2BAA2B,GAAA;QAClC,QACI,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,EACvG;KACL;AAED,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAnDlC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAG9B,IAAqB,CAAA,qBAAA,GAAG,kBAAkB,CAAC;QAsB1C,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAEtB,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;AAGpC;;;;AAIG;QACM,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAMpB,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI,YAAY,EAAU,CAAC;KAUhC;IAE9C,eAAe,GAAA;QACX,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACzC,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAED,UAAU,GAAA;QACN,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,gBAAgB,GAAA;QACZ,UAAU,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,MAAM,eAAe,GAAQ;AACzB,oBAAA,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY;iBACzD,CAAC;AAEF,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,oBAAA,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACvC,iBAAA;gBAED,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC/D,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAED,sBAAsB,GAAA;QAClB,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACvC,SAAA;KACJ;IAED,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,EAAE;AAC5C,YAAA,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;AAC/C,SAAA;KACJ;mGArGQ,eAAe,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAwCV,mBAAmB,EAAA,CAAA,CAAA,CAAA;;wCADhB,sBAAsB,EAAA,CAAA,CAAA,CAAA;;;;;;;;2BAI5B,0BAA0B,EAAA,CAAA,CAAA,CAAA;;;;;AA7C1B,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,0BAA0B,CAAC,CAAA,CAAA,EAAA,kBAAA,EAAAM,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AD3B3C,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA4D,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEpD,EAAgF,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YAEhF,EAAyB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACrB,EAAgD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AACpD,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;YAGV,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEN,EAOM,CAAA,UAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEN,EASsB,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;YAEtB,EAAkB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAA+C,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AACnD,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;YAnCQ,EAAyC,CAAA,WAAA,CAAA,sBAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YAEpC,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YAO7B,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA;YAIvB,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA;YAUvB,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAzB,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA;;;uFCMrB,eAAe,EAAA,CAAA;cAN3B,SAAS;2BACI,SAAS,EAAA,SAAA,EAGR,CAAC,0BAA0B,CAAC,EAAA,QAAA,EAAA,q2CAAA,EAAA,MAAA,EAAA,CAAA,gmDAAA,CAAA,EAAA,CAAA;oEAK9B,UAAU,EAAA,CAAA;kBAAlB,KAAK;YACG,qBAAqB,EAAA,CAAA;kBAA7B,KAAK;YAEO,oBAAoB,EAAA,CAAA;kBAAhC,KAAK;YAYF,YAAY,EAAA,CAAA;kBADf,KAAK;YAWG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YAOG,YAAY,EAAA,CAAA;kBAApB,KAAK;YAE0B,iBAAiB,EAAA,CAAA;kBAAhD,SAAS;mBAAC,mBAAmB,CAAA;YACW,QAAQ,EAAA,CAAA;kBAAhD,eAAe;mBAAC,sBAAsB,CAAA;YACJ,QAAQ,EAAA,CAAA;kBAA1C,YAAY;mBAAC,mBAAmB,CAAA;YACH,UAAU,EAAA,CAAA;kBAAvC,YAAY;mBAAC,cAAc,CAAA;YAClB,gBAAgB,EAAA,CAAA;kBAAzB,MAAM;YACgC,gBAAgB,EAAA,CAAA;kBAAtD,SAAS;mBAAC,0BAA0B,CAAA;;;ACpEzC,MAAM,gCAAgC,GAAG,MAAK;AAC1C,IAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;AAC3E,CAAC,CAAC;MAKW,4BAA4B,CAAA;AACrC;;;;AAIG;AACH,IAAA,IACI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,eAAe,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AAGD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,WACW,CAAA,WAA6B,EAC1B,oBAAgD,EAAA;QADnD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAC1B,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;KAC1D;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACb,YAAA,gCAAgC,EAAE,CAAC;AACtC,SAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACvD;IAED,WAAW,GAAA;QACP,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnD;gHAjCQ,4BAA4B,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAL,0BAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;uFAA5B,4BAA4B,EAAA,CAAA;cAHxC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,CAAmB,iBAAA,CAAA;AAChC,aAAA,CAAA;oGAQO,eAAe,EAAA,CAAA;kBADlB,KAAK;;;;MCTG,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;QAOa,IAAS,CAAA,SAAA,GAAG,cAAc,CAAC;AAC1B,QAAA,IAAA,CAAA,KAAK,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAClE,KAAA;wGAHY,oBAAoB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAAtB,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCRjC,EAA2B,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;YAC3B,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YACzB,EAAkH,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAAvG,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wDAAA,GAAA,EAAA,OAAS,gBAAY,CAAC,EAAA,CAAA,CAAA;YAAkF,EAAY,CAAA,YAAA,EAAA,CAAA;;YAF5H,EAAmB,CAAA,UAAA,CAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;;uFDQT,oBAAoB,EAAA,CAAA;cANhC,SAAS;2BACI,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uMAAA,EAAA,MAAA,EAAA,CAAA,iWAAA,CAAA,EAAA,CAAA;gBAGtC,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACI,KAAK,EAAA,CAAA;kBAAd,MAAM;;;;IEVX,EAAyE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAiB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAxB,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;;IAa1F,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAiB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAxB,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;;MCM5E,iBAAiB,CAAA;IAa1B,IAAa,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAChC;AAID,IAAA,IAA0B,YAAY,GAAA;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACvC;AAED,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAtB1C,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;AAenB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAc7C,QAAA,IAAA,CAAA,QAAQ,GAA6B,MAAK,GAAG,CAAC;AAC9C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KATa;IAE9C,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACrD,SAAA;KACJ;AAKD,IAAA,UAAU,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;KAC/B;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;qGAxDQ,iBAAiB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AAHf,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,OAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDhB5F,EAAiG,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AACjG,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAA2F,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAMnF,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,OAAS,cAAU,CAAC,EAAA,CAAA,CAAA;YALxB,EAK2B,CAAA,YAAA,EAAA,CAAA;YAC3B,EAA0B,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACtB,EAAO,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;YACX,EAAO,CAAA,YAAA,EAAA,CAAA;YACP,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC7B,EAAQ,CAAA,YAAA,EAAA,CAAA;YACR,EAAgG,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;YAb/D,EAAsC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,IAAA,CAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;YACvC,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA7B,YAAA,EAAA,CAAA,WAAA,CAAA,SAAA,EAAA,GAAA,CAAA,WAAA,CAA6B,CAAA,UAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAIrD,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzB,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,aAAA,CAAyB,CAAA,UAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YADzB,EAA6D,CAAA,WAAA,CAAA,WAAA,EAAA,GAAA,CAAA,aAAA,GAAA,WAAA,GAAA,YAAA,CAAA,CAAA;YASpC,EAAqC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAArC,EAAqC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,IAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;;;uFCMzD,iBAAiB,EAAA,CAAA;cAP7B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,aAGV,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,iBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACvE,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qnBAAA,EAAA,MAAA,EAAA,CAAA,25CAAA,CAAA,EAAA,CAAA;oEAO/C,WAAW,EAAA,CAAA;kBADV,KAAK;YAGN,gBAAgB,EAAA,CAAA;kBADf,KAAK;YAGN,WAAW,EAAA,CAAA;kBADV,KAAK;YAGN,aAAa,EAAA,CAAA;kBADZ,KAAK;YAGO,QAAQ,EAAA,CAAA;kBAApB,KAAK;YAII,aAAa,EAAA,CAAA;kBAAtB,MAAM;YAEmB,YAAY,EAAA,CAAA;kBAArC,WAAW;mBAAC,OAAO,CAAA;;;ICtCZ,YAQX;AARD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EARW,WAAW,KAAX,WAAW,GAQtB,EAAA,CAAA,CAAA;;;ICPG,EAAuC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAAvB,EAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;IAClC,EAAoB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAA,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAlB,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAX,EAAW,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;MCOtB,sBAAsB,CAAA;AANnC,IAAA,WAAA,GAAA;AAOa,QAAA,IAAA,CAAA,KAAK,GAAgB,WAAW,CAAC,OAAO,CAAC;AAKrD,KAAA;0GANY,sBAAsB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDTnC,EAAqH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACjH,EAAuC,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACvC,EAAsC,CAAA,UAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAC1C,EAAM,CAAA,YAAA,EAAA,CAAA;;AAHoB,YAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,CAAqB,oCAAA,CAAA,SAAA,EAAA,gBAAA,GAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YACvC,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAV,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YACP,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAX,EAAW,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;;;uFCOT,sBAAsB,EAAA,CAAA;cANlC,SAAS;2BAEI,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,wOAAA,EAAA,MAAA,EAAA,CAAA,orBAAA,CAAA,EAAA,CAAA;gBAG5B,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;;;ICdE,aAMX;AAND,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA;;;ICJG,EAAkE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAjB,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAV,EAAU,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;ACChF,MAAM,iBAAiB,GAAG;AACtB,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,0BAA0B;AAClD,IAAA,CAAC,YAAY,CAAC,UAAU,GAAG,eAAe;AAC1C,IAAA,CAAC,YAAY,CAAC,KAAK,GAAG,eAAe;AACrC,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,iBAAiB;AACzC,IAAA,CAAC,YAAY,CAAC,IAAI,GAAG,cAAc;CACtC,CAAC;MAQW,gBAAgB,CAAA;AAN7B,IAAA,WAAA,GAAA;AAOa,QAAA,IAAA,CAAA,KAAK,GAAiB,YAAY,CAAC,IAAI,CAAC;AAYpD,KAAA;AARG,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,CAAsB,mBAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;KAC7C;AAED,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChE;oGAZQ,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;YDjB7B,EAAuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACnC,EAAoD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;YACpD,EAAmF,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YACnF,EAAkD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAC9C,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;YAJH,EAA4C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5C,EAA4C,CAAA,UAAA,CAAA,iBAAA,GAAA,GAAA,CAAA,cAAA,CAAA,CAAA;YACxC,EAAkC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlC,EAAkC,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,SAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;;uFCehC,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BACI,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,uTAAA,EAAA,MAAA,EAAA,CAAA,+lBAAA,CAAA,EAAA,CAAA;gBAGtC,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,eAAe,EAAA,CAAA;kBAAvB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YAGF,YAAY,EAAA,CAAA;kBADf,WAAW;mBAAC,OAAO,CAAA;;;MChBX,8BAA8B,CAAA;kHAA9B,8BAA8B,GAAA,CAAA,EAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAF3B,EAAyD,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;;AAAnD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,EAAA,EAAA,CAAA,cAAA,CAAqB,CAAA,WAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;uFAE9B,8BAA8B,EAAA,CAAA;cAJ1C,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,6BAA6B;AACvC,gBAAA,QAAQ,EAAE,CAA6D,2DAAA,CAAA;AAC1E,aAAA,CAAA;;;;MCsCY,qBAAqB,CAAA;IAK9B,IACI,OAAO,CAAC,KAA6B,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AACrD,SAAA;KACJ;IAiBD,WACY,CAAA,QAAyB,EACzB,OAAe,EAAA;QADf,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAiB;QACzB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QA7BlB,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;QACf,IAAI,CAAA,IAAA,GAAG,YAAY,CAAC;QACpB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QASlB,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAW,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAc,CAAC;AACxC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAyB,CAAC;QAEvE,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QACX,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAiIV,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAM,KAAI,GAAG,CAAC;AAE1B,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAG,CAAC;KAzHzB;AAEJ,IAAA,IAAI,gBAAgB,GAAA;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAW;AACtC,YAAA,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;AAClD,YAAA,MAAM,UAAU,GAAG,aAAa,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC;AAClF,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAuB,CAAC;AACvG,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5F,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9G,YAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,KAAI;AACjC,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO;AACV,SAAA;;AAED,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjD,QAAA,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YACjG,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC/F,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AACpG,SAAA;KACJ;IAED,WAAW,GAAA;;QAEP,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;AAChC,SAAA;KACJ;IAED,sBAAsB,CAAC,EAAU,EAAE,MAAoB,EAAA;AACnD,QAAA,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAA;KACJ;IAED,kBAAkB,CAAC,UAAkB,EAAE,QAAa,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO;AACV,SAAA;;;QAID,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAiB,EAAE,QAAQ,CAAC,CAAC;KAC1D;AAED,IAAA,YAAY,CAAC,OAAgB,EAAA;QACzB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAClC;AAED,IAAA,aAAa,CAAC,EAAU,EAAA;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;KACxC;AAED,IAAA,YAAY,CAAC,EAAU,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAChC;IAED,SAAS,CAAC,EAAU,EAAE,CAAY,EAAA;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;KAC3B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,OAAO;AACV,SAAA;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAA,IAAI,KAAK,KAAK,GAAG,IAAI,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE;AACxG,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBAC3D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,gBAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;AAC7E,aAAA;AAAM,iBAAA;gBACH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtD;yGApJQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;AAVnB,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,WAAW,EAAE,UAAU,EAAC,MAAM,qBAAqB,EAAC;AACpD,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,cAAA,EAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAfG,EAMS,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACT,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;YAAA,EAAW,CAAA,YAAA,EAAA,CAAA;;YALP,EAAqC,CAAA,sBAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;YACrC,EAA0C,CAAA,WAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;AAF1C,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAa,CAAA,WAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;;;uFAkBZ,qBAAqB,EAAA,CAAA;cAtBjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,eAAe;AACzB,gBAAA,QAAQ,EAAE,CAAA;;;;;;;;;AAST,IAAA,CAAA;AACD,gBAAA,SAAS,EAAE;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,iBAAiB;AAC1B,wBAAA,WAAW,EAAE,UAAU,EAAC,2BAA2B,EAAC;AACpD,wBAAA,KAAK,EAAE,IAAI;AACd,qBAAA;AACJ,iBAAA;AACD,gBAAA,mBAAmB,EAAE,KAAK;gBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,aAAA,CAAA;uFAEY,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAGF,OAAO,EAAA,CAAA;kBADV,KAAK;YAOG,sBAAsB,EAAA,CAAA;kBAA9B,KAAK;YACI,cAAc,EAAA,CAAA;kBAAvB,MAAM;YACG,WAAW,EAAA,CAAA;kBAApB,MAAM;YACG,MAAM,EAAA,CAAA;kBAAf,MAAM;YACG,IAAI,EAAA,CAAA;kBAAb,MAAM;YACG,gBAAgB,EAAA,CAAA;kBAAzB,MAAM;YACW,GAAG,EAAA,CAAA;kBAApB,SAAS;mBAAC,KAAK,CAAA;;;;ICtDhB,EAAoD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IAPxD,EAMuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;IACnC,EAAoD,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACpD,EAAM,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAA,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;;;;AAHxB,IAAA,EAAA,CAAA,WAAA,CAAA,iCAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAyD,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAHzD,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,cAAA,GAAA,IAAA,GAAA,QAAA,CAA2C,CAAA,mBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;IAKvC,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAb,EAAa,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA;IACX,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAX,EAAW,CAAA,iBAAA,CAAA,QAAA,CAAA,CAAA;;MCCR,gBAAgB,CAAA;AACzB,IAAA,WAAA,CAAgC,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAkB7D,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;QACtB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAEO,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAU7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAA4B,IAAI,CAAC,CAAC;QACtE,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CACnD4B,QAAM,CAAC,OAAO,CAAC,EACfC,WAAS,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAACC,KAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,EAC7EA,KAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACtE,CAAC;AACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAC3C,SAAS,CAAC,cAAc,CAAC,EACzB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EACnCA,KAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAC9FA,KAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAChD,CAAC;QACO,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;KA5ClB;IAE1E,IAAa,OAAO,CAAC,KAAgC,EAAA;AACjD,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACJ;IAED,IAAa,WAAW,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;AAEhD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAoB,CAAC;KAChF;AAQD,IAAA,WAAW,CAAC,OAAkC,EAAA;AAC1C,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AAC9B,YAAA,OAAO,oBAAoB,CAAC;AAC/B,SAAA;AAED,QAAA,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC;KAC9C;oGA/BQ,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAA5B,IAAA,CAAA,kBAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,UAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;YDT7B,EASM,CAAA,UAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;YARD,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;uFCQb,gBAAgB,EAAA,CAAA;cAL5B,SAAS;2BAEI,UAAU,EAAA,QAAA,EAAA,mYAAA,EAAA,MAAA,EAAA,CAAA,0iBAAA,CAAA,EAAA,CAAA;;sBAIP,QAAQ;wBAER,OAAO,EAAA,CAAA;kBAAnB,KAAK;YAMO,WAAW,EAAA,CAAA;kBAAvB,KAAK;YAUG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YAEiC,MAAM,EAAA,CAAA;kBAA5C,KAAK;;kBAAI,WAAW;mBAAC,eAAe,CAAA;;;;;ICxBzC,EAAuE,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAiB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;IAAxB,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;ACQxF,MAAM,IAAI,GAAG,MAAK,GAAG,CAAC;MAST,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CACY,GAAsB,EACtB,GAA6B,EAC7B,QAAkB,EAAA;QAFlB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;QAC7B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAGvB,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QACpB,IAAiB,CAAA,iBAAA,GAAe,IAAI,CAAC;QACrC,IAAgB,CAAA,gBAAA,GAAqB,IAAI,CAAC;QAG1C,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,iBAAiB,GAAa;YAClC,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;YACT,SAAS;SACZ,CAAC;AACM,QAAA,IAAA,CAAA,cAAc,GAAG;AACrB,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,GAAG,EAAE,GAAG;SACX,CAAC;QAEM,IAAM,CAAA,MAAA,GAAsB,EAAE,CAAC;QAE/B,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;AAEpB,QAAA,IAAA,CAAA,iBAAiB,GAAQ;AAC5B,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,SAAS,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;AAC3C,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,WAAW,EAAE;AACT,gBAAA,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;AAC/B,gBAAA,cAAc,EAAE,KAAK;AACxB,aAAA;SACJ,CAAC;QAGc,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAU9B,IAAW,CAAA,WAAA,GAAW,yFAAyF,CAAC;KAxDrH;IAgDJ,IAAa,KAAK,CAAC,MAAyB,EAAA;QACxC,IAAI,MAAM,EAAE,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9B,SAAA;KACJ;AAMD,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAED,IAAW,KAAK,CAAC,CAAS,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACxC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/B,aAAA;AACJ,SAAA;KACJ;AAEM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AAC3B,SAAA;KACJ;AAEM,IAAA,gBAAgB,CAAC,EAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;KAC9B;AAEM,IAAA,iBAAiB,CAAC,EAAO,EAAA;AAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;AAED,IAAA,YAAY,CAAC,IAAI,EAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACzB;IACM,qBAAqB,GAAA;QACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AAE/C,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,KAAI;AACjD,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO;AAEhC,YAAA,IACI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE;iBAC5D,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC;iBAC5C,KAAK,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5C,gBAAA,KAAK,CAAC,OAAO,KAAK,EAAE,EACtB;;gBAEE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAChE,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,KAAK,KAAI;AACjD,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO;YAEhC,UAAU,CAAC,MAAK;gBACZ,IAAI,IAAI,CAAC,SAAS,EAAE;;oBAEhB,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAChE,iBAAA;aACJ,EAAE,GAAG,CAAC,CAAC;AACZ,SAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC/B,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,mBAAmB,CAAC,WAAmB,EAAA;AAC3C,QAAA,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,KAAK,KAAK,KAAK,WAAW,CAAC,CAAC;KACzE;IAEO,mBAAmB,GAAA;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAE7B,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,gBAAA,IAAI,EAAE,CAAC;gBACP,EAAE,GAAG,CAAC,CAAC;gBACP,SAAS;AACZ,aAAA;AACD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC3B,gBAAA,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAEpD,gBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;oBACjC,IAAI,UAAU,GAAG,IAAI,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3C,oBAAA,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;oBAE7E,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;oBACnF,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;AAC1F,iBAAA;AACD,gBAAA,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC5D,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChF,KAAK,CAAC,GAAG,EAAE,CAAC;AACf,iBAAA;AACJ,aAAA;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;gBACf,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACxB,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb;oBACI,IAAI;oBACJ,EAAE;iBACL,EACD;oBACI,IAAI;oBACJ,EAAE,EAAE,EAAE,GAAG,CAAC;iBACb,EACD;oBACI,GAAG,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAE,CAAA;AACvC,iBAAA,CACJ,CACJ,CAAC;AACL,aAAA;AACD,YAAA,EAAE,EAAE,CAAC;AACR,SAAA;KACJ;IAEO,gCAAgC,GAAA;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AACnC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AAE7C,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACvB,gBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;AACtC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/D,gBAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBACzB,YAAY,CAAC,IAAI,CACb,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb;AACI,wBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;wBACnB,EAAE,EAAE,KAAK,CAAC,KAAK;qBAClB,EACD;AACI,wBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;wBACnB,EAAE,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM;qBACvC,EACD;AACI,wBAAA,SAAS,EAAE,QAAQ;wBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;AACtB,qBAAA,CACJ,CACJ,CAAC;AACL,iBAAA;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;IAEM,SAAS,CAAC,IAAY,EAAE,UAAoB,EAAA;AAC/C,QAAA,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AACpB,QAAA,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACzC,SAAA;KACJ;IAEO,aAAa,CAAC,aAAgC,EAAE,EAAA;QACpD,MAAM,UAAU,GAAG,kBAAkB,CAAC;QACtC,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,MAAM,KAAI;AAC3D,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEhD,YAAA,IAAI,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;AACpB,YAAA,OAAO,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAAE,gBAAA,EAAE,GAAG,CAAC;AACnF,YAAA,OAAO,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAAE,gBAAA,EAAE,KAAK,CAAC;AAExE,YAAA,MAAM,WAAW,GAAG,CAAC,KAAK,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;AAE3E,YAAA,MAAM,kBAAkB,GACpB,CAAC,CAAC,WAAW;AACT,kBAAE,UAAU;AACZ,kBAAE,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,EAC7F,IAAI,EAAE,IAAI,EAAE,CAAC;YAEnB,MAAM,SAAS,GAAW,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAqB,KAAI;AACvE,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBAEtB,IAAI,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;AAChC,oBAAA,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;AACrB,iBAAA;AACD,gBAAA,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;oBAC1B,IAAI,IAAI,GAAG,CAAC;AACf,iBAAA;gBAED,OAAO;oBACH,IAAI;oBACJ,WAAW;oBACX,MAAM,EAAE,CAAC,OAAsB,EAAE,IAAW,EAAE,OAAa,KAAI;AAC3D,wBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;AACxF,wBAAA,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;wBAC/F,MAAM,QAAQ,GACV,CAAG,EAAA,IAAI,CAAC,IAAI,CAAA,CAAA,CAAG,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,eAAe,CAAA,IAAA,CAAM,CAAC,CAAC;wBAEhG,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,8BAA8B,CAAC,CAAC;wBAC1F,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5D,wBAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;wBACzC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1C,wBAAA,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;wBAC/C,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEzD,wBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;qBACzC;iBACJ,CAAC;AACN,aAAC,CAAC,CAAC;YAEH,OAAO;AACH,gBAAA,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;gBACxC,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;aACvC,CAAC;AACN,SAAC,CAAC,CAAC;;QAGH,UAAU,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,KAAI;YACtC,IAAI,CAAC,YAAY,EAAE,CAAC;;YAGpB,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC5D,SAAC,CAAC;KACL;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;IAEO,oBAAoB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAChC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAErD,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAI;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACxD,YAAA,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,gBAAA,IAAI,IAAI,EAAE;oBACN,gBAAgB,CAAC,IAAI,CACjB,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb;AACI,wBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;AACnB,wBAAA,EAAE,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;qBACtB,EACD;AACI,wBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;wBACnB,EAAE,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;qBAC1C,EACD;AACI,wBAAA,SAAS,EAAE,eAAe;wBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;AACpB,qBAAA,CACJ,CACJ,CAAC;AACL,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KAC3B;yGA5UQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;AAFnB,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,qBAAqB,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDvBlH,EAOiD,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAL7C,YAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,KAAA,GAAA,MAAA,CAAA,EAAA,CAAmB,CAIJ,aAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAoB,CAJhB,EAAA,CAAA,CAAA,kBAAA,EAAA,SAAA,wEAAA,GAAA,EAAA,OAKC,2BAAuB,CALxB,EAAA,CAAA,CAAA;YAK0B,EAAgB,CAAA,YAAA,EAAA,CAAA;YACjE,EAA+F,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAC/F,EAA+D,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;AAL3D,YAAA,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,cAAA,CAAmC,CAAA,cAAA,EAAA,GAAA,CAAA,OAAA,CAAA,MAAA,KAAA,SAAA,IAAA,CAAA,GAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;AAFnC,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,KAAA,CAAmB,CAAA,SAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,CAAA;YAMhB,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,SAAA,IAAA,CAAA,GAAA,CAAA,UAAA,CAAA,CAAA;YAC5B,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnB,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;uFCgBhB,qBAAqB,EAAA,CAAA;cAPjC,SAAS;2BACI,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAC,MAA2B,qBAAA,EAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA,QAAA,EAAA,yfAAA,EAAA,MAAA,EAAA,CAAA,2wDAAA,CAAA,EAAA,CAAA;kIAoD9F,OAAO,EAAA,CAAA;kBAAtB,KAAK;YACU,cAAc,EAAA,CAAA;kBAA7B,KAAK;YAEO,KAAK,EAAA,CAAA;kBAAjB,KAAK;YAOG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,WAAW,EAAA,CAAA;kBAAnB,KAAK;YAC2B,UAAU,EAAA,CAAA;kBAA1C,SAAS;mBAAC,YAAY,CAAA;;;ICrFf,SAKX;AALD,CAAA,UAAY,QAAQ,EAAA;AAChB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,QAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACjB,CAAC,EALW,QAAQ,KAAR,QAAQ,GAKnB,EAAA,CAAA,CAAA;;;;ACPD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6E,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;IAWrE,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,8EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,0BAAmB,CAAA,CAAA,EAAA,CAAC,+LACb,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,mBAAA,CAAA,MAAA,CAA2B,CAAA,CADd,EAAA,CAAA,CAAA;AACgB,IAAA,EAAA,CAAA,YAAA,EAAS,EAAA,CAAA;;;;IAV1D,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAvB,IAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,YAAA,CAAuB,uDAAA,CAAA,YAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,yCAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,wDAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,CAAA;;MCSlB,mCAAmC,CAAA;AANhD,IAAA,WAAA,GAAA;QAwBoB,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QACnC,IAAgB,CAAA,gBAAA,GAAgB,EAAE,CAAC;QAEnC,IAAW,CAAA,WAAA,GAAwB,EAAE,CAAC;AAKrC,QAAA,IAAA,CAAA,sBAAsB,GAAuC,IAAI,YAAY,EAAwB,CAAC;QAEhH,IAAc,CAAA,cAAA,GAAuC,EAAE,CAAC;QAEvD,IAAY,CAAA,YAAA,GAAoB,EAAE,CAAC;QACnC,IAAiB,CAAA,iBAAA,GAAoB,EAAE,CAAC;QACxC,IAAU,CAAA,UAAA,GAAoB,EAAE,CAAC;AAmC5C,KAAA;IAjEG,IAAoB,WAAW,CAAC,IAAqB,EAAA;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,GAAGS,MAAO,CACzB,IAAI,EACJ,CAAC,GAAG,EAAE,IAAI,KAAI;AACV,YAAA,MAAM,KAAK,GAAGH,IAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,GAAG,CAAC;AAE7B,YAAA,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAClB,YAAA,OAAO,GAAG,CAAC;SACd,EACD,EAAE,CACL,CAAC;KACL;AAmBD,IAAA,IAAW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;AAEM,IAAA,WAAW,CAAC,aAA4B,EAAA;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;KACvC;AAEM,IAAA,WAAW,CAAC,MAAqB,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAGA,IAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAE3D,QAAA,IAAI,QAAQ,EAAE;AACV,YAAAS,KAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;AAEM,IAAA,mBAAmB,CAAC,MAAuB,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACnC;IAEM,wBAAwB,GAAA;AAC3B,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI;AACP,SAAA,CAAC,CAAC;KACN;uHAlEQ,mCAAmC,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAnC,mCAAmC,EAAA,SAAA,EAAA,CAAA,CAAA,+BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,wBAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDXhD,EAaM,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAbwD,EAAa,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;uFCW9D,mCAAmC,EAAA,CAAA;cAN/C,SAAS;2BACI,+BAA+B,EAAA,eAAA,EAGxB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6oBAAA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,CAAA;gBAG/B,UAAU,EAAA,CAAA;kBAAzB,KAAK;YACc,WAAW,EAAA,CAAA;kBAA9B,KAAK;YAeU,QAAQ,EAAA,CAAA;kBAAvB,KAAK;YACU,aAAa,EAAA,CAAA;kBAA5B,KAAK;YACU,gBAAgB,EAAA,CAAA;kBAA/B,KAAK;YAEU,WAAW,EAAA,CAAA;kBAA1B,KAAK;YACU,oBAAoB,EAAA,CAAA;kBAAnC,KAAK;YACU,cAAc,EAAA,CAAA;kBAA7B,KAAK;YACU,mBAAmB,EAAA,CAAA;kBAAlC,KAAK;YAEW,sBAAsB,EAAA,CAAA;kBAAtC,MAAM;;;AClCJ,MAAM,WAAW,GAAG;AACvB,IAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG;AACtB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,CAAC,iBAAiB,CAAC,OAAO,GAAG;AACzB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,CAAC,iBAAiB,CAAC,KAAK,GAAG;AACvB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,CAAC,iBAAiB,CAAC,GAAG,GAAG;AACrB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;AACD,IAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG;AACtB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,KAAK;AAChB,KAAA;CACJ,CAAC;AAEc,SAAA,wBAAwB,CAAC,mBAA4B,EAAE,2BAAoC,EAAA;IACvG,OAAO;AACH,QAAA,CAAC,QAAQ,CAAC,OAAO,GAAG;AAChB,YAAA,GAAG,WAAW;AACd,YAAA,CAAC,iBAAiB,CAAC,KAAK,GAAG;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,IAAI;AACf,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG;AAC7B,gBAAA,MAAM,EAAE,KAAK;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,CAAC,QAAQ,CAAC,MAAM,GAAG;AACf,YAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG;AAC9B,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC3C,MAAM,EAAE,CAAC,mBAAmB;AAC/B,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG;AACtB,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,eAAe,EAAE,IAAI;AACrB,gBAAA,MAAM,EAAE,mBAAmB;AAC9B,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,IAAI,GAAG;AACtB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,IAAI;AACf,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,OAAO,GAAG;AACzB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,KAAK;AAChB,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG;AAC7B,gBAAA,MAAM,EAAE,KAAK;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,CAAC,QAAQ,CAAC,QAAQ,GAAG;AACjB,YAAA,CAAC,iBAAiB,CAAC,YAAY,GAAG;AAC9B,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,IAAI,EAAE,MAAM;AACf,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,cAAc,GAAG;AAChC,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,iBAAiB,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBACnD,MAAM,EAAE,CAAC,2BAA2B;AACvC,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG;AAC7B,gBAAA,MAAM,EAAE,KAAK;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,CAAC,QAAQ,CAAC,IAAI,GAAG;AACb,YAAA,GAAG,WAAW;AACd,YAAA,CAAC,iBAAiB,CAAC,KAAK,GAAG;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,MAAM,EAAE,IAAI;AACf,aAAA;AACD,YAAA,CAAC,iBAAiB,CAAC,WAAW,GAAG;AAC7B,gBAAA,MAAM,EAAE,IAAI;AACf,aAAA;AACJ,SAAA;KACJ,CAAC;AACN;;MCpEa,eAAe,CAAA;AAD5B,IAAA,WAAA,GAAA;QAEY,IAAyB,CAAA,yBAAA,GAAG,OAAO,CAAC;AAoP/C,KAAA;AA7OG,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAOc,OAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,MAAM,QAAQ,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAChG;AAED,IAAA,IAAY,qBAAqB,GAAA;AAC7B,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACnC;AAEM,IAAA,gBAAgB,CAAC,eAAuB,EAAE,iBAAyB,EAAE,mBAA4B,EAAE,2BAAoC,EAAA;QAC1I,IAAI,CAAC,eAAe,EAAE,MAAM;YAAE,OAAO;AAErC,QAAA,IAAI,CAAC,eAAe,GAAGxB,SAAU,CAAC,eAAe,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAC3C,QAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAC/C,QAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;KAClE;IAEM,2BAA2B,CAAC,YAA8B,EAAE,UAAkB,EAAA;AACjF,QAAA,MAAM,kBAAkB,GAAGyB,QAAO,CAAC,UAAU,EAAE,CAAC,SAAS,KACrDb,IAAK,CACD,YAAY,EACZ,CAAC,WAAW,KAAK,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,kBAAkB,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CACvG,CACJ,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;KACpD;AAEM,IAAA,yBAAyB,CAAC,QAAkB,EAAA;AAC/C,QAAA,MAAM,kBAAkB,GAAmB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACtG,MAAM,cAAc,GAAqB,EAAE,CAAC;AAE5C,QAAAD,OAAQ,CAAC,kBAAkB,EAAE,CAAC,WAAyB,KAAI;YACvD,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;AAC5D,YAAA,MAAM,cAAc,GAAG,gBAAgB,IAAIV,IAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AAE7F,YAAA,MAAM,GAAG,GACL,cAAc,IAAI,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAE3G,YAAA,IAAI,gBAAgB,EAAE;AAClB,gBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC7C,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACpD,aAAA;AAED,YAAA,IAAI,cAAc;gBAAE,OAAO;AAC3B,YAAA,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACzD,SAAA;AAED,QAAA,MAAM,uBAAuB,GAAGW,IAAK,CAAC,cAAc,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/F,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AACvC,SAAA;QAED,MAAM,uBAAuB,GAAmBX,IAAK,CACjD,cAAc,EACd,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CACzD,CAAC;AACF,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;KAChD;AAEM,IAAA,4BAA4B,CAA2B,GAAM,EAAE,qBAAwB,EAAE,OAAU,EAAA;AACtG,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO;AAElD,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC5B,YAAA,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;AACxC,SAAA;QAED,IAAI,GAAG,KAAK,qBAAqB,EAAE;AAC/B,YAAA,IAAI,OAAO,EAAE;AACT,gBAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;AAC1B,aAAA;AACJ,SAAA;KACJ;IAEM,2BAA2B,CAA2B,GAAM,EAAE,OAAU,EAAA;AAC3E,QAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM;YAAE,OAAO;AAE3C,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;AAErB,QAAA,OAAO,CAAC,OAAO,GAAGO,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,MAAM,KAAI;AAC/C,YAAA,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAACkB,QAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;AAChF,YAAA,OAAO,MAAM,CAAC;AAClB,SAAC,CAAC,CAAC;QAEH,OAAO,CAAC,kBAAkB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACzD;AAEM,IAAA,gBAAgB,CAAC,cAAqB,EAAA;AACzC,QAAA,OAAOF,OAAQ,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC;KACzH;IAEM,OAAO,aAAa,CAAC,GAAmB,EAAA;AAC3C,QAAA,MAAM,cAAc,GAAG;AACnB,YAAA,iBAAiB,CAAC,GAAG;AACrB,YAAA,iBAAiB,CAAC,IAAI;AACtB,YAAA,iBAAiB,CAAC,KAAK;AACvB,YAAA,iBAAiB,CAAC,OAAO;AACzB,YAAA,iBAAiB,CAAC,IAAI;SACzB,CAAC;QACF,OAAOA,OAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,KAAKtB,OAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;KACtF;IAEO,sBAAsB,CAAC,QAAkB,EAAE,cAAgC,EAAA;QAC/ES,OAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,KAAI;AAC3C,YAAA,MAAM,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;AAChD,YAAA,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACnH,YAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE;gBAC5G,OAAO;AACV,aAAA;YAED,MAAM,aAAa,GACf,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;AAC5B,kBAAEV,IAAK,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC;kBAC/CA,IAAK,CAAC,cAAc,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;AAEpE,YAAA,IAAI,aAAa,EAAE;AACf,gBAAA,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;AAC5B,gBAAA,aAAa,CAAC,kBAAkB,GAAG,UAAU,CAAC;AACjD,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,kBAAkB,CACtB,kBAAkC,EAClC,WAAyB,EACzB,QAAkB,EAClB,SAAkB,EAAA;QAElB,MAAM,YAAY,GAAG,SAAS;cACxBW,IAAK,CAAC,kBAAkB,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;AAC3F,cAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;QAEtC,MAAM,kBAAkB,GAAG,SAAS;cAC9B,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,kBAAkB,CAAC;AAC/D,cAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AAEnC,QAAA,MAAM,GAAG,GAAmB;YACxB,MAAM,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,GAAG,YAAY;YACzD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;YACvD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW;YAC5E,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,kBAAkB;SACrB,CAAC;AAEF,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE;YAC1C,GAAG,CAAC,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE;YAC5C,GAAG,CAAC,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC;AACtE,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,qBAAqB,CAAC,GAAmB,EAAE,WAAyB,EAAA;AACxE,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACd,YAAA,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACpB,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AAEhD,QAAA,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,IAAI,EAAE,UAAU,KAAK,iBAAiB,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC,IAAI;AAC1G,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,cAAc,CAAC,YAA8B,EAAA;AACjD,QAAA,MAAM,OAAO,GAAGX,IAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAE7D,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;AACrB,QAAA,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;KAC1B;IAEO,oBAAoB,CAAC,uBAAuC,EAAE,YAA8B,EAAA;AAChG,QAAA,MAAM,OAAO,GAAGA,IAAK,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;AAE5B,QAAAU,OAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,KAAI;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM;gBAAE,OAAO;YAC3C,IAAI,GAAG,KAAK,uBAAuB,EAAE;AACjC,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAAA,OAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,KAAI;AACzB,YAAA,MAAM,CAAC,MAAM,GAAG,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxF,SAAC,CAAC,CAAC;KACN;IAEO,0BAA0B,CAAC,QAAkB,EAAE,QAAwB,EAAA;QAC3E,MAAM,YAAY,GAAGV,IAAK,CAAC,QAAQ,EAAE,CAAC,GAAiB,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO;AAClH,cAAE,QAAQ,CAAC;AAEf,QAAA,MAAM,uBAAuB,GAAG;YAC5B,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,YAAY;AACtC,YAAA,CAAC,QAAQ,CAAC,MAAM,GAAG,MACfA,IAAK,CAAC,QAAQ,EAAE,CAAC,GAAiB,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ;AAC9G,YAAA,CAAC,QAAQ,CAAC,QAAQ,GAAG,MACjBA,IAAK,CAAC,QAAQ,EAAE,CAAC,GAAiB,KAAK,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,YAAY,CAAC,EAAE,OAAO;AACpG,kBAAE,QAAQ;YAClB,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,YAAY;SACtC,CAAC;AAEF,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC;YAAE,OAAO;AAC/C,QAAA,OAAO,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;KAC9C;IAEO,qBAAqB,CAAC,QAAkB,EAAE,UAAkB,EAAA;QAChE,OAAOG,MAAO,CACV,UAAU,EACV,CAAC,GAAmB,EAAE,SAAe,KAAI;AACrC,YAAA,MAAM,UAAU,GAAG,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;AAEhD,YAAA,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACnH,MAAM,iBAAiB,GACnB,qBAAqB,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;AAClH,YAAA,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM;AAAE,gBAAA,OAAO,GAAG,CAAC;AAE/D,YAAA,MAAM,eAAe,GAAGJ,SAAU,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAiB,EAAE,GAAG,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAE1F,YAAA,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtB,YAAA,OAAO,GAAG,CAAC;SACd,EACD,EAAE,CACL,CAAC;KACL;mGApPQ,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;AAAf,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,eAAe,WAAf,eAAe,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAf,eAAe,EAAA,CAAA;cAD3B,UAAU;;;MCVE,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,qBAAqB,GAAG;YACrC,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;SAC7D,CAAC;AAuEL,KAAA;IArEU,SAAS,CAAC,mBAA2B,EAAE,kBAA0B,EAAA;QACpE,OAAOI,MAAO,CACV,mBAAmB,EACnB,CAAC,GAAG,EAAE,SAAe,KAAI;AACrB,YAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,CAAC,YAAY,CAAC;AAC3H,YAAA,MAAM,cAAc,GAAG,gBAAgB,IAAIH,IAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAEhF,YAAA,MAAM,GAAG,GAAG,cAAc,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AAE/F,YAAA,IAAI,gBAAgB,EAAE;gBAClB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBACvD,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACpD,aAAA;AAED,YAAA,IAAI,cAAc;AAAE,gBAAA,OAAO,GAAG,CAAC;AAE/B,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,YAAA,OAAO,GAAG,CAAC;SACd,EACD,EAAE,CACL,CAAC;KACL;AAEO,IAAA,aAAa,CAAC,GAAmB,EAAE,SAAe,EAAE,kBAA0B,EAAA;AAClF,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC9C,QAAA,IAAI,UAAU,KAAK,iBAAiB,CAAC,YAAY;YAAE,OAAO;AAE1D,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACd,YAAA,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;AACpB,SAAA;AAED,QAAA,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC;QAElB,MAAM,iBAAiB,GAAGA,IAAK,CAAC,kBAAkB,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,UAAU,CAAC,EAAE,OAAO;AACpH,cAAE,QAAQ,CAAC;QACf,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;AAE/C,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,iBAAiB,EAAE;AACjC,YAAA,GAAG,CAAC,kBAAkB,GAAG,UAAU,CAAC;AACvC,SAAA;AAED,QAAA,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,SAAS,CAAC,IAAI;AACvB,SAAA,CAAC,CAAC;KACN;AAEO,IAAA,UAAU,CAAC,SAAe,EAAE,kBAA0B,EAAE,gBAAyB,EAAA;AACrF,QAAA,MAAM,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnG,QAAA,MAAM,YAAY,GAAGW,IAAK,CAAC,kBAAkB,EAAE,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC,QAAQ,KAAK,kBAAkB,CAAC,CAAC;AAEnH,QAAA,MAAM,GAAG,GAAmB;AACxB,YAAA,MAAM,EAAE,YAAY;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,kBAAkB;SACrB,CAAC;QAEF,IAAI,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;AAC7D,YAAA,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,EAAE;YAChD,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAC1E,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;0GA1EQ,sBAAsB,GAAA,CAAA,EAAA,CAAA,EAAA;AAAtB,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,sBAAsB,WAAtB,sBAAsB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAtB,sBAAsB,EAAA,CAAA;cADlC,UAAU;;;;;ACKC,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmE,CAAA,CAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;AAE3D,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,+FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,OAAa,kDAC3B,CADkD,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,+FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAMnB,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,cAAA,CAAA,MAAA,CAAmB,CAAA,CANA,EAAA,CAAA,CAAA;AAME,IAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,CAAA;;;;IANzD,EAAoC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApC,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,kBAAA,CAAoC,yBAAA,CAAA,MAAA,EAAA,MAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA;;;IAHhD,EAA4D,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACxD,EASM,CAAA,UAAA,CAAA,CAAA,EAAA,qDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAVI,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA;;;;AATvC,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAmE,aAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAExB,EAAc,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACrD,EAAuE,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAA5D,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,OAAa,sCAAkB,CAAP,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAkB,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,WAAA,CAAA,MAAA,CAAgB,CAAA,CAAlC,EAAA,CAAA,CAAA;AAAoC,IAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;AAEvF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgD,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAqB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAI,EAAA,CAAA;IAE/D,EAWM,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAlBqC,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IACtC,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAxB,EAAwB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA;IAGD,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArB,EAAqB,CAAA,iBAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IAErD,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA;;MCGjB,0BAA0B,CAAA;AAGnC,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC;KACjD;AAED,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;KACpC;AA0BD,IAAA,IAAY,eAAe,GAAA;QACvB,OAAOR,MAAO,CACV,IAAI,CAAC,MAAM,EACX,CAAC,GAAG,EAAE,IAAoB,KAAI;AAC1B,YAAA,IAAI,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AACvB,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACd,EACD,EAAE,CACL,CAAC;KACL;AAED,IAAA,IAAY,wBAAwB,GAAA;QAChC,OAAOA,MAAO,CACV,IAAI,CAAC,MAAM,EACX,CAAC,GAAG,EAAE,IAAoB,KAAI;YAC1B,IAAI,IAAI,EAAE,eAAe,EAAE;AACvB,gBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;SACd,EACD,EAAE,CACL,CAAC;KACL;IAED,WACY,CAAA,eAAgC,EAChC,eAAuC,EAAA;QADvC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAwB;QAhEnC,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;AAgBpD;;;AAGK;QACI,IAAmB,CAAA,mBAAA,GAAW,EAAE,CAAC;AAE1C;;;AAGK;QACI,IAAkB,CAAA,kBAAA,GAAW,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,SAAS,GAAwC,IAAI,YAAY,EAAyB,CAAC;AAC3F,QAAA,IAAA,CAAA,SAAS,GAAwC,IAAI,YAAY,EAAyB,CAAC;AAC3F,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;QAEjE,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;KAiChB;IAEG,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE,CAAC;AACpB,SAAA;KACJ;AAEM,IAAA,cAAc,CAAC,GAAmB,EAAA;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,SAAS,GAA0B,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpG,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;AAEM,IAAA,WAAW,CAAC,GAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,MAAM,SAAS,GAA0B,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpG,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAClC;IAEM,aAAa,GAAA;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;IAEO,SAAS,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACnG;AAEO,IAAA,aAAa,CAAC,WAA6B,EAAA;AAC/C,QAAA,OAAOqB,QAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,KAC/Cb,IAAK,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CACnG,CAAC;KACL;AAEO,IAAA,eAAe,CAAC,GAAmB,EAAA;QACvCD,OAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;QAExHA,OAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,oBAAoB,KAAI;YAC7DA,OAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,KACzC,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAC,GAAG,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAC9F,CAAC;AACN,SAAC,CAAC,CAAC;KACN;8GAnHQ,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAAgB,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,sBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oCAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADbvC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8B,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC8C,EAAI,CAAA,MAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YAChF,EAoBM,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YArBiD,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAd,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA;;;uFCWxD,0BAA0B,EAAA,CAAA;cALtC,SAAS;2BACI,qBAAqB,EAAA,QAAA,EAAA,2rCAAA,EAAA,MAAA,EAAA,CAAA,4wBAAA,CAAA,EAAA,CAAA;iGAmBtB,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YAMG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAMG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YAEI,SAAS,EAAA,CAAA;kBAAlB,MAAM;YACG,SAAS,EAAA,CAAA;kBAAlB,MAAM;YACG,WAAW,EAAA,CAAA;kBAApB,MAAM;;;;;ACnCP,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyD,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;IAGjD,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,6BAAsB,CAAA,CAAA,EAAA,CAAC,2LACvB,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,mBAAA,CAAA,MAAA,CAAiC,CAAA,CADV,EAAA,CAAA,CAAA;AACY,IAAA,EAAA,CAAA,YAAA,EAAsB,EAAA,CAAA;;;IAFtE,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,UAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;;MCElC,gCAAgC,CAAA;IASzC,IAAoB,gBAAgB,CAAC,QAAkB,EAAA;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1C,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACrC;AAMD,IAAA,IAAW,gBAAgB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC;KACrD;AAED,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAED,IAAW,YAAY,CAAC,IAAsB,EAAA;AAC1C,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,qBAAqB,GAAG3B,IAAK,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;KACvE;AAED,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,OAAOA,IAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;KAC5D;AAED,IAAA,WAAA,CAAoB,eAAgC,EAAA;QAAhC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QApC5C,IAAa,CAAA,aAAA,GAAqB,EAAE,CAAC;QAK7B,IAAe,CAAA,eAAA,GAAW,EAAE,CAAC;QAS7B,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QACrC,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;AAE5C,QAAA,IAAA,CAAA,mBAAmB,GAAuC,IAAI,YAAY,EAAwB,CAAC;KAmB5D;IAEjD,QAAQ,GAAA;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAChJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAC7F;AAEM,IAAA,gBAAgB,CAAC,QAAkB,EAAA;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;AAEM,IAAA,mBAAmB,CAAC,GAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,CAAC,4BAA4B,CAAiB,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjH,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAiB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpF,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC/B;IAEM,oBAAoB,GAAA;AACvB,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;AAC/B,YAAA,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC;AACxG,SAAA,CAAC,CAAC;KACN;oHA/DQ,gCAAgC,EAAA,EAAA,CAAA,iBAAA,CAAA0B,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAhC,gCAAgC,EAAA,SAAA,EAAA,CAAA,CAAA,2BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAF9B,CAAC,eAAe,CAAC,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADXhC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsB,aAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAEkC,EAAQ,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;YAAA,EAAI,CAAA,YAAA,EAAA,CAAA;YAC5D,EAI+C,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAH3C,EAA8B,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,gBAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,4EAAA,CAAA,MAAA,EAAA,EAAA,OAGb,4BAAwB,CAHX,EAAA,CAAA,CAAA;AAGa,YAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;YAE/D,EAKM,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YAXM,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA9B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,gBAAA,CAA8B,CAAA,OAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;YAKT,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1B,EAA0B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA;;;uFCI9C,gCAAgC,EAAA,CAAA;cAP5C,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,mBAGpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,spBAAA,EAAA,MAAA,EAAA,CAAA,+PAAA,CAAA,EAAA,CAAA;+DASZ,iBAAiB,EAAA,CAAA;kBAAhC,KAAK;YACU,eAAe,EAAA,CAAA;kBAA9B,KAAK;YACc,gBAAgB,EAAA,CAAA;kBAAnC,KAAK;YAQU,mBAAmB,EAAA,CAAA;kBAAlC,KAAK;YACU,2BAA2B,EAAA,CAAA;kBAA1C,KAAK;YAEW,mBAAmB,EAAA,CAAA;kBAAnC,MAAM;;;MC5BE,YAAY,CAAA;AAGrB,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC;KAC3D;AAWD,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAThC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAI,OAAO,EAAE,CAAC;;AAEjD;;AAEG;AACM,QAAA,IAAA,CAAA,OAAO,GAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAKjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;KAC1D;AAED,IAAA,KAAK,CAAC,GAAS,EAAA;AACX,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;AACJ;;ICOW,4BAGX;AAHD,CAAA,UAAY,2BAA2B,EAAA;AACnC,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAGtC,EAAA,CAAA,CAAA,CAAA;AAEM,MAAM,cAAc,GAAoB;AAC3C,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,aAAa,EAAE,iCAAiC;CACnD,CAAC;AAEK,MAAM,aAAa,GAAsC;AAC5D,IAAA,QAAQ,EAAE,QAAQ;AAClB,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;CACpC,CAAC;AAEK,MAAM,qBAAqB,GAAG,CAAC,QAAgB,KAAiC;AACnF,IAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO,2BAA2B,CAAC,KAAK,CAAC;AACzE,IAAA,IAAI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC3D,OAAO,2BAA2B,CAAC,MAAM,CAAC;AAC7C,KAAA;IACD,OAAO,2BAA2B,CAAC,KAAK,CAAC;AAC7C,CAAC;;;;IC5DO,EAA6F,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;IADjG,EAAwC,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACpC,EAA6F,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACjG,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IADI,EAAsC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAtC,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,kBAAA,CAAsC,CAAA,yBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA;;MC2BhD,kBAAkB,CAAA;IAK3B,IAAa,OAAO,CAAC,KAAiC,EAAA;AAClD,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,YAAY,WAAW,CAAC;QACtD,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAyB,CAAC;AACvD,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,KAAgB,CAAC;AAC1C,SAAA;KACJ;AAmBD,IAAA,YAAY,CAAC,CAAC,EAAA;AACV,QAAA,MAAM,YAAY,GACd,IAAI,CAAC,OAAO,YAAY,UAAU;aACjC,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,IAAK,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAChH,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAC/D,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAE/E,QAAA,IACI,CAAC,YAAY;AACb,YAAA,CAAC,iBAAiB;AAClB,YAAA,CAAC,oBAAoB;AACrB,YAAA,CAAC,gBAAgB;AACjB,YAAA,CAAC,2BAA2B;AAC5B,YAAA,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAC7B;AACE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;KACJ;AAED,IAAA,WAAA,CACY,GAAsB,EACtB,gBAAkC,EAClC,UAAsB,EACtB,UAA2B,EAAA;QAH3B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;AAvD7B,QAAA,IAAA,CAAA,aAAa,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAa9D,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QAQpB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAMM,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;KA6B3C;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/E,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/D,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7F,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;YAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,iCAAiC,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;AAED;;;;;;AAMG;IACK,iCAAiC,GAAA;AACrC,QAAA,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AAChH,QAAA,IAAI,YAAY,EAAE;;YAEd,UAAU,CAAC,MAAK;AACZ,gBAAA,MAAM,OAAO,GAAgB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAE3D,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC;oBAAE,OAAO;AAEvD,gBAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACjD,gBAAA,MAAM,oBAAoB,GAAG,YAAY,CAAC,qBAAqB,EAAE,CAAC;AAElE,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,GAAG,oBAAoB,CAAC,GAAG,IAAI,CAAC;AAC5F,gBAAA,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,oBAAoB,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC;AAEtE,gBAAA,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;sGApGQ,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,YAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;qCAqBY,UAAU,CAAA,CAAA;;;;;6GArBxC,GAAoB,CAAA,YAAA,CAAA,MAAA,CAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,CAAA;;;;;YD7BjC,EAA0D,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACtD,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAM,CAAA,YAAA,EAAA,CAAA;;YAJkB,EAAe,CAAA,UAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YACpB,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,CAAA;ACyB1B,SAAA,EAAA,EAAA,YAAA,EAAA,CAAAb,EAAA,CAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,uSAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,EAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAGxC,kBAAkB,EAAA,CAAA;cAP9B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGV,UAAA,EAAA,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,EAAA,eAAA,EAChC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wPAAA,EAAA,MAAA,EAAA,CAAA,8RAAA,CAAA,EAAA,CAAA;oJAGrC,aAAa,EAAA,CAAA;kBAAtB,MAAM;YAIM,OAAO,EAAA,CAAA;kBAAnB,KAAK;YAQG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,yBAAyB,EAAA,CAAA;kBAAjC,KAAK;YAE6D,gBAAgB,EAAA,CAAA;kBAAlF,SAAS;mBAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;YAIrC,KAAK,EAAA,CAAA;kBAAhC,WAAW;mBAAC,aAAa,CAAA;YACG,MAAM,EAAA,CAAA;kBAAlC,WAAW;mBAAC,cAAc,CAAA;YAEK,OAAO,EAAA,CAAA;kBAAtC,WAAW;mBAAC,UAAU,CAAA;YAGvB,YAAY,EAAA,CAAA;kBADX,YAAY;mBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MC/CnC,gBAAgB,CAAA;AACzB,IAAA,WAAA,CACY,OAAgB,EAChB,sBAA8C,EAC9C,QAAkB,EAAA;QAFlB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;QAC9C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC1B;IAEJ,IAAI,CACA,OAA0D,EAC1D,YAAyC,EAAA;AAEzC,QAAA,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,KAAK,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,CAAC;QAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAE7C,QAAA,MAAM,UAAU,GAAG,IAAI,YAAY,CAAI,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAEpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAEtD,QAAA,OAAO,UAAU,CAAC;KACrB;IAEO,sBAAsB,CAC1B,OAAuC,EACvC,EACI,cAAc,EACd,QAAQ,EACR,KAAK,EAAE,YAAY,EACnB,aAAa,EACb,OAAO,EACP,SAAS,EACT,yBAAyB,EACzB,aAAa,GACU,EAC3B,UAAsB,EACtB,UAA2B,EAAA;QAE3B,MAAM,eAAe,GAAG,IAAI,eAAe,CACvC,kBAAkB,EAClB,IAAI,EACJ,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,CAC3D,CAAC;QACF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAwB,eAAe,CAAC,CAAC;AAE7E,QAAA,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC;AAErC,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5G,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC;AAC1D,QAAA,UAAU,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;AAClD,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;AAC1C,QAAA,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxC,QAAA,UAAU,CAAC,QAAQ,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;KAC7E;AAEO,IAAA,aAAa,CAAC,YAAsC,EAAA;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;KAC7C;AAEO,IAAA,gBAAgB,CAAC,YAAsC,EAAA;AAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,YAAY,EAAE,QAAQ,CAAa,WAAA,CAAA,CAAC,CAAC;QAE5F,MAAM,QAAQ,GAAQ,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpE,QAAA,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC;AACnE,QAAA,MAAM,eAAe,GAAG,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC;QAEnE,IAAI,eAAe,IAAI,eAAe,EAAE;YACpC,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,gBAAA,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,eAAe,GAAG,eAAe,CAAC;AAC5E,gBAAA,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;AACtC,aAAA;YACD,IAAI,QAAQ,CAAC,OAAO,EAAE;AAClB,gBAAA,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,CAAC;AAC7E,gBAAA,QAAQ,CAAC,OAAO,GAAG,eAAe,CAAC;AACtC,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE;AACtC,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACrB,YAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,IAAI,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAE9D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEzH,QAAA,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;YACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE;YACpD,gBAAgB;AAChB,YAAA,GAAG,MAAM;AACZ,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;YAClD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxE,aAAa,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAC/F,SAAA;AAED,QAAA,OAAO,aAAa,CAAC;KACxB;IAEO,cAAc,CAAI,UAA2B,EAAE,MAAwB,EAAA;QAC3E,MAAM,eAAe,GAAqB,CAAC,IAAI,MAAM,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;AAE/G,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjF;AAEO,IAAA,iBAAiB,CACrB,YAAsC,EACtC,UAAsB,EACtB,UAA2B,EAAA;AAE3B,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;AAChD,QAAA,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAE9D,QAAA,IAAI,MAAM,EAAE,oBAAoB,IAAI,MAAM,EAAE,WAAW,EAAE;AACrD,YAAA,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;YAClD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,KAAI;AAClD,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,KACjB,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAC3G,CAAC;AACN,aAAC,CAAC,CAAC;AACH,YAAA,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,cAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3F,SAAA;KACJ;AAEO,IAAA,cAAc,CAAI,OAA4C,EAAA;AAClE,QAAA,IAAI,CAAC,OAAO,IAAY,OAAQ,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;QAChD,IAAiB,OAAQ,CAAC,aAAa;YAAE,OAAoB,OAAQ,CAAC,aAAa,CAAC;AACpF,QAAA,OAAoB,OAAO,CAAC;KAC/B;oGAlJQ,gBAAgB,EAAA,EAAA,CAAA,QAAA,CAAArB,IAAA,CAAA,OAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,sBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;sGAAhB,gBAAgB,EAAA,OAAA,EAAhB,gBAAgB,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;uFAET,gBAAgB,EAAA,CAAA;cAH5B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;;MCAY,kBAAkB,CAAA;IA2B3B,WACY,CAAA,UAAsB,EACtB,gBAAkC,EAAA;QADlC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QA1BnB,IAAc,CAAA,cAAA,GAAe,EAAgB,CAAC;QAE7C,IAAQ,CAAA,QAAA,GAAe,QAAQ,CAAC;QAEnC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QAEH,IAAa,CAAA,aAAA,GAAoB,EAAE,CAAC;AAEpC,QAAA,IAAA,CAAA,aAAa,GAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAQjE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAEtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEhC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAwB,CAAC;KAO3F;IAGJ,aAAa,GAAA;QACT,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC7D,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,GAAS,EAAA;QAClB,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,SAAA;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3E,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;AAC5D,SAAA,CAAC,CAAC,CAAC;AAEJ,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;YAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;AAEH,QAAA,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK;AACxE,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;sGA5EQ,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAmC,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;mGAAlB,GAAe,CAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;;uFAAf,kBAAkB,EAAA,CAAA;cAJ9B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,aAAa;AACvB,gBAAA,QAAQ,EAAE,mBAAmB;AAChC,aAAA,CAAA;yFAEuB,OAAO,EAAA,CAAA;kBAA1B,KAAK;mBAAC,WAAW,CAAA;YAES,cAAc,EAAA,CAAA;kBAAxC,KAAK;mBAAC,kBAAkB,CAAA;YAEG,QAAQ,EAAA,CAAA;kBAAnC,KAAK;mBAAC,mBAAmB,CAAA;YAED,KAAK,EAAA,CAAA;kBAA7B,KAAK;mBAAC,gBAAgB,CAAA;YAEU,aAAa,EAAA,CAAA;kBAA7C,KAAK;mBAAC,wBAAwB,CAAA;YAEE,aAAa,EAAA,CAAA;kBAA7C,KAAK;mBAAC,wBAAwB,CAAA;YAEF,SAAS,EAAA,CAAA;kBAArC,KAAK;mBAAC,oBAAoB,CAAA;YAEC,QAAQ,EAAA,CAAA;kBAAnC,KAAK;mBAAC,mBAAmB,CAAA;YAEmB,yBAAyB,EAAA,CAAA;kBAArE,KAAK;mBAAC,oCAAoC,CAAA;YAEjB,YAAY,EAAA,CAAA;kBAArC,MAAM;mBAAC,gBAAgB,CAAA;YAEG,aAAa,EAAA,CAAA;kBAAvC,MAAM;mBAAC,iBAAiB,CAAA;YAEW,eAAe,EAAA,CAAA;kBAAlD,MAAM;mBAAC,0BAA0B,CAAA;YAUlC,aAAa,EAAA,CAAA;kBADZ,YAAY;mBAAC,OAAO,CAAA;;;AC3CnB,SAAU,QAAQ,CAAC,EAAU,EAAA;AAC/B,IAAA,OAAO,UAAU,MAAc,EAAE,WAA4B,EAAE,UAA8B,EAAA;AACzF,QAAA,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW,EAAA;YACvC,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAA,OAAO,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,SAAC,CAAC;AAEF,QAAA,OAAO,UAAU,CAAC;AACtB,KAAC,CAAC;AACN;;;;;;;;;;;;;ICWgB,EAAqE,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;IAAjD,EAAkB,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;IAD1C,EAA2D,CAAA,uBAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;IACvD,EAAqE,CAAA,UAAA,CAAA,CAAA,EAAA,kEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACrE,EAAgC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAC1D,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAFP,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IACc,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;;IAI/C,EAIkE,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAA9D,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,yFAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,cAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA+C,CAAA,iBAAA,CAAA,MAAA,EAAA,cAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAFlE,EAAyB,CAAA,UAAA,CAAA,cAAA,CAAA,IAAA,CAAA,CAAA;IACzB,EAA4C,CAAA,WAAA,CAAA,aAAA,EAAA,cAAA,CAAA,WAAA,CAAA,CAAA;;;IAEhD,EAA4D,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;IANhE,EAA2D,CAAA,uBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAIsE,CAAA,UAAA,CAAA,CAAA,EAAA,kEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACtE,EAA4D,CAAA,UAAA,CAAA,CAAA,EAAA,kEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAChE,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IALgB,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IAIzC,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;IAG9B,EAKe,CAAA,kBAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;AAFX,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,WAAA,CAAoC,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAlC,KAAA,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;IAnC5C,EAiBiB,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;IAfb,EAAa,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,qFAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAW,CAAA,MAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAgBzB,EAGe,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IAEf,EAOe,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IAEf,EAKe,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACnB,EAAmB,CAAA,YAAA,EAAA,CAAA;;;;;IAnCf,EAAgC,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,mDAAA,CAAA,gBAAA,EAAA,sBAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,WAAA,CAAA,MAAA,CAAA,IAAA,MAAA,CAAA,QAAA,CAAA,mFAAA,CAAA,mBAAA,EAAA,IAAA,CAAA,CAAA,oBAAA,EAAA,MAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,YAAA,CAAA,QAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,SAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA;IAYhC,EAAuD,CAAA,WAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,MAAA,EAAA,QAAA,CAAA,CAAA,CAAA;IAGpB,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IAKtB,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,WAAA,CAAA,CAAA;IAUpD,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;;;MCZzB,mBAAmB,CAAA;IAoB5B,IACI,OAAO,CAAC,IAAuC,EAAA;AAC/C,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAChD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACvB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACvB,IAAI,CAAC,YAAY,GAAG;AAChB,wBAAA,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;AACtC,wBAAA,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,IAAI,UAAU;qBACvD,CAAC;AACL,iBAAA;AACL,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YAExB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,gBAAA,IAAI,CAAC,uBAAuB;qBACvB,QAAQ,CAAC,IAAI,CAAC;AACd,qBAAA,IAAI,CAACmC,OAAK,EAAE,EAAEC,WAAS,CAACnB,OAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;qBAC7E,SAAS,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC5B,iBAAC,CAAC,CAAC;AACV,aAAA;AACJ,SAAA;KACJ;AAKD,IAAA,WAAA,GAAA;AAlDiB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,IAAU,CAAA,UAAA,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,IAAuB,CAAA,uBAAA,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAE9E,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAExC,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;AAMN,QAAA,IAAA,CAAA,wBAAwB,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChE,IAAI,CAAA,IAAA,GAA6B,EAAE,CAAC;QAEpC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAgChB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAA4B,CAAC;QAGpD,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO;AAE1C,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9B,YAAA,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,EAAE;AAC9C,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;AACxC,SAAA;KACJ;AAED,IAAA,QAAQ,CAAC,GAA2B,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;AACvB,SAAA;AAAM,aAAA;YACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;KACJ;AAED,IAAA,QAAQ,CAAC,GAA2B,EAAA;AAChC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;YACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;AACvB,SAAA;AAAM,aAAA;YACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,SAAA;KACJ;AAED,IAAA,aAAa,CAAC,GAA2B,EAAA;QACrC,IAAI,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QAC5D,OAAO,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;KACxE;AAED,IAAA,MAAM,CAAC,GAA2B,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,IAAI,GAAG,CAAC,MAAM,EAAE;AACZ,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACxB,aAAA;AAAM,iBAAA;gBACH,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;AAC7E,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,iBAAiB,CAAC,MAAkB,EAAE,UAAwC,EAAE,IAAa,EAAA;QACzF,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC3B;AAED,IAAA,WAAW,CAAC,IAA4B,EAAA;AACpC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;KAClC;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACxB;IAED,MAAM,GAAA;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAED,mBAAmB,CAAC,GAA2B,EAAE,KAAa,EAAA;QAC1D,OAAO,GAAG,CAAC,aAAa;cAClB,GAAG,CAAC,aAAa;cACjB,IAAI,CAAC,aAAa;kBAChB,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC;kBACnE,IAAI,CAAC;KAChB;uGAvIQ,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,aAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;;ADzBhC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,CAAiE,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;AACzB,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAc,GAAc,CAAA,YAAA,EAAA,CAAA,EAAA,CAAC,CAAe,YAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,YAAA,EAAc,CAA7B,EAAA,CAAA,CAAA;YAC7D,EAAmD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAEnD,EAsCmB,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;;AACvB,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;YA3CU,EAAwB,CAAA,UAAA,CAAA,GAAA,CAAA,cAAA,CAAA,CAAA;YAKhB,EAAkC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlC,EAAkC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,CAAA;;;AC4I1D,UAAA,CAAA;IAAC,QAAQ,CAAC,GAAG,CAAC;;;;AAGb,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;uFA3HQ,mBAAmB,EAAA,CAAA;cAN/B,SAAS;2BACI,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,wqEAAA,EAAA,MAAA,EAAA,CAAA,urBAAA,CAAA,EAAA,CAAA;sCAY/C,aAAa,EAAA,CAAA;kBADZ,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;YAYxC,OAAO,EAAA,CAAA;kBADV,KAAK;YA6BN,QAAQ,EAAA,CAAA;kBADP,MAAM;mBAAC,QAAQ,CAAA;YAyEhB,YAAY,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCxIH,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAIqB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AA8B9D,KAAA;AA5BG,IAAA,IAAI,CAAC,EACD,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,UAAU,EACrB,OAAO,EACP,SAAS,EACT,OAAO,GAAG,IAAI,YAAY,EAAE,GAM/B,EAAA;AACG,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE;YACjD,OAAO;YACP,QAAQ;AACR,YAAA,cAAc,EAAE;gBACZ,OAAO;gBACP,OAAO;AACP,gBAAA,QAAQ,EAAE,OAAO;AACpB,aAAA;AACD,YAAA,aAAa,EAAE;AACX,gBAAA,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI;gBACpC,SAAS;AACZ,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;qGA9BQ,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;sGAAjB,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;uFAET,iBAAiB,EAAA,CAAA;cAH7B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;MAsCY,uBAAuB,CAAA;AAEhC,IAAA,IAAY,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KACrC;AAID,IAAA,WAAA,CAAY,QAAkB,EAAA;AAPb,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;AAK5D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAG5C,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;AACpC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;AAED,IAAA,QAAQ,CAAC,GAAwB,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxC;AAED,IAAA,UAAU,CAAC,GAAwB,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxC;AAED,IAAA,WAAW,CAAC,GAAwB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,QAAQ,CAAC,GAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACvBU,KAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAChCF,QAAM,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EACjCC,WAAS,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAACC,KAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAC1DF,QAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAClEW,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC;KACL;AACJ;;MClEY,mBAAmB,CAAA;AAbhC,IAAA,WAAA,GAAA;AAcqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,EAAC,UAAuB,EAAC,CAAC;AAC7C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzE,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAK3E,IAAkB,CAAA,kBAAA,GAAe,UAAU,CAAC;AAS5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAsB,CAAC;QAIzC,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;AAiE5C,KAAA;IA9DG,YAAY,GAAA;QACR,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAGD,YAAY,GAAA;QACR,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAGD,2BAA2B,GAAA;QACvB,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,iBAAA;AACL,aAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9B,SAAA;KACJ;IAGD,aAAa,GAAA;QACT,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YAC1B,OAAO;AACV,SAAA;QAED,IAAI,IAAI,CAAC,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO;AACV,SAAA;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACzB,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,QAAQ,EAAE,IAAI,CAAC,kBAAkB;AACjC,YAAA,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;AACrB,YAAA,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACzF,OAAO,EAAE,IAAI,CAAC,gBAAgB;AAC9B,YAAA,OAAO,EAAE;gBACL,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,QAAQ,EAAE,IAAI,CAAC,kBAAkB;gBACjC,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,KAAK,EAAE,IAAI,CAAC,eAAe;gBAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,aAAA;AACJ,SAAA,CAAC,CAAC;KACN;IAEO,KAAK,GAAA;QACT,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;AACnB,SAAA;KACJ;IAEM,WAAW,GAAA;QACd,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;uGAtFQ,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAnB,YAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,YAAA,EAAc,CAAd,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,4CAAA,GAAA,EAAA,OAAA,GAAA,CAAA,YAAA,EAAc,CAAd,EAAA,CAAA,CAAA,YAAA,EAAA,SAAA,iDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,2BAAA,EAA6B,mFAA7B,GAAe,CAAA,aAAA,EAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,CAAA;AAXb,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,uBAAuB;AAChC,oBAAA,UAAU,GAAE,CAAC,QAAkB,KAAI;AAC/B,wBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAChF,wBAAA,OAAO,OAAO,IAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC5D,qBAAC,CAAA;oBACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,iBAAA;AACJ,aAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAEQ,mBAAmB,EAAA,CAAA;cAb/B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,cAAc;AACxB,gBAAA,SAAS,EAAE;AACP,oBAAA;AACI,wBAAA,OAAO,EAAE,uBAAuB;AAChC,wBAAA,UAAU,GAAE,CAAC,QAAkB,KAAI;AAC/B,4BAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAChF,4BAAA,OAAO,OAAO,IAAI,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC5D,yBAAC,CAAA;wBACD,IAAI,EAAE,CAAC,QAAQ,CAAC;AACnB,qBAAA;AACJ,iBAAA;AACJ,aAAA,CAAA;gBAQG,UAAU,EAAA,CAAA;kBADT,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAGzB,kBAAkB,EAAA,CAAA;kBADjB,KAAK;YAGN,eAAe,EAAA,CAAA;kBADd,KAAK;YAGN,iBAAiB,EAAA,CAAA;kBADhB,KAAK;YAGN,aAAa,EAAA,CAAA;kBADZ,KAAK;mBAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;YAIlC,gBAAgB,EAAA,CAAA;kBADf,MAAM;YAQP,YAAY,EAAA,CAAA;kBADX,YAAY;mBAAC,YAAY,CAAA;YAO1B,YAAY,EAAA,CAAA;kBADX,YAAY;mBAAC,OAAO,CAAA;YAMrB,2BAA2B,EAAA,CAAA;kBAD1B,YAAY;mBAAC,YAAY,CAAA;YAY1B,aAAa,EAAA,CAAA;kBADZ,YAAY;mBAAC,kBAAkB,CAAA;;MA8CvB,wBAAwB,CAAA;4GAAxB,wBAAwB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAAxB,wBAAwB,EAAA,CAAA;cAHpC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,mBAAmB;AAChC,aAAA,CAAA;;;;;MCtGY,uBAAuB,CAAA;2GAAvB,uBAAuB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAApC,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;ACRpC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA0H,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAElH,EAAwD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC5D,EAAO,CAAA,YAAA,EAAA,CAAA;YACP,EAAiC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC7B,EAAwD,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAC5D,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;AANoB,YAAA,EAAA,CAAA,WAAA,CAAA,eAAA,EAAA,GAAA,CAAA,QAAA,CAAgC,+BAAA,CAAA,SAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;;;uFDQjD,uBAAuB,EAAA,CAAA;cANnC,SAAS;2BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+XAAA,EAAA,MAAA,EAAA,CAAA,+1BAAA,CAAA,EAAA,CAAA;gBAI/C,QAAQ,EAAA,CAAA;kBADP,KAAK;YAIN,QAAQ,EAAA,CAAA;kBADP,KAAK;YAIN,OAAO,EAAA,CAAA;kBADN,KAAK;;;METG,sBAAsB,CAAA;AAC/B,IAAA,SAAS,CAAC,GAAuB,EAAA;AAC7B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;KAC1E;0GAHQ,sBAAsB,GAAA,CAAA,EAAA,CAAA,EAAA;+HAAtB,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAtB,sBAAsB,EAAA,CAAA;cAHlC,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACF,gBAAA,IAAI,EAAE,wBAAwB;AACjC,aAAA,CAAA;;;;ICCW,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;MAIxB,cAAc,CAAA;AASvB,IAAA,WAAA,GAAA,GAAgB;AAEhB,IAAA,QAAQ,MAAK;kGAXJ,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,QAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,oBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;2BAOZ,WAAW,EAAA,CAAA,CAAA,CAAA;;;;;;YAZlB,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,CAAA,CAAA;;;uFAGT,cAAc,EAAA,CAAA;cAR1B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;AACJ,aAAA,CAAA;sCAEY,EAAE,EAAA,CAAA;kBAAV,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YACyB,eAAe,EAAA,CAAA;kBAA7C,SAAS;mBAAC,WAAW,CAAA;;;;;ICEN,EAA8D,CAAA,cAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;IAA7B,EAA4B,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,uHAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,cAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;IAAE,EAAkB,CAAA,YAAA,EAAA,CAAA;IACjF,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;;;;;AAFqB,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAe,CAAA,SAAA,EAAA,OAAA,CAAA,cAAA,CAAA,CAAA;IAChC,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;;IAJJ,EAAgC,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC5B,EAGc,CAAA,UAAA,CAAA,CAAA,EAAA,8EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAGP,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAQ,CAAA,YAAA,EAAA,CAAA;;;IAAjD,EAAyB,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA;IAAC,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;;IAF/E,EAA6D,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACzD,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,8EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAGP,EAAgC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5B,EAAmD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAAO,CAAA,YAAA,EAAA,CAAA;;;IADA,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;IAHnC,EAA+B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC3B,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,8EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAGP,EAAgC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC5B,EAAmD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAAO,CAAA,YAAA,EAAA,CAAA;;;IADA,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;IAHnC,EAA+B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC3B,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,8EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IAzBnB,EAAiE,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAC7D,EAKe,CAAA,UAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACf,EAIe,CAAA,UAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACf,EAMe,CAAA,UAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACf,EAMe,CAAA,UAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACnB,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IAzBI,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA;IAMf,EAA4C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5C,EAA4C,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,IAAA,CAAA,MAAA,CAAA,SAAA,IAAA,CAAA,MAAA,CAAA,QAAA,CAAA,CAAA;IAK5C,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;IAOd,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;IAUzB,EAAyE,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;IAAzE,EAAyE,CAAA,UAAA,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;;;IAA1D,EAAyC,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,CAAA;;;IAD5D,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;;;IAElB,EAAqE,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAA;;;IAjCzE,EAAkH,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;IAC9G,EA0Be,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACf,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,gDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;IACd,EAAqE,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;IACzE,EAAU,CAAA,YAAA,EAAA,CAAA;;;;IAlCsD,EAAuB,CAAA,qBAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA;IAAC,EAAyB,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;IAC9F,EAAgC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAhC,IAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,mBAAA,CAAgC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;IAgChC,EAAqC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArC,EAAqC,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA;;MC9B/C,eAAe,CAAA;IAQxB,IAAa,WAAW,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,IAAI,CAAC,CAAC;AAEjC;;;;AAIG;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC/C,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACvC,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;IAED,IAAa,aAAa,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAEpE;;;;AAIG;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACnD,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;YAClC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACvC,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;AAgBD,IAAA,WAAA,CAAsB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QAtD5C,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAkB,CAAA,kBAAA,GAAG,SAAS,CAAC;QAEtB,IAAK,CAAA,KAAA,GAAW,SAAS,CAAC;QAC1B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAsCzB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC/D,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAO,CAAC;KAG3B;IAEhD,eAAe,GAAA;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACxC,SAAA;KACJ;AAED,IAAA,mBAAmB,CAAC,MAAM,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAClD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,SAAA;KACJ;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe;AAAE,YAAA,OAAO,CAAC,CAAC;AAEpC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,KAAI;AAClE,YAAA,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,EAAE;gBACpB,GAAG,GAAG,GAAG,CAAC;AACb,aAAA;AAED,YAAA,OAAO,GAAG,CAAC;AACf,SAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEP,OAAO,CAAC,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;KAC7C;mGAtFQ,eAAe,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,cAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;wCAqDP,cAAc,EAAA,CAAA,CAAA,CAAA;;;;;YDvEnC,EAckG,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;AAV9F,YAAA,EAAA,CAAA,UAAA,CAAA,qBAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAuB,+BAA2B,CAAC,EAAA,CAAA,CAAA;YAWnD,EAkCU,CAAA,UAAA,CAAA,CAAA,EAAA,kCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;YACd,EAAgB,CAAA,YAAA,EAAA,CAAA;;AA7CZ,YAAA,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,GAAA,CAAA,SAAA,CAA8B,0BAAA,CAAA,uBAAA,EAAA,GAAA,CAAA,kBAAA,CAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,cAAA,CAAA,sCAAA,CAAA,SAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,cAAA,CAAA,wCAAA,CAAA,qBAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA;AAH9B,YAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,KAAA,CAAiB,qCAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,gBAAA,IAAA,GAAA,CAAA,QAAA,IAAA,GAAA,CAAA,qBAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA;YAaQ,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAApB,EAAoB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,eAAA,CAAA,CAAA;;;uFCGpC,eAAe,EAAA,CAAA;cAL3B,SAAS;2BACI,SAAS,EAAA,QAAA,EAAA,i6EAAA,EAAA,MAAA,EAAA,CAAA,8tJAAA,CAAA,EAAA,CAAA;oEASV,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YAEO,WAAW,EAAA,CAAA;kBAAvB,KAAK;YAgBO,aAAa,EAAA,CAAA;kBAAzB,KAAK;YAiBG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,aAAa,EAAA,CAAA;kBAArB,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YACG,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YACI,iBAAiB,EAAA,CAAA;kBAA1B,MAAM;YACG,mBAAmB,EAAA,CAAA;kBAA5B,MAAM;YACiC,eAAe,EAAA,CAAA;kBAAtD,eAAe;mBAAC,cAAc,CAAA;;;;;MC5DtB,oBAAoB,CAAA;AANjC,IAAA,WAAA,GAAA;AAQI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,OAAO,EAAW,CAAC;QAYxC,IAAK,CAAA,KAAA,GAAsB,SAAS,CAAC;QAM7B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAiB9B,KAAA;AAjCG;;AAEG;AACH,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAMD,IAAI,KAAK,CAAC,GAAY,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;KAC3B;AAID;;AAEG;IACH,OAAO,GAAA;QACH,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACJ;AAED;;AAEG;IACH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;wGApCQ,oBAAoB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;YAJlB,EAAoD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;uFAItD,oBAAoB,EAAA,CAAA;cANhC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EACd,QAAA,EAAA,sDAAsD,EAE/C,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,yFAAA,CAAA,EAAA,CAAA;gBAU3C,KAAK,EAAA,CAAA;kBADR,KAAK;mBAAC,OAAO,CAAA;YAOd,KAAK,EAAA,CAAA;kBAFJ,KAAK;;kBACL,WAAW;mBAAC,OAAO,CAAA;;;;;MCGX,wBAAwB,CAAA;AACjC;;;;AAIG;AACH,IAAA,IAEI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IAED,IAAI,SAAS,CAAC,GAAY,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;AAID;;AAEG;AACH,IAAA,IAEI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;KAC1B;IAED,IAAI,QAAQ,CAAC,GAAY,EAAA;AACrB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC;KAC9B;AAID;;;;AAIG;AACH,IAAA,IAEI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IAED,IAAI,QAAQ,CAAC,GAAY,EAAA;AACrB,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAgBD,WACmB,CAAA,SAA+B,EACtC,EAAqB,EAAA;QADd,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;QACtC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAdjC;;;AAGG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;AAExD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,OAAO,EAAW,CAAC;QAEzC,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAKnC;AAEJ;;AAEG;IACH,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;AAEhB,YAAA,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,aAAA;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;AAC5B,SAAA;KACJ;AAED;;AAEG;IACH,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC1B,SAAA;KACJ;AAED;;AAEG;IACH,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACzB,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,KAAI;AACjF,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,gBAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC9B,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;KAC3C;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KAC1B;4GA5HQ,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAAqC,oBAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;YAL7B,EAA2D,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC3D,EAAyD,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;;uFAIpD,wBAAwB,EAAA,CAAA;cATpC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAEnB,QAAA,EAAA,CAAA;;;KAGT,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,mKAAA,CAAA,EAAA,CAAA;;sBAoE1C,IAAI;wDA1DL,SAAS,EAAA,CAAA;kBAFZ,KAAK;mBAAC,WAAW,CAAA;;kBACjB,WAAW;mBAAC,iBAAiB,CAAA;YAkB1B,QAAQ,EAAA,CAAA;kBAFX,KAAK;mBAAC,UAAU,CAAA;;kBAChB,WAAW;mBAAC,gBAAgB,CAAA;YAkBzB,QAAQ,EAAA,CAAA;kBAFX,KAAK;mBAAC,UAAU,CAAA;;kBAChB,WAAW;mBAAC,gBAAgB,CAAA;YAgBnB,eAAe,EAAA,CAAA;kBAAxB,MAAM;;;;ICpFX,EAG+F,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAD3F,EAAiD,CAAA,UAAA,CAAA,gCAAA,GAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IACjD,EAAsF,CAAA,WAAA,CAAA,mDAAA,EAAA,MAAA,CAAA,eAAA,KAAA,MAAA,CAAA,CAAA;;;;;;IAC1F,EAIsB,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IADlB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,8DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,oBAAA,IAAwB,MAAsB,CAAA,aAAA,CAAA,MAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACtC,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAHtB,EAA0B,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,CAAA;IAC1B,EAA2F,CAAA,UAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAArC,KAAA,EAAA,MAAA,CAAA,KAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAH,KAAA,EAAA,MAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,CAAA;;;;MCiClF,8BAA8B,CAAA;AAQvC,IAAA,IACI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;KACvC;AAED,IAAA,IAEI,QAAQ,GAAA;AACR,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;KACxC;AAED,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;KACnD;AAED,IAAA,IACI,QAAQ,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;KACtC;IAQD,MAAM,GAAA;QACF,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;AAEtC,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;KAC/B;AAED,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,OAAO,WAAW,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;IAKD,WACmB,CAAA,aAAuC,EAC9C,EAAqB,EAAA;QADd,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;QAC9C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AApDzB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAE9B,IAAkB,CAAA,kBAAA,GAAmC,UAAU,CAAC;QAChE,IAAe,CAAA,eAAA,GAAgC,OAAO,CAAC;QAEvD,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAiDlC,IAAI,CAAC,KAAK,GAAG,aAAa,EAAE,SAAS,EAAE,KAAK,IAAI,SAAS,CAAC;KAC7D;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;AAClH,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,KAAK,UAAU,GAAG,GAAG,GAAG,EAAE,CAAC;KAClF;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEO,mBAAmB,GAAA;AACvB,QAAA,QACI,sBAAsB;AACtB,aAAC,IAAI,CAAC,kBAAkB,KAAK,UAAU,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AACvF,YAAA,CAAA,sBAAA,EAAyB,IAAI,CAAC,eAAe,CAAA,CAAE,EACjD;KACL;kHA3EQ,8BAA8B,EAAA,EAAA,CAAA,iBAAA,CAAAyC,wBAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA9B,8BAA8B,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,2CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;+GAA9B,GAAQ,CAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,OAAR,GAAQ,CAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,OAAR,GAAQ,CAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;;;;;;YDvCrB,EAG+F,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC/F,EAI0B,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAC1B,EAA0D,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC1D,EAAgE,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAChE,EAAyB,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;YAVpB,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAOV,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAA,CAAA;ACgBJ,SAAA,EAAA,EAAA,YAAA,EAAA,CAAAlB,EAAA,CAAA,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,63BAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;gBACR,OAAO,CAAC,oBAAoB,EAAE;AAC1B,oBAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,wBAAA,SAAS,EAAE,iCAAiC;qBAC/C,CAAC,EACF,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,CACxC;AACD,oBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,oBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;iBACjE,CAAC;AACL,aAAA,EAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAGQ,8BAA8B,EAAA,CAAA;cAnB1C,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGxB,UAAA,EAAA;oBACR,OAAO,CAAC,oBAAoB,EAAE;AAC1B,wBAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,4BAAA,SAAS,EAAE,iCAAiC;yBAC/C,CAAC,EACF,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,CACxC;AACD,wBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,wBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;qBACjE,CAAC;iBACL,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0jBAAA,EAAA,MAAA,EAAA,CAAA,8pBAAA,CAAA,EAAA,CAAA;;sBAsD1C,IAAI;wDAjDA,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;YACG,eAAe,EAAA,CAAA;kBAAvB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YAGF,WAAW,EAAA,CAAA;kBADd,WAAW;mBAAC,uCAAuC,CAAA;YAOhD,QAAQ,EAAA,CAAA;kBAFX,WAAW;mBAAC,sCAAsC,CAAA;;kBAClD,WAAW;mBAAC,oBAAoB,CAAA;YAM7B,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,eAAe,CAAA;YAMxB,QAAQ,EAAA,CAAA;kBADX,WAAW;mBAAC,oBAAoB,CAAA;YAMzB,KAAK,EAAA,CAAA;kBADZ,WAAW;mBAAC,OAAO,CAAA;YAMpB,MAAM,EAAA,CAAA;kBAHL,YAAY;mBAAC,OAAO,CAAA;;kBACpB,YAAY;mBAAC,eAAe,CAAA;;kBAC5B,YAAY;mBAAC,eAAe,CAAA;;;;;ACnEjC,MAAM,wBAAwB,GAAG,OAAO,CAAC,mBAAmB,EAAE;AAC1D,IAAA,KAAK,CACD,WAAW,EACX,KAAK,CAAC;AACF,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA,CAAC,CACL;AACD,IAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,SAAS;AACxB,KAAA,CAAC,CACL;AACD,IAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,IAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjE,CAAA,CAAC,CAAC;MAeU,4BAA4B,CAAA;IAGrC,WACoB,CAAA,aAAuC,EAC/C,EAAqB,EAAA;QADb,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;QAC/C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;AAJzB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAKnC;AAEJ,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;KAClE;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;KACrH;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;gHAnBQ,4BAA4B,EAAA,EAAA,CAAA,iBAAA,CAAAkB,wBAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,EAAA,kBAAA,EAAAtC,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;AAVjC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAA6C,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAErC,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;YAHL,EAAuC,CAAA,UAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAH,KAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAOpC,SAAA,EAAA,EAAA,MAAA,EAAA,CAAA,yFAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,CAAC,wBAAwB,CAAC,EAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAG7B,4BAA4B,EAAA,CAAA;cAbxC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,CAAA;;;;;;AAMT,IAAA,CAAA,EAAA,UAAA,EAEW,CAAC,wBAAwB,CAAC,EACrB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,wEAAA,CAAA,EAAA,CAAA;;sBAM1C,IAAI;;;;;MCpCA,iBAAiB,CAAA;AAC1B,IAAA,WAAA,GAAA,GAAgB;qGADP,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,kBAAA,EAAAG,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YCP9B,EAAuB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACnB,EAAmD,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;AACnD,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC,aAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAGtB,EAAiD,CAAA,YAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YACrD,EAAM,CAAA,YAAA,EAAA,EAAA,EAAA,EAAA,CAAA;;;uFDCL,iBAAiB,EAAA,CAAA;cAL7B,SAAS;2BACI,WAAW,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,41BAAA,CAAA,EAAA,CAAA;;;;MEOZ,uBAAuB,CAAA;AAChC,IAAA,WAAA,GAAA,GAAgB;2GADP,uBAAuB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,kBAAA,EAAAH,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAL5B,EAAK,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;YACD,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;YAC7B,EAAM,CAAA,YAAA,EAAA,CAAA;;;uFAGD,uBAAuB,EAAA,CAAA;cARnC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,kBAAkB;AAC5B,gBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;AACJ,aAAA,CAAA;;;;MCHY,qBAAqB,CAAA;AAC9B,IAAA,WAAA,GAAA,GAAgB;yGADP,qBAAqB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,kBAAA,EAAAA,KAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YAFnB,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;;;uFAE3B,qBAAqB,EAAA,CAAA;cAJjC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACP,gBAAA,QAAQ,EAAE,gBAAgB;AAC1B,gBAAA,QAAQ,EAAE,2BAA2B;AACxC,aAAA,CAAA;;;;ICCO,EAA8B,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;IAAA,EAAU,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAK,CAAA,YAAA,EAAA,CAAA;;;IAAf,EAAU,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAV,EAAU,CAAA,iBAAA,CAAA,OAAA,CAAA,CAAA;;;MCyBnC,sBAAsB,CAAA;IAK/B,IAAa,KAAK,CAAC,GAAoC,EAAA;QACnD,IAAI,CAAC,GAAG,EAAE;YACN,OAAO;AACV,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACnB,SAAA;AAAM,aAAA;AACH,YAAA,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAa,KAAI;AAC3D,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AACpB,aAAC,CAAC,CAAC;AACN,SAAA;KACJ;AAGD,IAAA,IAAI,KAAK,GAAA;QACL,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,OAAO,WAAW,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,UAAU,CAAC;KACrB;AAED,IAAA,WAAA,GAAA;AA1BQ,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAChC,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;QAElB,IAAK,CAAA,KAAA,GAAG,cAAc,CAAC;QAcvB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;KAST;IAEhB,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;0GAhCQ,sBAAsB,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AD/BnC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqB,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACY,EAA8B,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,GAAA,EAAA,OAAA,GAAA,CAAA,QAAA,GAAA,CAAA,GAAA,CAAA,QAAA,CAAA,EAAA,CAAA,CAAA;YACvD,EAAsF,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;YACtF,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAAuE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YACnE,EAA6C,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AACjD,YAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;YALE,EAAsC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAtC,YAAA,EAAA,CAAA,WAAA,CAAA,qBAAA,EAAA,GAAA,CAAA,QAAA,CAAsC,CAAA,oBAAA,EAAA,CAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YACzC,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;YAC0B,EAA4C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA5C,EAA4C,CAAA,UAAA,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAA,KAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA,CAAA;YAC7C,EAAO,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAP,EAAO,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;ACGpB,SAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,gmBAAA,CAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA;gBACR,OAAO,CAAC,wBAAwB,EAAE;AAC9B,oBAAA,KAAK,CACD,WAAW,EACX,KAAK,CAAC;AACF,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,UAAU,EAAE,QAAQ;AACpB,wBAAA,MAAM,EAAE,CAAC;AACZ,qBAAA,CAAC,CACL;AACD,oBAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,wBAAA,QAAQ,EAAE,QAAQ;AAClB,wBAAA,UAAU,EAAE,SAAS;AACxB,qBAAA,CAAC,CACL;AACD,oBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,oBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;iBACjE,CAAC;AACL,aAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;uFAEQ,sBAAsB,EAAA,CAAA;cA1BlC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA;oBACR,OAAO,CAAC,wBAAwB,EAAE;AAC9B,wBAAA,KAAK,CACD,WAAW,EACX,KAAK,CAAC;AACF,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,UAAU,EAAE,QAAQ;AACpB,4BAAA,MAAM,EAAE,CAAC;AACZ,yBAAA,CAAC,CACL;AACD,wBAAA,KAAK,CACD,UAAU,EACV,KAAK,CAAC;AACF,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,UAAU,EAAE,SAAS;AACxB,yBAAA,CAAC,CACL;AACD,wBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;AAC7D,wBAAA,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;qBACjE,CAAC;AACL,iBAAA,EAAA,QAAA,EAAA,mYAAA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,CAAA;sCAMQ,KAAK,EAAA,CAAA;kBAAb,KAAK;YACO,KAAK,EAAA,CAAA;kBAAjB,KAAK;YAaG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;;;;;;IChDN,EAAwG,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAA1D,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sDAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAmC,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAIxG,EAAoG,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAChG,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAK,CAAA,YAAA,EAAA,CAAA;;;IADD,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,UAAA,CAAA,QAAA,EAAA,GAAA,CAAA,CAAA;;;AAJJ,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAoE,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IACE,EAAsB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAK,CAAA,YAAA,EAAA,CAAA;IAC7F,EAEK,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IACT,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAJgE,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA;IACf,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA;;;IAQlG,EAAkF,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC9E,EAA2G,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAC/G,EAAO,CAAA,YAAA,EAAA,CAAA;;;IADyC,EAA0D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA1D,EAA0D,CAAA,WAAA,CAAA,OAAA,EAAA,CAAA,MAAA,CAAA,UAAA,CAAA,WAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,UAAA,CAAA,WAAA,CAAA,KAAA,KAAA,SAAA,CAAA,CAAA;IAAnG,EAAwC,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,UAAA,CAAA,WAAA,CAAA,KAAA,CAAA,CAAA;;;IAKnD,EAKkB,CAAA,SAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,EAAA,CAAA,CAAA;;;AAHd,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,KAAA,CAAkC,0CAAA,CAAA,UAAA,EAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;AAM9B,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAG4F,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAEpF,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAW,CAAA,SAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAMpB,EAAmC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EACvC,EAAA,CAAA;;;IATD,EAAuF,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,UAAA,KAAA,MAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,UAAA,CAAA,QAAA,CAAA,cAAA,CAAA,CAAA,CAAA;IAGnF,EAAuD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvD,EAAuD,CAAA,UAAA,CAAA,OAAA,EAAA,CAAA,MAAA,CAAA,UAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,KAAA,WAAA,CAAA,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,uDAAA,CAAA,WAAA,EAAA,MAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,MAAA,CAAA,UAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA;IAKtD,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;;AAG5C,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAG4F,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAEpF,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAKtB,EAAmC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EACvC,EAAA,CAAA;;;IARD,EAAuF,CAAA,UAAA,CAAA,WAAA,EAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,UAAA,KAAA,OAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,cAAA,CAAA,CAAA,CAAA;IAGnF,EAAuD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAvD,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,KAAA,WAAA,CAAuD,wDAAA,CAAA,WAAA,EAAA,OAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA;IAItD,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,iBAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;;AAG5C,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAG4F,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAEpF,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,uEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAgB,CAAA,cAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAMzB,EAAmC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EACvC,EAAA,CAAA;;;IATD,EAAuF,CAAA,UAAA,CAAA,WAAA,EAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,UAAA,KAAA,OAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,cAAA,CAAA,CAAA,CAAA;IAGnF,EAAqD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArD,EAAqD,CAAA,UAAA,CAAA,OAAA,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,KAAA,SAAA,CAAA,CAAA,WAAA,EAAA,OAAA,CAAA,SAAA,CAAA,wDAAA,CAAA,WAAA,EAAA,OAAA,CAAA,UAAA,CAAA,QAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA;IAKpD,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,iBAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;AAxCpD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAsG,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAE9F,EAaO,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACP,EAYO,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IACP,EAaO,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AACX,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAxCG,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;IAc7B,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;IAa7B,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;;;MChCjC,sBAAsB,CAAA;AAG/B,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,IAAI,cAAc,CAAC;KAChH;AAOD,IAAA,WAAA,CACW,SAA+C,EAC9C,GAAsB,EACtB,wBAAkD,EAC1B,UAAoB,EAAA;QAH7C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsC;QAC9C,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACtB,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;AAPxD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAI,OAAO,EAAE,CAAC;KAOnC;IAEJ,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;AACnD,SAAA;AACD,QAAA,MAAM,gBAAgB,GAA0B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CACjG,IAAI,CAAC,UAAU,CAAC,KAAK,CACxB,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;AAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGpE,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC3B,YAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC5D,SAAA;;;;;AAKD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;QAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;KACvC;IAED,kBAAkB,GAAA;QACd,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC;KACnD;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KACnC;AAED,IAAA,cAAc,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;YACnC,OAAO;AACV,SAAA;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;AACxD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAAE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC;AAC1D,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;AAE5F,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU;AACV,iBAAA,SAAS,EAAE;AACX,iBAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,UAAU,CAAC,CAAC,KAAK,KAAI;AACjB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,gBAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;AACnC,aAAC,CAAC,CACL;iBACA,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;AACV,SAAA;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;YACnC,OAAO;AACV,SAAA;KACJ;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;AA1FQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,8BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,sBAAsB,qKAiBnB0C,sBAAe,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAjBlB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;qCACD,gBAAgB,CAAA,CAAA;;;;;;;YDxBlD,EAAkI,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC9H,EAA4G,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAE5G,EAKM,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAGsF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAClF,EAEO,CAAA,UAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AACP,YAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA8E,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;YAElF,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAKkB,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;YAClB,EA4CM,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YAtEsB,EAAqG,CAAA,WAAA,CAAA,uCAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,KAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,KAAA,CAAA,cAAA,KAAA,CAAA,GAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA;YACtD,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,GAAA,CAAA,UAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA,CAAA;YAE1D,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA;YAQ9D,EAAgF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhF,EAAgF,CAAA,WAAA,CAAA,qCAAA,EAAA,GAAA,CAAA,UAAA,CAAA,KAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,KAAA,CAAA,gBAAA,CAAA,CAAA;YAChF,EAAiF,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAAvC,KAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,WAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,WAAA,CAAA,KAAA,KAAA,CAAA,GAAA,CAAA,cAAA,CAAA,CAAA,CAAA;YAC1E,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnC,EAAmC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,WAAA,IAAA,IAAA,GAAA,IAAA,GAAA,GAAA,CAAA,UAAA,CAAA,WAAA,CAAA,KAAA,CAAA,CAAA;YAGJ,EAAgC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhC,EAAgC,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;YAIrE,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxB,EAAwB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CAAA;YAKe,EAAwD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxD,EAAwD,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,YAAA,IAAA,GAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;;;uFCF3F,sBAAsB,EAAA,CAAA;cALlC,SAAS;2BACI,mBAAmB,EAAA,QAAA,EAAA,m1HAAA,EAAA,MAAA,EAAA,CAAA,01EAAA,CAAA,EAAA,CAAA;;sBAqBxB,MAAM;uBAACuC,sBAAe,CAAA;wBAhBuB,OAAO,EAAA,CAAA;kBAAxD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;YAG5C,YAAY,EAAA,CAAA;kBADf,WAAW;mBAAC,OAAO,CAAA;;;IC+GZ,YAWX;AAXD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,wBAA2C,CAAA;AAC3C,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,cAAuB,CAAA;AACvB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;AACnC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,yBAA6C,CAAA;AAC7C,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;AACnC,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,iBAA4B,CAAA;AAChC,CAAC,EAXW,WAAW,KAAX,WAAW,GAWtB,EAAA,CAAA,CAAA,CAAA;IAEW,oBAIX;AAJD,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,GAI9B,EAAA,CAAA,CAAA,CAAA;IAEW,kBAKX;AALD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAK5B,EAAA,CAAA,CAAA;;;;IC/JO,EAKgC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAH5B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAGK,EAAI,CAAA,YAAA,EAAA,CAAA;;;IADhC,EAAoC,CAAA,UAAA,CAAA,MAAA,CAAA,UAAA,CAAA,eAAA,CAAA,CAAA;;;;IAI5C,EAA6G,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAzE,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAkD,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAErH,EAAuD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACnD,EAAc,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAwB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAe,CAAA,qBAAA,EAAA,CAAA;IACrD,EAA6C,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IACjD,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAFY,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAxB,EAAwB,CAAA,iBAAA,CAAA,MAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CAAA;;;IAU9B,EAIK,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAiB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EACrB,CAAA,YAAA,EAAA,CAAA;;;IAHG,EAAkE,CAAA,UAAA,CAAA,SAAA,EAAA,SAAA,CAAA,gBAAA,GAAA,gBAAA,GAAA,UAAA,CAAA,CAAA;IAEjE,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjB,EAAiB,CAAA,iBAAA,CAAA,SAAA,CAAA,KAAA,CAAA,CAAA;;;IAsBN,EAAmG,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAArD,EAAgD,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,IAAA,CAAA,CAAA;;;;IADlG,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;AAAhE,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qGAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,SAAA,GAAA,WAAA,CAAA,KAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAS,OAAc,CAAA,YAAA,EAAA,CAAA,CAAA,OAAE,EAAA,CAAA,WAAA,CAAA,SAAA,EAAO,CAAA,CAAC,EAAA,CAAA,CAAA;IACrC,EAAmG,CAAA,UAAA,CAAA,CAAA,EAAA,iFAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACnG,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAS,CAAA,YAAA,EAAA,CAAA;;;IAFD,EAAwC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAxC,EAAwC,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,IAAA,CAAA,CAAA;IAC5C,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;;IAJJ,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;IAjBlB,EAWsC,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;;;IAClC,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAClB,EAAY,CAAA,YAAA,EAAA,CAAA;;;;IAhBR,EAAoC,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,CAAA,UAAA,CAAA,UAAA,CAAA,CAAA,WAAA,EAAA,OAAA,CAAA,UAAA,CAAA,SAAA,CAAA,mCAAA,CAAA,WAAA,EAAA,SAAA,CAAA,SAAA,IAAA,IAAA,CAAA,CAAA,WAAA,EAAA,SAAA,CAAA,SAAA,IAAA,IAAA,CAAA,mCAAA,CAAA,OAAA,EAAA,SAAA,CAAA,KAAA,IAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,MAAA,CAAA,CAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,kBAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,aAAA,EAAA,SAAA,CAAA,WAAA,CAAA,CAAA;IAUtB,EAAoC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApC,EAAoC,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,UAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,CAAA;;;IAOtD,EAKiD,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;;AAD7C,IAAA,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,CAAA,IAAA,CAA8B,CAAA,aAAA,EAAA,SAAA,CAAA,WAAA,CAAA,CAAA;;;IAElC,EAIuD,CAAA,SAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;;;AAFnD,IAAA,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,CAAA,IAAA,CAA8B,sCAAA,CAAA,aAAA,EAAA,SAAA,CAAA,WAAA,CAAA,CAAA;;;IAGlC,EAA4F,CAAA,cAAA,CAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;IACxF,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAc,CAAA,YAAA,EAAA,CAAA;;;IAF+C,EAA8B,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,CAAA,IAAA,CAAA,CAAA;IACvF,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,SAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;;IACA,EAEkG,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAC9F,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAQ,CAAA,YAAA,EAAA,CAAA;;;;IADJ,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,WAAA,EAAA,GAAA,CAAA,CAAA;;;IACA,EAAkG,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAC9F,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAQ,CAAA,YAAA,EAAA,CAAA;;;IADJ,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,UAAA,CAAA,YAAA,EAAA,GAAA,CAAA,CAAA;;;IACA,EAA8G,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAC1G,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAQ,CAAA,YAAA,EAAA,CAAA;;;IADJ,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,CAAA;;;;;IA5DR,EAIuE,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACnE,EAKC,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IACD,EAKO,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACH,EAkBY,CAAA,UAAA,CAAA,CAAA,EAAA,6DAAA,EAAA,CAAA,EAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IACZ,EAKiD,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACjD,EAIuD,CAAA,UAAA,CAAA,CAAA,EAAA,kEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IACvD,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,CAAA;IACd,EAIQ,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IACR,EAEQ,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IACR,EAEQ,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AACZ,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;;IA1DN,EAA8B,CAAA,UAAA,CAAA,SAAA,CAAA,cAAA,CAAA,CAAA;IAC9B,EAAkE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA1C,KAAA,EAAA,SAAA,CAAA,gBAAA,GAAA,OAAA,GAAA,MAAA,CAAA,CAAA,CAAA;IAE7D,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5D,EAA4D,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,CAAA,KAAA,IAAA,SAAA,CAAA,IAAA,KAAA,OAAA,CAAA,eAAA,CAAA,QAAA,CAAA,CAAA;IAO7D,EAGE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAHF,EAGE,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,SAAA,CAAA,KAAA,IAAA,CAAA,SAAA,CAAA,gBAAA,EAAA,CAAA,SAAA,CAAA,KAAA,IAAA,SAAA,CAAA,gBAAA,CAAA,CAAA,CAAA;IAEG,EAA2C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3C,EAA2C,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,CAAA,IAAA,KAAA,OAAA,CAAA,eAAA,CAAA,MAAA,CAAA,CAAA;IAmB3C,EAA0C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA1C,EAA0C,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,CAAA,IAAA,KAAA,OAAA,CAAA,eAAA,CAAA,KAAA,CAAA,CAAA;IAM1C,EAAgD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhD,EAAgD,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,CAAA,IAAA,KAAA,OAAA,CAAA,eAAA,CAAA,WAAA,CAAA,CAAA;IAIvC,EAA6C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7C,EAA6C,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,CAAA,IAAA,KAAA,OAAA,CAAA,eAAA,CAAA,QAAA,CAAA,CAAA;IAKtD,EAA2F,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3F,EAA2F,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAA,OAAA,KAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,IAAA,CAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA,KAAA,CAAA,KAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,IAAA,CAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,IAAA,CAAA,QAAA,CAAA,SAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;IAG/D,EAA+D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/D,EAA+D,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,UAAA,CAAA,YAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA,QAAA,IAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA;IAG/D,EAA2E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3E,EAA2E,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,IAAA,CAAA,KAAA,IAAA,OAAA,CAAA,sBAAA,IAAA,OAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,CAAA;;;AA5D5H,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAyE,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;IAEjE,EA8DM,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,EAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AACV,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAjEsB,EAAkB,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IACzC,EAAgE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhE,EAAgE,CAAA,UAAA,CAAA,MAAA,CAAA,UAAA,CAAA,gBAAA,IAAA,uBAAA,CAAA,CAAA;IAE3C,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA;;;;IAmE1C,EAMK,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IALD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAW,CAAA,SAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAKpB,EAAmC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EACvC,CAAA,YAAA,EAAA,CAAA;;;IAJG,EAAuD,CAAA,UAAA,CAAA,OAAA,EAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,IAAA,IAAA,GAAA,IAAA,GAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,KAAA,WAAA,CAAA,CAAA;IAGtD,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,iBAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;;IAExC,EAAmH,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAA9C,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAuB,EAEjH,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAY,CAAA,YAAA,EAAA,CAAA;;;IAF+E,EAAqB,CAAA,UAAA,CAAA,OAAA,EAAA,WAAA,CAAA,CAAA;IAAC,EAEjH,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAFiH,EAEjH,CAAA,iBAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;;IACF,EAOK,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAJD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAU,CAAA,QAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAInB,EAAmC,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EACvC,CAAA,YAAA,EAAA,CAAA;;;AAJG,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,CAAmB,gCAAA,CAAA,UAAA,EAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA;IAGlB,EAAmC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnC,EAAmC,CAAA,iBAAA,CAAA,OAAA,CAAA,UAAA,CAAA,YAAA,CAAA,KAAA,CAAA,CAAA;;;IAnB5C,EAAwF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACpF,EAOC,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IACD,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IACd,EAQC,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IACL,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAlBG,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;IAMtB,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;IAIpC,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;;MCtF7B,2BAA2B,CAAA;IAYpC,WACW,CAAA,SAAoD,EAC3B,UAAoB,EAAA;QAD7C,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;QAC3B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;QAb/C,IAAe,CAAA,eAAA,GAAG,iBAAiB,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;AAGxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACrC,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;QAC/B,IAAkB,CAAA,kBAAA,GAA6C,EAAE,CAAC;QAE5C,IAAK,CAAA,KAAA,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC;KAK7D;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC;AAEzD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,KAAI;YACxD,IAAI,YAAY,CAAC,MAAM,EAAE;AACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAChF,gBAAA,YAAY,CAAC,MAAM,GAAI,YAAY,CAAC,MAAc,CAAC,IAAI,CACnD,UAAU,CAAC,CAAC,GAAG,KAAI;AACf,oBAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvD,oBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,iBAAC,CAAC,EACF,GAAG,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACjE,QAAQ,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACzE,CAAC;AACL,aAAA;YAED,MAAM,kBAAkB,GAAG,EAAE,CAAC;YAC9B,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CACnD,YAAY,CAAC,OAAO,IAAI,IAAI,EAC5B,YAAY,CAAC,UAAU,IAAI,EAAE,CAChC,CAAC;YACF,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAC1D,SAAC,EAAE,EAAE,CAAC,CACT,CAAC;KACL;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;AAAE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAErF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU;AACV,aAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,aAAA,IAAI,CACD,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAC,CAAC,EACF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,UAAU,CAAC,CAAC,GAAG,KAAI;AACf,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AACjC,SAAC,CAAC,CACL;aACA,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAClD,SAAC,CAAC,CAAC;KACV;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9D;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;AArFQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,mCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,2BAA2B,sEAcxB0C,sBAAe,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAdlB,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,wCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;ADZxC,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAkC,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YAE1B,EAKoC,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACpC,EAAiC,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAAA,EAAsB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAO,EAAA,CAAA;YAElE,EAAiH,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACrH,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAGM,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAkEO,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAEP,EAAkC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC9B,EAqBM,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;YAxGO,EAAgC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhC,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,eAAA,CAAA,CAAA;YAKJ,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAtB,EAAsB,CAAA,iBAAA,CAAA,GAAA,CAAA,UAAA,CAAA,KAAA,CAAA,CAAA;YAEvD,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;YAEhC,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxB,EAAwB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,CAAA;YAIvB,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA;YAqEI,EAAwD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAxD,EAAwD,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,CAAA,YAAA,IAAA,GAAA,CAAA,UAAA,CAAA,YAAA,CAAA,CAAA;;;uFCzE7E,2BAA2B,EAAA,CAAA;cALvC,SAAS;2BACI,yBAAyB,EAAA,QAAA,EAAA,84KAAA,EAAA,MAAA,EAAA,CAAA,47DAAA,CAAA,EAAA,CAAA;;sBAkB9B,MAAM;uBAACA,sBAAe,CAAA;wBAJL,KAAK,EAAA,CAAA;kBAA1B,WAAW;mBAAC,OAAO,CAAA;;;ACfxB,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AAEjD,MAAM,qBAAqB,GAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;MAK3D,aAAa,CAAA;AAGtB,IAAA,WAAA,CAAoB,MAAiB,EAAA;QAAjB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;KAAI;AAEzC;;AAEG;AACH,IAAA,iBAAiB,CACb,kBAAoC,EACpC,UAAyB,EACzB,oBAAuC,EAAA;AAEvC,QAAA,IAAI,CAAC,oBAAoB;YAAE,oBAAoB,GAAG,sBAA6B,CAAC;AAEhF,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;AAE3C,QAAA,IAAI,UAAU,CAAC,UAAU,YAAY,KAAK,EAAE;AACxC,YAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;AACH,YAAA,UAAU,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;AAClF,SAAA;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAU,oBAAoB,EAAE,UAAU,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAU,iBAAoC,EAAA;QAC3D,MAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;QAC1E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5C,OAAO,IAAI,CAAC,UAAU,CAA+C,sBAAsB,EAAE,UAAU,CAAC,CAAC;KAC5G;AAED;;AAEG;AACH,IAAA,sBAAsB,CAAU,iBAAoC,EAAA;QAChE,MAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;AAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;QAC1E,OAAO,IAAI,CAAC,UAAU,CAAoD,2BAA2B,EAAE,UAAU,CAAC,CAAC;KACtH;AAED,IAAA,KAAK,CAAC,MAAY,EAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACvC;AAED;;AAEG;IACH,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;KAChE;AAED,IAAA,qBAAqB,CAAC,KAAa,EAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;KACzD;IAEO,UAAU,CACd,aAAyC,EACzC,UAAyB,EAAA;QAEzB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuC,aAAa,EAAE,UAAU,CAAC,CAAC;KAC5F;iGApEQ,aAAa,EAAA,EAAA,CAAA,QAAA,CAAAxC,IAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;sGAAb,aAAa,EAAA,OAAA,EAAb,aAAa,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;uFAET,aAAa,EAAA,CAAA;cAHzB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;;MCTqB,YAAY,CAAA;gGAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,YAAY,WAAZ,YAAY,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAZ,YAAY,EAAA,CAAA;cADjC,UAAU;;AAUL,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AACjD,IAAA,OAAO,CAAC,SAA4B,EAAA;AAChC,QAAA,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AACvC,YAAA,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AACnC,gBAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACpC,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACJ,SAAA;AAED,QAAA,QAAQ,SAAS,CAAC,YAAY,CAAC,MAAM;AACjC,YAAA,KAAK,CAAC;AACF,gBAAA,OAAO,gBAAgB,CAAC;AAC5B,YAAA,KAAK,CAAC;gBACF,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,YAAA;AACI,gBAAA,OAAO,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,mBAAmB,CAAC;AAClE,SAAA;KACJ;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,KAAK,CAAC;KAChB;IAED,oBAAoB,GAAA;AAChB,QAAA,OAAO,QAAQ,CAAC;KACnB;IAED,yBAAyB,GAAA;AACrB,QAAA,OAAO,gBAAgB,CAAC;KAC3B;AAED,IAAA,4BAA4B,CAAC,UAAmB,EAAA;QAC5C,OAAO,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;KAC7C;AAlCQ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,YAAA,EAAA,IAAA,gCAAA,CAAA,CAAA,OAAA,SAAA,2BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,gCAAA,KAAA,gCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,mBAAmB,SAAnB,mBAAmB,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA;AAAnB,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAnB,mBAAmB,EAAA,CAAA;cAD/B,UAAU;;;ACTE,MAAA,cAAc,GAAG;IAC1B,QAAQ;IACR,cAAc;IACd,UAAU;IACV,UAAU;IACV,eAAe;EACjB;AAEF,SAAS,QAAQ,CAAC,IAAkB,EAAE,KAAU,EAAA;AAC5C,IAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACb,QAAA,OAAO,SAAS,CAAC;AACpB,KAAA;AAED,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC/B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACzC,YAAA,IAAI,SAAS,EAAE;AACX,gBAAA,OAAO,SAAS,CAAC;AACpB,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,IAAoB,EAAE,KAAU,EAAA;AACpD,IAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACb,QAAA,OAAO,SAAS,CAAC;AACpB,KAAA;AAED,IAAA,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACrB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxC,QAAA,IAAI,SAAS,EAAE;AACX,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;IACtD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACrC,QAAA,OAAO,SAAS,CAAC;AACpB,KAAA;AAED,IAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;QAC/B,IAAI,KAAK,KAAK,IAAI,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,YAAA,IAAI,MAAM,EAAE;AACR,gBAAA,OAAO,MAAM,CAAC;AACjB,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB,EAAE,IAAkB,EAAA;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,IAAA,IAAI,MAAM,EAAE;AACR,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5B,QAAA,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC/B,SAAA;AAAM,aAAA;YACH,MAAM,CAAC,cAAc,EAAE,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;AACf,KAAA;AAED,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CACpB,KAAqB,EACrB,OAAuB,EACvB,SAAyB,EAAA;AAEzB,IAAA,IAAI,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;AAChC,IAAA,IAAI,cAAc,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;AACpC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5D,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;AACrE,KAAA;IACD,OAAO;AACH,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,SAAS,EAAE,cAAc;KAC5B,CAAC;AACN;;MChFa,YAAY,CAAA;AASrB,IAAA,WAAA,CAAY,IAAc,EAAE,kBAAkB,GAAG,KAAK,EAAA;QAR9C,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACjC,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACf,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAO9B,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAC3C,SAAA;AACD,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACzB,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC3D,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AACjC,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AACxC,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACxB,oBAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,iBAAA;AAED,gBAAA,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,IAAI,kBAAkB,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IAED,IAAI,OAAO,CAAC,KAAc,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;AAChC,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAChC,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;KACrC;AAED,IAAA,mBAAmB,CAAC,KAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;IAED,IAAI,QAAQ,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;AACjC,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;AACtE,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;IAED,IAAI,SAAS,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAClC,SAAA;KACJ;AAED,IAAA,qBAAqB,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,SAAA;KACJ;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;IAED,IAAI,QAAQ,CAAC,KAAqB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,gBAAA,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;AAC1D,aAAA;AACD,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;gBAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;gBACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBACpC,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,wBAAA,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC3B,qBAAA;AAAM,yBAAA;AACH,wBAAA,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE;4BAC3B,OAAO,GAAG,SAAS,CAAC;4BACpB,OAAO;AACV,yBAAA;AACJ,qBAAA;AACL,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;AAClC,aAAA;AACJ,SAAA;KACJ;IAED,YAAY,GAAA;QACR,IAAI,YAAY,GAAmB,EAAE,CAAC;QACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;AACxC,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC9B,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACH,gBAAA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AACtG,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;AACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;AACxC,SAAA;QAED,OAAO;YACH,YAAY;YACZ,cAAc;SACjB,CAAC;KACL;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACnD;IAEO,iBAAiB,GAAA;QACrB,IAAI,OAAO,GAAY,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;AAC/B,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvC,gBAAA,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAClD,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,oBAAA,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC;AACnC,iBAAA;AAAM,qBAAA,IAAI,OAAO,KAAK,KAAK,CAAC,eAAe,EAAE;oBAC1C,OAAO,GAAG,SAAS,CAAC;oBACpB,MAAM;AACT,iBAAA;AACJ,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;AACJ;;MCtLY,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;QAEI,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;QAChC,IAAS,CAAA,SAAA,GAAG,GAAG,CAAC;AAiBnB,KAAA;AAfG,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,iBAAiB,CAAC;KAC1E;IAEM,OAAO,MAAM,CAAC,MAMpB,EAAA;AACG,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;AACpC,QAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9B,QAAA,OAAO,MAAM,CAAC;KACjB;kGArBQ,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;AAAd,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,cAAc,WAAd,cAAc,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAd,cAAc,EAAA,CAAA;cAD1B,UAAU;;;MCIW,mBAAmB,CAAA;uGAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;AAAnB,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,mBAAmB,WAAnB,mBAAmB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAnB,mBAAmB,EAAA,CAAA;cADxC,UAAU;;AAML,MAAO,0BAA2B,SAAQ,mBAAmB,CAAA;AAC/D,IAAA,iBAAiB,CAAC,SAA4B,EAAA;AAC1C,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;AACtD,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AACtB,YAAA,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACb;AARQ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,YAAA,EAAA,IAAA,uCAAA,CAAA,CAAA,OAAA,SAAA,kCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,uCAAA,KAAA,uCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,0BAA0B,SAA1B,0BAA0B,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA;AAA1B,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,0BAA0B,WAA1B,0BAA0B,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAA1B,0BAA0B,EAAA,CAAA;cADtC,UAAU;;AAkBL,MAAO,2BAA4B,SAAQ,mBAAmB,CAAA;AAChE,IAAA,iBAAiB,CAAC,SAA4B,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACf,IAAI,MAAM,GAA2B,EAAE,CAAC;AACxC,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACxC,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACf,oBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,iBAAA;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,CAAC;AACjB,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACb;IAEO,QAAQ,CAAC,IAAkB,EAAE,MAA4B,EAAA;AAC7D,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvB,YAAA,MAAM,IAAI,GAAG;gBACT,IAAI;gBACJ,MAAM;aACT,CAAC;YACF,IAAI,MAAM,GAA2B,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AACf,oBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,iBAAA;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,CAAC;AACjB,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,OAAO;AACH,gBAAA;oBACI,IAAI;oBACJ,MAAM;AACT,iBAAA;aACJ,CAAC;AACL,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AA7CQ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,YAAA,EAAA,IAAA,wCAAA,CAAA,CAAA,OAAA,SAAA,mCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,wCAAA,KAAA,wCAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,2BAA2B,SAA3B,2BAA2B,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA;AAA3B,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,2BAA2B,WAA3B,2BAA2B,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAA3B,2BAA2B,EAAA,CAAA;cADvC,UAAU;;AAkDL,MAAO,gCAAiC,SAAQ,mBAAmB,CAAA;AADzE,IAAA,WAAA,GAAA;;QAEY,IAAgB,CAAA,gBAAA,GAA2B,EAAE,CAAC;AAC9C,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,2BAA2B,EAAE,CAAC;AA6BtD,KAAA;AA3BG,IAAA,iBAAiB,CAAC,SAA4B,EAAA;QAC1C,MAAM,YAAY,GAA2B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACtF,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;AACxC,SAAA;AAAM,aAAA;YACH,MAAM,kBAAkB,GAA2B,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACvC,gBAAA,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;AACpB,gBAAA,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7B,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;wBACpD,UAAU,GAAG,CAAC,CAAC;wBACf,MAAM;AACT,qBAAA;AACJ,iBAAA;AAED,gBAAA,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;oBACnB,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,oBAAA,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AACtC,iBAAA;AACL,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACnE,SAAA;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;AA9BQ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,YAAA,EAAA,IAAA,6CAAA,CAAA,CAAA,OAAA,SAAA,wCAAA,CAAA,CAAA,EAAA,EAAA,OAAA,CAAA,6CAAA,KAAA,6CAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,gCAAgC,SAAhC,gCAAgC,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,EAAA;AAAhC,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,gCAAgC,WAAhC,gCAAgC,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAhC,gCAAgC,EAAA,CAAA;cAD5C,UAAU;;;;;;ICtEH,EAK0D,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IAAtD,EAAiB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yGAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAmC,CAAA,oBAAA,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACzD,EAAoB,CAAA,YAAA,EAAA,CAAA;;;;AALhB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,CAAiB,kBAAA,CAAA,UAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA;;;IAFzB,EAA6B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;IACzB,EAMoB,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IACxB,EAAM,CAAA,YAAA,EAAA,CAAA;;;IALoB,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhB,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,IAAA,CAAA,QAAA,CAAA,CAAA;;;;IAR9C,EAAwC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACpC,EAGc,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;IACd,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAZE,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA7B,IAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,QAAA,CAA6B,CAAA,yBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAAF,KAAA,EAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA,CAAA;IAG3B,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,MAAA,CAAA,IAAA,CAAA,SAAA,CAAA,CAAA;;MCMlB,qBAAqB,CAAA;AAM9B,IAAA,WAAA,CAAoB,aAA6B,EAAA;QAA7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;AAFvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAMtD,IAAgB,CAAA,gBAAA,GAAG,MAAK;YACpB,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC/C,SAAC,CAAC;QAEF,IAAe,CAAA,eAAA,GAAG,MAAK;AACnB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;AACpE,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,aAAA;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACrC,SAAC,CAAC;AAbE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;KACpC;IAcD,oBAAoB,CAAC,KAAmB,EAAE,OAAgB,EAAA;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE;YACtC,IAAI,WAAW,GAAY,IAAI,CAAC;YAChC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACxC,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,oBAAA,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;AACnC,iBAAA;AAAM,qBAAA,IAAI,WAAW,KAAK,SAAS,CAAC,OAAO,EAAE;oBAC1C,WAAW,GAAG,SAAS,CAAC;oBACxB,MAAM;AACT,iBAAA;AACJ,aAAA;YAED,IAAI,WAAW,KAAK,IAAI,EAAE;gBACtB,WAAW,GAAG,KAAK,CAAC;AACvB,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACnC,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;AACnC,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;yGA5CQ,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA2C,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDXlC,EAcM,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;YAdA,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;sECWH,qBAAqB,CAAA,EAAA,MAAA,EAAA,CAAA,mNAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAArB,qBAAqB,EAAA,CAAA;cALjC,SAAS;2BACI,mBAAmB,EAAA,QAAA,EAAA,4kBAAA,EAAA,MAAA,EAAA,CAAA,qHAAA,CAAA,EAAA,CAAA;8DAKpB,MAAM,EAAA,CAAA;kBAAd,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACI,aAAa,EAAA,CAAA;kBAAtB,MAAM;;;;ICZC,EAOuC,CAAA,cAAA,EAAA,CAAA;IAPvC,EAOuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACnC,EAC4H,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAChI,EAAM,CAAA,YAAA,EAAA,CAAA;;;IACN,EAOuC,CAAA,cAAA,EAAA,CAAA;IAPvC,EAOuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACnC,EACyH,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAC7H,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IAtBV,EAAqG,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAA5E,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,mBAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,mBAAkB,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACjD,EAUM,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACN,EAUM,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACV,EAAI,CAAA,YAAA,EAAA,CAAA;;;IAvBqE,EAA2B,CAAA,UAAA,CAAA,UAAA,EAAA,OAAA,CAAA,SAAA,CAAA,CAAA;IAE3F,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAA,CAAA;IAWlB,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;;;IAdhC,EAAkC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAC9B,EAuBI,CAAA,UAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AACJ,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAwB,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AAIhB,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,uEAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,WAAA,CAAA,IAAA,CAAA,CAAA,OAAa,wCACvB,CADoC,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,uEAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,kBAAA,GAAA,WAAA,CAAA,eAAA,CAAA,CAAA,OACT,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAiB,CAAA,CADR,EAAA,CAAA,CAAA;IAH9B,EAM2C,CAAA,YAAA,EAAA,CAAA;IAC3C,EAA0F,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAA1D,EAAuC,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+DAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,WAAA,CAAA,IAAA,CAAA,CAAA,MAAA,kBAAA,GAAA,WAAA,CAAA,eAAA,CAAA,CAAA,OAAA,CAAA,OAAA,GAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,kBAAiB,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrF,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAQ,EAAA,EAAA,CAAA;;;IAlCR,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IA4Bf,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,OAAA,CAAA,OAAA,CAA0B,8BAAA,CAAA,eAAA,EAAA,OAAA,CAAA,aAAA,CAAA,CAAA;IAK1B,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;AAWR,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAqD,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AAMzC,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,6EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,UAAA,GAAA,MAAA,CAAA,CAAA,EAAA,CAAwB,CACP,eAAA,EAAA,SAAA,6EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,sBAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,sBAA0B,CAAA,MAAA,CAAA,CAAA,CADnB,EAAA,CAAA,CAAA;AAJ5B,IAAA,EAAA,CAAA,YAAA,EAKmD,EAAA,EAAA,CAAA;;;IAF/C,EAA2C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA3C,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,OAAA,CAAA,IAAA,CAAA,oBAAA,EAAA,CAA2C,CAAA,SAAA,EAAA,OAAA,CAAA,UAAA,CAAA,CAAA;;;;AAQ3C,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAwE,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AAIhE,IAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,yFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,OAAa,yCAC/B,CAD4C,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,yFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,mBAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,eAAA,CAAA,CAAA,OACT,EAAA,CAAA,WAAA,CAAA,mBAAA,EAAiB,CAAA,CADR,EAAA,CAAA,CAAA;IAH9B,EAK2C,CAAA,YAAA,EAAA,CAAA;IAC3C,EAA0F,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAA1D,EAAuC,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,OAAA,CAAA,IAAA,CAAA,CAAA,MAAA,mBAAA,GAAA,OAAA,CAAA,eAAA,CAAA,CAAA,QAAA,CAAA,OAAA,GAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,mBAAiB,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrF,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAAA,EAAA,CAAA,YAAA,EAAQ,EAAA,CAAA;;;;IALJ,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA1B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,QAAA,CAAA,OAAA,CAA0B,CAAA,eAAA,EAAA,QAAA,CAAA,aAAA,CAAA,CAAA;IAI1B,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,IAAA,CAAA,kBAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;IAII,EAOuC,CAAA,cAAA,EAAA,CAAA;IAPvC,EAOuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AACnC,IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAEsG,eAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAO1G,EAAM,CAAA,YAAA,EAAA,CAAA;;;IACN,EAOuC,CAAA,cAAA,EAAA,CAAA;IAPvC,EAOuC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AACnC,IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAEqG,eAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAOzG,EAAM,CAAA,YAAA,EAAA,CAAA;;;;IArCd,EAA0G,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAA7B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,oBAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,oBAAkB,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrG,EAA8G,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAC1G,EAiBM,CAAA,UAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACN,EAiBM,CAAA,UAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;AACV,IAAA,EAAA,CAAA,YAAA,EAAI,EAAA,CAAA;;;;IArCD,EAA2D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA3D,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,IAAA,CAAA,4BAAA,CAAA,QAAA,CAAA,SAAA,CAAA,CAA2D,CAAA,UAAA,EAAA,QAAA,CAAA,SAAA,CAAA,CAAA;IAErD,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAA,CAAA;IAkBlB,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;;AAlCxC,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAmF,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAE3E,EAUM,CAAA,UAAA,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACN,EAuCQ,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;AACZ,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAnDyC,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3B,EAA2B,CAAA,UAAA,CAAA,MAAA,EAAA,UAAA,CAAA,cAAA,CAAA,CAAA;IAW9D,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,UAAA,CAAA,iBAAA,CAAA,CAAA;;;IA0C9C,EAA8D,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;IAxDlE,EAA4B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA;IACxB,EAsDM,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACN,EAA8D,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAClE,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAxDI,EAAuD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvD,EAAuD,CAAA,UAAA,CAAA,MAAA,EAAA,UAAA,CAAA,cAAA,IAAA,UAAA,CAAA,iBAAA,CAAA,CAAA;IAuDvD,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,UAAA,CAAA,UAAA,CAAA,CAAA;;;IAlEjC,EASM,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACN,EAyDM,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;;;;IAnEA,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,UAAA,CAAA,SAAA,CAAA,CAAA;IAUtB,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAApB,EAAoB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA;;;;;IAiEtB,EAKwD,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;IAApD,EAAiB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,+FAAA,CAAA,MAAA,EAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAiC,CAAA,mBAAA,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACvD,EAAoB,CAAA,YAAA,EAAA,CAAA;;;;;AAJhB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,OAAA,CAAA,MAAA,CAAiB,kBAAA,CAAA,UAAA,EAAA,OAAA,CAAA,YAAA,IAAA,GAAA,CAAA,CAAA;;;IAHzB,EAAuF,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACnF,EAMoB,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;IACxB,EAAM,CAAA,YAAA,EAAA,CAAA;;;IAR+C,EAAiC,CAAA,WAAA,CAAA,YAAA,EAAA,MAAA,CAAA,SAAA,EAAA,IAAA,CAAA,CAAA;IAE7D,EAAc,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAd,EAAc,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA;;;IAOvC,EAAiD,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAC7C,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADF,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,yBAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;AC1HJ,MAAM,kBAAmB,SAAQ,YAAY,CAAA;AAEzC,IAAA,WAAA,CAAY,IAAkB,EAAA;AAC1B,QAAA,KAAK,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AAC1B,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IAED,gBAAgB,GAAA;QACZ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YAC5B,IAAI,KAAK,YAAY,kBAAkB,EAAE;gBACrC,KAAK,CAAC,gBAAgB,EAAE,CAAC;AAC5B,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,UAAU,EAAE;YACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;oBACnB,UAAU,GAAG,KAAK,CAAC;oBACnB,MAAM;AACT,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;KACrC;AACJ,CAAA;MAOY,iBAAiB,CAAA;AAa1B,IAAA,WAAA,CACW,IAAkB,EACjB,aAA6B,EAC7B,WAAgC,EAAA;QAFjC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;QACjB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;QAC7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAqB;AAXlC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAS,CAAC;AAC3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAGpD,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;AASZ,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;AACjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;KAClE;AAED,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;KACrC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;KACJ;IAED,mBAAmB,GAAA;QACf,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;KAC1F;AAED,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,kBAAkB,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC9B,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,IAAI,YAAY,kBAAkB,EAAE;gBACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAED,mBAAmB,CAAC,IAAkB,EAAE,OAAgB,EAAA;QACpD,IAAI,IAAI,YAAY,kBAAkB,EAAE;YACpC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAED,mBAAmB,GAAA;QACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACxD,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;IAEO,2BAA2B,GAAA;QAC/B,IAAI,CAAC,qBAAqB,GAAG;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,OAAO;AAClB,YAAA,eAAe,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE;AAChD,YAAA,gBAAgB,EAAE,MAAM,IAAI,CAAC,mBAAmB,EAAE;YAClD,kBAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;SAC9D,CAAC;KACL;IAEO,iBAAiB,GAAA;QACrB,IAAI,YAAY,GAAmB,EAAE,CAAC;QACtC,IAAI,cAAc,GAAmB,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpB,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;AAC3F,YAAA,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;AACjC,YAAA,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC;AACxC,SAAA;QAED,IAAI,CAAC,SAAS,GAAG;YACb,YAAY;YACZ,cAAc;SACjB,CAAC;KACL;IAEO,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YACxB,MAAM,WAAW,GAAmB,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AACjB,oBAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,iBAAA;AACL,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AACjC,SAAA;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,UAAU,CAAC,IAAkB,EAAE,UAAkB,EAAA;AACrD,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9D,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACvB,MAAM,QAAQ,GAAmB,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;oBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpD,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AAClB,wBAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3B,qBAAA;AACL,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,oBAAA,MAAM,OAAO,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7C,oBAAA,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;AAC1B,oBAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,oBAAA,OAAO,OAAO,CAAC;AAClB,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,kBAAkB,GAAA;QACtB,IAAI,WAAW,GAAY,IAAI,CAAC;AAChC,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;YACvC,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,gBAAA,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;AACpC,aAAA;AAAM,iBAAA,IAAI,WAAW,KAAK,UAAU,CAAC,OAAO,EAAE;gBAC3C,WAAW,GAAG,SAAS,CAAC;gBACxB,MAAM;AACT,aAAA;AACJ,SAAA;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,WAAW,GAAG,KAAK,CAAC;AACvB,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;KACtC;IAEO,oBAAoB,GAAA;QACxB,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,QAAA,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE;AACvC,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBACvB,eAAe,GAAG,IAAI,CAAC;gBACvB,MAAM;AACT,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC;KAC7C;qGApLQ,iBAAiB,EAAA,EAAA,CAAA,iBAAA,CAAAC,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,mBAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,GAAA,EAAA,mHAAA,CAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,GAAA,EAAA,gHAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,aAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,6FAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,4KAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,0FAAA,CAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,IAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,4FAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,8KAAA,CAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,GAAA,EAAA,0FAAA,CAAA,EAAA,CAAA,CAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDjD9B,EAuCc,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YACd,EA2Ec,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YACd,EAA6B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACzB,EACc,CAAA,UAAA,CAAA,CAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;YAClB,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAAiC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC7B,EAQM,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACN,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACV,EAAM,CAAA,YAAA,EAAA,CAAA;;;YAhBW,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA5D,YAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,cAAA,IAAA,GAAA,CAA4D,CAAA,yBAAA,EAAA,GAAA,CAAA,qBAAA,CAAA,CAAA;YAGxE,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA3B,EAA2B,CAAA,UAAA,CAAA,UAAA,EAAA,GAAA,CAAA,cAAA,CAAA,CAAA;YACtB,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlB,EAAkB,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAA,CAAA;YASlB,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAnB,EAAmB,CAAA,UAAA,CAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;;uFCjFhB,iBAAiB,EAAA,CAAA;cAL7B,SAAS;2BACI,cAAc,EAAA,QAAA,EAAA,ytNAAA,EAAA,MAAA,EAAA,CAAA,2WAAA,CAAA,EAAA,CAAA;qHAKf,cAAc,EAAA,CAAA;kBAAtB,KAAK;YACG,YAAY,EAAA,CAAA;kBAApB,KAAK;YACG,KAAK,EAAA,CAAA;kBAAb,KAAK;YACG,MAAM,EAAA,CAAA;kBAAd,KAAK;YACI,cAAc,EAAA,CAAA;kBAAvB,MAAM;YACG,YAAY,EAAA,CAAA;kBAArB,MAAM;;;MChDE,YAAY,CAAA;IACrB,SAAS,CAAC,OAAc,EAAE,SAAiB,EAAA;AACvC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;AAChB,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;KAChG;gGAPQ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;oHAAZ,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAZ,YAAY,EAAA,CAAA;cAHxB,IAAI;AAAC,QAAA,IAAA,EAAA,CAAA;AACF,gBAAA,IAAI,EAAE,aAAa;AACtB,aAAA,CAAA;;;ICNW,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,aAAoB,CAAA;AACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,eAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,gBAA0B,CAAA;AAC1B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,gBAA0B,CAAA;AAC9B,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;AAEY,MAAA,gBAAgB,GAAG;AAC5B,IAAA,CAAC,YAAY,CAAC,IAAI,GAAG,2BAA2B;AAChD,IAAA,CAAC,YAAY,CAAC,KAAK,GAAG,oBAAoB;AAC1C,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,sBAAsB;AAC9C,IAAA,CAAC,YAAY,CAAC,OAAO,GAAG,sBAAsB;;;;ICF9C,EAA6D,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IACzD,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAM,CAAA,YAAA,EAAA,CAAA;;;IADF,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,EAAA,GAAA,CAAA,CAAA;;;IAGI,EAAsD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;IAAjC,EAA0B,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,CAAA,OAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;ACJjD,MAAO,sBAAuB,SAAQ,KAAK,CAAA;IAW7C,WACc,CAAA,aAA4B,EAC/B,YAA0B,EAAA;AAEjC,QAAA,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAHzB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAZrC,QAAA,IAAA,CAAA,IAAI,GAAsB;AACtB,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY,CAAC,OAAO;AAC5B,YAAA,UAAU,EAAE,KAAK;SACpB,CAAC;QACF,IAAI,CAAA,IAAA,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEpB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;KAO9C;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClD;0GArBQ,sBAAsB,EAAA,EAAA,CAAA,iBAAA,CAAA5C,IAAA,CAAA,aAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;YDVnC,EAA4B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACxB,EAA4C,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAChD,EAAM,CAAA,YAAA,EAAA,CAAA;AAEN,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA+B,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;YAEvB,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAO,CAAA,YAAA,EAAA,CAAA;YAEP,EAEM,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAEN,EAEc,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;YAClB,EAAM,CAAA,YAAA,EAAA,CAAA;YAEN,EAA4B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACxB,EAA4B,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YAChC,EAAM,CAAA,YAAA,EAAA,CAAA;;;YAnBqB,EAAgB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAhB,EAAgB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAKnC,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,IAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;YAEsB,EAAwB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAxB,YAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,IAAA,CAAA,UAAA,CAAwB,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;;;uFCCrC,sBAAsB,EAAA,CAAA;cANlC,SAAS;2BACI,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sgBAAA,EAAA,MAAA,EAAA,CAAA,qzDAAA,CAAA,EAAA,CAAA;+FAWzB,KAAK,EAAA,CAAA;kBAA1B,WAAW;mBAAC,OAAO,CAAA;;;MCdX,oBAAoB,CAAA;AAG7B,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;KACpC;AAED,IAAA,KAAK,CAAC,KAAa,EAAE,OAAA,GAAe,EAAE,EAAA;QAClC,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;KACJ;wGAXQ,oBAAoB,GAAA,CAAA,EAAA,CAAA,EAAA;sGAApB,oBAAoB,EAAA,OAAA,EAApB,oBAAoB,CAAA,IAAA,EAAA,UAAA,EAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;uFAET,oBAAoB,EAAA,CAAA;cAHhC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;;ICQW,iBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,OAAgB,CAAA;AAChB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;IAEW,qBAKX;AALD,CAAA,UAAY,oBAAoB,EAAA;AAC5B,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA;;MCRY,qBAAqB,CAAA;AAQ9B,IAAA,WAAA,CAC8B,SAAS,qBAC3B,GAAe,EAAA;QADG,IAAS,CAAA,SAAA,GAAT,SAAS,CAAA;QAC3B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QATlB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;QACtC,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AAEpB,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;QAEhE,IAAc,CAAA,cAAA,GAAuB,EAAE,CAAC;QAM5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC9E,SAAA;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACvE;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;KACJ;IAEO,KAAK,GAAA;QACT,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACzC,gBAAA,IAAI,QAAQ,EAAE;oBACV,IAAI;AACA,wBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,wBAAA,IAAI,IAAI,EAAE;AACN,4BAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,yBAAA;AACJ,qBAAA;AAAC,oBAAA,OAAO,GAAG,EAAE;wBACV,IAAI,MAAM,CAAC,OAAO,EAAE;4BAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;AACxF,yBAAA;AACJ,qBAAA;AACJ,iBAAA;AACL,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;;IAGO,gBAAgB,GAAA;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACpE;;AAGO,IAAA,YAAY,CAAC,CAAQ,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;AAC9E,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC3B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,aAAA;AACJ,SAAA;KACJ;;AAGO,IAAA,cAAc,CAAC,MAAM,EAAA;AACzB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACzC,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AApFQ,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,SAAA,6BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,qBAAqB,uBASlB,QAAQ,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGATX,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAArB,qBAAqB,EAAA,CAAA;cADjC,SAAS;eAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;;sBAUhC,MAAM;uBAAC,QAAQ,CAAA;iDARX,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YAEI,YAAY,EAAA,CAAA;kBAArB,MAAM;;;ICnBC,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;ICIW,oBAGX;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC3B,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,GAAW,CAAA;AACX,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,GAAsB,CAAA;AAC1B,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA;;MCFY,eAAe,CAAA;AACxB,IAAA,WAAA,CAAoB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAAI;AAE7C,IAAA,IAAI,CAAC,OAA0B,EAAE,KAAc,EAAE,UAAoB,EAAE,OAAgB,EAAA;AACnF,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC3E;AAED,IAAA,MAAM,CAAC,OAA0B,EAAE,KAAc,EAAE,UAAoB,EAAE,OAAgB,EAAA;AACrF,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC5E;AAED,IAAA,OAAO,CAAC,OAA0B,EAAE,KAAc,EAAE,UAAoB,EAAE,OAAgB,EAAA;AACtF,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC9E;AAED,IAAA,OAAO,CAAC,OAA0B,EAAE,KAAc,EAAE,UAAoB,EAAE,OAAgB,EAAA;AACtF,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;KAC9E;IAEO,UAAU,CACd,OAA0B,EAC1B,KAAa,EACb,MAAoB,EACpB,UAAoB,EACpB,OAAA,GAAkB,IAAI,EAAA;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE;AACpC,YAAA,aAAa,EAAE,oBAAoB;AACnC,YAAA,YAAY,EAAE,IAAI;YAClB,OAAO;AACV,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG;YAC1B,KAAK;YACL,OAAO;YACP,MAAM;YACN,UAAU;SACb,CAAC;KACL;mGAtCQ,eAAe,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;sGAAf,eAAe,EAAA,OAAA,EAAf,eAAe,CAAA,IAAA,EAAA,UAAA,EAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;uFAET,eAAe,EAAA,CAAA;cAH3B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;;ACAD,MAAM,kBAAkB,GAAG,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC;MAQ9D,eAAe,CAAA;mGAAf,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,CAAA,CAAA,EAAA;sGALd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAKb,eAAe,EAAA,CAAA;cAN3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC;AACtE,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAAC;AAC9E,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,eAAe,mBAFT,gBAAgB,EAAE,kBAAkB,EAN3B,uBAAuB,EAAE,oBAAoB,CAG3D,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,EAAE,kBAAkB,EAJtB,uBAAuB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACFzE,MAAM6C,YAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACxC,MAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;MAO3B,eAAe,CAAA;mGAAf,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,CAAA,CAAA,EAAA;sGAJd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIb,eAAe,EAAA,CAAA;cAL3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,GAAGA,YAAU,EAAE,GAAG,UAAU,CAAC;AACvC,gBAAA,YAAY,EAAE,CAAC,GAAGA,YAAU,EAAE,GAAG,UAAU,CAAC;AAC/C,aAAA,CAAA;;wFACY,eAAe,EAAA,EAAA,YAAA,EAAA,CARR,kBAAkB,EAClB,kBAAkB,aAGxB,YAAY,CAAA,EAAA,OAAA,EAAA,CAJN,kBAAkB,EAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACwBtC;AACA;AACA,WAAW,CAAC,SAAS,CAAC,eAAe,GAAG,YAAA;IACpC,IAAI,CAAC,wBAAwB,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAMA,YAAU,GAAG;IACf,iBAAiB;IACjB,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,qBAAqB;IACrB,kCAAkC;IAClC,2BAA2B;IAC3B,iCAAiC;IACjC,0BAA0B;IAC1B,8BAA8B;IAC9B,mBAAmB;IACnB,wBAAwB;IACxB,eAAe;CAClB,CAAC;MAkBW,cAAc,CAAA;kGAAd,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;AAbZ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA,CAAC,cAAc,EAAE,CAAC,EAAA,OAAA,EAAA,CAGzB,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,cAAc;YACd,mBAAmB;YACnB,mBAAmB;YACnB,eAAe;YACf,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAGV,cAAc,EAAA,CAAA;cAhB1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,YAAY,EAAEA,YAAU;AACxB,gBAAA,OAAO,EAAEA,YAAU;AACnB,gBAAA,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;AAC7B,gBAAA,OAAO,EAAE;oBACL,gBAAgB;oBAChB,WAAW;oBACX,mBAAmB;oBACnB,YAAY;oBACZ,cAAc;oBACd,mBAAmB;oBACnB,mBAAmB;oBACnB,eAAe;oBACf,eAAe;AAClB,iBAAA;AACJ,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,cAAc,mBAnCvB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,iCAAiC;QACjC,0BAA0B;QAC1B,8BAA8B;QAC9B,mBAAmB;QACnB,wBAAwB;AACxB,QAAA,eAAe,aAQX,gBAAgB;QAChB,WAAW;QACX,mBAAmB;QACnB,YAAY;QACZ,cAAc;QACd,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;AACf,QAAA,eAAe,aAhCnB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,iCAAiC;QACjC,0BAA0B;QAC1B,8BAA8B;QAC9B,mBAAmB;QACnB,wBAAwB;QACxB,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACvCZ,MAAMA,YAAU,GAAG;IACtB,gBAAgB;IAChB,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,oBAAoB;CACvB,CAAC;MAOW,aAAa,CAAA;iGAAb,aAAa,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,CAAA,CAAA,EAAA;AAJZ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAI/E,aAAa,EAAA,CAAA;cALzB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,CAAC;AACzF,gBAAA,OAAO,EAAEA,YAAU;AACnB,gBAAA,YAAY,EAAEA,YAAU;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,aAAa,mBAftB,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAIV,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAXxF,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCVX,aAAa,CAAA;iGAAb,aAAa,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,CAAA,CAAA,EAAA;AALZ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK/D,aAAa,EAAA,CAAA;cANzB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAC;gBACzE,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,gBAAgB,CAAC;AACnC,aAAA,CAAA;;wFACY,aAAa,EAAA,EAAA,YAAA,EAAA,CAFP,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAHrB,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAC9D,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCGjB,kBAAkB,CAAA;sGAAlB,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;sGAHjB,YAAY,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAG1C,kBAAkB,EAAA,CAAA;cAL9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;AACrC,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC;gBACpD,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,aAAA,CAAA;;wFACY,kBAAkB,EAAA,EAAA,YAAA,EAAA,CAJZ,qBAAqB,CAC1B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CACzC,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCItB,WAAW,CAAA;+FAAX,WAAW,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAX,WAAW,EAAA,CAAA,CAAA,EAAA;AALV,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK/D,WAAW,EAAA,CAAA;cANvB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,CAAC;gBACzE,OAAO,EAAE,CAAC,cAAc,CAAC;AACzB,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,cAAc,CAAC;AACjC,aAAA,CAAA;;wFACY,WAAW,EAAA,EAAA,YAAA,EAAA,CAFL,cAAc,CAAA,EAAA,OAAA,EAAA,CAHnB,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAC9D,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCEf,cAAc,CAAA;kGAAd,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;AAFb,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAe,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAE9B,cAAc,EAAA,CAAA;cAL1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;AAC/C,gBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;AAC1C,gBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;AAC3C,aAAA,CAAA;;wFACY,cAAc,EAAA,EAAA,YAAA,EAAA,CAJR,iBAAiB,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAEpC,eAAe,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CAD7B,iBAAiB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCEhC,eAAe,CAAA;mGAAf,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,CAAA,CAAA,EAAA;sGAJd,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIb,eAAe,EAAA,CAAA;cAL3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AACjD,gBAAA,YAAY,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;AACzD,aAAA,CAAA;;wFACY,eAAe,EAAA,EAAA,YAAA,EAAA,CAFT,kBAAkB,EAAE,kBAAkB,aAF3C,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,kBAAkB,EAAE,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCIvC,iBAAiB,CAAA;AAR9B,IAAA,WAAA,GAAA;QAUa,IAAG,CAAA,GAAA,GAAW,GAAG,CAAC;QAClB,IAAG,CAAA,GAAA,GAAW,CAAC,CAAC;QAChB,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,QAAQ,GAA4B,MAAK,GAAG,CAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;AAuB5C,KAAA;AArBG,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC9B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KAC3B;AAED,IAAA,QAAQ,CAAC,KAAK,EAAA;QACV,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;qGA9BQ,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;AAAjB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,iBAAiB,EAHf,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA,EAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,OAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,0BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YCR5F,EAOkC,CAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,CAAA,CAAA;AAA9B,YAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,kDAAA,CAAA,MAAA,EAAA,EAAA,OAAU,oBAAgB,CAAC,EAAA,CAAA,CAAA;YAP/B,EAOkC,CAAA,YAAA,EAAA,CAAA;;YAL9B,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA,UAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;;;uFDSF,iBAAiB,EAAA,CAAA;cAR7B,SAAS;2BACI,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAA,iBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,cAC5E,IAAI,EAAA,QAAA,EAAA,wLAAA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,CAAA;gBAGP,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,GAAG,EAAA,CAAA;kBAAX,KAAK;YACG,GAAG,EAAA,CAAA;kBAAX,KAAK;YACG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;IEhBE,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAC3B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;;MCCY,2BAA2B,CAAA;AADxC,IAAA,WAAA,GAAA;QAIqB,IAAgB,CAAA,gBAAA,GAAG,GAAG,CAAC;;QAEvB,IAAoB,CAAA,oBAAA,GAAG,CAAC,CAAC;QACzB,IAAwB,CAAA,wBAAA,GAAG,EAAE,CAAC;QAC9B,IAAyB,CAAA,yBAAA,GAAG,EAAE,CAAC;AAiFnD,KAAA;AA/EG,IAAA,SAAS,CAAC,UAAkB,EAAE,QAA0B,EAAE,SAAiB,EAAE,gBAAkC,EAAA;AAC3G,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAC9D,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACzC;IAED,cAAc,CAAC,QAA0B,EAAE,UAAkB,EAAA;AACzD,QAAA,OAAO,QAAQ,KAAK,gBAAgB,CAAC,MAAM;AACvC,cAAE,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC;AAC1C,cAAE,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;KACrD;AAEO,IAAA,uBAAuB,CAAC,UAAkB,EAAA;QAC9C,MAAM,YAAY,GAAG,UAAU,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAClE,QAAA,MAAM,cAAc,GAAG,UAAU,GAAG,YAAY,CAAC;AACjD,QAAA,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjF;AAEO,IAAA,0BAA0B,CAAC,UAAkB,EAAA;QACjD,OAAO;AACH,YAAA,IAAI,CAAC,wBAAwB;AAC7B,YAAA,IAAI,CAAC,yBAAyB;YAC9B,UAAU,GAAG,IAAI,CAAC,wBAAwB;YAC1C,UAAU,GAAG,IAAI,CAAC,yBAAyB;AAC9C,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACf;IAEO,UAAU,CAAC,QAA0B,EAAE,UAAkB,EAAA;QAC7D,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAC7C,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,QAAQ,KAAK,gBAAgB,CAAC,MAAM,EAAE;AACtC,YAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,QAAQ,KAAK,gBAAgB,CAAC,SAAS,EAAE;AAChD,YAAA,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;KAC5B;AAEO,IAAA,gBAAgB,CAAC,UAAkB,EAAA;QACvC,MAAM,YAAY,GAAG,UAAU,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,YAAY,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,YAAY,EAAE,CAAC,GAAG,YAAY,EAAE,YAAY,CAAC,CAAC;KAC9F;AAEO,IAAA,qBAAqB,CAAC,UAAkB,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;AACnE,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,CAAC;QAC5G,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb,IAAI,CAAC,wBAAwB,EAC7B,CAAC,EACD,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAC9C,IAAI,CAAC,yBAAyB,CACjC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CACb,IAAI,CAAC,wBAAwB,EAC7B,UAAU,GAAG,IAAI,CAAC,yBAAyB,EAC3C,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAC9C,IAAI,CAAC,yBAAyB,CACjC,CAAC;KACL;AAEO,IAAA,eAAe,CAAC,UAAkB,EAAE,SAAiB,EAAE,gBAAkC,EAAA;AAC7F,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;QACtE,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;QAExE,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,aAAa,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,cAAc,IAAI,CAAC,CAAC;AAEhD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;KACrF;AAEO,IAAA,WAAW,CAAC,UAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;KACnD;+GAvFQ,2BAA2B,GAAA,CAAA,EAAA,CAAA,EAAA;AAA3B,uBAAA,SAAA,IAAA,CAAA,KAAA,6BAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,2BAA2B,WAA3B,2BAA2B,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAA3B,2BAA2B,EAAA,CAAA;cADvC,UAAU;;;;MCwBE,uBAAuB,CAAA;AAiBhC,IAAA,WAAA,CAA6B,aAA0C,EAAA;QAA1C,IAAa,CAAA,aAAA,GAAb,aAAa,CAA6B;QAd9D,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAO,CAAA,OAAA,GAAW,GAAG,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAW,GAAG,CAAC;QACvB,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;AAErB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAkB,CAAC;AACjD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ,CAAC;AAKlD,QAAA,IAAA,CAAA,QAAQ,GAAqB,gBAAgB,CAAC,MAAM,CAAC;QAC5C,IAAgB,CAAA,gBAAA,GAAG,gBAAgB,CAAC;KAE8B;AAE3E,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YACrC,IAAI,CAAC,aAAa,EAAE,CAAC;AACxB,SAAA;KACJ;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC9E;AAED,IAAA,SAAS,CAAC,YAAa,EAAA;QACnB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,SAAA;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,iBAAiB,CAAC,QAA2B,EAAA;AACzC,QAAA,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,SAAA;QAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACrG,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACvF,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC7C,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5G,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1E,SAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEO,aAAa,GAAA;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACjB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC5D,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,MAAK;AAChC,gBAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;gBACpG,IAAI,CAAC,SAAS,EAAE,CAAC;AACrB,aAAC,CAAC;AACN,SAAC,CAAC;AACF,QAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACxC;AAEO,IAAA,kBAAkB,CAAC,MAAkB,EAAA;AACzC,QAAA,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC;AAE5D,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACxC;2GAnEQ,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAAC,2BAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;AAFrB,SAAA,EAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAC,2BAA2B,CAAC,CAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,CAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,KAAA,EAAA,KAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ACzB5C,YAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsC,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAI9B,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,OAAS,kDAA0C,CAAC,EAAA,CAAA,CAAA;YACpD,EAAsB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAClB,EAAyC,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACzC,EACJ,CAAA,MAAA,CAAA,CAAA,EAAA,UAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;YAEV,EAG4D,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAAxD,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,2DAAA,GAAA,EAAA,OAAS,qDAA6C,CAAC,EAAA,CAAA,CAAA;YACvD,EAAsB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAClB,EAA4C,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YAC5C,EACJ,CAAA,MAAA,CAAA,CAAA,EAAA,aAAA,CAAA,CAAA;AAAA,YAAA,EAAA,CAAA,YAAA,EAAM,EAAA,EAAA,CAAA;YAId,EAA2B,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACvB,EAA8B,CAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;YAClC,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAOgC,CAAA,cAAA,CAAA,EAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;YAN5B,EAAuB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,oEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,CAAA,MAAA,EAAA,EAAA,OAMd,qBAAiB,CANH,EAAA,CAAA,CAAA;YAO3B,EAAY,CAAA,YAAA,EAAA,CAAA;YACZ,EAAmF,CAAA,cAAA,CAAA,EAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAAtD,YAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,OAAS,uBAAmB,CAAC,EAAA,CAAA,CAAA;YAA0B,EAAkB,CAAA,MAAA,CAAA,EAAA,EAAA,qBAAA,CAAA,CAAA;YAAA,EAAY,CAAA,YAAA,EAAA,CAAA;;YA9B1G,EAA0D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA1D,EAA0D,CAAA,WAAA,CAAA,aAAA,EAAA,GAAA,CAAA,QAAA,KAAA,GAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA;YAS1D,EAA6D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAA7D,EAA6D,CAAA,WAAA,CAAA,aAAA,EAAA,GAAA,CAAA,QAAA,KAAA,GAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,CAAA;YAiBjE,EAAkC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAlC,EAAkC,CAAA,WAAA,CAAA,OAAA,EAAA,GAAA,CAAA,WAAA,GAAA,IAAA,CAAA,CAAA;YAJlC,EAAuB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,OAAA,CAAA,oBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,QAAA,CAAA,CAAA;YAQhB,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAjB,EAAiB,CAAA,UAAA,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA;4BDVd,WAAW,EAAAzB,IAAA,CAAA,eAAA,EAAAA,IAAA,CAAA,OAAA,EAAE,iBAAiB,EAAE,cAAc,EAAA0B,iBAAA,CAAA,EAAA,MAAA,EAAA,CAAA,klDAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAI/C,uBAAuB,EAAA,CAAA;cATnC,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,mBAGX,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,EAAA,UAAA,EAC7C,IAAI,EACL,SAAA,EAAA,CAAC,2BAA2B,CAAC,EAAA,QAAA,EAAA,wnCAAA,EAAA,MAAA,EAAA,CAAA,sjCAAA,CAAA,EAAA,CAAA;2EAGb,WAAW,EAAA,CAAA;kBAArC,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YACE,SAAS,EAAA,CAAA;kBAAnC,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAChB,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,OAAO,EAAA,CAAA;kBAAf,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEI,WAAW,EAAA,CAAA;kBAApB,MAAM;YACG,YAAY,EAAA,CAAA;kBAArB,MAAM;YAEqC,aAAa,EAAA,CAAA;kBAAxD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MEhBjC,gBAAgB,CAAA;oGAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;AAFd,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA,CAAC,iBAAiB,CAAC,EAAA,OAAA,EAAA,CATpB,YAAY,EAAE,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAW/C,gBAAgB,EAAA,CAAA;cAZ5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,CAAC;AACzD,gBAAA,YAAY,EAAE;oBACV,mBAAmB;oBACnB,mBAAmB;oBACnB,sBAAsB;oBACtB,wBAAwB;oBACxB,uBAAuB;AAC1B,iBAAA;gBACD,OAAO,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,uBAAuB,CAAC;gBACpG,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,mBATrB,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,wBAAwB;AACxB,QAAA,uBAAuB,CANjB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,EAAE,eAAe,CAQ9C,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA;AAL/F,EAAA,CAAA,mBAAA,CAAA,mBAAmB,iEADnB,mBAAmB;IAGnB,wBAAwB;AACxB,IAAA,uBAAuB,IAFvB,sBAAsB,CAAA,CAAA;;MCAjB,YAAY,CAAA;gGAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;sGALX,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK/F,YAAY,EAAA,CAAA;cANxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,CAAC;AACzG,gBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;AAC1C,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;AAClD,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,YAAY,mBAFN,eAAe,EAAE,cAAc,CAHpC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,CAC9F,EAAA,OAAA,EAAA,CAAA,eAAe,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACJ7C,MAAM,uBAAuB,GAAG;IAC5B,oBAAoB;IACpB,wBAAwB;IACxB,8BAA8B;IAC9B,4BAA4B;CAC/B,CAAC;MAQW,iBAAiB,CAAA;qGAAjB,iBAAiB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;sGALhB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAKb,iBAAiB,EAAA,CAAA;cAN7B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,GAAG,uBAAuB,CAAC;AACrC,gBAAA,YAAY,EAAE,CAAC,GAAG,uBAAuB,CAAC;AAC1C,gBAAA,SAAS,EAAE,EAAE;AAChB,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,iBAAiB,mBAZ1B,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAIlB,YAAY,CAAA,EAAA,OAAA,EAAA,CAPtB,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACLhC,MAAM,UAAU,GAAG,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;MAO1E,cAAc,CAAA;kGAAd,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;sGAJb,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIb,cAAc,EAAA,CAAA;cAL1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAChC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,cAAc,EAPP,EAAA,YAAA,EAAA,CAAA,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,CAGvE,EAAA,OAAA,EAAA,CAAA,YAAY,CAHN,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCMxE,aAAa,CAAA;iGAAb,aAAa,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,CAAA,CAAA,EAAA;sGALZ,YAAY,EAAE,WAAW,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK3C,aAAa,EAAA,CAAA;cANzB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC;gBACrD,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,gBAAgB,CAAC;AACnC,aAAA,CAAA;;wFACY,aAAa,EAAA,EAAA,YAAA,EAAA,CAFP,gBAAgB,CAHrB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC1C,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCEjB,eAAe,CAAA;mGAAf,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,CAAA,CAAA,EAAA;AAHd,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAG9B,eAAe,EAAA,CAAA;cAL3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;AAChC,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;gBACxC,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC9B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,eAAe,mBAJT,gBAAgB,CAAA,EAAA,OAAA,EAAA,CACrB,YAAY,EAAE,eAAe,aAC7B,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCEjB,mBAAmB,CAAA;uGAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;sGALlB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAKb,mBAAmB,EAAA,CAAA;cAN/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACzC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,mBAAmB,EAFb,EAAA,YAAA,EAAA,CAAA,sBAAsB,CAH3B,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCevB,cAAc,CAAA;kGAAd,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;AAFZ,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAEC,kBAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAER,sBAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,YAFrG,YAAY,EAAES,qBAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIzG,cAAc,EAAA,CAAA;cAN1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;AACnE,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAEA,qBAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,CAAC;AACnH,gBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;gBAC9D,SAAS,EAAE,CAAC,EAAE,OAAO,EAAED,kBAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAER,sBAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC;AAClH,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,cAAc,mBALR,sBAAsB,EAAE,2BAA2B,CACxD,EAAA,OAAA,EAAA,CAAA,YAAY,EAAES,qBAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,CACxG,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACDjE,MAAM,kBAAkB,GAAG;IACvB,eAAe;IACf,sBAAsB;IACtB,mBAAmB;IACnB,0BAA0B;IAC1B,0BAA0B;IAC1B,0BAA0B;IAC1B,sBAAsB;IACtB,oBAAoB;CACvB,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,4BAA4B,CAAC,CAAC;MAO7C,YAAY,CAAA;gGAAZ,YAAY,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;sGAJX,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIhG,YAAY,EAAA,CAAA;cALxB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,CAAC;AAC1G,gBAAA,YAAY,EAAE,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC;AAC5D,gBAAA,OAAO,EAAE,CAAC,GAAG,kBAAkB,EAAE,GAAG,kBAAkB,CAAC;AAC1D,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,YAAY,mBAjBrB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;AACtB,QAAA,oBAAoB,EAGI,4BAA4B,CAG1C,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,aAbzG,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,0BAA0B;QAC1B,sBAAsB;AACtB,QAAA,oBAAoB,EAGI,4BAA4B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCd3C,uBAAuB,CAAA;2GAAvB,uBAAuB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;uGAHrB,CAAC,eAAe,EAAE,sBAAsB,CAAC,YAD1C,YAAY,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAI1C,uBAAuB,EAAA,CAAA;cANnC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,0BAA0B,CAAC;AAC1C,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC;AACpD,gBAAA,SAAS,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC;gBACpD,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACxC,aAAA,CAAA;;wFACY,uBAAuB,EAAA,EAAA,YAAA,EAAA,CALjB,0BAA0B,CAC/B,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAEzC,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACFxC,MAAM,UAAU,GAAG,CAAC,gCAAgC,EAAE,mCAAmC,CAAC,CAAC;MAQ9E,gBAAgB,CAAA;oGAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;uGAJd,CAAC,eAAe,CAAC,EAAA,OAAA,EAAA,CAClB,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAGhF,gBAAgB,EAAA,CAAA;cAN5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;gBAC7B,SAAS,EAAE,CAAC,eAAe,CAAC;gBAC5B,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,CAAC;AAC1F,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,mBART,gCAAgC,EAAE,mCAAmC,CAAA,EAAA,OAAA,EAAA,CAK3E,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,CALzE,EAAA,OAAA,EAAA,CAAA,gCAAgC,EAAE,mCAAmC,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCC5E,mBAAmB,CAAA;uGAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;AALlB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK9B,mBAAmB,EAAA,CAAA;cAN/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;gBACxC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACzC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,mBAAmB,mBAFb,sBAAsB,CAAA,EAAA,OAAA,EAAA,CAH3B,YAAY,EAAE,eAAe,aAC7B,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCQvB,cAAc,CAAA;AACvB,IAAA,OAAO,OAAO,GAAA;QACV,OAAO;AACH,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,SAAS,EAAE,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC;SACtG,CAAC;KACL;kGANQ,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;AALb,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK1B,cAAc,EAAA,CAAA;cAN1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;AACpC,gBAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,CAAC;AACtE,gBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;AAC1C,gBAAA,SAAS,EAAE,EAAE;AAChB,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,cAAc,EAJR,EAAA,YAAA,EAAA,CAAA,iBAAiB,EAAE,qBAAqB,EAAE,YAAY,CAD3D,EAAA,OAAA,EAAA,CAAA,WAAW,EAAE,YAAY,CAEzB,EAAA,OAAA,EAAA,CAAA,iBAAiB,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCHhC,kBAAkB,CAAA;sGAAlB,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;sGAJjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAIb,kBAAkB,EAAA,CAAA;cAL9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,kBAAkB,EAHZ,EAAA,YAAA,EAAA,CAAA,qBAAqB,CAD1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCGtB,aAAa,CAAA;iGAAb,aAAa,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,CAAA,CAAA,EAAA;sGALZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAKb,aAAa,EAAA,CAAA;cANzB,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,gBAAA,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,CAAC,gBAAgB,CAAC;AACnC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,aAAa,EAFP,EAAA,YAAA,EAAA,CAAA,gBAAgB,CAHrB,EAAA,OAAA,EAAA,CAAA,YAAY,aACZ,gBAAgB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCWjB,cAAc,CAAA;kGAAd,cAAc,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,CAAA,CAAA,EAAA;uGAFZ,CAAC,eAAe,CAAC,EAAA,OAAA,EAAA,CANxB,YAAY;YACZ,YAAY,CAAC,OAAO,CAAC;AACjB,gBAAA,cAAc,EAAE,sBAAsB;aACzC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAKG,cAAc,EAAA,CAAA;cAX1B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,YAAY,EAAE,CAAC,sBAAsB,CAAC;AACtC,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,YAAY,CAAC,OAAO,CAAC;AACjB,wBAAA,cAAc,EAAE,sBAAsB;qBACzC,CAAC;AACL,iBAAA;gBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;gBACjC,SAAS,EAAE,CAAC,eAAe,CAAC;AAC/B,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,cAAc,EAVR,EAAA,YAAA,EAAA,CAAA,sBAAsB,CAEjC,EAAA,OAAA,EAAA,CAAA,YAAY,gCAKN,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCMvB,kBAAkB,CAAA;sGAAlB,kBAAkB,GAAA,CAAA,EAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;AALjB,uBAAA,SAAA,IAAA,CAAA,IAAA,6BAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAK/E,kBAAkB,EAAA,CAAA;cAN9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACN,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,CAAC;AACzF,gBAAA,OAAO,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,CAAC;AACvF,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,YAAY,EAAE,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,CAAC;AAC/F,aAAA,CAAA;;wFACY,kBAAkB,EAAA,EAAA,YAAA,EAAA,CAFZ,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAHjF,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,aAAa,aAC9E,qBAAqB,EAAE,qBAAqB,EAAE,8BAA8B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;IChB1F,EAAsD,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;IAAtC,EAAc,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA;;;IAE1B,EAA6B,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACzB,EAAyB,CAAA,YAAA,CAAA,CAAA,CAAA,CAAA;IAC7B,EAAe,CAAA,qBAAA,EAAA,CAAA;;;;IAGnB,EAAmF,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+CAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAS,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,MAAA,CAAA,IAAA,CAAY,IAAI,CAAC,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAI,CAAA,YAAA,EAAA,CAAA;;;MCI1E,eAAe,CAAA;AAR5B,IAAA,WAAA,GAAA;AAec,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAC/C,KAAA;mGARY,eAAe,GAAA,CAAA,EAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,2BAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;YDX5B,EAAsD,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;YACtD,EAAyB,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;YACrB,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;YACf,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;YAAA,EAAM,CAAA,YAAA,EAAA,CAAA;YACN,EAAuF,CAAA,UAAA,CAAA,CAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;YAPnF,EAAU,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;YAEK,EAAY,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAZ,EAAY,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,KAAA,CAAA,CAAA;YAG3B,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA;YACI,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;YAAf,EAAe,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;4BCEL,YAAY,EAAA,EAAA,CAAA,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,6qBAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;uFAEb,eAAe,EAAA,CAAA;cAR3B,SAAS;2BACI,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,kTAAA,EAAA,MAAA,EAAA,CAAA,oiBAAA,CAAA,EAAA,CAAA;gBAGd,KAAK,EAAA,CAAA;kBAAb,KAAK;YAEG,IAAI,EAAA,CAAA;kBAAZ,KAAK;YAEG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEI,MAAM,EAAA,CAAA;kBAAf,MAAM;;;AClBX;;ACAA;;AAEG;;;;"}
|