@senior-gestao-relacionamento/angular-components 2.0.0-master-cf715f40 → 2.0.0-master-81752a2d
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/esm2022/lib/components/schedule/schedule-detail/schedule-detail.component.mjs +4 -4
- package/esm2022/lib/components/schedule/schedule-form/schedule-form.component.mjs +9 -3
- package/fesm2022/senior-gestao-relacionamento-angular-components.mjs +11 -5
- package/fesm2022/senior-gestao-relacionamento-angular-components.mjs.map +1 -1
- package/lib/components/schedule/schedule-form/schedule-form.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { DialogModule } from 'primeng/dialog';
|
|
|
4
4
|
import { DividerModule } from 'primeng/divider';
|
|
5
5
|
import { TagModule } from 'primeng/tag';
|
|
6
6
|
import { TableModule } from 'primeng/table';
|
|
7
|
-
import { TranslatePipe } from '@seniorsistemas/components-ai';
|
|
7
|
+
import { TranslatePipe, DateFormatPipe } from '@seniorsistemas/components-ai';
|
|
8
8
|
import { getParticipantName, getParticipantType, getParticipantTypeIcon, getPrioritySeverity, getPriorityLabel, getConfirmationSeverity, getConfirmationLabel } from '../helpers/schedule-display.helpers';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "../services/schedule.service";
|
|
@@ -66,14 +66,14 @@ export class ScheduleDetailComponent {
|
|
|
66
66
|
getConfirmationSeverity(c) { return getConfirmationSeverity(c); }
|
|
67
67
|
getConfirmationLabel(c) { return getConfirmationLabel(this.t, c); }
|
|
68
68
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, deps: [{ token: i1.ScheduleService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i6.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i7.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScheduleDetailComponent, isStandalone: true, selector: "s-schedule-detail", inputs: { visible: "visible" }, outputs: { visibleChange: "visibleChange" }, ngImport: i0, template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate | dateFormat }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate | dateFormat }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i5.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i6.Divider, selector: "p-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i7.Tag, selector: "p-tag", inputs: ["style", "styleClass", "severity", "value", "icon", "rounded"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i8.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: DateFormatPipe, name: "dateFormat" }] });
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScheduleDetailComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
|
-
args: [{ selector: 's-schedule-detail', standalone: true, imports: [CommonModule, DialogModule, DividerModule, TagModule, TableModule, TranslatePipe], template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"] }]
|
|
73
|
+
args: [{ selector: 's-schedule-detail', standalone: true, imports: [CommonModule, DialogModule, DividerModule, TagModule, TableModule, TranslatePipe, DateFormatPipe], template: "<p-dialog\n [(visible)]=\"visible\"\n [header]=\"schedule?.name || ''\"\n [modal]=\"true\"\n styleClass=\"detail-dialog\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onClose()\"\n>\n <div class=\"detail-dialog-body\" *ngIf=\"schedule\">\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_priority' | translate }}\n </span>\n <p-tag\n [value]=\"getPriorityLabel(schedule.priority)\"\n [severity]=\"getPrioritySeverity(schedule.priority)\"\n ></p-tag>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.scheduleType\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_type' | translate }}\n </span>\n <span>{{ schedule.scheduleType.name }}</span>\n </div>\n <div class=\"detail-dialog-row\">\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_date' | translate }}\n </span>\n <span>{{ scheduleData.startDate | dateFormat }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.endDate\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_end_date' | translate }}\n </span>\n <span>{{ scheduleData.endDate | dateFormat }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"!schedule.allDay && schedule.startTime\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ schedule.startTime }} - {{ schedule.endTime }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.allDay\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_start_time' | translate }}\n </span>\n <span>\n {{ 'crmx.components.schedule_all_day' | translate }}\n </span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"schedule.whenOccurs\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_recurrence' | translate }}\n </span>\n <span>{{ schedule.whenOccurs }}</span>\n </div>\n <div\n class=\"detail-dialog-row\"\n *ngIf=\"scheduleData.comments\"\n >\n <span class=\"detail-label\">\n {{ 'crmx.components.schedule_comments' | translate }}\n </span>\n <span>{{ scheduleData.comments }}</span>\n </div>\n </div>\n <p-divider *ngIf=\"scheduleData\"></p-divider>\n <div\n class=\"detail-dialog-section\"\n *ngIf=\"scheduleData\"\n >\n <div class=\"detail-section-header\">\n <i class=\"pi pi-users\"></i>\n <span>\n {{ 'crmx.components.schedule_participants' | translate }}\n </span>\n </div>\n <p-table\n [value]=\"participants\"\n [loading]=\"participantsLoading\"\n styleClass=\"p-datatable-sm p-datatable-striped\"\n >\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"col\">\n {{ 'crmx.components.schedule_name' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-participant-type\"\n >\n {{ 'crmx.components.schedule_participant_type' | translate }}\n </th>\n <th\n scope=\"col\"\n class=\"col-status\"\n >\n {{ 'crmx.components.schedule_status' | translate }}\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-p>\n <tr>\n <td>\n <span>{{ getParticipantName(p) }}</span>\n </td>\n <td>\n <div class=\"participant-type-cell\">\n <i\n [class]=\"getParticipantTypeIcon(p)\"\n ></i>\n <span>\n {{ getParticipantType(p) }}\n </span>\n </div>\n </td>\n <td>\n <p-tag\n *ngIf=\"p.organizer\"\n [value]=\"\n 'crmx.components.schedule_participant_organizer_label'\n | translate\n \"\n severity=\"info\"\n ></p-tag>\n <p-tag\n *ngIf=\"!p.organizer\"\n [value]=\"\n getConfirmationLabel(p.confirmation)\n \"\n [severity]=\"\n getConfirmationSeverity(p.confirmation)\n \"\n ></p-tag>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"3\">\n <div class=\"participants-empty\">\n <i class=\"pi pi-users\"></i>\n <p>\n {{\n 'crmx.components.schedule_no_participants'\n | translate\n }}\n </p>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n </div>\n</p-dialog>\n", styles: [":host ::ng-deep .detail-dialog{width:600px}.detail-dialog-body{display:flex;flex-direction:column;gap:.5rem}.detail-dialog-row{display:flex;align-items:center;gap:.75rem;padding:.4rem 0}.detail-label{font-weight:500;color:var(--p-text-secondary-color);min-width:8rem}.detail-section-header{display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--p-surface-200);font-weight:600;font-size:.95rem;color:var(--p-text-color)}.detail-section-header i{color:var(--p-primary-color);font-size:1rem}.participant-type-cell{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--p-text-secondary-color)}.participant-type-cell i{font-size:.9rem}.col-participant-type{width:10rem}.col-status{width:8rem}.participants-empty{display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center;color:var(--p-text-secondary-color);border:1px dashed var(--p-surface-300);border-radius:8px}.participants-empty i{font-size:2rem;margin-bottom:.5rem;opacity:.4}.participants-empty p{margin:0}\n"] }]
|
|
74
74
|
}], ctorParameters: () => [{ type: i1.ScheduleService }, { type: i2.TranslationService }], propDecorators: { visible: [{
|
|
75
75
|
type: Input
|
|
76
76
|
}], visibleChange: [{
|
|
77
77
|
type: Output
|
|
78
78
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUtZGV0YWlsL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL3NjaGVkdWxlLWRldGFpbC9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUdsRixPQUFPLEVBQ0wsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQzlELG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLHVCQUF1QixFQUM5RCxvQkFBb0IsRUFDckIsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7OztBQVM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBaUJmO0lBQ0E7SUFqQlYsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNmLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXRE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QUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixnQkFBZ0IsQ0FBQyxDQUFTLElBQVksT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSx1QkFBdUIsQ0FBQyxDQUFTLElBQTBCLE9BQU8sdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9GLG9CQUFvQixDQUFDLENBQVMsSUFBWSxPQUFPLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dHQTNEeEUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsMEpDdEJwQyxnMktBa0xBLDRsQ0RoS1ksWUFBWSxrSUFBRSxZQUFZLDBnQ0FBRSxhQUFhLDBKQUFFLFNBQVMsK0pBQUUsV0FBVyx1K0RBQUUsYUFBYTs7NEZBSS9FLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7cUhBS2xGLE9BQU87c0JBQWYsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcbmltcG9ydCB7IFRhZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFnJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvY29tcG9uZW50cy1haSc7XG5pbXBvcnQgeyBTY2hlZHVsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zY2hlZHVsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjaGVkdWxlLCBTY2hlZHVsZVBhcnRpY2lwYW50IH0gZnJvbSAnLi4vZW50aXRpZXMvc2NoZWR1bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGdldFBhcnRpY2lwYW50TmFtZSwgZ2V0UGFydGljaXBhbnRUeXBlLCBnZXRQYXJ0aWNpcGFudFR5cGVJY29uLFxuICBnZXRQcmlvcml0eVNldmVyaXR5LCBnZXRQcmlvcml0eUxhYmVsLCBnZXRDb25maXJtYXRpb25TZXZlcml0eSxcbiAgZ2V0Q29uZmlybWF0aW9uTGFiZWwsIFByaW9yaXR5U2V2ZXJpdHksIENvbmZpcm1hdGlvblNldmVyaXR5XG59IGZyb20gJy4uL2hlbHBlcnMvc2NoZWR1bGUtZGlzcGxheS5oZWxwZXJzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncy1zY2hlZHVsZS1kZXRhaWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGUsIERpdmlkZXJNb2R1bGUsIFRhZ01vZHVsZSwgVGFibGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNjaGVkdWxlOiB7XG4gICAgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nO1xuICAgIHNjaGVkdWxlVHlwZTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSB8IG51bGw7XG4gICAgd2l0aFJlY3VycmVuY2U6IGJvb2xlYW47IHdoZW5PY2N1cnM6IHN0cmluZztcbiAgICBhbGxEYXk6IGJvb2xlYW47IHN0YXJ0VGltZT86IHN0cmluZzsgZW5kVGltZT86IHN0cmluZztcbiAgICBwcmlvcml0eTogc3RyaW5nOyBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9IHwgbnVsbCA9IG51bGw7XG4gIHNjaGVkdWxlRGF0YTogU2NoZWR1bGUgfCBudWxsID0gbnVsbDtcbiAgcGFydGljaXBhbnRzOiBTY2hlZHVsZVBhcnRpY2lwYW50W10gPSBbXTtcbiAgcGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY2hlZHVsZVNlcnZpY2U6IFNjaGVkdWxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHQ6IFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgb3BlbihzY2hlZHVsZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlID0gbnVsbDtcbiAgICB0aGlzLnNjaGVkdWxlRGF0YSA9IG51bGw7XG4gICAgdGhpcy5wYXJ0aWNpcGFudHMgPSBbXTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgIHRoaXMuc2NoZWR1bGVTZXJ2aWNlLmdldChzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5zY2hlZHVsZURhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnNjaGVkdWxlID0ge1xuICAgICAgICAgIGlkOiBkYXRhLmlkLCBuYW1lOiBkYXRhLm5hbWUsXG4gICAgICAgICAgc2NoZWR1bGVUeXBlOiBkYXRhLnR5cGUgPz8gbnVsbCxcbiAgICAgICAgICB3aXRoUmVjdXJyZW5jZTogZGF0YS53aXRoUmVjdXJyZW5jZSxcbiAgICAgICAgICB3aGVuT2NjdXJzOiBkYXRhLndoZW5PY2N1cnMgPz8gJycsXG4gICAgICAgICAgYWxsRGF5OiBkYXRhLmFsbERheSwgc3RhcnRUaW1lOiBkYXRhLnN0YXJ0VGltZSxcbiAgICAgICAgICBlbmRUaW1lOiBkYXRhLmVuZFRpbWUsIHByaW9yaXR5OiBkYXRhLnByaW9yaXR5XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMubG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVNlcnZpY2UubGlzdFBhcnRpY2lwYW50cyhzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHIpID0+IHsgdGhpcy5wYXJ0aWNpcGFudHMgPSByLmNvbnRlbnRzID8/IFtdOyB0aGlzLnBhcnRpY2lwYW50c0xvYWRpbmcgPSBmYWxzZTsgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQgeyB0aGlzLnZpc2libGUgPSBmYWxzZTsgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpOyB9XG5cbiAgZ2V0UGFydGljaXBhbnROYW1lKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpOiBzdHJpbmcgeyByZXR1cm4gZ2V0UGFydGljaXBhbnROYW1lKHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZShwOiBTY2hlZHVsZVBhcnRpY2lwYW50KTogc3RyaW5nIHsgcmV0dXJuIGdldFBhcnRpY2lwYW50VHlwZSh0aGlzLnQsIHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZUljb24ocDogU2NoZWR1bGVQYXJ0aWNpcGFudCk6IHN0cmluZyB7IHJldHVybiBnZXRQYXJ0aWNpcGFudFR5cGVJY29uKHApOyB9XG4gIGdldFByaW9yaXR5U2V2ZXJpdHkocDogc3RyaW5nKTogUHJpb3JpdHlTZXZlcml0eSB7IHJldHVybiBnZXRQcmlvcml0eVNldmVyaXR5KHApOyB9XG4gIGdldFByaW9yaXR5TGFiZWwocDogc3RyaW5nKTogc3RyaW5nIHsgcmV0dXJuIGdldFByaW9yaXR5TGFiZWwodGhpcy50LCBwKTsgfVxuICBnZXRDb25maXJtYXRpb25TZXZlcml0eShjOiBzdHJpbmcpOiBDb25maXJtYXRpb25TZXZlcml0eSB7IHJldHVybiBnZXRDb25maXJtYXRpb25TZXZlcml0eShjKTsgfVxuICBnZXRDb25maXJtYXRpb25MYWJlbChjOiBzdHJpbmcpOiBzdHJpbmcgeyByZXR1cm4gZ2V0Q29uZmlybWF0aW9uTGFiZWwodGhpcy50LCBjKTsgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJdPVwic2NoZWR1bGU/Lm5hbWUgfHwgJydcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIHN0eWxlQ2xhc3M9XCJkZXRhaWwtZGlhbG9nXCJcbiAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gIFtyZXNpemFibGVdPVwiZmFsc2VcIlxuICAob25IaWRlKT1cIm9uQ2xvc2UoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLWJvZHlcIiAqbmdJZj1cInNjaGVkdWxlXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXNlY3Rpb25cIlxuICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGFcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcHJpb3JpdHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHAtdGFnXG4gICAgICAgICAgW3ZhbHVlXT1cImdldFByaW9yaXR5TGFiZWwoc2NoZWR1bGUucHJpb3JpdHkpXCJcbiAgICAgICAgICBbc2V2ZXJpdHldPVwiZ2V0UHJpb3JpdHlTZXZlcml0eShzY2hlZHVsZS5wcmlvcml0eSlcIlxuICAgICAgICA+PC9wLXRhZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS5zY2hlZHVsZVR5cGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfdHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBzY2hlZHVsZS5zY2hlZHVsZVR5cGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGFydF9kYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IHNjaGVkdWxlRGF0YS5zdGFydERhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiXG4gICAgICAgICpuZ0lmPVwic2NoZWR1bGVEYXRhLmVuZERhdGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfZW5kX2RhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGVEYXRhLmVuZERhdGUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiXG4gICAgICAgICpuZ0lmPVwiIXNjaGVkdWxlLmFsbERheSAmJiBzY2hlZHVsZS5zdGFydFRpbWVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhcnRfdGltZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyBzY2hlZHVsZS5zdGFydFRpbWUgfX0gLSB7eyBzY2hlZHVsZS5lbmRUaW1lIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS5hbGxEYXlcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhcnRfdGltZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX2FsbF9kYXknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS53aGVuT2NjdXJzXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3JlY3VycmVuY2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGUud2hlbk9jY3VycyB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGEuY29tbWVudHNcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfY29tbWVudHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgc2NoZWR1bGVEYXRhLmNvbW1lbnRzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPHAtZGl2aWRlciAqbmdJZj1cInNjaGVkdWxlRGF0YVwiPjwvcC1kaXZpZGVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1zZWN0aW9uXCJcbiAgICAgICpuZ0lmPVwic2NoZWR1bGVEYXRhXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsLXNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxpIGNsYXNzPVwicGkgcGktdXNlcnNcIj48L2k+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcGFydGljaXBhbnRzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxwLXRhYmxlXG4gICAgICAgIFt2YWx1ZV09XCJwYXJ0aWNpcGFudHNcIlxuICAgICAgICBbbG9hZGluZ109XCJwYXJ0aWNpcGFudHNMb2FkaW5nXCJcbiAgICAgICAgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLXNtIHAtZGF0YXRhYmxlLXN0cmlwZWRcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfbmFtZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC1wYXJ0aWNpcGFudC10eXBlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9wYXJ0aWNpcGFudF90eXBlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29sLXN0YXR1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfc3RhdHVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1wPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0UGFydGljaXBhbnROYW1lKHApIH19PC9zcGFuPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYW50LXR5cGUtY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0UGFydGljaXBhbnRUeXBlSWNvbihwKVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFBhcnRpY2lwYW50VHlwZShwKSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8cC10YWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cInAub3JnYW5pemVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X29yZ2FuaXplcl9sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHNldmVyaXR5PVwiaW5mb1wiXG4gICAgICAgICAgICAgID48L3AtdGFnPlxuICAgICAgICAgICAgICA8cC10YWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFwLm9yZ2FuaXplclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIlxuICAgICAgICAgICAgICAgICAgZ2V0Q29uZmlybWF0aW9uTGFiZWwocC5jb25maXJtYXRpb24pXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwiXG4gICAgICAgICAgICAgICAgICBnZXRDb25maXJtYXRpb25TZXZlcml0eShwLmNvbmZpcm1hdGlvbilcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+PC9wLXRhZz5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiM1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhbnRzLWVtcHR5XCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2Vyc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfbm9fcGFydGljaXBhbnRzJ1xuICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L3AtdGFibGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9wLWRpYWxvZz5cbiJdfQ==
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2NoZWR1bGUvc2NoZWR1bGUtZGV0YWlsL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NjaGVkdWxlL3NjaGVkdWxlLWRldGFpbC9zY2hlZHVsZS1kZXRhaWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBc0IsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHbEcsT0FBTyxFQUNMLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUM5RCxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFDOUQsb0JBQW9CLEVBQ3JCLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7QUFTN0MsTUFBTSxPQUFPLHVCQUF1QjtJQWlCZjtJQUNBO0lBakJWLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDZixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcs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TyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsZ0JBQWdCLENBQUMsQ0FBUyxJQUFZLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsdUJBQXVCLENBQUMsQ0FBUyxJQUEwQixPQUFPLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRixvQkFBb0IsQ0FBQyxDQUFTLElBQVksT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3R0EzRHhFLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLDBKQ3RCcEMsMDNLQWtMQSw0bENEaEtZLFlBQVksa0lBQUUsWUFBWSwwZ0NBQUUsYUFBYSwwSkFBRSxTQUFTLCtKQUFFLFdBQVcsdStEQUFFLGFBQWEsNkNBQUUsY0FBYzs7NEZBSS9GLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO3FIQUtsRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XG5pbXBvcnQgeyBUYWdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhZyc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRpb25TZXJ2aWNlLCBEYXRlRm9ybWF0UGlwZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9jb21wb25lbnRzLWFpJztcbmltcG9ydCB7IFNjaGVkdWxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NjaGVkdWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NoZWR1bGUsIFNjaGVkdWxlUGFydGljaXBhbnQgfSBmcm9tICcuLi9lbnRpdGllcy9zY2hlZHVsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgZ2V0UGFydGljaXBhbnROYW1lLCBnZXRQYXJ0aWNpcGFudFR5cGUsIGdldFBhcnRpY2lwYW50VHlwZUljb24sXG4gIGdldFByaW9yaXR5U2V2ZXJpdHksIGdldFByaW9yaXR5TGFiZWwsIGdldENvbmZpcm1hdGlvblNldmVyaXR5LFxuICBnZXRDb25maXJtYXRpb25MYWJlbCwgUHJpb3JpdHlTZXZlcml0eSwgQ29uZmlybWF0aW9uU2V2ZXJpdHlcbn0gZnJvbSAnLi4vaGVscGVycy9zY2hlZHVsZS1kaXNwbGF5LmhlbHBlcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzLXNjaGVkdWxlLWRldGFpbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgRGl2aWRlck1vZHVsZSwgVGFnTW9kdWxlLCBUYWJsZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgRGF0ZUZvcm1hdFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NjaGVkdWxlLWRldGFpbC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVEZXRhaWxDb21wb25lbnQge1xuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNjaGVkdWxlOiB7XG4gICAgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nO1xuICAgIHNjaGVkdWxlVHlwZTogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSB8IG51bGw7XG4gICAgd2l0aFJlY3VycmVuY2U6IGJvb2xlYW47IHdoZW5PY2N1cnM6IHN0cmluZztcbiAgICBhbGxEYXk6IGJvb2xlYW47IHN0YXJ0VGltZT86IHN0cmluZzsgZW5kVGltZT86IHN0cmluZztcbiAgICBwcmlvcml0eTogc3RyaW5nOyBba2V5OiBzdHJpbmddOiB1bmtub3duO1xuICB9IHwgbnVsbCA9IG51bGw7XG4gIHNjaGVkdWxlRGF0YTogU2NoZWR1bGUgfCBudWxsID0gbnVsbDtcbiAgcGFydGljaXBhbnRzOiBTY2hlZHVsZVBhcnRpY2lwYW50W10gPSBbXTtcbiAgcGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY2hlZHVsZVNlcnZpY2U6IFNjaGVkdWxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHQ6IFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgb3BlbihzY2hlZHVsZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNjaGVkdWxlID0gbnVsbDtcbiAgICB0aGlzLnNjaGVkdWxlRGF0YSA9IG51bGw7XG4gICAgdGhpcy5wYXJ0aWNpcGFudHMgPSBbXTtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcblxuICAgIHRoaXMuc2NoZWR1bGVTZXJ2aWNlLmdldChzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5zY2hlZHVsZURhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnNjaGVkdWxlID0ge1xuICAgICAgICAgIGlkOiBkYXRhLmlkLCBuYW1lOiBkYXRhLm5hbWUsXG4gICAgICAgICAgc2NoZWR1bGVUeXBlOiBkYXRhLnR5cGUgPz8gbnVsbCxcbiAgICAgICAgICB3aXRoUmVjdXJyZW5jZTogZGF0YS53aXRoUmVjdXJyZW5jZSxcbiAgICAgICAgICB3aGVuT2NjdXJzOiBkYXRhLndoZW5PY2N1cnMgPz8gJycsXG4gICAgICAgICAgYWxsRGF5OiBkYXRhLmFsbERheSwgc3RhcnRUaW1lOiBkYXRhLnN0YXJ0VGltZSxcbiAgICAgICAgICBlbmRUaW1lOiBkYXRhLmVuZFRpbWUsIHByaW9yaXR5OiBkYXRhLnByaW9yaXR5XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMubG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gICAgdGhpcy5zY2hlZHVsZVNlcnZpY2UubGlzdFBhcnRpY2lwYW50cyhzY2hlZHVsZUlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHIpID0+IHsgdGhpcy5wYXJ0aWNpcGFudHMgPSByLmNvbnRlbnRzID8/IFtdOyB0aGlzLnBhcnRpY2lwYW50c0xvYWRpbmcgPSBmYWxzZTsgfSxcbiAgICAgIGVycm9yOiAoKSA9PiB7IHRoaXMucGFydGljaXBhbnRzTG9hZGluZyA9IGZhbHNlOyB9XG4gICAgfSk7XG4gIH1cblxuICBvbkNsb3NlKCk6IHZvaWQgeyB0aGlzLnZpc2libGUgPSBmYWxzZTsgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpOyB9XG5cbiAgZ2V0UGFydGljaXBhbnROYW1lKHA6IFNjaGVkdWxlUGFydGljaXBhbnQpOiBzdHJpbmcgeyByZXR1cm4gZ2V0UGFydGljaXBhbnROYW1lKHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZShwOiBTY2hlZHVsZVBhcnRpY2lwYW50KTogc3RyaW5nIHsgcmV0dXJuIGdldFBhcnRpY2lwYW50VHlwZSh0aGlzLnQsIHApOyB9XG4gIGdldFBhcnRpY2lwYW50VHlwZUljb24ocDogU2NoZWR1bGVQYXJ0aWNpcGFudCk6IHN0cmluZyB7IHJldHVybiBnZXRQYXJ0aWNpcGFudFR5cGVJY29uKHApOyB9XG4gIGdldFByaW9yaXR5U2V2ZXJpdHkocDogc3RyaW5nKTogUHJpb3JpdHlTZXZlcml0eSB7IHJldHVybiBnZXRQcmlvcml0eVNldmVyaXR5KHApOyB9XG4gIGdldFByaW9yaXR5TGFiZWwocDogc3RyaW5nKTogc3RyaW5nIHsgcmV0dXJuIGdldFByaW9yaXR5TGFiZWwodGhpcy50LCBwKTsgfVxuICBnZXRDb25maXJtYXRpb25TZXZlcml0eShjOiBzdHJpbmcpOiBDb25maXJtYXRpb25TZXZlcml0eSB7IHJldHVybiBnZXRDb25maXJtYXRpb25TZXZlcml0eShjKTsgfVxuICBnZXRDb25maXJtYXRpb25MYWJlbChjOiBzdHJpbmcpOiBzdHJpbmcgeyByZXR1cm4gZ2V0Q29uZmlybWF0aW9uTGFiZWwodGhpcy50LCBjKTsgfVxufVxuIiwiPHAtZGlhbG9nXG4gIFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG4gIFtoZWFkZXJdPVwic2NoZWR1bGU/Lm5hbWUgfHwgJydcIlxuICBbbW9kYWxdPVwidHJ1ZVwiXG4gIHN0eWxlQ2xhc3M9XCJkZXRhaWwtZGlhbG9nXCJcbiAgW2RyYWdnYWJsZV09XCJmYWxzZVwiXG4gIFtyZXNpemFibGVdPVwiZmFsc2VcIlxuICAob25IaWRlKT1cIm9uQ2xvc2UoKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLWJvZHlcIiAqbmdJZj1cInNjaGVkdWxlXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXNlY3Rpb25cIlxuICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGFcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXJvd1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcHJpb3JpdHknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHAtdGFnXG4gICAgICAgICAgW3ZhbHVlXT1cImdldFByaW9yaXR5TGFiZWwoc2NoZWR1bGUucHJpb3JpdHkpXCJcbiAgICAgICAgICBbc2V2ZXJpdHldPVwiZ2V0UHJpb3JpdHlTZXZlcml0eShzY2hlZHVsZS5wcmlvcml0eSlcIlxuICAgICAgICA+PC9wLXRhZz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCJzY2hlZHVsZS5zY2hlZHVsZVR5cGVcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfdHlwZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBzY2hlZHVsZS5zY2hlZHVsZVR5cGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGFydF9kYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IHNjaGVkdWxlRGF0YS5zdGFydERhdGUgfCBkYXRlRm9ybWF0IH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1yb3dcIlxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlRGF0YS5lbmREYXRlXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5cbiAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX2VuZF9kYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPnt7IHNjaGVkdWxlRGF0YS5lbmREYXRlIHwgZGF0ZUZvcm1hdCB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImRldGFpbC1kaWFsb2ctcm93XCJcbiAgICAgICAgKm5nSWY9XCIhc2NoZWR1bGUuYWxsRGF5ICYmIHNjaGVkdWxlLnN0YXJ0VGltZVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGFydF90aW1lJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7IHNjaGVkdWxlLnN0YXJ0VGltZSB9fSAtIHt7IHNjaGVkdWxlLmVuZFRpbWUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1yb3dcIlxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlLmFsbERheVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGFydF90aW1lJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfYWxsX2RheScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1yb3dcIlxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlLndoZW5PY2N1cnNcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC1sYWJlbFwiPlxuICAgICAgICAgIHt7ICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcmVjdXJyZW5jZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBzY2hlZHVsZS53aGVuT2NjdXJzIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGV0YWlsLWRpYWxvZy1yb3dcIlxuICAgICAgICAqbmdJZj1cInNjaGVkdWxlRGF0YS5jb21tZW50c1wiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLWxhYmVsXCI+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9jb21tZW50cycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3Bhbj57eyBzY2hlZHVsZURhdGEuY29tbWVudHMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8cC1kaXZpZGVyICpuZ0lmPVwic2NoZWR1bGVEYXRhXCI+PC9wLWRpdmlkZXI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkZXRhaWwtZGlhbG9nLXNlY3Rpb25cIlxuICAgICAgKm5nSWY9XCJzY2hlZHVsZURhdGFcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWwtc2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS11c2Vyc1wiPjwvaT5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9wYXJ0aWNpcGFudHMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPHAtdGFibGVcbiAgICAgICAgW3ZhbHVlXT1cInBhcnRpY2lwYW50c1wiXG4gICAgICAgIFtsb2FkaW5nXT1cInBhcnRpY2lwYW50c0xvYWRpbmdcIlxuICAgICAgICBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc20gcC1kYXRhdGFibGUtc3RyaXBlZFwiXG4gICAgICA+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9uYW1lJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY29sLXBhcnRpY2lwYW50LXR5cGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnY3JteC5jb21wb25lbnRzLnNjaGVkdWxlX3BhcnRpY2lwYW50X3R5cGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtc3RhdHVzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9zdGF0dXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXA+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRQYXJ0aWNpcGFudE5hbWUocCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhbnQtdHlwZS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRQYXJ0aWNpcGFudFR5cGVJY29uKHApXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0UGFydGljaXBhbnRUeXBlKHApIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgIDxwLXRhZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwicC5vcmdhbml6ZXJcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJcbiAgICAgICAgICAgICAgICAgICdjcm14LmNvbXBvbmVudHMuc2NoZWR1bGVfcGFydGljaXBhbnRfb3JnYW5pemVyX2xhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgc2V2ZXJpdHk9XCJpbmZvXCJcbiAgICAgICAgICAgICAgPjwvcC10YWc+XG4gICAgICAgICAgICAgIDxwLXRhZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXAub3JnYW5pemVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiXG4gICAgICAgICAgICAgICAgICBnZXRDb25maXJtYXRpb25MYWJlbChwLmNvbmZpcm1hdGlvbilcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtzZXZlcml0eV09XCJcbiAgICAgICAgICAgICAgICAgIGdldENvbmZpcm1hdGlvblNldmVyaXR5KHAuY29uZmlybWF0aW9uKVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L3AtdGFnPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXJ0aWNpcGFudHMtZW1wdHlcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXVzZXJzXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgJ2NybXguY29tcG9uZW50cy5zY2hlZHVsZV9ub19wYXJ0aWNpcGFudHMnXG4gICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvcC10YWJsZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3AtZGlhbG9nPlxuIl19
|